10 things you need to know about AI in Finance

[fusion_builder_container hundred_percent=”no” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” overlay_color=”” video_preview_image=”” border_size=”” border_color=”” border_style=”solid” padding_top=”” padding_bottom=”” padding_left=”” padding_right=””][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” border_position=”all” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” center_content=”no” last=”no” min_height=”” hover_type=”none” link=””][fusion_separator style_type=”default” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” sep_color=”rgba(224,222,222,0)” top_margin=”10px” bottom_margin=”5px” border_size=”0″ icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” /][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=””]

10 things you need to know about AI in Finance

There’s just over a month to go before the release of AI in Finance, the first of its kind course designed to explore the applications of artificial intelligence in finance and as we were sharing the story of the course to CFTE’s community, some very interesting questions came out.

We decided to turn the exchange we had with one of CFTE alumni, Tamas Haiman, into a Q&A piece that can benefit to all potential applicants.

Tamas lives in L.A. and is an Angel Investor as well as an entrepreneur in Fintech. Before moving into FinTech, Tamas has spent over 20 years in various bulge bracket banks as a Structured Derivatives Originator. Most recently, Tamas was Head of Global Markets at Sberbank Switzerland A.G.

He’s an early member of CFTE who participated to one of our first Masterclasses in London. Having completed his Fintech foundation course “Around Fintech in 8 hours”, he is now keen to take AI in Finance and is thinking about sponsoring the course for his team.

Below you’ll find all 10 questions from Tamas on AI in Finance and our response. If you want to learn more about the course you can download the prospectus here and if you have your own enquiry about the programme you can reach out to our admissions advisors by email here or on our chatbox on the right side of your screen.

As we are all busy I would like to know how long does the course take to complete? How many people contributed and how long are the lectures by each of them?

Great plan to start. Completing the course takes around 12 hours. The course is structured in 18 modules of 30 to 45 minutes, and we think most people would take around 2 to 3 months to finish.

Can I complete the course over a few weeks or months or do I need to do it in one shot?

Participants can take the course at their own pace — either in one go or over a period of several weeks or months. So nothing prevents you from finishing in one whole week-end! The course is available for 6 months from the start date.

What would be the most unexpected thing I will learn from this course?

Well the course follows a similar format to Around Fintech in 8 Hours. That means we’ve brought together a diverse range of lecturers and speakers who have very different backgrounds, so there will be lots of interesting insights. They’ll share their story, provide real life example of AI in action and similarly to AFI8H, they’ll be sharing a ton of advice. For example, companies in AI they find interesting or pieces of advice for professionals seeking to enter AI focused roles. In short, there will be a absolute bounty of information and it will be interesting to different people for different reasons.

There is a lot of talk about AI these days, but it was similar at various times over the last 50 years, when we thought robots would take over the world, but they did not so far… , is this time different?

Yes. The world is fundamentally a different place. 50 years ago there was no Amazon, Facebook, or Google. These are companies that have pioneered AI tech and form part of a larger cohort of companies that have built today’s digital infrastructure which means AI for the first time has real applications beyond the research lab. And of course, access to key ingredients which were holding back AI previously are now available. For example faster computing power and access to huge data sets allow machine learning algorithms to perform tasks previously thought unimaginable.

If you’re not clear on this then don’t worry, we dive deep into it on the course !!

Can I be confident CFTE is bringing me the most up to date information with real industry insight? Is the latest development not hidden top secret in Silicon Valley and at the IT department of the big banks?

For industry professionals by industry professionals. It’s a tagline we’re proud but also one with a deeper meaning which answers your question. Fact is, access to AI resources specific to finance is a big barrier for the large majority of professionals working in the industry which is exactly why we’ve gone to great to bring together a group of AI experts who can fill the knowledge gap.

But you’re right that a lot of information about AI is hard to find, which is why we’ve spent months to design the curriculum and find the right people to share their knowledge. We have top people from Silicon Valley and from IT department of big banks teaching on the course!

People like me, finance professionals with a long career in banking, can we still be part of the AI ecosystem? If yes, does your course provide guidance on that?

Most definitely yes! And this is our mission at CFTE: when we’re talking about training the next generation of finance professional, we are not only talking about Millenials! The future of finance will depend on the current guard playing an active role.

Senior bankers have an in depth understanding of the industry and our training programmes are set to help them understand the new paradigm and develop the skills to adapt to a tech-driven world. This is actually a question we asked our Contributing Experts, and they all replied that it’s a huge opportunity for finance professionals to adapt their skills and that AI combined with their business skills was a very powerful combination.

Would it make sense for the whole of my team to go through the course or should I limit the training to team leaders and desk heads?

This is a great question. In general, we think everybody — whether they are an analyst of Managing Director — should take the course to understand how AI is impacting finance and their jobs. We’ve had whole departments taking our online courses before, and the feedback was extremely positive, whether people were junior or senior. The online course is just the beginning however, and deeper trainings can be decided at more targeted levels.

Also, with my ex Board Member hat on, if we made our teams go through this online course, should we also allocate a budget for development of ideas that will hopefully come out of it? If, yes, would you have any recommendation of the kind of budget we would need to put aside?

Definitely! Learning Fintech, adapting to the new world of Finance is a journey. AI in Finance, as well as Around Fintech in 8 hours are foundational programmes to bring awareness and knowledge at scale. From this foundations, organisations should onboard their employees in different learning tracks. At CFTE we are developing a series of services for leading institutions to upskill their collaborators and we’re big in “Learning by doing”. With the right framework and guidance, development of ideas can have a big impact on the organisation’s development.

Lastly, do 2nd tier banks have a chance at the AI game or is it winner takes it all for the bulge bracket firms / FinTech disruptors?

It’s important to remember that AI in Finance is not a zero sum game. We believe that AI in Finance signals an evolution of banking and as such everyone has the opportunity to integrate AI in to their business processes to yield the benefits.

We know it’s a cliche, but in a world of AI, that’s not the biggest but those that will adapt the fastest that will gain…

And Nicolas, one more question, am I actually exchanging emails with you or is it already a ChatBot powered by AI on the other side?

Haha, as I hinted above, we are super customer orientated, so our 1 to 1 chat service on the website is actually operated by every member of the CFTE team -real humans, not robots! So if you have any questions, feel free to head over to our website and ask us anything on our courses, whether it’s on AI in Finance or Around Fintech in 8 Hours, we’re happy to help!

To learn more about the course visit the course webpage here: https://www.cfte.education/aifinance/

About AI in Finance

Centre for Finance, Technology and Entrepreneurship (CFTE) and Ngee Ann Polytechnic (NP) will jointly launch the first industry-led AI in Finance (AIF) online course on June 24, 2018. Over 20 finance and technology thought leaders and insiders will come together to share key fundamentals and real-life case studies on how AI is reshaping the finance industry worldwide. The accredited course updates finance professionals and technologists on the AI revolution and creates an online community of learners and experts in AI to connect and network for future collaborations.

About CFTE

CFTE is an education platform supported by senior leaders from the largest institutions, startups and universities. It addresses the needs of professionals in finance and technologists to up-skill in a rapidly changing industry being transformed by emerging technologies. https://www.cfte.education

[/fusion_text][fusion_recent_posts layout=”default” hover_type=”none” columns=”3″ number_posts=”3″ offset=”0″ pull_by=”category” cat_slug=”” exclude_cats=”” tag_slug=”” exclude_tags=”” thumbnail=”yes” title=”yes” meta=”no” meta_author=”no” meta_categories=”no” meta_date=”yes” meta_comments=”yes” meta_tags=”no” excerpt=”no” excerpt_length=”35″ strip_html=”yes” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” /][/fusion_builder_column][fusion_builder_column type=”1_2″ layout=”1_2″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” 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_builder_column][fusion_builder_column type=”1_2″ layout=”1_2″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” 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_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” 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]PHN0eWxlPgogI19mb3JtXzlfIHsgZm9udC1zaXplOjE0cHg7IGxpbmUtaGVpZ2h0OjEuNjsgZm9udC1mYW1pbHk6YXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsgbWFyZ2luOjA7IH0KICNfZm9ybV85XyAqIHsgb3V0bGluZTowOyB9CiAuX2Zvcm1faGlkZSB7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IH0KIC5fZm9ybV9zaG93IHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB9CiAjX2Zvcm1fOV8uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV85Xy5fZm9ybS1ib3R0b20geyBib3R0b206MDsgfQogI19mb3JtXzlfLl9mb3JtLWxlZnQgeyBsZWZ0OjA7IH0KICNfZm9ybV85Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzlfIGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fOV8gdGV4dGFyZWEgeyBwYWRkaW5nOjZweDsgaGVpZ2h0OmF1dG87IGJvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDsgYm9yZGVyLXJhZGl1czo0cHg7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgZm9udC1zaXplOjEzcHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fOV8gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzlfIC5fc3VibWl0IHsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOjE0cHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiMzMzMgIWltcG9ydGFudDsgYm9yZGVyOjAgIWltcG9ydGFudDsgLW1vei1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgcGFkZGluZzoxMHB4ICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Nsb3NlLWljb24geyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzlfIC5fY2xvc2UtaWNvbjpiZWZvcmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5fZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbTozMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50LXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTY0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm0tYnJhbmRpbmcgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MTBweDsgY2xlYXI6Ym90aDsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tdG9wOjMwcHg7IGZvbnQtd2VpZ2h0OjEwMDsgfQogI19mb3JtXzlfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9oaDl1anFndjVfYWNsb2dvX2xpLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWxhYmVsLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tbGFiZWwgeyBmb250LXdlaWdodDpib2xkOyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpibG9jazsgfQogI19mb3JtXzlfLl9kYXJrIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiMzMzM7IH0KICNfZm9ybV85Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgLl9sb2dvIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvamZ0cTJjOHNfYWNsb2dvX2RrLnBuZycpOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MDsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAqIHsgZm9udC1zaXplOjE0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudC5fY2xlYXIgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBmbG9hdDpub25lOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQuX2NsZWFyOmFmdGVyIHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCBzZWxlY3QsI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV85XyAuX2ZpZWxkLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIHsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOjE1MHB4OyB9CiAjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpICsgLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpIHsgbWFyZ2luLWxlZnQ6MjBweDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9jbGVhci1lbGVtZW50IHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZnVsbF93aWR0aCB7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZnVsbF9maWVsZCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzlfIGlucHV0W3R5cGU9InRleHQiXS5faGFzX2Vycm9yLCNfZm9ybV85XyB0ZXh0YXJlYS5faGFzX2Vycm9yIHsgYm9yZGVyOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXS5faGFzX2Vycm9yIHsgb3V0bGluZTojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzlfIC5fZXJyb3IgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgZm9udC1zaXplOjEzcHg7IHotaW5kZXg6MTAwMDAwMDE7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9hYm92ZSB7IHBhZGRpbmctYm90dG9tOjRweDsgdG9wOi00MXB4OyByaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci5fYmVsb3cgeyBwYWRkaW5nLXRvcDo0cHg7IHRvcDoxMDAlOyByaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci5fYWJvdmUgLl9lcnJvci1hcnJvdyB7IGJvdHRvbTowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9iZWxvdyAuX2Vycm9yLWFycm93IHsgdG9wOjA7IHJpZ2h0OjE1cHg7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgI2YzN2M3YjsgfQogI19mb3JtXzlfIC5fZXJyb3ItaW5uZXIgeyBwYWRkaW5nOjhweCAxMnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMzdjN2I7IGZvbnQtc2l6ZToxM3B4OyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgfQogI19mb3JtXzlfIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBtYXJnaW4tYm90dG9tOjVweDsgdGV4dC1hbGlnbjpsZWZ0OyB9CiAjX2Zvcm1fOV8gLl9idXR0b24td3JhcHBlciAuX2Vycm9yLWlubmVyLl9mb3JtX2Vycm9yIHsgcG9zaXRpb246c3RhdG
ljOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1pbm5lci5fbm9fYXJyb3cgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KICNfZm9ybV85XyAuX2Vycm9yLWFycm93IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1odG1sIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9CiAucGlrYS1zaW5nbGUgeyB6LWluZGV4OjEwMDAwMDAxICFpbXBvcnRhbnQ7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7IDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5Om5vbmU7IH0KICNfZm9ybV85XyB7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBtaW4td2lkdGg6MTAwJTsgbWF4LXdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfQogI19mb3JtXzlfICogeyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjFlbTsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50IHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm0taW5uZXIgeyBkaXNwbGF5OmJsb2NrOyBtaW4td2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS10aXRsZSwjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGUgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDowOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRpdGxlIHsgZm9udC1zaXplOjEuMmVtOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBtYXJnaW46MCAwIDIwcHg7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS1lbGVtZW50LCNfZm9ybV85XyAuX2lubGluZS1zdHlsZSwjX2Zvcm1fOV8gaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV85XyBsYWJlbCwjX2Zvcm1fOV8gcCwjX2Zvcm1fOV8gdGV4dGFyZWE6bm90KC5nLXJlY2FwdGNoYS1yZXNwb25zZSkgeyBmbG9hdDpub25lOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9yb3cuX2NoZWNrYm94LXJhZGlvIGxhYmVsIHsgZGlzcGxheTppbmxpbmU7IH0KICNfZm9ybV85XyAuX3JvdywjX2Zvcm1fOV8gcCwjX2Zvcm1fOV8gbGFiZWwgeyBtYXJnaW4tYm90dG9tOjAuN2VtOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSwjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0icmFkaW8iXSB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSArIHNwYW4gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzlfIC5fcm93IHNwYW4gbGFiZWwgeyBtYXJnaW46MCAhaW1wb3J0YW50OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlIHsgbWF4LXdpZHRoOjEwMCU7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy1yaWdodDoxMHB4OyBmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS4zZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0icmFkaW8iXSwjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWR0aDoxLjNlbTsgaGVpZ2h0OjEuM2VtOyBmb250LXNpemU6MWVtOyBtYXJnaW46MCAwLjNlbSAwIDA7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9CiAjX2Zvcm1fOV8gYnV0dG9uW3R5cGU9InN1Ym1pdCJdIHsgcGFkZGluZzoyMHB4OyBmb250LXNpemU6MS41ZW07IH0KICNfZm9ybV85XyAuX2lubGluZS1zdHlsZSB7IG1hcmdpbjoyMHB4IDAgMCAhaW1wb3J0YW50OyB9CiB9CiAjX2Zvcm1fOV8geyBwb3NpdGlvbjpyZWxhdGl2ZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW46MjVweCBhdXRvIDA7IHBhZGRpbmc6MjBweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7ICp6b29tOjE7IGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50OyBib3JkZXI6MHB4IHNvbGlkICNiMGIwYjAgIWltcG9ydGFudDsgd2lkdGg6NTAwcHg7IC1tb3otYm9yZGVyLXJhZGl1czowcHggIWltcG9ydGFudDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MjJweDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjA7IH0KICNfZm9ybV85XzpiZWZvcmUsI19mb3JtXzlfOmFmdGVyIHsgY29udGVudDoiICI7IGRpc3BsYXk6dGFibGU7IH0KICNfZm9ybV85XzphZnRlciB7IGNsZWFyOmJvdGg7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIHsgd2lkdGg6YXV0bzsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8uX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJkYXRlIl0geyBwYWRkaW5nOjEwcHggMTJweDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgYnV0dG9uLl9pbmxpbmUtc3R5bGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjI3cHg7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIHAgeyBtYXJnaW46MDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MjdweCAxMi41cHggMCAyMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRoYW5rLXlvdSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MThweDsgfQogQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NjY3cHgpIHsgI19mb3JtXzlfLl9pbmxpbmUtZm9ybS5faW5saW5lLXN0eWxlIC5faW5saW5lLXN0eWxlLl9idXR0b24td3JhcHBlciB7IG1hcmdpbi10b3A6MjBweCAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDowICFpbXBvcnRhbnQ7IH0KIH0KPC9zdHlsZT4KPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Imh0dHA6Ly9jb21tdW5pY2F0aW9ucy5jZnRlLmVkdWNhdGlvbi9wcm9jLnBocCIgaWQ9Il9mb3JtXzlfIiBjbGFzcz0iX2Zvcm0gX2Zvcm1fOSBfaW5saW5lLWZvcm0gIF9kYXJrIiBub3ZhbGlkYXRlPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InUiIHZhbHVlPSI5IiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImYiIHZhbHVlPSI5IiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InMiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYyIgdmFsdWU9IjAiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibSIgdmFsdWU9IjAiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3ViIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InYiIHZhbHVlPSIyIiAvPgogIDxkaXYgY2xhc3M9Il9mb3JtLWNvbnRlbnQiPgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDU0MjQzOTgyIF9mdWxsX3dpZHRoIF9jbGVhciIgPgogICAgICA8ZGl2IGNsYXNzPSJfZm9ybS10aXRsZSI+CiAgICAgICAgU3Vic2NyaWJlIHRvIG91ciBXZWVrbHkgTmV3c2xldHRlcgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDYwOTMzNDcyIF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBGaXJzdCBOYW1lKgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImZpcnN0bmFtZSIgcGxhY2Vob2xkZXI9IlR5cGUgeW91ciBmaXJzdCBuYW1lIiByZXF1aXJlZC8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NDI2NDg2MDAgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIExhc3QgTmFtZSoKICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsYXN0bmFtZSIgcGxhY2Vob2xkZXI9IlR5cGUgeW91ciBsYXN0IG5hbWUiIHJlcXVpcmVkLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3gwNDk3NDkxOSBfZnVsbF93aWR0aCAiID4KICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgRW1haWwqCiAgICAgIDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgZW1haWwiIHJlcXVpcmVkLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX2ZpZWxkMSBfZnVsbF93aWR0aCAiID4KICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgQ291bnRyeQogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPHNlbGVjdCBuYW1lPSJmaWVsZFsxXSIgPgogICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWZnaGFuaXN0YW4iID4KICAgICAgICAgICAgQWZnaGFuaXN0YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWxiYW5pYSIgPgogICAgICAgICAgICBBbGJhbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFsZ2VyaWEiID4KICAgICAgICAgICAgQWxnZXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbWVyaWNhbiBTYW1vYSIgPgogICAgICAgICAgICBBbWVyaWNhbiBTYW1vYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbmRvcnJhIiA+CiAgICAgICAgICAgIEFuZG9ycmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW5nb2xhIiA+CiAgICAgICAgICAgIEFuZ29sYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbmd1aWxsYSIgPgogICAgICAgICAgICBBbmd1aWxsYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbnRhcmN0aWNhIiA+CiAgICAgICAgICAgIEFudGFyY3RpY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW50aWd1YSBhbmQgQmFyYnVkYSIgPgogICAgICAgICAgICBBbnRpZ3VhIGFuZCBCYXJidWRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFyZ2VudGluYSIgPgogICAgICAgICAgICBBcmdlbnRpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJtZW5pYSIgPgogICAgICAgICAgICBBcm1lbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFydWJhIiA+CiAgICAgICAgICAgIEFydWJhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkF1c3RyYWxpYSIgPgogICAgICAgICAgICBBdXN0cmFsaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXVzdHJpYSIgPgogICAgICAgICAgICBBdXN0cmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkF6ZXJiYWlqYW4iID4KICAgICAgICAgICAgQXplcmJha
WphbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCYWhhbWFzIiA+CiAgICAgICAgICAgIEJhaGFtYXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFocmFpbiIgPgogICAgICAgICAgICBCYWhyYWluCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhbmdsYWRlc2giID4KICAgICAgICAgICAgQmFuZ2xhZGVzaAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCYXJiYWRvcyIgPgogICAgICAgICAgICBCYXJiYWRvcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZWxhcnVzIiA+CiAgICAgICAgICAgIEJlbGFydXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVsZ2l1bSIgPgogICAgICAgICAgICBCZWxnaXVtCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbGl6ZSIgPgogICAgICAgICAgICBCZWxpemUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVuaW4iID4KICAgICAgICAgICAgQmVuaW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVybXVkYSIgPgogICAgICAgICAgICBCZXJtdWRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJodXRhbiIgPgogICAgICAgICAgICBCaHV0YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm9saXZpYSIgPgogICAgICAgICAgICBCb2xpdmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiID4KICAgICAgICAgICAgQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCb3Rzd2FuYSIgPgogICAgICAgICAgICBCb3Rzd2FuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCb3V2ZXQgSXNsYW5kIiA+CiAgICAgICAgICAgIEJvdXZldCBJc2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnJhemlsIiA+CiAgICAgICAgICAgIEJyYXppbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkiID4KICAgICAgICAgICAgQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJydW5laSBEYXJ1c3NhbGFtIiA+CiAgICAgICAgICAgIEJydW5laSBEYXJ1c3NhbGFtCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJ1bGdhcmlhIiA+CiAgICAgICAgICAgIEJ1bGdhcmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJ1cmtpbmEgRmFzbyIgPgogICAgICAgICAgICBCdXJraW5hIEZhc28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnVydW5kaSIgPgogICAgICAgICAgICBCdXJ1bmRpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNhbWJvZGlhIiA+CiAgICAgICAgICAgIENhbWJvZGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNhbWVyb29uIiA+CiAgICAgICAgICAgIENhbWVyb29uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNhbmFkYSIgPgogICAgICAgICAgICBDYW5hZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FwZSBWZXJkZSIgPgogICAgICAgICAgICBDYXBlIFZlcmRlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNheW1hbiBJc2xhbmRzIiA+CiAgICAgICAgICAgIENheW1hbiBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgPgogICAgICAgICAgICBDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hhZCIgPgogICAgICAgICAgICBDaGFkCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNoaWxlIiA+CiAgICAgICAgICAgIENoaWxlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNoaW5hIiA+CiAgICAgICAgICAgIENoaW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNocmlzdG1hcyBJc2xhbmQiID4KICAgICAgICAgICAgQ2hyaXN0bWFzIElzbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb2NvcyAoS2VlbGluZykgSXNsYW5kcyIgPgogICAgICAgICAgICBDb2NvcyAoS2VlbGluZykgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb2xvbWJpYSIgPgogICAgICAgICAgICBDb2xvbWJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb21vcm9zIiA+CiAgICAgICAgICAgIENvbW9yb3MKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29uZ28iID4KICAgICAgICAgICAgQ29uZ28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29uZ28sIHRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIgPgogICAgICAgICAgICBDb25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvb2sgSXNsYW5kcyIgPgogICAgICAgICAgICBDb29rIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29zdGEgUmljYSIgPgogICAgICAgICAgICBDb3N0YSBSaWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvdGUgRCYjMDM5O0l2b2lyZSIgPgogICAgICAgICAgICBDb3RlIEQmIzAzOTtJdm9pcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3JvYXRpYSIgPgogICAgICAgICAgICBDcm9hdGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkN1YmEiID4KICAgICAgICAgICAgQ3ViYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDeXBydXMiID4KICAgICAgICAgICAgQ3lwcnVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkN6ZWNoIFJlcHVibGljIiA+CiAgICAgICAgICAgIEN6ZWNoIFJlcHVibGljCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRlbm1hcmsiID4KICAgICAgICAgICAgRGVubWFyawogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJEamlib3V0aSIgPgogICAgICAgICAgICBEamlib3V0aQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJEb21pbmljYSIgPgogICAgICAgICAgICBEb21pbmljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJEb21pbmljYW4gUmVwdWJsaWMiID4KICAgICAgICAgICAgRG9taW5pY2FuIFJlcHVibGljCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVjdWFkb3IiID4KICAgICAgICAgICAgRWN1YWRvcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFZ3lwdCIgPgogICAgICAgICAgICBFZ3lwdAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFbCBTYWx2YWRvciIgPgogICAgICAgICAgICBFbCBTYWx2YWRvcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFcXVhdG9yaWFsIEd1aW5lYSIgPgogICAgICAgICAgICBFcXVhdG9yaWFsIEd1aW5lYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFcml0cmVhIiA+CiAgICAgICAgICAgIEVyaXRyZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXN0b25pYSIgPgogICAgICAgICAgICBFc3RvbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkV0aGlvcGlhIiA+CiAgICAgICAgICAgIEV0aGlvcGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSIgPgogICAgICAgICAgICBGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmFyb2UgSXNsYW5kcyIgPgogICAgICAgICAgICBGYXJvZSBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZpamkiID4KICAgICAgICAgICAgRmlqaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGaW5sYW5kIiA+CiAgICAgICAgICAgIEZpbmxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRnJhbmNlIiA+CiAgICAgICAgICAgIEZyYW5jZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmVuY2ggR3VpYW5hIiA+CiAgICAgICAgICAgIEZyZW5jaCBHdWlhbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRnJlbmNoIFBvbHluZXNpYSIgPgogICAgICAgICAgICBGcmVuY2ggUG9seW5lc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIgPgogICAgICAgICAgICBGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2Fib24iID4KICAgICAgICAgICAgR2Fib24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2FtYmlhIiA+CiAgICAgICAgICAgIEdhbWJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHZW9yZ2lhIiA+CiAgICAgICAgICAgIEdlb3JnaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2VybWFueSIgPgogICAgICAgICAgICBHZXJtYW55CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdoYW5hIiA+CiAgICAgICAgICAgIEdoYW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdpYnJhbHRhciIgPgogICAgICAgICAgICBHaWJyYWx0YXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3JlZWNlIiA+CiAgICAgICAgICAgIEdyZWVjZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVlbmxhbmQiID4KICAgICAgICAgICAgR3JlZW5sYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZW5hZGEiID4KICAgICAgICAgICAgR3JlbmFkYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWFkZWxvdXBlIiA+CiAgICAgICAgICAgIEd1YWRlbG91cGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VhbSIgPgogICAgICAgICAgICBHdWFtCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1YXRlbWFsYSIgPgogICAgICAgICAgICBHdWF0ZW1hbGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VpbmVhIiA+CiAgICAgICAgICAgIEd1aW5lYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9u
IHZhbHVlPSJHdWluZWEtQmlzc2F1IiA+CiAgICAgICAgICAgIEd1aW5lYS1CaXNzYXUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3V5YW5hIiA+CiAgICAgICAgICAgIEd1eWFuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIYWl0aSIgPgogICAgICAgICAgICBIYWl0aQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHMiID4KICAgICAgICAgICAgSGVhcmQgSXNsYW5kIGFuZCBNY2RvbmFsZCBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpIiA+CiAgICAgICAgICAgIEhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhvbmR1cmFzIiA+CiAgICAgICAgICAgIEhvbmR1cmFzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhvbmcgS29uZyIgPgogICAgICAgICAgICBIb25nIEtvbmcKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSHVuZ2FyeSIgPgogICAgICAgICAgICBIdW5nYXJ5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkljZWxhbmQiID4KICAgICAgICAgICAgSWNlbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJbmRpYSIgPgogICAgICAgICAgICBJbmRpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJbmRvbmVzaWEiID4KICAgICAgICAgICAgSW5kb25lc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJcmFxIiA+CiAgICAgICAgICAgIElyYXEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXJlbGFuZCIgPgogICAgICAgICAgICBJcmVsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklzcmFlbCIgPgogICAgICAgICAgICBJc3JhZWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXRhbHkiID4KICAgICAgICAgICAgSXRhbHkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSmFtYWljYSIgPgogICAgICAgICAgICBKYW1haWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkphcGFuIiA+CiAgICAgICAgICAgIEphcGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkpvcmRhbiIgPgogICAgICAgICAgICBKb3JkYW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2F6YWtoc3RhbiIgPgogICAgICAgICAgICBLYXpha2hzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktlbnlhIiA+CiAgICAgICAgICAgIEtlbnlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktpcmliYXRpIiA+CiAgICAgICAgICAgIEtpcmliYXRpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktvcmVhLCBEZW1vY3JhdGljIFBlb3BsZSYjMDM5O3MgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgS29yZWEsIERlbW9jcmF0aWMgUGVvcGxlJiMwMzk7cyBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLb3JlYSwgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgS29yZWEsIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikt1d2FpdCIgPgogICAgICAgICAgICBLdXdhaXQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS3lyZ3l6c3RhbiIgPgogICAgICAgICAgICBLeXJneXpzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxhbyBQZW9wbGUmIzAzOTtzIERlbW9jcmF0aWMgUmVwdWJsaWMiID4KICAgICAgICAgICAgTGFvIFBlb3BsZSYjMDM5O3MgRGVtb2NyYXRpYyBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMYXR2aWEiID4KICAgICAgICAgICAgTGF0dmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxlYmFub24iID4KICAgICAgICAgICAgTGViYW5vbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMZXNvdGhvIiA+CiAgICAgICAgICAgIExlc290aG8KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGliZXJpYSIgPgogICAgICAgICAgICBMaWJlcmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpYnlhbiBBcmFiIEphbWFoaXJpeWEiID4KICAgICAgICAgICAgTGlieWFuIEFyYWIgSmFtYWhpcml5YQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaWVjaHRlbnN0ZWluIiA+CiAgICAgICAgICAgIExpZWNodGVuc3RlaW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGl0aHVhbmlhIiA+CiAgICAgICAgICAgIExpdGh1YW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMdXhlbWJvdXJnIiA+CiAgICAgICAgICAgIEx1eGVtYm91cmcKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFjYW8iID4KICAgICAgICAgICAgTWFjYW8KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFjZWRvbmlhLCB0aGUgRm9ybWVyIFl1Z29zbGF2IFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIE1hY2Vkb25pYSwgdGhlIEZvcm1lciBZdWdvc2xhdiBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWRhZ2FzY2FyIiA+CiAgICAgICAgICAgIE1hZGFnYXNjYXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsYXdpIiA+CiAgICAgICAgICAgIE1hbGF3aQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWxheXNpYSIgPgogICAgICAgICAgICBNYWxheXNpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWxkaXZlcyIgPgogICAgICAgICAgICBNYWxkaXZlcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWxpIiA+CiAgICAgICAgICAgIE1hbGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsdGEiID4KICAgICAgICAgICAgTWFsdGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFyc2hhbGwgSXNsYW5kcyIgPgogICAgICAgICAgICBNYXJzaGFsbCBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hcnRpbmlxdWUiID4KICAgICAgICAgICAgTWFydGluaXF1ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXVyaXRhbmlhIiA+CiAgICAgICAgICAgIE1hdXJpdGFuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWF1cml0aXVzIiA+CiAgICAgICAgICAgIE1hdXJpdGl1cwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXlvdHRlIiA+CiAgICAgICAgICAgIE1heW90dGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWV4aWNvIiA+CiAgICAgICAgICAgIE1leGljbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mIiA+CiAgICAgICAgICAgIE1pY3JvbmVzaWEsIEZlZGVyYXRlZCBTdGF0ZXMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9sZG92YSwgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgTW9sZG92YSwgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9uYWNvIiA+CiAgICAgICAgICAgIE1vbmFjbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb25nb2xpYSIgPgogICAgICAgICAgICBNb25nb2xpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb250c2VycmF0IiA+CiAgICAgICAgICAgIE1vbnRzZXJyYXQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9yb2NjbyIgPgogICAgICAgICAgICBNb3JvY2NvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vemFtYmlxdWUiID4KICAgICAgICAgICAgTW96YW1iaXF1ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNeWFubWFyIiA+CiAgICAgICAgICAgIE15YW5tYXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmFtaWJpYSIgPgogICAgICAgICAgICBOYW1pYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5hdXJ1IiA+CiAgICAgICAgICAgIE5hdXJ1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5lcGFsIiA+CiAgICAgICAgICAgIE5lcGFsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIiA+CiAgICAgICAgICAgIE5ldGhlcmxhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIEFudGlsbGVzIiA+CiAgICAgICAgICAgIE5ldGhlcmxhbmRzIEFudGlsbGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldyBDYWxlZG9uaWEiID4KICAgICAgICAgICAgTmV3IENhbGVkb25pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOZXcgWmVhbGFuZCIgPgogICAgICAgICAgICBOZXcgWmVhbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaWNhcmFndWEiID4KICAgICAgICAgICAgTmljYXJhZ3VhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pZ2VyIiA+CiAgICAgICAgICAgIE5pZ2VyCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pZ2VyaWEiID4KICAgICAgICAgICAgTmlnZXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaXVlIiA+CiAgICAgICAgICAgIE5pdWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9yZm9sayBJc2xhbmQiID4KICAgICAgICAgICAgTm9yZm9sayBJc2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiA+CiAgICAgICAgICAgIE5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3J3YXkiID4KICAgICAgICAgICAgTm9yd2F5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik9tYW4iID4KICAgICAgICAgICAgT21hbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWtpc3RhbiIgPgogICAgICAgICAgICBQYWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA
8b3B0aW9uIHZhbHVlPSJQYWxhdSIgPgogICAgICAgICAgICBQYWxhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiA+CiAgICAgICAgICAgIFBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFuYW1hIiA+CiAgICAgICAgICAgIFBhbmFtYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYXB1YSBOZXcgR3VpbmVhIiA+CiAgICAgICAgICAgIFBhcHVhIE5ldyBHdWluZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFyYWd1YXkiID4KICAgICAgICAgICAgUGFyYWd1YXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGVydSIgPgogICAgICAgICAgICBQZXJ1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBoaWxpcHBpbmVzIiA+CiAgICAgICAgICAgIFBoaWxpcHBpbmVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBpdGNhaXJuIiA+CiAgICAgICAgICAgIFBpdGNhaXJuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBvbGFuZCIgPgogICAgICAgICAgICBQb2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUG9ydHVnYWwiID4KICAgICAgICAgICAgUG9ydHVnYWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUHVlcnRvIFJpY28iID4KICAgICAgICAgICAgUHVlcnRvIFJpY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUWF0YXIiID4KICAgICAgICAgICAgUWF0YXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUmV1bmlvbiIgPgogICAgICAgICAgICBSZXVuaW9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJvbWFuaWEiID4KICAgICAgICAgICAgUm9tYW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJSdXNzaWFuIEZlZGVyYXRpb24iID4KICAgICAgICAgICAgUnVzc2lhbiBGZWRlcmF0aW9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJ3YW5kYSIgPgogICAgICAgICAgICBSd2FuZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgSGVsZW5hIiA+CiAgICAgICAgICAgIFNhaW50IEhlbGVuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBLaXR0cyBhbmQgTmV2aXMiID4KICAgICAgICAgICAgU2FpbnQgS2l0dHMgYW5kIE5ldmlzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IEx1Y2lhIiA+CiAgICAgICAgICAgIFNhaW50IEx1Y2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iID4KICAgICAgICAgICAgU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyIgPgogICAgICAgICAgICBTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW1vYSIgPgogICAgICAgICAgICBTYW1vYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW4gTWFyaW5vIiA+CiAgICAgICAgICAgIFNhbiBNYXJpbm8KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FvIFRvbWUgYW5kIFByaW5jaXBlIiA+CiAgICAgICAgICAgIFNhbyBUb21lIGFuZCBQcmluY2lwZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYXVkaSBBcmFiaWEiID4KICAgICAgICAgICAgU2F1ZGkgQXJhYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNlbmVnYWwiID4KICAgICAgICAgICAgU2VuZWdhbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTZXJiaWEgYW5kIE1vbnRlbmVncm8iID4KICAgICAgICAgICAgU2VyYmlhIGFuZCBNb250ZW5lZ3JvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNleWNoZWxsZXMiID4KICAgICAgICAgICAgU2V5Y2hlbGxlcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTaWVycmEgTGVvbmUiID4KICAgICAgICAgICAgU2llcnJhIExlb25lCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNpbmdhcG9yZSIgPgogICAgICAgICAgICBTaW5nYXBvcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmFraWEiID4KICAgICAgICAgICAgU2xvdmFraWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmVuaWEiID4KICAgICAgICAgICAgU2xvdmVuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU29sb21vbiBJc2xhbmRzIiA+CiAgICAgICAgICAgIFNvbG9tb24gSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb21hbGlhIiA+CiAgICAgICAgICAgIFNvbWFsaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU291dGggQWZyaWNhIiA+CiAgICAgICAgICAgIFNvdXRoIEFmcmljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyIgPgogICAgICAgICAgICBTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTcGFpbiIgPgogICAgICAgICAgICBTcGFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTcmkgTGFua2EiID4KICAgICAgICAgICAgU3JpIExhbmthCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN1ZGFuIiA+CiAgICAgICAgICAgIFN1ZGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN1cmluYW1lIiA+CiAgICAgICAgICAgIFN1cmluYW1lCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4iID4KICAgICAgICAgICAgU3ZhbGJhcmQgYW5kIEphbiBNYXllbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTd2F6aWxhbmQiID4KICAgICAgICAgICAgU3dhemlsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3ZWRlbiIgPgogICAgICAgICAgICBTd2VkZW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3dpdHplcmxhbmQiID4KICAgICAgICAgICAgU3dpdHplcmxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3lyaWFuIEFyYWIgUmVwdWJsaWMiID4KICAgICAgICAgICAgU3lyaWFuIEFyYWIgUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFpd2FuLCBQcm92aW5jZSBvZiBDaGluYSIgPgogICAgICAgICAgICBUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhamlraXN0YW4iID4KICAgICAgICAgICAgVGFqaWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIFRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGhhaWxhbmQiID4KICAgICAgICAgICAgVGhhaWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGltb3ItTGVzdGUiID4KICAgICAgICAgICAgVGltb3ItTGVzdGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVG9nbyIgPgogICAgICAgICAgICBUb2dvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRva2VsYXUiID4KICAgICAgICAgICAgVG9rZWxhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUb25nYSIgPgogICAgICAgICAgICBUb25nYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUcmluaWRhZCBhbmQgVG9iYWdvIiA+CiAgICAgICAgICAgIFRyaW5pZGFkIGFuZCBUb2JhZ28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVuaXNpYSIgPgogICAgICAgICAgICBUdW5pc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1cmtleSIgPgogICAgICAgICAgICBUdXJrZXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVya21lbmlzdGFuIiA+CiAgICAgICAgICAgIFR1cmttZW5pc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiID4KICAgICAgICAgICAgVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1dmFsdSIgPgogICAgICAgICAgICBUdXZhbHUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVWdhbmRhIiA+CiAgICAgICAgICAgIFVnYW5kYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVa3JhaW5lIiA+CiAgICAgICAgICAgIFVrcmFpbmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEFyYWIgRW1pcmF0ZXMiID4KICAgICAgICAgICAgVW5pdGVkIEFyYWIgRW1pcmF0ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEtpbmdkb20iID4KICAgICAgICAgICAgVW5pdGVkIEtpbmdkb20KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIFN0YXRlcyIgPgogICAgICAgICAgICBVbml0ZWQgU3RhdGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgPgogICAgICAgICAgICBVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVXJ1Z3VheSIgPgogICAgICAgICAgICBVcnVndWF5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlV6YmVraXN0YW4iID4KICAgICAgICAgICAgVXpiZWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWYW51YXR1IiA+CiAgICAgICAgICAgIFZhbnVhdHUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmVuZXp1ZWxhIiA+CiAgICAgICAgICAgIFZlbmV6dWVsYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaWV0IE5hbSIgPgogICAgICAgICAgICBWaWV0IE5hbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCIgPgogICAgICAgICAgICBWaXJnaW4gSXNsYW5kcywgQnJpdGlzaA
ogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaXJnaW4gSXNsYW5kcywgVS5zLiIgPgogICAgICAgICAgICBWaXJnaW4gSXNsYW5kcywgVS5zLgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJXYWxsaXMgYW5kIEZ1dHVuYSIgPgogICAgICAgICAgICBXYWxsaXMgYW5kIEZ1dHVuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJXZXN0ZXJuIFNhaGFyYSIgPgogICAgICAgICAgICBXZXN0ZXJuIFNhaGFyYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJZZW1lbiIgPgogICAgICAgICAgICBZZW1lbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJaYW1iaWEiID4KICAgICAgICAgICAgWmFtYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlppbWJhYndlIiA+CiAgICAgICAgICAgIFppbWJhYndlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvb2xlYW4iID4KICAgICAgICAgICAgQm9vbGVhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTSW5nYXBvcmUiID4KICAgICAgICAgICAgU0luZ2Fwb3JlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9InNpbmdhcG9yZSIgPgogICAgICAgICAgICBzaW5nYXBvcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVVMiID4KICAgICAgICAgICAgVVMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiA+CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImluZGlhIiA+CiAgICAgICAgICAgIGluZGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik13ZXhpY28iID4KICAgICAgICAgICAgTXdleGljbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVSyIgPgogICAgICAgICAgICBVSwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVU0EiID4KICAgICAgICAgICAgVVNBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im5lcGFsIiA+CiAgICAgICAgICAgIG5lcGFsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVrIiA+CiAgICAgICAgICAgIFVrCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVuaXRlZCBraW5nZG9tIiA+CiAgICAgICAgICAgIHVuaXRlZCBraW5nZG9tCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJhbmdsYWRlc2giID4KICAgICAgICAgICAgYmFuZ2xhZGVzaAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJtZXhpY28iID4KICAgICAgICAgICAgbWV4aWNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklOZGlhIiA+CiAgICAgICAgICAgIElOZGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ij9fPz8/PyIgPgogICAgICAgICAgICA/Xz8/Pz8KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9uZyBLb25nIFNBUiIgPgogICAgICAgICAgICBIb25nIEtvbmcgU0FSCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNpbmdzcG9yZSIgPgogICAgICAgICAgICBTaW5nc3BvcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQlVMR0FSSUEiID4KICAgICAgICAgICAgQlVMR0FSSUEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVS5zLiIgPgogICAgICAgICAgICBVLnMuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVOSVRFRCBLSU5HRE9NIiA+CiAgICAgICAgICAgIFVOSVRFRCBLSU5HRE9NCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzYSIgPgogICAgICAgICAgICB1c2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGhlIE5ldGhlcmxhbmRzIiA+CiAgICAgICAgICAgIFRoZSBOZXRoZXJsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJdGFsaWEiID4KICAgICAgICAgICAgSXRhbGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhbmsgb2YgdGhlIFdlc3QiID4KICAgICAgICAgICAgQmFuayBvZiB0aGUgV2VzdAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQga2luZ2RvbSIgPgogICAgICAgICAgICBVbml0ZWQga2luZ2RvbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLb3JlYSIgPgogICAgICAgICAgICBLb3JlYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb3V0aCBLb3JlYSIgPgogICAgICAgICAgICBTb3V0aCBLb3JlYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJzZyIgPgogICAgICAgICAgICBzZwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJsdXhlbWJvdXJnIiA+CiAgICAgICAgICAgIGx1eGVtYm91cmcKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSU5ESUEiID4KICAgICAgICAgICAgSU5ESUEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS29zb3ZvIiA+CiAgICAgICAgICAgIEtvc292bwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWd5YXJvcnN6Pz9nIiA+CiAgICAgICAgICAgIE1hZ3lhcm9yc3o/P2cKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idHVuaXNpYSIgPgogICAgICAgICAgICB0dW5pc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iml0YWxpYSIgPgogICAgICAgICAgICBpdGFsaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIHN0YXRlcyIgPgogICAgICAgICAgICBVbml0ZWQgc3RhdGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikhvbmcga29uZyIgPgogICAgICAgICAgICBIb25nIGtvbmcKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFpd2FuIiA+CiAgICAgICAgICAgIFRhaXdhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJiZWxnaXVtIiA+CiAgICAgICAgICAgIGJlbGdpdW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU29uZ2Fwb3JlIiA+CiAgICAgICAgICAgIFNvbmdhcG9yZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQZXLMvCIgPgogICAgICAgICAgICBQZXLMvAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJdCIgPgogICAgICAgICAgICBJdAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIayIgPgogICAgICAgICAgICBIawogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVc2EiID4KICAgICAgICAgICAgVXNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNpZ2Fwb3JlIiA+CiAgICAgICAgICAgIFNpZ2Fwb3JlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlB3QyIgPgogICAgICAgICAgICBQd0MKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUnVzc2lhIiA+CiAgICAgICAgICAgIFJ1c3NpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGUkFOQ0UiID4KICAgICAgICAgICAgRlJBTkNFCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhvbiBLb25nIiA+CiAgICAgICAgICAgIEhvbiBLb25nCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikl0YWxpZSIgPgogICAgICAgICAgICBJdGFsaWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFjZWRvbmlhIiA+CiAgICAgICAgICAgIE1hY2Vkb25pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaWV0bmFtIiA+CiAgICAgICAgICAgIFZpZXRuYW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2luZ3BvcmUiID4KICAgICAgICAgICAgU2luZ3BvcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic29tYWxpYSIgPgogICAgICAgICAgICBzb21hbGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9InBha2lzdGFuIiA+CiAgICAgICAgICAgIHBha2lzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhLIiA+CiAgICAgICAgICAgIEhLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9InN3aXR6ZXJsYW5kIiA+CiAgICAgICAgICAgIHN3aXR6ZXJsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhbnphbmlhIiA+CiAgICAgICAgICAgIFRhbnphbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNZUFJVUyIgPgogICAgICAgICAgICBDWVBSVVMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSEsgQ2hpbmEiID4KICAgICAgICAgICAgSEsgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXJhbiIgPgogICAgICAgICAgICBJcmFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNXSVRaRVJMQU5EIiA+CiAgICAgICAgICAgIFNXSVRaRVJMQU5ECiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVBRSIgPgogICAgICAgICAgICBVQUUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVuaXNpZSIgPgogICAgICAgICAgICBUdW5pc2llCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNlcmJpYSIgPgogICAgICAgICAgICBTZXJiaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRllSIE1hY2Vkb25pYSIgPgogICAgICAgICAgICBGWVIgTWFjZWRvbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkPMq3RlIGQ/26pJdm9pcmUiID4KICAgICAgICAgICAgQ8yrdGUgZD/bqkl2b2lyZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ1ayIgPgogICAgICAgICAgICB1awogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVYWUiID4KICAgICAgICAgICAgVWFlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImdoYW5hIiA+CiAgICAgICAgICAgIGdoYW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9InNpbmdwb2FyZSIgPgogICAgICAgICAgICBzaW5ncG9hcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2luZ2RvbSBvZiBCYWhyYWluIiA+CiAgICAgICAgICAgIEtpbmdkb20gb2YgQmFocmFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbGJhbmlhbiIgPgogICAgICAgICAgICBBbGJhbmlhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJSZWlubyBVbmlkb
yIgPgogICAgICAgICAgICBSZWlubyBVbmlkbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJpdGFseSIgPgogICAgICAgICAgICBpdGFseQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJfX18/Xz9fP18/X19fP19fX18/P19fIF8/Pz9fP1/IhD8/P19fX18iID4KICAgICAgICAgICAgX19fP18/Xz9fP19fXz9fX19fPz9fXyBfPz8/Xz9fyIQ/Pz9fX19fCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdCIiA+CiAgICAgICAgICAgIEdCCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhPTkcga29uZyIgPgogICAgICAgICAgICBIT05HIGtvbmcKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3Vpc3NlIiA+CiAgICAgICAgICAgIFN1aXNzZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0cmQgU3RhdGVzIiA+CiAgICAgICAgICAgIFVuaXRyZCBTdGF0ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGhpbGlwcGluZHMiID4KICAgICAgICAgICAgUGhpbGlwcGluZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic2luZ3Bhb3JlIiA+CiAgICAgICAgICAgIHNpbmdwYW9yZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJqVVNBIiA+CiAgICAgICAgICAgIGpVU0EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idXMiID4KICAgICAgICAgICAgdXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnJpdGlzaCBWaXJnaW4gSXNsYW5kcyIgPgogICAgICAgICAgICBCcml0aXNoIFZpcmdpbiBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImthemFraHN0YW4iID4KICAgICAgICAgICAga2F6YWtoc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJjYW5hZGEiID4KICAgICAgICAgICAgY2FuYWRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNJTkdBUE9SRSIgPgogICAgICAgICAgICBTSU5HQVBPUkUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFyb2MiID4KICAgICAgICAgICAgTWFyb2MKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhIiA+CiAgICAgICAgICAgIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJpcmVsYW5kIiA+CiAgICAgICAgICAgIGlyZWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ibGltYXNzb2wiID4KICAgICAgICAgICAgbGltYXNzb2wKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2luZ2Fwb3JlYSIgPgogICAgICAgICAgICBTaW5nYXBvcmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im5pZ2VyaWEiID4KICAgICAgICAgICAgbmlnZXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ2aWV0bmFtIiA+CiAgICAgICAgICAgIHZpZXRuYW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ibWFsYXlzaWEiID4KICAgICAgICAgICAgbWFsYXlzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaW5kaUEiID4KICAgICAgICAgICAgaW5kaUEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3Vlcm5zZXkiID4KICAgICAgICAgICAgR3Vlcm5zZXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWklNQkFCV0UiID4KICAgICAgICAgICAgWklNQkFCV0UKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ibGxsIiA+CiAgICAgICAgICAgIGxsbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb3JvY29vIiA+CiAgICAgICAgICAgIE1vcm9jb28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU0ciID4KICAgICAgICAgICAgU0cKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3JlYXQgQnJpdGFpbiIgPgogICAgICAgICAgICBHcmVhdCBCcml0YWluCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJCSCIgPgogICAgICAgICAgICBCQkgKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUm9tzKJuaWEiID4KICAgICAgICAgICAgUm9tzKJuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZGZmZiIgPgogICAgICAgICAgICBkZmZmCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9InR1cmtleSIgPgogICAgICAgICAgICB0dXJrZXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRW5nbGFuZCIgPgogICAgICAgICAgICBFbmdsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxlYXJuZXJibHkiID4KICAgICAgICAgICAgTGVhcm5lcmJseQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGUiIgPgogICAgICAgICAgICBGUgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQSyIgPgogICAgICAgICAgICBQSwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBRiIgPgogICAgICAgICAgICBBRgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCRyIgPgogICAgICAgICAgICBCRwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDTiIgPgogICAgICAgICAgICBDTgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNTSIgPgogICAgICAgICAgICBNTQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNWSIgPgogICAgICAgICAgICBNWQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJTiIgPgogICAgICAgICAgICBJTgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBVSIgPgogICAgICAgICAgICBBVQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI/zJA/Pz8/Pz/ekD8/Pz8/P8+RXz8/ID8/Pz8/Pz/IkT8/Xz8/PyIgPgogICAgICAgICAgICA/zJA/Pz8/Pz/ekD8/Pz8/P8+RXz8/ID8/Pz8/Pz/IkT8/Xz8/PwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgPC9zZWxlY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF9maWVsZDIgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3ciPgogICAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgICAgUHJpdmFjeSBQb2xpY3kKICAgICAgICA8L2xhYmVsPgogICAgICA8L2Rpdj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmllbGRbMl1bXSIgdmFsdWU9In58Ij4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgIDxpbnB1dCBpZD0iZmllbGRfMkkgcmVhZCBhbmQgdW5kZXJzdG9vZCBDRlRFIFByaXZhY3kgUG9saWN5ICh3d3cuY2Z0ZS5lZHVjYXRpb24vcHJpdmFjeS1wb2xpY3kpIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbMl1bXSIgdmFsdWU9IkkgcmVhZCBhbmQgdW5kZXJzdG9vZCBDRlRFIFByaXZhY3kgUG9saWN5ICh3d3cuY2Z0ZS5lZHVjYXRpb24vcHJpdmFjeS1wb2xpY3kpIiAgID4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSI+CiAgICAgICAgICAgIEkgcmVhZCBhbmQgdW5kZXJzdG9vZCBDRlRFIFByaXZhY3kgUG9saWN5ICh3d3cuY2Z0ZS5lZHVjYXRpb24vcHJpdmFjeS1wb2xpY3kpCiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX2ZpZWxkOSBfZnVsbF93aWR0aCAiID4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyI+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICBPcHRpb25zIGZvciBDb21tdW5pY2F0aW9uCiAgICAgICAgPC9sYWJlbD4KICAgICAgPC9kaXY+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpZWxkWzldW10iIHZhbHVlPSJ+fCI+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzlJJiMwMzk7bSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSBzZXJ2aWNlcyIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzldW10iIHZhbHVlPSJJJiMwMzk7bSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSBzZXJ2aWNlcyIgICA+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZF85SSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUgc2VydmljZXMiPgogICAgICAgICAgICBJJiMwMzk7bSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSBzZXJ2aWNlcwogICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94ODg0NjQ5NzEgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIFBsZWFzZSB2ZXJpZnkgeW91ciByZXF1ZXN0KgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJnLXJlY2FwdGNoYSIgZGF0YS1zaXRla2V5PSI2TGN3SXc4VEFBQUFBQ1AxeXNNMDhFaENnemQ2cTVKQU9VUjFhMEdvIj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9idXR0b24td3JhcHBlciBfZnVsbF93aWR0aCI+CiAgICAgIDxidXR0b24gaWQ9Il9mb3JtXzlfc3VibWl0IiBjbGFzcz0iX3N1Ym1pdCIgdHlwZT0ic3VibWl0Ij4KICAgICAgICBTdWJtaXQKICAgICAgPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9jbGVhci1lbGVtZW50Ij4KICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9Il9mb3JtLXRoYW5rLXlvdSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogIDwvZGl2Pgo8L2Zvcm0+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp3aW5kb3cuY2ZpZWxkcyA9IHsiMSI6ImNvdW50cnkiLCIyIjoicHJpdmFjeV9wb2xpY3kiLCI5Ijoib3B0aW9uc19mb3JfY29tbXVuaWNhdGlvbiJ9Owp3aW5kb3cuX3Nob3dfdGhhbmtfeW91ID0gZnVuY3Rpb24oaWQsIG1lc3NhZ2UsIHRyYWNrY21wX3VybCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIHRoYW5rX3lvdSA9IGZvcm0ucXVlcnlTZWxlY3RvcignLl9mb3JtLXRoYW5rLXlvdScpOwogIGZvcm0ucXVlcnlTZWxlY3RvcignLl9mb3JtLWNvbnRlbnQnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogIHRoYW5rX3lvdS5pbm5lckhUTUwgPSBtZXNzYWdlOwogIHRoYW5rX3lvdS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICBpZiAodHlwZW9mKHRyYWNrY21wX3VybCkgIT0gJ3VuZGVmaW5lZCcgJiYgdHJhY2tjbXBfdXJsKSB7CiAgICAvLyBTaXRlIHRyYWNraW5nIFVSTCB0byB1
c2UgYWZ0ZXIgaW5saW5lIGZvcm0gc3VibWlzc2lvbi4KICAgIF9sb2FkX3NjcmlwdCh0cmFja2NtcF91cmwpOwogIH0KICBpZiAodHlwZW9mIHdpbmRvdy5fZm9ybV9jYWxsYmFjayAhPT0gJ3VuZGVmaW5lZCcpIHdpbmRvdy5fZm9ybV9jYWxsYmFjayhpZCk7Cn07CndpbmRvdy5fc2hvd19lcnJvciA9IGZ1bmN0aW9uKGlkLCBtZXNzYWdlLCBodG1sKSB7CiAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fJyArIGlkICsgJ18nKSwgZXJyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIGJ1dHRvbiA9IGZvcm0ucXVlcnlTZWxlY3RvcignYnV0dG9uJyksIG9sZF9lcnJvciA9IGZvcm0ucXVlcnlTZWxlY3RvcignLl9mb3JtX2Vycm9yJyk7CiAgaWYgKG9sZF9lcnJvcikgb2xkX2Vycm9yLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob2xkX2Vycm9yKTsKICBlcnIuaW5uZXJIVE1MID0gbWVzc2FnZTsKICBlcnIuY2xhc3NOYW1lID0gJ19lcnJvci1pbm5lciBfZm9ybV9lcnJvciBfbm9fYXJyb3cnOwogIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgd3JhcHBlci5jbGFzc05hbWUgPSAnX2Zvcm0taW5uZXInOwogIHdyYXBwZXIuYXBwZW5kQ2hpbGQoZXJyKTsKICBidXR0b24ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod3JhcHBlciwgYnV0dG9uKTsKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbaWRePSJfZm9ybSJdW2lkJD0iX3N1Ym1pdCJdJykuZGlzYWJsZWQgPSBmYWxzZTsKICBpZiAoaHRtbCkgewogICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgZGl2LmNsYXNzTmFtZSA9ICdfZXJyb3ItaHRtbCc7CiAgICBkaXYuaW5uZXJIVE1MID0gaHRtbDsKICAgIGVyci5hcHBlbmRDaGlsZChkaXYpOwogIH0KfTsKd2luZG93Ll9sb2FkX3NjcmlwdCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKICAgIHZhciBoZWFkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpLCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSwgciA9IGZhbHNlOwogICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgIHNjcmlwdC5jaGFyc2V0ID0gJ3V0Zi04JzsKICAgIHNjcmlwdC5zcmMgPSB1cmw7CiAgICBpZiAoY2FsbGJhY2spIHsKICAgICAgc2NyaXB0Lm9ubG9hZCA9IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgICAgaWYgKCFyICYmICghdGhpcy5yZWFkeVN0YXRlIHx8IHRoaXMucmVhZHlTdGF0ZSA9PSAnY29tcGxldGUnKSkgewogICAgICAgIHIgPSB0cnVlOwogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfQogICAgICB9OwogICAgfQogICAgaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwp9OwooZnVuY3Rpb24oKSB7CiAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc2VhcmNoKCJleGNsdWRlZm9ybSIpICE9PSAtMSkgcmV0dXJuIGZhbHNlOwogIHZhciBnZXRDb29raWUgPSBmdW5jdGlvbihuYW1lKSB7CiAgICB2YXIgbWF0Y2ggPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgnKF58OyApJyArIG5hbWUgKyAnPShbXjtdKyknKSk7CiAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsyXSA6IG51bGw7CiAgfQogIHZhciBzZXRDb29raWUgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewogICAgdmFyIG5vdyA9IG5ldyBEYXRlKCk7CiAgICB2YXIgdGltZSA9IG5vdy5nZXRUaW1lKCk7CiAgICB2YXIgZXhwaXJlVGltZSA9IHRpbWUgKyAxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1OwogICAgbm93LnNldFRpbWUoZXhwaXJlVGltZSk7CiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJz0nICsgdmFsdWUgKyAnOyBleHBpcmVzPScgKyBub3cgKyAnO3BhdGg9Lyc7CiAgfQogICAgICB2YXIgYWRkRXZlbnQgPSBmdW5jdGlvbihlbGVtZW50LCBldmVudCwgZnVuYykgewogICAgaWYgKGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZ1bmMpOwogICAgfSBlbHNlIHsKICAgICAgdmFyIG9sZEZ1bmMgPSBlbGVtZW50WydvbicgKyBldmVudF07CiAgICAgIGVsZW1lbnRbJ29uJyArIGV2ZW50XSA9IGZ1bmN0aW9uKCkgewogICAgICAgIG9sZEZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgIH07CiAgICB9CiAgfQogIHZhciBfcmVtb3ZlZCA9IGZhbHNlOwogIHZhciBmb3JtX3RvX3N1Ym1pdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV85XycpOwogIHZhciBhbGxJbnB1dHMgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpLCB0b29sdGlwcyA9IFtdLCBzdWJtaXR0ZWQgPSBmYWxzZTsKCiAgdmFyIGdldFVybFBhcmFtID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIHJlZ2V4U3RyID0gJ1tcPyZdJyArIG5hbWUgKyAnPShbXiYjXSopJzsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0ciwgJ2knKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKICAgIHJldHVybiByZXN1bHRzICE9IHVuZGVmaW5lZCA/IGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzFdKSA6IGZhbHNlOwogIH07CgogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsSW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgcmVnZXhTdHIgPSAiZmllbGRcXFsoXFxkKylcXF0iOwogICAgdmFyIHJlc3VsdHMgPSBuZXcgUmVnRXhwKHJlZ2V4U3RyKS5leGVjKGFsbElucHV0c1tpXS5uYW1lKTsKICAgIGlmIChyZXN1bHRzICE9IHVuZGVmaW5lZCkgewogICAgICBhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lID0gd2luZG93LmNmaWVsZHNbcmVzdWx0c1sxXV07CiAgICB9IGVsc2UgewogICAgICBhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lID0gYWxsSW5wdXRzW2ldLm5hbWU7CiAgICB9CiAgICB2YXIgZmllbGRWYWwgPSBnZXRVcmxQYXJhbShhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lKTsKCiAgICBpZiAoZmllbGRWYWwpIHsKICAgICAgaWYgKGFsbElucHV0c1tpXS50eXBlID09ICJyYWRpbyIgfHwgYWxsSW5wdXRzW2ldLnR5cGUgPT0gImNoZWNrYm94IikgewogICAgICAgIGlmIChhbGxJbnB1dHNbaV0udmFsdWUgPT0gZmllbGRWYWwpIHsKICAgICAgICAgIGFsbElucHV0c1tpXS5jaGVja2VkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgYWxsSW5wdXRzW2ldLnZhbHVlID0gZmllbGRWYWw7CiAgICAgIH0KICAgIH0KICB9CgogIHZhciByZW1vdmVfdG9vbHRpcHMgPSBmdW5jdGlvbigpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9vbHRpcHMubGVuZ3RoOyBpKyspIHsKICAgICAgdG9vbHRpcHNbaV0udGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcHNbaV0udGlwKTsKICAgIH0KICAgICAgdG9vbHRpcHMgPSBbXTsKICB9OwogIHZhciByZW1vdmVfdG9vbHRpcCA9IGZ1bmN0aW9uKGVsZW0pIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9vbHRpcHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKHRvb2x0aXBzW2ldLmVsZW0gPT09IGVsZW0pIHsKICAgICAgICB0b29sdGlwc1tpXS50aXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0b29sdGlwc1tpXS50aXApOwogICAgICAgIHRvb2x0aXBzLnNwbGljZShpLCAxKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0KICB9OwogIHZhciBjcmVhdGVfdG9vbHRpcCA9IGZ1bmN0aW9uKGVsZW0sIHRleHQpIHsKICAgIHZhciB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIG5ld190b29sdGlwID0ge307CiAgICBpZiAoZWxlbS50eXBlICE9ICdyYWRpbycgJiYgZWxlbS50eXBlICE9ICdjaGVja2JveCcpIHsKICAgICAgdG9vbHRpcC5jbGFzc05hbWUgPSAnX2Vycm9yJzsKICAgICAgYXJyb3cuY2xhc3NOYW1lID0gJ19lcnJvci1hcnJvdyc7CiAgICAgIGlubmVyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXInOwogICAgICBpbm5lci5pbm5lckhUTUwgPSB0ZXh0OwogICAgICB0b29sdGlwLmFwcGVuZENoaWxkKGFycm93KTsKICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChpbm5lcik7CiAgICAgIGVsZW0ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0b29sdGlwKTsKICAgIH0gZWxzZSB7CiAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJ19lcnJvci1pbm5lciBfbm9fYXJyb3cnOwogICAgICB0b29sdGlwLmlubmVySFRNTCA9IHRleHQ7CiAgICAgIGVsZW0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodG9vbHRpcCwgZWxlbSk7CiAgICAgIG5ld190b29sdGlwLm5vX2Fycm93ID0gdHJ1ZTsKICAgIH0KICAgIG5ld190b29sdGlwLnRpcCA9IHRvb2x0aXA7CiAgICBuZXdfdG9vbHRpcC5lbGVtID0gZWxlbTsKICAgIHRvb2x0aXBzLnB1c2gobmV3X3Rvb2x0aXApOwogICAgcmV0dXJuIG5ld190b29sdGlwOwogIH07CiAgdmFyIHJlc2l6ZV90b29sdGlwID0gZnVuY3Rpb24odG9vbHRpcCkgewogICAgdmFyIHJlY3QgPSB0b29sdGlwLmVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICB2YXIgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBzY3JvbGxQb3NpdGlvbiA9IHJlY3QudG9wIC0gKCh3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jLnNjcm9sbFRvcCkgIC0gKGRvYy5jbGllbnRUb3AgfHwgMCkpOwogICAgaWYgKHNjcm9sbFBvc2l0aW9uIDwgNDApIHsKICAgICAgdG9vbHRpcC50aXAuY2xhc3NOYW1lID0gdG9vbHRpcC50aXAuY2xhc3NOYW1lLnJlcGxhY2UoLyA/KF9hYm92ZXxfYmVsb3cpID8vZywgJycpICsgJyBfYmVsb3cnOwogICAgfSBlbHNlIHsKICAgICAgdG9vbHRpcC50aXAuY2xhc3NOYW1lID0gdG9vbHRpcC50aXAuY2xhc3NOYW1lLnJlcGxhY2UoLyA/KF9hYm92ZXxfYmVsb3cpID8vZywgJycpICsgJyBfYWJvdmUnOwogICAgfQogIH07CiAgdmFyIHJlc2l6ZV90b29sdGlwcyA9IGZ1bmN0aW9uKCkgewogICAgaWYgKF9yZW1vdmVkKSByZXR1cm47CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICghdG9vbHRpcHNbaV0ubm9fYXJyb3cpIHJlc2l6ZV90b29sdGlwKHRvb2x0aXBzW2ldKTsKICAgIH0KICB9OwogIHZhciB2YWxpZGF0ZV9maWVsZCA9IGZ1bmN0aW9uKGVsZW0sIHJlbW92ZSkgewogICAgdmFyIHRvb2x0aXAgPSBudWxsLCB2YWx1ZSA9IGVsZW0udmFsdWUsIG5vX2Vycm9yID0gdHJ1ZTsKICAgIHJlbW92ZSA/IHJlbW92ZV90b29sdGlwKGVsZW0pIDogZmFsc2U7CiAgICBpZiAoZWxlbS50eXBlICE9ICdjaGVja2JveCcpIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUucmVwbGFjZSgvID9faGFzX2Vycm9yID8vZywgJycpOwogICAgaWYgKGVsZW0uZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpICE9PSBudWxsKSB7CiAgICAgIGlmIChlbGVtLnR5cGUgPT0gJ3JhZGlvJyB8fCAoZWxlbS50eXBlID09ICdjaGVja2JveCcgJiYgL2FueS8udGVzdChlbGVtLmNsYXNzTmFtZSkpKSB7CiAgICAgICAgdmFyIGVsZW1zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWxlbS5uYW1lXTsKICAgICAgICBpZiAoIShlbGVtcyBpbnN0YW5jZW9mIE5vZGVMaXN0IHx8IGVsZW1zIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pIHx8IGVsZW1zLmxlbmd0aCA8PSAxKSB7CiAgICAgICAgICBub19lcnJvciA9IGVsZW0uY2hlY2tlZDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbXNbaV0uY2hlY2tlZCkgbm9fZXJyb3IgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5vX2Vycm9yKSB7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlBsZWFzZSBzZWxlY3QgYW4gb3B0aW9uLiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChlbGVtLnR5cGUgPT0nY2h
lY2tib3gnKSB7CiAgICAgICAgdmFyIGVsZW1zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWxlbS5uYW1lXSwgZm91bmQgPSBmYWxzZSwgZXJyID0gW107CiAgICAgICAgbm9fZXJyb3IgPSB0cnVlOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGlmIChlbGVtc1tpXS5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgPT09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgaWYgKCFmb3VuZCAmJiBlbGVtc1tpXSAhPT0gZWxlbSkgcmV0dXJuIHRydWU7CiAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUucmVwbGFjZSgvID9faGFzX2Vycm9yID8vZywgJycpOwogICAgICAgICAgaWYgKCFlbGVtc1tpXS5jaGVja2VkKSB7CiAgICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICAgIGVsZW1zW2ldLmNsYXNzTmFtZSA9IGVsZW1zW2ldLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgICAgIGVyci5wdXNoKCJDaGVja2luZyAlcyBpcyByZXF1aXJlZCIucmVwbGFjZSgiJXMiLCBlbGVtc1tpXS52YWx1ZSkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5vX2Vycm9yKSB7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgZXJyLmpvaW4oJzxici8+JykpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChlbGVtLnRhZ05hbWUgPT0gJ1NFTEVDVCcpIHsKICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgIGlmIChlbGVtLm11bHRpcGxlKSB7CiAgICAgICAgICBzZWxlY3RlZCA9IGZhbHNlOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW0ub3B0aW9uc1tpXS5zZWxlY3RlZCkgewogICAgICAgICAgICAgIHNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnNlbGVjdGVkICYmICFlbGVtLm9wdGlvbnNbaV0udmFsdWUpIHsKICAgICAgICAgICAgICBzZWxlY3RlZCA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghc2VsZWN0ZWQpIHsKICAgICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAiUGxlYXNlIHNlbGVjdCBhbiBvcHRpb24uIik7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiBlbGVtLm5hbWUgPT0gJ2VtYWlsJykgewogICAgICBpZiAoIXZhbHVlLm1hdGNoKC9eW1wrX2EtejAtOS0nJj1dKyhcLltcK19hLXowLTktJ10rKSpAW2EtejAtOS1dKyhcLlthLXowLTktXSspKihcLlthLXpdezIsfSkkL2kpKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIkVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4iKTsKICAgICAgfQogICAgfQogICAgaWYgKG5vX2Vycm9yICYmIC9kYXRlX2ZpZWxkLy50ZXN0KGVsZW0uY2xhc3NOYW1lKSkgewogICAgICBpZiAoIXZhbHVlLm1hdGNoKC9eXGRcZFxkXGQtXGRcZC1cZFxkJC8pKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIkVudGVyIGEgdmFsaWQgZGF0ZS4iKTsKICAgICAgfQogICAgfQogICAgdG9vbHRpcCA/IHJlc2l6ZV90b29sdGlwKHRvb2x0aXApIDogZmFsc2U7CiAgICByZXR1cm4gbm9fZXJyb3I7CiAgfTsKICB2YXIgbmVlZHNfdmFsaWRhdGUgPSBmdW5jdGlvbihlbCkgewogICAgcmV0dXJuIGVsLm5hbWUgPT0gJ2VtYWlsJyB8fCBlbC5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgIT09IG51bGw7CiAgfTsKICB2YXIgdmFsaWRhdGVfZm9ybSA9IGZ1bmN0aW9uKGUpIHsKICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKSwgbm9fZXJyb3IgPSB0cnVlOwogICAgaWYgKCFzdWJtaXR0ZWQpIHsKICAgICAgc3VibWl0dGVkID0gdHJ1ZTsKICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFsbElucHV0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgIHZhciBpbnB1dCA9IGFsbElucHV0c1tpXTsKICAgICAgICBpZiAobmVlZHNfdmFsaWRhdGUoaW5wdXQpKSB7CiAgICAgICAgICBpZiAoaW5wdXQudHlwZSA9PSAndGV4dCcpIHsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUudHJpbSgpOwogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudHlwZSA9PSAncmFkaW8nIHx8IGlucHV0LnR5cGUgPT0gJ2NoZWNrYm94JykgewogICAgICAgICAgICAoZnVuY3Rpb24oZWwpIHsKICAgICAgICAgICAgICB2YXIgcmFkaW9zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWwubmFtZV07CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYWRpb3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGFkZEV2ZW50KHJhZGlvc1tpXSwgJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKGVsLCB0cnVlKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkoaW5wdXQpOwogICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC50YWdOYW1lID09ICdTRUxFQ1QnKSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmVtb3ZlX3Rvb2x0aXBzKCk7CiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYWxsSW5wdXRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgIHZhciBlbGVtID0gYWxsSW5wdXRzW2ldOwogICAgICBpZiAobmVlZHNfdmFsaWRhdGUoZWxlbSkpIHsKICAgICAgICBpZiAoZWxlbS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJzZWxlY3QiKSB7CiAgICAgICAgICBlbGVtLnZhbHVlID0gZWxlbS52YWx1ZS50cmltKCk7CiAgICAgICAgfQogICAgICAgIHZhbGlkYXRlX2ZpZWxkKGVsZW0pID8gdHJ1ZSA6IG5vX2Vycm9yID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmICghbm9fZXJyb3IgJiYgZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB9CiAgICByZXNpemVfdG9vbHRpcHMoKTsKICAgIHJldHVybiBub19lcnJvcjsKICB9OwogIGFkZEV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScsIHJlc2l6ZV90b29sdGlwcyk7CiAgYWRkRXZlbnQod2luZG93LCAnc2Nyb2xsJywgcmVzaXplX3Rvb2x0aXBzKTsKICB3aW5kb3dbJ3JlY2FwdGNoYV9jYWxsYmFjayddID0gZnVuY3Rpb24oKSB7CiAgLy8gR2V0IGFsbCByZWNhcHRjaGFzIGluIHRoZSBET00gKHRoZXJlIG1heSBiZSBtb3JlIHRoYW4gb25lIGZvcm0gb24gdGhlIHBhZ2UpLgogIHZhciByZWNhcHRjaGFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZy1yZWNhcHRjaGEiKTsKICBmb3IgKHZhciBpIGluIHJlY2FwdGNoYXMpIHsKICAgIC8vIFNldCB0aGUgcmVjYXB0Y2hhIGVsZW1lbnQgSUQsIHNvIHRoZSByZWNhcHRjaGEgY2FuIGJlIGFwcGxpZWQgdG8gZWFjaCBlbGVtZW50LgogICAgdmFyIHJlY2FwdGNoYV9pZCA9ICJyZWNhcHRjaGFfIiArIGk7CiAgICByZWNhcHRjaGFzW2ldLmlkID0gcmVjYXB0Y2hhX2lkOwogICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVjYXB0Y2hhX2lkKTsKICAgIGlmIChlbCAhPSBudWxsKSB7CiAgICAgIHZhciBzaXRla2V5ID0gZWwuZ2V0QXR0cmlidXRlKCJkYXRhLXNpdGVrZXkiKTsKICAgICAgdmFyIHN0b2tlbiA9IGVsLmdldEF0dHJpYnV0ZSgiZGF0YS1zdG9rZW4iKTsKICAgICAgZ3JlY2FwdGNoYS5yZW5kZXIocmVjYXB0Y2hhX2lkLCB7InNpdGVrZXkiOnNpdGVrZXksInN0b2tlbiI6c3Rva2VufSk7CiAgICB9CiAgfQp9OyAgX2xvYWRfc2NyaXB0KCIvL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanM/b25sb2FkPXJlY2FwdGNoYV9jYWxsYmFjayZyZW5kZXI9ZXhwbGljaXQiKTsKICB3aW5kb3cuX29sZF9zZXJpYWxpemUgPSBudWxsOwogIGlmICh0eXBlb2Ygc2VyaWFsaXplICE9PSAndW5kZWZpbmVkJykgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICBfbG9hZF9zY3JpcHQoIi8vZDNyeGFpajU2dmplZ2UuY2xvdWRmcm9udC5uZXQvZm9ybS1zZXJpYWxpemUvMC4zL3NlcmlhbGl6ZS5taW4uanMiLCBmdW5jdGlvbigpIHsKICAgIHdpbmRvdy5fZm9ybV9zZXJpYWxpemUgPSB3aW5kb3cuc2VyaWFsaXplOwogICAgaWYgKHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSkgd2luZG93LnNlcmlhbGl6ZSA9IHdpbmRvdy5fb2xkX3NlcmlhbGl6ZTsKICB9KTsKICB2YXIgZm9ybV9zdWJtaXQgPSBmdW5jdGlvbihlKSB7CiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICBpZiAodmFsaWRhdGVfZm9ybSgpKSB7CiAgICAgIC8vIHVzZSB0aGlzIHRyaWNrIHRvIGdldCB0aGUgc3VibWl0IGJ1dHRvbiAmIGRpc2FibGUgaXQgdXNpbmcgcGxhaW4gamF2YXNjcmlwdAogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbaWRePSJfZm9ybSJdW2lkJD0iX3N1Ym1pdCJdJykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKSk7CiAgICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICAgICAgZXJyID8gZXJyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZXJyKSA6IGZhbHNlOwogICAgICBfbG9hZF9zY3JpcHQoJ2h0dHA6Ly9jb21tdW5pY2F0aW9ucy5jZnRlLmVkdWNhdGlvbi9wcm9jLnBocD8nICsgc2VyaWFsaXplZCArICcmanNvbnA9dHJ1ZScpOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH07CiAgYWRkRXZlbnQoZm9ybV90b19zdWJtaXQsICdzdWJtaXQnLCBmb3JtX3N1Ym1pdCk7Cn0pKCk7Cgo8L3NjcmlwdD4=[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]