[fusion_builder_container type=”flex” hundred_percent=”yes” hundred_percent_height=”no” hundred_percent_height_scroll=”no” align_content=”stretch” flex_align_items=”flex-start” flex_justify_content=”center” hundred_percent_height_center_content=”yes” equal_height_columns=”no” container_tag=”div” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” border_style=”solid” box_shadow=”no” box_shadow_blur=”0″ box_shadow_spread=”0″ gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ background_blend_mode=”none” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” pattern_bg=”none” pattern_bg_style=”default” pattern_bg_opacity=”100″ pattern_bg_blend_mode=”normal” mask_bg=”none” mask_bg_style=”default” mask_bg_opacity=”100″ mask_bg_transform=”left” mask_bg_blend_mode=”normal” absolute=”off” absolute_devices=”small,medium,large” sticky=”off” sticky_devices=”small-visibility,medium-visibility,large-visibility” sticky_transition_offset=”0″ scroll_offset=”0″ animation_direction=”left” animation_speed=”0.3″ animation_delay=”0″ filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″][fusion_builder_row][fusion_builder_column type=”1_3″ type=”1_3″ align_self=”auto” content_layout=”column” align_content=”flex-start” valign_content=”flex-start” content_wrap=”wrap” center_content=”no” column_tag=”div” target=”_self” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” order_medium=”0″ order_small=”0″ hover_type=”none” border_style=”solid” box_shadow=”no” box_shadow_blur=”0″ box_shadow_spread=”0″ z_index_subgroup=”regular” background_type=”single” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ lazy_load=”avada” background_position=”left top” background_repeat=”no-repeat” background_blend_mode=”none” sticky=”off” sticky_devices=”small-visibility,medium-visibility,large-visibility” absolute=”off” filter_type=”regular” filter_hover_element=”self” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″ transform_type=”regular” transform_hover_element=”self” transform_scale_x=”1″ transform_scale_y=”1″ transform_translate_x=”0″ transform_translate_y=”0″ transform_rotate=”0″ transform_skew_x=”0″ transform_skew_y=”0″ transform_scale_x_hover=”1″ transform_scale_y_hover=”1″ transform_translate_x_hover=”0″ transform_translate_y_hover=”0″ transform_rotate_hover=”0″ transform_skew_x_hover=”0″ transform_skew_y_hover=”0″ transition_duration=”300″ transition_easing=”ease” animation_direction=”left” animation_speed=”0.3″ animation_delay=”0″ last=”no” border_position=”all” min_height=”” link=””][fusion_video loop=”no” autoplay=”yes” mute=”no” box_shadow=”no” box_shadow_blur=”0″ box_shadow_spread=”0″ hide_on_mobile=”small-visibility,medium-visibility,large-visibility” video=”https://jovemmaisbrasil.org/wp-content/uploads/2024/04/Henrique.mp4″ controls=”yes” preload=”auto” /][/fusion_builder_column][fusion_builder_column type=”1_3″ type=”1_3″ layout=”3_5″ align_self=”auto” align_content=”flex-start” center_content=”no” target=”_self” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” order_medium=”0″ order_small=”0″ hover_type=”none” border_color=”hsla(var(–awb-color8-h),var(–awb-color8-s),var(–awb-color8-l),calc( var(–awb-color8-a) – 92% ))” border_style=”solid” box_shadow=”no” box_shadow_blur=”60″ box_shadow_spread=”-8″ box_shadow_color=”hsla(var(–awb-color8-h),var(–awb-color8-s),var(–awb-color8-l),calc( var(–awb-color8-a) – 88% ))” background_type=”single” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_position=”left top” background_repeat=”no-repeat” background_blend_mode=”none” animation_direction=”up” animation_speed=”1.2″ filter_type=”regular” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″ first=”false” last=”true” border_position=”all” box_shadow_vertical=”32px” box_shadow_horizontal=”12px” type_medium=”1_2″ margin_bottom_small=”30px” margin_top_small=”0px” type_small=”1_1″ animation_type=”fade” min_height=”” link=””][fusion_title title_type=”text” rotation_effect=”bounceIn” display_time=”1200″ highlight_effect=”circle” loop_animation=”off” highlight_width=”9″ highlight_top_margin=”0″ title_link=”off” link_target=”_self” content_align=”left” size=”2″ text_shadow=”no” text_shadow_blur=”0″ gradient_font=”no” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ style_type=”default” animation_direction=”left” animation_speed=”0.3″ hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” margin_bottom=”20px” margin_top=”0″ fusion_font_variant_title_font=”var(–awb-typography1)” text_transform=”uppercase” content_align_small=”center”]
Inscreva-se agora
[/fusion_title][fusion_text animation_direction=”left” animation_speed=”0.3″ hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” fusion_font_variant_text_font=”400″ content_alignment_small=”center”]
Garanta sua vaga e destaque-se entre os melhores e mais bem preparados
[/fusion_text][fusion_code]PGRpdiBjbGFzcz0iZnVzaW9uLWZvcm0tZm9ybS13cmFwcGVyIj4KICAgIDxmb3JtIG5hbWU9ImxlYWQiIGlkPSJmb3JtTGVhZCIgY2xhc3M9ImZ1c2lvbi1mb3JtIj4KICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJmdWxsd2lkdGgtYm94IGZ1c2lvbi1idWlsZGVyLXJvdy0zLTEgZnVzaW9uLWZsZXgtY29udGFpbmVyIG5vbmh1bmRyZWQtcGVyY2VudC1mdWxsd2lkdGggbm9uLWh1bmRyZWQtcGVyY2VudC1oZWlnaHQtc2Nyb2xsaW5nIgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1idWlsZGVyLXJvdyBmdXNpb24tcm93IGZ1c2lvbi1mbGV4LWFsaWduLWl0ZW1zLWZsZXgtc3RhcnQiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWxheW91dC1jb2x1bW4gZnVzaW9uX2J1aWxkZXJfY29sdW1uIGZ1c2lvbi1idWlsZGVyLWNvbHVtbi04IGZ1c2lvbl9idWlsZGVyX2NvbHVtbl8xXzEgMV8xIGZ1c2lvbi1mbGV4LWNvbHVtbiIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iCiAgICAgICAgICAgICAgICAgICAgICAgIC0tYXdiLWJnLXNpemU6IGNvdmVyOwogICAgICAgICAgICAgICAgICAgICAgICAtLWF3Yi13aWR0aC1sYXJnZTogMTAwJTsKICAgICAgICAgICAgICAgICAgICAgICAgLS1hd2ItbWFyZ2luLXRvcC1sYXJnZTogMHB4OwogICAgICAgICAgICAgICAgICAgICAgICAtLWF3Yi1zcGFjaW5nLXJpZ2h0LWxhcmdlOiAxLjkyJTsKICAgICAgICAgICAgICAgICAgICAgICAgLS1hd2ItbWFyZ2luLWJvdHRvbS1sYXJnZTogMHB4OwogICAgICAgICAgICAgICAgICAgICAgICAtLWF3Yi1zcGFjaW5nLWxlZnQtbGFyZ2U6IDEuOTIlOwogICAgICAgICAgICAgICAgICAgICAgICAtLWF3Yi13aWR0aC1tZWRpdW06IDEwMCU7CiAgICAgICAgICAgICAgICAgICAgICAgIC0tYXdiLW9yZGVyLW1lZGl1bTogMDsKICAgICAgICAgICAgICAgICAgICAgICAgLS1hd2Itc3BhY2luZy1yaWdodC1tZWRpdW06IDEuOTIlOwogICAgICAgICAgICAgICAgICAgICAgICAtLWF3Yi1zcGFjaW5nLWxlZnQtbWVkaXVtOiAxLjkyJTsKICAgICAgICAgICAgICAgICAgICAgICAgLS1hd2Itd2lkdGgtc21hbGw6IDEwMCU7CiAgICAgICAgICAgICAgICAgICAgICAgIC0tYXdiLW9yZGVyLXNtYWxsOiAwOwogICAgICAgICAgICAgICAgICAgICAgICAtLWF3Yi1zcGFjaW5nLXJpZ2h0LXNtYWxsOiAxLjkyJTsKICAgICAgICAgICAgICAgICAgICAgICAgLS1hd2Itc3BhY2luZy1sZWZ0LXNtYWxsOiAxLjkyJTsKICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWNvbHVtbi13cmFwcGVyIGZ1c2lvbi1jb2x1bW4taGFzLXNoYWRvdyBmdXNpb24tZmxleC1qdXN0aWZ5LWNvbnRlbnQtZmxleC1zdGFydCBmdXNpb24tY29udGVudC1sYXlvdXQtY29sdW1uIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1mb3JtLWZpZWxkIGZ1c2lvbi1mb3JtLXRleHQtZmllbGQgZnVzaW9uLWZvcm0tbGFiZWwtYWJvdmUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0ibWFyZ2luLXRvcDogMC41ZW07IG1hcmdpbi1ib3R0b206IDAuNWVtIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmdXNpb24tZm9ybS1sYWJlbC13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjYW5kaWRhdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5Ob21lIENvbXBsZXRvIGRvIENhbmRpZGF0bzxhYmJyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWZvcm0tZWxlbWVudC1yZXF1aXJlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJSZXF1ZXJpZG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+KjwvYWJicgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9sYWJlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJjYW5kaWRhdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9ImNhbmRpZGF0byIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmdXNpb24tZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJMdcOtcyBBbHZlcyBkZSBMaW1hIGUgU2lsdmEqIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaG9sZHMtcHJpdmF0ZS1kYXRhPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9IjAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmdXNpb24tZm9ybS1maWVsZCBmdXNpb24tZm9ybS1zZWxlY3QtZmllbGQgZnVzaW9uLWZvcm0tbGFiZWwtYWJvdmUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0ibWFyZ2luLXRvcDogMC41ZW07IG1hcmdpbi1ib3R0b206IDAuNWVtIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJpZGFkZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+SWRhZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWJicgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWZvcm0tZWxlbWVudC1yZXF1aXJlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IlJlcXVlcmlkbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPio8L2FiYnIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9sYWJlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVzaW9uLXNlbGVjdC13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJpZGFkZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWRhZGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmdXNpb24tZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaG9sZHMtcHJpdmF0ZS1kYXRhPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiIgZGlzYWJsZWQ9IiIgc2VsZWN0ZWQ9IiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY2lvbmUgYSBpZGFkZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3QtYXJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PSIwIDAgMTIgOCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTEuNSAxLjc1TDYgNi4yNUwxMC41IDEuNzUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjNkQ2RDZEIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0iMiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1mb3JtLWZpZWxkIGZ1c2lvbi1mb3JtLXRleHQtZmllbGQgZnVzaW9uLWZvcm0tbGFiZWwtYWJvdmUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0ibWFyZ2luLXRvcDogMC41ZW07IG1hcmdpbi1ib3R0b206IDAuNWVtIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmdXNpb24tZm9ybS1sYWJlbC13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJyZXNwb25zYXZlbCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPk5vbWUgQ29tcGxldG8gZG8gUmVzcG9uc8OhdmVsPGFiYnIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmdXNpb24tZm9ybS1lbGVtZW50LXJlcXVpcmVkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IlJlcXVlcmlkbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4qPC9hYmJyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2xhYmVsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InJlc3BvbnNhdmVsIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJyZXNwb25zYXZlbCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmdXNpb24tZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJGcmFuY2lzY28gZGUgTGltYSBlIFNpbHZhKiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhvbGRzLXByaXZhdGUtZGF0YT0iZmFsc2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoPSIwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWZvcm0tZmllbGQgZnVzaW9uLWZvcm0tcGhvbmUtbnVtYmVyLWZpZWxkIGZ1c2lvbi1mb3JtLWxhYmVsLWFib3ZlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9Im1hcmdpbi10b3A6IDAuNWVtOyBtYXJnaW4tYm90dG9tOiAwLjVlbSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVzaW9uLWZvcm0tbGFiZWwtd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0id2hhdHNhcHAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5XaGF0c0FwcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWJicgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1mb3JtLWVsZW1lbnQtcmVxdWlyZWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iUmVxdWVyaWRvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPio8L2FiYnIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGFiZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1c2lvbi1mb3JtLWlucHV0LXdpdGgtaWNvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImF3Yi1mb3JtLWljb24gZmEtd2hhdHNhcHAgZmFiIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRlbCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0id2hhdHNhcHAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJ3aGF0c2FwcCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1mb3JtLWlucHV0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IjExIDkwMDAwLTAwMDAqIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhvbGRzLXByaXZhdGUtZGF0YT0iZmFsc2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm49Ii57MTIsMTN9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9IjEyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1c2lvbi1mb3JtLWZpZWxkIGZ1c2lvbi1mb3JtLWVtYWlsLWZpZWxkIGZ1c2lvbi1mb3JtLWxhYmVsLWFib3ZlIiBzdHlsZT0iCm1hcmdpbi10b3A6IDAuNWVtOwptYXJnaW4tYm90dG9tOiAwLjVlbTsKIj4KPGRpdiBjbGFzcz0iZnVzaW9uLWZvcm0tbGFiZWwtd3JhcHBlciI+PGxhYmVsIGZvcj0iZW1haWwiPkVtYWlsPC9sYWJlbD48L2Rpdj4KPGRpdiBjbGFzcz0iZnVzaW9uLWZvcm0taW5wdXQtd2l0aC1pY29uIj4KPGkgY2xhc3M9ImF3Yi1mb3JtLWljb24gZmEtZW52ZWxvcGUgZmFyIj48L2k+CjxpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0iZW1haWwiIGlkPSJlbWFpbCIgdmFsdWU9IiIgY2xhc3M9ImZ1c2lvbi1mb3JtLWlucHV0IgpwbGFjZWhvbGRlcj0iZHVxdWVkZWNheGlhc0BlYi5taWwuYnIiIGRhdGEtaG9sZHMtcHJpdmF0ZS1kYXRhPSJmYWxzZSI+CjwvZGl2Pgo8L2Rpdj4gLS0+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWZvcm0tZmllbGQgZnVzaW9uLWZvcm0tc2VsZWN0LWZpZWxkIGZ1c2lvbi1mb3JtLWxhYmVsLWFib3ZlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9Im1hcmdpbi10b3A6IDAuNWVtOyBtYXJnaW4tYm90dG9tOiAwLjVlbSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iaG9yYXJpbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+SG9yw6FyaW8gZGEgcGFsZXN0cmE8YWJicgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWZvcm0tZWxlbWVudC1yZXF1aXJlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IlJlcXVlcmlkbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPio8L2FiYnIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9sYWJlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVzaW9uLXNlbGVjdC13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJob3JhcmlvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJob3JhcmlvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhvbGRzLXByaXZhdGUtZGF0YT0iZmFsc2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiIGRpc2FibGVkPSIiIHNlbGVjdGVkPSIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWNpb25lIG8gbWVsaG9yIGhvcsOhcmlvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9Ik1hbmjDoyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwOTowMCI+MDk6MDA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjExOjAwIj4xMTowMDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGdyb3VwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9IlRhcmRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEzOjAwIj4xMzowMDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGdyb3VwPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3QtYXJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PSIwIDAgMTIgOCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTEuNSAxLjc1TDYgNi4yNUwxMC41IDEuNzUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjNkQ2RDZEIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0iMiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1mb3JtLWZpZWxkIGZ1c2lvbi1mb3JtLXNlbGVjdC1maWVsZCBmdXNpb24tZm9ybS1sYWJlbC1hYm92ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJyZWdpYW8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlVuaWRhZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWJicgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWZvcm0tZWxlbWVudC1yZXF1aXJlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IlJlcXVlcmlkbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPio8L2FiYnIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9sYWJlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVzaW9uLXNlbGVjdC13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJyZWdpYW8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InJlZ2lhbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1mb3JtLWlucHV0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ob2xkcy1wcml2YXRlLWRhdGE9ImZhbHNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxlZD0iIiBzZWxlY3RlZD0iIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjaW9uZSBhIHVuaWRhZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0LWFycm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSI4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDEyIDgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0xLjUgMS43NUw2IDYuMjVMMTAuNSAxLjc1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iIzZENkQ2RCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9IjIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmdXNpb24tYWxlcnQgYWxlcnQgZ2VuZXJhbCBhbGVydC1pbmZvIGZ1c2lvbi1hbGVydC1sZWZ0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9ImFsZXJ0X3VuaWRhZGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1hd2ItbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWF3Yi1tYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJhbGVydCIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVzaW9uLWFsZXJ0LWNvbnRlbnQtd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFsZXJ0LWljb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImF3Yi1pY29uLWluZm8tY2lyY2xlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+PC9zcGFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPSJmdXNpb24tYWxlcnQtY29udGVudCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlVOSURBREUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz0ibm9tZV9yZWdpYW8iPkRJQURFTUE8L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oCUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+QWx0ZXJhciB1bmlkYWRlPC9hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4uPC9zcGFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1mb3JtLWZpZWxkIGZ1c2lvbi1mb3JtLXN1Ym1pdC1maWVsZCBmdXNpb24tZm9ybS1sYWJlbC1hYm92ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJtYXJnaW4tdG9wOiAwLjVlbTsgbWFyZ2luLWJvdHRvbTogMC41ZW0iCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJzdWJtaXRfbGVhZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1idXR0b24gYnV0dG9uLWZsYXQgZnVzaW9uLWJ1dHRvbi1kZWZhdWx0LXNpemUgYnV0dG9uLWN1c3RvbSBmdXNpb24tYnV0dG9uLWRlZmF1bHQgYnV0dG9uLTIgZnVzaW9uLWJ1dHRvbi1zcGFuLXllcyBmb3JtLWZvcm0tc3VibWl0IGJ1dHRvbi1kZWZhdWx0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhvdmVyPSJ0ZXh0X3NsaWRlX3VwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXdiLWJ1dHRvbi10ZXh0LXRyYW5zaXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZ1c2lvbi1idXR0b24tdGV4dCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Q29udGludWFyPC9zcGFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZnVzaW9uLWJ1dHRvbi10ZXh0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5Db250aW51YXI8L3NwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGlucHV0CiAgICAgICAgICAgIG5hbWU9InV0bV9zb3VyY2UiCiAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgaWQ9InV0bV9zb3VyY2UiCiAgICAgICAgICAgIHZhbHVlPSJPcmfDom5pY28iCiAgICAgICAgLz4KICAgICAgICA8aW5wdXQKICAgICAgICAgICAgbmFtZT0idXRtX21lZGl1bSIKICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICBpZD0idXRtX21lZGl1bSIKICAgICAgICAgICAgdmFsdWU9Ik9yZ8OibmljbyIKICAgICAgICAvPgogICAgICAgIDxpbnB1dAogICAgICAgICAgICBuYW1lPSJ1dG1fY2FtcGFpZ24iCiAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgaWQ9InV0bV9jYW1wYWlnbiIKICAgICAgICAgICAgdmFsdWU9Ik9yZ8OibmljbyIKICAgICAgICAvPgogICAgICAgIDxpbnB1dCBuYW1lPSJub21lX3JlZ2lhbyIgdHlwZT0iaGlkZGVuIiBpZD0ibm9tZV9yZWdpYW8iIC8+CiAgICAgICAgPGlucHV0CiAgICAgICAgICAgIG5hbWU9ImN1cnNvIgogICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgIGlkPSJjdXJzbyIKICAgICAgICAgICAgdmFsdWU9IjE2IgogICAgICAgICAgICBkYXRhLW5vbWU9IklQTUlMIgogICAgICAgIC8+CiAgICAgICAgPGlucHV0IG5hbWU9ImZyYW5xdWlhIiB0eXBlPSJoaWRkZW4iIGlkPSJmcmFucXVpYSIgdmFsdWU9IklQTUlMIiAvPgogICAgICAgIDxpbnB1dCBpZD0ic2l0ZSIgbmFtZT0ic2l0ZSIgdHlwZT0iaGlkZGVuIiAvPgogICAgICAgIDxpbnB1dCBpZD0ic2l0ZV9yZWZlcnJlciIgbmFtZT0ic2l0ZV9yZWZlcnJlciIgdHlwZT0iaGlkZGVuIiAvPgogICAgICAgIDxpbnB1dCBpZD0iaWRfZXZlbnQiIHR5cGU9ImhpZGRlbiIgbmFtZT0iaWRfZXZlbnQiIC8+CiAgICA8L2Zvcm0+CiAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImZ1c2lvbi1idWlsZGVyLXJvdyBmdXNpb24tYnVpbGRlci1yb3ctaW5uZXIgZnVzaW9uLXJvdyBmdXNpb24tZmxleC1hbGlnbi1pdGVtcy1mbGV4LXN0YXJ0IgogICAgICAgIGlkPSJjb25maXJtX2xlYWQiCiAgICAgICAgc3R5bGU9IgogICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMTAwcHgpICFpbXBvcnRhbnQ7CiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlICsgMTAwcHgpICFpbXBvcnRhbnQ7CiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xMDBweCAvIDIpOwogICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEwMHB4IC8gMik7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgIgogICAgPgogICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1sYXlvdXQtY29sdW1uIGZ1c2lvbl9idWlsZGVyX2NvbHVtbl9pbm5lciBmdXNpb24tYnVpbGRlci1uZXN0ZWQtY29sdW1uLTEgZnVzaW9uX2J1aWxkZXJfY29sdW1uX2lubmVyXzFfMSAxXzEgZnVzaW9uLWZsZXgtY29sdW1uIgogICAgICAgICAgICBzdHlsZT0iCiAgICAgICAgICAgICAgICAtLWF3Yi1iZy1zaXplOiBjb3ZlcjsKICAgICAgICAgICAgICAgIC0tYXdiLXdpZHRoLWxhcmdlOiAxMDAlOwogICAgICAgICAgICAgICAgLS1hd2ItbWFyZ2luLXRvcC1sYXJnZTogMHB4OwogICAgICAgICAgICAgICAgLS1hd2Itc3BhY2luZy1yaWdodC1sYXJnZTogNTBweDsKICAgICAgICAgICAgICAgIC0tYXdiLW1hcmdpbi1ib3R0b20tbGFyZ2U6IDIwcHg7CiAgICAgICAgICAgICAgICAtLWF3Yi1zcGFjaW5nLWxlZnQtbGFyZ2U6IDUwcHg7CiAgICAgICAgICAgICAgICAtLWF3Yi13aWR0aC1tZWRpdW06IDEwMCU7CiAgICAgICAgICAgICAgICAtLWF3Yi1vcmRlci1tZWRpdW06IDA7CiAgICAgICAgICAgICAgICAtLWF3Yi1zcGFjaW5nLXJpZ2h0LW1lZGl1bTogNTBweDsKICAgICAgICAgICAgICAgIC0tYXdiLXNwYWNpbmctbGVmdC1tZWRpdW06IDUwcHg7CiAgICAgICAgICAgICAgICAtLWF3Yi13aWR0aC1zbWFsbDogMTAwJTsKICAgICAgICAgICAgICAgIC0tYXdiLW9yZGVyLXNtYWxsOiAwOwogICAgICAgICAgICAgICAgLS1hd2Itc3BhY2luZy1yaWdodC1zbWFsbDogNTBweDsKICAgICAgICAgICAgICAgIC0tYXdiLXNwYWNpbmctbGVmdC1zbWFsbDogNTBweDsKICAgICAgICAgICAgIgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImZ1c2lvbi1jb2x1bW4td3JhcHBlciBmdXNpb24tY29sdW1uLWhhcy1zaGFkb3cgZnVzaW9uLWZsZXgtanVzdGlmeS1jb250ZW50LWZsZXgtc3RhcnQgZnVzaW9uLWNvbnRlbnQtbGF5b3V0LWNvbHVtbiIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmdXNpb24tdGl0bGUgdGl0bGUgZnVzaW9uLXRpdGxlLTkgZnVzaW9uLXNlcC1ub25lIGZ1c2lvbi10aXRsZS1jZW50ZXIgZnVzaW9uLXRpdGxlLXRleHQgZnVzaW9uLXRpdGxlLXNpemUtZml2ZSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8aDUKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRpdGxlLWhlYWRpbmctY2VudGVyIGZ1c2lvbi1yZXNwb25zaXZlLXR5cG9ncmFwaHktY2FsY3VsYXRlZCIKICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWZvbnRTaXplOiAyMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLW1pbkZvbnRTaXplOiAyMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZvbnRzaXplPSIyMCIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1saW5laGVpZ2h0PSIyOHB4IgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgRmFsZSBhZ29yYSBjb20gdW0gZXNwZWNpYWxpc3RhIGVtIENhcnJlaXJhcyBNaWxpdGFyZXMhCiAgICAgICAgICAgICAgICAgICAgPC9oNT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmdXNpb24tdGV4dCBmdXNpb24tdGV4dC02IgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLWF3Yi1jb250ZW50LWFsaWdubWVudDogY2VudGVyIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+Q2xpcXVlIG5vIGJvdMOjbyBhYmFpeG88L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZnVzaW9uLWJ1dHRvbiBidXR0b24tZmxhdCBmdXNpb24tYnV0dG9uLWRlZmF1bHQtc2l6ZSBidXR0b24tY3VzdG9tIGZ1c2lvbi1idXR0b24tZGVmYXVsdCBidXR0b24tMiBmdXNpb24tYnV0dG9uLWRlZmF1bHQtc3BhbiBmdXNpb24tYnV0dG9uLWRlZmF1bHQtdHlwZSIKICAgICAgICAgICAgICAgICAgICAgICAgaWQ9ImJ0bl9saW5rX3dwcCIKICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1idXR0b25fYWNjZW50X2NvbG9yOiB2YXIoLS1hd2ItY29sb3IxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tYnV0dG9uX2FjY2VudF9ob3Zlcl9jb2xvcjogdmFyKC0tYXdiLWNvbG9yMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWJ1dHRvbl9ib3JkZXJfaG92ZXJfY29sb3I6IHZhcigtLWF3Yi1jb2xvcjEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1idXR0b25fZ3JhZGllbnRfdG9wX2NvbG9yOiAjMDc1ZTU0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1idXR0b25fZ3JhZGllbnRfYm90dG9tX2NvbG9yOiAjMDc1ZTU0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1idXR0b25fZ3JhZGllbnRfdG9wX2NvbG9yX2hvdmVyOiAjMDA4ZTZiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1idXR0b25fZ3JhZGllbnRfYm90dG9tX2NvbG9yX2hvdmVyOiAjMDA4ZTZiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZS13aWR0aDogMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogYXV0byAhaW1wb3J0YW50OwogICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiCiAgICAgICAgICAgICAgICAgICAgICAgID48aQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZhLXdoYXRzYXBwIGZhYiBidXR0b24taWNvbi1sZWZ0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgID48L2kKICAgICAgICAgICAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPSJmdXNpb24tYnV0dG9uLXRleHQiPldoYXRzQXBwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KCjxzY3JpcHQgc3JjPSJodHRwczovL3VucGtnLmNvbS92YW5pbGxhLW1hc2tlckAxLjEuMS9idWlsZC92YW5pbGxhLW1hc2tlci5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9zd2VldGFsZXJ0MkAxMSI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgICAvLyBDbGFzc2UgcGFyYSB1dGlsaWRhZGVzCiAgICBjbGFzcyBVdGlscyB7CiAgICAgICAgLy8gUmV0b3JuYSBvIHZhbG9yIGRvIHBhcsOibWV0cm8gZXNwZWNpZmljYWRvIG5hIFVSTAogICAgICAgIHN0YXRpYyBnZXRQYXJhbXMocGFyYW0pIHsKICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsKICAgICAgICAgICAgcmV0dXJuIHBhcmFtcy5nZXQocGFyYW0pIHx8IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgLy8gQ29udmVydGUgYSBwcmltZWlyYSBsZXRyYSBkZSBjYWRhIHBhbGF2cmEgZW0gbWFpw7pzY3VsYSBlIG8gcmVzdGFudGUgZW0gbWluw7pzY3VsYQogICAgICAgIHN0YXRpYyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoc3RyKSB7CiAgICAgICAgICAgIHJldHVybiBzdHIKICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpCiAgICAgICAgICAgICAgICAuc3BsaXQoIiAiKQogICAgICAgICAgICAgICAgLm1hcCgod29yZCkgPT4gewogICAgICAgICAgICAgICAgICAgIHJldHVybiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKTsKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuam9pbigiICIpOwogICAgICAgIH0KCiAgICAgICAgLy8gUmV0b3JuYSBvcyBwYXLDom1ldHJvcyBkYSBVUkwgY29tbyBvYmpldG8KICAgICAgICBzdGF0aWMgZ2V0U2VhcmNoUGFyYW1ldGVycygpIHsKICAgICAgICAgICAgY29uc3QgcHJtc3RyID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHIoMSk7CiAgICAgICAgICAgIHJldHVybiBwcm1zdHIgPyB0aGlzLnRyYW5zZm9ybVRvQXNzb2NBcnJheShwcm1zdHIpIDoge307CiAgICAgICAgfQoKICAgICAgICAvLyBUcmFuc2Zvcm1hIHVtYSBzdHJpbmcgZGUgcGFyw6JtZXRyb3MgZW0gdW0gb2JqZXRvIGFzc29jaWF0aXZvCiAgICAgICAgc3RhdGljIHRyYW5zZm9ybVRvQXNzb2NBcnJheShwcm1zdHIpIHsKICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge307CiAgICAgICAgICAgIGNvbnN0IHBybWFyciA9IHBybXN0ci5zcGxpdCgiJiIpOwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBybWFyci5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgY29uc3QgdG1wYXJyID0gcHJtYXJyW2ldLnNwbGl0KCI9Iik7CiAgICAgICAgICAgICAgICBwYXJhbXNbdG1wYXJyWzBdXSA9IGRlY29kZVVSSUNvbXBvbmVudCh0bXBhcnJbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBwYXJhbXM7CiAgICAgICAgfQoKICAgICAgICAvLyBSZXRvcm5hIG9zIGNvb2tpZXMgZGEgcMOhZ2luYSBjb21vIG9iamV0bwogICAgICAgIHN0YXRpYyBnZXRTZWFyY2hDb29raWVzKCkgewogICAgICAgICAgICBjb25zdCBwcm1zdHIgPSBkb2N1bWVudC5jb29raWU7CiAgICAgICAgICAgIHJldHVybiBwcm1zdHIgPyB0aGlzLnRyYW5zZm9ybUNvb2tpZXNUb0Fzc29jQXJyYXkocHJtc3RyKSA6IHt9OwogICAgICAgIH0KCiAgICAgICAgLy8gVHJhbnNmb3JtYSB1bWEgc3RyaW5nIGRlIGNvb2tpZXMgZW0gdW0gb2JqZXRvIGFzc29jaWF0aXZvCiAgICAgICAgc3RhdGljIHRyYW5zZm9ybUNvb2tpZXNUb0Fzc29jQXJyYXkocHJtc3RyKSB7CiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt9OwogICAgICAgICAgICBjb25zdCBwcm1hcnIgPSBwcm1zdHIuc3BsaXQoIjsiKTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm1hcnIubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGNvbnN0IHRtcGFyciA9IHBybWFycltpXS5zcGxpdCgiPSIpOwogICAgICAgICAgICAgICAgcGFyYW1zW3RtcGFyclswXS50cmltKCldID0gZGVjb2RlVVJJKHRtcGFyclsxXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHBhcmFtczsKICAgICAgICB9CgogICAgICAgIC8vIFJldG9ybmEgdW0gYXJyYXkgY29tIGFzIGNoYXZlcyBlIHZhbG9yZXMgZG8gb2JqZXRvIHBhc3NhZG8KICAgICAgICBzdGF0aWMgbmV3T2JqKGFycmF5LCB2YWx1ZXMgPSBmYWxzZSkgewogICAgICAgICAgICBpZiAoIXZhbHVlcykgewogICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGFycmF5KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKGFycmF5KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gUmV0b3JuYSB1bSBJRCDDum5pY28KICAgICAgICBzdGF0aWMgdW5pcXVlSWQobGVuZ3RoID0gMTYpIHsKICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KAogICAgICAgICAgICAgICAgTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKQogICAgICAgICAgICAgICAgICAgIC50b1ByZWNpc2lvbihsZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgLnRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgiLiIsICIiKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgLy8gRnVuw6fDo28gcGFyYSB2ZXJpZmljYXIgc2UgdW1hIHN0cmluZyBjb250w6ltIG91dHJhCiAgICAgICAgc3RhdGljIHN0cnBvcyhoYXlzdGFjaywgbmVlZGxlLCBvZmZzZXQpIHsKICAgICAgICAgICAgY29uc3QgaSA9IChoYXlzdGFjayArICIiKS5pbmRleE9mKG5lZWRsZSwgb2Zmc2V0IHx8IDApOwogICAgICAgICAgICByZXR1cm4gaSA9PT0gLTEgPyBmYWxzZSA6IHRydWU7CiAgICAgICAgfQoKICAgICAgICAvLyBGdW7Dp8OjbyBwYXJhIGZvcm1hdGFyIGlucHV0IGRlIHRlbGVmb25lIGNvbSBtw6FzY2FyYQogICAgICAgIHN0YXRpYyBpbnB1dEhhbmRsZXIobWFza3MsIG1heCwgZXZlbnQpIHsKICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQ7CiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQudmFsdWUucmVwbGFjZSgvXEQvZywgIiIpOwogICAgICAgICAgICBjb25zdCBtYXNrSW5kZXggPSBpbnB1dC52YWx1ZS5sZW5ndGggPiBtYXggPyAxIDogMDsKICAgICAgICAgICAgVk1hc2tlcihpbnB1dCkudW5NYXNrKCk7CiAgICAgICAgICAgIFZNYXNrZXIoaW5wdXQpLm1hc2tQYXR0ZXJuKG1hc2tzW21hc2tJbmRleF0pOwogICAgICAgICAgICBpbnB1dC52YWx1ZSA9IFZNYXNrZXIudG9QYXR0ZXJuKHZhbHVlLCBtYXNrc1ttYXNrSW5kZXhdKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gQ2xhc3NlIHBhcmEgcmVxdWlzacOnw7VlcyBkZSByZWRlCiAgICBjbGFzcyBOZXR3b3JrIHsKICAgICAgICAvKioKICAgICAgICAgKiBDb25zdWx0YSBhIFVSTCBpbmZvcm1hZGEgY29tIG8gbcOpdG9kbyBQT1NULCBlbnZpYW5kbyBvcyBkYWRvcyBkYSByZXF1aXNpw6fDo28gY29tbyBwYXLDom1ldHJvLgogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtIC0gVW0gb2JqZXRvIGNvbSBhcyBwcm9wcmllZGFkZXMgVVJMIGUgRGF0YS4KICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW0uVVJMIC0gQSBVUkwgcXVlIHNlcsOhIGNvbnN1bHRhZGEuCiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtLkRhdGEgLSBVbSBvYmpldG8gY29udGVuZG8gb3MgZGFkb3MgZGEgcmVxdWlzacOnw6NvLgogICAgICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSAtIFVtYSBwcm9tZXNzYSBjb20gbyByZXN1bHRhZG8gZGEgY29uc3VsdGEuCiAgICAgICAgICovCiAgICAgICAgc3RhdGljIGFzeW5jIENvbnN1bHQoeyBVUkwsIERhdGEgfSkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChVUkwsIHsKICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICJQT1NUIiwKICAgICAgICAgICAgICAgICAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKERhdGEpLnRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgICAgICAgICAgICAiQ29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsgLy8gTm9ybWFsbWVudGUgdm9jw6ogcXVlciB0cmFuc2Zvcm1hciBhIHJlc3Bvc3RhIGVtIEpTT04KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBJbnNlcmUgZGFkb3MgbmEgVVJMIGluZm9ybWFkYSBjb20gbyBtw6l0b2RvIFBPU1QuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gVVJMIC0gQSBVUkwgcXVlIHJlY2ViZXLDoSBvcyBkYWRvcy4KICAgICAgICAgKiBAcGFyYW0ge0Zvcm1EYXRhfSBEYXRhIC0gVW0gb2JqZXRvIEZvcm1EYXRhIGNvbnRlbmRvIG9zIGRhZG9zIGEgc2VyZW0gaW5zZXJpZG9zLgogICAgICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSAtIFVtYSBwcm9tZXNzYSBjb20gbyByZXN1bHRhZG8gZGEgaW5zZXLDp8Ojby4KICAgICAgICAgKi8KICAgICAgICBzdGF0aWMgYXN5bmMgSW5zZXJ0KFVSTCwgRGF0YSkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChVUkwsIHsKICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICJQT1NUIiwKICAgICAgICAgICAgICAgICAgICBib2R5OiBEYXRhLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpOyAvLyBOb3JtYWxtZW50ZSB2b2PDqiBxdWVyIHRyYW5zZm9ybWFyIGEgcmVzcG9zdGEgZW0gSlNPTgogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHN0YXRpYyBhc3luYyBmZXRjaEFkZGl0aW9uYWxJbmZvKAogICAgICAgICAgICBmb3JtLAogICAgICAgICAgICB1cmwgPSAiaHR0cHM6Ly93d3cuY2xvdWRmbGFyZS5jb20vY2RuLWNnaS90cmFjZSIKICAgICAgICApIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsKICAgICAgICAgICAgICAgIGxldCBkYXRhID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpOwoKICAgICAgICAgICAgICAgIC8vIENvbnZlcnRlIG8gcmVzdWx0YWRvIHBhcmEgdW0gb2JqZXRvCiAgICAgICAgICAgICAgICBkYXRhID0gZGF0YQogICAgICAgICAgICAgICAgICAgIC50cmltKCkKICAgICAgICAgICAgICAgICAgICAuc3BsaXQoIlxuIikKICAgICAgICAgICAgICAgICAgICAucmVkdWNlKChvYmosIHBhaXIpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFpci5zcGxpdCgiPSIpOwogICAgICAgICAgICAgICAgICAgICAgICBvYmpba2V5XSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqOwogICAgICAgICAgICAgICAgICAgIH0sIHt9KTsKCiAgICAgICAgICAgICAgICAvLyBBZGljaW9uYSBhcyBpbmZvcm1hw6fDtWVzIGRvIG9iamV0byDDoHMgcHJvcHJpZWRhZGVzIGRvIGZvcm11bMOhcmlvCiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChba2V5LCB2YWxdKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGjDrWZlbnMgZSBzdWJsaW5oYWRvcyBkbyBub21lIGRhIHByb3ByaWVkYWRlCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkS2V5ID0ga2V5LnJlcGxhY2VBbGwoLy18Xy9nLCAiIik7CiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1bZm9ybWF0dGVkS2V5XSkgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JtW2Zvcm1hdHRlZEtleV0udmFsdWUgPSB2YWw7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5uYW1lID0gZm9ybWF0dGVkS2V5OwogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbDsKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQudHlwZSA9ICJoaWRkZW4iOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkFuIGVycm9yIG9jY3VycmVkOiIsIGVycm9yKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjbGFzcyBDb29raWVBbmRVUkxNYW5hZ2VyIHsKICAgICAgICBzdGF0aWMgZmlsbEZvcm1Gcm9tVVJMUGFyYW1ldGVycyhmb3JtKSB7CiAgICAgICAgICAgIC8vIFBlZ2FyIG9zIHBhcsOibWV0cm9zIGRhIFVSTCBjb21vIHVtIG9iamV0bwogICAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBVdGlscy5nZXRTZWFyY2hQYXJhbWV0ZXJzKCk7CgogICAgICAgICAgICAvLyBJdGVyYXIgc29icmUgY2FkYSBwYXLDom1ldHJvIGUgcHJlZW5jaGVyIG8gZm9ybXVsw6FyaW8gY29ycmVzcG9uZGVudGUKICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModXJsUGFyYW1zKSkgewogICAgICAgICAgICAgICAgLy8gQ29udmVydGEgaMOtZmVucyBlIHN1YmxpbmhhZG9zIHBhcmEgdW1hIHN0cmluZyBjYW1lbENhc2UsIHNlIG5lY2Vzc8OhcmlvCiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRLZXkgPSBrZXkucmVwbGFjZUFsbCgvLXxfL2csICIiKTsKCiAgICAgICAgICAgICAgICAvLyBWZXJpZmljYXIgc2UgbyBmb3JtdWzDoXJpbyB0ZW0gdW0gY2FtcG8gY29tIG8gbm9tZSBjb3JyZXNwb25kZW50ZQogICAgICAgICAgICAgICAgaWYgKGZvcm1bZm9ybWF0dGVkS2V5XSkgewogICAgICAgICAgICAgICAgICAgIGZvcm1bZm9ybWF0dGVkS2V5XS52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBTZSBvIGZvcm11bMOhcmlvIG7Do28gdGVtIHVtIGNhbXBvIGNvbSBlc3NlIG5vbWUsIGNyaWFyIHVtIGlucHV0IGVzY29uZGlkbwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5uYW1lID0gZm9ybWF0dGVkS2V5OwogICAgICAgICAgICAgICAgICAgIGlucHV0LnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQudHlwZSA9ICJoaWRkZW4iOwogICAgICAgICAgICAgICAgICAgIGZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBzdGF0aWMgZmlsbEZvcm1Gcm9tQ29va2llcyhmb3JtKSB7CiAgICAgICAgICAgIC8vIE9idMOpbSBvcyBjb29raWVzIGNvbW8gdW0gb2JqZXRvCiAgICAgICAgICAgIGNvbnN0IGNvb2tpZXMgPSBVdGlscy5nZXRTZWFyY2hDb29raWVzKCk7CgogICAgICAgICAgICAvLyBJdGVyYSBzb2JyZSBjYWRhIGNvb2tpZSBlIHByZWVuY2hlIG8gZm9ybXVsw6FyaW8gY29ycmVzcG9uZGVudGUKICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29va2llcykpIHsKICAgICAgICAgICAgICAgIC8vIENvbnZlcnRlIGjDrWZlbnMgZSBzdWJsaW5oYWRvcyBwYXJhIHVtYSBzdHJpbmcgY2FtZWxDYXNlLCBzZSBuZWNlc3PDoXJpbwogICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkS2V5ID0ga2V5LnJlcGxhY2VBbGwoLy18Xy9nLCAiIik7CgogICAgICAgICAgICAgICAgLy8gVmVyaWZpY2Egc2UgbyBmb3JtdWzDoXJpbyB0ZW0gdW0gY2FtcG8gY29tIG8gbm9tZSBjb3JyZXNwb25kZW50ZQogICAgICAgICAgICAgICAgaWYgKGZvcm1bZm9ybWF0dGVkS2V5XSkgewogICAgICAgICAgICAgICAgICAgIGZvcm1bZm9ybWF0dGVkS2V5XS52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBTZSBvIGZvcm11bMOhcmlvIG7Do28gdGVtIHVtIGNhbXBvIGNvbSBlc3NlIG5vbWUsIGNyaWFyIHVtIGlucHV0IGVzY29uZGlkbwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5uYW1lID0gZm9ybWF0dGVkS2V5OwogICAgICAgICAgICAgICAgICAgIGlucHV0LnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQudHlwZSA9ICJoaWRkZW4iOwogICAgICAgICAgICAgICAgICAgIGZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGNsYXNzIEV2ZW50VHJhY2tlciB7CiAgICAgICAgLy8gTcOpdG9kbyBwYXJhIGVudmlhciBldmVudG9zIGFvIEdvb2dsZSBUYWcgTWFuYWdlcgogICAgICAgIHN0YXRpYyBzZW5kR1RNRXZlbnQoZXZlbnQsIGRhdGEgPSB7fSkgewogICAgICAgICAgICBpZiAod2luZG93LmRhdGFMYXllcikgewogICAgICAgICAgICAgICAgd2luZG93LmRhdGFMYXllci5wdXNoKHsKICAgICAgICAgICAgICAgICAgICBldmVudCwKICAgICAgICAgICAgICAgICAgICAuLi5kYXRhLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oIkdvb2dsZSBUYWcgTWFuYWdlciBuw6NvIGVzdMOhIGluaWNpYWxpemFkbyIpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBNw6l0b2RvIHBhcmEgZW52aWFyIGV2ZW50b3MgcGFkcsOjbyBhbyBGYWNlYm9vayBBZHMKICAgICAgICBzdGF0aWMgc2VuZEZCU3RhbmRhcmRFdmVudChldmVudCwgZGF0YSA9IHt9LCBvcHRpb25zID0ge30pIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBmYnEgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgICAgICBmYnEoInRyYWNrIiwgZXZlbnQsIGRhdGEsIG9wdGlvbnMpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCJGYWNlYm9vayBQaXhlbCBuw6NvIGVzdMOhIGluaWNpYWxpemFkbyIpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBNw6l0b2RvIHBhcmEgZW52aWFyIGV2ZW50b3MgY3VzdG9taXphZG9zIGFvIEZhY2Vib29rIEFkcwogICAgICAgIHN0YXRpYyBzZW5kRkJDdXN0b21FdmVudChldmVudCwgZGF0YSA9IHt9LCBvcHRpb25zID0ge30pIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBmYnEgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgICAgICBmYnEoInRyYWNrQ3VzdG9tIiwgZXZlbnQsIGRhdGEsIG9wdGlvbnMpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCJGYWNlYm9vayBQaXhlbCBuw6NvIGVzdMOhIGluaWNpYWxpemFkbyIpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBNw6l0b2RvIHBhcmEgZW52aWFyIGV2ZW50b3MgcGFkcsOjbyBvdSBjdXN0b21pemFkb3MsIGJhc2VhZG8gbmEgcGxhdGFmb3JtYQogICAgICAgIHN0YXRpYyBzZW5kRXZlbnQocGxhdGZvcm0sIHR5cGUsIGV2ZW50LCBkYXRhID0ge30sIG9wdGlvbnMgPSB7fSkgewogICAgICAgICAgICBzd2l0Y2ggKHBsYXRmb3JtKSB7CiAgICAgICAgICAgICAgICBjYXNlICJHVE0iOgogICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZEdUTUV2ZW50KGV2ZW50LCBkYXRhKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIkZCIjoKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gInN0YW5kYXJkIikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRGQlN0YW5kYXJkRXZlbnQoZXZlbnQsIGRhdGEsIG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gImN1c3RvbSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kRkJDdXN0b21FdmVudChldmVudCwgZGF0YSwgb3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oIlBsYXRhZm9ybWEgbsOjbyBzdXBvcnRhZGEiKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjbGFzcyBHb29nbGVTaGVldE1hbmFnZXIgewogICAgICAgIHN0YXRpYyBhc3luYyBzZW5kVG9TaGVldChkYXRhKSB7CiAgICAgICAgICAgIGNvbnN0IHVybCA9CiAgICAgICAgICAgICAgICAiaHR0cHM6Ly9zY3JpcHQuZ29vZ2xlLmNvbS9tYWNyb3Mvcy9BS2Z5Y2J6TTY3Qmswa1kxRDNtNVNONEMtU2dvbEYtUjRzeUpPUDN1YnNVVDkxWWU1SHNlSUYxYWtVMHBseTdUZGh4WkhReHpqQS9leGVjIjsKICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gewogICAgICAgICAgICAgICAgbWV0aG9kOiAiUE9TVCIsCiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoZGF0YSkudG9TdHJpbmcoKSwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgcGFyYW1zKTsKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7CiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSAiRGFkb3MgaW5zZXJpZG9zIGNvbSBzdWNlc3NvISIpIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygKICAgICAgICAgICAgICAgICAgICAgICAgIkRhZG9zIGVudmlhZG9zIHBhcmEgbyBHb29nbGUgU2hlZXQgY29tIHN1Y2Vzc28uIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJGYWxoYSBhbyBlbnZpYXIgZGFkb3MgcGFyYSBvIEdvb2dsZSBTaGVldC4iKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJFcnJvIGFvIGVudmlhciBwYXJhIG8gR29vZ2xlIFNoZWV0OiAiLCBlcnJvcik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gQ2xhc3NlIEZvcm1MZWFkIHBhcmEgbGlkYXIgZXNwZWNpZmljYW1lbnRlIGNvbSBsw7NnaWNhIGRlIGZvcm11bMOhcmlvCiAgICBjbGFzcyBGb3JtTGVhZCB7CiAgICAgICAgY29uc3RydWN0b3IoZm9ybUVsZW1lbnQsIGFwaVVSTEkpIHsKICAgICAgICAgICAgdGhpcy5mb3JtID0gZm9ybUVsZW1lbnQ7CiAgICAgICAgICAgIHRoaXMuaWRhZGVFbGVtZW50ID0gdGhpcy5mb3JtLnF1ZXJ5U2VsZWN0b3IoIiNpZGFkZSIpOwogICAgICAgICAgICB0aGlzLmN1cnNvRWxlbWVudCA9IHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yKCIjY3Vyc28iKTsKICAgICAgICAgICAgdGhpcy5yZWdpYW9FbGVtZW50ID0gdGhpcy5mb3JtLnF1ZXJ5U2VsZWN0b3IoIiNyZWdpYW8iKTsKICAgICAgICAgICAgdGhpcy5ub21lUmVnaWFvRWxlbWVudCA9IHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yKCIjbm9tZV9yZWdpYW8iKTsKICAgICAgICAgICAgdGhpcy5hbGVydFVuaWRhZGVFbGVtZW50ID0KICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yKCIjYWxlcnRfdW5pZGFkZSIpOwogICAgICAgICAgICB0aGlzLmN1cnNvTm9tZUVsZW1lbnQgPSB0aGlzLmZvcm0ucXVlcnlTZWxlY3RvcigiI2ZyYW5xdWlhIik7CiAgICAgICAgICAgIHRoaXMuaWRFdmVudEVsZW1lbnQgPSB0aGlzLmZvcm0ucXVlcnlTZWxlY3RvcigiI2lkX2V2ZW50Iik7CiAgICAgICAgICAgIHRoaXMuaG9yYXJpb0VsZW1lbnQgPSB0aGlzLmZvcm0ucXVlcnlTZWxlY3RvcigiI2hvcmFyaW8iKTsKICAgICAgICAgICAgdGhpcy5pZGFkZXNCeUN1cnNvID0gewogICAgICAgICAgICAgICAgMTogWzYsIDcsIDgsIDksIDEwLCAxMSwgMTJdLAogICAgICAgICAgICAgICAgMTY6IFsxMywgMTQsIDE1LCAxNiwgMTddLAogICAgICAgICAgICB9OwogICAgICAgICAgICB0aGlzLnBhdHRlcm5zTWFzayA9IHsKICAgICAgICAgICAgICAgIHdoYXRzOiBbIjk5IDk5OTktOTk5OSIsICI5OSA5OTk5OS05OTk5Il0sCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHRoaXMuciA9IFV0aWxzLmdldFBhcmFtcygiciIpOwogICAgICAgICAgICB0aGlzLlVSTEkgPSBhcGlVUkxJOwogICAgICAgICAgICB0aGlzLlBvcFVwID0gU3dhbC5taXhpbih7CiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6ICIjMDc1RTU0IiwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpOwogICAgICAgIH0KCiAgICAgICAgLy8gTcOpdG9kbyBwYXJhIGluaWNpYWxpemFyIG9zIGVsZW1lbnRvcyBkbyBmb3JtdWzDoXJpbyBlIGNvbmZpZ3VyYcOnw7Vlcy4KICAgICAgICBpbml0aWFsaXplKCkgewogICAgICAgICAgICB0aGlzLmFwcGx5V2hhdHNBcHBNYXNrKCk7CiAgICAgICAgICAgIHRoaXMucG9wdWxhdGVJZGFkZU9wdGlvbnMoKTsKICAgICAgICAgICAgdGhpcy5zZXR1cElkYWRlQ2hhbmdlTGlzdGVuZXIoKTsKICAgICAgICAgICAgdGhpcy5zZXR1cEFsZXJ0VW5pZGFkZUxpc3RlbmVyKCk7CiAgICAgICAgICAgIENvb2tpZUFuZFVSTE1hbmFnZXIuZmlsbEZvcm1Gcm9tVVJMUGFyYW1ldGVycyh0aGlzLmZvcm0pOwogICAgICAgICAgICBDb29raWVBbmRVUkxNYW5hZ2VyLmZpbGxGb3JtRnJvbUNvb2tpZXModGhpcy5mb3JtKTsKICAgICAgICAgICAgTmV0d29yay5mZXRjaEFkZGl0aW9uYWxJbmZvKHRoaXMuZm9ybSk7CgogICAgICAgICAgICAvLyBBZGljaW9uYSBjYW1wb3Mgb2N1bHRvcyBwYXJhIG8gc2l0ZSBlIG8gc2l0ZV9yZWZlcnJlcgogICAgICAgICAgICB0aGlzLmFkZEhpZGRlbkZpZWxkKCJzaXRlIiwgd2luZG93LmxvY2F0aW9uLmhyZWYpOwogICAgICAgICAgICB0aGlzLmFkZEhpZGRlbkZpZWxkKCJzaXRlX3JlZmVycmVyIiwgZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgICAgICB0aGlzLmFkZEhpZGRlbkZpZWxkKCJpZF9ldmVudCIsIFV0aWxzLnVuaXF1ZUlkKCkpOwogICAgICAgICAgICB0aGlzLmFkZEhpZGRlbkZpZWxkKAogICAgICAgICAgICAgICAgInV0bV9zb3VyY2UiLAogICAgICAgICAgICAgICAgVXRpbHMuZ2V0UGFyYW1zKCJ1dG1fc291cmNlIikgfHwgIk9yZ8OibmljbyIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgdGhpcy5hZGRIaWRkZW5GaWVsZCgKICAgICAgICAgICAgICAgICJ1dG1fbWVkaXVtIiwKICAgICAgICAgICAgICAgIFV0aWxzLmdldFBhcmFtcygidXRtX21lZGl1bSIpIHx8ICJPcmfDom5pY28iCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHRoaXMuYWRkSGlkZGVuRmllbGQoCiAgICAgICAgICAgICAgICAidXRtX2NhbXBhaWduIiwKICAgICAgICAgICAgICAgIFV0aWxzLmdldFBhcmFtcygidXRtX2NhbXBhaWduIikgfHwgIk9yZ8OibmljbyIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHRoaXMuc2V0dXBTdWJtaXRMaXN0ZW5lcigpOwogICAgICAgIH0KCiAgICAgICAgLy8gTcOpdG9kbyBwYXJhIGFkaWNpb25hciBvdSBhdHVhbGl6YXIgdW0gY2FtcG8gZGUgZW50cmFkYSBvY3VsdG8gYW8gZm9ybXVsw6FyaW8KICAgICAgICBhZGRIaWRkZW5GaWVsZChuYW1lLCB2YWx1ZSkgewogICAgICAgICAgICBsZXQgZXhpc3RpbmdJbnB1dCA9IHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yKAogICAgICAgICAgICAgICAgYGlucHV0W25hbWU9IiR7bmFtZX0iXWAKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKGV4aXN0aW5nSW5wdXQpIHsKICAgICAgICAgICAgICAgIGV4aXN0aW5nSW5wdXQudmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgICAgICAgICAgICAgIGlucHV0LnR5cGUgPSAiaGlkZGVuIjsKICAgICAgICAgICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOwogICAgICAgICAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhbGlkYXRlRm9ybSgpIHsKICAgICAgICAgICAgLy8gQWRpY2lvbmUgYXF1aSBzdWEgbMOzZ2ljYSBkZSB2YWxpZGHDp8OjbwogICAgICAgIH0KCiAgICAgICAgLy8gTcOpdG9kbyBwYXJhIGFwbGljYXIgbcOhc2NhcmEgbm8gY2FtcG8gZGUgV2hhdHNBcHAKICAgICAgICBhcHBseVdoYXRzQXBwTWFzaygpIHsKICAgICAgICAgICAgY29uc3QgaW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT0idGVsIl0nKTsKICAgICAgICAgICAgaW5wdXRzLmZvckVhY2goKGlucHV0KSA9PiB7CiAgICAgICAgICAgICAgICAvLyBVdGlsaXphbmRvIFV0aWxzIHBhcmEgZnVuw6fDtWVzIHV0aWxpdMOhcmlhcwogICAgICAgICAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICAgICAgICAgICAiaW5wdXQiLAogICAgICAgICAgICAgICAgICAgIFV0aWxzLmlucHV0SGFuZGxlci5iaW5kKG51bGwsIHRoaXMucGF0dGVybnNNYXNrLndoYXRzLCAxMiksCiAgICAgICAgICAgICAgICAgICAgZmFsc2UKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgLy8gTcOpdG9kbyBwYXJhIHBvcHVsYXIgYXMgb3DDp8O1ZXMgZGUgaWRhZGUgY29tIGJhc2Ugbm8gbWFwZWFtZW50byBkZSBpZGFkZXMgcG9yIGN1cnNvCiAgICAgICAgcG9wdWxhdGVJZGFkZU9wdGlvbnMoKSB7CiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUlkYWRlcyA9IG5ldyBTZXQoKTsKICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuaWRhZGVzQnlDdXJzbykgewogICAgICAgICAgICAgICAgdGhpcy5pZGFkZXNCeUN1cnNvW2tleV0uZm9yRWFjaCgoaWRhZGUpID0+CiAgICAgICAgICAgICAgICAgICAgdW5pcXVlSWRhZGVzLmFkZChpZGFkZSkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEFycmF5LmZyb20odW5pcXVlSWRhZGVzKQogICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEgLSBiKQogICAgICAgICAgICAgICAgLmZvckVhY2goKGlkYWRlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnZhbHVlID0gaWRhZGU7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnRleHQgPSBpZGFkZTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmlkYWRlRWxlbWVudC5hcHBlbmQob3B0aW9uKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogTcOpdG9kbyBwYXJhIGV4aWJpciBtZW5zYWdlbnMgZGUgZXJybwogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBlcnJvck1zZwogICAgICAgICAqLwogICAgICAgIGRpc3BsYXlNc2codHlwZSwgdGl0bGUsIG1zZyA9ICIiKSB7CiAgICAgICAgICAgIHRoaXMuUG9wVXAuZmlyZSh7CiAgICAgICAgICAgICAgICBpY29uOiB0eXBlLAogICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLAogICAgICAgICAgICAgICAgdGV4dDogbXNnLAogICAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsCiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogTcOpdG9kbyBwYXJhIGNyaWFyIHVtYSBvcMOnw6NvIGRlIHNlbGXDp8OjbwogICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWwKICAgICAgICAgKi8KICAgICAgICBjcmVhdGVPcHRpb24odmFsKSB7CiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwogICAgICAgICAgICBvcHRpb24udGV4dCA9IHZhbC5ub21lOwogICAgICAgICAgICBvcHRpb24udmFsdWUgPSB2YWwuaWQ7CiAgICAgICAgICAgIFV0aWxzLm5ld09iaih2YWwpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4gewogICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZShgZGF0YS0ke2tleX1gLCB2YWx1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gb3B0aW9uOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogTcOpdG9kbyBhc3PDrW5jcm9ubyBwYXJhIHBlZ2FyIHVuaWRhZGVzIGRlIHVtIGN1cnNvLgogICAgICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdG9kYXMgLSBTZSBkZXZlIHBlZ2FyIHRvZGFzIGFzIHVuaWRhZGVzIG91IG7Do28KICAgICAgICAgKi8KICAgICAgICBhc3luYyBnZXRVbmlkYWRlcyh0b2RhcyA9IGZhbHNlKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAvLyBWYWxpZGHDp8OjbyBkbyBmb3JtdWzDoXJpbwogICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUZvcm0oKTsKCiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IE5ldHdvcmsuQ29uc3VsdCh7CiAgICAgICAgICAgICAgICAgICAgVVJMOiAhdG9kYXMKICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHt0aGlzLlVSTEl9dW5pZGFkZXMvJHt0aGlzLmN1cnNvRWxlbWVudC52YWx1ZX0vJHt0aGlzLnJ9YAogICAgICAgICAgICAgICAgICAgICAgICA6IGAke3RoaXMuVVJMSX11bmlkYWRlcy8ke3RoaXMuY3Vyc29FbGVtZW50LnZhbHVlfWAsCiAgICAgICAgICAgICAgICAgICAgRGF0YTogbnVsbCwKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIHRoaXMucmVnaWFvRWxlbWVudC5pbm5lckhUTUwgPSAiIjsgLy8gTGltcGEgYXMgb3DDp8O1ZXMgYW50ZXJpb3JlcwoKICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkT3B0aW9uID0gdGhpcy5jcmVhdGVPcHRpb24oewogICAgICAgICAgICAgICAgICAgIG5vbWU6ICJTZWxlY2lvbmUgdW1hIHJlZ2nDo28iLAogICAgICAgICAgICAgICAgICAgIGlkOiAiIiwKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgZGlzYWJsZWRPcHRpb24uZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgZGlzYWJsZWRPcHRpb24uc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgdGhpcy5yZWdpYW9FbGVtZW50LmFwcGVuZENoaWxkKGRpc2FibGVkT3B0aW9uKTsKICAgICAgICAgICAgICAgIGNvbnN0IHVuaWRhZGVzID0gVXRpbHMubmV3T2JqKHJlc3BvbnNlKTsKICAgICAgICAgICAgICAgIHVuaWRhZGVzLmZvckVhY2goKFtrZXksIHZhbF0pID0+IHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2lhb0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVPcHRpb24odmFsKSk7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBTZSBob3V2ZXIgYXBlbmFzIHVtYSB1bmlkYWRlIGVudGFvIGRlZmluYSBlbGEgbmEgcmVnaWFvRWxlbnQKICAgICAgICAgICAgICAgIGlmICh1bmlkYWRlcy5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2lhb0VsZW1lbnQuc2VsZWN0ZWRJbmRleCA9IDE7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpYW9FbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0KICAgICAgICAgICAgICAgICAgICAgICAgIm5vbmUiOwogICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRVbmlkYWRlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMucmVnaWFvRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9CiAgICAgICAgICAgICAgICAgICAgICAgICIiOwogICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRVbmlkYWRlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm5vbWVfcmVnaWFvIikuZm9yRWFjaCgoZSkgPT4gewogICAgICAgICAgICAgICAgICAgIGUuaW5uZXJIVE1MID0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpYW9FbGVtZW50LnNlbGVjdGVkT3B0aW9uc1swXS5kYXRhc2V0Lm5vbWU7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRoaXMucmVnaWFvRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiY2hhbmdlIikpOwogICAgICAgICAgICAgICAgdGhpcy5ub21lUmVnaWFvRWxlbWVudC52YWx1ZSA9IFV0aWxzLmNhcGl0YWxpemVGaXJzdExldHRlcigKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2lhb0VsZW1lbnQuc2VsZWN0ZWRPcHRpb25zWzBdLmRhdGFzZXQubm9tZQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TXNnKAogICAgICAgICAgICAgICAgICAgICJlcnJvciIsCiAgICAgICAgICAgICAgICAgICAgIk9jb3JyZXUgdW0gZXJybyBhbyBidXNjYXIgYXMgdW5pZGFkZXMiLAogICAgICAgICAgICAgICAgICAgICJUZW50ZSBub3ZhbWVudGUgbWFpcyB0YXJkZS4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBsaW1wYXJSZWdpYW8oKSB7CiAgICAgICAgICAgIHRoaXMuZ2V0VW5pZGFkZXModHJ1ZSk7IC8vIFJlcG9wdWxhIGNvbSB0b2RhcyBhcyB1bmlkYWRlcyBkaXNwb27DrXZlaXMKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIE3DqXRvZG8gcGFyYSBhZGljaW9uYXIgdW0gbGlzdGVuZXIgZGUgbXVkYW7Dp2EgZGUgaWRhZGUKICAgICAgICAgKi8KICAgICAgICBzZXR1cElkYWRlQ2hhbmdlTGlzdGVuZXIoKSB7CiAgICAgICAgICAgIHRoaXMuaWRhZGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZGFkZSA9IHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSk7CiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5pZGFkZXNCeUN1cnNvKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaWRhZGVzQnlDdXJzb1trZXldLmluY2x1ZGVzKHNlbGVjdGVkSWRhZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3Vyc29FbGVtZW50LnZhbHVlID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFVuaWRhZGVzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICBzZXR1cEFsZXJ0VW5pZGFkZUxpc3RlbmVyKCkgewogICAgICAgICAgICB0aGlzLmFsZXJ0VW5pZGFkZUVsZW1lbnQKICAgICAgICAgICAgICAgIC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdCiAgICAgICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgICAgIHRoaXMubGltcGFyUmVnaWFvKCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgdGhpcy5yZWdpYW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoCiAgICAgICAgICAgICAgICAiY2hhbmdlIiwKICAgICAgICAgICAgICAgIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ub21lX3JlZ2lhbyIpLmZvckVhY2goKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgZS5pbm5lckhUTUwgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpYW9FbGVtZW50LnNlbGVjdGVkT3B0aW9uc1swXS5kYXRhc2V0Lm5vbWU7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub21lUmVnaWFvRWxlbWVudC52YWx1ZSA9IFV0aWxzLmNhcGl0YWxpemVGaXJzdExldHRlcigKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpYW9FbGVtZW50LnNlbGVjdGVkT3B0aW9uc1swXS5kYXRhc2V0Lm5vbWUKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGZhbHNlCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBzZXR1cFN1Ym1pdExpc3RlbmVyKCkgewogICAgICAgICAgICB0aGlzLmZvcm0uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IiwgKGUpID0+IHsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCiAgICAgICAgICAgICAgICAvLyBNb3N0cmEgbyBwb3AtdXAgYW50ZXMgZG8gZW52aW8KICAgICAgICAgICAgICAgIHRoaXMucHJlU3VibWl0UG9wdXAoKTsKCiAgICAgICAgICAgICAgICAvLyBFeGVjdXRhIGEgZnVuw6fDo28gZGUgZW52aW8gZG8gZm9ybXVsw6FyaW8KICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0Rm9ybSgpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgIHByZVN1Ym1pdFBvcHVwKCkgewogICAgICAgICAgICB0aGlzLlBvcFVwLmZpcmUoewogICAgICAgICAgICAgICAgdGl0bGU6IGBQcm9jdXJhbmRvIEluc3RydXRvciBlbSAke3RoaXMubm9tZVJlZ2lhb0VsZW1lbnQudmFsdWV9YCwKICAgICAgICAgICAgICAgIGljb246ICJzdWNjZXNzIiwKICAgICAgICAgICAgICAgIGh0bWw6IGA8aDM+Vm9jw6ogc2Vyw6EgZGlyZWNpb25hZG8gcGFyYSBXaGF0c0FwcCwgYWd1YXJkZSE8L2gzPmAsCiAgICAgICAgICAgICAgICBzaG93Q2xvc2VCdXR0b246IGZhbHNlLAogICAgICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsCiAgICAgICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsCiAgICAgICAgICAgICAgICBmb2N1c0NvbmZpcm06IGZhbHNlLAoKICAgICAgICAgICAgICAgIGRpZE9wZW46ICgpID0+IHsKICAgICAgICAgICAgICAgICAgICB0aGlzLlBvcFVwLnNob3dMb2FkaW5nKCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgIGFzeW5jIHN1Ym1pdEZvcm0oKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgTmV0d29yay5JbnNlcnQoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5VUkxJICsgImxlYWQvYWRkIiwKICAgICAgICAgICAgICAgICAgICBuZXcgRm9ybURhdGEodGhpcy5mb3JtKQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoZGF0YS5kdXBsaWNhZG8pIHsKICAgICAgICAgICAgICAgICAgICAvLyBFbnZpYSBldmVudG8gYW8gR29vZ2xlIFRhZyBNYW5hZ2VyCiAgICAgICAgICAgICAgICAgICAgRXZlbnRUcmFja2VyLnNlbmRFdmVudCgiR1RNIiwgIiIsICJMZWFkIER1cGxpY2FkbyIpOwoKICAgICAgICAgICAgICAgICAgICAvLyBFbnZpYSBldmVudG9zIGN1c3RvbWl6YWRvcyBhbyBGYWNlYm9vayBBZHMKICAgICAgICAgICAgICAgICAgICBFdmVudFRyYWNrZXIuc2VuZEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAiRkIiLAogICAgICAgICAgICAgICAgICAgICAgICAiY3VzdG9tIiwKICAgICAgICAgICAgICAgICAgICAgICAgYExlYWQgRHVwbGljYWRvICR7dGhpcy5jdXJzb05vbWVFbGVtZW50LnZhbHVlfWAsCiAgICAgICAgICAgICAgICAgICAgICAgIHt9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGV2ZW50SUQ6IHRoaXMuaWRFdmVudEVsZW1lbnQudmFsdWUgfQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgRXZlbnRUcmFja2VyLnNlbmRFdmVudCgKICAgICAgICAgICAgICAgICAgICAgICAgIkZCIiwKICAgICAgICAgICAgICAgICAgICAgICAgImN1c3RvbSIsCiAgICAgICAgICAgICAgICAgICAgICAgIGBMZWFkIER1cGxpY2FkbyAke3RoaXMuY3Vyc29Ob21lRWxlbWVudC52YWx1ZX0gJHt0aGlzLm5vbWVSZWdpYW9FbGVtZW50LnZhbHVlfWAsCiAgICAgICAgICAgICAgICAgICAgICAgIHt9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGV2ZW50SUQ6IGBDXyR7dGhpcy5pZEV2ZW50RWxlbWVudC52YWx1ZX1gIH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBFbnZpYSBldmVudG8gYW8gR29vZ2xlIFRhZyBNYW5hZ2VyCiAgICAgICAgICAgICAgICAgICAgRXZlbnRUcmFja2VyLnNlbmRFdmVudCgiR1RNIiwgIiIsICJMZWFkIik7CgogICAgICAgICAgICAgICAgICAgIC8vIEVudmlhIGV2ZW50b3MgcGFkcsOjbyBhbyBGYWNlYm9vayBBZHMKICAgICAgICAgICAgICAgICAgICBFdmVudFRyYWNrZXIuc2VuZEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAiRkIiLAogICAgICAgICAgICAgICAgICAgICAgICAic3RhbmRhcmQiLAogICAgICAgICAgICAgICAgICAgICAgICAiTGVhZCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHt9LAogICAgICAgICAgICAgICAgICAgICAgICB7IGV2ZW50SUQ6IHRoaXMuaWRFdmVudEVsZW1lbnQudmFsdWUgfQogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIC8vIEVudmlhIGV2ZW50byBjdXN0b21pemFkbyBhbyBGYWNlYm9vayBBZHMKICAgICAgICAgICAgICAgICAgICBFdmVudFRyYWNrZXIuc2VuZEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAiRkIiLAogICAgICAgICAgICAgICAgICAgICAgICAiY3VzdG9tIiwKICAgICAgICAgICAgICAgICAgICAgICAgYExlYWQgJHt0aGlzLmN1cnNvTm9tZUVsZW1lbnQudmFsdWV9ICR7dGhpcy5ub21lUmVnaWFvRWxlbWVudC52YWx1ZX1gLAogICAgICAgICAgICAgICAgICAgICAgICB7fSwKICAgICAgICAgICAgICAgICAgICAgICAgeyBldmVudElEOiBgQ18ke3RoaXMuaWRFdmVudEVsZW1lbnQudmFsdWV9YCB9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBQcmVwYXJhciBvIGRhdGEubGVhZCBwYXJhIG8gZW52aW8KICAgICAgICAgICAgICAgIGRhdGEubGVhZC5ob3JhcmlvID0gdGhpcy5ob3JhcmlvRWxlbWVudC52YWx1ZTsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOwogICAgICAgICAgICAgICAgLy8gRW52aWEgZGFkb3MgcGFyYSBvIEdvb2dsZSBTaGVldAogICAgICAgICAgICAgICAgYXdhaXQgR29vZ2xlU2hlZXRNYW5hZ2VyLnNlbmRUb1NoZWV0KGRhdGEubGVhZCk7CiAgICAgICAgICAgICAgICB0aGlzLnBvc3RTdWJtaXRBY3Rpb24oZGF0YSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcG9zdFN1Ym1pdEFjdGlvbihkYXRhKSB7CiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7CiAgICAgICAgICAgIGNvbnN0IHRlbCA9IGRhdGEud2hhdHNhcHBfZGl2dWxnYWRvci5yZXBsYWNlKC9bLSAoKV0vZywgIiIpOwoKICAgICAgICAgICAgY29uc3QgbXNnSGVhZGVyID0gYCpFVSBRVUVSTypcbmA7CiAgICAgICAgICAgIGNvbnN0IG1zZ0lkID0gZGF0YS5sZWFkLmlkX2xlYWQKICAgICAgICAgICAgICAgID8gYE1ldSBuw7ptZXJvIGRhIGluc2NyacOnw6NvIMOpICoke2RhdGEubGVhZC5pZF9sZWFkfSpcbmAKICAgICAgICAgICAgICAgIDogIiI7CiAgICAgICAgICAgIGNvbnN0IG1zZ05hbWUgPSBkYXRhLmxlYWQuY2FuZGlkYXRvCiAgICAgICAgICAgICAgICA/IGBOb21lIGRvIGNhbmRpZGF0byDDqSAqJHtkYXRhLmxlYWQuY2FuZGlkYXRvfSpcbmAKICAgICAgICAgICAgICAgIDogIiI7CiAgICAgICAgICAgIGNvbnN0IG1zZ1Jlc3AgPSBkYXRhLmxlYWQucmVzcG9uc2F2ZWwKICAgICAgICAgICAgICAgID8gYFJlc3BvbnPDoXZlbCDDqSAqJHtkYXRhLmxlYWQucmVzcG9uc2F2ZWx9KlxuYAogICAgICAgICAgICAgICAgOiAiIjsKICAgICAgICAgICAgY29uc3QgbXNnUmVnaW9uID0gYFJlZ2nDo286ICoke3RoaXMubm9tZVJlZ2lhb0VsZW1lbnQudmFsdWV9KmA7CgogICAgICAgICAgICBjb25zdCBtc2cgPSBgJHttc2dIZWFkZXJ9JHttc2dJZH0ke21zZ05hbWV9JHttc2dSZXNwfSR7bXNnUmVnaW9ufWA7CiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBgaHR0cHM6Ly93YS5tZS81NSR7ZW5jb2RlVVJJQ29tcG9uZW50KAogICAgICAgICAgICAgICAgdGVsCiAgICAgICAgICAgICl9P3RleHQ9JHtlbmNvZGVVUklDb21wb25lbnQobXNnKX1gOwoKICAgICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKCiAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gMTAwOyAvLyB0ZW1wbyBlbSBtaWxpc3NlZ3VuZG9zCgogICAgICAgICAgICBjb25zdCBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgICAgICAgICAgaWYgKGNvdW50ID49IDUwKSB7CiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKTsKCiAgICAgICAgICAgICAgICAgICAgYS5ocmVmID0gbGluazsKICAgICAgICAgICAgICAgICAgICBhLnRhcmdldCA9ICJfYmxhbmsiOwogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50CiAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCIjYnRuX2xpbmtfd3BwIikKICAgICAgICAgICAgICAgICAgICAgICAgLnNldEF0dHJpYnV0ZSgiaHJlZiIsIGxpbmspOwoKICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY29uZmlybV9sZWFkIikuc3R5bGUuZGlzcGxheSA9ICIiOwoKICAgICAgICAgICAgICAgICAgICBhLmNsaWNrKCk7CgogICAgICAgICAgICAgICAgICAgIHRoaXMuUG9wVXAuZmlyZSh7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAiVHVkbyBwcm9udG8iLAogICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAic3VjY2VzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGBDbGlxdWUgbm8gYm90w6NvIGFiYWl4byBwYXJhIGZhbGFyIGNvbSByZXNwb25zw6F2ZWwgZW0gJHt0aGlzLm5vbWVSZWdpYW9FbGVtZW50LnZhbHVlfWAsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBgPGkgY2xhc3M9ImZhYiBmYS13aGF0c2FwcCI+PC9pPiBBYnJpciBXaGF0c0FwcGAsCiAgICAgICAgICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuY2xpY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCBkdXJhdGlvbik7CiAgICAgICAgfQogICAgfQoKICAgIC8vSW5zdGFuY2lhciBGb3JtTGVhZAogICAgY29uc3QgZm9ybUxlYWQgPSBuZXcgRm9ybUxlYWQoCiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2Zvcm1MZWFkIiksCiAgICAgICAgImh0dHBzOi8vaXBtaWwubWt0Y29kZS5kaWdpdGFsL2FwaS8iCiAgICApOwo8L3NjcmlwdD4K[/fusion_code][fusion_slider hover_type=”none” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” slideshow_autoplay=”yes” slideshow_smooth_height=”yes” margin_top=”0px” margin_right=”0px” margin_bottom=”0px” margin_left=”0px”][fusion_slide type=”image” linktarget=”_self” lightbox=”no” image_id=”6573|fusion-600″]https://jovemmaisbrasil.org/wp-content/uploads/2023/08/escola-militar-Reproducao-800×450-1-600×338.jpg[/fusion_slide][fusion_slide type=”image” lightbox=”no” linktarget=”_self” image_id=”5327|full”]https://jovemmaisbrasil.org/wp-content/uploads/2023/01/IMG_8540-1.jpg[/fusion_slide][fusion_slide type=”image” lightbox=”no” linktarget=”_self” image_id=”6571|fusion-600″]https://jovemmaisbrasil.org/wp-content/uploads/2023/08/colegios-civico-militares-colegio-militar-escola-civico-militar-escolas-civico-militar-seed-educacao-secretaria-de-estado-da-educacao-mp-mppr-ministerio-publico-do-parana-600×401.jpg[/fusion_slide][fusion_slide type=”image” lightbox=”no” linktarget=”_self” image_id=”5328|full”]https://jovemmaisbrasil.org/wp-content/uploads/2023/01/0-EPCAR.jpg[/fusion_slide][/fusion_slider][fusion_builder_row_inner][fusion_builder_column_inner type=”1_1″ type=”1_1″ layout=”1_1″ align_self=”auto” content_layout=”column” align_content=”flex-start” valign_content=”flex-start” content_wrap=”wrap” center_content=”no” column_tag=”div” target=”_self” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” order_medium=”0″ order_small=”0″ hover_type=”none” border_style=”solid” box_shadow=”no” box_shadow_blur=”0″ box_shadow_spread=”0″ background_type=”single” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_position=”left top” background_repeat=”no-repeat” background_blend_mode=”none” filter_type=”regular” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″ animation_direction=”left” animation_speed=”0.3″ margin_bottom=”0px” padding_top=”80px” padding_right=”80px” padding_bottom=”80px” padding_left=”80px” last=”true” border_position=”all” first=”true” border_radius_top_left=”0″ border_radius_top_right=”0″ border_radius_bottom_right=”0″ border_radius_bottom_left=”0″ padding_top_medium=”60px” padding_left_medium=”45px” padding_right_medium=”45px” padding_bottom_medium=”60px” min_height=”” link=””][fusion_content_boxes layout=”icon-on-side” columns=”1″ heading_size=”p” iconspin=”no” icon_align=”left” animation_direction=”left” animation_speed=”0.3″ animation_delay=”0″ hide_on_mobile=”small-visibility,medium-visibility,large-visibility” margin_top=”0px” margin_bottom=”0px” item_margin_top=”0px” item_margin_bottom=”0px” icon_circle=”no” hover_accent_color=”var(–awb-color6)” title_color=”var(–awb-color8)” iconcolor=”var(–awb-color6)”][fusion_content_box title=”Curso Gratuito” linktext=”Read More” animation_direction=”left” animation_speed=”0.3″ icon=”fa-graduation-cap fas” /][fusion_content_box title=”Cadastro de Currículo” linktext=”Read More” animation_direction=”left” animation_speed=”0.3″ icon=”fa-file fas” /][fusion_content_box title=”Bonificação Mensal” linktext=”Read More” animation_direction=”left” animation_speed=”0.3″ icon=”fa-hand-holding-usd fas” /][fusion_content_box title=”Preparação Profissional” linktext=”Read More” animation_direction=”left” animation_speed=”0.3″ icon=”fa-briefcase fas” /][/fusion_content_boxes][/fusion_builder_column_inner][/fusion_builder_row_inner][/fusion_builder_column][fusion_builder_column type=”1_3″ type=”1_3″ layout=”3_5″ align_self=”auto” align_content=”flex-start” center_content=”no” target=”_self” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” order_medium=”0″ order_small=”1″ hover_type=”none” border_color=”hsla(var(–awb-color8-h),var(–awb-color8-s),var(–awb-color8-l),calc( var(–awb-color8-a) – 92% ))” border_style=”solid” box_shadow=”no” box_shadow_blur=”60″ box_shadow_spread=”-8″ box_shadow_color=”hsla(var(–awb-color8-h),var(–awb-color8-s),var(–awb-color8-l),calc( var(–awb-color8-a) – 88% ))” background_type=”single” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_position=”left top” background_repeat=”no-repeat” background_blend_mode=”none” animation_direction=”up” animation_speed=”1.2″ filter_type=”regular” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″ first=”true” last=”false” border_position=”all” box_shadow_vertical=”32px” box_shadow_horizontal=”12px” type_medium=”1_1″ margin_bottom_small=”30px” margin_top_small=”0px” type_small=”1_1″ animation_type=”fade” min_height=”” link=””][fusion_video loop=”no” autoplay=”no” mute=”no” box_shadow=”no” box_shadow_blur=”0″ box_shadow_spread=”0″ hide_on_mobile=”small-visibility,medium-visibility,large-visibility” video=”https://jovemmaisbrasil.org/wp-content/uploads/2024/04/Hamilton-2.mp4″ controls=”yes” preview_image=”https://jovemmaisbrasil.org/wp-content/uploads/2024/04/videoframe_41473.png” /][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]