[fusion_builder_container admin_label=”Desktop” hundred_percent=”yes” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”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=”2%” padding_right=”25%” padding_bottom=”2%” padding_left=”25%” admin_toggled=”no”][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ spacing=”yes” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_size=”” border_color=”” border_style=”solid” border_position=”all” padding_top=”2%” padding_right=”10%” padding_bottom=”2%” padding_left=”10%” margin_top=”0px” margin_bottom=”0px” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]

Innovation & Inclusion: Finovate Europe 2019

by Tram Anh Nguyen, co-founder of CFTE

FinovateEurope 2019, held February 12-15 in London, was a strong demonstration of the industry’s potential for inclusiveness and innovation. Even the scenery was a story of progressiveness, the event nestled in the Tobacco Dock of London’s Wapping. An area once infamous for storing 19th century imported tobacco was now hosting global thought leaders explaining their financial technology innovations.
Talks at Finovate made it very clear that the future of Finance is very much to do with further adoption and maturation of AI. The demo and panel discussions alike showed that this technology is not stuck at the conceptual level, it is already impacting the industry in a big way. This means there is an urgent need for startups and institutions to upskill, which agrees with our own work as leaders in education and our recently revealed Fintech startup ecosystem.

sinequa cfte
Tram Anh Nguyen (left) with members from Sinequa on the show floor.

With established heads from Finance mixed with ambitious startups from Fintech (including the AI-powered insight platform Sinequa whom I met on the show floor) the conference had four notable themes:

  • Diversity
  • Fintech innovation
  • How the future of finance will redefine the customer experience
  • The need for finance to upskill its talent

Thursday the 14th saw Dave Birch, Global Ambassador of Consult Hyperion, deliver the opening remarks.
Dave birch finovate
A major highlight of the conference was the rapid-fire demos from enterprising startups like appello, Nordigen, Monobank, zabo, and many more (see below). I congratulate all those who pitched, it was a very commendable effort by you all! The endless ambition of startups is a factor we want to cultivate and foster, as seen in our recent announcement of our Fintech startup ecosystem.
[/fusion_text][fusion_gallery layout=”grid” picture_size=”fixed” columns=”” column_spacing=”10″ gallery_masonry_grid_ratio=”” gallery_masonry_width_double=”” hover_type=”” lightbox=”yes” lightbox_content=”” bordersize=”” bordercolor=”” border_radius=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo1-600×450.jpeg” image_id=”8539|600″ link=”” linktarget=”_self” /][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo2-600×800.jpeg” image_id=”8541|600″ link=”” linktarget=”_self” /][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo3-600×800.jpeg” image_id=”8542|600″ link=”” linktarget=”_self” /][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo4-600×800.jpeg” image_id=”8543|600″ link=”” linktarget=”_self” /][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo5-600×800.jpeg” image_id=”8544|600″ link=”” linktarget=”_self” /][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo6-600×800.jpeg” image_id=”8545|600″ link=”” linktarget=”_self” /][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo7-600×800.jpeg” image_id=”8546|600″ link=”” linktarget=”_self” /][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo8-600×800.jpeg” image_id=”8547|600″ link=”” linktarget=”_self” /][fusion_gallery_image image=”https://www.cfte.education/wp-content/uploads/2019/03/demo9-600×450.jpeg” image_id=”8548|600″ link=”” linktarget=”_self” /][/fusion_gallery][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]
Also, I want to commend the winners of the Best of Show awards for FinovateEurope 2019!

  • CREALOGIX
  • Dorsum
  • Glia
  • iProov
  • Launchfire
  • PayKey
  • Voca.ai
  • W.UP

Later on, Sohail Raja of Société Générale provided the following telling look into the future of finance:

See what Alibaba and Amazon have done, the [technology] cycle is getting faster and shorter – need to take that on board for what clients want and what we offer… We are following what Fintechs are doing [being agile] but that is a culture that we have, Singapore supports this philosophy and approach at a senior level

Additionally, it was impressive to see the issue of diversity in finance taken seriously. Panels had guests of diverse backgrounds, which is important for such a grand stage. As a female figure in the industry, I can’t overstate the need for gender equality in the industry, not just as a debate but as initiatives.
One of our contributing experts, Tanya Andreasyan, moderated a panel on Mobile Payments & the Customer Experience. Meanwhile, the panel on the “best practices in onboarding innovation” featured many strong female leaders in Finance: Emma Huntington, Valentina Isakina, Kaushalya Somasundaram, Wendy Wattebled, Wincie Wong – these women proved that we can have a vital role in play in the discussions of the industry’s most important issues.

Strong female representation on a panel at Finovate Europe 2019.

It was inspiring to hear Wendy mention the importance of “motivation and engagement to innovate” in finance, and this begins at the foundational levels of any company.
It was also a pleasure to witness the live recording of Breaking Banks’ Power Hour Podcast, which featured a familiar name to CFTE in Jim Marous. Jim had recently visited our offices for a live webinar, and it was fantastic to see him discussing similar financial themes.


On the panel, he was joined by Brett King, CEO and founder of Moven, Greg Palmer, Vice-President of Finovate, and JP Nicols, Managing Director of FinTech Forge. The foursome went through plenty in the hour, from the issues with the US’ regulatory scheme to the impact of Brexit – with Jim saying there’s “plenty of potential” for UK fintech even if Brexit occurs!
For further coverage of Finovate Europe 2019, read our major highlights here. For more conferences and one-off days to further your core knowledge in Fintech, check out our Events Calendar here!
And as always, for the latest developments and events in Fintech, feel free to subscribe to our free newsletters below!
[/fusion_text][/fusion_builder_column][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_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” padding_top=”2%” padding_right=”” padding_bottom=”1%” padding_left=”” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_separator style_type=”default” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” sep_color=”” top_margin=”” bottom_margin=”” border_size=”2″ icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” /][/fusion_builder_column][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=”relatedPosts” id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” padding_top=”” padding_right=”10%” padding_bottom=”0%” padding_left=”10%” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]

Related Posts

[/fusion_text][fusion_separator style_type=”default” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” sep_color=”” top_margin=”2%” bottom_margin=”” border_size=”0″ icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” /][fusion_builder_row_inner][fusion_builder_column_inner type=”1_3″ layout=”1_3″ spacing=”” center_content=”no” hover_type=”none” link=”” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”BlogPost” id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” border_size=”0″ border_color=”” border_style=”solid” 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” border_position=”all”][fusion_recent_posts layout=”default” hover_type=”none” columns=”1″ number_posts=”1″ offset=”0″ pull_by=”category” cat_slug=”news” exclude_cats=”” tag_slug=”” exclude_tags=”” thumbnail=”yes” title=”yes” meta=”yes” meta_author=”no” meta_categories=”no” meta_date=”yes” meta_comments=”no” meta_tags=”no” content_alignment=”” excerpt=”no” excerpt_length=”0″ strip_html=”yes” scrolling=”no” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”BlogImage” id=”BlogImage” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” /][/fusion_builder_column_inner][fusion_builder_column_inner type=”1_3″ layout=”1_3″ spacing=”” center_content=”no” hover_type=”none” link=”” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”BlogPost” id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” border_size=”0″ border_color=”” border_style=”solid” 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” border_position=”all”][fusion_recent_posts layout=”default” hover_type=”none” columns=”1″ number_posts=”1″ offset=”4″ pull_by=”category” cat_slug=”news” exclude_cats=”” tag_slug=”” exclude_tags=”” thumbnail=”yes” title=”yes” meta=”yes” meta_author=”no” meta_categories=”no” meta_date=”yes” meta_comments=”no” meta_tags=”no” content_alignment=”” excerpt=”no” excerpt_length=”0″ strip_html=”yes” scrolling=”no” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”BlogImage” id=”BlogImage” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” /][/fusion_builder_column_inner][fusion_builder_column_inner type=”1_3″ layout=”1_3″ spacing=”” center_content=”no” hover_type=”none” link=”” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”BlogPost” id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” border_size=”0″ border_color=”” border_style=”solid” 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” border_position=”all”][fusion_recent_posts layout=”default” hover_type=”none” columns=”1″ number_posts=”1″ offset=”7″ pull_by=”category” cat_slug=”news” exclude_cats=”” tag_slug=”” exclude_tags=”” thumbnail=”yes” title=”yes” meta=”yes” meta_author=”no” meta_categories=”no” meta_date=”yes” meta_comments=”no” meta_tags=”no” content_alignment=”” excerpt=”no” excerpt_length=”0″ strip_html=”yes” scrolling=”no” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”BlogImage” id=”BlogImage” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” /][/fusion_builder_column_inner][/fusion_builder_row_inner][/fusion_builder_column][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_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” padding_top=”0%” padding_right=”” padding_bottom=”1%” padding_left=”” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_separator style_type=”default” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” sep_color=”” top_margin=”” bottom_margin=”” border_size=”2″ icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” /][/fusion_builder_column][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_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” 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]PHN0eWxlPgogI19mb3JtXzlfIHsgZm9udC1zaXplOjE0cHg7IGxpbmUtaGVpZ2h0OjEuNjsgZm9udC1mYW1pbHk6YXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsgbWFyZ2luOjA7IH0KICNfZm9ybV85XyAqIHsgb3V0bGluZTowOyB9CiAuX2Zvcm1faGlkZSB7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IH0KIC5fZm9ybV9zaG93IHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB9CiAjX2Zvcm1fOV8uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV85Xy5fZm9ybS1ib3R0b20geyBib3R0b206MDsgfQogI19mb3JtXzlfLl9mb3JtLWxlZnQgeyBsZWZ0OjA7IH0KICNfZm9ybV85Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzlfIGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fOV8gdGV4dGFyZWEgeyBwYWRkaW5nOjZweDsgaGVpZ2h0OmF1dG87IGJvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDsgYm9yZGVyLXJhZGl1czo0cHg7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgZm9udC1zaXplOjEzcHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fOV8gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzlfIC5fc3VibWl0IHsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOjE0cHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiM4ZjA3MDcgIWltcG9ydGFudDsgYm9yZGVyOjAgIWltcG9ydGFudDsgLW1vei1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgcGFkZGluZzoxMHB4ICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Nsb3NlLWljb24geyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzlfIC5fY2xvc2UtaWNvbjpiZWZvcmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5fZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbTozMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50LXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTY0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm0tYnJhbmRpbmcgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MTBweDsgY2xlYXI6Ym90aDsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tdG9wOjMwcHg7IGZvbnQtd2VpZ2h0OjEwMDsgfQogI19mb3JtXzlfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9oaDl1anFndjVfYWNsb2dvX2xpLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWxhYmVsLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tbGFiZWwgeyBmb250LXdlaWdodDpib2xkOyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpibG9jazsgfQogI19mb3JtXzlfLl9kYXJrIC5fZm9ybS1icm
FuZGluZyB7IGNvbG9yOiMzMzM7IH0KICNfZm9ybV85Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgLl9sb2dvIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvamZ0cTJjOHNfYWNsb2dvX2RrLnBuZycpOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MDsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAqIHsgZm9udC1zaXplOjE0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudC5fY2xlYXIgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBmbG9hdDpub25lOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQuX2NsZWFyOmFmdGVyIHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCBzZWxlY3QsI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV85XyAuX2ZpZWxkLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIHsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOjE1MHB4OyB9CiAjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpICsgLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpIHsgbWFyZ2luLWxlZnQ6MjBweDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9jbGVhci1lbGVtZW50IHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZnVsbF93aWR0aCB7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZnVsbF9maWVsZCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzlfIGlucHV0W3R5cGU9InRleHQiXS5faGFzX2Vycm9yLCNfZm9ybV85XyB0ZXh0YXJlYS5faGFzX2Vycm9yIHsgYm9yZGVyOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXS5faGFzX2Vycm9yIHsgb3V0bGluZTojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzlfIC5fZXJyb3IgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgZm9udC1zaXplOjEzcHg7IHotaW5kZXg6MTAwMDAwMDE7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9hYm92ZSB7IHBhZGRpbmctYm90dG9tOjRweDsgdG9wOi00MXB4OyByaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci5fYmVsb3cgeyBwYWRkaW5nLXRvcDo0cHg7IHRvcDoxMDAlOyByaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci5fYWJvdmUgLl9lcnJvci1hcnJvdyB7IGJvdHRvbTowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9iZWxvdyAuX2Vycm9yLWFycm93IHsgdG9wOjA7IHJpZ2h0OjE1cHg7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgI2YzN2M3YjsgfQogI19mb3JtXzlfIC5fZXJyb3ItaW5uZXIgeyBwYWRkaW5nOjhweCAxMnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMzdjN2I7IGZvbnQtc2l6ZToxM3B4OyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgfQogI19mb3JtXzlfIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBtYXJnaW4tYm90dG9tOjVweDsgdGV4dC1hbGlnbjpsZWZ0OyB9CiAjX2Zvcm1fOV8gLl9idXR0b24td3JhcHBlciAuX2Vycm9yLWlubmVyLl9mb3JtX2Vycm9yIHsgcG9zaXRpb246c3RhdGljOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1pbm5lci5fbm9fYXJyb3cgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KICNfZm9ybV85XyAuX2Vycm9yLWFycm93IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1odG1sIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9CiAucGlrYS1zaW5nbGUgeyB6LWluZGV4OjEwMDAwMDAxICFpbXBvcnRhbnQ7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7IDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5Om5vbmU7IH0KICNfZm9ybV85XyB7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBtaW4td2lkdGg6MTAwJTsgbWF4LXdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfQogI19mb3JtXzlfICogeyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjFlbTsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50IHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm0taW5uZXIgeyBkaXNwbGF5OmJsb2NrOyBtaW4td2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS10aXRsZSwjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGUgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDowOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRpdGxlIHsgZm9udC1zaXplOjEuMmVtOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBtYXJnaW46MCAwIDIwcHg7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS1lbGVtZW50LCNfZm9ybV85XyAuX2lubGluZS1zdHlsZSwjX2Zvcm1fOV8gaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV85XyBsYWJlbCwjX2Zvcm1fOV8gcCwjX2Zvcm1fOV8gdGV4dGFyZWE6bm90KC5nLXJlY2FwdGNoYS1yZXNwb25zZSkgeyBmbG9hdDpub25lOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9yb3cuX2NoZWNrYm94LXJhZGlvIGxhYmVsIHsgZGlzcGxheTppbmxpbmU7IH0KICNfZm9ybV85XyAuX3JvdywjX2Zvcm1fOV8gcCwjX2Zvcm1fOV8gbGFiZWwgeyBtYXJnaW4tYm90dG9tOjAuN2VtOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSwjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0icmFkaW8iXSB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSArIHNwYW4gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzlfIC5fcm93IHNwYW4gbGFiZWwgeyBtYXJnaW46MCAhaW1wb3J0YW50OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlIHsgbWF4LXdpZHRoOjEwMCU7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy1yaWdodDoxMHB4OyBmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS4zZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0icmFkaW8iXSwjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWR0aDoxLjNlbTsgaGVpZ2h0OjEuM2VtOyBmb250LXNpemU6MWVtOyBtYXJnaW46MCAwLjNlbSAwIDA7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9CiAjX2Zvcm1fOV8gYnV0dG9uW3R5cGU9InN1Ym1pdCJdIHsgcGFkZGluZzoyMHB4OyBmb250LXNpemU6MS41ZW07IH0KICNfZm9ybV85XyAuX2lubGluZS1zdHlsZSB7IG1hcmdpbjoyMHB4IDAgMCAhaW1wb3J0YW50OyB9CiB9CiAjX2Zvcm1fOV8geyBwb3NpdGlvbjpyZWxhdGl2ZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW46MjVweCBhdXRvIDA7IHBhZGRpbmc6MjBweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7ICp6b29tOjE7IGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50OyBib3JkZXI6MHB4IHNvbGlkICNiMGIwYjAgIWltcG9ydGFudDsgd2lkdGg6NTAwcHg7IC1tb3otYm9yZGVyLXJhZGl1czowcHggIWltcG9ydGFudDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MjJweDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjA7IH0KICNfZm9ybV85XzpiZWZvcmUsI19mb3JtXzlfOmFmdGVyIHsgY29udGVudDoiICI7IGRpc3BsYXk6dGFibGU7IH0KICNfZm9ybV85XzphZnRlciB7IGNsZWFyOmJvdGg7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIHsgd2lkdGg6YXV0bzsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8uX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJkYXRlIl0geyBwYWRkaW5nOjEwcHggMTJweDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgYnV0dG9uLl9pbmxpbmUtc3R5bGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjI3cHg7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIHAgeyBtYXJnaW46MDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MjdweCAxMi41cHggMCAyMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRoYW5rLXlvdSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MThweDsgfQogQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NjY3cHgpIHsgI19mb3JtXzlfLl9pbmxpbmUtZm9ybS5faW5saW5lLXN0eWxlIC5faW5saW5lLXN0eWxlLl9idXR0b24td3JhcHBlciB7IG1hcmdpbi10b3A6MjBweCAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDowICFpbXBvcnRhbnQ7IH0KIH0KPC9zdHlsZT4KPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Imh0dHBzOi8vY2Z0ZS5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwIiBpZD0iX2Zvcm1fOV8iIGNsYXNzPSJfZm9ybSBfZm9ybV85IF9pbmxpbmUtZm9ybSAgX2RhcmsiIG5vdmFsaWRhdGU+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idSIgdmFsdWU9IjkiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZiIgdmFsdWU9IjkiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icyIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjIiB2YWx1ZT0iMCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtIiB2YWx1ZT0iMCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzdWIiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idiIgdmFsdWU9IjIiIC8+CiAgPGRpdiBjbGFzcz0iX2Zvcm0tY29udGVudCI+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NTQyNDM5ODIgX2Z1bGxfd2lkdGggX2NsZWFyIiA+CiAgICAgIDxka
XYgY2xhc3M9Il9mb3JtLXRpdGxlIj4KICAgICAgICBTdWJzY3JpYmUgdG8gb3VyIFdlZWtseSBOZXdzbGV0dGVyCiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NjA5MzM0NzIgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIEZpcnN0IE5hbWUqCiAgICAgIDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmlyc3RuYW1lIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGZpcnN0IG5hbWUiIHJlcXVpcmVkLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g0MjY0ODYwMCBfZnVsbF93aWR0aCAiID4KICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgTGFzdCBOYW1lKgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imxhc3RuYW1lIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGxhc3QgbmFtZSIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDA0OTc0OTE5IF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBFbWFpbCoKICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IlR5cGUgeW91ciBlbWFpbCIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQxIF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBDb3VudHJ5KgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPHNlbGVjdCBuYW1lPSJmaWVsZFsxXSIgcmVxdWlyZWQ+CiAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBZmdoYW5pc3RhbiIgPgogICAgICAgICAgICBBZmdoYW5pc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbGJhbmlhIiA+CiAgICAgICAgICAgIEFsYmFuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWxnZXJpYSIgPgogICAgICAgICAgICBBbGdlcmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFtZXJpY2FuIFNhbW9hIiA+CiAgICAgICAgICAgIEFtZXJpY2FuIFNhbW9hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZG9ycmEiID4KICAgICAgICAgICAgQW5kb3JyYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbmdvbGEiID4KICAgICAgICAgICAgQW5nb2xhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZ3VpbGxhIiA+CiAgICAgICAgICAgIEFuZ3VpbGxhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFudGFyY3RpY2EiID4KICAgICAgICAgICAgQW50YXJjdGljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbnRpZ3VhIGFuZCBCYXJidWRhIiA+CiAgICAgICAgICAgIEFudGlndWEgYW5kIEJhcmJ1ZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJnZW50aW5hIiA+CiAgICAgICAgICAgIEFyZ2VudGluYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcm1lbmlhIiA+CiAgICAgICAgICAgIEFybWVuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJ1YmEiID4KICAgICAgICAgICAgQXJ1YmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXVzdHJhbGlhIiA+CiAgICAgICAgICAgIEF1c3RyYWxpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBdXN0cmlhIiA+CiAgICAgICAgICAgIEF1c3RyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXplcmJhaWphbiIgPgogICAgICAgICAgICBBemVyYmFpamFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhaGFtYXMiID4KICAgICAgICAgICAgQmFoYW1hcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCYWhyYWluIiA+CiAgICAgICAgICAgIEJhaHJhaW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFuZ2xhZGVzaCIgPgogICAgICAgICAgICBCYW5nbGFkZXNoCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhcmJhZG9zIiA+CiAgICAgICAgICAgIEJhcmJhZG9zCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbGFydXMiID4KICAgICAgICAgICAgQmVsYXJ1cwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZWxnaXVtIiA+CiAgICAgICAgICAgIEJlbGdpdW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVsaXplIiA+CiAgICAgICAgICAgIEJlbGl6ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZW5pbiIgPgogICAgICAgICAgICBCZW5pbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZXJtdWRhIiA+CiAgICAgICAgICAgIEJlcm11ZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmh1dGFuIiA+CiAgICAgICAgICAgIEJodXRhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCb2xpdmlhIiA+CiAgICAgICAgICAgIEJvbGl2aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgPgogICAgICAgICAgICBCb3NuaWEgYW5kIEhlcnplZ292aW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvdHN3YW5hIiA+CiAgICAgICAgICAgIEJvdHN3YW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvdXZldCBJc2xhbmQiID4KICAgICAgICAgICAgQm91dmV0IElzbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCcmF6aWwiID4KICAgICAgICAgICAgQnJhemlsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgPgogICAgICAgICAgICBCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnJ1bmVpIERhcnVzc2FsYW0iID4KICAgICAgICAgICAgQnJ1bmVpIERhcnVzc2FsYW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnVsZ2FyaWEiID4KICAgICAgICAgICAgQnVsZ2FyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnVya2luYSBGYXNvIiA+CiAgICAgICAgICAgIEJ1cmtpbmEgRmFzbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCdXJ1bmRpIiA+CiAgICAgICAgICAgIEJ1cnVuZGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FtYm9kaWEiID4KICAgICAgICAgICAgQ2FtYm9kaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FtZXJvb24iID4KICAgICAgICAgICAgQ2FtZXJvb24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FuYWRhIiA+CiAgICAgICAgICAgIENhbmFkYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYXBlIFZlcmRlIiA+CiAgICAgICAgICAgIENhcGUgVmVyZGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2F5bWFuIElzbGFuZHMiID4KICAgICAgICAgICAgQ2F5bWFuIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljIiA+CiAgICAgICAgICAgIENlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaGFkIiA+CiAgICAgICAgICAgIENoYWQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hpbGUiID4KICAgICAgICAgICAgQ2hpbGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hpbmEiID4KICAgICAgICAgICAgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hyaXN0bWFzIElzbGFuZCIgPgogICAgICAgICAgICBDaHJpc3RtYXMgSXNsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvY29zIChLZWVsaW5nKSBJc2xhbmRzIiA+CiAgICAgICAgICAgIENvY29zIChLZWVsaW5nKSBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbG9tYmlhIiA+CiAgICAgICAgICAgIENvbG9tYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbW9yb3MiID4KICAgICAgICAgICAgQ29tb3JvcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb25nbyIgPgogICAgICAgICAgICBDb25nbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlIiA+CiAgICAgICAgICAgIENvbmdvLCB0aGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29vayBJc2xhbmRzIiA+CiAgICAgICAgICAgIENvb2sgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb3N0YSBSaWNhIiA+CiAgICAgICAgICAgIENvc3RhIFJpY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ290ZSBEJiMwMzk7SXZvaXJlIiA+CiAgICAgICAgICAgIENvdGUgRCYjMDM5O0l2b2lyZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDcm9hdGlhIiA+CiAgICAgICAgICAgIENyb2F0aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3ViYSIgPgogICAgICAgICAgICBDdWJhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkN5cHJ1cyIgPgogICAgICAgICAgICBDeXBydXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3plY2ggUmVwdWJsaWMiID4KICAgICAgICAgICAgQ3plY2ggUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRGVubWFyayIgPgogICAgICAgICAgICBEZW5tYXJrCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRqaWJvdXRpIiA+CiAgICAgICAgICAgIERqaWJvdXRpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRvbWluaWNhIiA+CiAgICAgICAgICAgIERvbWluaWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRvbWluaWNhbiBSZXB1YmxpYyIgPgogICAgICAgICAgICBE
b21pbmljYW4gUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWN1YWRvciIgPgogICAgICAgICAgICBFY3VhZG9yCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVneXB0IiA+CiAgICAgICAgICAgIEVneXB0CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVsIFNhbHZhZG9yIiA+CiAgICAgICAgICAgIEVsIFNhbHZhZG9yCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVxdWF0b3JpYWwgR3VpbmVhIiA+CiAgICAgICAgICAgIEVxdWF0b3JpYWwgR3VpbmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVyaXRyZWEiID4KICAgICAgICAgICAgRXJpdHJlYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFc3RvbmlhIiA+CiAgICAgICAgICAgIEVzdG9uaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXRoaW9waWEiID4KICAgICAgICAgICAgRXRoaW9waWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIiA+CiAgICAgICAgICAgIEZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGYXJvZSBJc2xhbmRzIiA+CiAgICAgICAgICAgIEZhcm9lIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmlqaSIgPgogICAgICAgICAgICBGaWppCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZpbmxhbmQiID4KICAgICAgICAgICAgRmlubGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmFuY2UiID4KICAgICAgICAgICAgRnJhbmNlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyZW5jaCBHdWlhbmEiID4KICAgICAgICAgICAgRnJlbmNoIEd1aWFuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmVuY2ggUG9seW5lc2lhIiA+CiAgICAgICAgICAgIEZyZW5jaCBQb2x5bmVzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiA+CiAgICAgICAgICAgIEZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHYWJvbiIgPgogICAgICAgICAgICBHYWJvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHYW1iaWEiID4KICAgICAgICAgICAgR2FtYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikdlb3JnaWEiID4KICAgICAgICAgICAgR2VvcmdpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHZXJtYW55IiA+CiAgICAgICAgICAgIEdlcm1hbnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2hhbmEiID4KICAgICAgICAgICAgR2hhbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2licmFsdGFyIiA+CiAgICAgICAgICAgIEdpYnJhbHRhcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVlY2UiID4KICAgICAgICAgICAgR3JlZWNlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZWVubGFuZCIgPgogICAgICAgICAgICBHcmVlbmxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3JlbmFkYSIgPgogICAgICAgICAgICBHcmVuYWRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1YWRlbG91cGUiID4KICAgICAgICAgICAgR3VhZGVsb3VwZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWFtIiA+CiAgICAgICAgICAgIEd1YW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VhdGVtYWxhIiA+CiAgICAgICAgICAgIEd1YXRlbWFsYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWVybnNleSIgPgogICAgICAgICAgICBHdWVybnNleQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWluZWEiID4KICAgICAgICAgICAgR3VpbmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1aW5lYS1CaXNzYXUiID4KICAgICAgICAgICAgR3VpbmVhLUJpc3NhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdXlhbmEiID4KICAgICAgICAgICAgR3V5YW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhhaXRpIiA+CiAgICAgICAgICAgIEhhaXRpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kcyIgPgogICAgICAgICAgICBIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSkiID4KICAgICAgICAgICAgSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9uZHVyYXMiID4KICAgICAgICAgICAgSG9uZHVyYXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9uZyBLb25nIiA+CiAgICAgICAgICAgIEhvbmcgS29uZwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIdW5nYXJ5IiA+CiAgICAgICAgICAgIEh1bmdhcnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSWNlbGFuZCIgPgogICAgICAgICAgICBJY2VsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkluZGlhIiA+CiAgICAgICAgICAgIEluZGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkluZG9uZXNpYSIgPgogICAgICAgICAgICBJbmRvbmVzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklyYXEiID4KICAgICAgICAgICAgSXJhcQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJcmVsYW5kIiA+CiAgICAgICAgICAgIElyZWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXNyYWVsIiA+CiAgICAgICAgICAgIElzcmFlbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJdGFseSIgPgogICAgICAgICAgICBJdGFseQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKYW1haWNhIiA+CiAgICAgICAgICAgIEphbWFpY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSmFwYW4iID4KICAgICAgICAgICAgSmFwYW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSm9yZGFuIiA+CiAgICAgICAgICAgIEpvcmRhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLYXpha2hzdGFuIiA+CiAgICAgICAgICAgIEthemFraHN0YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2VueWEiID4KICAgICAgICAgICAgS2VueWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2lyaWJhdGkiID4KICAgICAgICAgICAgS2lyaWJhdGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS29yZWEsIERlbW9jcmF0aWMgUGVvcGxlJiMwMzk7cyBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGUmIzAzOTtzIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktvcmVhLCBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBLb3JlYSwgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS3V3YWl0IiA+CiAgICAgICAgICAgIEt1d2FpdAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLeXJneXpzdGFuIiA+CiAgICAgICAgICAgIEt5cmd5enN0YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGFvIFBlb3BsZSYjMDM5O3MgRGVtb2NyYXRpYyBSZXB1YmxpYyIgPgogICAgICAgICAgICBMYW8gUGVvcGxlJiMwMzk7cyBEZW1vY3JhdGljIFJlcHVibGljCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxhdHZpYSIgPgogICAgICAgICAgICBMYXR2aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGViYW5vbiIgPgogICAgICAgICAgICBMZWJhbm9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikxlc290aG8iID4KICAgICAgICAgICAgTGVzb3RobwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaWJlcmlhIiA+CiAgICAgICAgICAgIExpYmVyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGlieWFuIEFyYWIgSmFtYWhpcml5YSIgPgogICAgICAgICAgICBMaWJ5YW4gQXJhYiBKYW1haGlyaXlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpZWNodGVuc3RlaW4iID4KICAgICAgICAgICAgTGllY2h0ZW5zdGVpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaXRodWFuaWEiID4KICAgICAgICAgICAgTGl0aHVhbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikx1eGVtYm91cmciID4KICAgICAgICAgICAgTHV4ZW1ib3VyZwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWNhbyIgPgogICAgICAgICAgICBNYWNhbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWNlZG9uaWEsIHRoZSBGb3JtZXIgWXVnb3NsYXYgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgTWFjZWRvbmlhLCB0aGUgRm9ybWVyIFl1Z29zbGF2IFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hZGFnYXNjYXIiID4KICAgICAgICAgICAgTWFkYWdhc2NhcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWxhd2kiID4KICAgICAgICAgICAgTWFsYXdpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGF5c2lhIiA+CiAgICAgICAgICAgIE1hbGF5c2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGRpdmVzIiA+CiAgICAgICAgICAgIE1hbGRpdmVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGkiID4KICAgICAgICAgICAgTWFsaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWx0YSIgPgogICAgICAgICAgICBNYWx0YQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXJzaGFsbCBJc2xhbmRzIiA+CiAgICAgICAgICAgIE1hcnNoYWxsIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9
uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFydGluaXF1ZSIgPgogICAgICAgICAgICBNYXJ0aW5pcXVlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hdXJpdGFuaWEiID4KICAgICAgICAgICAgTWF1cml0YW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXVyaXRpdXMiID4KICAgICAgICAgICAgTWF1cml0aXVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1heW90dGUiID4KICAgICAgICAgICAgTWF5b3R0ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNZXhpY28iID4KICAgICAgICAgICAgTWV4aWNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1pY3JvbmVzaWEsIEZlZGVyYXRlZCBTdGF0ZXMgb2YiID4KICAgICAgICAgICAgTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb2xkb3ZhLCBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBNb2xkb3ZhLCBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb25hY28iID4KICAgICAgICAgICAgTW9uYWNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbmdvbGlhIiA+CiAgICAgICAgICAgIE1vbmdvbGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbnRlbmVncm8iID4KICAgICAgICAgICAgTW9udGVuZWdybwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb250c2VycmF0IiA+CiAgICAgICAgICAgIE1vbnRzZXJyYXQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9yb2NjbyIgPgogICAgICAgICAgICBNb3JvY2NvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vemFtYmlxdWUiID4KICAgICAgICAgICAgTW96YW1iaXF1ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNeWFubWFyIiA+CiAgICAgICAgICAgIE15YW5tYXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmFtaWJpYSIgPgogICAgICAgICAgICBOYW1pYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5hdXJ1IiA+CiAgICAgICAgICAgIE5hdXJ1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5lcGFsIiA+CiAgICAgICAgICAgIE5lcGFsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIiA+CiAgICAgICAgICAgIE5ldGhlcmxhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIEFudGlsbGVzIiA+CiAgICAgICAgICAgIE5ldGhlcmxhbmRzIEFudGlsbGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldyBDYWxlZG9uaWEiID4KICAgICAgICAgICAgTmV3IENhbGVkb25pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOZXcgWmVhbGFuZCIgPgogICAgICAgICAgICBOZXcgWmVhbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaWNhcmFndWEiID4KICAgICAgICAgICAgTmljYXJhZ3VhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pZ2VyIiA+CiAgICAgICAgICAgIE5pZ2VyCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pZ2VyaWEiID4KICAgICAgICAgICAgTmlnZXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaXVlIiA+CiAgICAgICAgICAgIE5pdWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9yZm9sayBJc2xhbmQiID4KICAgICAgICAgICAgTm9yZm9sayBJc2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiA+CiAgICAgICAgICAgIE5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3J3YXkiID4KICAgICAgICAgICAgTm9yd2F5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik9tYW4iID4KICAgICAgICAgICAgT21hbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWtpc3RhbiIgPgogICAgICAgICAgICBQYWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWxhdSIgPgogICAgICAgICAgICBQYWxhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiA+CiAgICAgICAgICAgIFBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFuYW1hIiA+CiAgICAgICAgICAgIFBhbmFtYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYXB1YSBOZXcgR3VpbmVhIiA+CiAgICAgICAgICAgIFBhcHVhIE5ldyBHdWluZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFyYWd1YXkiID4KICAgICAgICAgICAgUGFyYWd1YXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGVydSIgPgogICAgICAgICAgICBQZXJ1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBoaWxpcHBpbmVzIiA+CiAgICAgICAgICAgIFBoaWxpcHBpbmVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBpdGNhaXJuIiA+CiAgICAgICAgICAgIFBpdGNhaXJuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBvbGFuZCIgPgogICAgICAgICAgICBQb2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUG9ydHVnYWwiID4KICAgICAgICAgICAgUG9ydHVnYWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUHVlcnRvIFJpY28iID4KICAgICAgICAgICAgUHVlcnRvIFJpY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUWF0YXIiID4KICAgICAgICAgICAgUWF0YXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUmV1bmlvbiIgPgogICAgICAgICAgICBSZXVuaW9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJvbWFuaWEiID4KICAgICAgICAgICAgUm9tYW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJSdXNzaWFuIEZlZGVyYXRpb24iID4KICAgICAgICAgICAgUnVzc2lhbiBGZWRlcmF0aW9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJ3YW5kYSIgPgogICAgICAgICAgICBSd2FuZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgSGVsZW5hIiA+CiAgICAgICAgICAgIFNhaW50IEhlbGVuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBLaXR0cyBhbmQgTmV2aXMiID4KICAgICAgICAgICAgU2FpbnQgS2l0dHMgYW5kIE5ldmlzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IEx1Y2lhIiA+CiAgICAgICAgICAgIFNhaW50IEx1Y2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iID4KICAgICAgICAgICAgU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyIgPgogICAgICAgICAgICBTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW1vYSIgPgogICAgICAgICAgICBTYW1vYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW4gTWFyaW5vIiA+CiAgICAgICAgICAgIFNhbiBNYXJpbm8KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FvIFRvbWUgYW5kIFByaW5jaXBlIiA+CiAgICAgICAgICAgIFNhbyBUb21lIGFuZCBQcmluY2lwZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYXVkaSBBcmFiaWEiID4KICAgICAgICAgICAgU2F1ZGkgQXJhYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNlbmVnYWwiID4KICAgICAgICAgICAgU2VuZWdhbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTZXJiaWEiID4KICAgICAgICAgICAgU2VyYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNleWNoZWxsZXMiID4KICAgICAgICAgICAgU2V5Y2hlbGxlcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTaWVycmEgTGVvbmUiID4KICAgICAgICAgICAgU2llcnJhIExlb25lCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNpbmdhcG9yZSIgPgogICAgICAgICAgICBTaW5nYXBvcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmFraWEiID4KICAgICAgICAgICAgU2xvdmFraWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmVuaWEiID4KICAgICAgICAgICAgU2xvdmVuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU29sb21vbiBJc2xhbmRzIiA+CiAgICAgICAgICAgIFNvbG9tb24gSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb21hbGlhIiA+CiAgICAgICAgICAgIFNvbWFsaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU291dGggQWZyaWNhIiA+CiAgICAgICAgICAgIFNvdXRoIEFmcmljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyIgPgogICAgICAgICAgICBTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTcGFpbiIgPgogICAgICAgICAgICBTcGFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTcmkgTGFua2EiID4KICAgICAgICAgICAgU3JpIExhbmthCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN1ZGFuIiA+CiAgICAgICAgICAgIFN1ZGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN1cmluYW1lIiA+CiAgICAgICAgICAgIFN1cmluYW1lCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4iID4KICAgICAgICAgICAgU3ZhbGJhcmQgYW5kIEphbiBNYXllbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTd2F6aWxhbmQiID4KICAgICAgICAgICAgU3dhemlsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3ZWRlbiIgPgogICAgICAgICAgICBTd2VkZW4KICAgICAgICAgID
wvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3dpdHplcmxhbmQiID4KICAgICAgICAgICAgU3dpdHplcmxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3lyaWFuIEFyYWIgUmVwdWJsaWMiID4KICAgICAgICAgICAgU3lyaWFuIEFyYWIgUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFpd2FuLCBQcm92aW5jZSBvZiBDaGluYSIgPgogICAgICAgICAgICBUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhamlraXN0YW4iID4KICAgICAgICAgICAgVGFqaWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIFRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGhhaWxhbmQiID4KICAgICAgICAgICAgVGhhaWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGltb3ItTGVzdGUiID4KICAgICAgICAgICAgVGltb3ItTGVzdGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVG9nbyIgPgogICAgICAgICAgICBUb2dvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRva2VsYXUiID4KICAgICAgICAgICAgVG9rZWxhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUb25nYSIgPgogICAgICAgICAgICBUb25nYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUcmluaWRhZCBhbmQgVG9iYWdvIiA+CiAgICAgICAgICAgIFRyaW5pZGFkIGFuZCBUb2JhZ28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVuaXNpYSIgPgogICAgICAgICAgICBUdW5pc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1cmtleSIgPgogICAgICAgICAgICBUdXJrZXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVya21lbmlzdGFuIiA+CiAgICAgICAgICAgIFR1cmttZW5pc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiID4KICAgICAgICAgICAgVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1dmFsdSIgPgogICAgICAgICAgICBUdXZhbHUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVWdhbmRhIiA+CiAgICAgICAgICAgIFVnYW5kYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVa3JhaW5lIiA+CiAgICAgICAgICAgIFVrcmFpbmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEFyYWIgRW1pcmF0ZXMiID4KICAgICAgICAgICAgVW5pdGVkIEFyYWIgRW1pcmF0ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEtpbmdkb20iID4KICAgICAgICAgICAgVW5pdGVkIEtpbmdkb20KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIFN0YXRlcyIgPgogICAgICAgICAgICBVbml0ZWQgU3RhdGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgPgogICAgICAgICAgICBVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVXJ1Z3VheSIgPgogICAgICAgICAgICBVcnVndWF5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlV6YmVraXN0YW4iID4KICAgICAgICAgICAgVXpiZWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWYW51YXR1IiA+CiAgICAgICAgICAgIFZhbnVhdHUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmVuZXp1ZWxhIiA+CiAgICAgICAgICAgIFZlbmV6dWVsYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaWV0bmFtIiA+CiAgICAgICAgICAgIFZpZXRuYW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giID4KICAgICAgICAgICAgVmlyZ2luIElzbGFuZHMsIEJyaXRpc2gKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmlyZ2luIElzbGFuZHMsIFUucy4iID4KICAgICAgICAgICAgVmlyZ2luIElzbGFuZHMsIFUucy4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iV2FsbGlzIGFuZCBGdXR1bmEiID4KICAgICAgICAgICAgV2FsbGlzIGFuZCBGdXR1bmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iV2VzdGVybiBTYWhhcmEiID4KICAgICAgICAgICAgV2VzdGVybiBTYWhhcmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWWVtZW4iID4KICAgICAgICAgICAgWWVtZW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWmFtYmlhIiA+CiAgICAgICAgICAgIFphbWJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJaaW1iYWJ3ZSIgPgogICAgICAgICAgICBaaW1iYWJ3ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTRyIgPgogICAgICAgICAgICBTRwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDQU5BREEiID4KICAgICAgICAgICAgQ0FOQURBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktvcmVhIiA+CiAgICAgICAgICAgIEtvcmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiIgPgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMdXhlbWJvdXJnaCIgPgogICAgICAgICAgICBMdXhlbWJvdXJnaAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNWSIgPgogICAgICAgICAgICBNWQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFU1dBUlRJTkkiID4KICAgICAgICAgICAgRVNXQVJUSU5JCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImVTd2F0aW5pICIgPgogICAgICAgICAgICBlU3dhdGluaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTWiIgPgogICAgICAgICAgICBTWgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDQSIgPgogICAgICAgICAgICBDQQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVhdCBCcml0YWluIiA+CiAgICAgICAgICAgIEdyZWF0IEJyaXRhaW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUnVzc2lhIiA+CiAgICAgICAgICAgIFJ1c3NpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb25nIEtvbmcgU0FSIENoaW5hIiA+CiAgICAgICAgICAgIEhvbmcgS29uZyBTQVIgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTG9uZG9uIiA+CiAgICAgICAgICAgIExvbmRvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgPC9zZWxlY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF9maWVsZDIgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3ciPgogICAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgICAgUHJpdmFjeSBQb2xpY3kqCiAgICAgICAgPC9sYWJlbD4KICAgICAgPC9kaXY+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpZWxkWzJdW10iIHZhbHVlPSJ+fCI+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzJdW10iIHZhbHVlPSJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSIgY2xhc3M9ImFueSIgIHJlcXVpcmVkPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfMkkgcmVhZCBhbmQgdW5kZXJzdG9vZCBDRlRFIFByaXZhY3kgUG9saWN5ICh3d3cuY2Z0ZS5lZHVjYXRpb24vcHJpdmFjeS1wb2xpY3kpIj4KICAgICAgICAgICAgSSByZWFkIGFuZCB1bmRlcnN0b29kIENGVEUgUHJpdmFjeSBQb2xpY3kgKHd3dy5jZnRlLmVkdWNhdGlvbi9wcml2YWN5LXBvbGljeSkKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQzIF9mdWxsX3dpZHRoICIgPgogICAgICA8ZGl2IGNsYXNzPSJfcm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgIENvbW11bmljYXRpb24gb3B0aW9ucwogICAgICAgIDwvbGFiZWw+CiAgICAgIDwvZGl2PgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0ifnwiPgogICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8zSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0iSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwiICAgPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfM0kmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsIj4KICAgICAgICAgICAgSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgIDxpbnB1dCBpZD0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlciIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzNdW10iIHZhbHVlPSJJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIiICAgPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlciI+CiAgICAgICAgICAgIEkgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlcgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8zSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZ
XR0ZXIgIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbM11bXSIgdmFsdWU9Ikkgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyICIgICA+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZF8zSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZXR0ZXIgIj4KICAgICAgICAgICAgSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZXR0ZXIKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2J1dHRvbi13cmFwcGVyIF9mdWxsX3dpZHRoIj4KICAgICAgPGJ1dHRvbiBpZD0iX2Zvcm1fOV9zdWJtaXQiIGNsYXNzPSJfc3VibWl0IiB0eXBlPSJzdWJtaXQiPgogICAgICAgIFN1Ym1pdAogICAgICA8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2NsZWFyLWVsZW1lbnQiPgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iX2Zvcm0tdGhhbmsteW91IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgPC9kaXY+CjwvZm9ybT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5jZmllbGRzID0geyIxIjoiY291bnRyeSIsIjIiOiJwcml2YWN5X3BvbGljeSIsIjMiOiJjb21tdW5pY2F0aW9uX29wdGlvbnMifTsKd2luZG93Ll9zaG93X3RoYW5rX3lvdSA9IGZ1bmN0aW9uKGlkLCBtZXNzYWdlLCB0cmFja2NtcF91cmwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV8nICsgaWQgKyAnXycpLCB0aGFua195b3UgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS10aGFuay15b3UnKTsKICBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS1jb250ZW50Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB0aGFua195b3UuaW5uZXJIVE1MID0gbWVzc2FnZTsKICB0aGFua195b3Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgaWYgKHR5cGVvZih0cmFja2NtcF91cmwpICE9ICd1bmRlZmluZWQnICYmIHRyYWNrY21wX3VybCkgewogICAgLy8gU2l0ZSB0cmFja2luZyBVUkwgdG8gdXNlIGFmdGVyIGlubGluZSBmb3JtIHN1Ym1pc3Npb24uCiAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICB9CiAgaWYgKHR5cGVvZiB3aW5kb3cuX2Zvcm1fY2FsbGJhY2sgIT09ICd1bmRlZmluZWQnKSB3aW5kb3cuX2Zvcm1fY2FsbGJhY2soaWQpOwp9Owp3aW5kb3cuX3Nob3dfZXJyb3IgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgaHRtbCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIGVyciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBidXR0b24gPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLCBvbGRfZXJyb3IgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpOwogIGlmIChvbGRfZXJyb3IpIG9sZF9lcnJvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9sZF9lcnJvcik7CiAgZXJyLmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgZXJyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX2Zvcm1fZXJyb3IgX25vX2Fycm93JzsKICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIHdyYXBwZXIuY2xhc3NOYW1lID0gJ19mb3JtLWlubmVyJzsKICB3cmFwcGVyLmFwcGVuZENoaWxkKGVycik7CiAgYnV0dG9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIGJ1dHRvbik7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2lkXj0iX2Zvcm0iXVtpZCQ9Il9zdWJtaXQiXScpLmRpc2FibGVkID0gZmFsc2U7CiAgaWYgKGh0bWwpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5jbGFzc05hbWUgPSAnX2Vycm9yLWh0bWwnOwogICAgZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgICBlcnIuYXBwZW5kQ2hpbGQoZGl2KTsKICB9Cn07CndpbmRvdy5fbG9hZF9zY3JpcHQgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CiAgICB2YXIgaGVhZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKSwgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksIHIgPSBmYWxzZTsKICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBzY3JpcHQuY2hhcnNldCA9ICd1dGYtOCc7CiAgICBzY3JpcHQuc3JjID0gdXJsOwogICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgIHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICghciAmJiAoIXRoaXMucmVhZHlTdGF0ZSB8fCB0aGlzLnJlYWR5U3RhdGUgPT0gJ2NvbXBsZXRlJykpIHsKICAgICAgICByID0gdHJ1ZTsKICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKfTsKKGZ1bmN0aW9uKCkgewogIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnNlYXJjaCgiZXhjbHVkZWZvcm0iKSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICB2YXIgZ2V0Q29va2llID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJyhefDsgKScgKyBuYW1lICsgJz0oW147XSspJykpOwogICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMl0gOiBudWxsOwogIH0KICB2YXIgc2V0Q29va2llID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgdmFyIHRpbWUgPSBub3cuZ2V0VGltZSgpOwogICAgdmFyIGV4cGlyZVRpbWUgPSB0aW1lICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTsKICAgIG5vdy5zZXRUaW1lKGV4cGlyZVRpbWUpOwogICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArICc9JyArIHZhbHVlICsgJzsgZXhwaXJlcz0nICsgbm93ICsgJztwYXRoPS8nOwogIH0KICAgICAgdmFyIGFkZEV2ZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGZ1bmMpIHsKICAgIGlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmdW5jKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBvbGRGdW5jID0gZWxlbWVudFsnb24nICsgZXZlbnRdOwogICAgICBlbGVtZW50WydvbicgKyBldmVudF0gPSBmdW5jdGlvbigpIHsKICAgICAgICBvbGRGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9OwogICAgfQogIH0KICB2YXIgX3JlbW92ZWQgPSBmYWxzZTsKICB2YXIgZm9ybV90b19zdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKTsKICB2YXIgYWxsSW5wdXRzID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEnKSwgdG9vbHRpcHMgPSBbXSwgc3VibWl0dGVkID0gZmFsc2U7CgogIHZhciBnZXRVcmxQYXJhbSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHZhciByZWdleFN0ciA9ICdbXD8mXScgKyBuYW1lICsgJz0oW14mI10qKSc7CiAgICB2YXIgcmVzdWx0cyA9IG5ldyBSZWdFeHAocmVnZXhTdHIsICdpJykuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICByZXR1cm4gcmVzdWx0cyAhPSB1bmRlZmluZWQgPyBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXSkgOiBmYWxzZTsKICB9OwoKICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIHJlZ2V4U3RyID0gImZpZWxkXFxbKFxcZCspXFxdIjsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0cikuZXhlYyhhbGxJbnB1dHNbaV0ubmFtZSk7CiAgICBpZiAocmVzdWx0cyAhPSB1bmRlZmluZWQpIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IHdpbmRvdy5jZmllbGRzW3Jlc3VsdHNbMV1dOwogICAgfSBlbHNlIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lOwogICAgfQogICAgdmFyIGZpZWxkVmFsID0gZ2V0VXJsUGFyYW0oYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSk7CgogICAgaWYgKGZpZWxkVmFsKSB7CiAgICAgIGlmIChhbGxJbnB1dHNbaV0udHlwZSA9PSAicmFkaW8iIHx8IGFsbElucHV0c1tpXS50eXBlID09ICJjaGVja2JveCIpIHsKICAgICAgICBpZiAoYWxsSW5wdXRzW2ldLnZhbHVlID09IGZpZWxkVmFsKSB7CiAgICAgICAgICBhbGxJbnB1dHNbaV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGZpZWxkVmFsOwogICAgICB9CiAgICB9CiAgfQoKICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICB9CiAgICAgIHRvb2x0aXBzID0gW107CiAgfTsKICB2YXIgcmVtb3ZlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh0b29sdGlwc1tpXS5lbGVtID09PSBlbGVtKSB7CiAgICAgICAgdG9vbHRpcHNbaV0udGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcHNbaV0udGlwKTsKICAgICAgICB0b29sdGlwcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfTsKICB2YXIgY3JlYXRlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtLCB0ZXh0KSB7CiAgICB2YXIgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBhcnJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBuZXdfdG9vbHRpcCA9IHt9OwogICAgaWYgKGVsZW0udHlwZSAhPSAncmFkaW8nICYmIGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSB7CiAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJ19lcnJvcic7CiAgICAgIGFycm93LmNsYXNzTmFtZSA9ICdfZXJyb3ItYXJyb3cnOwogICAgICBpbm5lci5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyJzsKICAgICAgaW5uZXIuaW5uZXJIVE1MID0gdGV4dDsKICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChhcnJvdyk7CiAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoaW5uZXIpOwogICAgICBlbGVtLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodG9vbHRpcCk7CiAgICB9IGVsc2UgewogICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX25vX2Fycm93JzsKICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSB0ZXh0OwogICAgICBlbGVtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRvb2x0aXAsIGVsZW0pOwogICAgICBuZXdfdG9vbHRpcC5ub19hcnJvdyA9IHRydWU7CiAgICB9CiAgICBuZXdfdG9vbHRpcC50aXAgPSB0b29sdGlwOwogICAgbmV3X3Rvb2x0aXAuZWxlbSA9IGVsZW07CiAgICB0b29sdGlwcy5wdXNoKG5ld190b29sdGlwKTsKICAgIHJldHVybiBuZXdfdG9vbHRpcDsKICB9OwogIHZhciByZXNpemVfdG9vbHRpcCA9IGZ1bmN0aW9uKHRvb2x0aXApIHsKICAgIHZhciByZWN0ID0gdG9vbHRpcC5lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIGRvYyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgc2Nyb2xsUG9zaXRpb24gPSByZWN0LnRvcCAtICgod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvYy5zY3JvbGxUb3ApICAtIChkb2MuY2xpZW50VG9wIHx8IDApKTsKICAgIGlmIChzY3JvbGxQb3NpdGlvbiA8IDQwKSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2JlbG93JzsKICAgIH0gZWxzZSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSAr
ICcgX2Fib3ZlJzsKICAgIH0KICB9OwogIHZhciByZXNpemVfdG9vbHRpcHMgPSBmdW5jdGlvbigpIHsKICAgIGlmIChfcmVtb3ZlZCkgcmV0dXJuOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoIXRvb2x0aXBzW2ldLm5vX2Fycm93KSByZXNpemVfdG9vbHRpcCh0b29sdGlwc1tpXSk7CiAgICB9CiAgfTsKICB2YXIgdmFsaWRhdGVfZmllbGQgPSBmdW5jdGlvbihlbGVtLCByZW1vdmUpIHsKICAgIHZhciB0b29sdGlwID0gbnVsbCwgdmFsdWUgPSBlbGVtLnZhbHVlLCBub19lcnJvciA9IHRydWU7CiAgICByZW1vdmUgPyByZW1vdmVfdG9vbHRpcChlbGVtKSA6IGZhbHNlOwogICAgaWYgKGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgIGlmIChlbGVtLmdldEF0dHJpYnV0ZSgncmVxdWlyZWQnKSAhPT0gbnVsbCkgewogICAgICBpZiAoZWxlbS50eXBlID09ICdyYWRpbycgfHwgKGVsZW0udHlwZSA9PSAnY2hlY2tib3gnICYmIC9hbnkvLnRlc3QoZWxlbS5jbGFzc05hbWUpKSkgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV07CiAgICAgICAgaWYgKCEoZWxlbXMgaW5zdGFuY2VvZiBOb2RlTGlzdCB8fCBlbGVtcyBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uKSB8fCBlbGVtcy5sZW5ndGggPD0gMSkgewogICAgICAgICAgbm9fZXJyb3IgPSBlbGVtLmNoZWNrZWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW1zW2ldLmNoZWNrZWQpIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJQbGVhc2Ugc2VsZWN0IGFuIG9wdGlvbi4iKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50eXBlID09J2NoZWNrYm94JykgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV0sIGZvdW5kID0gZmFsc2UsIGVyciA9IFtdOwogICAgICAgIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoZWxlbXNbaV0uZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpID09PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgIGlmICghZm91bmQgJiYgZWxlbXNbaV0gIT09IGVsZW0pIHJldHVybiB0cnVlOwogICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgZWxlbXNbaV0uY2xhc3NOYW1lID0gZWxlbXNbaV0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgICAgICAgIGlmICghZWxlbXNbaV0uY2hlY2tlZCkgewogICAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgICAgICBlcnIucHVzaCgiQ2hlY2tpbmcgJXMgaXMgcmVxdWlyZWQiLnJlcGxhY2UoIiVzIiwgZWxlbXNbaV0udmFsdWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sIGVyci5qb2luKCc8YnIvPicpKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50YWdOYW1lID09ICdTRUxFQ1QnKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICBpZiAoZWxlbS5tdWx0aXBsZSkgewogICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQpIHsKICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW0ub3B0aW9uc1tpXS5zZWxlY3RlZCAmJiAhZWxlbS5vcHRpb25zW2ldLnZhbHVlKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNlbGVjdGVkKSB7CiAgICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJyBfaGFzX2Vycm9yJzsKICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlBsZWFzZSBzZWxlY3QgYW4gb3B0aW9uLiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpOwogICAgICB9CiAgICB9CiAgICBpZiAobm9fZXJyb3IgJiYgZWxlbS5uYW1lID09ICdlbWFpbCcpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXltcK19hLXowLTktJyY9XSsoXC5bXCtfYS16MC05LSddKykqQFthLXowLTktXSsoXC5bYS16MC05LV0rKSooXC5bYS16XXsyLH0pJC9pKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiAvZGF0ZV9maWVsZC8udGVzdChlbGVtLmNsYXNzTmFtZSkpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXlxkXGRcZFxkLVxkXGQtXGRcZCQvKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGRhdGUuIik7CiAgICAgIH0KICAgIH0KICAgIHRvb2x0aXAgPyByZXNpemVfdG9vbHRpcCh0b29sdGlwKSA6IGZhbHNlOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgdmFyIG5lZWRzX3ZhbGlkYXRlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbC5uYW1lID09ICdlbWFpbCcgfHwgZWwuZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpICE9PSBudWxsOwogIH07CiAgdmFyIHZhbGlkYXRlX2Zvcm0gPSBmdW5jdGlvbihlKSB7CiAgICB2YXIgZXJyID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvcignLl9mb3JtX2Vycm9yJyksIG5vX2Vycm9yID0gdHJ1ZTsKICAgIGlmICghc3VibWl0dGVkKSB7CiAgICAgIHN1Ym1pdHRlZCA9IHRydWU7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhbGxJbnB1dHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICB2YXIgaW5wdXQgPSBhbGxJbnB1dHNbaV07CiAgICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGlucHV0KSkgewogICAgICAgICAgaWYgKGlucHV0LnR5cGUgPT0gJ3RleHQnKSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnR5cGUgPT0gJ3JhZGlvJyB8fCBpbnB1dC50eXBlID09ICdjaGVja2JveCcpIHsKICAgICAgICAgICAgKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgICAgICAgdmFyIHJhZGlvcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsLm5hbWVdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmFkaW9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBhZGRFdmVudChyYWRpb3NbaV0sICdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZChlbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKGlucHV0KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudGFnTmFtZSA9PSAnU0VMRUNUJykgewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJlbW92ZV90b29sdGlwcygpOwogICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFsbElucHV0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICB2YXIgZWxlbSA9IGFsbElucHV0c1tpXTsKICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGVsZW0pKSB7CiAgICAgICAgaWYgKGVsZW0udGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAic2VsZWN0IikgewogICAgICAgICAgZWxlbS52YWx1ZSA9IGVsZW0udmFsdWUudHJpbSgpOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZV9maWVsZChlbGVtKSA/IHRydWUgOiBub19lcnJvciA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAoIW5vX2Vycm9yICYmIGUpIHsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfQogICAgcmVzaXplX3Rvb2x0aXBzKCk7CiAgICByZXR1cm4gbm9fZXJyb3I7CiAgfTsKICBhZGRFdmVudCh3aW5kb3csICdyZXNpemUnLCByZXNpemVfdG9vbHRpcHMpOwogIGFkZEV2ZW50KHdpbmRvdywgJ3Njcm9sbCcsIHJlc2l6ZV90b29sdGlwcyk7CiAgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gbnVsbDsKICBpZiAodHlwZW9mIHNlcmlhbGl6ZSAhPT0gJ3VuZGVmaW5lZCcpIHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSA9IHdpbmRvdy5zZXJpYWxpemU7CiAgX2xvYWRfc2NyaXB0KCIvL2QzcnhhaWo1NnZqZWdlLmNsb3VkZnJvbnQubmV0L2Zvcm0tc2VyaWFsaXplLzAuMy9zZXJpYWxpemUubWluLmpzIiwgZnVuY3Rpb24oKSB7CiAgICB3aW5kb3cuX2Zvcm1fc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICAgIGlmICh3aW5kb3cuX29sZF9zZXJpYWxpemUpIHdpbmRvdy5zZXJpYWxpemUgPSB3aW5kb3cuX29sZF9zZXJpYWxpemU7CiAgfSk7CiAgdmFyIGZvcm1fc3VibWl0ID0gZnVuY3Rpb24oZSkgewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKHZhbGlkYXRlX2Zvcm0oKSkgewogICAgICAvLyB1c2UgdGhpcyB0cmljayB0byBnZXQgdGhlIHN1Ym1pdCBidXR0b24gJiBkaXNhYmxlIGl0IHVzaW5nIHBsYWluIGphdmFzY3JpcHQKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19mb3JtXzlfc3VibWl0JykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKSk7CiAgICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICAgICAgZXJyID8gZXJyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZXJyKSA6IGZhbHNlOwogICAgICBfbG9hZF9zY3JpcHQoJ2h0dHBzOi8vY2Z0ZS5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwPycgKyBzZXJpYWxpemVkICsgJyZqc29ucD10cnVlJyk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfTs
KICBhZGRFdmVudChmb3JtX3RvX3N1Ym1pdCwgJ3N1Ym1pdCcsIGZvcm1fc3VibWl0KTsKfSkoKTsKCjwvc2NyaXB0Pg==[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Learn the skills of Fintech

Learn the skills of Fintech

More To Explore

From Using AI Tools to Building AI Systems

AI isn’t just a tool—it’s a system. Build AI-powered workflows, automate tasks, and free yourself from repetitive work. Stop using AI in isolation. Build AI systems that work for you—24/7

From Using AI Tools to Building AI Systems

AI isn’t just a tool—it’s a system. Build AI-powered workflows, automate tasks, and free yourself from repetitive work. Stop using AI in isolation. Build AI systems that work for you—24/7

Frequently Asked Questions

The Centre for Finance, Technology & Entrepreneurship (CFTE) is a global education platform that aims to equip financial professionals and organisations with the necessary skills to remain competitive in a rapidly changing industry. Our leading training programmes, curated by global industry experts, help talent build skills to join the digital revolution in finance. CFTE’s courses are globally recognised with accreditations from ACT, IBF, CPD, SkillsFuture and ABS.

At CFTE, our mission resonates with every learner’s goals to rapidly advance in their career, to thrive in their next project or even to lead the disruption in finance with their own venture. To help you do this, CFTE gives you the tools you need to master the right skills in digital finance. We bring exclusive insights from leaders that are steering the developments in the financial sphere from global CEOs to disruptive entrepreneurs. With CFTE you don’t just learn what’s in the books, you live the experience by grasping real-world applications.

If you are looking for rich insights into how the Financial Technology arena is transforming from within, we can help you get the latest knowledge that will stir things up in your career. CFTE offers leading online programmes in digital finance, covering an expanse of topics like – Payments, AI, Open Banking, Platforms, Fintech, Intrapreneurship and more, that will help you conquer the financial technology landscape. With this expertise at your disposal, you will be on track to turbocharge your career.

You will be learning from a curated line-up of industry leaders, experts, and entrepreneurs hailing from Fortune 500 companies and Tech Unicorns, among others. They will each be presenting their knowledge and experience in the field of digital finance. No matter if you are embarking on a new journey or fortifying your role, these lecturers and guest experts will guide you through the perspective of established institutions like – Starling Bank, Wells Fargo, tech giants like – Google, IBM, successful startups such as – Kabbage or Plaid, among many more!