Contact

[fusion_builder_container hundred_percent=”no” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” border_size=”” border_color=”” border_style=”solid” margin_top=”” margin_bottom=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=””][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_image_id=”” background_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” border_radius=”” box_shadow=”no” dimension_box_shadow=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_code]PHNjcmlwdCBzcmM9Imh0dHBzOi8vc2Vld29yZHJlYWRpbmcuYWN0aXZlaG9zdGVkLmNvbS9mL2VtYmVkLnBocD9pZD0zMCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=”no” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” border_size=”” border_color=”” border_style=”solid” margin_top=”” margin_bottom=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=””][fusion_builder_row][fusion_builder_column type=”1_2″ layout=”1_2″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_image_id=”” background_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” border_radius=”” box_shadow=”no” dimension_box_shadow=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_code]PHN0eWxlPgogI19mb3JtXzIyXyB7IGZvbnQtc2l6ZToxNHB4OyBsaW5lLWhlaWdodDoxLjY7IGZvbnQtZmFtaWx5OmFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IG1hcmdpbjowOyB9CiAjX2Zvcm1fMjJfICogeyBvdXRsaW5lOjA7IH0KIC5fZm9ybV9oaWRlIHsgZGlzcGxheTpub25lOyB2aXNpYmlsaXR5OmhpZGRlbjsgfQogLl9mb3JtX3Nob3cgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IH0KICNfZm9ybV8yMl8uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV8yMl8uX2Zvcm0tYm90dG9tIHsgYm90dG9tOjA7IH0KICNfZm9ybV8yMl8uX2Zvcm0tbGVmdCB7IGxlZnQ6MDsgfQogI19mb3JtXzIyXy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV8yMl8gaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV8yMl8gaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV8yMl8gdGV4dGFyZWEgeyBwYWRkaW5nOjZweDsgaGVpZ2h0OmF1dG87IGJvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDsgYm9yZGVyLXJhZGl1czo0cHg7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgZm9udC1zaXplOjEzcHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fMjJfIHRleHRhcmVhIHsgcmVzaXplOm5vbmU7IH0KICNfZm9ybV8yMl8gLl9zdWJtaXQgeyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6MTRweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQ6IzMzMyAhaW1wb3J0YW50OyBib3JkZXI6MCAhaW1wb3J0YW50OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDsgY29sb3I6I2ZmZiAhaW1wb3J0YW50OyBwYWRkaW5nOjEwcHggIWltcG9ydGFudDsgfQogI19mb3JtXzIyXyAuX2Nsb3NlLWljb24geyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzIyXyAuX2Nsb3NlLWljb246YmVmb3JlIHsgcG9zaXRpb246cmVsYXRpdmU7IH0KICNfZm9ybV8yMl8gLl9mb3JtLWJvZHkgeyBtYXJnaW4tYm90dG9tOjMwcHg7IH0KICNfZm9ybV8yMl8gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzIyXyAuX2Zvcm0tY29udGVudC1yaWdodCB7IG1hcmdpbi1sZWZ0OjE2NHB4OyB9CiAjX2Zvcm1fMjJfIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiNmZmY7IGZvbnQtc2l6ZToxMHB4OyBjbGVhcjpib3RoOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbi10b3A6MzBweDsgZm9udC13ZWlnaHQ6MTAwOyB9CiAjX2Zvcm1fMjJfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9oaDl1anFndjVfYWNsb2dvX2xpLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fMjJfIC5fZm9ybS1sYWJlbCwjX2Zvcm1fMjJfIC5fZm9ybV9lbGVtZW50IC5fZm9ybS1sYWJlbCB7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbi1ib3R0b206NXB4OyBkaXNwbGF5OmJsb2NrOyB9CiAjX2Zvcm1fMjJfLl9kYXJrIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiMzMzM7IH0KICNfZm9ybV8yMl8uX2RhcmsgLl9mb3JtLWJyYW5kaW5nIC5fbG9nbyB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdodHRwczovL2QyMjZhajRhbzF0NjFxLmNsb3VkZnJvbnQubmV0L2pmdHEyYzhzX2FjbG9nb19kay5wbmcnKTsgfQogI19mb3JtXzIyXyAuX2Zvcm1fZWxlbWVudCB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZvbnQtc2l6ZTowOyBtYXgtd2lkdGg6MTAwJTsgfQogI19mb3JtXzIyXyAuX2Zvcm1fZWxlbWVudCAqIHsgZm9udC1zaXplOjE0cHg7IH0KICNfZm9ybV8yMl8gLl9mb3JtX2VsZW1lbnQuX2NsZWFyIHsgY2xlYXI6Ym90aDsgd2lkdGg6MTAwJTsgZmxvYXQ6bm9uZTsgfQogI19mb3JtXzIyXyAuX2Zvcm1fZWxlbWVudC5fY2xlYXI6YWZ0ZXIgeyBjbGVhcjpsZWZ0OyB9CiAjX2Zvcm1fMjJfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fMjJfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fMjJfIC5fZm9ybV9lbGVtZW50IHNlbGVjdCwjX2Zvcm1fMjJfIC5fZm9ybV9lbGVtZW50IHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV8yMl8gLl9maWVsZC13cmFwcGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IH0KICNfZm9ybV8yMl8gLl9pbmxpbmUtc3R5bGUgeyBmbG9hdDpsZWZ0OyB9CiAjX2Zvcm1fMjJfIC5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOjE1MHB4OyB9CiAjX2Zvcm1fMjJfIC5faW5saW5lLXN0eWxlOm5vdCguX2NsZWFyKSArIC5faW5saW5lLXN0eWxlOm5vdCguX2NsZWFyKSB7IG1hcmdpbi1sZWZ0OjIwcHg7IH0KICNfZm9ybV8yMl8gLl9mb3JtX2VsZW1lbnQgaW1nLl9mb3JtLWltYWdlIHsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV8yMl8gLl9jbGVhci1lbGVtZW50IHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzIyXyAuX2Z1bGxfd2lkdGggeyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMjJfIC5fZm9ybV9mdWxsX2ZpZWxkIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbToxMHB4OyB9CiAjX2Zvcm1fMjJfIGlucHV0W3R5cGU9InRleHQiXS5faGFzX2Vycm9yLCNfZm9ybV8yMl8gdGV4dGFyZWEuX2hhc19lcnJvciB7IGJvcmRlcjojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzIyXyBpbnB1dFt0eXBlPSJjaGVja2JveCJdLl9oYXNfZXJyb3IgeyBvdXRsaW5lOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fMjJfIC5fZXJyb3IgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgZm9udC1zaXplOjEzcHg7IHotaW5kZXg6MTAwMDAwMDE7IH0KICNfZm9ybV8yMl8gLl9lcnJvci5fYWJvdmUgeyBwYWRkaW5nLWJvdHRvbTo0cHg7IGJvdHRvbTozOXB4OyByaWdodDowOyB9CiAjX2Zvcm1fMjJfIC5fZXJyb3IuX2JlbG93IHsgcGFkZGluZy10b3A6NHB4OyB0b3A6MTAwJTsgcmlnaHQ6MDsgfQogI19mb3JtXzIyXyAuX2Vycm9yLl9hYm92ZSAuX2Vycm9yLWFycm93IHsgYm90dG9tOjA7IHJpZ2h0OjE1cHg7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgI2YzN2M3YjsgfQogI19mb3JtXzIyXyAuX2Vycm9yLl9iZWxvdyAuX2Vycm9yLWFycm93IHsgdG9wOjA7IHJpZ2h0OjE1cHg7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgI2YzN2M3YjsgfQogI19mb3JtXzIyXyAuX2Vycm9yLWlubmVyIHsgcGFkZGluZzo4cHggMTJweDsgYmFja2dyb3VuZC1jb2xvcjojZjM3YzdiOyBmb250LXNpemU6MTNweDsgZm9udC1mYW1pbHk6YXJpYWwsIHNhbnMtc2VyaWY7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IH0KICNfZm9ybV8yMl8gLl9lcnJvci1pbm5lci5fZm9ybV9lcnJvciB7IG1hcmdpbi1ib3R0b206NXB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0KICNfZm9ybV8yMl8gLl9idXR0b24td3JhcHBlciAuX2Vycm9yLWlubmVyLl9mb3JtX2Vycm9yIHsgcG9zaXRpb246c3RhdGljOyB9CiAjX2Zvcm1fMjJfIC5fZXJyb3ItaW5uZXIuX25vX2Fycm93IHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9CiAjX2Zvcm1fMjJfIC5fZXJyb3ItYXJyb3cgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MDsgaGVpZ2h0OjA7IH0KICNfZm9ybV8yMl8gLl9lcnJvci1odG1sIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9CiAucGlrYS1zaW5nbGUgeyB6LWluZGV4OjEwMDAwMDAxICFpbXBvcnRhbnQ7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7IDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5Om5vbmU7IH0KICNfZm9ybV8yMl8geyBtYXJnaW46MDsgd2lkdGg6MTAwJTsgbWluLXdpZHRoOjEwMCU7IG1heC13aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV8yMl8gKiB7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LXNpemU6MWVtOyB9CiAjX2Zvcm1fMjJfIC5fZm9ybS1jb250ZW50IHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV8yMl8gLl9mb3JtLWlubmVyIHsgZGlzcGxheTpibG9jazsgbWluLXdpZHRoOjEwMCU7IH0KICNfZm9ybV8yMl8gLl9mb3JtLXRpdGxlLCNfZm9ybV8yMl8gLl9pbmxpbmUtc3R5bGUgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDowOyB9CiAjX2Zvcm1fMjJfIC5fZm9ybS10aXRsZSB7IGZvbnQtc2l6ZToxLjJlbTsgfQogI19mb3JtXzIyXyAuX2Zvcm1fZWxlbWVudCB7IG1hcmdpbjowIDAgMjBweDsgcGFkZGluZzowOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMjJfIC5fZm9ybS1lbGVtZW50LCNfZm9ybV8yMl8gLl9pbmxpbmUtc3R5bGUsI19mb3JtXzIyXyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzIyXyBsYWJlbCwjX2Zvcm1fMjJfIHAsI19mb3JtXzIyXyB0ZXh0YXJlYTpub3QoLmctcmVjYXB0Y2hhLXJlc3BvbnNlKSB7IGZsb2F0Om5vbmU7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV8yMl8gLl9yb3cuX2NoZWNrYm94LXJhZGlvIGxhYmVsIHsgZGlzcGxheTppbmxpbmU7IH0KICNfZm9ybV8yMl8gLl9yb3csI19mb3JtXzIyXyBwLCNfZm9ybV8yMl8gbGFiZWwgeyBtYXJnaW4tYm90dG9tOjAuN2VtOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMjJfIC5fcm93IGlucHV0W3R5cGU9ImNoZWNrYm94Il0sI19mb3JtXzIyXyAuX3JvdyBpbnB1dFt0eXBlPSJyYWRpbyJdIHsgbWFyZ2luOjAgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246bWlkZGxlICFpbXBvcnRhbnQ7IH0KICNfZm9ybV8yMl8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSArIHNwYW4gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzIyXyAuX3JvdyBzcGFuIGxhYmVsIHsgbWFyZ2luOjAgIWltcG9ydGFudDsgd2lkdGg6aW5pdGlhbCAhaW1wb3J0YW50OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGUgIWltcG9ydGFudDsgfQogI19mb3JtXzIyXyAuX2Zvcm0taW1hZ2UgeyBtYXgtd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgfQogI19mb3JtXzIyXyBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy1yaWdodDoxMHB4OyBmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS4zZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyB9CiAjX2Zvcm1fMjJfIGlucHV0W3R5cGU9InJhZGlvIl0sI19mb3JtXzIyXyBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHdpZHRoOjEuM2VtOyBoZWlnaHQ6MS4zZW07IGZvbnQtc2l6ZToxZW07IG1hcmdpbjowIDAuM2VtIDAgMDsgdmVydGljYWwtYWxpZ246YmFzZWxpbmU7IH0KICNfZm9ybV8yMl8gYnV0dG9uW3R5cGU9InN1Ym1pdCJdIHsgcGFkZGluZzoyMHB4OyBmb250LXNpemU6MS41ZW07IH0KICNfZm9ybV8yMl8gLl9pbmxpbmUtc3R5bGUgeyBtYXJnaW46MjBweCAwIDAgIWltcG9ydGFudDsgfQogfQogI19mb3JtXzIyXyB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbjoyNXB4IGF1dG8gMDsgcGFkZGluZzoyMHB4OyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgKnpvb206MTsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IGJvcmRlcjowcHggc29saWQgI2IwYjBiMCAhaW1wb3J0YW50OyB3aWR0aDo1MDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgfQogI19mb3JtXzIyXyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MjJweDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjA7IH0KICNfZm9ybV8yMl86YmVmb3JlLCNfZm9ybV8yMl86YWZ0ZXIgeyBjb250ZW50OiIgIjsgZGlzcGxheTp0YWJsZTsgfQogI19mb3JtXzIyXzphZnRlciB7IGNsZWFyOmJvdGg7IH0KICNfZm9ybV8yMl8uX2lubGluZS1zdHlsZSB7IHdpZHRoOmF1dG87IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9CiAjX2Zvcm1fMjJfLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV8yMl8uX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJkYXRlIl0geyBwYWRkaW5nOjEwcHggMTJweDsgfQogI19mb3JtXzIyXy5faW5saW5lLXN0eWxlIGJ1dHRvbi5faW5saW5lLXN0eWxlIHsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDoyN3B4OyB9CiAjX2Zvcm1fMjJfLl9pbmxpbmUtc3R5bGUgcCB7IG1hcmdpbjowOyB9CiAjX2Zvcm1fMjJfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MjdweCAxMi41cHggMCAyMHB4OyB9CiAjX2Zvcm1fMjJfIC5fZm9ybS10aGFuay15b3UgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbGVmdDowOyByaWdodDowOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjE4cHg7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7ICNfZm9ybV8yMl8uX2lubGluZS1mb3JtLl9pbmxpbmUtc3R5bGUgLl9pbmxpbmUtc3R5bGUuX2J1dHRvbi13cmFwcGVyIHsgbWFyZ2luLXRvcDoyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDsgfQogfQo8L3N0eWxlPgo8Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iaHR0cHM6Ly9zZWV3b3JkcmVhZGluZy5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwIiBpZD0iX2Zvcm1fMjJfIiBjbGFzcz0iX2Zvcm0gX2Zvcm1fMjIgX2lubGluZS1mb3JtICBfZGFyayIgbm92YWxpZGF0ZT4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1IiB2YWx1ZT0iMjIiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZiIgdmFsdWU9IjIyIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InMiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYyIgdmFsdWU9IjAiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibSIgdmFsdWU9IjAiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3ViIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InYiIHZhbHVlPSIyIiAvPgogIDxkaXYgY2xhc3M9Il9mb3JtLWNvbnRlbnQiPgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDE3OTkzMDU5IF9mdWxsX3dpZHRoIF9jbGVhciIgPgogICAgICA8ZGl2IGNsYXNzPSJfZm9ybS10aXRsZSI+CiAgICAgICAgQ29udGFjdCBVcwogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDg5ODMwNTY2IF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBGdWxsIE5hbWUKICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmdWxsbmFtZSIgcGxhY2Vob2xkZXI9IlR5cGUgeW91ciBuYW1lIiAvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDAzMzI2OTkwIF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBFbWFpbCoKICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IlR5cGUgeW91ciBlbWFpbCIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQxOSBfZnVsbF93aWR0aCAiID4KICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgTWVzc2FnZQogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPHRleHRhcmVhIG5hbWU9ImZpZWxkWzE5XSIgcGxhY2Vob2xkZXI9IiIgID48L3RleHRhcmVhPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2J1dHRvbi13cmFwcGVyIF9mdWxsX3dpZHRoIj4KICAgICAgPGJ1dHRvbiBpZD0iX2Zvcm1fMjJfc3VibWl0IiBjbGFzcz0iX3N1Ym1pdCIgdHlwZT0ic3VibWl0Ij4KICAgICAgICBTdWJtaXQKICAgICAgPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9jbGVhci1lbGVtZW50Ij4KICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9Il9mb3JtLXRoYW5rLXlvdSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9Il9mb3JtLWJyYW5kaW5nIj4KICAgIDxkaXYgY2xhc3M9Il9tYXJrZXRpbmctYnkiPgogICAgICBNYXJrZXRpbmcgYnkKICAgIDwvZGl2PgogICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hY3RpdmVjYW1wYWlnbi5jb20iIGNsYXNzPSJfbG9nbyI+PC9hPgogIDwvZGl2Pgo8L2Zvcm0+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp3aW5kb3cuY2ZpZWxkcyA9IHsiMTkiOiJtZXNzYWdlIn07CndpbmRvdy5fc2hvd190aGFua195b3UgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgdHJhY2tjbXBfdXJsKSB7CiAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fJyArIGlkICsgJ18nKSwgdGhhbmtfeW91ID0gZm9ybS5xdWVyeVNlbGVjdG9yKCcuX2Zvcm0tdGhhbmsteW91Jyk7CiAgZm9ybS5xdWVyeVNlbGVjdG9yKCcuX2Zvcm0tY29udGVudCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgdGhhbmtfeW91LmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgdGhhbmtfeW91LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogIGlmICh0eXBlb2YodHJhY2tjbXBfdXJsKSAhPSAndW5kZWZpbmVkJyAmJiB0cmFja2NtcF91cmwpIHsKICAgIC8vIFNpdGUgdHJhY2tpbmcgVVJMIHRvIHVzZSBhZnRlciBpbmxpbmUgZm9ybSBzdWJtaXNzaW9uLgogICAgX2xvYWRfc2NyaXB0KHRyYWNrY21wX3VybCk7CiAgfQogIGlmICh0eXBlb2Ygd2luZG93Ll9mb3JtX2NhbGxiYWNrICE9PSAndW5kZWZpbmVkJykgd2luZG93Ll9mb3JtX2NhbGxiYWNrKGlkKTsKfTsKd2luZG93Ll9zaG93X2Vycm9yID0gZnVuY3Rpb24oaWQsIG1lc3NhZ2UsIGh0bWwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV8nICsgaWQgKyAnXycpLCBlcnIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgYnV0dG9uID0gZm9ybS5xdWVyeVNlbGVjdG9yKCdidXR0b24nKSwgb2xkX2Vycm9yID0gZm9ybS5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICBpZiAob2xkX2Vycm9yKSBvbGRfZXJyb3IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvbGRfZXJyb3IpOwogIGVyci5pbm5lckhUTUwgPSBtZXNzYWdlOwogIGVyci5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyIF9mb3JtX2Vycm9yIF9ub19hcnJvdyc7CiAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICB3cmFwcGVyLmNsYXNzTmFtZSA9ICdfZm9ybS1pbm5lcic7CiAgd3JhcHBlci5hcHBlbmRDaGlsZChlcnIpOwogIGJ1dHRvbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3cmFwcGVyLCBidXR0b24pOwogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tpZF49Il9mb3JtIl1baWQkPSJfc3VibWl0Il0nKS5kaXNhYmxlZCA9IGZhbHNlOwogIGlmIChodG1sKSB7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBkaXYuY2xhc3NOYW1lID0gJ19lcnJvci1odG1sJzsKICAgIGRpdi5pbm5lckhUTUwgPSBodG1sOwogICAgZXJyLmFwcGVuZENoaWxkKGRpdik7CiAgfQp9Owp3aW5kb3cuX2xvYWRfc2NyaXB0ID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewogICAgdmFyIGhlYWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkJyksIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLCByID0gZmFsc2U7CiAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgc2NyaXB0LmNoYXJzZXQgPSAndXRmLTgnOwogICAgc2NyaXB0LnNyYyA9IHVybDsKICAgIGlmIChjYWxsYmFjaykgewogICAgICBzY3JpcHQub25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICBpZiAoIXIgJiYgKCF0aGlzLnJlYWR5U3RhdGUgfHwgdGhpcy5yZWFkeVN0YXRlID09ICdjb21wbGV0ZScpKSB7CiAgICAgICAgciA9IHRydWU7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICB9CiAgICAgIH07CiAgICB9CiAgICBoZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7Cn07CihmdW5jdGlvbigpIHsKICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5zZWFyY2goImV4Y2x1ZGVmb3JtIikgIT09IC0xKSByZXR1cm4gZmFsc2U7CiAgdmFyIGdldENvb2tpZSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHZhciBtYXRjaCA9IGRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCcoXnw7ICknICsgbmFtZSArICc9KFteO10rKScpKTsKICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzJdIDogbnVsbDsKICB9CiAgdmFyIHNldENvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CiAgICB2YXIgbm93ID0gbmV3IERhdGUoKTsKICAgIHZhciB0aW1lID0gbm93LmdldFRpbWUoKTsKICAgIHZhciBleHBpcmVUaW1lID0gdGltZSArIDEwMDAgKiA2MCAqIDYwICogMjQgKiAzNjU7CiAgICBub3cuc2V0VGltZShleHBpcmVUaW1lKTsKICAgIGRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPScgKyB2YWx1ZSArICc7IGV4cGlyZXM9JyArIG5vdyArICc7cGF0aD0vJzsKICB9CiAgICAgIHZhciBhZGRFdmVudCA9IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50LCBmdW5jKSB7CiAgICBpZiAoZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZnVuYyk7CiAgICB9IGVsc2UgewogICAgICB2YXIgb2xkRnVuYyA9IGVsZW1lbnRbJ29uJyArIGV2ZW50XTsKICAgICAgZWxlbWVudFsnb24nICsgZXZlbnRdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgb2xkRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgfTsKICAgIH0KICB9CiAgdmFyIF9yZW1vdmVkID0gZmFsc2U7CiAgdmFyIGZvcm1fdG9fc3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXzIyXycpOwogIHZhciBhbGxJbnB1dHMgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpLCB0b29sdGlwcyA9IFtdLCBzdWJtaXR0ZWQgPSBmYWxzZTsKCiAgdmFyIGdldFVybFBhcmFtID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIHJlZ2V4U3RyID0gJ1tcPyZdJyArIG5hbWUgKyAnPShbXiYjXSopJzsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0ciwgJ2knKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKICAgIHJldHVybiByZXN1bHRzICE9IHVuZGVmaW5lZCA/IGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzFdKSA6IGZhbHNlOwogIH07CgogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsSW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgcmVnZXhTdHIgPSAiZmllbGRcXFsoXFxkKylcXF0iOwogICAgdmFyIHJlc3VsdHMgPSBuZXcgUmVnRXhwKHJlZ2V4U3RyKS5leGVjKGFsbElucHV0c1tpXS5uYW1lKTsKICAgIGlmIChyZXN1bHRzICE9IHVuZGVmaW5lZCkgewogICAgICBhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lID0gd2luZG93LmNmaWVsZHNbcmVzdWx0c1sxXV07CiAgICB9IGVsc2UgewogICAgICBhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lID0gYWxsSW5wdXRzW2ldLm5hbWU7CiAgICB9CiAgICB2YXIgZmllbGRWYWwgPSBnZXRVcmxQYXJhbShhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lKTsKCiAgICBpZiAoZmllbGRWYWwpIHsKICAgICAgaWYgKGFsbElucHV0c1tpXS50eXBlID09ICJyYWRpbyIgfHwgYWxsSW5wdXRzW2ldLnR5cGUgPT0gImNoZWNrYm94IikgewogICAgICAgIGlmIChhbGxJbnB1dHNbaV0udmFsdWUgPT0gZmllbGRWYWwpIHsKICAgICAgICAgIGFsbElucHV0c1tpXS5jaGVja2VkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgYWxsSW5wdXRzW2ldLnZhbHVlID0gZmllbGRWYWw7CiAgICAgIH0KICAgIH0KICB9CgogIHZhciByZW1vdmVfdG9vbHRpcHMgPSBmdW5jdGlvbigpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9vbHRpcHMubGVuZ3RoOyBpKyspIHsKICAgICAgdG9vbHRpcHNbaV0udGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcHNbaV0udGlwKTsKICAgIH0KICAgICAgdG9vbHRpcHMgPSBbXTsKICB9OwogIHZhciByZW1vdmVfdG9vbHRpcCA9IGZ1bmN0aW9uKGVsZW0pIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9vbHRpcHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKHRvb2x0aXBzW2ldLmVsZW0gPT09IGVsZW0pIHsKICAgICAgICB0b29sdGlwc1tpXS50aXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0b29sdGlwc1tpXS50aXApOwogICAgICAgIHRvb2x0aXBzLnNwbGljZShpLCAxKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0KICB9OwogIHZhciBjcmVhdGVfdG9vbHRpcCA9IGZ1bmN0aW9uKGVsZW0sIHRleHQpIHsKICAgIHZhciB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIG5ld190b29sdGlwID0ge307CiAgICBpZiAoZWxlbS50eXBlICE9ICdyYWRpbycgJiYgZWxlbS50eXBlICE9ICdjaGVja2JveCcpIHsKICAgICAgdG9vbHRpcC5jbGFzc05hbWUgPSAnX2Vycm9yJzsKICAgICAgYXJyb3cuY2xhc3NOYW1lID0gJ19lcnJvci1hcnJvdyc7CiAgICAgIGlubmVyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXInOwogICAgICBpbm5lci5pbm5lckhUTUwgPSB0ZXh0OwogICAgICB0b29sdGlwLmFwcGVuZENoaWxkKGFycm93KTsKICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChpbm5lcik7CiAgICAgIGVsZW0ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0b29sdGlwKTsKICAgIH0gZWxzZSB7CiAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJ19lcnJvci1pbm5lciBfbm9fYXJyb3cnOwogICAgICB0b29sdGlwLmlubmVySFRNTCA9IHRleHQ7CiAgICAgIGVsZW0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodG9vbHRpcCwgZWxlbSk7CiAgICAgIG5ld190b29sdGlwLm5vX2Fycm93ID0gdHJ1ZTsKICAgIH0KICAgIG5ld190b29sdGlwLnRpcCA9IHRvb2x0aXA7CiAgICBuZXdfdG9vbHRpcC5lbGVtID0gZWxlbTsKICAgIHRvb2x0aXBzLnB1c2gobmV3X3Rvb2x0aXApOwogICAgcmV0dXJuIG5ld190b29sdGlwOwogIH07CiAgdmFyIHJlc2l6ZV90b29sdGlwID0gZnVuY3Rpb24odG9vbHRpcCkgewogICAgdmFyIHJlY3QgPSB0b29sdGlwLmVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICB2YXIgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBzY3JvbGxQb3NpdGlvbiA9IHJlY3QudG9wIC0gKCh3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jLnNjcm9sbFRvcCkgIC0gKGRvYy5jbGllbnRUb3AgfHwgMCkpOwogICAgaWYgKHNjcm9sbFBvc2l0aW9uIDwgNDApIHsKICAgICAgdG9vbHRpcC50aXAuY2xhc3NOYW1lID0gdG9vbHRpcC50aXAuY2xhc3NOYW1lLnJlcGxhY2UoLyA/KF9hYm92ZXxfYmVsb3cpID8vZywgJycpICsgJyBfYmVsb3cnOwogICAgfSBlbHNlIHsKICAgICAgdG9vbHRpcC50aXAuY2xhc3NOYW1lID0gdG9vbHRpcC50aXAuY2xhc3NOYW1lLnJlcGxhY2UoLyA/KF9hYm92ZXxfYmVsb3cpID8vZywgJycpICsgJyBfYWJvdmUnOwogICAgfQogIH07CiAgdmFyIHJlc2l6ZV90b29sdGlwcyA9IGZ1bmN0aW9uKCkgewogICAgaWYgKF9yZW1vdmVkKSByZXR1cm47CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICghdG9vbHRpcHNbaV0ubm9fYXJyb3cpIHJlc2l6ZV90b29sdGlwKHRvb2x0aXBzW2ldKTsKICAgIH0KICB9OwogIHZhciB2YWxpZGF0ZV9maWVsZCA9IGZ1bmN0aW9uKGVsZW0sIHJlbW92ZSkgewogICAgdmFyIHRvb2x0aXAgPSBudWxsLCB2YWx1ZSA9IGVsZW0udmFsdWUsIG5vX2Vycm9yID0gdHJ1ZTsKICAgIHJlbW92ZSA/IHJlbW92ZV90b29sdGlwKGVsZW0pIDogZmFsc2U7CiAgICBpZiAoZWxlbS50eXBlICE9ICdjaGVja2JveCcpIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUucmVwbGFjZSgvID9faGFzX2Vycm9yID8vZywgJycpOwogICAgaWYgKGVsZW0uZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpICE9PSBudWxsKSB7CiAgICAgIGlmIChlbGVtLnR5cGUgPT0gJ3JhZGlvJyB8fCAoZWxlbS50eXBlID09ICdjaGVja2JveCcgJiYgL2FueS8udGVzdChlbGVtLmNsYXNzTmFtZSkpKSB7CiAgICAgICAgdmFyIGVsZW1zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWxlbS5uYW1lXTsKICAgICAgICBpZiAoIShlbGVtcyBpbnN0YW5jZW9mIE5vZGVMaXN0IHx8IGVsZW1zIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pIHx8IGVsZW1zLmxlbmd0aCA8PSAxKSB7CiAgICAgICAgICBub19lcnJvciA9IGVsZW0uY2hlY2tlZDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbXNbaV0uY2hlY2tlZCkgbm9fZXJyb3IgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5vX2Vycm9yKSB7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlBsZWFzZSBzZWxlY3QgYW4gb3B0aW9uLiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChlbGVtLnR5cGUgPT0nY2hlY2tib3gnKSB7CiAgICAgICAgdmFyIGVsZW1zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWxlbS5uYW1lXSwgZm91bmQgPSBmYWxzZSwgZXJyID0gW107CiAgICAgICAgbm9fZXJyb3IgPSB0cnVlOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGlmIChlbGVtc1tpXS5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgPT09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgaWYgKCFmb3VuZCAmJiBlbGVtc1tpXSAhPT0gZWxlbSkgcmV0dXJuIHRydWU7CiAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUucmVwbGFjZSgvID9faGFzX2Vycm9yID8vZywgJycpOwogICAgICAgICAgaWYgKCFlbGVtc1tpXS5jaGVja2VkKSB7CiAgICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICAgIGVsZW1zW2ldLmNsYXNzTmFtZSA9IGVsZW1zW2ldLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgICAgIGVyci5wdXNoKCJDaGVja2luZyAlcyBpcyByZXF1aXJlZCIucmVwbGFjZSgiJXMiLCBlbGVtc1tpXS52YWx1ZSkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5vX2Vycm9yKSB7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgZXJyLmpvaW4oJzxici8+JykpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChlbGVtLnRhZ05hbWUgPT0gJ1NFTEVDVCcpIHsKICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgIGlmIChlbGVtLm11bHRpcGxlKSB7CiAgICAgICAgICBzZWxlY3RlZCA9IGZhbHNlOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW0ub3B0aW9uc1tpXS5zZWxlY3RlZCkgewogICAgICAgICAgICAgIHNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnNlbGVjdGVkICYmICFlbGVtLm9wdGlvbnNbaV0udmFsdWUpIHsKICAgICAgICAgICAgICBzZWxlY3RlZCA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghc2VsZWN0ZWQpIHsKICAgICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAiUGxlYXNlIHNlbGVjdCBhbiBvcHRpb24uIik7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiBlbGVtLm5hbWUgPT0gJ2VtYWlsJykgewogICAgICBpZiAoIXZhbHVlLm1hdGNoKC9eW1wrX2EtejAtOS0nJj1dKyhcLltcK19hLXowLTktJ10rKSpAW2EtejAtOS1dKyhcLlthLXowLTktXSspKihcLlthLXpdezIsfSkkL2kpKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIkVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4iKTsKICAgICAgfQogICAgfQogICAgaWYgKG5vX2Vycm9yICYmIC9kYXRlX2ZpZWxkLy50ZXN0KGVsZW0uY2xhc3NOYW1lKSkgewogICAgICBpZiAoIXZhbHVlLm1hdGNoKC9eXGRcZFxkXGQtXGRcZC1cZFxkJC8pKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIkVudGVyIGEgdmFsaWQgZGF0ZS4iKTsKICAgICAgfQogICAgfQogICAgdG9vbHRpcCA/IHJlc2l6ZV90b29sdGlwKHRvb2x0aXApIDogZmFsc2U7CiAgICByZXR1cm4gbm9fZXJyb3I7CiAgfTsKICB2YXIgbmVlZHNfdmFsaWRhdGUgPSBmdW5jdGlvbihlbCkgewogICAgcmV0dXJuIGVsLm5hbWUgPT0gJ2VtYWlsJyB8fCBlbC5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgIT09IG51bGw7CiAgfTsKICB2YXIgdmFsaWRhdGVfZm9ybSA9IGZ1bmN0aW9uKGUpIHsKICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKSwgbm9fZXJyb3IgPSB0cnVlOwogICAgaWYgKCFzdWJtaXR0ZWQpIHsKICAgICAgc3VibWl0dGVkID0gdHJ1ZTsKICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFsbElucHV0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgIHZhciBpbnB1dCA9IGFsbElucHV0c1tpXTsKICAgICAgICBpZiAobmVlZHNfdmFsaWRhdGUoaW5wdXQpKSB7CiAgICAgICAgICBpZiAoaW5wdXQudHlwZSA9PSAndGV4dCcpIHsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUudHJpbSgpOwogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudHlwZSA9PSAncmFkaW8nIHx8IGlucHV0LnR5cGUgPT0gJ2NoZWNrYm94JykgewogICAgICAgICAgICAoZnVuY3Rpb24oZWwpIHsKICAgICAgICAgICAgICB2YXIgcmFkaW9zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWwubmFtZV07CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYWRpb3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGFkZEV2ZW50KHJhZGlvc1tpXSwgJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKGVsLCB0cnVlKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkoaW5wdXQpOwogICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC50YWdOYW1lID09ICdTRUxFQ1QnKSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC50eXBlID09ICd0ZXh0YXJlYScpewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmVtb3ZlX3Rvb2x0aXBzKCk7CiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYWxsSW5wdXRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgIHZhciBlbGVtID0gYWxsSW5wdXRzW2ldOwogICAgICBpZiAobmVlZHNfdmFsaWRhdGUoZWxlbSkpIHsKICAgICAgICBpZiAoZWxlbS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJzZWxlY3QiKSB7CiAgICAgICAgICBlbGVtLnZhbHVlID0gZWxlbS52YWx1ZS50cmltKCk7CiAgICAgICAgfQogICAgICAgIHZhbGlkYXRlX2ZpZWxkKGVsZW0pID8gdHJ1ZSA6IG5vX2Vycm9yID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmICghbm9fZXJyb3IgJiYgZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB9CiAgICByZXNpemVfdG9vbHRpcHMoKTsKICAgIHJldHVybiBub19lcnJvcjsKICB9OwogIGFkZEV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScsIHJlc2l6ZV90b29sdGlwcyk7CiAgYWRkRXZlbnQod2luZG93LCAnc2Nyb2xsJywgcmVzaXplX3Rvb2x0aXBzKTsKICB3aW5kb3cuX29sZF9zZXJpYWxpemUgPSBudWxsOwogIGlmICh0eXBlb2Ygc2VyaWFsaXplICE9PSAndW5kZWZpbmVkJykgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICBfbG9hZF9zY3JpcHQoIi8vZDNyeGFpajU2dmplZ2UuY2xvdWRmcm9udC5uZXQvZm9ybS1zZXJpYWxpemUvMC4zL3NlcmlhbGl6ZS5taW4uanMiLCBmdW5jdGlvbigpIHsKICAgIHdpbmRvdy5fZm9ybV9zZXJpYWxpemUgPSB3aW5kb3cuc2VyaWFsaXplOwogICAgaWYgKHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSkgd2luZG93LnNlcmlhbGl6ZSA9IHdpbmRvdy5fb2xkX3NlcmlhbGl6ZTsKICB9KTsKICB2YXIgZm9ybV9zdWJtaXQgPSBmdW5jdGlvbihlKSB7CiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICBpZiAodmFsaWRhdGVfZm9ybSgpKSB7CiAgICAgIC8vIHVzZSB0aGlzIHRyaWNrIHRvIGdldCB0aGUgc3VibWl0IGJ1dHRvbiAmIGRpc2FibGUgaXQgdXNpbmcgcGxhaW4gamF2YXNjcmlwdAogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX2Zvcm1fMjJfc3VibWl0JykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fMjJfJykpOwogICAgICB2YXIgZXJyID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvcignLl9mb3JtX2Vycm9yJyk7CiAgICAgIGVyciA/IGVyci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVycikgOiBmYWxzZTsKICAgICAgX2xvYWRfc2NyaXB0KCdodHRwczovL3NlZXdvcmRyZWFkaW5nLmFjdGl2ZWhvc3RlZC5jb20vcHJvYy5waHA/JyArIHNlcmlhbGl6ZWQgKyAnJmpzb25wPXRydWUnKTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9OwogIGFkZEV2ZW50KGZvcm1fdG9fc3VibWl0LCAnc3VibWl0JywgZm9ybV9zdWJtaXQpOwp9KSgpOwoKPC9zY3JpcHQ+[/fusion_code][/fusion_builder_column][fusion_builder_column type=”1_2″ layout=”1_2″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_image_id=”” background_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” border_radius=”” box_shadow=”no” dimension_box_shadow=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_imageframe image_id=”1509|600″ max_width=”” style_type=”” blur=”” stylecolor=”” hover_type=”none” bordersize=”” bordercolor=”” borderradius=”” align=”right” lightbox=”no” gallery_id=”” lightbox_image=”” lightbox_image_id=”” alt=”” link=”” linktarget=”_self” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=””]https://seewordreading.com/wp-content/uploads/2019/04/unnamed-2-600×400.jpg[/fusion_imageframe][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]