{"id":242,"date":"2025-12-11T13:29:54","date_gmt":"2025-12-11T13:29:54","guid":{"rendered":"https:\/\/gcas.ie\/?page_id=242"},"modified":"2026-04-13T16:31:37","modified_gmt":"2026-04-13T16:31:37","slug":"handbook","status":"publish","type":"page","link":"https:\/\/gcas.ie\/de\/handbook\/","title":{"rendered":"GCAS-Handbuch f\u00fcr Studenten"},"content":{"rendered":"<div style=\"background-color: #1a1a1a; border: 1px solid #333; border-radius: 8px; padding: 25px 30px; margin: 80px auto 30px auto; max-width: 50%; text-align: center;\">\n  <p style=\"margin: 0; font-size: 1.1rem; color: #cccccc;\">\n    \ud83c\uddea\ud83c\uddf8 Para la versi\u00f3n en espa\u00f1ol del manual de GCAS, \n    <a href=\"https:\/\/gcas.ie\/wp-content\/uploads\/2026\/02\/Manual-de-GCAS-\u2014-Version-en-Espanol.pdf\" style=\"color: #d4af37; text-decoration: underline;\" target=\"_blank\">haga clic aqu\u00ed<\/a>. \n    <span style=\"color: #999; font-style: italic;\">(Spanish version)<\/span>\n  <\/p>\n<\/div>\n\n\n\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>GCAS College Dublin &#8211; Student Handbook 2025<\/title>\n<style>\n    :root {\n        --gcas-green: #2e7d32;\n        --gcas-red: #c62828;\n        --gcas-dark: #1a1a1a;\n        --gcas-light: #f5f5f5;\n        --gcas-border: #e0e0e0;\n    }\n   \n    * {\n        box-sizing: border-box;\n    }\n   \n    .handbook-wrapper {\n        font-family: 'Georgia', 'Times New Roman', serif;\n        line-height: 1.8;\n        color: var(--gcas-dark);\n        width: 100%;\n        margin: 0;\n        padding: 0;\n        background: #fff;\n    }\n   \n    .handbook-container {\n        max-width: 900px;\n        margin: 0 auto;\n        padding: 0 20px;\n    }\n   \n    .handbook-header {\n        text-align: center;\n        padding: 40px 20px;\n        border-bottom: 3px solid var(--gcas-green);\n        margin-bottom: 40px;\n        max-width: 900px;\n        margin-left: auto;\n        margin-right: auto;\n    }\n   \n    .handbook-header h1 {\n        color: var(--gcas-green);\n        font-size: 2.5em;\n        margin: 0 0 10px 0;\n        font-weight: normal;\n    }\n   \n    .handbook-header .subtitle {\n        color: var(--gcas-red);\n        font-size: 1.3em;\n        margin: 0 0 20px 0;\n    }\n   \n    .handbook-header .year {\n        font-size: 1.1em;\n        color: #666;\n    }\n   \n    .handbook-btn-container {\n        text-align: center;\n        max-width: 900px;\n        margin: 0 auto 30px auto;\n    }\n   \n    .handbook-btn {\n        display: inline-block;\n        background: var(--gcas-green);\n        color: white;\n        padding: 15px 30px;\n        text-decoration: none;\n        border-radius: 5px;\n        font-size: 1.1em;\n        font-weight: bold;\n        transition: background 0.3s;\n    }\n   \n    .handbook-btn:hover {\n        background: #1b5e20;\n        color: white;\n    }\n   \n    .toc-container {\n        background: var(--gcas-light);\n        border: 1px solid var(--gcas-border);\n        border-radius: 8px;\n        padding: 30px;\n        margin-bottom: 40px;\n        max-width: 900px;\n        margin-left: auto;\n        margin-right: auto;\n    }\n   \n    .toc-container h2 {\n        color: var(--gcas-green);\n        margin-top: 0;\n        font-size: 1.5em;\n        border-bottom: 2px solid var(--gcas-green);\n        padding-bottom: 10px;\n    }\n   \n    .toc-list {\n        list-style: none;\n        padding: 0;\n        margin: 0;\n        columns: 2;\n        column-gap: 40px;\n    }\n   \n    @media (max-width: 600px) {\n        .toc-list {\n            columns: 1;\n        }\n    }\n   \n    .toc-list li {\n        margin-bottom: 8px;\n        break-inside: avoid;\n    }\n   \n    .toc-list a {\n        color: var(--gcas-dark);\n        text-decoration: none;\n        border-bottom: 1px dotted var(--gcas-green);\n        transition: color 0.2s;\n    }\n   \n    .toc-list a:hover {\n        color: var(--gcas-green);\n    }\n   \n    .toc-section {\n        font-weight: bold;\n        color: var(--gcas-green);\n        margin-top: 15px;\n        display: block;\n    }\n   \n    .section {\n        margin-bottom: 50px;\n        padding-bottom: 30px;\n        border-bottom: 1px solid var(--gcas-border);\n        max-width: 900px;\n        margin-left: auto;\n        margin-right: auto;\n        padding-left: 20px;\n        padding-right: 20px;\n    }\n   \n    .section-header {\n        background: linear-gradient(135deg, var(--gcas-green), #4caf50);\n        color: white;\n        padding: 20px 30px;\n        margin: 40px 0 30px 0;\n        border-radius: 0;\n        width: 100%;\n    }\n   \n    .section-header h2 {\n        margin: 0;\n        font-size: 1.8em;\n        font-weight: normal;\n        max-width: 900px;\n        margin-left: auto;\n        margin-right: auto;\n    }\n   \n    h3 {\n        color: var(--gcas-green);\n        font-size: 1.4em;\n        margin-top: 35px;\n        padding-bottom: 8px;\n        border-bottom: 1px solid var(--gcas-border);\n    }\n   \n    h4 {\n        color: var(--gcas-dark);\n        font-size: 1.15em;\n        margin-top: 25px;\n    }\n   \n    p {\n        margin-bottom: 1.2em;\n        text-align: justify;\n    }\n   \n    ul, ol {\n        margin-bottom: 1.5em;\n        padding-left: 25px;\n    }\n   \n    li {\n        margin-bottom: 8px;\n    }\n   \n    .info-box {\n        background: #e3f2fd;\n        border-left: 4px solid #1976d2;\n        padding: 20px;\n        margin: 25px 0;\n        border-radius: 0 8px 8px 0;\n    }\n   \n    .warning-box {\n        background: #fff3e0;\n        border-left: 4px solid #f57c00;\n        padding: 20px;\n        margin: 25px 0;\n        border-radius: 0 8px 8px 0;\n    }\n   \n    .important-box {\n        background: #fce4ec;\n        border-left: 4px solid var(--gcas-red);\n        padding: 20px;\n        margin: 25px 0;\n        border-radius: 0 8px 8px 0;\n    }\n   \n    .highlight-box {\n        background: #e8f5e9;\n        border-left: 4px solid var(--gcas-green);\n        padding: 20px;\n        margin: 25px 0;\n        border-radius: 0 8px 8px 0;\n    }\n   \n    table {\n        width: 100%;\n        border-collapse: collapse;\n        margin: 25px 0;\n        font-size: 0.95em;\n    }\n   \n    th {\n        background: var(--gcas-green);\n        color: white;\n        padding: 12px 15px;\n        text-align: left;\n        font-weight: normal;\n    }\n   \n    td {\n        padding: 12px 15px;\n        border-bottom: 1px solid var(--gcas-border);\n    }\n   \n    tr:nth-child(even) {\n        background: var(--gcas-light);\n    }\n   \n    .contact-info {\n        background: var(--gcas-light);\n        padding: 25px;\n        border-radius: 8px;\n        text-align: center;\n        margin: 30px auto;\n        max-width: 900px;\n    }\n   \n    .contact-info p {\n        margin: 5px 0;\n        text-align: center;\n    }\n   \n    .grade-scale {\n        display: grid;\n        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n        gap: 10px;\n        margin: 20px 0;\n    }\n   \n    .grade-item {\n        background: var(--gcas-light);\n        padding: 10px 15px;\n        border-radius: 5px;\n        text-align: center;\n    }\n   \n    .grade-item strong {\n        color: var(--gcas-green);\n    }\n   \n    .programs-grid {\n        display: grid;\n        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n        gap: 15px;\n        margin: 20px 0;\n    }\n   \n    .program-card {\n        background: var(--gcas-light);\n        padding: 15px 20px;\n        border-radius: 8px;\n        border-left: 3px solid var(--gcas-green);\n    }\n   \n    .back-to-top {\n        display: inline-block;\n        background: var(--gcas-green);\n        color: white;\n        padding: 8px 16px;\n        text-decoration: none;\n        border-radius: 5px;\n        font-size: 0.9em;\n        margin-top: 20px;\n    }\n   \n    .back-to-top:hover {\n        background: #1b5e20;\n    }\n   \n    .handbook-footer {\n        text-align: center;\n        padding: 40px 20px;\n        margin-top: 50px;\n        border-top: 3px solid var(--gcas-green);\n        color: #666;\n        width: 100%;\n        background: #fff;\n    }\n   \n    .handbook-footer-inner {\n        max-width: 900px;\n        margin: 0 auto;\n    }\n   \n    @media (max-width: 768px) {\n        .handbook-container {\n            padding: 0 15px;\n        }\n       \n        .section {\n            padding-left: 15px;\n            padding-right: 15px;\n        }\n       \n        .section-header {\n            padding: 15px 20px;\n        }\n       \n        .handbook-header h1 {\n            font-size: 1.8em;\n        }\n    }\n<\/style>\n\n<div class=\"handbook-wrapper\">\n\n<header class=\"handbook-header\" id=\"top\">\n    <h1>GCAS College Dublin<\/h1>\n    <p class=\"subtitle\">The Global Centre for Advanced Studies<\/p>\n    <p class=\"year\">Student Handbook 2025<\/p>\n<\/header>\n\n<div class=\"handbook-btn-container\">\n    <a href=\"https:\/\/gcas.ie\/wp-content\/uploads\/2026\/03\/GCAS-Researchers-Student-Handbook-Updated-2026.pdf\" target=\"_blank\" class=\"handbook-btn\">Read the Entire Handbook<\/a>\n<\/div>\n\n<div class=\"contact-info\">\n    <p><strong>Address:<\/strong> 38\/39 Fitzwilliam Square, Dublin 2, Ireland<\/p>\n    <p><strong>Phone:<\/strong> +353 87 754 1417<\/p>\n    <p><strong>Email:<\/strong> <a href=\"mailto:contact@gcas.ie\">contact@gcas.ie<\/a><\/p>\n    <p><strong>Website:<\/strong> <a href=\"https:\/\/gcas.ie\/de\/\" target=\"_blank\">gcas.ie<\/a><\/p>\n<\/div>\n\n<nav class=\"toc-container\" id=\"toc\">\n    <h2>Table of Contents<\/h2>\n    <ul class=\"toc-list\">\n        <li><span class=\"toc-section\">Einf\u00fchrung<\/span><\/li>\n        <li><a href=\"#overview\">Overview &amp; Philosophy<\/a><\/li>\n        <li><a href=\"#accreditation\">Accreditation<\/a><\/li>\n        <li><a href=\"#faculty\">Faculty &amp; Leadership<\/a><\/li>\n       \n        <li><span class=\"toc-section\">Section 1: Student Life<\/span><\/li>\n        <li><a href=\"#code-of-trust\">Code of Trust &amp; Pledge<\/a><\/li>\n        <li><a href=\"#admissions\">Admissions<\/a><\/li>\n        <li><a href=\"#nomadic-learning\">Nomadic Learning<\/a><\/li>\n        <li><a href=\"#transfer\">Transfer &amp; Credit Recognition<\/a><\/li>\n        <li><a href=\"#international\">International Students<\/a><\/li>\n       \n        <li><span class=\"toc-section\">Section 2: Academic Policies<\/span><\/li>\n        <li><a href=\"#plagiarism\">Plagiarism Policy<\/a><\/li>\n        <li><a href=\"#supervision\">Academic Supervising<\/a><\/li>\n        <li><a href=\"#attendance\">Attendance &amp; Absence<\/a><\/li>\n        <li><a href=\"#grading\">Grading Scale<\/a><\/li>\n        <li><a href=\"#withdrawing\">Withdrawing from a Course<\/a><\/li>\n        <li><a href=\"#disciplinary\">Disciplinary Policy<\/a><\/li>\n       \n        <li><span class=\"toc-section\">Section 3: Finances<\/span><\/li>\n        <li><a href=\"#financial-aid\">Financial Aid<\/a><\/li>\n        <li><a href=\"#fees\">Additional Fees<\/a><\/li>\n       \n        <li><span class=\"toc-section\">Section 4: Degree Programs<\/span><\/li>\n        <li><a href=\"#ba-program\">BA Program<\/a><\/li>\n        <li><a href=\"#ma-programs\">MA Programs<\/a><\/li>\n        <li><a href=\"#thesis-requirements\">Thesis Requirements<\/a><\/li>\n       \n        <li><span class=\"toc-section\">Section 5: PhD Programs<\/span><\/li>\n        <li><a href=\"#phd-overview\">PhD Overview<\/a><\/li>\n        <li><a href=\"#dissertation\">Dissertation Requirements<\/a><\/li>\n        <li><a href=\"#phd-defense\">PhD Defense<\/a><\/li>\n       \n        <li><span class=\"toc-section\">Section 6: Student Agreements<\/span><\/li>\n        <li><a href=\"#liability\">Event Attendance &amp; Liability<\/a><\/li>\n        <li><a href=\"#tuition-payment\">Tuition Payment Obligations<\/a><\/li>\n        <li><a href=\"#recording-policy\">Recording &amp; Media Policy<\/a><\/li>\n       \n        <li><span class=\"toc-section\">Section 7: College Policies<\/span><\/li>\n        <li><a href=\"#data-protection\">Data Protection<\/a><\/li>\n        <li><a href=\"#equal-opportunity\">Equal Opportunity<\/a><\/li>\n        <li><a href=\"#bullying\">Anti-Bullying Policy<\/a><\/li>\n        <li><a href=\"#ai-policy\">AI in Academic Writing<\/a><\/li>\n        <li><a href=\"#disability\">Disability Accommodations<\/a><\/li>\n    <\/ul>\n<\/nav>\n\n<div class=\"section-header\">\n    <h2>Einf\u00fchrung<\/h2>\n<\/div>\n\n<section class=\"section\" id=\"overview\">\n    <h3>Overview<\/h3>\n    <p>Welcome to GCAS College Dublin, Ltd. The Global Centre for Advanced Studies (henceforth &#8220;GCAS&#8221; or &#8220;GCAS College&#8221;). This is a shortened version of the Handbook on this page. We are committed to providing you with the resources necessary to support and encourage your research findings. Although GCAS has one of the best faculties available in the fields of philosophy, art performance, psychoanalysis, theology, politics, and other fields, it is up to the student to decide if GCAS is the best fit for their research aims and objectives.<\/p>\n   \n    <p>GCAS is a college offering BA, MA, and PhD degrees online and at times in-person settings and through our publicly available programs in our ESchool. We are committed to debt-free high-quality education in an ecologically, collaborative and economically sustainable way.<\/p>\n   \n    <div class=\"highlight-box\">\n        <p><strong>Our Mission:<\/strong> High-quality, debt-free education that provides the resources for creative and new research that is not possible in a traditional university setting. We believe that education is inherently an intersubjective experience that requires sharing ideas openly, proposing and establishing new and bold lines of thinking and actions in rigorous scientific ways.<\/p>\n    <\/div>\n   \n    <p>GCAS holds in residence seminars for short periods of time in different locations. We&#8217;ve held seminars in Havana, Cuba; Berlin; Prague; Athens; Maribor, Slovenia; Paris; New York; Cincinnati, Ohio; Grand Rapids, Michigan; Mexico City; and Bogot\u00e1 Colombia, to name a few.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"accreditation\">\n    <h3>Accreditation<\/h3>\n    <p>GCAS College offers several accredited degree programmes in the European Union through our partnership with Woolf:<\/p>\n   \n    <div class=\"programs-grid\">\n        <div class=\"program-card\">Ph.D. in the Humanities and Social Sciences<\/div>\n        <div class=\"program-card\">Ph.D. in the Natural Sciences<\/div>\n        <div class=\"program-card\">MA in Philosophie<\/div>\n        <div class=\"program-card\">MA in Psychoanalyse<\/div>\n        <div class=\"program-card\">MA in Theologie<\/div>\n        <div class=\"program-card\">MA in Politik<\/div>\n        <div class=\"program-card\">Master of Laws (LL.M.)<\/div>\n        <div class=\"program-card\">BA in interdisziplin\u00e4ren Studien<\/div>\n    <\/div>\n<\/section>\n\n<section class=\"section\" id=\"faculty\">\n    <h3>Leadership &amp; Faculty<\/h3>\n    <p>GCAS College is owned and operated by faculty, staff, and graduates of GCAS College. Our governance structure includes:<\/p>\n    <ul>\n        <li>Board of Trustees<\/li>\n        <li>Academic Council<\/li>\n        <li>Quality Assurance Commission<\/li>\n        <li>Ethics Committee<\/li>\n    <\/ul>\n   \n    <p>GCAS was founded by Dr. Creston Davis in 2013 stemming from an idea he conceived in 1999 while a student at Yale University. In 2018 GCAS moved from the United States to Dublin, Ireland for several reason supreme among them being academic freedom. Importantly, GCAS College is owned by the faculty and graduates who share ownership together. When a student is accepted into our College they will be trained and supported by the faculty and staff with the intent to invite the student into the ownership community of GCAS College Dublin once they graduate.<\/p>\n   \n    <h4>Publications<\/h4>\n    <p>We also publish an online magazine and peer-reviewed academic journal, <strong>Die GCAS-\u00dcberpr\u00fcfung<\/strong>.<\/p>\n   \n    <a href=\"#toc\" class=\"back-to-top\">\u2191 Back to Contents<\/a>\n<\/section>\n\n<div class=\"section-header\">\n    <h2>Section 1: Student Community Life &amp; Responsibilities<\/h2>\n<\/div>\n\n<section class=\"section\" id=\"code-of-trust\">\n    <h3>The GCAS Code of Trust and Pledge<\/h3>\n    <p>Being a student-researcher at GCAS College Dublin means belonging to our academic community. Our academic community requires that all members always act in the most esteemed ethical ways possible. This is because if and when a student graduates from GCAS College Dublin, the faculty and Alumni may invite them to become co-owners of GCAS College Dublin.<\/p>\n   \n    <div class=\"important-box\">\n        <p><strong>Core Values:<\/strong> We trust that we are creating a different kind of Higher Educational Institution, one that is not concerned with material gain, but rather making a difference first and foremost in the lives of the younger generation and for the future flourishing of all living beings in our world.<\/p>\n    <\/div>\n   \n    <p>All students and members of our community must sign and agree to abide by our Code of Trust. Contact <a href=\"mailto:contact@gcas.ie\">contact@gcas.ie<\/a> to submit your signed form.<\/p>\n   \n    <h4>Student Expectations<\/h4>\n    <p>A student in the BA, MA or PhD programmes is a member of a high-quality academic community within the College. Should a student not live up to our world-class reputation by adverse activities such as lying, cheating, or harming others in our community or others outside our community then they will be warned about their behaviour. Should such warnings not stop the disrespectful behaviour in question then the student may be placed on probation or could even be removed from the community.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"admissions\">\n    <h3>Admissions<\/h3>\n   \n    <div class=\"warning-box\">\n        <p><strong>Read Before You Apply:<\/strong> GCAS is an accredited institution of higher education in the European Union via our partnership with Woolf University. Please be aware that most but not all degree programmes are accredited at this time. If you have a question about this please ask us.<\/p>\n    <\/div>\n   \n    <p>To be considered for admission into GCAS College, prospective students must complete the application process through Phase 1 and Phase 2. Information about these phases can be found on our respective degree programme webpages.<\/p>\n   \n    <h4>Prerequisites for Acceptance<\/h4>\n    <p>Our researchers come from some of the best academic institutions in the world, including Johns Hopkins University, Columbia University, London School of Economics, Swarthmore, Yale University, New York University, Cambridge, Oxford, and Case Western Reserve University.<\/p>\n   \n    <p>However, as a research institute and college that is challenging traditional academia, we attract applicants who bring diverse backgrounds, experiences, and fresh perspectives to the conversation and research.<\/p>\n   \n    <h4>Tuition Overview<\/h4>\n    <ul>\n        <li><strong>BA Programme:<\/strong> \u20ac3,500 per year<\/li>\n        <li><strong>MA &amp; PhD Programmes:<\/strong> \u20ac6,000 per year<\/li>\n    <\/ul>\n    <p>Nearly 100% financial aid packages are offered to all Researchers\/Students who are accepted. GCAS&#8217;s financial aid packages come in the form of tuition reduction.<\/p>\n   \n    <h4>Application Review<\/h4>\n    <p>All applications are reviewed by our Admissions Committee chaired by a GCAS Faculty member. Acceptance is highly selective for all our degree programmes. Part of our assessment criteria is to ensure GCAS has the capacity and resources to fully support the applicant&#8217;s research proposal.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"nomadic-learning\">\n    <h3>GCAS Nomadic Learning: &#8220;The World is our Classroom&#8221;<\/h3>\n    <p>From the first inception of The Global Center for Advanced Studies (GCAS) we have created new and innovative spaces of learning and applied creative and critical thinking. We have occupied dozens of spaces around the world from the Centre Pompidou in Paris, to a museum in Berlin, The Brooklyn Commons in New York City, to The Martin Luther King, Jr Centre in Havana, Cuba.<\/p>\n   \n    <h4>Previous GCAS Institutes &amp; Conferences<\/h4>\n    <ul>\n        <li>1st Annual, &#8220;Badiou on Badiou&#8221; (July 2014)<\/li>\n        <li>2nd, &#8220;Democracy Rising&#8221; Athens, Greece (July 2015)<\/li>\n        <li>3rd, &#8220;Democracy Rising&#8221; Philadelphia (June 2016)<\/li>\n        <li>4th, &#8220;Practicing Intellectual Resistance&#8221; Maribor, Slovenia (July 2017)<\/li>\n        <li>5th, &#8220;Aesthetic Resistance &amp; Performance&#8221; France (June 2018)<\/li>\n        <li>6th, &#8220;Philosophy as a Mode of Production&#8221; France (June 2019)<\/li>\n        <li>7th, &#8220;Aesthetics and the Political&#8221; Mexico City (Oct 2021)<\/li>\n        <li>GCAS Belfast Event (2022)<\/li>\n        <li>8th, &#8220;Transgressive Thought and the Counterfeits of Creativity&#8221; Prague (June 2023)<\/li>\n        <li>9th, &#8220;GCAS Paris Week&#8221; (May 2024)<\/li>\n        <li>10th, &#8220;GCAS Paris Week&#8221; (May 2025)<\/li>\n    <\/ul>\n   \n    <div class=\"info-box\">\n        <p><strong>Event Attendance:<\/strong> All students, faculty, and attendees who attend any GCAS College events in person must first sign a Liability Release Form. All attendees will commit to non-violent and respectful means of exchange.<\/p>\n    <\/div>\n<\/section>\n\n<section class=\"section\" id=\"transfer\">\n    <h3>Transferring &amp; Credit Recognition<\/h3>\n    <p>Students who transfer into The Graduate School of GCAS College Dublin from other institutions of higher education may transfer previously awarded credit received from another institution of higher education so long as that institution is accredited and your transfer is authorised by the GCAS Chancellor.<\/p>\n   \n    <h4>Credit Recognition for Alternative Learning Experiences<\/h4>\n    <p>GCAS College Dublin has a process by which we recognise alternative learning experiences including employment and other relevant experiences, and can grant credit hours for such experiences provided that documentation is provided.<\/p>\n   \n    <h4>Dual Enrolment Policy<\/h4>\n    <p>It is not the normal practice of GCAS College Dublin to accept a student who is also enrolled in another university. However, in exceptional cases, an applicant may request the Applications Committee to consider acceptance as a &#8220;Dual Enrolled&#8221; student.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"international\">\n    <h3>International Students<\/h3>\n   \n    <h4>English Language Requirements<\/h4>\n    <p>Applicants whose first language is not English must demonstrate evidence of their proficiency in English via one of the following:<\/p>\n    <ul>\n        <li>Completed a minimum of one year education in a predominantly English-speaking country within the previous 18 months<\/li>\n        <li>Work experience of at least 18 months in a predominantly English-speaking country<\/li>\n        <li>Sufficiently high qualification score on approved examinations<\/li>\n        <li>A degree from an accredited institution taught in English<\/li>\n    <\/ul>\n   \n    <h4>Accepted English Proficiency Tests<\/h4>\n    <table>\n        <tbody><tr>\n            <th>Test<\/th>\n            <th>Minimum Score<\/th>\n        <\/tr>\n        <tr>\n            <td>IELTS<\/td>\n            <td>Grade 6.5 overall<\/td>\n        <\/tr>\n        <tr>\n            <td>TOEFL<\/td>\n            <td>88 Internet-based \/ 570 paper-based<\/td>\n        <\/tr>\n        <tr>\n            <td>Cambridge Proficiency\/Advanced<\/td>\n            <td>Grade C or better (CEFR Level C1 or C2)<\/td>\n        <\/tr>\n        <tr>\n            <td>Pearson PTE Academic<\/td>\n            <td>Minimum 63 (no section below 59)<\/td>\n        <\/tr>\n    <\/tbody><\/table>\n    <p><em>Note: Test scores are only valid for two years prior to applying.<\/em><\/p>\n   \n    <h4>Visa Requirements<\/h4>\n    <p>Because we offer courses online and in low-residential ways, a student shouldn&#8217;t expect visa backing from GCAS College Dublin. For more information about student visas, please consult the Department of Foreign Affairs website.<\/p>\n   \n    <a href=\"#toc\" class=\"back-to-top\">\u2191 Back to Contents<\/a>\n<\/section>\n\n<div class=\"section-header\">\n    <h2>Section 2: General Academic Policies<\/h2>\n<\/div>\n\n<section class=\"section\" id=\"plagiarism\">\n    <h3>Plagiarism Policy<\/h3>\n    <p>Plagiarism is the act or instance of using or closely imitating the language and thoughts of another author without authorisation or the presentation of that author&#8217;s work as one&#8217;s own.<\/p>\n   \n    <div class=\"important-box\">\n        <p><strong>Zero Tolerance:<\/strong> GCAS most fundamentally is a place in which bold and new research is encouraged, as well as the creation of new thinking paradigms. Plagiarism is the act of &#8220;unthinking&#8221; and a form of intellectual dishonesty. GCAS strongly condemns any acts of plagiarism unless those acts are shown to be an artistic or performative act that has been pre-approved by faculty.<\/p>\n    <\/div>\n<\/section>\n\n<section class=\"section\" id=\"supervision\">\n    <h3>Academic Supervising<\/h3>\n    <p>All students are initially assigned an Academic Supervisor. The student&#8217;s Academic Supervisor will ensure the student understands the academic expectations and policies through the initial advisory meeting. Students should meet with their supervisor about once a month.<\/p>\n   \n    <h4>Changing Academic Supervisors<\/h4>\n    <p>After the first term, the student may wish to change their Academic Supervisor. To do this, email the Chancellor or Registrar.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"attendance\">\n    <h3>Attendance and Absence Policy<\/h3>\n    <p>In order to be a successful student at GCAS College Dublin, a student must attend:<\/p>\n    <ul>\n        <li>Lectures<\/li>\n        <li>Classes<\/li>\n        <li>Monthly peer group meet-ups<\/li>\n        <li>Monthly academic supervision meetings<\/li>\n        <li>Other events as required<\/li>\n    <\/ul>\n   \n    <div class=\"warning-box\">\n        <p><strong>Live Course Policy:<\/strong> We strongly encourage all students to attend live courses. If the course is happening between 8 a.m. and 8 p.m. in your local time zone, we expect attendance. Students may miss up to 2 live class sessions without penalty.<\/p>\n    <\/div>\n   \n    <h4>Absence Requirements<\/h4>\n    <ul>\n        <li>If absent, post a 250-word response to the lecture within 3 days after the recording is posted<\/li>\n        <li>Leaving more than 20% of class early counts as an absence<\/li>\n        <li>3 absences: Final grade reduced by 1 unit<\/li>\n        <li>4 absences: Final grade reduced by another unit<\/li>\n        <li>5+ absences: Failure of the course<\/li>\n    <\/ul>\n<\/section>\n\n<section class=\"section\" id=\"grading\">\n    <h3>Grading Scale<\/h3>\n    <p>The grading scale is from 1 to 10 with 10 being the highest grade achievable:<\/p>\n   \n    <div class=\"grade-scale\">\n        <div class=\"grade-item\"><strong>10<\/strong> &#8211; Highest achievable<\/div>\n        <div class=\"grade-item\"><strong>9<\/strong> &#8211; Excellent<\/div>\n        <div class=\"grade-item\"><strong>8<\/strong> &#8211; Very Good<\/div>\n        <div class=\"grade-item\"><strong>7<\/strong> &#8211; Good<\/div>\n        <div class=\"grade-item\"><strong>6<\/strong> &#8211; Passable<\/div>\n        <div class=\"grade-item\"><strong>5<\/strong> &#8211; Failure (may retake)<\/div>\n        <div class=\"grade-item\"><strong>4<\/strong> &#8211; Failure (may retake)<\/div>\n        <div class=\"grade-item\"><strong>3<\/strong> &#8211; Failure (no retake)<\/div>\n        <div class=\"grade-item\"><strong>2<\/strong> &#8211; Failure (no retake)<\/div>\n        <div class=\"grade-item\"><strong>1<\/strong> &#8211; Failure (no retake)<\/div>\n    <\/div>\n<\/section>\n\n<section class=\"section\" id=\"withdrawing\">\n    <h3>Withdrawing from a Course<\/h3>\n    <p>A student may withdraw from any course at any time; however, there are different consequences:<\/p>\n   \n    <table>\n        <tbody><tr>\n            <th>Withdrawal Period<\/th>\n            <th>Consequence<\/th>\n        <\/tr>\n        <tr>\n            <td>Before 2nd class meeting<\/td>\n            <td>No consequences, no grade or credit<\/td>\n        <\/tr>\n        <tr>\n            <td>Before 4th class meeting<\/td>\n            <td>Can claim 50% of tuition funds, no grade or credit<\/td>\n        <\/tr>\n        <tr>\n            <td>Before 5th class meeting<\/td>\n            <td>No tuition reimbursement, no grade or credit<\/td>\n        <\/tr>\n        <tr>\n            <td>After 6th class meeting<\/td>\n            <td>Will receive a grade for the course<\/td>\n        <\/tr>\n    <\/tbody><\/table>\n<\/section>\n\n<section class=\"section\" id=\"disciplinary\">\n    <h3>Disciplinary Policy<\/h3>\n    <p>All GCAS College students are expected to conduct themselves in a respectful and professional manner at all times.<\/p>\n   \n    <h4>Kinds of Disciplinary Action<\/h4>\n    <ul>\n        <li>Official Reprimand<\/li>\n        <li>Academic Probation<\/li>\n        <li>Temporary Suspension<\/li>\n        <li>Forced Leave of Absence<\/li>\n        <li>Suspension for 1 Year<\/li>\n        <li>Termination<\/li>\n        <li>Termination without the privilege of reapplying<\/li>\n    <\/ul>\n   \n    <h4>Procedure<\/h4>\n    <p>Should a student be suspected of violating a policy or code of GCAS College, they will be formally notified by the Dean of Student Affairs via email. The student can admit violation in writing, or claim innocence and receive a fair defense in an Ethics Committee Violation Hearing.<\/p>\n   \n    <h4>Leave of Absence<\/h4>\n    <p>A student may apply for a medical leave of absence and\/or a pause in their studies. The cost of a leave of absence is \u20ac500.<\/p>\n   \n    <a href=\"#toc\" class=\"back-to-top\">\u2191 Back to Contents<\/a>\n<\/section>\n\n<div class=\"section-header\">\n    <h2>Section 3: GCAS College Economy<\/h2>\n<\/div>\n\n<section class=\"section\" id=\"financial-aid\">\n    <h3>Financial Aid<\/h3>\n   \n    <div class=\"highlight-box\">\n        <p><strong>100% OF ALL GCAS COLLEGE STUDENTS RECEIVE SOME FINANCIAL AID<\/strong><\/p>\n    <\/div>\n   \n    <p>GCAS College Dublin is committed to providing the highest quality education at the lowest possible cost. There are three ways we help students:<\/p>\n    <ol>\n        <li>Extremely low tuition for high quality education<\/li>\n        <li>All accepted students receive some form of tuition remission support; some may receive up to 50% depending on the strength of their application.<\/li>\n        <li>Flexible payment schedules<\/li>\n    <\/ol>\n   \n    <h4>The Warren T. Davis, Jr Scholarship<\/h4>\n    <p>GCAS may offer unique scholarship opportunity that provides the recipient with up to 100% tuition remission. This scholarship is set aside for BA, MA and PhD Researchers who are accepted into GCAS.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"fees\">\n    <h3>Additional Fees<\/h3>\n   \n    <div class=\"info-box\">\n        <p><strong>Stay on Track, Stay Debt-Free:<\/strong> NO EXTRA FEES IF YOU GRADUATE ON TIME. Additional fees apply only in exceptional circumstances.<\/p>\n    <\/div>\n   \n    <h4>Fee Summary<\/h4>\n    <table>\n        <tbody><tr>\n            <th>Fee Type<\/th>\n            <th>Applies To<\/th>\n            <th>When Fees Apply<\/th>\n            <th>Monthly Cost<\/th>\n        <\/tr>\n        <tr>\n            <td>Continuation Fee<\/td>\n            <td>MA, BA, PhD<\/td>\n            <td>After grace period, for each additional month<\/td>\n            <td>\u20ac250<\/td>\n        <\/tr>\n        <tr>\n            <td>Extraordinary Supervision (MA)<\/td>\n            <td>MA thesis writing<\/td>\n            <td>If supervision exceeds 3 months<\/td>\n            <td>\u20ac150<\/td>\n        <\/tr>\n        <tr>\n            <td>Extraordinary Supervision (PhD)<\/td>\n            <td>PhD<\/td>\n            <td>During 3 non-budgeted months (summer break)<\/td>\n            <td>\u20ac150<\/td>\n        <\/tr>\n        <tr>\n            <td>Additional Supervisor (PhD)<\/td>\n            <td>PhD (Year 2 or 3)<\/td>\n            <td>For each month with additional supervisor<\/td>\n            <td>\u20ac150<\/td>\n        <\/tr>\n    <\/tbody><\/table>\n   \n    <h4>Continuation Fees<\/h4>\n    <p>GCAS provides clearly defined timelines for degree completion:<\/p>\n    <ul>\n        <li><strong>MA programs:<\/strong> 12 months<\/li>\n        <li><strong>BA and PhD programs:<\/strong> 36 months<\/li>\n    <\/ul>\n    <p>A two-month grace period is granted at no additional cost. After this, a monthly continuation fee of \u20ac200 will be charged.<\/p>\n   \n    <a href=\"#toc\" class=\"back-to-top\">\u2191 Back to Contents<\/a>\n<\/section>\n\n<div class=\"section-header\">\n    <h2>Section 4: BA and MA Degree Programmes<\/h2>\n<\/div>\n\n<section class=\"section\" id=\"ba-program\">\n    <h3>Bachelor of Interdisciplinary Studies (BA-IS)<\/h3>\n    <p><strong>Director:<\/strong> Mario D&#8217;Amato<\/p>\n    <p>Please refer to the GCAS website for detailed information about this programme.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"ma-programs\">\n    <h3>MA Programmes<\/h3>\n    <p>The MA programmes are based on coursework and research and range in length from one to two years. Students are required to complete 90 ECTS credit hours, which include:<\/p>\n    <ul>\n        <li>Coursework<\/li>\n        <li>Monthly supervision<\/li>\n        <li>MA Thesis peer mentor hours<\/li>\n    <\/ul>\n   \n    <h4>Programme Directors<\/h4>\n    <ul>\n        <li><strong>MA in Philosophy:<\/strong> Creston Davis, PhD<\/li>\n        <li><strong>MA in Psychoanalysis:<\/strong> Florian Kleinau, PhD<\/li>\n        <li><strong>MA in Politics:<\/strong> Francisco Gonzales, PhD<\/li>\n        <li><strong>MA in Theology:<\/strong> Barry Taylor, PhD<\/li>\n    <\/ul>\n   \n    <h4>Supervised Guided Research<\/h4>\n    <p>The core of this programme is guided and supervised individual research from one of GCAS College&#8217;s faculty members. You are required to meet at least once per month with your assigned Academic Supervisor.<\/p>\n   \n    <div class=\"warning-box\">\n        <p><strong>Important:<\/strong> Should a student seek a supervisor outside the core GCAS faculty, they must first arrange this via the Chancellor, Dr. Creston Davis. There will normally be an extra fee of \u20ac100 per month for external supervisors.<\/p>\n    <\/div>\n   \n    <h4>Masters Comprehensive Examination (MCE)<\/h4>\n    <p>Each student will be required to take and successfully pass the MCE. This examination is a four-hour, written examination. Students can use external materials during this examination.<\/p>\n    <ul>\n        <li>The examination consists of one or two questions on the research topic<\/li>\n        <li>Must be proctored by a GCAS faculty member or approved proctor<\/li>\n        <li>Graded as &#8220;Pass&#8221; or &#8220;Fail&#8221;<\/li>\n        <li>If failed, can retake after 30 days<\/li>\n        <li>If the retake is failed, the student will be removed from the programme<\/li>\n    <\/ul>\n<\/section>\n\n<section class=\"section\" id=\"thesis-requirements\">\n    <h3>MA Thesis Requirements<\/h3>\n   \n    <h4>Length<\/h4>\n    <ul>\n        <li>Minimum: 20,000 words<\/li>\n        <li>Maximum: 40,000 words (excluding bibliography and appendices)<\/li>\n        <li>Absolute maximum: 50,000 words<\/li>\n        <li>Footnotes &amp; citations: Should not exceed 20% of the Thesis<\/li>\n    <\/ul>\n   \n    <h4>Format<\/h4>\n    <table>\n        <tbody><tr>\n            <th>Element<\/th>\n            <th>Requirement<\/th>\n        <\/tr>\n        <tr>\n            <td>Margins<\/td>\n            <td>1 inch on all sides<\/td>\n        <\/tr>\n        <tr>\n            <td>Font<\/td>\n            <td>Times New Roman<\/td>\n        <\/tr>\n        <tr>\n            <td>Font Size<\/td>\n            <td>12pt<\/td>\n        <\/tr>\n        <tr>\n            <td>Spacing<\/td>\n            <td>Double<\/td>\n        <\/tr>\n        <tr>\n            <td>Citation Style<\/td>\n            <td>Chicago, MLA, or APA (must be consistent throughout)<\/td>\n        <\/tr>\n    <\/tbody><\/table>\n   \n    <h4>Thesis Defense<\/h4>\n    <p>The MA Defense is expected to last about one hour:<\/p>\n    <ul>\n        <li>5 minutes: Introduction by Academic Supervisor<\/li>\n        <li>10 minutes: Student summarises thesis<\/li>\n        <li>20 minutes: Committee examination<\/li>\n        <li>5 minutes: Student summary<\/li>\n        <li>15 minutes: Committee private discussion<\/li>\n        <li>5 minutes: Grade announcement<\/li>\n    <\/ul>\n   \n    <h4>Defense Grades<\/h4>\n    <ul>\n        <li><strong>A.<\/strong> Pass with Distinction<\/li>\n        <li><strong>B.<\/strong> Pass without Revision<\/li>\n        <li><strong>C.<\/strong> Pass with Minor Revisions (180 days to address)<\/li>\n        <li><strong>D.<\/strong> Pass with Major Revisions (180 days to address)<\/li>\n        <li><strong>E.<\/strong> Fail (but student can redefend after 365 days)<\/li>\n        <li><strong>F.<\/strong> Fail (with no further options)<\/li>\n    <\/ul>\n   \n    <a href=\"#toc\" class=\"back-to-top\">\u2191 Back to Contents<\/a>\n<\/section>\n\n<div class=\"section-header\">\n    <h2>Section 5: PhD Programmes<\/h2>\n<\/div>\n\n<section class=\"section\" id=\"phd-overview\">\n    <h3>PhD Overview<\/h3>\n    <p>GCAS&#8217;s Ph.D. programmes strive to be the best research programme of its kind in the world.<\/p>\n   \n    <h4>Available Programmes<\/h4>\n    <ul>\n        <li><strong>PhD in the Humanities and Social Sciences<\/strong> \u2014 Director: Creston Davis, PhD<\/li>\n        <li><strong>PhD in the Natural Sciences (Mathematics and Physics)<\/strong> \u2014 Director: Fernando Tohm\u00e9, PhD<\/li>\n    <\/ul>\n   \n    <h4>Basic Requirements<\/h4>\n    <p>GCAS PhD programmes are 3 years in length:<\/p>\n    <ul>\n        <li><strong>Year 1:<\/strong> Research design, methodology development, literature review, identifying research &#8220;gap,&#8221; and developing a tentative hypothesis. One required course: &#8220;Methodologies and Research Techniques&#8221; (meets 4 times per year)<\/li>\n        <li><strong>Year 2:<\/strong> Promotion to &#8220;PhD Candidate&#8221; status and assignment of an expert supervisor<\/li>\n        <li><strong>Year 3:<\/strong> Dissertation completion and defense<\/li>\n    <\/ul>\n<\/section>\n\n<section class=\"section\" id=\"dissertation\">\n    <h3>PhD Dissertation Requirements<\/h3>\n    <p>The PhD Dissertation is a scientific document consisting of sustained, rigorous, and coherent research that contributes something original to a field or fields of inquiry.<\/p>\n   \n    <h4>Format<\/h4>\n    <table>\n        <tbody><tr>\n            <th>Element<\/th>\n            <th>Requirement<\/th>\n        <\/tr>\n        <tr>\n            <td>Length<\/td>\n            <td>~80,000 words (max 100,000 excluding bibliography)<\/td>\n        <\/tr>\n        <tr>\n            <td>Margins<\/td>\n            <td>1.5 inch on all sides<\/td>\n        <\/tr>\n        <tr>\n            <td>Font<\/td>\n            <td>Times New Roman<\/td>\n        <\/tr>\n        <tr>\n            <td>Font Size<\/td>\n            <td>12pt<\/td>\n        <\/tr>\n        <tr>\n            <td>Spacing<\/td>\n            <td>Double<\/td>\n        <\/tr>\n    <\/tbody><\/table>\n<\/section>\n\n<section class=\"section\" id=\"phd-defense\">\n    <h3>PhD Dissertation Defense<\/h3>\n    <p>The PhD Dissertation Defense must be scheduled at least 90 days ahead. All committee members must be present either in person or via live online meeting.<\/p>\n   \n    <h4>Defense Format<\/h4>\n    <ol>\n        <li>Einf\u00fchrung<\/li>\n        <li>Student presents 3-5 minute summary<\/li>\n        <li>Questions and examination by evaluators<\/li>\n        <li>Student replies to examination<\/li>\n        <li>Student leaves while examiners convene<\/li>\n        <li>Grade determination<\/li>\n        <li>Student returns and grade is delivered<\/li>\n        <li>Meeting adjourned<\/li>\n    <\/ol>\n   \n    <h4>Grade Scale<\/h4>\n    <ul>\n        <li><strong>A.<\/strong> Pass with Distinction<\/li>\n        <li><strong>B.<\/strong> Pass without Revision<\/li>\n        <li><strong>C.<\/strong> Pass with Minor Revision (90 days to submit revisions)<\/li>\n        <li><strong>D.<\/strong> Pass with Major Revision (180 days to submit revisions)<\/li>\n        <li><strong>E.<\/strong> Fail (with resubmission possible)<\/li>\n        <li><strong>F.<\/strong> Fail (without resubmission)<\/li>\n    <\/ul>\n   \n    <h4>Submission<\/h4>\n    <p>Once passed, the student must submit the final copy within 180 days. Failure to submit within 180 days will result in the degree being revoked.<\/p>\n   \n    <h4>Research Beyond 3 Years<\/h4>\n    <p>If dissertation research takes longer than 3 years, tuition fees remain the same as the final year of study. After Year 4, the Chancellor will assess the feasibility of completion.<\/p>\n   \n    <a href=\"#toc\" class=\"back-to-top\">\u2191 Back to Contents<\/a>\n<\/section>\n\n<div class=\"section-header\">\n    <h2>Section 6: Student Agreements &amp; Obligations<\/h2>\n<\/div>\n\n<section class=\"section\" id=\"liability\">\n    <h3>Event Attendance &amp; Liability<\/h3>\n    <p>When a student attends a GCAS event in person, they do so <strong>&#8220;at their own risk.&#8221;<\/strong><\/p>\n   \n    <div class=\"important-box\">\n        <p><strong>Liability Waiver:<\/strong> By attending any GCAS College Dublin or Global Centre for Advanced Studies (&#8220;GCAS&#8221;) event in person, students agree that in the unexpected event that they are injured or hurt, they will not hold GCAS College Dublin Limited or the Global Centre for Advanced Studies (&#8220;GCAS&#8221;) responsible for any injuries, damages, or losses incurred.<\/p>\n    <\/div>\n   \n    <p>All students, faculty, and attendees who attend any GCAS College events in person must first sign a Liability Release Form acknowledging this policy.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"tuition-payment\">\n    <h3>Tuition Payment Obligations<\/h3>\n   \n    <div class=\"important-box\">\n        <p><strong>Payment Requirement:<\/strong> Students agree to pay their tuition on time according to the payment schedule established upon enrollment.<\/p>\n    <\/div>\n   \n    <h4>Non-Payment Consequences<\/h4>\n    <p>Should a student not pay their tuition after receiving a warning and after more than <strong>60 days<\/strong> without prior approval from the Chancellor, they will be removed from enrollment and from GCAS.<\/p>\n   \n    <h4>Tuition Commitment After Acceptance<\/h4>\n    <p>If you agree to the terms and conditions of our acceptance offer, GCAS needs to rely on you to pay for your tuition in a timely manner as agreed. This commitment is essential for GCAS to maintain its operations and continue providing quality education.<\/p>\n   \n    <div class=\"warning-box\">\n        <p><strong>Important:<\/strong> Should you want to stop your studies after 30 days, you are still obligated to pay for your entire tuition amount that you have agreed to. This policy ensures that GCAS can allocate resources appropriately and maintain its commitment to all students.<\/p>\n    <\/div>\n<\/section>\n\n<section class=\"section\" id=\"recording-policy\">\n    <h3>Recording &amp; Media Policy<\/h3>\n    <p>GCAS records our lectures and events to ensure all students have access to educational content regardless of their location or schedule.<\/p>\n   \n    <div class=\"info-box\">\n        <p><strong>Consent to Recording:<\/strong> By participating in GCAS events, courses, or seminars online via Zoom (or similar platforms), you agree to allow GCAS to record these sessions and provide the recordings to GCAS students and researchers who couldn&#8217;t participate due to time-zone issues, health concerns, or similar circumstances.<\/p>\n    <\/div>\n   \n    <h4>Where Recordings Are Stored<\/h4>\n    <p>GCAS posts and stores recordings in the following locations:<\/p>\n    <ul>\n        <li>GCAS Community Forum<\/li>\n        <li>Canvas Learning Management System<\/li>\n        <li>GCAS YouTube Channel<\/li>\n    <\/ul>\n   \n    <p>These recordings are intended for educational purposes and to support the learning community at GCAS.<\/p>\n   \n    <a href=\"#toc\" class=\"back-to-top\">\u2191 Back to Contents<\/a>\n<\/section>\n\n<div class=\"section-header\">\n    <h2>Section 7: GCAS College Policies<\/h2>\n<\/div>\n\n<section class=\"section\" id=\"data-protection\">\n    <h3>Data Protection and Retention Policy<\/h3>\n    <p>GCAS College Dublin Limited is committed to protecting the privacy and personal data of all students, faculty, staff, and partners in accordance with GDPR and the Irish Data Protection Act 2018.<\/p>\n   \n    <h4>Data Controller<\/h4>\n    <p>GCAS College Dublin Limited acts as the data controller for administrative and operational data. Academic records related to accreditation, transcripts, and grades are managed separately by Woolf University.<\/p>\n   \n    <h4>Your Rights Under GDPR<\/h4>\n    <ul>\n        <li>Right of access (Article 15)<\/li>\n        <li>Right to rectification (Article 16)<\/li>\n        <li>Right to erasure (Article 17)<\/li>\n        <li>Right to restriction or objection (Articles 18\u201321)<\/li>\n        <li>Right to data portability (Article 20)<\/li>\n    <\/ul>\n    <p>Requests can be submitted to <a href=\"mailto:contact@gcas.ie\">contact@gcas.ie<\/a>. GCAS will respond within one calendar month.<\/p>\n   \n    <h4>Data Retention Periods<\/h4>\n    <table>\n        <tbody><tr>\n            <th>Category<\/th>\n            <th>Retention Period<\/th>\n        <\/tr>\n        <tr>\n            <td>Student contact and enrolment data<\/td>\n            <td>Up to 7 years after completion\/withdrawal<\/td>\n        <\/tr>\n        <tr>\n            <td>Financial and invoicing records<\/td>\n            <td>7 years (Irish tax law)<\/td>\n        <\/tr>\n        <tr>\n            <td>Email and institutional account data<\/td>\n            <td>Deleted upon official withdrawal<\/td>\n        <\/tr>\n        <tr>\n            <td>Learning platform and forum posts<\/td>\n            <td>Deleted\/anonymised within 12 months of withdrawal<\/td>\n        <\/tr>\n    <\/tbody><\/table>\n<\/section>\n\n<section class=\"section\" id=\"equal-opportunity\">\n    <h3>Equal Employment and Learning Opportunity Policy<\/h3>\n    <p>It is the policy of GCAS College Dublin to ensure equal employment and learning opportunities without discrimination or harassment on the bases of race, color, national origin, religion, sex, age, disability, citizenship, marital status or any other characteristic protected by law.<\/p>\n   \n    <div class=\"highlight-box\">\n        <p>This policy permeates all decisions, including those involving employee compensation, application assessments, benefits, hiring, promotion, training and development, and other terms and conditions of employment and learning.<\/p>\n    <\/div>\n<\/section>\n\n<section class=\"section\" id=\"bullying\">\n    <h3>Prevention of Bullying and Harassment<\/h3>\n   \n    <div class=\"important-box\">\n        <p><strong>Zero Tolerance Policy:<\/strong> GCAS College will investigate vigorously any allegations of bullying or harassment, regardless of whether the matter has been raised formally or informally.<\/p>\n    <\/div>\n   \n    <h4>Definition of Harassment<\/h4>\n    <p>Harassment is any conduct which is unwanted by the recipient and is considered objectionable, causing humiliation, offence, distress or other detrimental effect. This may include:<\/p>\n    <ul>\n        <li><strong>Physical:<\/strong> Contact ranging from touching to serious assault, gestures, intimidation<\/li>\n        <li><strong>Verbal:<\/strong> Unwelcome remarks, suggestions, malicious gossip, jokes, offensive language<\/li>\n        <li><strong>Non-verbal:<\/strong> Offensive literature or pictures, graffiti, isolation or exclusion from activities<\/li>\n    <\/ul>\n   \n    <h4>Definition of Bullying<\/h4>\n    <p>Bullying is usually repeated and persistent behaviour which is offensive, abusive, intimidating, malicious or insulting, including:<\/p>\n    <ul>\n        <li>Conduct which is intimidating, physically abusive or threatening<\/li>\n        <li>Conduct that denigrates, ridicules or humiliates an individual<\/li>\n        <li>Picking on one person when there is a common problem<\/li>\n        <li>Shouting at an individual to get things done<\/li>\n        <li>Setting unrealistic targets or excessive workloads<\/li>\n        <li>Cyber bullying via email or social media<\/li>\n    <\/ul>\n   \n    <h4>Resolution Process<\/h4>\n    <p>Complainants are encouraged to try informal resolution first. If this is not possible or appropriate, formal complaints should be raised to The Ethics Committee via the Complaint Form.<\/p>\n<\/section>\n\n<section class=\"section\" id=\"ai-policy\">\n    <h3>Policy on the Use of Artificial Intelligence (AI) in Academic Writing<\/h3>\n    <p>GCAS is committed to preserving the highest standards of academic integrity, originality, and genuine scholarly inquiry.<\/p>\n   \n    <div class=\"important-box\">\n        <h4>Prohibited Uses of AI<\/h4>\n        <ul>\n            <li>Drafting or writing any portion of assignments<\/li>\n            <li>Generating arguments or explanations<\/li>\n            <li>Producing or editing text intended to appear as the student&#8217;s own work<\/li>\n            <li>Rephrasing or rewriting content<\/li>\n            <li>Generating citations, bibliographies, or literature reviews (unless specifically permitted)<\/li>\n        <\/ul>\n    <\/div>\n   \n    <h4>Permitted Uses of AI<\/h4>\n    <ul>\n        <li>Locating bibliographic resources<\/li>\n        <li>Clarifying concepts in an explanatory or tutoring capacity<\/li>\n        <li>Receiving guidance on formatting or citation styles<\/li>\n        <li>Generating a basic outline template that the student significantly revises<\/li>\n    <\/ul>\n   \n    <p>Any permitted use must be disclosed in an <strong>AI Use Statement<\/strong> at the end of the submitted work.<\/p>\n   \n    <div class=\"warning-box\">\n        <p><strong>Violations:<\/strong> Will be handled in accordance with GCAS&#8217;s Academic Integrity and Misconduct procedures. Repeated or serious violations may result in sanctions, including revision requirements, probation, or disenrollment.<\/p>\n    <\/div>\n<\/section>\n\n<section class=\"section\" id=\"disability\">\n    <h3>Policy Concerning Disability and Academic Accommodation<\/h3>\n    <p>GCAS College Dublin is committed to addressing the issues of disability in our student population.<\/p>\n   \n    <h4>Accommodation Process<\/h4>\n    <ol>\n        <li>Complete the Disability Disclosure Form<\/li>\n        <li>Provide sufficient evidence to support the disclosed disability from a healthcare professional<\/li>\n        <li>The Dean of Academic Affairs will determine the degree of academic accommodation<\/li>\n        <li>The Disability Disclosure Form will only be shared with the Dean of Student Affairs and the Academic Disabilities Accommodation Commission<\/li>\n    <\/ol>\n   \n    <div class=\"info-box\">\n        <p><strong>GCAS&#8217;s Commitment:<\/strong> GCAS is aware that the concept of disability has been severely limited by a binary conceptualization. Current research shows that the ways of being disabled and the degrees of disability are highly variable, potentially including physical, intellectual capacities, and social factors. GCAS hopes to contribute research in this field.<\/p>\n    <\/div>\n   \n    <a href=\"#toc\" class=\"back-to-top\">\u2191 Back to Contents<\/a>\n<\/section>\n\n<section class=\"section\">\n    <h3>GCAS Refund Policy<\/h3>\n    <p>Once an applicant receives GCAS&#8217;s official acceptance letter they will have <strong>10 days<\/strong> to decide if they agree or disagree with the terms and conditions. Once the applicant accepts the terms and conditions they will be given <strong>30 days<\/strong> to ask for a refund minus the administration costs and fees. After 30 days there are no refunds.<\/p>\n<\/section>\n\n<footer class=\"handbook-footer\">\n    <div class=\"handbook-footer-inner\">\n        <p><strong>\u00a9 GCAS College Dublin, Ltd. 2025<\/strong><\/p>\n        <p>All Rights Reserved<\/p>\n        <p style=\"margin-top: 20px;\">\n            <em>&#8220;Out of Ashes, a New Light&#8221;<\/em><br>\n            <em>&#8220;Is Luaithreach Solas Nua&#8221;<\/em>\n        <\/p>\n        <p style=\"margin-top: 30px; font-size: 0.9em;\">\n            GCAS reserves the right to modify programmes, policies, course offerings, requirements, and any other matters outlined in this Handbook at any time and without prior notice.\n        <\/p>\n        <p style=\"margin-top: 20px;\">\n            <a href=\"mailto:contact@gcas.ie\">contact@gcas.ie<\/a> | <a href=\"https:\/\/gcas.ie\/de\/\" target=\"_blank\">gcas.ie<\/a>\n        <\/p>\n    <\/div>\n<\/footer>\n\n<\/div>\n\n\n\n<p><strong>New Addition:<\/strong> Owing to the transactional expense of lodging shares to graduates and faculty members, GCAS will be asking those who qualify and seek stock shares of ownership in GCAS College Dublin Limited to pay the fee of lodgement, which is a fee of \u20ac25 as of 1 January 2025. For the expanded version of the GCAS Handbook, please refer to <a href=\"https:\/\/docs.google.com\/document\/d\/1vJ6OVrGCwpoyTimlozKT9RwPLM3t-VTGN3rtL5wqIpg\/edit?usp=sharing\" style=\"color: blue; text-decoration: underline;\">this link<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>\ud83c\uddea\ud83c\uddf8 Para la versi\u00f3n en espa\u00f1ol del manual de GCAS, haga clic aqu\u00ed. (Spanish version) GCAS College Dublin &#8211; Student Handbook 2025 GCAS College Dublin The Global Centre for Advanced Studies Student Handbook 2025 Read the Entire Handbook Address: 38\/39 Fitzwilliam Square, Dublin 2, Ireland Phone: +353 87 754 1417 Email: contact@gcas.ie Website: gcas.ie Table [&hellip;]<\/p>\n","protected":false},"author":8678545,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-full-width.php","meta":{"_crdt_document":"{\"document\":\"AAAG+8rWhBY7OwgshpIHvAWWA6AGqqsFAQkaAgECCgBKABIBAgoASgASAQIKAEpQCta8Bbi+Bea1BZyzBQKuDQLsDYQCCbySBwCSCaa1BUkoAycABAAnAAQAgQCEAIEAhAAnACgEJwAoCycABwAoAycAKAEnAIcAKAMnACgBJwCHACgDJwAoAScAIQGoAcQAwQDEAKEBqALEv5oD6pkDc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzbHVnZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlR0NBUyBTdHVkZW50IEhhbmRib29rZG9jdW1lbnRjb250ZW50PCEtLSB3cDpodG1sIC0tPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhOyBib3JkZXI6IDFweCBzb2xpZCAjMzMzOyBib3JkZXItcmFkaXVzOiA4cHg7IHBhZGRpbmc6IDI1cHggMzBweDsgbWFyZ2luOiA4MHB4IGF1dG8gMzBweCBhdXRvOyBtYXgtd2lkdGg6IDUwJTsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxLjFyZW07IGNvbG9yOiAjY2NjY2NjOyI+CiAgICDwn4eq8J+HuCBQYXJhIGxhIHZlcnNpw7NuIGVuIGVzcGHDsW9sIGRlbCBtYW51YWwgZGUgR0NBUywgCiAgICA8YSBocmVmPSJodHRwczovL2djYXMuaWUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDIvTWFudWFsLWRlLUdDQVMt4oCULVZlcnNpb24tZW4tRXNwYW5vbC5wZGYiIHN0eWxlPSJjb2xvcjogI2Q0YWYzNzsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IiB0YXJnZXQ9Il9ibGFuayI+aGFnYSBjbGljIGFxdcOtPC9hPi4gCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICM5OTk7IGZvbnQtc3R5bGU6IGl0YWxpYzsiPihTcGFuaXNoIHZlcnNpb24pPC9zcGFuPgogIDwvcD4KPC9kaXY+CjwhLS0gL3dwOmh0bWwgLS0+Cgo8IS0tIHdwOmh0bWwgLS0+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+R0NBUyBDb2xsZWdlIER1YmxpbiAtIFN0dWRlbnQgSGFuZGJvb2sgMjAyNTwvdGl0bGU+CjxzdHlsZT4KICAgIDpyb290IHsKICAgICAgICAtLWdjYXMtZ3JlZW46ICMyZTdkMzI7CiAgICAgICAgLS1nY2FzLXJlZDogI2M2MjgyODsKICAgICAgICAtLWdjYXMtZGFyazogIzFhMWExYTsKICAgICAgICAtLWdjYXMtbGlnaHQ6ICNmNWY1ZjU7CiAgICAgICAgLS1nY2FzLWJvcmRlcjogI2UwZTBlMDsKICAgIH0KICAgCiAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgfQogICAKICAgIC5oYW5kYm9vay13cmFwcGVyIHsKICAgICAgICBmb250LWZhbWlseTogJ0dlb3JnaWEnLCAnVGltZXMgTmV3IFJvbWFuJywgc2VyaWY7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1kYXJrKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgfQogICAKICAgIC5oYW5kYm9vay1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgfQogICAKICAgIC5oYW5kYm9vay1oZWFkZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CiAgIAogICAgLmhhbmRib29rLWhlYWRlciBoMSB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGZvbnQtc2l6ZTogMi41ZW07CiAgICAgICAgbWFyZ2luOiAwIDAgMTBweCAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWhlYWRlciAuc3VidGl0bGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLXJlZCk7CiAgICAgICAgZm9udC1zaXplOiAxLjNlbTsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWhlYWRlciAueWVhciB7CiAgICAgICAgZm9udC1zaXplOiAxLjFlbTsKICAgICAgICBjb2xvcjogIzY2NjsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stYnRuLWNvbnRhaW5lciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMzBweCBhdXRvOwogICAgfQogICAKICAgIC5oYW5kYm9vay1idG4gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogMTVweCAzMHB4OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxLjFlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWJ0bjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzFiNWUyMDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICB9CiAgIAogICAgLnRvYy1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtbGlnaHQpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdjYXMtYm9yZGVyKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogICAKICAgIC50b2MtY29udGFpbmVyIGgyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgIH0KICAgCiAgICAudG9jLWxpc3QgewogICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgY29sdW1uczogMjsKICAgICAgICBjb2x1bW4tZ2FwOiA0MHB4OwogICAgfQogICAKICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgIC50b2MtbGlzdCB7CiAgICAgICAgICAgIGNvbHVtbnM6IDE7CiAgICAgICAgfQogICAgfQogICAKICAgIC50b2MtbGlzdCBsaSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7CiAgICB9CiAgIAogICAgLnRvYy1saXN0IGEgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWRhcmspOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7CiAgICB9CiAgIAogICAgLnRvYy1saXN0IGE6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgIH0KICAgCiAgICAudG9jLXNlY3Rpb24gewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQogICAKICAgIC5zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OwogICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1nY2FzLWJvcmRlcik7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICB9CiAgIAogICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nY2FzLWdyZWVuKSwgIzRjYWY1MCk7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHBhZGRpbmc6IDIwcHggMzBweDsKICAgICAgICBtYXJnaW46IDQwcHggMCAzMHB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAgCiAgICAuc2VjdGlvbi1oZWFkZXIgaDIgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDEuOGVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CiAgIAogICAgaDMgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBmb250LXNpemU6IDEuNGVtOwogICAgICAgIG1hcmdpbi10b3A6IDM1cHg7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ2Nhcy1ib3JkZXIpOwogICAgfQogICAKICAgIGg0IHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1kYXJrKTsKICAgICAgICBmb250LXNpemU6IDEuMTVlbTsKICAgICAgICBtYXJnaW4tdG9wOiAyNXB4OwogICAgfQogICAKICAgIHAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEuMmVtOwogICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7CiAgICB9CiAgIAogICAgdWwsIG9sIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICB9CiAgIAogICAgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIH0KICAgCiAgICAuaW5mby1ib3ggewogICAgICAgIGJhY2tncm91bmQ6ICNlM2YyZmQ7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMTk3NmQyOwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7CiAgICB9CiAgIAogICAgLndhcm5pbmctYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmM2UwOwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2Y1N2MwMDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwOwogICAgfQogICAKICAgIC5pbXBvcnRhbnQtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmNlNGVjOwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZ2Nhcy1yZWQpOwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7CiAgICB9CiAgIAogICAgLmhpZ2hsaWdodC1ib3ggewogICAgICAgIGJhY2tncm91bmQ6ICNlOGY1ZTk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwOwogICAgfQogICAKICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMC45NWVtOwogICAgfQogICAKICAgIHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogMTJweCAxNXB4OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgIH0KICAgCiAgICB0ZCB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNXB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1nY2FzLWJvcmRlcik7CiAgICB9CiAgIAogICAgdHI6bnRoLWNoaWxkKGV2ZW4pIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWxpZ2h0KTsKICAgIH0KICAgCiAgICAuY29udGFjdC1pbmZvIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWxpZ2h0KTsKICAgICAgICBwYWRkaW5nOiAyNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAzMHB4IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgIH0KICAgCiAgICAuY29udGFjdC1pbmZvIHAgewogICAgICAgIG1hcmdpbjogNXB4IDA7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogICAKICAgIC5ncmFkZS1zY2FsZSB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICB9CiAgIAogICAgLmdyYWRlLWl0ZW0gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtbGlnaHQpOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogICAKICAgIC5ncmFkZS1pdGVtIHN0cm9uZyB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgfQogICAKICAgIC5wcm9ncmFtcy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTVweDsKICAgICAgICBtYXJnaW46IDIwcHggMDsKICAgIH0KICAgCiAgICAucHJvZ3JhbS1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWxpZ2h0KTsKICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICB9CiAgIAogICAgLmJhY2stdG8tdG9wIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgfQogICAKICAgIC5iYWNrLXRvLXRvcDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzFiNWUyMDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stZm9vdGVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OwogICAgICAgIG1hcmdpbi10b3A6IDUwcHg7CiAgICAgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWZvb3Rlci1pbm5lciB7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgCiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuaGFuZGJvb2stY29udGFpbmVyIHsKICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4OwogICAgICAgIH0KICAgICAgIAogICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OwogICAgICAgIH0KICAgICAgIAogICAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDsKICAgICAgICB9CiAgICAgICAKICAgICAgICAuaGFuZGJvb2staGVhZGVyIGgxIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhlbTsKICAgICAgICB9CiAgICB9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJoYW5kYm9vay13cmFwcGVyIj4KCjxoZWFkZXIgY2xhc3M9ImhhbmRib29rLWhlYWRlciIgaWQ9InRvcCI+CiAgICA8aDE+R0NBUyBDb2xsZWdlIER1YmxpbjwvaDE+CiAgICA8cCBjbGFzcz0ic3VidGl0bGUiPlRoZSBHbG9iYWwgQ2VudHJlIGZvciBBZHZhbmNlZCBTdHVkaWVzPC9wPgogICAgPHAgY2xhc3M9InllYXIiPlN0dWRlbnQgSGFuZGJvb2sgMjAyNTwvcD4KPC9oZWFkZXI+Cgo8ZGl2IGNsYXNzPSJoYW5kYm9vay1idG4tY29udGFpbmVyIj4KICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2Nhcy5pZS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMy9HQ0FTLVJlc2VhcmNoZXJzLVN0dWRlbnQtSGFuZGJvb2stVXBkYXRlZC0yMDI2LnBkZiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJoYW5kYm9vay1idG4iPlJlYWQgdGhlIEVudGlyZSBIYW5kYm9vazwvYT4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjb250YWN0LWluZm8iPgogICAgPHA+PHN0cm9uZz5BZGRyZXNzOjwvc3Ryb25nPiAzOC8zOSBGaXR6d2lsbGlhbSBTcXVhcmUsIER1YmxpbiAyLCBJcmVsYW5kPC9wPgogICAgPHA+PHN0cm9uZz5QaG9uZTo8L3N0cm9uZz4gKzM1MyA4NyA3NTQgMTQxNzwvcD4KICAgIDxwPjxzdHJvbmc+RW1haWw6PC9zdHJvbmc+IDxhIGhyZWY9Im1haWx0bzpjb250YWN0QGdjYXMuaWUiPmNvbnRhY3RAZ2Nhcy5pZTwvYT48L3A+CiAgICA8cD48c3Ryb25nPldlYnNpdGU6PC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vZ2Nhcy5pZSIgdGFyZ2V0PSJfYmxhbmsiPmdjYXMuaWU8L2E+PC9wPgo8L2Rpdj4KCjxuYXYgY2xhc3M9InRvYy1jb250YWluZXIiIGlkPSJ0b2MiPgogICAgPGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj4KICAgIDx1bCBjbGFzcz0idG9jLWxpc3QiPgogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPkludHJvZHVjdGlvbjwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjb3ZlcnZpZXciPk92ZXJ2aWV3ICZhbXA7IFBoaWxvc29waHk8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2FjY3JlZGl0YXRpb24iPkFjY3JlZGl0YXRpb248L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2ZhY3VsdHkiPkZhY3VsdHkgJmFtcDsgTGVhZGVyc2hpcDwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiAxOiBTdHVkZW50IExpZmU8L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2NvZGUtb2YtdHJ1c3QiPkNvZGUgb2YgVHJ1c3QgJmFtcDsgUGxlZGdlPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNhZG1pc3Npb25zIj5BZG1pc3Npb25zPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNub21hZGljLWxlYXJuaW5nIj5Ob21hZGljIExlYXJuaW5nPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiN0cmFuc2ZlciI+VHJhbnNmZXIgJmFtcDsgQ3JlZGl0IFJlY29nbml0aW9uPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNpbnRlcm5hdGlvbmFsIj5JbnRlcm5hdGlvbmFsIFN0dWRlbnRzPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDI6IEFjYWRlbWljIFBvbGljaWVzPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNwbGFnaWFyaXNtIj5QbGFnaWFyaXNtIFBvbGljeTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjc3VwZXJ2aXNpb24iPkFjYWRlbWljIFN1cGVydmlzaW5nPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNhdHRlbmRhbmNlIj5BdHRlbmRhbmNlICZhbXA7IEFic2VuY2U8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2dyYWRpbmciPkdyYWRpbmcgU2NhbGU8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3dpdGhkcmF3aW5nIj5XaXRoZHJhd2luZyBmcm9tIGEgQ291cnNlPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNkaXNjaXBsaW5hcnkiPkRpc2NpcGxpbmFyeSBQb2xpY3k8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gMzogRmluYW5jZXM8L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2ZpbmFuY2lhbC1haWQiPkZpbmFuY2lhbCBBaWQ8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2ZlZXMiPkFkZGl0aW9uYWwgRmVlczwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiA0OiBEZWdyZWUgUHJvZ3JhbXM8L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2JhLXByb2dyYW0iPkJBIFByb2dyYW08L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI21hLXByb2dyYW1zIj5NQSBQcm9ncmFtczwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjdGhlc2lzLXJlcXVpcmVtZW50cyI+VGhlc2lzIFJlcXVpcmVtZW50czwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiA1OiBQaEQgUHJvZ3JhbXM8L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3BoZC1vdmVydmlldyI+UGhEIE92ZXJ2aWV3PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNkaXNzZXJ0YXRpb24iPkRpc3NlcnRhdGlvbiBSZXF1aXJlbWVudHM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3BoZC1kZWZlbnNlIj5QaEQgRGVmZW5zZTwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiA2OiBTdHVkZW50IEFncmVlbWVudHM8L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2xpYWJpbGl0eSI+RXZlbnQgQXR0ZW5kYW5jZSAmYW1wOyBMaWFiaWxpdHk8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3R1aXRpb24tcGF5bWVudCI+VHVpdGlvbiBQYXltZW50IE9ibGlnYXRpb25zPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNyZWNvcmRpbmctcG9saWN5Ij5SZWNvcmRpbmcgJmFtcDsgTWVkaWEgUG9saWN5PC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDc6IENvbGxlZ2UgUG9saWNpZXM8L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2RhdGEtcHJvdGVjdGlvbiI+RGF0YSBQcm90ZWN0aW9uPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNlcXVhbC1vcHBvcnR1bml0eSI+RXF1YWwgT3Bwb3J0dW5pdHk8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2J1bGx5aW5nIj5BbnRpLUJ1bGx5aW5nIFBvbGljeTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYWktcG9saWN5Ij5BSSBpbiBBY2FkZW1pYyBXcml0aW5nPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNkaXNhYmlsaXR5Ij5EaXNhYmlsaXR5IEFjY29tbW9kYXRpb25zPC9hPjwvbGk+CiAgICA8L3VsPgo8L25hdj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5JbnRyb2R1Y3Rpb248L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0ib3ZlcnZpZXciPgogICAgPGgzPk92ZXJ2aWV3PC9oMz4KICAgIDxwPldlbGNvbWUgdG8gR0NBUyBDb2xsZWdlIER1YmxpbiwgTHRkLiBUaGUgR2xvYmFsIENlbnRyZSBmb3IgQWR2YW5jZWQgU3R1ZGllcyAoaGVuY2Vmb3J0aCAiR0NBUyIgb3IgIkdDQVMgQ29sbGVnZSIpLiBUaGlzIGlzIGEgc2hvcnRlbmVkIHZlcnNpb24gb2YgdGhlIEhhbmRib29rIG9uIHRoaXMgcGFnZS4gV2UgYXJlIGNvbW1pdHRlZCB0byBwcm92aWRpbmcgeW91IHdpdGggdGhlIHJlc291cmNlcyBuZWNlc3NhcnkgdG8gc3VwcG9ydCBhbmQgZW5jb3VyYWdlIHlvdXIgcmVzZWFyY2ggZmluZGluZ3MuIEFsdGhvdWdoIEdDQVMgaGFzIG9uZSBvZiB0aGUgYmVzdCBmYWN1bHRpZXMgYXZhaWxhYmxlIGluIHRoZSBmaWVsZHMgb2YgcGhpbG9zb3BoeSwgYXJ0IHBlcmZvcm1hbmNlLCBwc3ljaG9hbmFseXNpcywgdGhlb2xvZ3ksIHBvbGl0aWNzLCBhbmQgb3RoZXIgZmllbGRzLCBpdCBpcyB1cCB0byB0aGUgc3R1ZGVudCB0byBkZWNpZGUgaWYgR0NBUyBpcyB0aGUgYmVzdCBmaXQgZm9yIHRoZWlyIHJlc2VhcmNoIGFpbXMgYW5kIG9iamVjdGl2ZXMuPC9wPgogICAKICAgIDxwPkdDQVMgaXMgYSBjb2xsZWdlIG9mZmVyaW5nIEJBLCBNQSwgYW5kIFBoRCBkZWdyZWVzIG9ubGluZSBhbmQgYXQgdGltZXMgaW4tcGVyc29uIHNldHRpbmdzIGFuZCB0aHJvdWdoIG91ciBwdWJsaWNseSBhdmFpbGFibGUgcHJvZ3JhbXMgaW4gb3VyIEVTY2hvb2wuIFdlIGFyZSBjb21taXR0ZWQgdG8gZGVidC1mcmVlIGhpZ2gtcXVhbGl0eSBlZHVjYXRpb24gaW4gYW4gZWNvbG9naWNhbGx5LCBjb2xsYWJvcmF0aXZlIGFuZCBlY29ub21pY2FsbHkgc3VzdGFpbmFibGUgd2F5LjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJoaWdobGlnaHQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPk91ciBNaXNzaW9uOjwvc3Ryb25nPiBIaWdoLXF1YWxpdHksIGRlYnQtZnJlZSBlZHVjYXRpb24gdGhhdCBwcm92aWRlcyB0aGUgcmVzb3VyY2VzIGZvciBjcmVhdGl2ZSBhbmQgbmV3IHJlc2VhcmNoIHRoYXQgaXMgbm90IHBvc3NpYmxlIGluIGEgdHJhZGl0aW9uYWwgdW5pdmVyc2l0eSBzZXR0aW5nLiBXZSBiZWxpZXZlIHRoYXQgZWR1Y2F0aW9uIGlzIGluaGVyZW50bHkgYW4gaW50ZXJzdWJqZWN0aXZlIGV4cGVyaWVuY2UgdGhhdCByZXF1aXJlcyBzaGFyaW5nIGlkZWFzIG9wZW5seSwgcHJvcG9zaW5nIGFuZCBlc3RhYmxpc2hpbmcgbmV3IGFuZCBib2xkIGxpbmVzIG9mIHRoaW5raW5nIGFuZCBhY3Rpb25zIGluIHJpZ29yb3VzIHNjaWVudGlmaWMgd2F5cy48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5HQ0FTIGhvbGRzIGluIHJlc2lkZW5jZSBzZW1pbmFycyBmb3Igc2hvcnQgcGVyaW9kcyBvZiB0aW1lIGluIGRpZmZlcmVudCBsb2NhdGlvbnMuIFdlJ3ZlIGhlbGQgc2VtaW5hcnMgaW4gSGF2YW5hLCBDdWJhOyBCZXJsaW47IFByYWd1ZTsgQXRoZW5zOyBNYXJpYm9yLCBTbG92ZW5pYTsgUGFyaXM7IE5ldyBZb3JrOyBDaW5jaW5uYXRpLCBPaGlvOyBHcmFuZCBSYXBpZHMsIE1pY2hpZ2FuOyBNZXhpY28gQ2l0eTsgYW5kIEJvZ290w6EgQ29sb21iaWEsIHRvIG5hbWUgYSBmZXcuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImFjY3JlZGl0YXRpb24iPgogICAgPGgzPkFjY3JlZGl0YXRpb248L2gzPgogICAgPHA+R0NBUyBDb2xsZWdlIG9mZmVycyBzZXZlcmFsIGFjY3JlZGl0ZWQgZGVncmVlIHByb2dyYW1tZXMgaW4gdGhlIEV1cm9wZWFuIFVuaW9uIHRocm91Z2ggb3VyIHBhcnRuZXJzaGlwIHdpdGggV29vbGY6PC9wPgogICAKICAgIDxkaXYgY2xhc3M9InByb2dyYW1zLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+UGguRC4gaW4gdGhlIEh1bWFuaXRpZXMgYW5kIFNvY2lhbCBTY2llbmNlczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+UGguRC4gaW4gdGhlIE5hdHVyYWwgU2NpZW5jZXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPk1BIGluIFBoaWxvc29waHk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPk1BIGluIFBzeWNob2FuYWx5c2lzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NQSBpbiBUaGVvbG9neTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TUEgaW4gUG9saXRpY3M8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPk1hc3RlciBvZiBMYXdzIChMTC5NLik8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPkJBIGluIEludGVyZGlzY2lwbGluYXJ5IFN0dWRpZXM8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImZhY3VsdHkiPgogICAgPGgzPkxlYWRlcnNoaXAgJmFtcDsgRmFjdWx0eTwvaDM+CiAgICA8cD5HQ0FTIENvbGxlZ2UgaXMgb3duZWQgYW5kIG9wZXJhdGVkIGJ5IGZhY3VsdHksIHN0YWZmLCBhbmQgZ3JhZHVhdGVzIG9mIEdDQVMgQ29sbGVnZS4gT3VyIGdvdmVybmFuY2Ugc3RydWN0dXJlIGluY2x1ZGVzOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+Qm9hcmQgb2YgVHJ1c3RlZXM8L2xpPgogICAgICAgIDxsaT5BY2FkZW1pYyBDb3VuY2lsPC9saT4KICAgICAgICA8bGk+UXVhbGl0eSBBc3N1cmFuY2UgQ29tbWlzc2lvbjwvbGk+CiAgICAgICAgPGxpPkV0aGljcyBDb21taXR0ZWU8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5HQ0FTIHdhcyBmb3VuZGVkIGJ5IERyLiBDcmVzdG9uIERhdmlzIGluIDIwMTMgc3RlbW1pbmcgZnJvbSBhbiBpZGVhIGhlIGNvbmNlaXZlZCBpbiAxOTk5IHdoaWxlIGEgc3R1ZGVudCBhdCBZYWxlIFVuaXZlcnNpdHkuIEluIDIwMTggR0NBUyBtb3ZlZCBmcm9tIHRoZSBVbml0ZWQgU3RhdGVzIHRvIER1YmxpbiwgSXJlbGFuZCBmb3Igc2V2ZXJhbCByZWFzb24gc3VwcmVtZSBhbW9uZyB0aGVtIGJlaW5nIGFjYWRlbWljIGZyZWVkb20uIEltcG9ydGFudGx5LCBHQ0FTIENvbGxlZ2UgaXMgb3duZWQgYnkgdGhlIGZhY3VsdHkgYW5kIGdyYWR1YXRlcyB3aG8gc2hhcmUgb3duZXJzaGlwIHRvZ2V0aGVyLiBXaGVuIGEgc3R1ZGVudCBpcyBhY2NlcHRlZCBpbnRvIG91ciBDb2xsZWdlIHRoZXkgd2lsbCBiZSB0cmFpbmVkIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIGZhY3VsdHkgYW5kIHN0YWZmIHdpdGggdGhlIGludGVudCB0byBpbnZpdGUgdGhlIHN0dWRlbnQgaW50byB0aGUgb3duZXJzaGlwIGNvbW11bml0eSBvZiBHQ0FTIENvbGxlZ2UgRHVibGluIG9uY2UgdGhleSBncmFkdWF0ZS48L3A+CiAgIAogICAgPGg0PlB1YmxpY2F0aW9uczwvaDQ+CiAgICA8cD5XZSBhbHNvIHB1Ymxpc2ggYW4gb25saW5lIG1hZ2F6aW5lIGFuZCBwZWVyLXJldmlld2VkIGFjYWRlbWljIGpvdXJuYWwsIDxzdHJvbmc+VGhlIEdDQVMgUmV2aWV3PC9zdHJvbmc+LjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiAxOiBTdHVkZW50IENvbW11bml0eSBMaWZlICZhbXA7IFJlc3BvbnNpYmlsaXRpZXM8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iY29kZS1vZi10cnVzdCI+CiAgICA8aDM+VGhlIEdDQVMgQ29kZSBvZiBUcnVzdCBhbmQgUGxlZGdlPC9oMz4KICAgIDxwPkJlaW5nIGEgc3R1ZGVudC1yZXNlYXJjaGVyIGF0IEdDQVMgQ29sbGVnZSBEdWJsaW4gbWVhbnMgYmVsb25naW5nIHRvIG91ciBhY2FkZW1pYyBjb21tdW5pdHkuIE91ciBhY2FkZW1pYyBjb21tdW5pdHkgcmVxdWlyZXMgdGhhdCBhbGwgbWVtYmVycyBhbHdheXMgYWN0IGluIHRoZSBtb3N0IGVzdGVlbWVkIGV0aGljYWwgd2F5cyBwb3NzaWJsZS4gVGhpcyBpcyBiZWNhdXNlIGlmIGFuZCB3aGVuIGEgc3R1ZGVudCBncmFkdWF0ZXMgZnJvbSBHQ0FTIENvbGxlZ2UgRHVibGluLCB0aGUgZmFjdWx0eSBhbmQgQWx1bW5pIG1heSBpbnZpdGUgdGhlbSB0byBiZWNvbWUgY28tb3duZXJzIG9mIEdDQVMgQ29sbGVnZSBEdWJsaW4uPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+Q29yZSBWYWx1ZXM6PC9zdHJvbmc+IFdlIHRydXN0IHRoYXQgd2UgYXJlIGNyZWF0aW5nIGEgZGlmZmVyZW50IGtpbmQgb2YgSGlnaGVyIEVkdWNhdGlvbmFsIEluc3RpdHV0aW9uLCBvbmUgdGhhdCBpcyBub3QgY29uY2VybmVkIHdpdGggbWF0ZXJpYWwgZ2FpbiwgYnV0IHJhdGhlciBtYWtpbmcgYSBkaWZmZXJlbmNlIGZpcnN0IGFuZCBmb3JlbW9zdCBpbiB0aGUgbGl2ZXMgb2YgdGhlIHlvdW5nZXIgZ2VuZXJhdGlvbiBhbmQgZm9yIHRoZSBmdXR1cmUgZmxvdXJpc2hpbmcgb2YgYWxsIGxpdmluZyBiZWluZ3MgaW4gb3VyIHdvcmxkLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxwPkFsbCBzdHVkZW50cyBhbmQgbWVtYmVycyBvZiBvdXIgY29tbXVuaXR5IG11c3Qgc2lnbiBhbmQgYWdyZWUgdG8gYWJpZGUgYnkgb3VyIENvZGUgb2YgVHJ1c3QuIENvbnRhY3QgPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAZ2Nhcy5pZSI+Y29udGFjdEBnY2FzLmllPC9hPiB0byBzdWJtaXQgeW91ciBzaWduZWQgZm9ybS48L3A+CiAgIAogICAgPGg0PlN0dWRlbnQgRXhwZWN0YXRpb25zPC9oND4KICAgIDxwPkEgc3R1ZGVudCBpbiB0aGUgQkEsIE1BIG9yIFBoRCBwcm9ncmFtbWVzIGlzIGEgbWVtYmVyIG9mIGEgaGlnaC1xdWFsaXR5IGFjYWRlbWljIGNvbW11bml0eSB3aXRoaW4gdGhlIENvbGxlZ2UuIFNob3VsZCBhIHN0dWRlbnQgbm90IGxpdmUgdXAgdG8gb3VyIHdvcmxkLWNsYXNzIHJlcHV0YXRpb24gYnkgYWR2ZXJzZSBhY3Rpdml0aWVzIHN1Y2ggYXMgbHlpbmcsIGNoZWF0aW5nLCBvciBoYXJtaW5nIG90aGVycyBpbiBvdXIgY29tbXVuaXR5IG9yIG90aGVycyBvdXRzaWRlIG91ciBjb21tdW5pdHkgdGhlbiB0aGV5IHdpbGwgYmUgd2FybmVkIGFib3V0IHRoZWlyIGJlaGF2aW91ci4gU2hvdWxkIHN1Y2ggd2FybmluZ3Mgbm90IHN0b3AgdGhlIGRpc3Jlc3BlY3RmdWwgYmVoYXZpb3VyIGluIHF1ZXN0aW9uIHRoZW4gdGhlIHN0dWRlbnQgbWF5IGJlIHBsYWNlZCBvbiBwcm9iYXRpb24gb3IgY291bGQgZXZlbiBiZSByZW1vdmVkIGZyb20gdGhlIGNvbW11bml0eS48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYWRtaXNzaW9ucyI+CiAgICA8aDM+QWRtaXNzaW9uczwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+UmVhZCBCZWZvcmUgWW91IEFwcGx5Ojwvc3Ryb25nPiBHQ0FTIGlzIGFuIGFjY3JlZGl0ZWQgaW5zdGl0dXRpb24gb2YgaGlnaGVyIGVkdWNhdGlvbiBpbiB0aGUgRXVyb3BlYW4gVW5pb24gdmlhIG91ciBwYXJ0bmVyc2hpcCB3aXRoIFdvb2xmIFVuaXZlcnNpdHkuIFBsZWFzZSBiZSBhd2FyZSB0aGF0IG1vc3QgYnV0IG5vdCBhbGwgZGVncmVlIHByb2dyYW1tZXMgYXJlIGFjY3JlZGl0ZWQgYXQgdGhpcyB0aW1lLiBJZiB5b3UgaGF2ZSBhIHF1ZXN0aW9uIGFib3V0IHRoaXMgcGxlYXNlIGFzayB1cy48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5UbyBiZSBjb25zaWRlcmVkIGZvciBhZG1pc3Npb24gaW50byBHQ0FTIENvbGxlZ2UsIHByb3NwZWN0aXZlIHN0dWRlbnRzIG11c3QgY29tcGxldGUgdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3MgdGhyb3VnaCBQaGFzZSAxIGFuZCBQaGFzZSAyLiBJbmZvcm1hdGlvbiBhYm91dCB0aGVzZSBwaGFzZXMgY2FuIGJlIGZvdW5kIG9uIG91ciByZXNwZWN0aXZlIGRlZ3JlZSBwcm9ncmFtbWUgd2VicGFnZXMuPC9wPgogICAKICAgIDxoND5QcmVyZXF1aXNpdGVzIGZvciBBY2NlcHRhbmNlPC9oND4KICAgIDxwPk91ciByZXNlYXJjaGVycyBjb21lIGZyb20gc29tZSBvZiB0aGUgYmVzdCBhY2FkZW1pYyBpbnN0aXR1dGlvbnMgaW4gdGhlIHdvcmxkLCBpbmNsdWRpbmcgSm9obnMgSG9wa2lucyBVbml2ZXJzaXR5LCBDb2x1bWJpYSBVbml2ZXJzaXR5LCBMb25kb24gU2Nob29sIG9mIEVjb25vbWljcywgU3dhcnRobW9yZSwgWWFsZSBVbml2ZXJzaXR5LCBOZXcgWW9yayBVbml2ZXJzaXR5LCBDYW1icmlkZ2UsIE94Zm9yZCwgYW5kIENhc2UgV2VzdGVybiBSZXNlcnZlIFVuaXZlcnNpdHkuPC9wPgogICAKICAgIDxwPkhvd2V2ZXIsIGFzIGEgcmVzZWFyY2ggaW5zdGl0dXRlIGFuZCBjb2xsZWdlIHRoYXQgaXMgY2hhbGxlbmdpbmcgdHJhZGl0aW9uYWwgYWNhZGVtaWEsIHdlIGF0dHJhY3QgYXBwbGljYW50cyB3aG8gYnJpbmcgZGl2ZXJzZSBiYWNrZ3JvdW5kcywgZXhwZXJpZW5jZXMsIGFuZCBmcmVzaCBwZXJzcGVjdGl2ZXMgdG8gdGhlIGNvbnZlcnNhdGlvbiBhbmQgcmVzZWFyY2guPC9wPgogICAKICAgIDxoND5UdWl0aW9uIE92ZXJ2aWV3PC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5CQSBQcm9ncmFtbWU6PC9zdHJvbmc+IOKCrDMsNTAwIHBlciB5ZWFyPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5NQSAmYW1wOyBQaEQgUHJvZ3JhbW1lczo8L3N0cm9uZz4g4oKsNiwwMDAgcGVyIHllYXI8L2xpPgogICAgPC91bD4KICAgIDxwPk5lYXJseSAxMDAlIGZpbmFuY2lhbCBhaWQgcGFja2FnZXMgYXJlIG9mZmVyZWQgdG8gYWxsIFJlc2VhcmNoZXJzL1N0dWRlbnRzIHdobyBhcmUgYWNjZXB0ZWQuIEdDQVMncyBmaW5hbmNpYWwgYWlkIHBhY2thZ2VzIGNvbWUgaW4gdGhlIGZvcm0gb2YgdHVpdGlvbiByZWR1Y3Rpb24uPC9wPgogICAKICAgIDxoND5BcHBsaWNhdGlvbiBSZXZpZXc8L2g0PgogICAgPHA+QWxsIGFwcGxpY2F0aW9ucyBhcmUgcmV2aWV3ZWQgYnkgb3VyIEFkbWlzc2lvbnMgQ29tbWl0dGVlIGNoYWlyZWQgYnkgYSBHQ0FTIEZhY3VsdHkgbWVtYmVyLiBBY2NlcHRhbmNlIGlzIGhpZ2hseSBzZWxlY3RpdmUgZm9yIGFsbCBvdXIgZGVncmVlIHByb2dyYW1tZXMuIFBhcnQgb2Ygb3VyIGFzc2Vzc21lbnQgY3JpdGVyaWEgaXMgdG8gZW5zdXJlIEdDQVMgaGFzIHRoZSBjYXBhY2l0eSBhbmQgcmVzb3VyY2VzIHRvIGZ1bGx5IHN1cHBvcnQgdGhlIGFwcGxpY2FudCdzIHJlc2VhcmNoIHByb3Bvc2FsLjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJub21hZGljLWxlYXJuaW5nIj4KICAgIDxoMz5HQ0FTIE5vbWFkaWMgTGVhcm5pbmc6ICJUaGUgV29ybGQgaXMgb3VyIENsYXNzcm9vbSI8L2gzPgogICAgPHA+RnJvbSB0aGUgZmlyc3QgaW5jZXB0aW9uIG9mIFRoZSBHbG9iYWwgQ2VudGVyIGZvciBBZHZhbmNlZCBTdHVkaWVzIChHQ0FTKSB3ZSBoYXZlIGNyZWF0ZWQgbmV3IGFuZCBpbm5vdmF0aXZlIHNwYWNlcyBvZiBsZWFybmluZyBhbmQgYXBwbGllZCBjcmVhdGl2ZSBhbmQgY3JpdGljYWwgdGhpbmtpbmcuIFdlIGhhdmUgb2NjdXBpZWQgZG96ZW5zIG9mIHNwYWNlcyBhcm91bmQgdGhlIHdvcmxkIGZyb20gdGhlIENlbnRyZSBQb21waWRvdSBpbiBQYXJpcywgdG8gYSBtdXNldW0gaW4gQmVybGluLCBUaGUgQnJvb2tseW4gQ29tbW9ucyBpbiBOZXcgWW9yayBDaXR5LCB0byBUaGUgTWFydGluIEx1dGhlciBLaW5nLCBKciBDZW50cmUgaW4gSGF2YW5hLCBDdWJhLjwvcD4KICAgCiAgICA8aDQ+UHJldmlvdXMgR0NBUyBJbnN0aXR1dGVzICZhbXA7IENvbmZlcmVuY2VzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+MXN0IEFubnVhbCwgIkJhZGlvdSBvbiBCYWRpb3UiIChKdWx5IDIwMTQpPC9saT4KICAgICAgICA8bGk+Mm5kLCAiRGVtb2NyYWN5IFJpc2luZyIgQXRoZW5zLCBHcmVlY2UgKEp1bHkgMjAxNSk8L2xpPgogICAgICAgIDxsaT4zcmQsICJEZW1vY3JhY3kgUmlzaW5nIiBQaGlsYWRlbHBoaWEgKEp1bmUgMjAxNik8L2xpPgogICAgICAgIDxsaT40dGgsICJQcmFjdGljaW5nIEludGVsbGVjdHVhbCBSZXNpc3RhbmNlIiBNYXJpYm9yLCBTbG92ZW5pYSAoSnVseSAyMDE3KTwvbGk+CiAgICAgICAgPGxpPjV0aCwgIkFlc3RoZXRpYyBSZXNpc3RhbmNlICZhbXA7IFBlcmZvcm1hbmNlIiBGcmFuY2UgKEp1bmUgMjAxOCk8L2xpPgogICAgICAgIDxsaT42dGgsICJQaGlsb3NvcGh5IGFzIGEgTW9kZSBvZiBQcm9kdWN0aW9uIiBGcmFuY2UgKEp1bmUgMjAxOSk8L2xpPgogICAgICAgIDxsaT43dGgsICJBZXN0aGV0aWNzIGFuZCB0aGUgUG9saXRpY2FsIiBNZXhpY28gQ2l0eSAoT2N0IDIwMjEpPC9saT4KICAgICAgICA8bGk+R0NBUyBCZWxmYXN0IEV2ZW50ICgyMDIyKTwvbGk+CiAgICAgICAgPGxpPjh0aCwgIlRyYW5zZ3Jlc3NpdmUgVGhvdWdodCBhbmQgdGhlIENvdW50ZXJmZWl0cyBvZiBDcmVhdGl2aXR5IiBQcmFndWUgKEp1bmUgMjAyMyk8L2xpPgogICAgICAgIDxsaT45dGgsICJHQ0FTIFBhcmlzIFdlZWsiIChNYXkgMjAyNCk8L2xpPgogICAgICAgIDxsaT4xMHRoLCAiR0NBUyBQYXJpcyBXZWVrIiAoTWF5IDIwMjUpPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGRpdiBjbGFzcz0iaW5mby1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+RXZlbnQgQXR0ZW5kYW5jZTo8L3N0cm9uZz4gQWxsIHN0dWRlbnRzLCBmYWN1bHR5LCBhbmQgYXR0ZW5kZWVzIHdobyBhdHRlbmQgYW55IEdDQVMgQ29sbGVnZSBldmVudHMgaW4gcGVyc29uIG11c3QgZmlyc3Qgc2lnbiBhIExpYWJpbGl0eSBSZWxlYXNlIEZvcm0uIEFsbCBhdHRlbmRlZXMgd2lsbCBjb21taXQgdG8gbm9uLXZpb2xlbnQgYW5kIHJlc3BlY3RmdWwgbWVhbnMgb2YgZXhjaGFuZ2UuPC9wPgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0idHJhbnNmZXIiPgogICAgPGgzPlRyYW5zZmVycmluZyAmYW1wOyBDcmVkaXQgUmVjb2duaXRpb248L2gzPgogICAgPHA+U3R1ZGVudHMgd2hvIHRyYW5zZmVyIGludG8gVGhlIEdyYWR1YXRlIFNjaG9vbCBvZiBHQ0FTIENvbGxlZ2UgRHVibGluIGZyb20gb3RoZXIgaW5zdGl0dXRpb25zIG9mIGhpZ2hlciBlZHVjYXRpb24gbWF5IHRyYW5zZmVyIHByZXZpb3VzbHkgYXdhcmRlZCBjcmVkaXQgcmVjZWl2ZWQgZnJvbSBhbm90aGVyIGluc3RpdHV0aW9uIG9mIGhpZ2hlciBlZHVjYXRpb24gc28gbG9uZyBhcyB0aGF0IGluc3RpdHV0aW9uIGlzIGFjY3JlZGl0ZWQgYW5kIHlvdXIgdHJhbnNmZXIgaXMgYXV0aG9yaXNlZCBieSB0aGUgR0NBUyBDaGFuY2VsbG9yLjwvcD4KICAgCiAgICA8aDQ+Q3JlZGl0IFJlY29nbml0aW9uIGZvciBBbHRlcm5hdGl2ZSBMZWFybmluZyBFeHBlcmllbmNlczwvaDQ+CiAgICA8cD5HQ0FTIENvbGxlZ2UgRHVibGluIGhhcyBhIHByb2Nlc3MgYnkgd2hpY2ggd2UgcmVjb2duaXNlIGFsdGVybmF0aXZlIGxlYXJuaW5nIGV4cGVyaWVuY2VzIGluY2x1ZGluZyBlbXBsb3ltZW50IGFuZCBvdGhlciByZWxldmFudCBleHBlcmllbmNlcywgYW5kIGNhbiBncmFudCBjcmVkaXQgaG91cnMgZm9yIHN1Y2ggZXhwZXJpZW5jZXMgcHJvdmlkZWQgdGhhdCBkb2N1bWVudGF0aW9uIGlzIHByb3ZpZGVkLjwvcD4KICAgCiAgICA8aDQ+RHVhbCBFbnJvbG1lbnQgUG9saWN5PC9oND4KICAgIDxwPkl0IGlzIG5vdCB0aGUgbm9ybWFsIHByYWN0aWNlIG9mIEdDQVMgQ29sbGVnZSBEdWJsaW4gdG8gYWNjZXB0IGEgc3R1ZGVudCB3aG8gaXMgYWxzbyBlbnJvbGxlZCBpbiBhbm90aGVyIHVuaXZlcnNpdHkuIEhvd2V2ZXIsIGluIGV4Y2VwdGlvbmFsIGNhc2VzLCBhbiBhcHBsaWNhbnQgbWF5IHJlcXVlc3QgdGhlIEFwcGxpY2F0aW9ucyBDb21taXR0ZWUgdG8gY29uc2lkZXIgYWNjZXB0YW5jZSBhcyBhICJEdWFsIEVucm9sbGVkIiBzdHVkZW50LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJpbnRlcm5hdGlvbmFsIj4KICAgIDxoMz5JbnRlcm5hdGlvbmFsIFN0dWRlbnRzPC9oMz4KICAgCiAgICA8aDQ+RW5nbGlzaCBMYW5ndWFnZSBSZXF1aXJlbWVudHM8L2g0PgogICAgPHA+QXBwbGljYW50cyB3aG9zZSBmaXJzdCBsYW5ndWFnZSBpcyBub3QgRW5nbGlzaCBtdXN0IGRlbW9uc3RyYXRlIGV2aWRlbmNlIG9mIHRoZWlyIHByb2ZpY2llbmN5IGluIEVuZ2xpc2ggdmlhIG9uZSBvZiB0aGUgZm9sbG93aW5nOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+Q29tcGxldGVkIGEgbWluaW11bSBvZiBvbmUgeWVhciBlZHVjYXRpb24gaW4gYSBwcmVkb21pbmFudGx5IEVuZ2xpc2gtc3BlYWtpbmcgY291bnRyeSB3aXRoaW4gdGhlIHByZXZpb3VzIDE4IG1vbnRoczwvbGk+CiAgICAgICAgPGxpPldvcmsgZXhwZXJpZW5jZSBvZiBhdCBsZWFzdCAxOCBtb250aHMgaW4gYSBwcmVkb21pbmFudGx5IEVuZ2xpc2gtc3BlYWtpbmcgY291bnRyeTwvbGk+CiAgICAgICAgPGxpPlN1ZmZpY2llbnRseSBoaWdoIHF1YWxpZmljYXRpb24gc2NvcmUgb24gYXBwcm92ZWQgZXhhbWluYXRpb25zPC9saT4KICAgICAgICA8bGk+QSBkZWdyZWUgZnJvbSBhbiBhY2NyZWRpdGVkIGluc3RpdHV0aW9uIHRhdWdodCBpbiBFbmdsaXNoPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkFjY2VwdGVkIEVuZ2xpc2ggUHJvZmljaWVuY3kgVGVzdHM8L2g0PgogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5UZXN0PC90aD4KICAgICAgICAgICAgPHRoPk1pbmltdW0gU2NvcmU8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+SUVMVFM8L3RkPgogICAgICAgICAgICA8dGQ+R3JhZGUgNi41IG92ZXJhbGw8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+VE9FRkw8L3RkPgogICAgICAgICAgICA8dGQ+ODggSW50ZXJuZXQtYmFzZWQgLyA1NzAgcGFwZXItYmFzZWQ8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+Q2FtYnJpZGdlIFByb2ZpY2llbmN5L0FkdmFuY2VkPC90ZD4KICAgICAgICAgICAgPHRkPkdyYWRlIEMgb3IgYmV0dGVyIChDRUZSIExldmVsIEMxIG9yIEMyKTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5QZWFyc29uIFBURSBBY2FkZW1pYzwvdGQ+CiAgICAgICAgICAgIDx0ZD5NaW5pbXVtIDYzIChubyBzZWN0aW9uIGJlbG93IDU5KTwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KICAgIDxwPjxlbT5Ob3RlOiBUZXN0IHNjb3JlcyBhcmUgb25seSB2YWxpZCBmb3IgdHdvIHllYXJzIHByaW9yIHRvIGFwcGx5aW5nLjwvZW0+PC9wPgogICAKICAgIDxoND5WaXNhIFJlcXVpcmVtZW50czwvaDQ+CiAgICA8cD5CZWNhdXNlIHdlIG9mZmVyIGNvdXJzZXMgb25saW5lIGFuZCBpbiBsb3ctcmVzaWRlbnRpYWwgd2F5cywgYSBzdHVkZW50IHNob3VsZG4ndCBleHBlY3QgdmlzYSBiYWNraW5nIGZyb20gR0NBUyBDb2xsZWdlIER1Ymxpbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgc3R1ZGVudCB2aXNhcywgcGxlYXNlIGNvbnN1bHQgdGhlIERlcGFydG1lbnQgb2YgRm9yZWlnbiBBZmZhaXJzIHdlYnNpdGUuPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDI6IEdlbmVyYWwgQWNhZGVtaWMgUG9saWNpZXM8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0icGxhZ2lhcmlzbSI+CiAgICA8aDM+UGxhZ2lhcmlzbSBQb2xpY3k8L2gzPgogICAgPHA+UGxhZ2lhcmlzbSBpcyB0aGUgYWN0IG9yIGluc3RhbmNlIG9mIHVzaW5nIG9yIGNsb3NlbHkgaW1pdGF0aW5nIHRoZSBsYW5ndWFnZSBhbmQgdGhvdWdodHMgb2YgYW5vdGhlciBhdXRob3Igd2l0aG91dCBhdXRob3Jpc2F0aW9uIG9yIHRoZSBwcmVzZW50YXRpb24gb2YgdGhhdCBhdXRob3IncyB3b3JrIGFzIG9uZSdzIG93bi48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0iaW1wb3J0YW50LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5aZXJvIFRvbGVyYW5jZTo8L3N0cm9uZz4gR0NBUyBtb3N0IGZ1bmRhbWVudGFsbHkgaXMgYSBwbGFjZSBpbiB3aGljaCBib2xkIGFuZCBuZXcgcmVzZWFyY2ggaXMgZW5jb3VyYWdlZCwgYXMgd2VsbCBhcyB0aGUgY3JlYXRpb24gb2YgbmV3IHRoaW5raW5nIHBhcmFkaWdtcy4gUGxhZ2lhcmlzbSBpcyB0aGUgYWN0IG9mICJ1bnRoaW5raW5nIiBhbmQgYSBmb3JtIG9mIGludGVsbGVjdHVhbCBkaXNob25lc3R5LiBHQ0FTIHN0cm9uZ2x5IGNvbmRlbW5zIGFueSBhY3RzIG9mIHBsYWdpYXJpc20gdW5sZXNzIHRob3NlIGFjdHMgYXJlIHNob3duIHRvIGJlIGFuIGFydGlzdGljIG9yIHBlcmZvcm1hdGl2ZSBhY3QgdGhhdCBoYXMgYmVlbiBwcmUtYXBwcm92ZWQgYnkgZmFjdWx0eS48L3A+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJzdXBlcnZpc2lvbiI+CiAgICA8aDM+QWNhZGVtaWMgU3VwZXJ2aXNpbmc8L2gzPgogICAgPHA+QWxsIHN0dWRlbnRzIGFyZSBpbml0aWFsbHkgYXNzaWduZWQgYW4gQWNhZGVtaWMgU3VwZXJ2aXNvci4gVGhlIHN0dWRlbnQncyBBY2FkZW1pYyBTdXBlcnZpc29yIHdpbGwgZW5zdXJlIHRoZSBzdHVkZW50IHVuZGVyc3RhbmRzIHRoZSBhY2FkZW1pYyBleHBlY3RhdGlvbnMgYW5kIHBvbGljaWVzIHRocm91Z2ggdGhlIGluaXRpYWwgYWR2aXNvcnkgbWVldGluZy4gU3R1ZGVudHMgc2hvdWxkIG1lZXQgd2l0aCB0aGVpciBzdXBlcnZpc29yIGFib3V0IG9uY2UgYSBtb250aC48L3A+CiAgIAogICAgPGg0PkNoYW5naW5nIEFjYWRlbWljIFN1cGVydmlzb3JzPC9oND4KICAgIDxwPkFmdGVyIHRoZSBmaXJzdCB0ZXJtLCB0aGUgc3R1ZGVudCBtYXkgd2lzaCB0byBjaGFuZ2UgdGhlaXIgQWNhZGVtaWMgU3VwZXJ2aXNvci4gVG8gZG8gdGhpcywgZW1haWwgdGhlIENoYW5jZWxsb3Igb3IgUmVnaXN0cmFyLjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJhdHRlbmRhbmNlIj4KICAgIDxoMz5BdHRlbmRhbmNlIGFuZCBBYnNlbmNlIFBvbGljeTwvaDM+CiAgICA8cD5JbiBvcmRlciB0byBiZSBhIHN1Y2Nlc3NmdWwgc3R1ZGVudCBhdCBHQ0FTIENvbGxlZ2UgRHVibGluLCBhIHN0dWRlbnQgbXVzdCBhdHRlbmQ6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5MZWN0dXJlczwvbGk+CiAgICAgICAgPGxpPkNsYXNzZXM8L2xpPgogICAgICAgIDxsaT5Nb250aGx5IHBlZXIgZ3JvdXAgbWVldC11cHM8L2xpPgogICAgICAgIDxsaT5Nb250aGx5IGFjYWRlbWljIHN1cGVydmlzaW9uIG1lZXRpbmdzPC9saT4KICAgICAgICA8bGk+T3RoZXIgZXZlbnRzIGFzIHJlcXVpcmVkPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+TGl2ZSBDb3Vyc2UgUG9saWN5Ojwvc3Ryb25nPiBXZSBzdHJvbmdseSBlbmNvdXJhZ2UgYWxsIHN0dWRlbnRzIHRvIGF0dGVuZCBsaXZlIGNvdXJzZXMuIElmIHRoZSBjb3Vyc2UgaXMgaGFwcGVuaW5nIGJldHdlZW4gOCBhLm0uIGFuZCA4IHAubS4gaW4geW91ciBsb2NhbCB0aW1lIHpvbmUsIHdlIGV4cGVjdCBhdHRlbmRhbmNlLiBTdHVkZW50cyBtYXkgbWlzcyB1cCB0byAyIGxpdmUgY2xhc3Mgc2Vzc2lvbnMgd2l0aG91dCBwZW5hbHR5LjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxoND5BYnNlbmNlIFJlcXVpcmVtZW50czwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPklmIGFic2VudCwgcG9zdCBhIDI1MC13b3JkIHJlc3BvbnNlIHRvIHRoZSBsZWN0dXJlIHdpdGhpbiAzIGRheXMgYWZ0ZXIgdGhlIHJlY29yZGluZyBpcyBwb3N0ZWQ8L2xpPgogICAgICAgIDxsaT5MZWF2aW5nIG1vcmUgdGhhbiAyMCUgb2YgY2xhc3MgZWFybHkgY291bnRzIGFzIGFuIGFic2VuY2U8L2xpPgogICAgICAgIDxsaT4zIGFic2VuY2VzOiBGaW5hbCBncmFkZSByZWR1Y2VkIGJ5IDEgdW5pdDwvbGk+CiAgICAgICAgPGxpPjQgYWJzZW5jZXM6IEZpbmFsIGdyYWRlIHJlZHVjZWQgYnkgYW5vdGhlciB1bml0PC9saT4KICAgICAgICA8bGk+NSsgYWJzZW5jZXM6IEZhaWx1cmUgb2YgdGhlIGNvdXJzZTwvbGk+CiAgICA8L3VsPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImdyYWRpbmciPgogICAgPGgzPkdyYWRpbmcgU2NhbGU8L2gzPgogICAgPHA+VGhlIGdyYWRpbmcgc2NhbGUgaXMgZnJvbSAxIHRvIDEwIHdpdGggMTAgYmVpbmcgdGhlIGhpZ2hlc3QgZ3JhZGUgYWNoaWV2YWJsZTo8L3A+CiAgIAogICAgPGRpdiBjbGFzcz0iZ3JhZGUtc2NhbGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+MTA8L3N0cm9uZz4gLSBIaWdoZXN0IGFjaGlldmFibGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjk8L3N0cm9uZz4gLSBFeGNlbGxlbnQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjg8L3N0cm9uZz4gLSBWZXJ5IEdvb2Q8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjc8L3N0cm9uZz4gLSBHb29kPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz42PC9zdHJvbmc+IC0gUGFzc2FibGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjU8L3N0cm9uZz4gLSBGYWlsdXJlIChtYXkgcmV0YWtlKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+NDwvc3Ryb25nPiAtIEZhaWx1cmUgKG1heSByZXRha2UpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz4zPC9zdHJvbmc+IC0gRmFpbHVyZSAobm8gcmV0YWtlKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+Mjwvc3Ryb25nPiAtIEZhaWx1cmUgKG5vIHJldGFrZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjE8L3N0cm9uZz4gLSBGYWlsdXJlIChubyByZXRha2UpPC9kaXY+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ3aXRoZHJhd2luZyI+CiAgICA8aDM+V2l0aGRyYXdpbmcgZnJvbSBhIENvdXJzZTwvaDM+CiAgICA8cD5BIHN0dWRlbnQgbWF5IHdpdGhkcmF3IGZyb20gYW55IGNvdXJzZSBhdCBhbnkgdGltZTsgaG93ZXZlciwgdGhlcmUgYXJlIGRpZmZlcmVudCBjb25zZXF1ZW5jZXM6PC9wPgogICAKICAgIDx0YWJsZT4KICAgICAgICA8dGJvZHk+PHRyPgogICAgICAgICAgICA8dGg+V2l0aGRyYXdhbCBQZXJpb2Q8L3RoPgogICAgICAgICAgICA8dGg+Q29uc2VxdWVuY2U8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+QmVmb3JlIDJuZCBjbGFzcyBtZWV0aW5nPC90ZD4KICAgICAgICAgICAgPHRkPk5vIGNvbnNlcXVlbmNlcywgbm8gZ3JhZGUgb3IgY3JlZGl0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkJlZm9yZSA0dGggY2xhc3MgbWVldGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5DYW4gY2xhaW0gNTAlIG9mIHR1aXRpb24gZnVuZHMsIG5vIGdyYWRlIG9yIGNyZWRpdDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5CZWZvcmUgNXRoIGNsYXNzIG1lZXRpbmc8L3RkPgogICAgICAgICAgICA8dGQ+Tm8gdHVpdGlvbiByZWltYnVyc2VtZW50LCBubyBncmFkZSBvciBjcmVkaXQ8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+QWZ0ZXIgNnRoIGNsYXNzIG1lZXRpbmc8L3RkPgogICAgICAgICAgICA8dGQ+V2lsbCByZWNlaXZlIGEgZ3JhZGUgZm9yIHRoZSBjb3Vyc2U8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGlzY2lwbGluYXJ5Ij4KICAgIDxoMz5EaXNjaXBsaW5hcnkgUG9saWN5PC9oMz4KICAgIDxwPkFsbCBHQ0FTIENvbGxlZ2Ugc3R1ZGVudHMgYXJlIGV4cGVjdGVkIHRvIGNvbmR1Y3QgdGhlbXNlbHZlcyBpbiBhIHJlc3BlY3RmdWwgYW5kIHByb2Zlc3Npb25hbCBtYW5uZXIgYXQgYWxsIHRpbWVzLjwvcD4KICAgCiAgICA8aDQ+S2luZHMgb2YgRGlzY2lwbGluYXJ5IEFjdGlvbjwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPk9mZmljaWFsIFJlcHJpbWFuZDwvbGk+CiAgICAgICAgPGxpPkFjYWRlbWljIFByb2JhdGlvbjwvbGk+CiAgICAgICAgPGxpPlRlbXBvcmFyeSBTdXNwZW5zaW9uPC9saT4KICAgICAgICA8bGk+Rm9yY2VkIExlYXZlIG9mIEFic2VuY2U8L2xpPgogICAgICAgIDxsaT5TdXNwZW5zaW9uIGZvciAxIFllYXI8L2xpPgogICAgICAgIDxsaT5UZXJtaW5hdGlvbjwvbGk+CiAgICAgICAgPGxpPlRlcm1pbmF0aW9uIHdpdGhvdXQgdGhlIHByaXZpbGVnZSBvZiByZWFwcGx5aW5nPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PlByb2NlZHVyZTwvaDQ+CiAgICA8cD5TaG91bGQgYSBzdHVkZW50IGJlIHN1c3BlY3RlZCBvZiB2aW9sYXRpbmcgYSBwb2xpY3kgb3IgY29kZSBvZiBHQ0FTIENvbGxlZ2UsIHRoZXkgd2lsbCBiZSBmb3JtYWxseSBub3RpZmllZCBieSB0aGUgRGVhbiBvZiBTdHVkZW50IEFmZmFpcnMgdmlhIGVtYWlsLiBUaGUgc3R1ZGVudCBjYW4gYWRtaXQgdmlvbGF0aW9uIGluIHdyaXRpbmcsIG9yIGNsYWltIGlubm9jZW5jZSBhbmQgcmVjZWl2ZSBhIGZhaXIgZGVmZW5zZSBpbiBhbiBFdGhpY3MgQ29tbWl0dGVlIFZpb2xhdGlvbiBIZWFyaW5nLjwvcD4KICAgCiAgICA8aDQ+TGVhdmUgb2YgQWJzZW5jZTwvaDQ+CiAgICA8cD5BIHN0dWRlbnQgbWF5IGFwcGx5IGZvciBhIG1lZGljYWwgbGVhdmUgb2YgYWJzZW5jZSBhbmQvb3IgYSBwYXVzZSBpbiB0aGVpciBzdHVkaWVzLiBUaGUgY29zdCBvZiBhIGxlYXZlIG9mIGFic2VuY2UgaXMg4oKsNTAwLjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiAzOiBHQ0FTIENvbGxlZ2UgRWNvbm9teTwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJmaW5hbmNpYWwtYWlkIj4KICAgIDxoMz5GaW5hbmNpYWwgQWlkPC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJoaWdobGlnaHQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPjEwMCUgT0YgQUxMIEdDQVMgQ09MTEVHRSBTVFVERU5UUyBSRUNFSVZFIFNPTUUgRklOQU5DSUFMIEFJRDwvc3Ryb25nPjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxwPkdDQVMgQ29sbGVnZSBEdWJsaW4gaXMgY29tbWl0dGVkIHRvIHByb3ZpZGluZyB0aGUgaGlnaGVzdCBxdWFsaXR5IGVkdWNhdGlvbiBhdCB0aGUgbG93ZXN0IHBvc3NpYmxlIGNvc3QuIFRoZXJlIGFyZSB0aHJlZSB3YXlzIHdlIGhlbHAgc3R1ZGVudHM6PC9wPgogICAgPG9sPgogICAgICAgIDxsaT5GbGV4aWJsZSBwYXltZW50IHNjaGVkdWxlczwvbGk+CiAgICA8L29sPgogICAKICAgIDxoND5UaGUgV2FycmVuIFQuIERhdmlzLCBKciBTY2hvbGFyc2hpcDwvaDQ+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZmVlcyI+CiAgICA8aDM+QWRkaXRpb25hbCBGZWVzPC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5TdGF5IG9uIFRyYWNrLCBTdGF5IERlYnQtRnJlZTo8L3N0cm9uZz4gTk8gRVhUUkEgRkVFUyBJRiBZT1UgR1JBRFVBVEUgT04gVElNRS4gQWRkaXRpb25hbCBmZWVzIGFwcGx5IG9ubHkgaW4gZXhjZXB0aW9uYWwgY2lyY3Vtc3RhbmNlcy48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8aDQ+RmVlIFN1bW1hcnk8L2g0PgogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5GZWUgVHlwZTwvdGg+CiAgICAgICAgICAgIDx0aD5BcHBsaWVzIFRvPC90aD4KICAgICAgICAgICAgPHRoPldoZW4gRmVlcyBBcHBseTwvdGg+CiAgICAgICAgICAgIDx0aD5Nb250aGx5IENvc3Q8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+Q29udGludWF0aW9uIEZlZTwvdGQ+CiAgICAgICAgICAgIDx0ZD5NQSwgQkEsIFBoRDwvdGQ+CiAgICAgICAgICAgIDx0ZD5BZnRlciBncmFjZSBwZXJpb2QsIGZvciBlYWNoIGFkZGl0aW9uYWwgbW9udGg8L3RkPgogICAgICAgICAgICA8dGQ+4oKsMjUwPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkV4dHJhb3JkaW5hcnkgU3VwZXJ2aXNpb24gKE1BKTwvdGQ+CiAgICAgICAgICAgIDx0ZD5NQSB0aGVzaXMgd3JpdGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5JZiBzdXBlcnZpc2lvbiBleGNlZWRzIDMgbW9udGhzPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5FeHRyYW9yZGluYXJ5IFN1cGVydmlzaW9uIChQaEQpPC90ZD4KICAgICAgICAgICAgPHRkPlBoRDwvdGQ+CiAgICAgICAgICAgIDx0ZD5EdXJpbmcgMyBub24tYnVkZ2V0ZWQgbW9udGhzIChzdW1tZXIgYnJlYWspPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BZGRpdGlvbmFsIFN1cGVydmlzb3IgKFBoRCk8L3RkPgogICAgICAgICAgICA8dGQ+UGhEIChZZWFyIDIgb3IgMyk8L3RkPgogICAgICAgICAgICA8dGQ+Rm9yIGVhY2ggbW9udGggd2l0aCBhZGRpdGlvbmFsIHN1cGVydmlzb3I8L3RkPgogICAgICAgICAgICA8dGQ+4oKsMTUwPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgogICAKICAgIDxoND5Db250aW51YXRpb24gRmVlczwvaDQ+CiAgICA8cD5HQ0FTIHByb3ZpZGVzIGNsZWFybHkgZGVmaW5lZCB0aW1lbGluZXMgZm9yIGRlZ3JlZSBjb21wbGV0aW9uOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBwcm9ncmFtczo8L3N0cm9uZz4gMTIgbW9udGhzPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CQSBhbmQgUGhEIHByb2dyYW1zOjwvc3Ryb25nPiAzNiBtb250aHM8L2xpPgogICAgPC91bD4KICAgIDxwPkEgdHdvLW1vbnRoIGdyYWNlIHBlcmlvZCBpcyBncmFudGVkIGF0IG5vIGFkZGl0aW9uYWwgY29zdC4gQWZ0ZXIgdGhpcywgYSBtb250aGx5IGNvbnRpbnVhdGlvbiBmZWUgb2Yg4oKsMjAwIHdpbGwgYmUgY2hhcmdlZC48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gNDogQkEgYW5kIE1BIERlZ3JlZSBQcm9ncmFtbWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImJhLXByb2dyYW0iPgogICAgPGgzPkJhY2hlbG9yIG9mIEludGVyZGlzY2lwbGluYXJ5IFN0dWRpZXMgKEJBLUlTKTwvaDM+CiAgICA8cD48c3Ryb25nPkRpcmVjdG9yOjwvc3Ryb25nPiBNYXJpbyBEJ0FtYXRvPC9wPgogICAgPHA+UGxlYXNlIHJlZmVyIHRvIHRoZSBHQ0FTIHdlYnNpdGUgZm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgcHJvZ3JhbW1lLjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJtYS1wcm9ncmFtcyI+CiAgICA8aDM+TUEgUHJvZ3JhbW1lczwvaDM+CiAgICA8cD5UaGUgTUEgcHJvZ3JhbW1lcyBhcmUgYmFzZWQgb24gY291cnNld29yayBhbmQgcmVzZWFyY2ggYW5kIHJhbmdlIGluIGxlbmd0aCBmcm9tIG9uZSB0byB0d28geWVhcnMuIFN0dWRlbnRzIGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSA5MCBFQ1RTIGNyZWRpdCBob3Vycywgd2hpY2ggaW5jbHVkZTo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkNvdXJzZXdvcms8L2xpPgogICAgICAgIDxsaT5Nb250aGx5IHN1cGVydmlzaW9uPC9saT4KICAgICAgICA8bGk+TUEgVGhlc2lzIHBlZXIgbWVudG9yIGhvdXJzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PlByb2dyYW1tZSBEaXJlY3RvcnM8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFBoaWxvc29waHk6PC9zdHJvbmc+IENyZXN0b24gRGF2aXMsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+TUEgaW4gUHN5Y2hvYW5hbHlzaXM6PC9zdHJvbmc+IEZsb3JpYW4gS2xlaW5hdSwgUGhEPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBpbiBQb2xpdGljczo8L3N0cm9uZz4gRnJhbmNpc2NvIEdvbnphbGVzLCBQaEQ8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFRoZW9sb2d5Ojwvc3Ryb25nPiBCYXJyeSBUYXlsb3IsIFBoRDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5TdXBlcnZpc2VkIEd1aWRlZCBSZXNlYXJjaDwvaDQ+CiAgICA8cD5UaGUgY29yZSBvZiB0aGlzIHByb2dyYW1tZSBpcyBndWlkZWQgYW5kIHN1cGVydmlzZWQgaW5kaXZpZHVhbCByZXNlYXJjaCBmcm9tIG9uZSBvZiBHQ0FTIENvbGxlZ2UncyBmYWN1bHR5IG1lbWJlcnMuIFlvdSBhcmUgcmVxdWlyZWQgdG8gbWVldCBhdCBsZWFzdCBvbmNlIHBlciBtb250aCB3aXRoIHlvdXIgYXNzaWduZWQgQWNhZGVtaWMgU3VwZXJ2aXNvci48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBTaG91bGQgYSBzdHVkZW50IHNlZWsgYSBzdXBlcnZpc29yIG91dHNpZGUgdGhlIGNvcmUgR0NBUyBmYWN1bHR5LCB0aGV5IG11c3QgZmlyc3QgYXJyYW5nZSB0aGlzIHZpYSB0aGUgQ2hhbmNlbGxvciwgRHIuIENyZXN0b24gRGF2aXMuIFRoZXJlIHdpbGwgbm9ybWFsbHkgYmUgYW4gZXh0cmEgZmVlIG9mIOKCrDEwMCBwZXIgbW9udGggZm9yIGV4dGVybmFsIHN1cGVydmlzb3JzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxoND5NYXN0ZXJzIENvbXByZWhlbnNpdmUgRXhhbWluYXRpb24gKE1DRSk8L2g0PgogICAgPHA+RWFjaCBzdHVkZW50IHdpbGwgYmUgcmVxdWlyZWQgdG8gdGFrZSBhbmQgc3VjY2Vzc2Z1bGx5IHBhc3MgdGhlIE1DRS4gVGhpcyBleGFtaW5hdGlvbiBpcyBhIGZvdXItaG91ciwgd3JpdHRlbiBleGFtaW5hdGlvbi4gU3R1ZGVudHMgY2FuIHVzZSBleHRlcm5hbCBtYXRlcmlhbHMgZHVyaW5nIHRoaXMgZXhhbWluYXRpb24uPC9wPgogICAgPHVsPgogICAgICAgIDxsaT5UaGUgZXhhbWluYXRpb24gY29uc2lzdHMgb2Ygb25lIG9yIHR3byBxdWVzdGlvbnMgb24gdGhlIHJlc2VhcmNoIHRvcGljPC9saT4KICAgICAgICA8bGk+TXVzdCBiZSBwcm9jdG9yZWQgYnkgYSBHQ0FTIGZhY3VsdHkgbWVtYmVyIG9yIGFwcHJvdmVkIHByb2N0b3I8L2xpPgogICAgICAgIDxsaT5HcmFkZWQgYXMgIlBhc3MiIG9yICJGYWlsIjwvbGk+CiAgICAgICAgPGxpPklmIGZhaWxlZCwgY2FuIHJldGFrZSBhZnRlciAzMCBkYXlzPC9saT4KICAgICAgICA8bGk+SWYgdGhlIHJldGFrZSBpcyBmYWlsZWQsIHRoZSBzdHVkZW50IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBwcm9ncmFtbWU8L2xpPgogICAgPC91bD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0aGVzaXMtcmVxdWlyZW1lbnRzIj4KICAgIDxoMz5NQSBUaGVzaXMgUmVxdWlyZW1lbnRzPC9oMz4KICAgCiAgICA8aDQ+TGVuZ3RoPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+TWluaW11bTogMjAsMDAwIHdvcmRzPC9saT4KICAgICAgICA8bGk+TWF4aW11bTogNDAsMDAwIHdvcmRzIChleGNsdWRpbmcgYmlibGlvZ3JhcGh5IGFuZCBhcHBlbmRpY2VzKTwvbGk+CiAgICAgICAgPGxpPkFic29sdXRlIG1heGltdW06IDUwLDAwMCB3b3JkczwvbGk+CiAgICAgICAgPGxpPkZvb3Rub3RlcyAmYW1wOyBjaXRhdGlvbnM6IFNob3VsZCBub3QgZXhjZWVkIDIwJSBvZiB0aGUgVGhlc2lzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkZvcm1hdDwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkVsZW1lbnQ8L3RoPgogICAgICAgICAgICA8dGg+UmVxdWlyZW1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TWFyZ2luczwvdGQ+CiAgICAgICAgICAgIDx0ZD4xIGluY2ggb24gYWxsIHNpZGVzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQ8L3RkPgogICAgICAgICAgICA8dGQ+VGltZXMgTmV3IFJvbWFuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQgU2l6ZTwvdGQ+CiAgICAgICAgICAgIDx0ZD4xMnB0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNwYWNpbmc8L3RkPgogICAgICAgICAgICA8dGQ+RG91YmxlPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkNpdGF0aW9uIFN0eWxlPC90ZD4KICAgICAgICAgICAgPHRkPkNoaWNhZ28sIE1MQSwgb3IgQVBBIChtdXN0IGJlIGNvbnNpc3RlbnQgdGhyb3VnaG91dCk8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+CiAgIAogICAgPGg0PlRoZXNpcyBEZWZlbnNlPC9oND4KICAgIDxwPlRoZSBNQSBEZWZlbnNlIGlzIGV4cGVjdGVkIHRvIGxhc3QgYWJvdXQgb25lIGhvdXI6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT41IG1pbnV0ZXM6IEludHJvZHVjdGlvbiBieSBBY2FkZW1pYyBTdXBlcnZpc29yPC9saT4KICAgICAgICA8bGk+MTAgbWludXRlczogU3R1ZGVudCBzdW1tYXJpc2VzIHRoZXNpczwvbGk+CiAgICAgICAgPGxpPjIwIG1pbnV0ZXM6IENvbW1pdHRlZSBleGFtaW5hdGlvbjwvbGk+CiAgICAgICAgPGxpPjUgbWludXRlczogU3R1ZGVudCBzdW1tYXJ5PC9saT4KICAgICAgICA8bGk+MTUgbWludXRlczogQ29tbWl0dGVlIHByaXZhdGUgZGlzY3Vzc2lvbjwvbGk+CiAgICAgICAgPGxpPjUgbWludXRlczogR3JhZGUgYW5ub3VuY2VtZW50PC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkRlZmVuc2UgR3JhZGVzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5BLjwvc3Ryb25nPiBQYXNzIHdpdGggRGlzdGluY3Rpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkIuPC9zdHJvbmc+IFBhc3Mgd2l0aG91dCBSZXZpc2lvbjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Qy48L3N0cm9uZz4gUGFzcyB3aXRoIE1pbm9yIFJldmlzaW9ucyAoMTgwIGRheXMgdG8gYWRkcmVzcyk8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkQuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNYWpvciBSZXZpc2lvbnMgKDE4MCBkYXlzIHRvIGFkZHJlc3MpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5FLjwvc3Ryb25nPiBGYWlsIChidXQgc3R1ZGVudCBjYW4gcmVkZWZlbmQgYWZ0ZXIgMzY1IGRheXMpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5GLjwvc3Ryb25nPiBGYWlsICh3aXRoIG5vIGZ1cnRoZXIgb3B0aW9ucyk8L2xpPgogICAgPC91bD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA1OiBQaEQgUHJvZ3JhbW1lczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJwaGQtb3ZlcnZpZXciPgogICAgPGgzPlBoRCBPdmVydmlldzwvaDM+CiAgICA8cD5HQ0FTJ3MgUGguRC4gcHJvZ3JhbW1lcyBzdHJpdmUgdG8gYmUgdGhlIGJlc3QgcmVzZWFyY2ggcHJvZ3JhbW1lIG9mIGl0cyBraW5kIGluIHRoZSB3b3JsZC48L3A+CiAgIAogICAgPGg0PkF2YWlsYWJsZSBQcm9ncmFtbWVzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5QaEQgaW4gdGhlIEh1bWFuaXRpZXMgYW5kIFNvY2lhbCBTY2llbmNlczwvc3Ryb25nPiDigJQgRGlyZWN0b3I6IENyZXN0b24gRGF2aXMsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+UGhEIGluIHRoZSBOYXR1cmFsIFNjaWVuY2VzIChNYXRoZW1hdGljcyBhbmQgUGh5c2ljcyk8L3N0cm9uZz4g4oCUIERpcmVjdG9yOiBGZXJuYW5kbyBUb2htw6ksIFBoRDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5CYXNpYyBSZXF1aXJlbWVudHM8L2g0PgogICAgPHA+R0NBUyBQaEQgcHJvZ3JhbW1lcyBhcmUgMyB5ZWFycyBpbiBsZW5ndGg6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPlllYXIgMTo8L3N0cm9uZz4gUmVzZWFyY2ggZGVzaWduLCBtZXRob2RvbG9neSBkZXZlbG9wbWVudCwgbGl0ZXJhdHVyZSByZXZpZXcsIGlkZW50aWZ5aW5nIHJlc2VhcmNoICJnYXAsIiBhbmQgZGV2ZWxvcGluZyBhIHRlbnRhdGl2ZSBoeXBvdGhlc2lzLiBPbmUgcmVxdWlyZWQgY291cnNlOiAiTWV0aG9kb2xvZ2llcyBhbmQgUmVzZWFyY2ggVGVjaG5pcXVlcyIgKG1lZXRzIDQgdGltZXMgcGVyIHllYXIpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDI6PC9zdHJvbmc+IFByb21vdGlvbiB0byAiUGhEIENhbmRpZGF0ZSIgc3RhdHVzIGFuZCBhc3NpZ25tZW50IG9mIGFuIGV4cGVydCBzdXBlcnZpc29yPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDM6PC9zdHJvbmc+IERpc3NlcnRhdGlvbiBjb21wbGV0aW9uIGFuZCBkZWZlbnNlPC9saT4KICAgIDwvdWw+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGlzc2VydGF0aW9uIj4KICAgIDxoMz5QaEQgRGlzc2VydGF0aW9uIFJlcXVpcmVtZW50czwvaDM+CiAgICA8cD5UaGUgUGhEIERpc3NlcnRhdGlvbiBpcyBhIHNjaWVudGlmaWMgZG9jdW1lbnQgY29uc2lzdGluZyBvZiBzdXN0YWluZWQsIHJpZ29yb3VzLCBhbmQgY29oZXJlbnQgcmVzZWFyY2ggdGhhdCBjb250cmlidXRlcyBzb21ldGhpbmcgb3JpZ2luYWwgdG8gYSBmaWVsZCBvciBmaWVsZHMgb2YgaW5xdWlyeS48L3A+CiAgIAogICAgPGg0PkZvcm1hdDwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkVsZW1lbnQ8L3RoPgogICAgICAgICAgICA8dGg+UmVxdWlyZW1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TGVuZ3RoPC90ZD4KICAgICAgICAgICAgPHRkPn44MCwwMDAgd29yZHMgKG1heCAxMDAsMDAwIGV4Y2x1ZGluZyBiaWJsaW9ncmFwaHkpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPk1hcmdpbnM8L3RkPgogICAgICAgICAgICA8dGQ+MS41IGluY2ggb24gYWxsIHNpZGVzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQ8L3RkPgogICAgICAgICAgICA8dGQ+VGltZXMgTmV3IFJvbWFuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQgU2l6ZTwvdGQ+CiAgICAgICAgICAgIDx0ZD4xMnB0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNwYWNpbmc8L3RkPgogICAgICAgICAgICA8dGQ+RG91YmxlPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InBoZC1kZWZlbnNlIj4KICAgIDxoMz5QaEQgRGlzc2VydGF0aW9uIERlZmVuc2U8L2gzPgogICAgPHA+VGhlIFBoRCBEaXNzZXJ0YXRpb24gRGVmZW5zZSBtdXN0IGJlIHNjaGVkdWxlZCBhdCBsZWFzdCA5MCBkYXlzIGFoZWFkLiBBbGwgY29tbWl0dGVlIG1lbWJlcnMgbXVzdCBiZSBwcmVzZW50IGVpdGhlciBpbiBwZXJzb24gb3IgdmlhIGxpdmUgb25saW5lIG1lZXRpbmcuPC9wPgogICAKICAgIDxoND5EZWZlbnNlIEZvcm1hdDwvaDQ+CiAgICA8b2w+CiAgICAgICAgPGxpPkludHJvZHVjdGlvbjwvbGk+CiAgICAgICAgPGxpPlN0dWRlbnQgcHJlc2VudHMgMy01IG1pbnV0ZSBzdW1tYXJ5PC9saT4KICAgICAgICA8bGk+UXVlc3Rpb25zIGFuZCBleGFtaW5hdGlvbiBieSBldmFsdWF0b3JzPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCByZXBsaWVzIHRvIGV4YW1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCBsZWF2ZXMgd2hpbGUgZXhhbWluZXJzIGNvbnZlbmU8L2xpPgogICAgICAgIDxsaT5HcmFkZSBkZXRlcm1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCByZXR1cm5zIGFuZCBncmFkZSBpcyBkZWxpdmVyZWQ8L2xpPgogICAgICAgIDxsaT5NZWV0aW5nIGFkam91cm5lZDwvbGk+CiAgICA8L29sPgogICAKICAgIDxoND5HcmFkZSBTY2FsZTwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+QS48L3N0cm9uZz4gUGFzcyB3aXRoIERpc3RpbmN0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CLjwvc3Ryb25nPiBQYXNzIHdpdGhvdXQgUmV2aXNpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkMuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNaW5vciBSZXZpc2lvbiAoOTAgZGF5cyB0byBzdWJtaXQgcmV2aXNpb25zKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RC48L3N0cm9uZz4gUGFzcyB3aXRoIE1ham9yIFJldmlzaW9uICgxODAgZGF5cyB0byBzdWJtaXQgcmV2aXNpb25zKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RS48L3N0cm9uZz4gRmFpbCAod2l0aCByZXN1Ym1pc3Npb24gcG9zc2libGUpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5GLjwvc3Ryb25nPiBGYWlsICh3aXRob3V0IHJlc3VibWlzc2lvbik8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+U3VibWlzc2lvbjwvaDQ+CiAgICA8cD5PbmNlIHBhc3NlZCwgdGhlIHN0dWRlbnQgbXVzdCBzdWJtaXQgdGhlIGZpbmFsIGNvcHkgd2l0aGluIDE4MCBkYXlzLiBGYWlsdXJlIHRvIHN1Ym1pdCB3aXRoaW4gMTgwIGRheXMgd2lsbCByZXN1bHQgaW4gdGhlIGRlZ3JlZSBiZWluZyByZXZva2VkLjwvcD4KICAgCiAgICA8aDQ+UmVzZWFyY2ggQmV5b25kIDMgWWVhcnM8L2g0PgogICAgPHA+SWYgZGlzc2VydGF0aW9uIHJlc2VhcmNoIHRha2VzIGxvbmdlciB0aGFuIDMgeWVhcnMsIHR1aXRpb24gZmVlcyByZW1haW4gdGhlIHNhbWUgYXMgdGhlIGZpbmFsIHllYXIgb2Ygc3R1ZHkuIEFmdGVyIFllYXIgNCwgdGhlIENoYW5jZWxsb3Igd2lsbCBhc3Nlc3MgdGhlIGZlYXNpYmlsaXR5IG9mIGNvbXBsZXRpb24uPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDY6IFN0dWRlbnQgQWdyZWVtZW50cyAmYW1wOyBPYmxpZ2F0aW9uczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJsaWFiaWxpdHkiPgogICAgPGgzPkV2ZW50IEF0dGVuZGFuY2UgJmFtcDsgTGlhYmlsaXR5PC9oMz4KICAgIDxwPldoZW4gYSBzdHVkZW50IGF0dGVuZHMgYSBHQ0FTIGV2ZW50IGluIHBlcnNvbiwgdGhleSBkbyBzbyA8c3Ryb25nPiJhdCB0aGVpciBvd24gcmlzay4iPC9zdHJvbmc+PC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+TGlhYmlsaXR5IFdhaXZlcjo8L3N0cm9uZz4gQnkgYXR0ZW5kaW5nIGFueSBHQ0FTIENvbGxlZ2UgRHVibGluIG9yIEdsb2JhbCBDZW50cmUgZm9yIEFkdmFuY2VkIFN0dWRpZXMgKCJHQ0FTIikgZXZlbnQgaW4gcGVyc29uLCBzdHVkZW50cyBhZ3JlZSB0aGF0IGluIHRoZSB1bmV4cGVjdGVkIGV2ZW50IHRoYXQgdGhleSBhcmUgaW5qdXJlZCBvciBodXJ0LCB0aGV5IHdpbGwgbm90IGhvbGQgR0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIG9yIHRoZSBHbG9iYWwgQ2VudHJlIGZvciBBZHZhbmNlZCBTdHVkaWVzICgiR0NBUyIpIHJlc3BvbnNpYmxlIGZvciBhbnkgaW5qdXJpZXMsIGRhbWFnZXMsIG9yIGxvc3NlcyBpbmN1cnJlZC48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5BbGwgc3R1ZGVudHMsIGZhY3VsdHksIGFuZCBhdHRlbmRlZXMgd2hvIGF0dGVuZCBhbnkgR0NBUyBDb2xsZWdlIGV2ZW50cyBpbiBwZXJzb24gbXVzdCBmaXJzdCBzaWduIGEgTGlhYmlsaXR5IFJlbGVhc2UgRm9ybSBhY2tub3dsZWRnaW5nIHRoaXMgcG9saWN5LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0dWl0aW9uLXBheW1lbnQiPgogICAgPGgzPlR1aXRpb24gUGF5bWVudCBPYmxpZ2F0aW9uczwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0iaW1wb3J0YW50LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5QYXltZW50IFJlcXVpcmVtZW50Ojwvc3Ryb25nPiBTdHVkZW50cyBhZ3JlZSB0byBwYXkgdGhlaXIgdHVpdGlvbiBvbiB0aW1lIGFjY29yZGluZyB0byB0aGUgcGF5bWVudCBzY2hlZHVsZSBlc3RhYmxpc2hlZCB1cG9uIGVucm9sbG1lbnQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0Pk5vbi1QYXltZW50IENvbnNlcXVlbmNlczwvaDQ+CiAgICA8cD5TaG91bGQgYSBzdHVkZW50IG5vdCBwYXkgdGhlaXIgdHVpdGlvbiBhZnRlciByZWNlaXZpbmcgYSB3YXJuaW5nIGFuZCBhZnRlciBtb3JlIHRoYW4gPHN0cm9uZz42MCBkYXlzPC9zdHJvbmc+IHdpdGhvdXQgcHJpb3IgYXBwcm92YWwgZnJvbSB0aGUgQ2hhbmNlbGxvciwgdGhleSB3aWxsIGJlIHJlbW92ZWQgZnJvbSBlbnJvbGxtZW50IGFuZCBmcm9tIEdDQVMuPC9wPgogICAKICAgIDxoND5UdWl0aW9uIENvbW1pdG1lbnQgQWZ0ZXIgQWNjZXB0YW5jZTwvaDQ+CiAgICA8cD5JZiB5b3UgYWdyZWUgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIG91ciBhY2NlcHRhbmNlIG9mZmVyLCBHQ0FTIG5lZWRzIHRvIHJlbHkgb24geW91IHRvIHBheSBmb3IgeW91ciB0dWl0aW9uIGluIGEgdGltZWx5IG1hbm5lciBhcyBhZ3JlZWQuIFRoaXMgY29tbWl0bWVudCBpcyBlc3NlbnRpYWwgZm9yIEdDQVMgdG8gbWFpbnRhaW4gaXRzIG9wZXJhdGlvbnMgYW5kIGNvbnRpbnVlIHByb3ZpZGluZyBxdWFsaXR5IGVkdWNhdGlvbi48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBTaG91bGQgeW91IHdhbnQgdG8gc3RvcCB5b3VyIHN0dWRpZXMgYWZ0ZXIgMzAgZGF5cywgeW91IGFyZSBzdGlsbCBvYmxpZ2F0ZWQgdG8gcGF5IGZvciB5b3VyIGVudGlyZSB0dWl0aW9uIGFtb3VudCB0aGF0IHlvdSBoYXZlIGFncmVlZCB0by4gVGhpcyBwb2xpY3kgZW5zdXJlcyB0aGF0IEdDQVMgY2FuIGFsbG9jYXRlIHJlc291cmNlcyBhcHByb3ByaWF0ZWx5IGFuZCBtYWludGFpbiBpdHMgY29tbWl0bWVudCB0byBhbGwgc3R1ZGVudHMuPC9wPgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0icmVjb3JkaW5nLXBvbGljeSI+CiAgICA8aDM+UmVjb3JkaW5nICZhbXA7IE1lZGlhIFBvbGljeTwvaDM+CiAgICA8cD5HQ0FTIHJlY29yZHMgb3VyIGxlY3R1cmVzIGFuZCBldmVudHMgdG8gZW5zdXJlIGFsbCBzdHVkZW50cyBoYXZlIGFjY2VzcyB0byBlZHVjYXRpb25hbCBjb250ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlaXIgbG9jYXRpb24gb3Igc2NoZWR1bGUuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkNvbnNlbnQgdG8gUmVjb3JkaW5nOjwvc3Ryb25nPiBCeSBwYXJ0aWNpcGF0aW5nIGluIEdDQVMgZXZlbnRzLCBjb3Vyc2VzLCBvciBzZW1pbmFycyBvbmxpbmUgdmlhIFpvb20gKG9yIHNpbWlsYXIgcGxhdGZvcm1zKSwgeW91IGFncmVlIHRvIGFsbG93IEdDQVMgdG8gcmVjb3JkIHRoZXNlIHNlc3Npb25zIGFuZCBwcm92aWRlIHRoZSByZWNvcmRpbmdzIHRvIEdDQVMgc3R1ZGVudHMgYW5kIHJlc2VhcmNoZXJzIHdobyBjb3VsZG4ndCBwYXJ0aWNpcGF0ZSBkdWUgdG8gdGltZS16b25lIGlzc3VlcywgaGVhbHRoIGNvbmNlcm5zLCBvciBzaW1pbGFyIGNpcmN1bXN0YW5jZXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PldoZXJlIFJlY29yZGluZ3MgQXJlIFN0b3JlZDwvaDQ+CiAgICA8cD5HQ0FTIHBvc3RzIGFuZCBzdG9yZXMgcmVjb3JkaW5ncyBpbiB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkdDQVMgQ29tbXVuaXR5IEZvcnVtPC9saT4KICAgICAgICA8bGk+Q2FudmFzIExlYXJuaW5nIE1hbmFnZW1lbnQgU3lzdGVtPC9saT4KICAgICAgICA8bGk+R0NBUyBZb3VUdWJlIENoYW5uZWw8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5UaGVzZSByZWNvcmRpbmdzIGFyZSBpbnRlbmRlZCBmb3IgZWR1Y2F0aW9uYWwgcHVycG9zZXMgYW5kIHRvIHN1cHBvcnQgdGhlIGxlYXJuaW5nIGNvbW11bml0eSBhdCBHQ0FTLjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA3OiBHQ0FTIENvbGxlZ2UgUG9saWNpZXM8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGF0YS1wcm90ZWN0aW9uIj4KICAgIDxoMz5EYXRhIFByb3RlY3Rpb24gYW5kIFJldGVudGlvbiBQb2xpY3k8L2gzPgogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIGlzIGNvbW1pdHRlZCB0byBwcm90ZWN0aW5nIHRoZSBwcml2YWN5IGFuZCBwZXJzb25hbCBkYXRhIG9mIGFsbCBzdHVkZW50cywgZmFjdWx0eSwgc3RhZmYsIGFuZCBwYXJ0bmVycyBpbiBhY2NvcmRhbmNlIHdpdGggR0RQUiBhbmQgdGhlIElyaXNoIERhdGEgUHJvdGVjdGlvbiBBY3QgMjAxOC48L3A+CiAgIAogICAgPGg0PkRhdGEgQ29udHJvbGxlcjwvaDQ+CiAgICA8cD5HQ0FTIENvbGxlZ2UgRHVibGluIExpbWl0ZWQgYWN0cyBhcyB0aGUgZGF0YSBjb250cm9sbGVyIGZvciBhZG1pbmlzdHJhdGl2ZSBhbmQgb3BlcmF0aW9uYWwgZGF0YS4gQWNhZGVtaWMgcmVjb3JkcyByZWxhdGVkIHRvIGFjY3JlZGl0YXRpb24sIHRyYW5zY3JpcHRzLCBhbmQgZ3JhZGVzIGFyZSBtYW5hZ2VkIHNlcGFyYXRlbHkgYnkgV29vbGYgVW5pdmVyc2l0eS48L3A+CiAgIAogICAgPGg0PllvdXIgUmlnaHRzIFVuZGVyIEdEUFI8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT5SaWdodCBvZiBhY2Nlc3MgKEFydGljbGUgMTUpPC9saT4KICAgICAgICA8bGk+UmlnaHQgdG8gcmVjdGlmaWNhdGlvbiAoQXJ0aWNsZSAxNik8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byBlcmFzdXJlIChBcnRpY2xlIDE3KTwvbGk+CiAgICAgICAgPGxpPlJpZ2h0IHRvIHJlc3RyaWN0aW9uIG9yIG9iamVjdGlvbiAoQXJ0aWNsZXMgMTjigJMyMSk8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byBkYXRhIHBvcnRhYmlsaXR5IChBcnRpY2xlIDIwKTwvbGk+CiAgICA8L3VsPgogICAgPHA+UmVxdWVzdHMgY2FuIGJlIHN1Ym1pdHRlZCB0byA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+LiBHQ0FTIHdpbGwgcmVzcG9uZCB3aXRoaW4gb25lIGNhbGVuZGFyIG1vbnRoLjwvcD4KICAgCiAgICA8aDQ+RGF0YSBSZXRlbnRpb24gUGVyaW9kczwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkNhdGVnb3J5PC90aD4KICAgICAgICAgICAgPHRoPlJldGVudGlvbiBQZXJpb2Q8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+U3R1ZGVudCBjb250YWN0IGFuZCBlbnJvbG1lbnQgZGF0YTwvdGQ+CiAgICAgICAgICAgIDx0ZD5VcCB0byA3IHllYXJzIGFmdGVyIGNvbXBsZXRpb24vd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5GaW5hbmNpYWwgYW5kIGludm9pY2luZyByZWNvcmRzPC90ZD4KICAgICAgICAgICAgPHRkPjcgeWVhcnMgKElyaXNoIHRheCBsYXcpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkVtYWlsIGFuZCBpbnN0aXR1dGlvbmFsIGFjY291bnQgZGF0YTwvdGQ+CiAgICAgICAgICAgIDx0ZD5EZWxldGVkIHVwb24gb2ZmaWNpYWwgd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5MZWFybmluZyBwbGF0Zm9ybSBhbmQgZm9ydW0gcG9zdHM8L3RkPgogICAgICAgICAgICA8dGQ+RGVsZXRlZC9hbm9ueW1pc2VkIHdpdGhpbiAxMiBtb250aHMgb2Ygd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJlcXVhbC1vcHBvcnR1bml0eSI+CiAgICA8aDM+RXF1YWwgRW1wbG95bWVudCBhbmQgTGVhcm5pbmcgT3Bwb3J0dW5pdHkgUG9saWN5PC9oMz4KICAgIDxwPkl0IGlzIHRoZSBwb2xpY3kgb2YgR0NBUyBDb2xsZWdlIER1YmxpbiB0byBlbnN1cmUgZXF1YWwgZW1wbG95bWVudCBhbmQgbGVhcm5pbmcgb3Bwb3J0dW5pdGllcyB3aXRob3V0IGRpc2NyaW1pbmF0aW9uIG9yIGhhcmFzc21lbnQgb24gdGhlIGJhc2VzIG9mIHJhY2UsIGNvbG9yLCBuYXRpb25hbCBvcmlnaW4sIHJlbGlnaW9uLCBzZXgsIGFnZSwgZGlzYWJpbGl0eSwgY2l0aXplbnNoaXAsIG1hcml0YWwgc3RhdHVzIG9yIGFueSBvdGhlciBjaGFyYWN0ZXJpc3RpYyBwcm90ZWN0ZWQgYnkgbGF3LjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJoaWdobGlnaHQtYm94Ij4KICAgICAgICA8cD5UaGlzIHBvbGljeSBwZXJtZWF0ZXMgYWxsIGRlY2lzaW9ucywgaW5jbHVkaW5nIHRob3NlIGludm9sdmluZyBlbXBsb3llZSBjb21wZW5zYXRpb24sIGFwcGxpY2F0aW9uIGFzc2Vzc21lbnRzLCBiZW5lZml0cywgaGlyaW5nLCBwcm9tb3Rpb24sIHRyYWluaW5nIGFuZCBkZXZlbG9wbWVudCwgYW5kIG90aGVyIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGVtcGxveW1lbnQgYW5kIGxlYXJuaW5nLjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImJ1bGx5aW5nIj4KICAgIDxoMz5QcmV2ZW50aW9uIG9mIEJ1bGx5aW5nIGFuZCBIYXJhc3NtZW50PC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlplcm8gVG9sZXJhbmNlIFBvbGljeTo8L3N0cm9uZz4gR0NBUyBDb2xsZWdlIHdpbGwgaW52ZXN0aWdhdGUgdmlnb3JvdXNseSBhbnkgYWxsZWdhdGlvbnMgb2YgYnVsbHlpbmcgb3IgaGFyYXNzbWVudCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBtYXR0ZXIgaGFzIGJlZW4gcmFpc2VkIGZvcm1hbGx5IG9yIGluZm9ybWFsbHkuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PkRlZmluaXRpb24gb2YgSGFyYXNzbWVudDwvaDQ+CiAgICA8cD5IYXJhc3NtZW50IGlzIGFueSBjb25kdWN0IHdoaWNoIGlzIHVud2FudGVkIGJ5IHRoZSByZWNpcGllbnQgYW5kIGlzIGNvbnNpZGVyZWQgb2JqZWN0aW9uYWJsZSwgY2F1c2luZyBodW1pbGlhdGlvbiwgb2ZmZW5jZSwgZGlzdHJlc3Mgb3Igb3RoZXIgZGV0cmltZW50YWwgZWZmZWN0LiBUaGlzIG1heSBpbmNsdWRlOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5QaHlzaWNhbDo8L3N0cm9uZz4gQ29udGFjdCByYW5naW5nIGZyb20gdG91Y2hpbmcgdG8gc2VyaW91cyBhc3NhdWx0LCBnZXN0dXJlcywgaW50aW1pZGF0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5WZXJiYWw6PC9zdHJvbmc+IFVud2VsY29tZSByZW1hcmtzLCBzdWdnZXN0aW9ucywgbWFsaWNpb3VzIGdvc3NpcCwgam9rZXMsIG9mZmVuc2l2ZSBsYW5ndWFnZTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Tm9uLXZlcmJhbDo8L3N0cm9uZz4gT2ZmZW5zaXZlIGxpdGVyYXR1cmUgb3IgcGljdHVyZXMsIGdyYWZmaXRpLCBpc29sYXRpb24gb3IgZXhjbHVzaW9uIGZyb20gYWN0aXZpdGllczwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5EZWZpbml0aW9uIG9mIEJ1bGx5aW5nPC9oND4KICAgIDxwPkJ1bGx5aW5nIGlzIHVzdWFsbHkgcmVwZWF0ZWQgYW5kIHBlcnNpc3RlbnQgYmVoYXZpb3VyIHdoaWNoIGlzIG9mZmVuc2l2ZSwgYWJ1c2l2ZSwgaW50aW1pZGF0aW5nLCBtYWxpY2lvdXMgb3IgaW5zdWx0aW5nLCBpbmNsdWRpbmc6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Db25kdWN0IHdoaWNoIGlzIGludGltaWRhdGluZywgcGh5c2ljYWxseSBhYnVzaXZlIG9yIHRocmVhdGVuaW5nPC9saT4KICAgICAgICA8bGk+Q29uZHVjdCB0aGF0IGRlbmlncmF0ZXMsIHJpZGljdWxlcyBvciBodW1pbGlhdGVzIGFuIGluZGl2aWR1YWw8L2xpPgogICAgICAgIDxsaT5QaWNraW5nIG9uIG9uZSBwZXJzb24gd2hlbiB0aGVyZSBpcyBhIGNvbW1vbiBwcm9ibGVtPC9saT4KICAgICAgICA8bGk+U2hvdXRpbmcgYXQgYW4gaW5kaXZpZHVhbCB0byBnZXQgdGhpbmdzIGRvbmU8L2xpPgogICAgICAgIDxsaT5TZXR0aW5nIHVucmVhbGlzdGljIHRhcmdldHMgb3IgZXhjZXNzaXZlIHdvcmtsb2FkczwvbGk+CiAgICAgICAgPGxpPkN5YmVyIGJ1bGx5aW5nIHZpYSBlbWFpbCBvciBzb2NpYWwgbWVkaWE8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+UmVzb2x1dGlvbiBQcm9jZXNzPC9oND4KICAgIDxwPkNvbXBsYWluYW50cyBhcmUgZW5jb3VyYWdlZCB0byB0cnkgaW5mb3JtYWwgcmVzb2x1dGlvbiBmaXJzdC4gSWYgdGhpcyBpcyBub3QgcG9zc2libGUgb3IgYXBwcm9wcmlhdGUsIGZvcm1hbCBjb21wbGFpbnRzIHNob3VsZCBiZSByYWlzZWQgdG8gVGhlIEV0aGljcyBDb21taXR0ZWUgdmlhIHRoZSBDb21wbGFpbnQgRm9ybS48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYWktcG9saWN5Ij4KICAgIDxoMz5Qb2xpY3kgb24gdGhlIFVzZSBvZiBBcnRpZmljaWFsIEludGVsbGlnZW5jZSAoQUkpIGluIEFjYWRlbWljIFdyaXRpbmc8L2gzPgogICAgPHA+R0NBUyBpcyBjb21taXR0ZWQgdG8gcHJlc2VydmluZyB0aGUgaGlnaGVzdCBzdGFuZGFyZHMgb2YgYWNhZGVtaWMgaW50ZWdyaXR5LCBvcmlnaW5hbGl0eSwgYW5kIGdlbnVpbmUgc2Nob2xhcmx5IGlucXVpcnkuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxoND5Qcm9oaWJpdGVkIFVzZXMgb2YgQUk8L2g0PgogICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPkRyYWZ0aW5nIG9yIHdyaXRpbmcgYW55IHBvcnRpb24gb2YgYXNzaWdubWVudHM8L2xpPgogICAgICAgICAgICA8bGk+R2VuZXJhdGluZyBhcmd1bWVudHMgb3IgZXhwbGFuYXRpb25zPC9saT4KICAgICAgICAgICAgPGxpPlByb2R1Y2luZyBvciBlZGl0aW5nIHRleHQgaW50ZW5kZWQgdG8gYXBwZWFyIGFzIHRoZSBzdHVkZW50J3Mgb3duIHdvcms8L2xpPgogICAgICAgICAgICA8bGk+UmVwaHJhc2luZyBvciByZXdyaXRpbmcgY29udGVudDwvbGk+CiAgICAgICAgICAgIDxsaT5HZW5lcmF0aW5nIGNpdGF0aW9ucywgYmlibGlvZ3JhcGhpZXMsIG9yIGxpdGVyYXR1cmUgcmV2aWV3cyAodW5sZXNzIHNwZWNpZmljYWxseSBwZXJtaXR0ZWQpPC9saT4KICAgICAgICA8L3VsPgogICAgPC9kaXY+CiAgIAogICAgPGg0PlBlcm1pdHRlZCBVc2VzIG9mIEFJPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+TG9jYXRpbmcgYmlibGlvZ3JhcGhpYyByZXNvdXJjZXM8L2xpPgogICAgICAgIDxsaT5DbGFyaWZ5aW5nIGNvbmNlcHRzIGluIGFuIGV4cGxhbmF0b3J5IG9yIHR1dG9yaW5nIGNhcGFjaXR5PC9saT4KICAgICAgICA8bGk+UmVjZWl2aW5nIGd1aWRhbmNlIG9uIGZvcm1hdHRpbmcgb3IgY2l0YXRpb24gc3R5bGVzPC9saT4KICAgICAgICA8bGk+R2VuZXJhdGluZyBhIGJhc2ljIG91dGxpbmUgdGVtcGxhdGUgdGhhdCB0aGUgc3R1ZGVudCBzaWduaWZpY2FudGx5IHJldmlzZXM8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5BbnkgcGVybWl0dGVkIHVzZSBtdXN0IGJlIGRpc2Nsb3NlZCBpbiBhbiA8c3Ryb25nPkFJIFVzZSBTdGF0ZW1lbnQ8L3N0cm9uZz4gYXQgdGhlIGVuZCBvZiB0aGUgc3VibWl0dGVkIHdvcmsuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlZpb2xhdGlvbnM6PC9zdHJvbmc+IFdpbGwgYmUgaGFuZGxlZCBpbiBhY2NvcmRhbmNlIHdpdGggR0NBUydzIEFjYWRlbWljIEludGVncml0eSBhbmQgTWlzY29uZHVjdCBwcm9jZWR1cmVzLiBSZXBlYXRlZCBvciBzZXJpb3VzIHZpb2xhdGlvbnMgbWF5IHJlc3VsdCBpbiBzYW5jdGlvbnMsIGluY2x1ZGluZyByZXZpc2lvbiByZXF1aXJlbWVudHMsIHByb2JhdGlvbiwgb3IgZGlzZW5yb2xsbWVudC48L3A+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJkaXNhYmlsaXR5Ij4KICAgIDxoMz5Qb2xpY3kgQ29uY2VybmluZyBEaXNhYmlsaXR5IGFuZCBBY2FkZW1pYyBBY2NvbW1vZGF0aW9uPC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBEdWJsaW4gaXMgY29tbWl0dGVkIHRvIGFkZHJlc3NpbmcgdGhlIGlzc3VlcyBvZiBkaXNhYmlsaXR5IGluIG91ciBzdHVkZW50IHBvcHVsYXRpb24uPC9wPgogICAKICAgIDxoND5BY2NvbW1vZGF0aW9uIFByb2Nlc3M8L2g0PgogICAgPG9sPgogICAgICAgIDxsaT5Db21wbGV0ZSB0aGUgRGlzYWJpbGl0eSBEaXNjbG9zdXJlIEZvcm08L2xpPgogICAgICAgIDxsaT5Qcm92aWRlIHN1ZmZpY2llbnQgZXZpZGVuY2UgdG8gc3VwcG9ydCB0aGUgZGlzY2xvc2VkIGRpc2FiaWxpdHkgZnJvbSBhIGhlYWx0aGNhcmUgcHJvZmVzc2lvbmFsPC9saT4KICAgICAgICA8bGk+VGhlIERlYW4gb2YgQWNhZGVtaWMgQWZmYWlycyB3aWxsIGRldGVybWluZSB0aGUgZGVncmVlIG9mIGFjYWRlbWljIGFjY29tbW9kYXRpb248L2xpPgogICAgICAgIDxsaT5UaGUgRGlzYWJpbGl0eSBEaXNjbG9zdXJlIEZvcm0gd2lsbCBvbmx5IGJlIHNoYXJlZCB3aXRoIHRoZSBEZWFuIG9mIFN0dWRlbnQgQWZmYWlycyBhbmQgdGhlIEFjYWRlbWljIERpc2FiaWxpdGllcyBBY2NvbW1vZGF0aW9uIENvbW1pc3Npb248L2xpPgogICAgPC9vbD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5HQ0FTJ3MgQ29tbWl0bWVudDo8L3N0cm9uZz4gR0NBUyBpcyBhd2FyZSB0aGF0IHRoZSBjb25jZXB0IG9mIGRpc2FiaWxpdHkgaGFzIGJlZW4gc2V2ZXJlbHkgbGltaXRlZCBieSBhIGJpbmFyeSBjb25jZXB0dWFsaXphdGlvbi4gQ3VycmVudCByZXNlYXJjaCBzaG93cyB0aGF0IHRoZSB3YXlzIG9mIGJlaW5nIGRpc2FibGVkIGFuZCB0aGUgZGVncmVlcyBvZiBkaXNhYmlsaXR5IGFyZSBoaWdobHkgdmFyaWFibGUsIHBvdGVudGlhbGx5IGluY2x1ZGluZyBwaHlzaWNhbCwgaW50ZWxsZWN0dWFsIGNhcGFjaXRpZXMsIGFuZCBzb2NpYWwgZmFjdG9ycy4gR0NBUyBob3BlcyB0byBjb250cmlidXRlIHJlc2VhcmNoIGluIHRoaXMgZmllbGQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgPGgzPkdDQVMgUmVmdW5kIFBvbGljeTwvaDM+CiAgICA8cD5PbmNlIGFuIGFwcGxpY2FudCByZWNlaXZlcyBHQ0FTJ3Mgb2ZmaWNpYWwgYWNjZXB0YW5jZSBsZXR0ZXIgdGhleSB3aWxsIGhhdmUgPHN0cm9uZz4xMCBkYXlzPC9zdHJvbmc+IHRvIGRlY2lkZSBpZiB0aGV5IGFncmVlIG9yIGRpc2FncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zLiBPbmNlIHRoZSBhcHBsaWNhbnQgYWNjZXB0cyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhleSB3aWxsIGJlIGdpdmVuIDxzdHJvbmc+MzAgZGF5czwvc3Ryb25nPiB0byBhc2sgZm9yIGEgcmVmdW5kIG1pbnVzIHRoZSBhZG1pbmlzdHJhdGlvbiBjb3N0cyBhbmQgZmVlcy4gQWZ0ZXIgMzAgZGF5cyB0aGVyZSBhcmUgbm8gcmVmdW5kcy48L3A+Cjwvc2VjdGlvbj4KCjxmb290ZXIgY2xhc3M9ImhhbmRib29rLWZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJoYW5kYm9vay1mb290ZXItaW5uZXIiPgogICAgICAgIDxwPjxzdHJvbmc+wqkgR0NBUyBDb2xsZWdlIER1YmxpbiwgTHRkLiAyMDI1PC9zdHJvbmc+PC9wPgogICAgICAgIDxwPkFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+CiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICAgICAgPGVtPiJPdXQgb2YgQXNoZXMsIGEgTmV3IExpZ2h0IjwvZW0+PGJyPgogICAgICAgICAgICA8ZW0+IklzIEx1YWl0aHJlYWNoIFNvbGFzIE51YSI8L2VtPgogICAgICAgIDwvcD4KICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMzBweDsgZm9udC1zaXplOiAwLjllbTsiPgogICAgICAgICAgICBHQ0FTIHJlc2VydmVzIHRoZSByaWdodCB0byBtb2RpZnkgcHJvZ3JhbW1lcywgcG9saWNpZXMsIGNvdXJzZSBvZmZlcmluZ3MsIHJlcXVpcmVtZW50cywgYW5kIGFueSBvdGhlciBtYXR0ZXJzIG91dGxpbmVkIGluIHRoaXMgSGFuZGJvb2sgYXQgYW55IHRpbWUgYW5kIHdpdGhvdXQgcHJpb3Igbm90aWNlLgogICAgICAgIDwvcD4KICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMjBweDsiPgogICAgICAgICAgICA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+IHwgPGEgaHJlZj0iaHR0cHM6Ly9nY2FzLmllIiB0YXJnZXQ9Il9ibGFuayI+Z2Nhcy5pZTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KPC9mb290ZXI+Cgo8L2Rpdj4KPCEtLSAvd3A6aHRtbCAtLT4KCjwhLS0gd3A6aHRtbCAtLT4KPHA+PHN0cm9uZz5OZXcgQWRkaXRpb246PC9zdHJvbmc+IE93aW5nIHRvIHRoZSB0cmFuc2FjdGlvbmFsIGV4cGVuc2Ugb2YgbG9kZ2luZyBzaGFyZXMgdG8gZ3JhZHVhdGVzIGFuZCBmYWN1bHR5IG1lbWJlcnMsIEdDQVMgd2lsbCBiZSBhc2tpbmcgdGhvc2Ugd2hvIHF1YWxpZnkgYW5kIHNlZWsgc3RvY2sgc2hhcmVzIG9mIG93bmVyc2hpcCBpbiBHQ0FTIENvbGxlZ2UgRHVibGluIExpbWl0ZWQgdG8gcGF5IHRoZSBmZWUgb2YgbG9kZ2VtZW50LCB3aGljaCBpcyBhIGZlZSBvZiDigqwyNSBhcyBvZiAxIEphbnVhcnkgMjAyNS4gRm9yIHRoZSBleHBhbmRlZCB2ZXJzaW9uIG9mIHRoZSBHQ0FTIEhhbmRib29rLCBwbGVhc2UgcmVmZXIgdG8gPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQvZC8xdko2T1ZyR0N3cG95VGltbG96S1Q5UndQTE0zdC1WVEdOM3J0TDV3cUlwZy9lZGl0P3VzcD1zaGFyaW5nIiBzdHlsZT0iY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+dGhpcyBsaW5rPC9hPi48L3A+CjwhLS0gL3dwOmh0bWwgLS0+ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHRlbXBsYXRlZG9jdW1lbnRtZXRhcHVibGlzaF90b19kaXNjb3Vyc2VwdWJsaXNoX3Bvc3RfY2F0ZWdvcnl3cGRjX2F1dG9fcHVibGlzaF9vdmVycmlkZGVud3BkY190b3BpY190YWdzd3BkY19waW5fdG9waWN3cGRjX3Bpbl91bnRpbGRpc2NvdXJzZV9wb3N0X2lkZGlzY291cnNlX3Blcm1hbGlua3dwZGNfcHVibGlzaGluZ19yZXNwb25zZXdwZGNfcHVibGlzaGluZ19lcnJvcmpldHBhY2tfcG9zdF93YXNfZXZlcl9wdWJsaXNoZWRmb290bm90ZXNkb2N1bWVudGJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRycENvbnRlbnRSZXN0cmljdGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VHJwQ29udGVudFJlc3RyaWN0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUcnBDb250ZW50UmVzdHJpY3Rpb25pbm5lckJsb2Nrc3N0YXRlc2F2ZWRBdHN0YXRlc2F2ZWRCeSAgICAgICAgPGxpPkV4dHJlbWVseSBsb3cgdHVpdGlvbiBmb3IgaGlnaCBxdWFsaXR5IGVkdWNhdGlvbjwvbGk+CiAgICA8cD5HQ0FTIG1heSBvZmZlciB1bmlxdWUgc2Nob2xhcnNoaXAgb3Bwb3J0dW5pdHkgdGhhdCBwcm92aWRlcyB0aGUgcmVjaXBpZW50IHdpdGggdXAgdG8gMTAwJSB0dWl0aW9uIHJlbWlzc2lvbi4gVGhpcyBzY2hvbGFyc2hpcCBpcyBzZXQgYXNpZGUgZm9yIEJBLCBNQSBhbmQgUGhEIFJlc2VhcmNoZXJzIHdobyBhcmUgYWNjZXB0ZWQgaW50byBHQ0FTLjwvcD4KICAgICAgICA8bGk+QWxsIGFjY2VwdGVkIHN0dWRlbnRzIHJlY2VpdmUgc29tZSBmb3JtIG9mIHR1aXRpb24gcmVtaXNzaW9uIHN1cHBvcnQ7IHNvbWUgbWF5IHJlY2VpdmUgdXAgdG8gNTAlIGRlcGVuZGluZyBvbiB0aGUgc3RyZW5ndGggb2YgdGhlaXIgYXBwbGljYXRpb24uPC9saT4KBQcIBAgECAYIBRUIB4PJA6sBrtUCCAcIBggOCA4IC0gBBBQVHA9OABETGBUfCQgGCAcPBAoHFQsIBw8ECgcVCwgHDwQKBxULBQcFB4IBkQOiAhEBBAAAAQAAAAEGAAsBAAAYAQ1CAQEAQQAAQQAAQQAADEECvgKQA0EloQJBAwFIAH0BdxMyMDI1LTEyLTExVDEzOjI5OjU0dwhoYW5kYm9va3cHcHVibGlzaH2RsqMIfQB3BmNsb3NlZHcGY2xvc2VkdxNwYWdlLWZ1bGwtd2lkdGgucGhwdwB3AHcAdwB3AHcAdwB3AHcAdwB5dwB3JGZjNjcwNGI0LTc4MjctNGNlNi04NWFiLTY4ZTQxYzRmZjI3Ynh3uwQ8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhOyBib3JkZXI6IDFweCBzb2xpZCAjMzMzOyBib3JkZXItcmFkaXVzOiA4cHg7IHBhZGRpbmc6IDI1cHggMzBweDsgbWFyZ2luOiA4MHB4IGF1dG8gMzBweCBhdXRvOyBtYXgtd2lkdGg6IDUwJTsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxLjFyZW07IGNvbG9yOiAjY2NjY2NjOyI+CiAgICDwn4eq8J+HuCBQYXJhIGxhIHZlcnNpw7NuIGVuIGVzcGHDsW9sIGRlbCBtYW51YWwgZGUgR0NBUywgCiAgICA8YSBocmVmPSJodHRwczovL2djYXMuaWUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDIvTWFudWFsLWRlLUdDQVMt4oCULVZlcnNpb24tZW4tRXNwYW5vbC5wZGYiIHN0eWxlPSJjb2xvcjogI2Q0YWYzNzsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IiB0YXJnZXQ9Il9ibGFuayI+aGFnYSBjbGljIGFxdcOtPC9hPi4gCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICM5OTk7IGZvbnQtc3R5bGU6IGl0YWxpYzsiPihTcGFuaXNoIHZlcnNpb24pPC9zcGFuPgogIDwvcD4KPC9kaXY+dwljb3JlL2h0bWx3uwQ8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhOyBib3JkZXI6IDFweCBzb2xpZCAjMzMzOyBib3JkZXItcmFkaXVzOiA4cHg7IHBhZGRpbmc6IDI1cHggMzBweDsgbWFyZ2luOiA4MHB4IGF1dG8gMzBweCBhdXRvOyBtYXgtd2lkdGg6IDUwJTsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxLjFyZW07IGNvbG9yOiAjY2NjY2NjOyI+CiAgICDwn4eq8J+HuCBQYXJhIGxhIHZlcnNpw7NuIGVuIGVzcGHDsW9sIGRlbCBtYW51YWwgZGUgR0NBUywgCiAgICA8YSBocmVmPSJodHRwczovL2djYXMuaWUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDIvTWFudWFsLWRlLUdDQVMt4oCULVZlcnNpb24tZW4tRXNwYW5vbC5wZGYiIHN0eWxlPSJjb2xvcjogI2Q0YWYzNzsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IiB0YXJnZXQ9Il9ibGFuayI+aGFnYSBjbGljIGFxdcOtPC9hPi4gCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICM5OTk7IGZvbnQtc3R5bGU6IGl0YWxpYzsiPihTcGFuaXNoIHZlcnNpb24pPC9zcGFuPgogIDwvcD4KPC9kaXY+dgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHckNzlkNDVhZjYtZWRkMC00YThhLWI2MzktMjc1MTViNGI2YzdkeHefigM8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KPHRpdGxlPkdDQVMgQ29sbGVnZSBEdWJsaW4gLSBTdHVkZW50IEhhbmRib29rIDIwMjU8L3RpdGxlPgo8c3R5bGU+CiAgICA6cm9vdCB7CiAgICAgICAgLS1nY2FzLWdyZWVuOiAjMmU3ZDMyOwogICAgICAgIC0tZ2Nhcy1yZWQ6ICNjNjI4Mjg7CiAgICAgICAgLS1nY2FzLWRhcms6ICMxYTFhMWE7CiAgICAgICAgLS1nY2FzLWxpZ2h0OiAjZjVmNWY1OwogICAgICAgIC0tZ2Nhcy1ib3JkZXI6ICNlMGUwZTA7CiAgICB9CiAgIAogICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2std3JhcHBlciB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZW9yZ2lhJywgJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZGFyayk7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIHBhZGRpbmc6IDAgMjBweDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2staGVhZGVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogICAKICAgIC5oYW5kYm9vay1oZWFkZXIgaDEgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBmb250LXNpemU6IDIuNWVtOwogICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgfQogICAKICAgIC5oYW5kYm9vay1oZWFkZXIgLnN1YnRpdGxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1yZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMS4zZW07CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgfQogICAKICAgIC5oYW5kYm9vay1oZWFkZXIgLnllYXIgewogICAgICAgIGZvbnQtc2l6ZTogMS4xZW07CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWJ0bi1jb250YWluZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHggYXV0bzsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stYnRuIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHBhZGRpbmc6IDE1cHggMzBweDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMS4xZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzOwogICAgfQogICAKICAgIC5oYW5kYm9vay1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICMxYjVlMjA7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgfQogICAKICAgIC50b2MtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWxpZ2h0KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1nY2FzLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDMwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAgCiAgICAudG9jLWNvbnRhaW5lciBoMiB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgZm9udC1zaXplOiAxLjVlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7CiAgICB9CiAgIAogICAgLnRvYy1saXN0IHsKICAgICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGNvbHVtbnM6IDI7CiAgICAgICAgY29sdW1uLWdhcDogNDBweDsKICAgIH0KICAgCiAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAudG9jLWxpc3QgewogICAgICAgICAgICBjb2x1bW5zOiAxOwogICAgICAgIH0KICAgIH0KICAgCiAgICAudG9jLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkOwogICAgfQogICAKICAgIC50b2MtbGlzdCBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1kYXJrKTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOwogICAgfQogICAKICAgIC50b2MtbGlzdCBhOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICB9CiAgIAogICAgLnRvYy1zZWN0aW9uIHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KICAgCiAgICAuc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ2Nhcy1ib3JkZXIpOwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OwogICAgfQogICAKICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ2Nhcy1ncmVlbiksICM0Y2FmNTApOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7CiAgICAgICAgbWFyZ2luOiA0MHB4IDAgMzBweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CiAgIAogICAgLnNlY3Rpb24taGVhZGVyIGgyIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxLjhlbTsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogICAKICAgIGgzIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgZm9udC1zaXplOiAxLjRlbTsKICAgICAgICBtYXJnaW4tdG9wOiAzNXB4OwogICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdjYXMtYm9yZGVyKTsKICAgIH0KICAgCiAgICBoNCB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZGFyayk7CiAgICAgICAgZm9udC1zaXplOiAxLjE1ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMjVweDsKICAgIH0KICAgCiAgICBwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJlbTsKICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OwogICAgfQogICAKICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4OwogICAgfQogICAKICAgIGxpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CiAgIAogICAgLmluZm8tYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZTNmMmZkOwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzE5NzZkMjsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwOwogICAgfQogICAKICAgIC53YXJuaW5nLWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjNlMDsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNmNTdjMDA7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICAgIH0KICAgCiAgICAuaW1wb3J0YW50LWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZjZTRlYzsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWdjYXMtcmVkKTsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwOwogICAgfQogICAKICAgIC5oaWdobGlnaHQtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZThmNWU5OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICAgIH0KICAgCiAgICB0YWJsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBmb250LXNpemU6IDAuOTVlbTsKICAgIH0KICAgCiAgICB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHBhZGRpbmc6IDEycHggMTVweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICB9CiAgIAogICAgdGQgewogICAgICAgIHBhZGRpbmc6IDEycHggMTVweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ2Nhcy1ib3JkZXIpOwogICAgfQogICAKICAgIHRyOm50aC1jaGlsZChldmVuKSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICB9CiAgIAogICAgLmNvbnRhY3QtaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICAgICAgcGFkZGluZzogMjVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbjogMzBweCBhdXRvOwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICB9CiAgIAogICAgLmNvbnRhY3QtaW5mbyBwIHsKICAgICAgICBtYXJnaW46IDVweCAwOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgCiAgICAuZ3JhZGUtc2NhbGUgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxNTBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIG1hcmdpbjogMjBweCAwOwogICAgfQogICAKICAgIC5ncmFkZS1pdGVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWxpZ2h0KTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgCiAgICAuZ3JhZGUtaXRlbSBzdHJvbmcgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgIH0KICAgCiAgICAucHJvZ3JhbXMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICB9CiAgIAogICAgLnByb2dyYW0tY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICAgICAgcGFkZGluZzogMTVweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgfQogICAKICAgIC5iYWNrLXRvLXRvcCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgIH0KICAgCiAgICAuYmFjay10by10b3A6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICMxYjVlMjA7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWZvb3RlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBtYXJnaW4tdG9wOiA1MHB4OwogICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgfQogICAKICAgIC5oYW5kYm9vay1mb290ZXItaW5uZXIgewogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgIAogICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmhhbmRib29rLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTVweDsKICAgICAgICB9CiAgICAgICAKICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDsKICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDsKICAgICAgICB9CiAgICAgICAKICAgICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7CiAgICAgICAgfQogICAgICAgCiAgICAgICAgLmhhbmRib29rLWhlYWRlciBoMSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44ZW07CiAgICAgICAgfQogICAgfQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iaGFuZGJvb2std3JhcHBlciI+Cgo8aGVhZGVyIGNsYXNzPSJoYW5kYm9vay1oZWFkZXIiIGlkPSJ0b3AiPgogICAgPGgxPkdDQVMgQ29sbGVnZSBEdWJsaW48L2gxPgogICAgPHAgY2xhc3M9InN1YnRpdGxlIj5UaGUgR2xvYmFsIENlbnRyZSBmb3IgQWR2YW5jZWQgU3R1ZGllczwvcD4KICAgIDxwIGNsYXNzPSJ5ZWFyIj5TdHVkZW50IEhhbmRib29rIDIwMjU8L3A+CjwvaGVhZGVyPgoKPGRpdiBjbGFzcz0iaGFuZGJvb2stYnRuLWNvbnRhaW5lciI+CiAgICA8YSBocmVmPSJodHRwczovL2djYXMuaWUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDMvR0NBUy1SZXNlYXJjaGVycy1TdHVkZW50LUhhbmRib29rLVVwZGF0ZWQtMjAyNi5wZGYiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iaGFuZGJvb2stYnRuIj5SZWFkIHRoZSBFbnRpcmUgSGFuZGJvb2s8L2E+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY29udGFjdC1pbmZvIj4KICAgIDxwPjxzdHJvbmc+QWRkcmVzczo8L3N0cm9uZz4gMzgvMzkgRml0endpbGxpYW0gU3F1YXJlLCBEdWJsaW4gMiwgSXJlbGFuZDwvcD4KICAgIDxwPjxzdHJvbmc+UGhvbmU6PC9zdHJvbmc+ICszNTMgODcgNzU0IDE0MTc8L3A+CiAgICA8cD48c3Ryb25nPkVtYWlsOjwvc3Ryb25nPiA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+PC9wPgogICAgPHA+PHN0cm9uZz5XZWJzaXRlOjwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL2djYXMuaWUiIHRhcmdldD0iX2JsYW5rIj5nY2FzLmllPC9hPjwvcD4KPC9kaXY+Cgo8bmF2IGNsYXNzPSJ0b2MtY29udGFpbmVyIiBpZD0idG9jIj4KICAgIDxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+CiAgICA8dWwgY2xhc3M9InRvYy1saXN0Ij4KICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5JbnRyb2R1Y3Rpb248L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI292ZXJ2aWV3Ij5PdmVydmlldyAmYW1wOyBQaGlsb3NvcGh5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNhY2NyZWRpdGF0aW9uIj5BY2NyZWRpdGF0aW9uPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNmYWN1bHR5Ij5GYWN1bHR5ICZhbXA7IExlYWRlcnNoaXA8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gMTogU3R1ZGVudCBMaWZlPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNjb2RlLW9mLXRydXN0Ij5Db2RlIG9mIFRydXN0ICZhbXA7IFBsZWRnZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYWRtaXNzaW9ucyI+QWRtaXNzaW9uczwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjbm9tYWRpYy1sZWFybmluZyI+Tm9tYWRpYyBMZWFybmluZzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjdHJhbnNmZXIiPlRyYW5zZmVyICZhbXA7IENyZWRpdCBSZWNvZ25pdGlvbjwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjaW50ZXJuYXRpb25hbCI+SW50ZXJuYXRpb25hbCBTdHVkZW50czwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiAyOiBBY2FkZW1pYyBQb2xpY2llczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjcGxhZ2lhcmlzbSI+UGxhZ2lhcmlzbSBQb2xpY3k8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3N1cGVydmlzaW9uIj5BY2FkZW1pYyBTdXBlcnZpc2luZzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYXR0ZW5kYW5jZSI+QXR0ZW5kYW5jZSAmYW1wOyBBYnNlbmNlPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNncmFkaW5nIj5HcmFkaW5nIFNjYWxlPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiN3aXRoZHJhd2luZyI+V2l0aGRyYXdpbmcgZnJvbSBhIENvdXJzZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZGlzY2lwbGluYXJ5Ij5EaXNjaXBsaW5hcnkgUG9saWN5PC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDM6IEZpbmFuY2VzPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNmaW5hbmNpYWwtYWlkIj5GaW5hbmNpYWwgQWlkPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNmZWVzIj5BZGRpdGlvbmFsIEZlZXM8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gNDogRGVncmVlIFByb2dyYW1zPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNiYS1wcm9ncmFtIj5CQSBQcm9ncmFtPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNtYS1wcm9ncmFtcyI+TUEgUHJvZ3JhbXM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3RoZXNpcy1yZXF1aXJlbWVudHMiPlRoZXNpcyBSZXF1aXJlbWVudHM8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gNTogUGhEIFByb2dyYW1zPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNwaGQtb3ZlcnZpZXciPlBoRCBPdmVydmlldzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZGlzc2VydGF0aW9uIj5EaXNzZXJ0YXRpb24gUmVxdWlyZW1lbnRzPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNwaGQtZGVmZW5zZSI+UGhEIERlZmVuc2U8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gNjogU3R1ZGVudCBBZ3JlZW1lbnRzPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNsaWFiaWxpdHkiPkV2ZW50IEF0dGVuZGFuY2UgJmFtcDsgTGlhYmlsaXR5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiN0dWl0aW9uLXBheW1lbnQiPlR1aXRpb24gUGF5bWVudCBPYmxpZ2F0aW9uczwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjcmVjb3JkaW5nLXBvbGljeSI+UmVjb3JkaW5nICZhbXA7IE1lZGlhIFBvbGljeTwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiA3OiBDb2xsZWdlIFBvbGljaWVzPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNkYXRhLXByb3RlY3Rpb24iPkRhdGEgUHJvdGVjdGlvbjwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZXF1YWwtb3Bwb3J0dW5pdHkiPkVxdWFsIE9wcG9ydHVuaXR5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNidWxseWluZyI+QW50aS1CdWxseWluZyBQb2xpY3k8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2FpLXBvbGljeSI+QUkgaW4gQWNhZGVtaWMgV3JpdGluZzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZGlzYWJpbGl0eSI+RGlzYWJpbGl0eSBBY2NvbW1vZGF0aW9uczwvYT48L2xpPgogICAgPC91bD4KPC9uYXY+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+SW50cm9kdWN0aW9uPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9Im92ZXJ2aWV3Ij4KICAgIDxoMz5PdmVydmlldzwvaDM+CiAgICA8cD5XZWxjb21lIHRvIEdDQVMgQ29sbGVnZSBEdWJsaW4sIEx0ZC4gVGhlIEdsb2JhbCBDZW50cmUgZm9yIEFkdmFuY2VkIFN0dWRpZXMgKGhlbmNlZm9ydGggIkdDQVMiIG9yICJHQ0FTIENvbGxlZ2UiKS4gVGhpcyBpcyBhIHNob3J0ZW5lZCB2ZXJzaW9uIG9mIHRoZSBIYW5kYm9vayBvbiB0aGlzIHBhZ2UuIFdlIGFyZSBjb21taXR0ZWQgdG8gcHJvdmlkaW5nIHlvdSB3aXRoIHRoZSByZXNvdXJjZXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgYW5kIGVuY291cmFnZSB5b3VyIHJlc2VhcmNoIGZpbmRpbmdzLiBBbHRob3VnaCBHQ0FTIGhhcyBvbmUgb2YgdGhlIGJlc3QgZmFjdWx0aWVzIGF2YWlsYWJsZSBpbiB0aGUgZmllbGRzIG9mIHBoaWxvc29waHksIGFydCBwZXJmb3JtYW5jZSwgcHN5Y2hvYW5hbHlzaXMsIHRoZW9sb2d5LCBwb2xpdGljcywgYW5kIG90aGVyIGZpZWxkcywgaXQgaXMgdXAgdG8gdGhlIHN0dWRlbnQgdG8gZGVjaWRlIGlmIEdDQVMgaXMgdGhlIGJlc3QgZml0IGZvciB0aGVpciByZXNlYXJjaCBhaW1zIGFuZCBvYmplY3RpdmVzLjwvcD4KICAgCiAgICA8cD5HQ0FTIGlzIGEgY29sbGVnZSBvZmZlcmluZyBCQSwgTUEsIGFuZCBQaEQgZGVncmVlcyBvbmxpbmUgYW5kIGF0IHRpbWVzIGluLXBlcnNvbiBzZXR0aW5ncyBhbmQgdGhyb3VnaCBvdXIgcHVibGljbHkgYXZhaWxhYmxlIHByb2dyYW1zIGluIG91ciBFU2Nob29sLiBXZSBhcmUgY29tbWl0dGVkIHRvIGRlYnQtZnJlZSBoaWdoLXF1YWxpdHkgZWR1Y2F0aW9uIGluIGFuIGVjb2xvZ2ljYWxseSwgY29sbGFib3JhdGl2ZSBhbmQgZWNvbm9taWNhbGx5IHN1c3RhaW5hYmxlIHdheS48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0iaGlnaGxpZ2h0LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5PdXIgTWlzc2lvbjo8L3N0cm9uZz4gSGlnaC1xdWFsaXR5LCBkZWJ0LWZyZWUgZWR1Y2F0aW9uIHRoYXQgcHJvdmlkZXMgdGhlIHJlc291cmNlcyBmb3IgY3JlYXRpdmUgYW5kIG5ldyByZXNlYXJjaCB0aGF0IGlzIG5vdCBwb3NzaWJsZSBpbiBhIHRyYWRpdGlvbmFsIHVuaXZlcnNpdHkgc2V0dGluZy4gV2UgYmVsaWV2ZSB0aGF0IGVkdWNhdGlvbiBpcyBpbmhlcmVudGx5IGFuIGludGVyc3ViamVjdGl2ZSBleHBlcmllbmNlIHRoYXQgcmVxdWlyZXMgc2hhcmluZyBpZGVhcyBvcGVubHksIHByb3Bvc2luZyBhbmQgZXN0YWJsaXNoaW5nIG5ldyBhbmQgYm9sZCBsaW5lcyBvZiB0aGlua2luZyBhbmQgYWN0aW9ucyBpbiByaWdvcm91cyBzY2llbnRpZmljIHdheXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+R0NBUyBob2xkcyBpbiByZXNpZGVuY2Ugc2VtaW5hcnMgZm9yIHNob3J0IHBlcmlvZHMgb2YgdGltZSBpbiBkaWZmZXJlbnQgbG9jYXRpb25zLiBXZSd2ZSBoZWxkIHNlbWluYXJzIGluIEhhdmFuYSwgQ3ViYTsgQmVybGluOyBQcmFndWU7IEF0aGVuczsgTWFyaWJvciwgU2xvdmVuaWE7IFBhcmlzOyBOZXcgWW9yazsgQ2luY2lubmF0aSwgT2hpbzsgR3JhbmQgUmFwaWRzLCBNaWNoaWdhbjsgTWV4aWNvIENpdHk7IGFuZCBCb2dvdMOhIENvbG9tYmlhLCB0byBuYW1lIGEgZmV3LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJhY2NyZWRpdGF0aW9uIj4KICAgIDxoMz5BY2NyZWRpdGF0aW9uPC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBvZmZlcnMgc2V2ZXJhbCBhY2NyZWRpdGVkIGRlZ3JlZSBwcm9ncmFtbWVzIGluIHRoZSBFdXJvcGVhbiBVbmlvbiB0aHJvdWdoIG91ciBwYXJ0bmVyc2hpcCB3aXRoIFdvb2xmOjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtcy1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPlBoLkQuIGluIHRoZSBIdW1hbml0aWVzIGFuZCBTb2NpYWwgU2NpZW5jZXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPlBoLkQuIGluIHRoZSBOYXR1cmFsIFNjaWVuY2VzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NQSBpbiBQaGlsb3NvcGh5PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NQSBpbiBQc3ljaG9hbmFseXNpczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TUEgaW4gVGhlb2xvZ3k8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPk1BIGluIFBvbGl0aWNzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NYXN0ZXIgb2YgTGF3cyAoTEwuTS4pPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5CQSBpbiBJbnRlcmRpc2NpcGxpbmFyeSBTdHVkaWVzPC9kaXY+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJmYWN1bHR5Ij4KICAgIDxoMz5MZWFkZXJzaGlwICZhbXA7IEZhY3VsdHk8L2gzPgogICAgPHA+R0NBUyBDb2xsZWdlIGlzIG93bmVkIGFuZCBvcGVyYXRlZCBieSBmYWN1bHR5LCBzdGFmZiwgYW5kIGdyYWR1YXRlcyBvZiBHQ0FTIENvbGxlZ2UuIE91ciBnb3Zlcm5hbmNlIHN0cnVjdHVyZSBpbmNsdWRlczo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkJvYXJkIG9mIFRydXN0ZWVzPC9saT4KICAgICAgICA8bGk+QWNhZGVtaWMgQ291bmNpbDwvbGk+CiAgICAgICAgPGxpPlF1YWxpdHkgQXNzdXJhbmNlIENvbW1pc3Npb248L2xpPgogICAgICAgIDxsaT5FdGhpY3MgQ29tbWl0dGVlPC9saT4KICAgIDwvdWw+CiAgIAogICAgPHA+R0NBUyB3YXMgZm91bmRlZCBieSBEci4gQ3Jlc3RvbiBEYXZpcyBpbiAyMDEzIHN0ZW1taW5nIGZyb20gYW4gaWRlYSBoZSBjb25jZWl2ZWQgaW4gMTk5OSB3aGlsZSBhIHN0dWRlbnQgYXQgWWFsZSBVbml2ZXJzaXR5LiBJbiAyMDE4IEdDQVMgbW92ZWQgZnJvbSB0aGUgVW5pdGVkIFN0YXRlcyB0byBEdWJsaW4sIElyZWxhbmQgZm9yIHNldmVyYWwgcmVhc29uIHN1cHJlbWUgYW1vbmcgdGhlbSBiZWluZyBhY2FkZW1pYyBmcmVlZG9tLiBJbXBvcnRhbnRseSwgR0NBUyBDb2xsZWdlIGlzIG93bmVkIGJ5IHRoZSBmYWN1bHR5IGFuZCBncmFkdWF0ZXMgd2hvIHNoYXJlIG93bmVyc2hpcCB0b2dldGhlci4gV2hlbiBhIHN0dWRlbnQgaXMgYWNjZXB0ZWQgaW50byBvdXIgQ29sbGVnZSB0aGV5IHdpbGwgYmUgdHJhaW5lZCBhbmQgc3VwcG9ydGVkIGJ5IHRoZSBmYWN1bHR5IGFuZCBzdGFmZiB3aXRoIHRoZSBpbnRlbnQgdG8gaW52aXRlIHRoZSBzdHVkZW50IGludG8gdGhlIG93bmVyc2hpcCBjb21tdW5pdHkgb2YgR0NBUyBDb2xsZWdlIER1YmxpbiBvbmNlIHRoZXkgZ3JhZHVhdGUuPC9wPgogICAKICAgIDxoND5QdWJsaWNhdGlvbnM8L2g0PgogICAgPHA+V2UgYWxzbyBwdWJsaXNoIGFuIG9ubGluZSBtYWdhemluZSBhbmQgcGVlci1yZXZpZXdlZCBhY2FkZW1pYyBqb3VybmFsLCA8c3Ryb25nPlRoZSBHQ0FTIFJldmlldzwvc3Ryb25nPi48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gMTogU3R1ZGVudCBDb21tdW5pdHkgTGlmZSAmYW1wOyBSZXNwb25zaWJpbGl0aWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImNvZGUtb2YtdHJ1c3QiPgogICAgPGgzPlRoZSBHQ0FTIENvZGUgb2YgVHJ1c3QgYW5kIFBsZWRnZTwvaDM+CiAgICA8cD5CZWluZyBhIHN0dWRlbnQtcmVzZWFyY2hlciBhdCBHQ0FTIENvbGxlZ2UgRHVibGluIG1lYW5zIGJlbG9uZ2luZyB0byBvdXIgYWNhZGVtaWMgY29tbXVuaXR5LiBPdXIgYWNhZGVtaWMgY29tbXVuaXR5IHJlcXVpcmVzIHRoYXQgYWxsIG1lbWJlcnMgYWx3YXlzIGFjdCBpbiB0aGUgbW9zdCBlc3RlZW1lZCBldGhpY2FsIHdheXMgcG9zc2libGUuIFRoaXMgaXMgYmVjYXVzZSBpZiBhbmQgd2hlbiBhIHN0dWRlbnQgZ3JhZHVhdGVzIGZyb20gR0NBUyBDb2xsZWdlIER1YmxpbiwgdGhlIGZhY3VsdHkgYW5kIEFsdW1uaSBtYXkgaW52aXRlIHRoZW0gdG8gYmVjb21lIGNvLW93bmVycyBvZiBHQ0FTIENvbGxlZ2UgRHVibGluLjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkNvcmUgVmFsdWVzOjwvc3Ryb25nPiBXZSB0cnVzdCB0aGF0IHdlIGFyZSBjcmVhdGluZyBhIGRpZmZlcmVudCBraW5kIG9mIEhpZ2hlciBFZHVjYXRpb25hbCBJbnN0aXR1dGlvbiwgb25lIHRoYXQgaXMgbm90IGNvbmNlcm5lZCB3aXRoIG1hdGVyaWFsIGdhaW4sIGJ1dCByYXRoZXIgbWFraW5nIGEgZGlmZmVyZW5jZSBmaXJzdCBhbmQgZm9yZW1vc3QgaW4gdGhlIGxpdmVzIG9mIHRoZSB5b3VuZ2VyIGdlbmVyYXRpb24gYW5kIGZvciB0aGUgZnV0dXJlIGZsb3VyaXNoaW5nIG9mIGFsbCBsaXZpbmcgYmVpbmdzIGluIG91ciB3b3JsZC48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5BbGwgc3R1ZGVudHMgYW5kIG1lbWJlcnMgb2Ygb3VyIGNvbW11bml0eSBtdXN0IHNpZ24gYW5kIGFncmVlIHRvIGFiaWRlIGJ5IG91ciBDb2RlIG9mIFRydXN0LiBDb250YWN0IDxhIGhyZWY9Im1haWx0bzpjb250YWN0QGdjYXMuaWUiPmNvbnRhY3RAZ2Nhcy5pZTwvYT4gdG8gc3VibWl0IHlvdXIgc2lnbmVkIGZvcm0uPC9wPgogICAKICAgIDxoND5TdHVkZW50IEV4cGVjdGF0aW9uczwvaDQ+CiAgICA8cD5BIHN0dWRlbnQgaW4gdGhlIEJBLCBNQSBvciBQaEQgcHJvZ3JhbW1lcyBpcyBhIG1lbWJlciBvZiBhIGhpZ2gtcXVhbGl0eSBhY2FkZW1pYyBjb21tdW5pdHkgd2l0aGluIHRoZSBDb2xsZWdlLiBTaG91bGQgYSBzdHVkZW50IG5vdCBsaXZlIHVwIHRvIG91ciB3b3JsZC1jbGFzcyByZXB1dGF0aW9uIGJ5IGFkdmVyc2UgYWN0aXZpdGllcyBzdWNoIGFzIGx5aW5nLCBjaGVhdGluZywgb3IgaGFybWluZyBvdGhlcnMgaW4gb3VyIGNvbW11bml0eSBvciBvdGhlcnMgb3V0c2lkZSBvdXIgY29tbXVuaXR5IHRoZW4gdGhleSB3aWxsIGJlIHdhcm5lZCBhYm91dCB0aGVpciBiZWhhdmlvdXIuIFNob3VsZCBzdWNoIHdhcm5pbmdzIG5vdCBzdG9wIHRoZSBkaXNyZXNwZWN0ZnVsIGJlaGF2aW91ciBpbiBxdWVzdGlvbiB0aGVuIHRoZSBzdHVkZW50IG1heSBiZSBwbGFjZWQgb24gcHJvYmF0aW9uIG9yIGNvdWxkIGV2ZW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBjb21tdW5pdHkuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImFkbWlzc2lvbnMiPgogICAgPGgzPkFkbWlzc2lvbnM8L2gzPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlJlYWQgQmVmb3JlIFlvdSBBcHBseTo8L3N0cm9uZz4gR0NBUyBpcyBhbiBhY2NyZWRpdGVkIGluc3RpdHV0aW9uIG9mIGhpZ2hlciBlZHVjYXRpb24gaW4gdGhlIEV1cm9wZWFuIFVuaW9uIHZpYSBvdXIgcGFydG5lcnNoaXAgd2l0aCBXb29sZiBVbml2ZXJzaXR5LiBQbGVhc2UgYmUgYXdhcmUgdGhhdCBtb3N0IGJ1dCBub3QgYWxsIGRlZ3JlZSBwcm9ncmFtbWVzIGFyZSBhY2NyZWRpdGVkIGF0IHRoaXMgdGltZS4gSWYgeW91IGhhdmUgYSBxdWVzdGlvbiBhYm91dCB0aGlzIHBsZWFzZSBhc2sgdXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+VG8gYmUgY29uc2lkZXJlZCBmb3IgYWRtaXNzaW9uIGludG8gR0NBUyBDb2xsZWdlLCBwcm9zcGVjdGl2ZSBzdHVkZW50cyBtdXN0IGNvbXBsZXRlIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzIHRocm91Z2ggUGhhc2UgMSBhbmQgUGhhc2UgMi4gSW5mb3JtYXRpb24gYWJvdXQgdGhlc2UgcGhhc2VzIGNhbiBiZSBmb3VuZCBvbiBvdXIgcmVzcGVjdGl2ZSBkZWdyZWUgcHJvZ3JhbW1lIHdlYnBhZ2VzLjwvcD4KICAgCiAgICA8aDQ+UHJlcmVxdWlzaXRlcyBmb3IgQWNjZXB0YW5jZTwvaDQ+CiAgICA8cD5PdXIgcmVzZWFyY2hlcnMgY29tZSBmcm9tIHNvbWUgb2YgdGhlIGJlc3QgYWNhZGVtaWMgaW5zdGl0dXRpb25zIGluIHRoZSB3b3JsZCwgaW5jbHVkaW5nIEpvaG5zIEhvcGtpbnMgVW5pdmVyc2l0eSwgQ29sdW1iaWEgVW5pdmVyc2l0eSwgTG9uZG9uIFNjaG9vbCBvZiBFY29ub21pY3MsIFN3YXJ0aG1vcmUsIFlhbGUgVW5pdmVyc2l0eSwgTmV3IFlvcmsgVW5pdmVyc2l0eSwgQ2FtYnJpZGdlLCBPeGZvcmQsIGFuZCBDYXNlIFdlc3Rlcm4gUmVzZXJ2ZSBVbml2ZXJzaXR5LjwvcD4KICAgCiAgICA8cD5Ib3dldmVyLCBhcyBhIHJlc2VhcmNoIGluc3RpdHV0ZSBhbmQgY29sbGVnZSB0aGF0IGlzIGNoYWxsZW5naW5nIHRyYWRpdGlvbmFsIGFjYWRlbWlhLCB3ZSBhdHRyYWN0IGFwcGxpY2FudHMgd2hvIGJyaW5nIGRpdmVyc2UgYmFja2dyb3VuZHMsIGV4cGVyaWVuY2VzLCBhbmQgZnJlc2ggcGVyc3BlY3RpdmVzIHRvIHRoZSBjb252ZXJzYXRpb24gYW5kIHJlc2VhcmNoLjwvcD4KICAgCiAgICA8aDQ+VHVpdGlvbiBPdmVydmlldzwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+QkEgUHJvZ3JhbW1lOjwvc3Ryb25nPiDigqwzLDUwMCBwZXIgeWVhcjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+TUEgJmFtcDsgUGhEIFByb2dyYW1tZXM6PC9zdHJvbmc+IOKCrDYsMDAwIHBlciB5ZWFyPC9saT4KICAgIDwvdWw+CiAgICA8cD5OZWFybHkgMTAwJSBmaW5hbmNpYWwgYWlkIHBhY2thZ2VzIGFyZSBvZmZlcmVkIHRvIGFsbCBSZXNlYXJjaGVycy9TdHVkZW50cyB3aG8gYXJlIGFjY2VwdGVkLiBHQ0FTJ3MgZmluYW5jaWFsIGFpZCBwYWNrYWdlcyBjb21lIGluIHRoZSBmb3JtIG9mIHR1aXRpb24gcmVkdWN0aW9uLjwvcD4KICAgCiAgICA8aDQ+QXBwbGljYXRpb24gUmV2aWV3PC9oND4KICAgIDxwPkFsbCBhcHBsaWNhdGlvbnMgYXJlIHJldmlld2VkIGJ5IG91ciBBZG1pc3Npb25zIENvbW1pdHRlZSBjaGFpcmVkIGJ5IGEgR0NBUyBGYWN1bHR5IG1lbWJlci4gQWNjZXB0YW5jZSBpcyBoaWdobHkgc2VsZWN0aXZlIGZvciBhbGwgb3VyIGRlZ3JlZSBwcm9ncmFtbWVzLiBQYXJ0IG9mIG91ciBhc3Nlc3NtZW50IGNyaXRlcmlhIGlzIHRvIGVuc3VyZSBHQ0FTIGhhcyB0aGUgY2FwYWNpdHkgYW5kIHJlc291cmNlcyB0byBmdWxseSBzdXBwb3J0IHRoZSBhcHBsaWNhbnQncyByZXNlYXJjaCBwcm9wb3NhbC48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0ibm9tYWRpYy1sZWFybmluZyI+CiAgICA8aDM+R0NBUyBOb21hZGljIExlYXJuaW5nOiAiVGhlIFdvcmxkIGlzIG91ciBDbGFzc3Jvb20iPC9oMz4KICAgIDxwPkZyb20gdGhlIGZpcnN0IGluY2VwdGlvbiBvZiBUaGUgR2xvYmFsIENlbnRlciBmb3IgQWR2YW5jZWQgU3R1ZGllcyAoR0NBUykgd2UgaGF2ZSBjcmVhdGVkIG5ldyBhbmQgaW5ub3ZhdGl2ZSBzcGFjZXMgb2YgbGVhcm5pbmcgYW5kIGFwcGxpZWQgY3JlYXRpdmUgYW5kIGNyaXRpY2FsIHRoaW5raW5nLiBXZSBoYXZlIG9jY3VwaWVkIGRvemVucyBvZiBzcGFjZXMgYXJvdW5kIHRoZSB3b3JsZCBmcm9tIHRoZSBDZW50cmUgUG9tcGlkb3UgaW4gUGFyaXMsIHRvIGEgbXVzZXVtIGluIEJlcmxpbiwgVGhlIEJyb29rbHluIENvbW1vbnMgaW4gTmV3IFlvcmsgQ2l0eSwgdG8gVGhlIE1hcnRpbiBMdXRoZXIgS2luZywgSnIgQ2VudHJlIGluIEhhdmFuYSwgQ3ViYS48L3A+CiAgIAogICAgPGg0PlByZXZpb3VzIEdDQVMgSW5zdGl0dXRlcyAmYW1wOyBDb25mZXJlbmNlczwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjFzdCBBbm51YWwsICJCYWRpb3Ugb24gQmFkaW91IiAoSnVseSAyMDE0KTwvbGk+CiAgICAgICAgPGxpPjJuZCwgIkRlbW9jcmFjeSBSaXNpbmciIEF0aGVucywgR3JlZWNlIChKdWx5IDIwMTUpPC9saT4KICAgICAgICA8bGk+M3JkLCAiRGVtb2NyYWN5IFJpc2luZyIgUGhpbGFkZWxwaGlhIChKdW5lIDIwMTYpPC9saT4KICAgICAgICA8bGk+NHRoLCAiUHJhY3RpY2luZyBJbnRlbGxlY3R1YWwgUmVzaXN0YW5jZSIgTWFyaWJvciwgU2xvdmVuaWEgKEp1bHkgMjAxNyk8L2xpPgogICAgICAgIDxsaT41dGgsICJBZXN0aGV0aWMgUmVzaXN0YW5jZSAmYW1wOyBQZXJmb3JtYW5jZSIgRnJhbmNlIChKdW5lIDIwMTgpPC9saT4KICAgICAgICA8bGk+NnRoLCAiUGhpbG9zb3BoeSBhcyBhIE1vZGUgb2YgUHJvZHVjdGlvbiIgRnJhbmNlIChKdW5lIDIwMTkpPC9saT4KICAgICAgICA8bGk+N3RoLCAiQWVzdGhldGljcyBhbmQgdGhlIFBvbGl0aWNhbCIgTWV4aWNvIENpdHkgKE9jdCAyMDIxKTwvbGk+CiAgICAgICAgPGxpPkdDQVMgQmVsZmFzdCBFdmVudCAoMjAyMik8L2xpPgogICAgICAgIDxsaT44dGgsICJUcmFuc2dyZXNzaXZlIFRob3VnaHQgYW5kIHRoZSBDb3VudGVyZmVpdHMgb2YgQ3JlYXRpdml0eSIgUHJhZ3VlIChKdW5lIDIwMjMpPC9saT4KICAgICAgICA8bGk+OXRoLCAiR0NBUyBQYXJpcyBXZWVrIiAoTWF5IDIwMjQpPC9saT4KICAgICAgICA8bGk+MTB0aCwgIkdDQVMgUGFyaXMgV2VlayIgKE1heSAyMDI1KTwvbGk+CiAgICA8L3VsPgogICAKICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkV2ZW50IEF0dGVuZGFuY2U6PC9zdHJvbmc+IEFsbCBzdHVkZW50cywgZmFjdWx0eSwgYW5kIGF0dGVuZGVlcyB3aG8gYXR0ZW5kIGFueSBHQ0FTIENvbGxlZ2UgZXZlbnRzIGluIHBlcnNvbiBtdXN0IGZpcnN0IHNpZ24gYSBMaWFiaWxpdHkgUmVsZWFzZSBGb3JtLiBBbGwgYXR0ZW5kZWVzIHdpbGwgY29tbWl0IHRvIG5vbi12aW9sZW50IGFuZCByZXNwZWN0ZnVsIG1lYW5zIG9mIGV4Y2hhbmdlLjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InRyYW5zZmVyIj4KICAgIDxoMz5UcmFuc2ZlcnJpbmcgJmFtcDsgQ3JlZGl0IFJlY29nbml0aW9uPC9oMz4KICAgIDxwPlN0dWRlbnRzIHdobyB0cmFuc2ZlciBpbnRvIFRoZSBHcmFkdWF0ZSBTY2hvb2wgb2YgR0NBUyBDb2xsZWdlIER1YmxpbiBmcm9tIG90aGVyIGluc3RpdHV0aW9ucyBvZiBoaWdoZXIgZWR1Y2F0aW9uIG1heSB0cmFuc2ZlciBwcmV2aW91c2x5IGF3YXJkZWQgY3JlZGl0IHJlY2VpdmVkIGZyb20gYW5vdGhlciBpbnN0aXR1dGlvbiBvZiBoaWdoZXIgZWR1Y2F0aW9uIHNvIGxvbmcgYXMgdGhhdCBpbnN0aXR1dGlvbiBpcyBhY2NyZWRpdGVkIGFuZCB5b3VyIHRyYW5zZmVyIGlzIGF1dGhvcmlzZWQgYnkgdGhlIEdDQVMgQ2hhbmNlbGxvci48L3A+CiAgIAogICAgPGg0PkNyZWRpdCBSZWNvZ25pdGlvbiBmb3IgQWx0ZXJuYXRpdmUgTGVhcm5pbmcgRXhwZXJpZW5jZXM8L2g0PgogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBoYXMgYSBwcm9jZXNzIGJ5IHdoaWNoIHdlIHJlY29nbmlzZSBhbHRlcm5hdGl2ZSBsZWFybmluZyBleHBlcmllbmNlcyBpbmNsdWRpbmcgZW1wbG95bWVudCBhbmQgb3RoZXIgcmVsZXZhbnQgZXhwZXJpZW5jZXMsIGFuZCBjYW4gZ3JhbnQgY3JlZGl0IGhvdXJzIGZvciBzdWNoIGV4cGVyaWVuY2VzIHByb3ZpZGVkIHRoYXQgZG9jdW1lbnRhdGlvbiBpcyBwcm92aWRlZC48L3A+CiAgIAogICAgPGg0PkR1YWwgRW5yb2xtZW50IFBvbGljeTwvaDQ+CiAgICA8cD5JdCBpcyBub3QgdGhlIG5vcm1hbCBwcmFjdGljZSBvZiBHQ0FTIENvbGxlZ2UgRHVibGluIHRvIGFjY2VwdCBhIHN0dWRlbnQgd2hvIGlzIGFsc28gZW5yb2xsZWQgaW4gYW5vdGhlciB1bml2ZXJzaXR5LiBIb3dldmVyLCBpbiBleGNlcHRpb25hbCBjYXNlcywgYW4gYXBwbGljYW50IG1heSByZXF1ZXN0IHRoZSBBcHBsaWNhdGlvbnMgQ29tbWl0dGVlIHRvIGNvbnNpZGVyIGFjY2VwdGFuY2UgYXMgYSAiRHVhbCBFbnJvbGxlZCIgc3R1ZGVudC48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iaW50ZXJuYXRpb25hbCI+CiAgICA8aDM+SW50ZXJuYXRpb25hbCBTdHVkZW50czwvaDM+CiAgIAogICAgPGg0PkVuZ2xpc2ggTGFuZ3VhZ2UgUmVxdWlyZW1lbnRzPC9oND4KICAgIDxwPkFwcGxpY2FudHMgd2hvc2UgZmlyc3QgbGFuZ3VhZ2UgaXMgbm90IEVuZ2xpc2ggbXVzdCBkZW1vbnN0cmF0ZSBldmlkZW5jZSBvZiB0aGVpciBwcm9maWNpZW5jeSBpbiBFbmdsaXNoIHZpYSBvbmUgb2YgdGhlIGZvbGxvd2luZzo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkNvbXBsZXRlZCBhIG1pbmltdW0gb2Ygb25lIHllYXIgZWR1Y2F0aW9uIGluIGEgcHJlZG9taW5hbnRseSBFbmdsaXNoLXNwZWFraW5nIGNvdW50cnkgd2l0aGluIHRoZSBwcmV2aW91cyAxOCBtb250aHM8L2xpPgogICAgICAgIDxsaT5Xb3JrIGV4cGVyaWVuY2Ugb2YgYXQgbGVhc3QgMTggbW9udGhzIGluIGEgcHJlZG9taW5hbnRseSBFbmdsaXNoLXNwZWFraW5nIGNvdW50cnk8L2xpPgogICAgICAgIDxsaT5TdWZmaWNpZW50bHkgaGlnaCBxdWFsaWZpY2F0aW9uIHNjb3JlIG9uIGFwcHJvdmVkIGV4YW1pbmF0aW9uczwvbGk+CiAgICAgICAgPGxpPkEgZGVncmVlIGZyb20gYW4gYWNjcmVkaXRlZCBpbnN0aXR1dGlvbiB0YXVnaHQgaW4gRW5nbGlzaDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5BY2NlcHRlZCBFbmdsaXNoIFByb2ZpY2llbmN5IFRlc3RzPC9oND4KICAgIDx0YWJsZT4KICAgICAgICA8dGJvZHk+PHRyPgogICAgICAgICAgICA8dGg+VGVzdDwvdGg+CiAgICAgICAgICAgIDx0aD5NaW5pbXVtIFNjb3JlPC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPklFTFRTPC90ZD4KICAgICAgICAgICAgPHRkPkdyYWRlIDYuNSBvdmVyYWxsPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlRPRUZMPC90ZD4KICAgICAgICAgICAgPHRkPjg4IEludGVybmV0LWJhc2VkIC8gNTcwIHBhcGVyLWJhc2VkPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkNhbWJyaWRnZSBQcm9maWNpZW5jeS9BZHZhbmNlZDwvdGQ+CiAgICAgICAgICAgIDx0ZD5HcmFkZSBDIG9yIGJldHRlciAoQ0VGUiBMZXZlbCBDMSBvciBDMik8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+UGVhcnNvbiBQVEUgQWNhZGVtaWM8L3RkPgogICAgICAgICAgICA8dGQ+TWluaW11bSA2MyAobm8gc2VjdGlvbiBiZWxvdyA1OSk8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+CiAgICA8cD48ZW0+Tm90ZTogVGVzdCBzY29yZXMgYXJlIG9ubHkgdmFsaWQgZm9yIHR3byB5ZWFycyBwcmlvciB0byBhcHBseWluZy48L2VtPjwvcD4KICAgCiAgICA8aDQ+VmlzYSBSZXF1aXJlbWVudHM8L2g0PgogICAgPHA+QmVjYXVzZSB3ZSBvZmZlciBjb3Vyc2VzIG9ubGluZSBhbmQgaW4gbG93LXJlc2lkZW50aWFsIHdheXMsIGEgc3R1ZGVudCBzaG91bGRuJ3QgZXhwZWN0IHZpc2EgYmFja2luZyBmcm9tIEdDQVMgQ29sbGVnZSBEdWJsaW4uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHN0dWRlbnQgdmlzYXMsIHBsZWFzZSBjb25zdWx0IHRoZSBEZXBhcnRtZW50IG9mIEZvcmVpZ24gQWZmYWlycyB3ZWJzaXRlLjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiAyOiBHZW5lcmFsIEFjYWRlbWljIFBvbGljaWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InBsYWdpYXJpc20iPgogICAgPGgzPlBsYWdpYXJpc20gUG9saWN5PC9oMz4KICAgIDxwPlBsYWdpYXJpc20gaXMgdGhlIGFjdCBvciBpbnN0YW5jZSBvZiB1c2luZyBvciBjbG9zZWx5IGltaXRhdGluZyB0aGUgbGFuZ3VhZ2UgYW5kIHRob3VnaHRzIG9mIGFub3RoZXIgYXV0aG9yIHdpdGhvdXQgYXV0aG9yaXNhdGlvbiBvciB0aGUgcHJlc2VudGF0aW9uIG9mIHRoYXQgYXV0aG9yJ3Mgd29yayBhcyBvbmUncyBvd24uPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+WmVybyBUb2xlcmFuY2U6PC9zdHJvbmc+IEdDQVMgbW9zdCBmdW5kYW1lbnRhbGx5IGlzIGEgcGxhY2UgaW4gd2hpY2ggYm9sZCBhbmQgbmV3IHJlc2VhcmNoIGlzIGVuY291cmFnZWQsIGFzIHdlbGwgYXMgdGhlIGNyZWF0aW9uIG9mIG5ldyB0aGlua2luZyBwYXJhZGlnbXMuIFBsYWdpYXJpc20gaXMgdGhlIGFjdCBvZiAidW50aGlua2luZyIgYW5kIGEgZm9ybSBvZiBpbnRlbGxlY3R1YWwgZGlzaG9uZXN0eS4gR0NBUyBzdHJvbmdseSBjb25kZW1ucyBhbnkgYWN0cyBvZiBwbGFnaWFyaXNtIHVubGVzcyB0aG9zZSBhY3RzIGFyZSBzaG93biB0byBiZSBhbiBhcnRpc3RpYyBvciBwZXJmb3JtYXRpdmUgYWN0IHRoYXQgaGFzIGJlZW4gcHJlLWFwcHJvdmVkIGJ5IGZhY3VsdHkuPC9wPgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0ic3VwZXJ2aXNpb24iPgogICAgPGgzPkFjYWRlbWljIFN1cGVydmlzaW5nPC9oMz4KICAgIDxwPkFsbCBzdHVkZW50cyBhcmUgaW5pdGlhbGx5IGFzc2lnbmVkIGFuIEFjYWRlbWljIFN1cGVydmlzb3IuIFRoZSBzdHVkZW50J3MgQWNhZGVtaWMgU3VwZXJ2aXNvciB3aWxsIGVuc3VyZSB0aGUgc3R1ZGVudCB1bmRlcnN0YW5kcyB0aGUgYWNhZGVtaWMgZXhwZWN0YXRpb25zIGFuZCBwb2xpY2llcyB0aHJvdWdoIHRoZSBpbml0aWFsIGFkdmlzb3J5IG1lZXRpbmcuIFN0dWRlbnRzIHNob3VsZCBtZWV0IHdpdGggdGhlaXIgc3VwZXJ2aXNvciBhYm91dCBvbmNlIGEgbW9udGguPC9wPgogICAKICAgIDxoND5DaGFuZ2luZyBBY2FkZW1pYyBTdXBlcnZpc29yczwvaDQ+CiAgICA8cD5BZnRlciB0aGUgZmlyc3QgdGVybSwgdGhlIHN0dWRlbnQgbWF5IHdpc2ggdG8gY2hhbmdlIHRoZWlyIEFjYWRlbWljIFN1cGVydmlzb3IuIFRvIGRvIHRoaXMsIGVtYWlsIHRoZSBDaGFuY2VsbG9yIG9yIFJlZ2lzdHJhci48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYXR0ZW5kYW5jZSI+CiAgICA8aDM+QXR0ZW5kYW5jZSBhbmQgQWJzZW5jZSBQb2xpY3k8L2gzPgogICAgPHA+SW4gb3JkZXIgdG8gYmUgYSBzdWNjZXNzZnVsIHN0dWRlbnQgYXQgR0NBUyBDb2xsZWdlIER1YmxpbiwgYSBzdHVkZW50IG11c3QgYXR0ZW5kOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+TGVjdHVyZXM8L2xpPgogICAgICAgIDxsaT5DbGFzc2VzPC9saT4KICAgICAgICA8bGk+TW9udGhseSBwZWVyIGdyb3VwIG1lZXQtdXBzPC9saT4KICAgICAgICA8bGk+TW9udGhseSBhY2FkZW1pYyBzdXBlcnZpc2lvbiBtZWV0aW5nczwvbGk+CiAgICAgICAgPGxpPk90aGVyIGV2ZW50cyBhcyByZXF1aXJlZDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkxpdmUgQ291cnNlIFBvbGljeTo8L3N0cm9uZz4gV2Ugc3Ryb25nbHkgZW5jb3VyYWdlIGFsbCBzdHVkZW50cyB0byBhdHRlbmQgbGl2ZSBjb3Vyc2VzLiBJZiB0aGUgY291cnNlIGlzIGhhcHBlbmluZyBiZXR3ZWVuIDggYS5tLiBhbmQgOCBwLm0uIGluIHlvdXIgbG9jYWwgdGltZSB6b25lLCB3ZSBleHBlY3QgYXR0ZW5kYW5jZS4gU3R1ZGVudHMgbWF5IG1pc3MgdXAgdG8gMiBsaXZlIGNsYXNzIHNlc3Npb25zIHdpdGhvdXQgcGVuYWx0eS48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8aDQ+QWJzZW5jZSBSZXF1aXJlbWVudHM8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT5JZiBhYnNlbnQsIHBvc3QgYSAyNTAtd29yZCByZXNwb25zZSB0byB0aGUgbGVjdHVyZSB3aXRoaW4gMyBkYXlzIGFmdGVyIHRoZSByZWNvcmRpbmcgaXMgcG9zdGVkPC9saT4KICAgICAgICA8bGk+TGVhdmluZyBtb3JlIHRoYW4gMjAlIG9mIGNsYXNzIGVhcmx5IGNvdW50cyBhcyBhbiBhYnNlbmNlPC9saT4KICAgICAgICA8bGk+MyBhYnNlbmNlczogRmluYWwgZ3JhZGUgcmVkdWNlZCBieSAxIHVuaXQ8L2xpPgogICAgICAgIDxsaT40IGFic2VuY2VzOiBGaW5hbCBncmFkZSByZWR1Y2VkIGJ5IGFub3RoZXIgdW5pdDwvbGk+CiAgICAgICAgPGxpPjUrIGFic2VuY2VzOiBGYWlsdXJlIG9mIHRoZSBjb3Vyc2U8L2xpPgogICAgPC91bD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJncmFkaW5nIj4KICAgIDxoMz5HcmFkaW5nIFNjYWxlPC9oMz4KICAgIDxwPlRoZSBncmFkaW5nIHNjYWxlIGlzIGZyb20gMSB0byAxMCB3aXRoIDEwIGJlaW5nIHRoZSBoaWdoZXN0IGdyYWRlIGFjaGlldmFibGU6PC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImdyYWRlLXNjYWxlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjEwPC9zdHJvbmc+IC0gSGlnaGVzdCBhY2hpZXZhYmxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz45PC9zdHJvbmc+IC0gRXhjZWxsZW50PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz44PC9zdHJvbmc+IC0gVmVyeSBHb29kPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz43PC9zdHJvbmc+IC0gR29vZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+Njwvc3Ryb25nPiAtIFBhc3NhYmxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz41PC9zdHJvbmc+IC0gRmFpbHVyZSAobWF5IHJldGFrZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjQ8L3N0cm9uZz4gLSBGYWlsdXJlIChtYXkgcmV0YWtlKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+Mzwvc3Ryb25nPiAtIEZhaWx1cmUgKG5vIHJldGFrZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjI8L3N0cm9uZz4gLSBGYWlsdXJlIChubyByZXRha2UpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz4xPC9zdHJvbmc+IC0gRmFpbHVyZSAobm8gcmV0YWtlKTwvZGl2PgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0id2l0aGRyYXdpbmciPgogICAgPGgzPldpdGhkcmF3aW5nIGZyb20gYSBDb3Vyc2U8L2gzPgogICAgPHA+QSBzdHVkZW50IG1heSB3aXRoZHJhdyBmcm9tIGFueSBjb3Vyc2UgYXQgYW55IHRpbWU7IGhvd2V2ZXIsIHRoZXJlIGFyZSBkaWZmZXJlbnQgY29uc2VxdWVuY2VzOjwvcD4KICAgCiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPldpdGhkcmF3YWwgUGVyaW9kPC90aD4KICAgICAgICAgICAgPHRoPkNvbnNlcXVlbmNlPC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkJlZm9yZSAybmQgY2xhc3MgbWVldGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5ObyBjb25zZXF1ZW5jZXMsIG5vIGdyYWRlIG9yIGNyZWRpdDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5CZWZvcmUgNHRoIGNsYXNzIG1lZXRpbmc8L3RkPgogICAgICAgICAgICA8dGQ+Q2FuIGNsYWltIDUwJSBvZiB0dWl0aW9uIGZ1bmRzLCBubyBncmFkZSBvciBjcmVkaXQ8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+QmVmb3JlIDV0aCBjbGFzcyBtZWV0aW5nPC90ZD4KICAgICAgICAgICAgPHRkPk5vIHR1aXRpb24gcmVpbWJ1cnNlbWVudCwgbm8gZ3JhZGUgb3IgY3JlZGl0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkFmdGVyIDZ0aCBjbGFzcyBtZWV0aW5nPC90ZD4KICAgICAgICAgICAgPHRkPldpbGwgcmVjZWl2ZSBhIGdyYWRlIGZvciB0aGUgY291cnNlPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImRpc2NpcGxpbmFyeSI+CiAgICA8aDM+RGlzY2lwbGluYXJ5IFBvbGljeTwvaDM+CiAgICA8cD5BbGwgR0NBUyBDb2xsZWdlIHN0dWRlbnRzIGFyZSBleHBlY3RlZCB0byBjb25kdWN0IHRoZW1zZWx2ZXMgaW4gYSByZXNwZWN0ZnVsIGFuZCBwcm9mZXNzaW9uYWwgbWFubmVyIGF0IGFsbCB0aW1lcy48L3A+CiAgIAogICAgPGg0PktpbmRzIG9mIERpc2NpcGxpbmFyeSBBY3Rpb248L2g0PgogICAgPHVsPgogICAgICAgIDxsaT5PZmZpY2lhbCBSZXByaW1hbmQ8L2xpPgogICAgICAgIDxsaT5BY2FkZW1pYyBQcm9iYXRpb248L2xpPgogICAgICAgIDxsaT5UZW1wb3JhcnkgU3VzcGVuc2lvbjwvbGk+CiAgICAgICAgPGxpPkZvcmNlZCBMZWF2ZSBvZiBBYnNlbmNlPC9saT4KICAgICAgICA8bGk+U3VzcGVuc2lvbiBmb3IgMSBZZWFyPC9saT4KICAgICAgICA8bGk+VGVybWluYXRpb248L2xpPgogICAgICAgIDxsaT5UZXJtaW5hdGlvbiB3aXRob3V0IHRoZSBwcml2aWxlZ2Ugb2YgcmVhcHBseWluZzwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5Qcm9jZWR1cmU8L2g0PgogICAgPHA+U2hvdWxkIGEgc3R1ZGVudCBiZSBzdXNwZWN0ZWQgb2YgdmlvbGF0aW5nIGEgcG9saWN5IG9yIGNvZGUgb2YgR0NBUyBDb2xsZWdlLCB0aGV5IHdpbGwgYmUgZm9ybWFsbHkgbm90aWZpZWQgYnkgdGhlIERlYW4gb2YgU3R1ZGVudCBBZmZhaXJzIHZpYSBlbWFpbC4gVGhlIHN0dWRlbnQgY2FuIGFkbWl0IHZpb2xhdGlvbiBpbiB3cml0aW5nLCBvciBjbGFpbSBpbm5vY2VuY2UgYW5kIHJlY2VpdmUgYSBmYWlyIGRlZmVuc2UgaW4gYW4gRXRoaWNzIENvbW1pdHRlZSBWaW9sYXRpb24gSGVhcmluZy48L3A+CiAgIAogICAgPGg0PkxlYXZlIG9mIEFic2VuY2U8L2g0PgogICAgPHA+QSBzdHVkZW50IG1heSBhcHBseSBmb3IgYSBtZWRpY2FsIGxlYXZlIG9mIGFic2VuY2UgYW5kL29yIGEgcGF1c2UgaW4gdGhlaXIgc3R1ZGllcy4gVGhlIGNvc3Qgb2YgYSBsZWF2ZSBvZiBhYnNlbmNlIGlzIOKCrDUwMC48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gMzogR0NBUyBDb2xsZWdlIEVjb25vbXk8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZmluYW5jaWFsLWFpZCI+CiAgICA8aDM+RmluYW5jaWFsIEFpZDwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0iaGlnaGxpZ2h0LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz4xMDAlIE9GIEFMTCBHQ0FTIENPTExFR0UgU1RVREVOVFMgUkVDRUlWRSBTT01FIEZJTkFOQ0lBTCBBSUQ8L3N0cm9uZz48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5HQ0FTIENvbGxlZ2UgRHVibGluIGlzIGNvbW1pdHRlZCB0byBwcm92aWRpbmcgdGhlIGhpZ2hlc3QgcXVhbGl0eSBlZHVjYXRpb24gYXQgdGhlIGxvd2VzdCBwb3NzaWJsZSBjb3N0LiBUaGVyZSBhcmUgdGhyZWUgd2F5cyB3ZSBoZWxwIHN0dWRlbnRzOjwvcD4KICAgIDxvbD4KICAgICAgICA8bGk+RXh0cmVtZWx5IGxvdyB0dWl0aW9uIGZvciBoaWdoZXIgcXVhbGl0eSBlZHVjYXRpb248L2xpPgogICAgICAgIDxsaT5BbGwgc3R1ZGVudHMgcmVjZWl2ZSB0dWl0aW9uIHJlbWlzc2lvbiBzdXBwb3J0OyBzb21lIHJlY2VpdmUgNTAlIGFuZCBpbiByYXJlIG9jY2FzaW9ucyAxMDAlIHNjaG9sYXJzaGlwczwvbGk+CiAgICAgICAgPGxpPkZsZXhpYmxlIHBheW1lbnQgc2NoZWR1bGVzPC9saT4KICAgIDwvb2w+CiAgIAogICAgPGg0PlRoZSBXYXJyZW4gVC4gRGF2aXMsIEpyIFNjaG9sYXJzaGlwPC9oND4KICAgIDxwPkdDQVMgb2ZmZXJzIGEgdW5pcXVlIHNjaG9sYXJzaGlwIG9wcG9ydHVuaXR5IHRoYXQgcHJvdmlkZXMgdGhlIHJlY2lwaWVudCB3aXRoIHVwIHRvIDEwMCUgdHVpdGlvbiByZW1pc3Npb24uIFRoaXMgc2Nob2xhcnNoaXAgaXMgc2V0IGFzaWRlIGZvciBCQSwgTUEgYW5kIFBoRCBSZXNlYXJjaGVycyB3aG8gYXJlIGFjY2VwdGVkIGludG8gR0NBUy48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZmVlcyI+CiAgICA8aDM+QWRkaXRpb25hbCBGZWVzPC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5TdGF5IG9uIFRyYWNrLCBTdGF5IERlYnQtRnJlZTo8L3N0cm9uZz4gTk8gRVhUUkEgRkVFUyBJRiBZT1UgR1JBRFVBVEUgT04gVElNRS4gQWRkaXRpb25hbCBmZWVzIGFwcGx5IG9ubHkgaW4gZXhjZXB0aW9uYWwgY2lyY3Vtc3RhbmNlcy48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8aDQ+RmVlIFN1bW1hcnk8L2g0PgogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5GZWUgVHlwZTwvdGg+CiAgICAgICAgICAgIDx0aD5BcHBsaWVzIFRvPC90aD4KICAgICAgICAgICAgPHRoPldoZW4gRmVlcyBBcHBseTwvdGg+CiAgICAgICAgICAgIDx0aD5Nb250aGx5IENvc3Q8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+Q29udGludWF0aW9uIEZlZTwvdGQ+CiAgICAgICAgICAgIDx0ZD5NQSwgQkEsIFBoRDwvdGQ+CiAgICAgICAgICAgIDx0ZD5BZnRlciBncmFjZSBwZXJpb2QsIGZvciBlYWNoIGFkZGl0aW9uYWwgbW9udGg8L3RkPgogICAgICAgICAgICA8dGQ+4oKsMjUwPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkV4dHJhb3JkaW5hcnkgU3VwZXJ2aXNpb24gKE1BKTwvdGQ+CiAgICAgICAgICAgIDx0ZD5NQSB0aGVzaXMgd3JpdGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5JZiBzdXBlcnZpc2lvbiBleGNlZWRzIDMgbW9udGhzPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5FeHRyYW9yZGluYXJ5IFN1cGVydmlzaW9uIChQaEQpPC90ZD4KICAgICAgICAgICAgPHRkPlBoRDwvdGQ+CiAgICAgICAgICAgIDx0ZD5EdXJpbmcgMyBub24tYnVkZ2V0ZWQgbW9udGhzIChzdW1tZXIgYnJlYWspPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BZGRpdGlvbmFsIFN1cGVydmlzb3IgKFBoRCk8L3RkPgogICAgICAgICAgICA8dGQ+UGhEIChZZWFyIDIgb3IgMyk8L3RkPgogICAgICAgICAgICA8dGQ+Rm9yIGVhY2ggbW9udGggd2l0aCBhZGRpdGlvbmFsIHN1cGVydmlzb3I8L3RkPgogICAgICAgICAgICA8dGQ+4oKsMTUwPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgogICAKICAgIDxoND5Db250aW51YXRpb24gRmVlczwvaDQ+CiAgICA8cD5HQ0FTIHByb3ZpZGVzIGNsZWFybHkgZGVmaW5lZCB0aW1lbGluZXMgZm9yIGRlZ3JlZSBjb21wbGV0aW9uOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBwcm9ncmFtczo8L3N0cm9uZz4gMTIgbW9udGhzPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CQSBhbmQgUGhEIHByb2dyYW1zOjwvc3Ryb25nPiAzNiBtb250aHM8L2xpPgogICAgPC91bD4KICAgIDxwPkEgdHdvLW1vbnRoIGdyYWNlIHBlcmlvZCBpcyBncmFudGVkIGF0IG5vIGFkZGl0aW9uYWwgY29zdC4gQWZ0ZXIgdGhpcywgYSBtb250aGx5IGNvbnRpbnVhdGlvbiBmZWUgb2Yg4oKsMjAwIHdpbGwgYmUgY2hhcmdlZC48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gNDogQkEgYW5kIE1BIERlZ3JlZSBQcm9ncmFtbWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImJhLXByb2dyYW0iPgogICAgPGgzPkJhY2hlbG9yIG9mIEludGVyZGlzY2lwbGluYXJ5IFN0dWRpZXMgKEJBLUlTKTwvaDM+CiAgICA8cD48c3Ryb25nPkRpcmVjdG9yOjwvc3Ryb25nPiBNYXJpbyBEJ0FtYXRvPC9wPgogICAgPHA+UGxlYXNlIHJlZmVyIHRvIHRoZSBHQ0FTIHdlYnNpdGUgZm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgcHJvZ3JhbW1lLjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJtYS1wcm9ncmFtcyI+CiAgICA8aDM+TUEgUHJvZ3JhbW1lczwvaDM+CiAgICA8cD5UaGUgTUEgcHJvZ3JhbW1lcyBhcmUgYmFzZWQgb24gY291cnNld29yayBhbmQgcmVzZWFyY2ggYW5kIHJhbmdlIGluIGxlbmd0aCBmcm9tIG9uZSB0byB0d28geWVhcnMuIFN0dWRlbnRzIGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSA5MCBFQ1RTIGNyZWRpdCBob3Vycywgd2hpY2ggaW5jbHVkZTo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkNvdXJzZXdvcms8L2xpPgogICAgICAgIDxsaT5Nb250aGx5IHN1cGVydmlzaW9uPC9saT4KICAgICAgICA8bGk+TUEgVGhlc2lzIHBlZXIgbWVudG9yIGhvdXJzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PlByb2dyYW1tZSBEaXJlY3RvcnM8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFBoaWxvc29waHk6PC9zdHJvbmc+IENyZXN0b24gRGF2aXMsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+TUEgaW4gUHN5Y2hvYW5hbHlzaXM6PC9zdHJvbmc+IEZsb3JpYW4gS2xlaW5hdSwgUGhEPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBpbiBQb2xpdGljczo8L3N0cm9uZz4gRnJhbmNpc2NvIEdvbnphbGVzLCBQaEQ8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFRoZW9sb2d5Ojwvc3Ryb25nPiBCYXJyeSBUYXlsb3IsIFBoRDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5TdXBlcnZpc2VkIEd1aWRlZCBSZXNlYXJjaDwvaDQ+CiAgICA8cD5UaGUgY29yZSBvZiB0aGlzIHByb2dyYW1tZSBpcyBndWlkZWQgYW5kIHN1cGVydmlzZWQgaW5kaXZpZHVhbCByZXNlYXJjaCBmcm9tIG9uZSBvZiBHQ0FTIENvbGxlZ2UncyBmYWN1bHR5IG1lbWJlcnMuIFlvdSBhcmUgcmVxdWlyZWQgdG8gbWVldCBhdCBsZWFzdCBvbmNlIHBlciBtb250aCB3aXRoIHlvdXIgYXNzaWduZWQgQWNhZGVtaWMgU3VwZXJ2aXNvci48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBTaG91bGQgYSBzdHVkZW50IHNlZWsgYSBzdXBlcnZpc29yIG91dHNpZGUgdGhlIGNvcmUgR0NBUyBmYWN1bHR5LCB0aGV5IG11c3QgZmlyc3QgYXJyYW5nZSB0aGlzIHZpYSB0aGUgQ2hhbmNlbGxvciwgRHIuIENyZXN0b24gRGF2aXMuIFRoZXJlIHdpbGwgbm9ybWFsbHkgYmUgYW4gZXh0cmEgZmVlIG9mIOKCrDEwMCBwZXIgbW9udGggZm9yIGV4dGVybmFsIHN1cGVydmlzb3JzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxoND5NYXN0ZXJzIENvbXByZWhlbnNpdmUgRXhhbWluYXRpb24gKE1DRSk8L2g0PgogICAgPHA+RWFjaCBzdHVkZW50IHdpbGwgYmUgcmVxdWlyZWQgdG8gdGFrZSBhbmQgc3VjY2Vzc2Z1bGx5IHBhc3MgdGhlIE1DRS4gVGhpcyBleGFtaW5hdGlvbiBpcyBhIGZvdXItaG91ciwgd3JpdHRlbiBleGFtaW5hdGlvbi4gU3R1ZGVudHMgY2FuIHVzZSBleHRlcm5hbCBtYXRlcmlhbHMgZHVyaW5nIHRoaXMgZXhhbWluYXRpb24uPC9wPgogICAgPHVsPgogICAgICAgIDxsaT5UaGUgZXhhbWluYXRpb24gY29uc2lzdHMgb2Ygb25lIG9yIHR3byBxdWVzdGlvbnMgb24gdGhlIHJlc2VhcmNoIHRvcGljPC9saT4KICAgICAgICA8bGk+TXVzdCBiZSBwcm9jdG9yZWQgYnkgYSBHQ0FTIGZhY3VsdHkgbWVtYmVyIG9yIGFwcHJvdmVkIHByb2N0b3I8L2xpPgogICAgICAgIDxsaT5HcmFkZWQgYXMgIlBhc3MiIG9yICJGYWlsIjwvbGk+CiAgICAgICAgPGxpPklmIGZhaWxlZCwgY2FuIHJldGFrZSBhZnRlciAzMCBkYXlzPC9saT4KICAgICAgICA8bGk+SWYgdGhlIHJldGFrZSBpcyBmYWlsZWQsIHRoZSBzdHVkZW50IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBwcm9ncmFtbWU8L2xpPgogICAgPC91bD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0aGVzaXMtcmVxdWlyZW1lbnRzIj4KICAgIDxoMz5NQSBUaGVzaXMgUmVxdWlyZW1lbnRzPC9oMz4KICAgCiAgICA8aDQ+TGVuZ3RoPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+TWluaW11bTogMjAsMDAwIHdvcmRzPC9saT4KICAgICAgICA8bGk+TWF4aW11bTogNDAsMDAwIHdvcmRzIChleGNsdWRpbmcgYmlibGlvZ3JhcGh5IGFuZCBhcHBlbmRpY2VzKTwvbGk+CiAgICAgICAgPGxpPkFic29sdXRlIG1heGltdW06IDUwLDAwMCB3b3JkczwvbGk+CiAgICAgICAgPGxpPkZvb3Rub3RlcyAmYW1wOyBjaXRhdGlvbnM6IFNob3VsZCBub3QgZXhjZWVkIDIwJSBvZiB0aGUgVGhlc2lzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkZvcm1hdDwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkVsZW1lbnQ8L3RoPgogICAgICAgICAgICA8dGg+UmVxdWlyZW1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TWFyZ2luczwvdGQ+CiAgICAgICAgICAgIDx0ZD4xIGluY2ggb24gYWxsIHNpZGVzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQ8L3RkPgogICAgICAgICAgICA8dGQ+VGltZXMgTmV3IFJvbWFuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQgU2l6ZTwvdGQ+CiAgICAgICAgICAgIDx0ZD4xMnB0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNwYWNpbmc8L3RkPgogICAgICAgICAgICA8dGQ+RG91YmxlPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkNpdGF0aW9uIFN0eWxlPC90ZD4KICAgICAgICAgICAgPHRkPkNoaWNhZ28sIE1MQSwgb3IgQVBBIChtdXN0IGJlIGNvbnNpc3RlbnQgdGhyb3VnaG91dCk8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+CiAgIAogICAgPGg0PlRoZXNpcyBEZWZlbnNlPC9oND4KICAgIDxwPlRoZSBNQSBEZWZlbnNlIGlzIGV4cGVjdGVkIHRvIGxhc3QgYWJvdXQgb25lIGhvdXI6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT41IG1pbnV0ZXM6IEludHJvZHVjdGlvbiBieSBBY2FkZW1pYyBTdXBlcnZpc29yPC9saT4KICAgICAgICA8bGk+MTAgbWludXRlczogU3R1ZGVudCBzdW1tYXJpc2VzIHRoZXNpczwvbGk+CiAgICAgICAgPGxpPjIwIG1pbnV0ZXM6IENvbW1pdHRlZSBleGFtaW5hdGlvbjwvbGk+CiAgICAgICAgPGxpPjUgbWludXRlczogU3R1ZGVudCBzdW1tYXJ5PC9saT4KICAgICAgICA8bGk+MTUgbWludXRlczogQ29tbWl0dGVlIHByaXZhdGUgZGlzY3Vzc2lvbjwvbGk+CiAgICAgICAgPGxpPjUgbWludXRlczogR3JhZGUgYW5ub3VuY2VtZW50PC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkRlZmVuc2UgR3JhZGVzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5BLjwvc3Ryb25nPiBQYXNzIHdpdGggRGlzdGluY3Rpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkIuPC9zdHJvbmc+IFBhc3Mgd2l0aG91dCBSZXZpc2lvbjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Qy48L3N0cm9uZz4gUGFzcyB3aXRoIE1pbm9yIFJldmlzaW9ucyAoMTgwIGRheXMgdG8gYWRkcmVzcyk8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkQuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNYWpvciBSZXZpc2lvbnMgKDE4MCBkYXlzIHRvIGFkZHJlc3MpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5FLjwvc3Ryb25nPiBGYWlsIChidXQgc3R1ZGVudCBjYW4gcmVkZWZlbmQgYWZ0ZXIgMzY1IGRheXMpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5GLjwvc3Ryb25nPiBGYWlsICh3aXRoIG5vIGZ1cnRoZXIgb3B0aW9ucyk8L2xpPgogICAgPC91bD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA1OiBQaEQgUHJvZ3JhbW1lczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJwaGQtb3ZlcnZpZXciPgogICAgPGgzPlBoRCBPdmVydmlldzwvaDM+CiAgICA8cD5HQ0FTJ3MgUGguRC4gcHJvZ3JhbW1lcyBzdHJpdmUgdG8gYmUgdGhlIGJlc3QgcmVzZWFyY2ggcHJvZ3JhbW1lIG9mIGl0cyBraW5kIGluIHRoZSB3b3JsZC48L3A+CiAgIAogICAgPGg0PkF2YWlsYWJsZSBQcm9ncmFtbWVzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5QaEQgaW4gdGhlIEh1bWFuaXRpZXMgYW5kIFNvY2lhbCBTY2llbmNlczwvc3Ryb25nPiDigJQgRGlyZWN0b3I6IENyZXN0b24gRGF2aXMsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+UGhEIGluIHRoZSBOYXR1cmFsIFNjaWVuY2VzIChNYXRoZW1hdGljcyBhbmQgUGh5c2ljcyk8L3N0cm9uZz4g4oCUIERpcmVjdG9yOiBGZXJuYW5kbyBUb2htw6ksIFBoRDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5CYXNpYyBSZXF1aXJlbWVudHM8L2g0PgogICAgPHA+R0NBUyBQaEQgcHJvZ3JhbW1lcyBhcmUgMyB5ZWFycyBpbiBsZW5ndGg6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPlllYXIgMTo8L3N0cm9uZz4gUmVzZWFyY2ggZGVzaWduLCBtZXRob2RvbG9neSBkZXZlbG9wbWVudCwgbGl0ZXJhdHVyZSByZXZpZXcsIGlkZW50aWZ5aW5nIHJlc2VhcmNoICJnYXAsIiBhbmQgZGV2ZWxvcGluZyBhIHRlbnRhdGl2ZSBoeXBvdGhlc2lzLiBPbmUgcmVxdWlyZWQgY291cnNlOiAiTWV0aG9kb2xvZ2llcyBhbmQgUmVzZWFyY2ggVGVjaG5pcXVlcyIgKG1lZXRzIDQgdGltZXMgcGVyIHllYXIpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDI6PC9zdHJvbmc+IFByb21vdGlvbiB0byAiUGhEIENhbmRpZGF0ZSIgc3RhdHVzIGFuZCBhc3NpZ25tZW50IG9mIGFuIGV4cGVydCBzdXBlcnZpc29yPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDM6PC9zdHJvbmc+IERpc3NlcnRhdGlvbiBjb21wbGV0aW9uIGFuZCBkZWZlbnNlPC9saT4KICAgIDwvdWw+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGlzc2VydGF0aW9uIj4KICAgIDxoMz5QaEQgRGlzc2VydGF0aW9uIFJlcXVpcmVtZW50czwvaDM+CiAgICA8cD5UaGUgUGhEIERpc3NlcnRhdGlvbiBpcyBhIHNjaWVudGlmaWMgZG9jdW1lbnQgY29uc2lzdGluZyBvZiBzdXN0YWluZWQsIHJpZ29yb3VzLCBhbmQgY29oZXJlbnQgcmVzZWFyY2ggdGhhdCBjb250cmlidXRlcyBzb21ldGhpbmcgb3JpZ2luYWwgdG8gYSBmaWVsZCBvciBmaWVsZHMgb2YgaW5xdWlyeS48L3A+CiAgIAogICAgPGg0PkZvcm1hdDwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkVsZW1lbnQ8L3RoPgogICAgICAgICAgICA8dGg+UmVxdWlyZW1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TGVuZ3RoPC90ZD4KICAgICAgICAgICAgPHRkPn44MCwwMDAgd29yZHMgKG1heCAxMDAsMDAwIGV4Y2x1ZGluZyBiaWJsaW9ncmFwaHkpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPk1hcmdpbnM8L3RkPgogICAgICAgICAgICA8dGQ+MS41IGluY2ggb24gYWxsIHNpZGVzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQ8L3RkPgogICAgICAgICAgICA8dGQ+VGltZXMgTmV3IFJvbWFuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQgU2l6ZTwvdGQ+CiAgICAgICAgICAgIDx0ZD4xMnB0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNwYWNpbmc8L3RkPgogICAgICAgICAgICA8dGQ+RG91YmxlPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InBoZC1kZWZlbnNlIj4KICAgIDxoMz5QaEQgRGlzc2VydGF0aW9uIERlZmVuc2U8L2gzPgogICAgPHA+VGhlIFBoRCBEaXNzZXJ0YXRpb24gRGVmZW5zZSBtdXN0IGJlIHNjaGVkdWxlZCBhdCBsZWFzdCA5MCBkYXlzIGFoZWFkLiBBbGwgY29tbWl0dGVlIG1lbWJlcnMgbXVzdCBiZSBwcmVzZW50IGVpdGhlciBpbiBwZXJzb24gb3IgdmlhIGxpdmUgb25saW5lIG1lZXRpbmcuPC9wPgogICAKICAgIDxoND5EZWZlbnNlIEZvcm1hdDwvaDQ+CiAgICA8b2w+CiAgICAgICAgPGxpPkludHJvZHVjdGlvbjwvbGk+CiAgICAgICAgPGxpPlN0dWRlbnQgcHJlc2VudHMgMy01IG1pbnV0ZSBzdW1tYXJ5PC9saT4KICAgICAgICA8bGk+UXVlc3Rpb25zIGFuZCBleGFtaW5hdGlvbiBieSBldmFsdWF0b3JzPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCByZXBsaWVzIHRvIGV4YW1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCBsZWF2ZXMgd2hpbGUgZXhhbWluZXJzIGNvbnZlbmU8L2xpPgogICAgICAgIDxsaT5HcmFkZSBkZXRlcm1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCByZXR1cm5zIGFuZCBncmFkZSBpcyBkZWxpdmVyZWQ8L2xpPgogICAgICAgIDxsaT5NZWV0aW5nIGFkam91cm5lZDwvbGk+CiAgICA8L29sPgogICAKICAgIDxoND5HcmFkZSBTY2FsZTwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+QS48L3N0cm9uZz4gUGFzcyB3aXRoIERpc3RpbmN0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CLjwvc3Ryb25nPiBQYXNzIHdpdGhvdXQgUmV2aXNpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkMuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNaW5vciBSZXZpc2lvbiAoOTAgZGF5cyB0byBzdWJtaXQgcmV2aXNpb25zKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RC48L3N0cm9uZz4gUGFzcyB3aXRoIE1ham9yIFJldmlzaW9uICgxODAgZGF5cyB0byBzdWJtaXQgcmV2aXNpb25zKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RS48L3N0cm9uZz4gRmFpbCAod2l0aCByZXN1Ym1pc3Npb24gcG9zc2libGUpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5GLjwvc3Ryb25nPiBGYWlsICh3aXRob3V0IHJlc3VibWlzc2lvbik8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+U3VibWlzc2lvbjwvaDQ+CiAgICA8cD5PbmNlIHBhc3NlZCwgdGhlIHN0dWRlbnQgbXVzdCBzdWJtaXQgdGhlIGZpbmFsIGNvcHkgd2l0aGluIDE4MCBkYXlzLiBGYWlsdXJlIHRvIHN1Ym1pdCB3aXRoaW4gMTgwIGRheXMgd2lsbCByZXN1bHQgaW4gdGhlIGRlZ3JlZSBiZWluZyByZXZva2VkLjwvcD4KICAgCiAgICA8aDQ+UmVzZWFyY2ggQmV5b25kIDMgWWVhcnM8L2g0PgogICAgPHA+SWYgZGlzc2VydGF0aW9uIHJlc2VhcmNoIHRha2VzIGxvbmdlciB0aGFuIDMgeWVhcnMsIHR1aXRpb24gZmVlcyByZW1haW4gdGhlIHNhbWUgYXMgdGhlIGZpbmFsIHllYXIgb2Ygc3R1ZHkuIEFmdGVyIFllYXIgNCwgdGhlIENoYW5jZWxsb3Igd2lsbCBhc3Nlc3MgdGhlIGZlYXNpYmlsaXR5IG9mIGNvbXBsZXRpb24uPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDY6IFN0dWRlbnQgQWdyZWVtZW50cyAmYW1wOyBPYmxpZ2F0aW9uczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJsaWFiaWxpdHkiPgogICAgPGgzPkV2ZW50IEF0dGVuZGFuY2UgJmFtcDsgTGlhYmlsaXR5PC9oMz4KICAgIDxwPldoZW4gYSBzdHVkZW50IGF0dGVuZHMgYSBHQ0FTIGV2ZW50IGluIHBlcnNvbiwgdGhleSBkbyBzbyA8c3Ryb25nPiJhdCB0aGVpciBvd24gcmlzay4iPC9zdHJvbmc+PC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+TGlhYmlsaXR5IFdhaXZlcjo8L3N0cm9uZz4gQnkgYXR0ZW5kaW5nIGFueSBHQ0FTIENvbGxlZ2UgRHVibGluIG9yIEdsb2JhbCBDZW50cmUgZm9yIEFkdmFuY2VkIFN0dWRpZXMgKCJHQ0FTIikgZXZlbnQgaW4gcGVyc29uLCBzdHVkZW50cyBhZ3JlZSB0aGF0IGluIHRoZSB1bmV4cGVjdGVkIGV2ZW50IHRoYXQgdGhleSBhcmUgaW5qdXJlZCBvciBodXJ0LCB0aGV5IHdpbGwgbm90IGhvbGQgR0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIG9yIHRoZSBHbG9iYWwgQ2VudHJlIGZvciBBZHZhbmNlZCBTdHVkaWVzICgiR0NBUyIpIHJlc3BvbnNpYmxlIGZvciBhbnkgaW5qdXJpZXMsIGRhbWFnZXMsIG9yIGxvc3NlcyBpbmN1cnJlZC48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5BbGwgc3R1ZGVudHMsIGZhY3VsdHksIGFuZCBhdHRlbmRlZXMgd2hvIGF0dGVuZCBhbnkgR0NBUyBDb2xsZWdlIGV2ZW50cyBpbiBwZXJzb24gbXVzdCBmaXJzdCBzaWduIGEgTGlhYmlsaXR5IFJlbGVhc2UgRm9ybSBhY2tub3dsZWRnaW5nIHRoaXMgcG9saWN5LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0dWl0aW9uLXBheW1lbnQiPgogICAgPGgzPlR1aXRpb24gUGF5bWVudCBPYmxpZ2F0aW9uczwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0iaW1wb3J0YW50LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5QYXltZW50IFJlcXVpcmVtZW50Ojwvc3Ryb25nPiBTdHVkZW50cyBhZ3JlZSB0byBwYXkgdGhlaXIgdHVpdGlvbiBvbiB0aW1lIGFjY29yZGluZyB0byB0aGUgcGF5bWVudCBzY2hlZHVsZSBlc3RhYmxpc2hlZCB1cG9uIGVucm9sbG1lbnQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0Pk5vbi1QYXltZW50IENvbnNlcXVlbmNlczwvaDQ+CiAgICA8cD5TaG91bGQgYSBzdHVkZW50IG5vdCBwYXkgdGhlaXIgdHVpdGlvbiBhZnRlciByZWNlaXZpbmcgYSB3YXJuaW5nIGFuZCBhZnRlciBtb3JlIHRoYW4gPHN0cm9uZz42MCBkYXlzPC9zdHJvbmc+IHdpdGhvdXQgcHJpb3IgYXBwcm92YWwgZnJvbSB0aGUgQ2hhbmNlbGxvciwgdGhleSB3aWxsIGJlIHJlbW92ZWQgZnJvbSBlbnJvbGxtZW50IGFuZCBmcm9tIEdDQVMuPC9wPgogICAKICAgIDxoND5UdWl0aW9uIENvbW1pdG1lbnQgQWZ0ZXIgQWNjZXB0YW5jZTwvaDQ+CiAgICA8cD5JZiB5b3UgYWdyZWUgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIG91ciBhY2NlcHRhbmNlIG9mZmVyLCBHQ0FTIG5lZWRzIHRvIHJlbHkgb24geW91IHRvIHBheSBmb3IgeW91ciB0dWl0aW9uIGluIGEgdGltZWx5IG1hbm5lciBhcyBhZ3JlZWQuIFRoaXMgY29tbWl0bWVudCBpcyBlc3NlbnRpYWwgZm9yIEdDQVMgdG8gbWFpbnRhaW4gaXRzIG9wZXJhdGlvbnMgYW5kIGNvbnRpbnVlIHByb3ZpZGluZyBxdWFsaXR5IGVkdWNhdGlvbi48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBTaG91bGQgeW91IHdhbnQgdG8gc3RvcCB5b3VyIHN0dWRpZXMgYWZ0ZXIgMzAgZGF5cywgeW91IGFyZSBzdGlsbCBvYmxpZ2F0ZWQgdG8gcGF5IGZvciB5b3VyIGVudGlyZSB0dWl0aW9uIGFtb3VudCB0aGF0IHlvdSBoYXZlIGFncmVlZCB0by4gVGhpcyBwb2xpY3kgZW5zdXJlcyB0aGF0IEdDQVMgY2FuIGFsbG9jYXRlIHJlc291cmNlcyBhcHByb3ByaWF0ZWx5IGFuZCBtYWludGFpbiBpdHMgY29tbWl0bWVudCB0byBhbGwgc3R1ZGVudHMuPC9wPgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0icmVjb3JkaW5nLXBvbGljeSI+CiAgICA8aDM+UmVjb3JkaW5nICZhbXA7IE1lZGlhIFBvbGljeTwvaDM+CiAgICA8cD5HQ0FTIHJlY29yZHMgb3VyIGxlY3R1cmVzIGFuZCBldmVudHMgdG8gZW5zdXJlIGFsbCBzdHVkZW50cyBoYXZlIGFjY2VzcyB0byBlZHVjYXRpb25hbCBjb250ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlaXIgbG9jYXRpb24gb3Igc2NoZWR1bGUuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkNvbnNlbnQgdG8gUmVjb3JkaW5nOjwvc3Ryb25nPiBCeSBwYXJ0aWNpcGF0aW5nIGluIEdDQVMgZXZlbnRzLCBjb3Vyc2VzLCBvciBzZW1pbmFycyBvbmxpbmUgdmlhIFpvb20gKG9yIHNpbWlsYXIgcGxhdGZvcm1zKSwgeW91IGFncmVlIHRvIGFsbG93IEdDQVMgdG8gcmVjb3JkIHRoZXNlIHNlc3Npb25zIGFuZCBwcm92aWRlIHRoZSByZWNvcmRpbmdzIHRvIEdDQVMgc3R1ZGVudHMgYW5kIHJlc2VhcmNoZXJzIHdobyBjb3VsZG4ndCBwYXJ0aWNpcGF0ZSBkdWUgdG8gdGltZS16b25lIGlzc3VlcywgaGVhbHRoIGNvbmNlcm5zLCBvciBzaW1pbGFyIGNpcmN1bXN0YW5jZXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PldoZXJlIFJlY29yZGluZ3MgQXJlIFN0b3JlZDwvaDQ+CiAgICA8cD5HQ0FTIHBvc3RzIGFuZCBzdG9yZXMgcmVjb3JkaW5ncyBpbiB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkdDQVMgQ29tbXVuaXR5IEZvcnVtPC9saT4KICAgICAgICA8bGk+Q2FudmFzIExlYXJuaW5nIE1hbmFnZW1lbnQgU3lzdGVtPC9saT4KICAgICAgICA8bGk+R0NBUyBZb3VUdWJlIENoYW5uZWw8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5UaGVzZSByZWNvcmRpbmdzIGFyZSBpbnRlbmRlZCBmb3IgZWR1Y2F0aW9uYWwgcHVycG9zZXMgYW5kIHRvIHN1cHBvcnQgdGhlIGxlYXJuaW5nIGNvbW11bml0eSBhdCBHQ0FTLjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA3OiBHQ0FTIENvbGxlZ2UgUG9saWNpZXM8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGF0YS1wcm90ZWN0aW9uIj4KICAgIDxoMz5EYXRhIFByb3RlY3Rpb24gYW5kIFJldGVudGlvbiBQb2xpY3k8L2gzPgogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIGlzIGNvbW1pdHRlZCB0byBwcm90ZWN0aW5nIHRoZSBwcml2YWN5IGFuZCBwZXJzb25hbCBkYXRhIG9mIGFsbCBzdHVkZW50cywgZmFjdWx0eSwgc3RhZmYsIGFuZCBwYXJ0bmVycyBpbiBhY2NvcmRhbmNlIHdpdGggR0RQUiBhbmQgdGhlIElyaXNoIERhdGEgUHJvdGVjdGlvbiBBY3QgMjAxOC48L3A+CiAgIAogICAgPGg0PkRhdGEgQ29udHJvbGxlcjwvaDQ+CiAgICA8cD5HQ0FTIENvbGxlZ2UgRHVibGluIExpbWl0ZWQgYWN0cyBhcyB0aGUgZGF0YSBjb250cm9sbGVyIGZvciBhZG1pbmlzdHJhdGl2ZSBhbmQgb3BlcmF0aW9uYWwgZGF0YS4gQWNhZGVtaWMgcmVjb3JkcyByZWxhdGVkIHRvIGFjY3JlZGl0YXRpb24sIHRyYW5zY3JpcHRzLCBhbmQgZ3JhZGVzIGFyZSBtYW5hZ2VkIHNlcGFyYXRlbHkgYnkgV29vbGYgVW5pdmVyc2l0eS48L3A+CiAgIAogICAgPGg0PllvdXIgUmlnaHRzIFVuZGVyIEdEUFI8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT5SaWdodCBvZiBhY2Nlc3MgKEFydGljbGUgMTUpPC9saT4KICAgICAgICA8bGk+UmlnaHQgdG8gcmVjdGlmaWNhdGlvbiAoQXJ0aWNsZSAxNik8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byBlcmFzdXJlIChBcnRpY2xlIDE3KTwvbGk+CiAgICAgICAgPGxpPlJpZ2h0IHRvIHJlc3RyaWN0aW9uIG9yIG9iamVjdGlvbiAoQXJ0aWNsZXMgMTjigJMyMSk8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byBkYXRhIHBvcnRhYmlsaXR5IChBcnRpY2xlIDIwKTwvbGk+CiAgICA8L3VsPgogICAgPHA+UmVxdWVzdHMgY2FuIGJlIHN1Ym1pdHRlZCB0byA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+LiBHQ0FTIHdpbGwgcmVzcG9uZCB3aXRoaW4gb25lIGNhbGVuZGFyIG1vbnRoLjwvcD4KICAgCiAgICA8aDQ+RGF0YSBSZXRlbnRpb24gUGVyaW9kczwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkNhdGVnb3J5PC90aD4KICAgICAgICAgICAgPHRoPlJldGVudGlvbiBQZXJpb2Q8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+U3R1ZGVudCBjb250YWN0IGFuZCBlbnJvbG1lbnQgZGF0YTwvdGQ+CiAgICAgICAgICAgIDx0ZD5VcCB0byA3IHllYXJzIGFmdGVyIGNvbXBsZXRpb24vd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5GaW5hbmNpYWwgYW5kIGludm9pY2luZyByZWNvcmRzPC90ZD4KICAgICAgICAgICAgPHRkPjcgeWVhcnMgKElyaXNoIHRheCBsYXcpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkVtYWlsIGFuZCBpbnN0aXR1dGlvbmFsIGFjY291bnQgZGF0YTwvdGQ+CiAgICAgICAgICAgIDx0ZD5EZWxldGVkIHVwb24gb2ZmaWNpYWwgd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5MZWFybmluZyBwbGF0Zm9ybSBhbmQgZm9ydW0gcG9zdHM8L3RkPgogICAgICAgICAgICA8dGQ+RGVsZXRlZC9hbm9ueW1pc2VkIHdpdGhpbiAxMiBtb250aHMgb2Ygd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJlcXVhbC1vcHBvcnR1bml0eSI+CiAgICA8aDM+RXF1YWwgRW1wbG95bWVudCBhbmQgTGVhcm5pbmcgT3Bwb3J0dW5pdHkgUG9saWN5PC9oMz4KICAgIDxwPkl0IGlzIHRoZSBwb2xpY3kgb2YgR0NBUyBDb2xsZWdlIER1YmxpbiB0byBlbnN1cmUgZXF1YWwgZW1wbG95bWVudCBhbmQgbGVhcm5pbmcgb3Bwb3J0dW5pdGllcyB3aXRob3V0IGRpc2NyaW1pbmF0aW9uIG9yIGhhcmFzc21lbnQgb24gdGhlIGJhc2VzIG9mIHJhY2UsIGNvbG9yLCBuYXRpb25hbCBvcmlnaW4sIHJlbGlnaW9uLCBzZXgsIGFnZSwgZGlzYWJpbGl0eSwgY2l0aXplbnNoaXAsIG1hcml0YWwgc3RhdHVzIG9yIGFueSBvdGhlciBjaGFyYWN0ZXJpc3RpYyBwcm90ZWN0ZWQgYnkgbGF3LjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJoaWdobGlnaHQtYm94Ij4KICAgICAgICA8cD5UaGlzIHBvbGljeSBwZXJtZWF0ZXMgYWxsIGRlY2lzaW9ucywgaW5jbHVkaW5nIHRob3NlIGludm9sdmluZyBlbXBsb3llZSBjb21wZW5zYXRpb24sIGFwcGxpY2F0aW9uIGFzc2Vzc21lbnRzLCBiZW5lZml0cywgaGlyaW5nLCBwcm9tb3Rpb24sIHRyYWluaW5nIGFuZCBkZXZlbG9wbWVudCwgYW5kIG90aGVyIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGVtcGxveW1lbnQgYW5kIGxlYXJuaW5nLjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImJ1bGx5aW5nIj4KICAgIDxoMz5QcmV2ZW50aW9uIG9mIEJ1bGx5aW5nIGFuZCBIYXJhc3NtZW50PC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlplcm8gVG9sZXJhbmNlIFBvbGljeTo8L3N0cm9uZz4gR0NBUyBDb2xsZWdlIHdpbGwgaW52ZXN0aWdhdGUgdmlnb3JvdXNseSBhbnkgYWxsZWdhdGlvbnMgb2YgYnVsbHlpbmcgb3IgaGFyYXNzbWVudCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBtYXR0ZXIgaGFzIGJlZW4gcmFpc2VkIGZvcm1hbGx5IG9yIGluZm9ybWFsbHkuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PkRlZmluaXRpb24gb2YgSGFyYXNzbWVudDwvaDQ+CiAgICA8cD5IYXJhc3NtZW50IGlzIGFueSBjb25kdWN0IHdoaWNoIGlzIHVud2FudGVkIGJ5IHRoZSByZWNpcGllbnQgYW5kIGlzIGNvbnNpZGVyZWQgb2JqZWN0aW9uYWJsZSwgY2F1c2luZyBodW1pbGlhdGlvbiwgb2ZmZW5jZSwgZGlzdHJlc3Mgb3Igb3RoZXIgZGV0cmltZW50YWwgZWZmZWN0LiBUaGlzIG1heSBpbmNsdWRlOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5QaHlzaWNhbDo8L3N0cm9uZz4gQ29udGFjdCByYW5naW5nIGZyb20gdG91Y2hpbmcgdG8gc2VyaW91cyBhc3NhdWx0LCBnZXN0dXJlcywgaW50aW1pZGF0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5WZXJiYWw6PC9zdHJvbmc+IFVud2VsY29tZSByZW1hcmtzLCBzdWdnZXN0aW9ucywgbWFsaWNpb3VzIGdvc3NpcCwgam9rZXMsIG9mZmVuc2l2ZSBsYW5ndWFnZTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Tm9uLXZlcmJhbDo8L3N0cm9uZz4gT2ZmZW5zaXZlIGxpdGVyYXR1cmUgb3IgcGljdHVyZXMsIGdyYWZmaXRpLCBpc29sYXRpb24gb3IgZXhjbHVzaW9uIGZyb20gYWN0aXZpdGllczwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5EZWZpbml0aW9uIG9mIEJ1bGx5aW5nPC9oND4KICAgIDxwPkJ1bGx5aW5nIGlzIHVzdWFsbHkgcmVwZWF0ZWQgYW5kIHBlcnNpc3RlbnQgYmVoYXZpb3VyIHdoaWNoIGlzIG9mZmVuc2l2ZSwgYWJ1c2l2ZSwgaW50aW1pZGF0aW5nLCBtYWxpY2lvdXMgb3IgaW5zdWx0aW5nLCBpbmNsdWRpbmc6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Db25kdWN0IHdoaWNoIGlzIGludGltaWRhdGluZywgcGh5c2ljYWxseSBhYnVzaXZlIG9yIHRocmVhdGVuaW5nPC9saT4KICAgICAgICA8bGk+Q29uZHVjdCB0aGF0IGRlbmlncmF0ZXMsIHJpZGljdWxlcyBvciBodW1pbGlhdGVzIGFuIGluZGl2aWR1YWw8L2xpPgogICAgICAgIDxsaT5QaWNraW5nIG9uIG9uZSBwZXJzb24gd2hlbiB0aGVyZSBpcyBhIGNvbW1vbiBwcm9ibGVtPC9saT4KICAgICAgICA8bGk+U2hvdXRpbmcgYXQgYW4gaW5kaXZpZHVhbCB0byBnZXQgdGhpbmdzIGRvbmU8L2xpPgogICAgICAgIDxsaT5TZXR0aW5nIHVucmVhbGlzdGljIHRhcmdldHMgb3IgZXhjZXNzaXZlIHdvcmtsb2FkczwvbGk+CiAgICAgICAgPGxpPkN5YmVyIGJ1bGx5aW5nIHZpYSBlbWFpbCBvciBzb2NpYWwgbWVkaWE8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+UmVzb2x1dGlvbiBQcm9jZXNzPC9oND4KICAgIDxwPkNvbXBsYWluYW50cyBhcmUgZW5jb3VyYWdlZCB0byB0cnkgaW5mb3JtYWwgcmVzb2x1dGlvbiBmaXJzdC4gSWYgdGhpcyBpcyBub3QgcG9zc2libGUgb3IgYXBwcm9wcmlhdGUsIGZvcm1hbCBjb21wbGFpbnRzIHNob3VsZCBiZSByYWlzZWQgdG8gVGhlIEV0aGljcyBDb21taXR0ZWUgdmlhIHRoZSBDb21wbGFpbnQgRm9ybS48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYWktcG9saWN5Ij4KICAgIDxoMz5Qb2xpY3kgb24gdGhlIFVzZSBvZiBBcnRpZmljaWFsIEludGVsbGlnZW5jZSAoQUkpIGluIEFjYWRlbWljIFdyaXRpbmc8L2gzPgogICAgPHA+R0NBUyBpcyBjb21taXR0ZWQgdG8gcHJlc2VydmluZyB0aGUgaGlnaGVzdCBzdGFuZGFyZHMgb2YgYWNhZGVtaWMgaW50ZWdyaXR5LCBvcmlnaW5hbGl0eSwgYW5kIGdlbnVpbmUgc2Nob2xhcmx5IGlucXVpcnkuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxoND5Qcm9oaWJpdGVkIFVzZXMgb2YgQUk8L2g0PgogICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPkRyYWZ0aW5nIG9yIHdyaXRpbmcgYW55IHBvcnRpb24gb2YgYXNzaWdubWVudHM8L2xpPgogICAgICAgICAgICA8bGk+R2VuZXJhdGluZyBhcmd1bWVudHMgb3IgZXhwbGFuYXRpb25zPC9saT4KICAgICAgICAgICAgPGxpPlByb2R1Y2luZyBvciBlZGl0aW5nIHRleHQgaW50ZW5kZWQgdG8gYXBwZWFyIGFzIHRoZSBzdHVkZW50J3Mgb3duIHdvcms8L2xpPgogICAgICAgICAgICA8bGk+UmVwaHJhc2luZyBvciByZXdyaXRpbmcgY29udGVudDwvbGk+CiAgICAgICAgICAgIDxsaT5HZW5lcmF0aW5nIGNpdGF0aW9ucywgYmlibGlvZ3JhcGhpZXMsIG9yIGxpdGVyYXR1cmUgcmV2aWV3cyAodW5sZXNzIHNwZWNpZmljYWxseSBwZXJtaXR0ZWQpPC9saT4KICAgICAgICA8L3VsPgogICAgPC9kaXY+CiAgIAogICAgPGg0PlBlcm1pdHRlZCBVc2VzIG9mIEFJPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+TG9jYXRpbmcgYmlibGlvZ3JhcGhpYyByZXNvdXJjZXM8L2xpPgogICAgICAgIDxsaT5DbGFyaWZ5aW5nIGNvbmNlcHRzIGluIGFuIGV4cGxhbmF0b3J5IG9yIHR1dG9yaW5nIGNhcGFjaXR5PC9saT4KICAgICAgICA8bGk+UmVjZWl2aW5nIGd1aWRhbmNlIG9uIGZvcm1hdHRpbmcgb3IgY2l0YXRpb24gc3R5bGVzPC9saT4KICAgICAgICA8bGk+R2VuZXJhdGluZyBhIGJhc2ljIG91dGxpbmUgdGVtcGxhdGUgdGhhdCB0aGUgc3R1ZGVudCBzaWduaWZpY2FudGx5IHJldmlzZXM8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5BbnkgcGVybWl0dGVkIHVzZSBtdXN0IGJlIGRpc2Nsb3NlZCBpbiBhbiA8c3Ryb25nPkFJIFVzZSBTdGF0ZW1lbnQ8L3N0cm9uZz4gYXQgdGhlIGVuZCBvZiB0aGUgc3VibWl0dGVkIHdvcmsuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlZpb2xhdGlvbnM6PC9zdHJvbmc+IFdpbGwgYmUgaGFuZGxlZCBpbiBhY2NvcmRhbmNlIHdpdGggR0NBUydzIEFjYWRlbWljIEludGVncml0eSBhbmQgTWlzY29uZHVjdCBwcm9jZWR1cmVzLiBSZXBlYXRlZCBvciBzZXJpb3VzIHZpb2xhdGlvbnMgbWF5IHJlc3VsdCBpbiBzYW5jdGlvbnMsIGluY2x1ZGluZyByZXZpc2lvbiByZXF1aXJlbWVudHMsIHByb2JhdGlvbiwgb3IgZGlzZW5yb2xsbWVudC48L3A+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJkaXNhYmlsaXR5Ij4KICAgIDxoMz5Qb2xpY3kgQ29uY2VybmluZyBEaXNhYmlsaXR5IGFuZCBBY2FkZW1pYyBBY2NvbW1vZGF0aW9uPC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBEdWJsaW4gaXMgY29tbWl0dGVkIHRvIGFkZHJlc3NpbmcgdGhlIGlzc3VlcyBvZiBkaXNhYmlsaXR5IGluIG91ciBzdHVkZW50IHBvcHVsYXRpb24uPC9wPgogICAKICAgIDxoND5BY2NvbW1vZGF0aW9uIFByb2Nlc3M8L2g0PgogICAgPG9sPgogICAgICAgIDxsaT5Db21wbGV0ZSB0aGUgRGlzYWJpbGl0eSBEaXNjbG9zdXJlIEZvcm08L2xpPgogICAgICAgIDxsaT5Qcm92aWRlIHN1ZmZpY2llbnQgZXZpZGVuY2UgdG8gc3VwcG9ydCB0aGUgZGlzY2xvc2VkIGRpc2FiaWxpdHkgZnJvbSBhIGhlYWx0aGNhcmUgcHJvZmVzc2lvbmFsPC9saT4KICAgICAgICA8bGk+VGhlIERlYW4gb2YgQWNhZGVtaWMgQWZmYWlycyB3aWxsIGRldGVybWluZSB0aGUgZGVncmVlIG9mIGFjYWRlbWljIGFjY29tbW9kYXRpb248L2xpPgogICAgICAgIDxsaT5UaGUgRGlzYWJpbGl0eSBEaXNjbG9zdXJlIEZvcm0gd2lsbCBvbmx5IGJlIHNoYXJlZCB3aXRoIHRoZSBEZWFuIG9mIFN0dWRlbnQgQWZmYWlycyBhbmQgdGhlIEFjYWRlbWljIERpc2FiaWxpdGllcyBBY2NvbW1vZGF0aW9uIENvbW1pc3Npb248L2xpPgogICAgPC9vbD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5HQ0FTJ3MgQ29tbWl0bWVudDo8L3N0cm9uZz4gR0NBUyBpcyBhd2FyZSB0aGF0IHRoZSBjb25jZXB0IG9mIGRpc2FiaWxpdHkgaGFzIGJlZW4gc2V2ZXJlbHkgbGltaXRlZCBieSBhIGJpbmFyeSBjb25jZXB0dWFsaXphdGlvbi4gQ3VycmVudCByZXNlYXJjaCBzaG93cyB0aGF0IHRoZSB3YXlzIG9mIGJlaW5nIGRpc2FibGVkIGFuZCB0aGUgZGVncmVlcyBvZiBkaXNhYmlsaXR5IGFyZSBoaWdobHkgdmFyaWFibGUsIHBvdGVudGlhbGx5IGluY2x1ZGluZyBwaHlzaWNhbCwgaW50ZWxsZWN0dWFsIGNhcGFjaXRpZXMsIGFuZCBzb2NpYWwgZmFjdG9ycy4gR0NBUyBob3BlcyB0byBjb250cmlidXRlIHJlc2VhcmNoIGluIHRoaXMgZmllbGQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgPGgzPkdDQVMgUmVmdW5kIFBvbGljeTwvaDM+CiAgICA8cD5PbmNlIGFuIGFwcGxpY2FudCByZWNlaXZlcyBHQ0FTJ3Mgb2ZmaWNpYWwgYWNjZXB0YW5jZSBsZXR0ZXIgdGhleSB3aWxsIGhhdmUgPHN0cm9uZz4xMCBkYXlzPC9zdHJvbmc+IHRvIGRlY2lkZSBpZiB0aGV5IGFncmVlIG9yIGRpc2FncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zLiBPbmNlIHRoZSBhcHBsaWNhbnQgYWNjZXB0cyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhleSB3aWxsIGJlIGdpdmVuIDxzdHJvbmc+MzAgZGF5czwvc3Ryb25nPiB0byBhc2sgZm9yIGEgcmVmdW5kIG1pbnVzIHRoZSBhZG1pbmlzdHJhdGlvbiBjb3N0cyBhbmQgZmVlcy4gQWZ0ZXIgMzAgZGF5cyB0aGVyZSBhcmUgbm8gcmVmdW5kcy48L3A+Cjwvc2VjdGlvbj4KCjxmb290ZXIgY2xhc3M9ImhhbmRib29rLWZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJoYW5kYm9vay1mb290ZXItaW5uZXIiPgogICAgICAgIDxwPjxzdHJvbmc+wqkgR0NBUyBDb2xsZWdlIER1YmxpbiwgTHRkLiAyMDI1PC9zdHJvbmc+PC9wPgogICAgICAgIDxwPkFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+CiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICAgICAgPGVtPiJPdXQgb2YgQXNoZXMsIGEgTmV3IExpZ2h0IjwvZW0+PGJyPgogICAgICAgICAgICA8ZW0+IklzIEx1YWl0aHJlYWNoIFNvbGFzIE51YSI8L2VtPgogICAgICAgIDwvcD4KICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMzBweDsgZm9udC1zaXplOiAwLjllbTsiPgogICAgICAgICAgICBHQ0FTIHJlc2VydmVzIHRoZSByaWdodCB0byBtb2RpZnkgcHJvZ3JhbW1lcywgcG9saWNpZXMsIGNvdXJzZSBvZmZlcmluZ3MsIHJlcXVpcmVtZW50cywgYW5kIGFueSBvdGhlciBtYXR0ZXJzIG91dGxpbmVkIGluIHRoaXMgSGFuZGJvb2sgYXQgYW55IHRpbWUgYW5kIHdpdGhvdXQgcHJpb3Igbm90aWNlLgogICAgICAgIDwvcD4KICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMjBweDsiPgogICAgICAgICAgICA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+IHwgPGEgaHJlZj0iaHR0cHM6Ly9nY2FzLmllIiB0YXJnZXQ9Il9ibGFuayI+Z2Nhcy5pZTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KPC9mb290ZXI+Cgo8L2Rpdj53CWNvcmUvaHRtbHefigM8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KPHRpdGxlPkdDQVMgQ29sbGVnZSBEdWJsaW4gLSBTdHVkZW50IEhhbmRib29rIDIwMjU8L3RpdGxlPgo8c3R5bGU+CiAgICA6cm9vdCB7CiAgICAgICAgLS1nY2FzLWdyZWVuOiAjMmU3ZDMyOwogICAgICAgIC0tZ2Nhcy1yZWQ6ICNjNjI4Mjg7CiAgICAgICAgLS1nY2FzLWRhcms6ICMxYTFhMWE7CiAgICAgICAgLS1nY2FzLWxpZ2h0OiAjZjVmNWY1OwogICAgICAgIC0tZ2Nhcy1ib3JkZXI6ICNlMGUwZTA7CiAgICB9CiAgIAogICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2std3JhcHBlciB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZW9yZ2lhJywgJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZGFyayk7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIHBhZGRpbmc6IDAgMjBweDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2staGVhZGVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogICAKICAgIC5oYW5kYm9vay1oZWFkZXIgaDEgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBmb250LXNpemU6IDIuNWVtOwogICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgfQogICAKICAgIC5oYW5kYm9vay1oZWFkZXIgLnN1YnRpdGxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1yZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMS4zZW07CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgfQogICAKICAgIC5oYW5kYm9vay1oZWFkZXIgLnllYXIgewogICAgICAgIGZvbnQtc2l6ZTogMS4xZW07CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWJ0bi1jb250YWluZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHggYXV0bzsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stYnRuIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHBhZGRpbmc6IDE1cHggMzBweDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMS4xZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzOwogICAgfQogICAKICAgIC5oYW5kYm9vay1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICMxYjVlMjA7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgfQogICAKICAgIC50b2MtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWxpZ2h0KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1nY2FzLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDMwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAgCiAgICAudG9jLWNvbnRhaW5lciBoMiB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgZm9udC1zaXplOiAxLjVlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7CiAgICB9CiAgIAogICAgLnRvYy1saXN0IHsKICAgICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGNvbHVtbnM6IDI7CiAgICAgICAgY29sdW1uLWdhcDogNDBweDsKICAgIH0KICAgCiAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAudG9jLWxpc3QgewogICAgICAgICAgICBjb2x1bW5zOiAxOwogICAgICAgIH0KICAgIH0KICAgCiAgICAudG9jLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkOwogICAgfQogICAKICAgIC50b2MtbGlzdCBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1kYXJrKTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOwogICAgfQogICAKICAgIC50b2MtbGlzdCBhOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICB9CiAgIAogICAgLnRvYy1zZWN0aW9uIHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KICAgCiAgICAuc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ2Nhcy1ib3JkZXIpOwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OwogICAgfQogICAKICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ2Nhcy1ncmVlbiksICM0Y2FmNTApOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7CiAgICAgICAgbWFyZ2luOiA0MHB4IDAgMzBweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CiAgIAogICAgLnNlY3Rpb24taGVhZGVyIGgyIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxLjhlbTsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogICAKICAgIGgzIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgZm9udC1zaXplOiAxLjRlbTsKICAgICAgICBtYXJnaW4tdG9wOiAzNXB4OwogICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdjYXMtYm9yZGVyKTsKICAgIH0KICAgCiAgICBoNCB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZGFyayk7CiAgICAgICAgZm9udC1zaXplOiAxLjE1ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMjVweDsKICAgIH0KICAgCiAgICBwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJlbTsKICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OwogICAgfQogICAKICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4OwogICAgfQogICAKICAgIGxpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CiAgIAogICAgLmluZm8tYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZTNmMmZkOwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzE5NzZkMjsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwOwogICAgfQogICAKICAgIC53YXJuaW5nLWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjNlMDsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNmNTdjMDA7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICAgIH0KICAgCiAgICAuaW1wb3J0YW50LWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZjZTRlYzsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWdjYXMtcmVkKTsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwOwogICAgfQogICAKICAgIC5oaWdobGlnaHQtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZThmNWU5OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICAgIH0KICAgCiAgICB0YWJsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBmb250LXNpemU6IDAuOTVlbTsKICAgIH0KICAgCiAgICB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHBhZGRpbmc6IDEycHggMTVweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICB9CiAgIAogICAgdGQgewogICAgICAgIHBhZGRpbmc6IDEycHggMTVweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ2Nhcy1ib3JkZXIpOwogICAgfQogICAKICAgIHRyOm50aC1jaGlsZChldmVuKSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICB9CiAgIAogICAgLmNvbnRhY3QtaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICAgICAgcGFkZGluZzogMjVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbjogMzBweCBhdXRvOwogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICB9CiAgIAogICAgLmNvbnRhY3QtaW5mbyBwIHsKICAgICAgICBtYXJnaW46IDVweCAwOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgCiAgICAuZ3JhZGUtc2NhbGUgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxNTBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIG1hcmdpbjogMjBweCAwOwogICAgfQogICAKICAgIC5ncmFkZS1pdGVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWxpZ2h0KTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgCiAgICAuZ3JhZGUtaXRlbSBzdHJvbmcgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgIH0KICAgCiAgICAucHJvZ3JhbXMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICB9CiAgIAogICAgLnByb2dyYW0tY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICAgICAgcGFkZGluZzogMTVweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgfQogICAKICAgIC5iYWNrLXRvLXRvcCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgIH0KICAgCiAgICAuYmFjay10by10b3A6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICMxYjVlMjA7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWZvb3RlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBtYXJnaW4tdG9wOiA1MHB4OwogICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgfQogICAKICAgIC5oYW5kYm9vay1mb290ZXItaW5uZXIgewogICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgIAogICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmhhbmRib29rLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTVweDsKICAgICAgICB9CiAgICAgICAKICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDsKICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDsKICAgICAgICB9CiAgICAgICAKICAgICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7CiAgICAgICAgfQogICAgICAgCiAgICAgICAgLmhhbmRib29rLWhlYWRlciBoMSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44ZW07CiAgICAgICAgfQogICAgfQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iaGFuZGJvb2std3JhcHBlciI+Cgo8aGVhZGVyIGNsYXNzPSJoYW5kYm9vay1oZWFkZXIiIGlkPSJ0b3AiPgogICAgPGgxPkdDQVMgQ29sbGVnZSBEdWJsaW48L2gxPgogICAgPHAgY2xhc3M9InN1YnRpdGxlIj5UaGUgR2xvYmFsIENlbnRyZSBmb3IgQWR2YW5jZWQgU3R1ZGllczwvcD4KICAgIDxwIGNsYXNzPSJ5ZWFyIj5TdHVkZW50IEhhbmRib29rIDIwMjU8L3A+CjwvaGVhZGVyPgoKPGRpdiBjbGFzcz0iaGFuZGJvb2stYnRuLWNvbnRhaW5lciI+CiAgICA8YSBocmVmPSJodHRwczovL2djYXMuaWUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDMvR0NBUy1SZXNlYXJjaGVycy1TdHVkZW50LUhhbmRib29rLVVwZGF0ZWQtMjAyNi5wZGYiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iaGFuZGJvb2stYnRuIj5SZWFkIHRoZSBFbnRpcmUgSGFuZGJvb2s8L2E+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY29udGFjdC1pbmZvIj4KICAgIDxwPjxzdHJvbmc+QWRkcmVzczo8L3N0cm9uZz4gMzgvMzkgRml0endpbGxpYW0gU3F1YXJlLCBEdWJsaW4gMiwgSXJlbGFuZDwvcD4KICAgIDxwPjxzdHJvbmc+UGhvbmU6PC9zdHJvbmc+ICszNTMgODcgNzU0IDE0MTc8L3A+CiAgICA8cD48c3Ryb25nPkVtYWlsOjwvc3Ryb25nPiA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+PC9wPgogICAgPHA+PHN0cm9uZz5XZWJzaXRlOjwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL2djYXMuaWUiIHRhcmdldD0iX2JsYW5rIj5nY2FzLmllPC9hPjwvcD4KPC9kaXY+Cgo8bmF2IGNsYXNzPSJ0b2MtY29udGFpbmVyIiBpZD0idG9jIj4KICAgIDxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+CiAgICA8dWwgY2xhc3M9InRvYy1saXN0Ij4KICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5JbnRyb2R1Y3Rpb248L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI292ZXJ2aWV3Ij5PdmVydmlldyAmYW1wOyBQaGlsb3NvcGh5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNhY2NyZWRpdGF0aW9uIj5BY2NyZWRpdGF0aW9uPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNmYWN1bHR5Ij5GYWN1bHR5ICZhbXA7IExlYWRlcnNoaXA8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gMTogU3R1ZGVudCBMaWZlPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNjb2RlLW9mLXRydXN0Ij5Db2RlIG9mIFRydXN0ICZhbXA7IFBsZWRnZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYWRtaXNzaW9ucyI+QWRtaXNzaW9uczwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjbm9tYWRpYy1sZWFybmluZyI+Tm9tYWRpYyBMZWFybmluZzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjdHJhbnNmZXIiPlRyYW5zZmVyICZhbXA7IENyZWRpdCBSZWNvZ25pdGlvbjwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjaW50ZXJuYXRpb25hbCI+SW50ZXJuYXRpb25hbCBTdHVkZW50czwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiAyOiBBY2FkZW1pYyBQb2xpY2llczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjcGxhZ2lhcmlzbSI+UGxhZ2lhcmlzbSBQb2xpY3k8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3N1cGVydmlzaW9uIj5BY2FkZW1pYyBTdXBlcnZpc2luZzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYXR0ZW5kYW5jZSI+QXR0ZW5kYW5jZSAmYW1wOyBBYnNlbmNlPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNncmFkaW5nIj5HcmFkaW5nIFNjYWxlPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiN3aXRoZHJhd2luZyI+V2l0aGRyYXdpbmcgZnJvbSBhIENvdXJzZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZGlzY2lwbGluYXJ5Ij5EaXNjaXBsaW5hcnkgUG9saWN5PC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDM6IEZpbmFuY2VzPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNmaW5hbmNpYWwtYWlkIj5GaW5hbmNpYWwgQWlkPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNmZWVzIj5BZGRpdGlvbmFsIEZlZXM8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gNDogRGVncmVlIFByb2dyYW1zPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNiYS1wcm9ncmFtIj5CQSBQcm9ncmFtPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNtYS1wcm9ncmFtcyI+TUEgUHJvZ3JhbXM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3RoZXNpcy1yZXF1aXJlbWVudHMiPlRoZXNpcyBSZXF1aXJlbWVudHM8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gNTogUGhEIFByb2dyYW1zPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNwaGQtb3ZlcnZpZXciPlBoRCBPdmVydmlldzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZGlzc2VydGF0aW9uIj5EaXNzZXJ0YXRpb24gUmVxdWlyZW1lbnRzPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNwaGQtZGVmZW5zZSI+UGhEIERlZmVuc2U8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gNjogU3R1ZGVudCBBZ3JlZW1lbnRzPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNsaWFiaWxpdHkiPkV2ZW50IEF0dGVuZGFuY2UgJmFtcDsgTGlhYmlsaXR5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiN0dWl0aW9uLXBheW1lbnQiPlR1aXRpb24gUGF5bWVudCBPYmxpZ2F0aW9uczwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjcmVjb3JkaW5nLXBvbGljeSI+UmVjb3JkaW5nICZhbXA7IE1lZGlhIFBvbGljeTwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiA3OiBDb2xsZWdlIFBvbGljaWVzPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNkYXRhLXByb3RlY3Rpb24iPkRhdGEgUHJvdGVjdGlvbjwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZXF1YWwtb3Bwb3J0dW5pdHkiPkVxdWFsIE9wcG9ydHVuaXR5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNidWxseWluZyI+QW50aS1CdWxseWluZyBQb2xpY3k8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2FpLXBvbGljeSI+QUkgaW4gQWNhZGVtaWMgV3JpdGluZzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZGlzYWJpbGl0eSI+RGlzYWJpbGl0eSBBY2NvbW1vZGF0aW9uczwvYT48L2xpPgogICAgPC91bD4KPC9uYXY+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+SW50cm9kdWN0aW9uPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9Im92ZXJ2aWV3Ij4KICAgIDxoMz5PdmVydmlldzwvaDM+CiAgICA8cD5XZWxjb21lIHRvIEdDQVMgQ29sbGVnZSBEdWJsaW4sIEx0ZC4gVGhlIEdsb2JhbCBDZW50cmUgZm9yIEFkdmFuY2VkIFN0dWRpZXMgKGhlbmNlZm9ydGggIkdDQVMiIG9yICJHQ0FTIENvbGxlZ2UiKS4gVGhpcyBpcyBhIHNob3J0ZW5lZCB2ZXJzaW9uIG9mIHRoZSBIYW5kYm9vayBvbiB0aGlzIHBhZ2UuIFdlIGFyZSBjb21taXR0ZWQgdG8gcHJvdmlkaW5nIHlvdSB3aXRoIHRoZSByZXNvdXJjZXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgYW5kIGVuY291cmFnZSB5b3VyIHJlc2VhcmNoIGZpbmRpbmdzLiBBbHRob3VnaCBHQ0FTIGhhcyBvbmUgb2YgdGhlIGJlc3QgZmFjdWx0aWVzIGF2YWlsYWJsZSBpbiB0aGUgZmllbGRzIG9mIHBoaWxvc29waHksIGFydCBwZXJmb3JtYW5jZSwgcHN5Y2hvYW5hbHlzaXMsIHRoZW9sb2d5LCBwb2xpdGljcywgYW5kIG90aGVyIGZpZWxkcywgaXQgaXMgdXAgdG8gdGhlIHN0dWRlbnQgdG8gZGVjaWRlIGlmIEdDQVMgaXMgdGhlIGJlc3QgZml0IGZvciB0aGVpciByZXNlYXJjaCBhaW1zIGFuZCBvYmplY3RpdmVzLjwvcD4KICAgCiAgICA8cD5HQ0FTIGlzIGEgY29sbGVnZSBvZmZlcmluZyBCQSwgTUEsIGFuZCBQaEQgZGVncmVlcyBvbmxpbmUgYW5kIGF0IHRpbWVzIGluLXBlcnNvbiBzZXR0aW5ncyBhbmQgdGhyb3VnaCBvdXIgcHVibGljbHkgYXZhaWxhYmxlIHByb2dyYW1zIGluIG91ciBFU2Nob29sLiBXZSBhcmUgY29tbWl0dGVkIHRvIGRlYnQtZnJlZSBoaWdoLXF1YWxpdHkgZWR1Y2F0aW9uIGluIGFuIGVjb2xvZ2ljYWxseSwgY29sbGFib3JhdGl2ZSBhbmQgZWNvbm9taWNhbGx5IHN1c3RhaW5hYmxlIHdheS48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0iaGlnaGxpZ2h0LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5PdXIgTWlzc2lvbjo8L3N0cm9uZz4gSGlnaC1xdWFsaXR5LCBkZWJ0LWZyZWUgZWR1Y2F0aW9uIHRoYXQgcHJvdmlkZXMgdGhlIHJlc291cmNlcyBmb3IgY3JlYXRpdmUgYW5kIG5ldyByZXNlYXJjaCB0aGF0IGlzIG5vdCBwb3NzaWJsZSBpbiBhIHRyYWRpdGlvbmFsIHVuaXZlcnNpdHkgc2V0dGluZy4gV2UgYmVsaWV2ZSB0aGF0IGVkdWNhdGlvbiBpcyBpbmhlcmVudGx5IGFuIGludGVyc3ViamVjdGl2ZSBleHBlcmllbmNlIHRoYXQgcmVxdWlyZXMgc2hhcmluZyBpZGVhcyBvcGVubHksIHByb3Bvc2luZyBhbmQgZXN0YWJsaXNoaW5nIG5ldyBhbmQgYm9sZCBsaW5lcyBvZiB0aGlua2luZyBhbmQgYWN0aW9ucyBpbiByaWdvcm91cyBzY2llbnRpZmljIHdheXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+R0NBUyBob2xkcyBpbiByZXNpZGVuY2Ugc2VtaW5hcnMgZm9yIHNob3J0IHBlcmlvZHMgb2YgdGltZSBpbiBkaWZmZXJlbnQgbG9jYXRpb25zLiBXZSd2ZSBoZWxkIHNlbWluYXJzIGluIEhhdmFuYSwgQ3ViYTsgQmVybGluOyBQcmFndWU7IEF0aGVuczsgTWFyaWJvciwgU2xvdmVuaWE7IFBhcmlzOyBOZXcgWW9yazsgQ2luY2lubmF0aSwgT2hpbzsgR3JhbmQgUmFwaWRzLCBNaWNoaWdhbjsgTWV4aWNvIENpdHk7IGFuZCBCb2dvdMOhIENvbG9tYmlhLCB0byBuYW1lIGEgZmV3LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJhY2NyZWRpdGF0aW9uIj4KICAgIDxoMz5BY2NyZWRpdGF0aW9uPC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBvZmZlcnMgc2V2ZXJhbCBhY2NyZWRpdGVkIGRlZ3JlZSBwcm9ncmFtbWVzIGluIHRoZSBFdXJvcGVhbiBVbmlvbiB0aHJvdWdoIG91ciBwYXJ0bmVyc2hpcCB3aXRoIFdvb2xmOjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtcy1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPlBoLkQuIGluIHRoZSBIdW1hbml0aWVzIGFuZCBTb2NpYWwgU2NpZW5jZXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPlBoLkQuIGluIHRoZSBOYXR1cmFsIFNjaWVuY2VzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NQSBpbiBQaGlsb3NvcGh5PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NQSBpbiBQc3ljaG9hbmFseXNpczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TUEgaW4gVGhlb2xvZ3k8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPk1BIGluIFBvbGl0aWNzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NYXN0ZXIgb2YgTGF3cyAoTEwuTS4pPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5CQSBpbiBJbnRlcmRpc2NpcGxpbmFyeSBTdHVkaWVzPC9kaXY+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJmYWN1bHR5Ij4KICAgIDxoMz5MZWFkZXJzaGlwICZhbXA7IEZhY3VsdHk8L2gzPgogICAgPHA+R0NBUyBDb2xsZWdlIGlzIG93bmVkIGFuZCBvcGVyYXRlZCBieSBmYWN1bHR5LCBzdGFmZiwgYW5kIGdyYWR1YXRlcyBvZiBHQ0FTIENvbGxlZ2UuIE91ciBnb3Zlcm5hbmNlIHN0cnVjdHVyZSBpbmNsdWRlczo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkJvYXJkIG9mIFRydXN0ZWVzPC9saT4KICAgICAgICA8bGk+QWNhZGVtaWMgQ291bmNpbDwvbGk+CiAgICAgICAgPGxpPlF1YWxpdHkgQXNzdXJhbmNlIENvbW1pc3Npb248L2xpPgogICAgICAgIDxsaT5FdGhpY3MgQ29tbWl0dGVlPC9saT4KICAgIDwvdWw+CiAgIAogICAgPHA+R0NBUyB3YXMgZm91bmRlZCBieSBEci4gQ3Jlc3RvbiBEYXZpcyBpbiAyMDEzIHN0ZW1taW5nIGZyb20gYW4gaWRlYSBoZSBjb25jZWl2ZWQgaW4gMTk5OSB3aGlsZSBhIHN0dWRlbnQgYXQgWWFsZSBVbml2ZXJzaXR5LiBJbiAyMDE4IEdDQVMgbW92ZWQgZnJvbSB0aGUgVW5pdGVkIFN0YXRlcyB0byBEdWJsaW4sIElyZWxhbmQgZm9yIHNldmVyYWwgcmVhc29uIHN1cHJlbWUgYW1vbmcgdGhlbSBiZWluZyBhY2FkZW1pYyBmcmVlZG9tLiBJbXBvcnRhbnRseSwgR0NBUyBDb2xsZWdlIGlzIG93bmVkIGJ5IHRoZSBmYWN1bHR5IGFuZCBncmFkdWF0ZXMgd2hvIHNoYXJlIG93bmVyc2hpcCB0b2dldGhlci4gV2hlbiBhIHN0dWRlbnQgaXMgYWNjZXB0ZWQgaW50byBvdXIgQ29sbGVnZSB0aGV5IHdpbGwgYmUgdHJhaW5lZCBhbmQgc3VwcG9ydGVkIGJ5IHRoZSBmYWN1bHR5IGFuZCBzdGFmZiB3aXRoIHRoZSBpbnRlbnQgdG8gaW52aXRlIHRoZSBzdHVkZW50IGludG8gdGhlIG93bmVyc2hpcCBjb21tdW5pdHkgb2YgR0NBUyBDb2xsZWdlIER1YmxpbiBvbmNlIHRoZXkgZ3JhZHVhdGUuPC9wPgogICAKICAgIDxoND5QdWJsaWNhdGlvbnM8L2g0PgogICAgPHA+V2UgYWxzbyBwdWJsaXNoIGFuIG9ubGluZSBtYWdhemluZSBhbmQgcGVlci1yZXZpZXdlZCBhY2FkZW1pYyBqb3VybmFsLCA8c3Ryb25nPlRoZSBHQ0FTIFJldmlldzwvc3Ryb25nPi48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gMTogU3R1ZGVudCBDb21tdW5pdHkgTGlmZSAmYW1wOyBSZXNwb25zaWJpbGl0aWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImNvZGUtb2YtdHJ1c3QiPgogICAgPGgzPlRoZSBHQ0FTIENvZGUgb2YgVHJ1c3QgYW5kIFBsZWRnZTwvaDM+CiAgICA8cD5CZWluZyBhIHN0dWRlbnQtcmVzZWFyY2hlciBhdCBHQ0FTIENvbGxlZ2UgRHVibGluIG1lYW5zIGJlbG9uZ2luZyB0byBvdXIgYWNhZGVtaWMgY29tbXVuaXR5LiBPdXIgYWNhZGVtaWMgY29tbXVuaXR5IHJlcXVpcmVzIHRoYXQgYWxsIG1lbWJlcnMgYWx3YXlzIGFjdCBpbiB0aGUgbW9zdCBlc3RlZW1lZCBldGhpY2FsIHdheXMgcG9zc2libGUuIFRoaXMgaXMgYmVjYXVzZSBpZiBhbmQgd2hlbiBhIHN0dWRlbnQgZ3JhZHVhdGVzIGZyb20gR0NBUyBDb2xsZWdlIER1YmxpbiwgdGhlIGZhY3VsdHkgYW5kIEFsdW1uaSBtYXkgaW52aXRlIHRoZW0gdG8gYmVjb21lIGNvLW93bmVycyBvZiBHQ0FTIENvbGxlZ2UgRHVibGluLjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkNvcmUgVmFsdWVzOjwvc3Ryb25nPiBXZSB0cnVzdCB0aGF0IHdlIGFyZSBjcmVhdGluZyBhIGRpZmZlcmVudCBraW5kIG9mIEhpZ2hlciBFZHVjYXRpb25hbCBJbnN0aXR1dGlvbiwgb25lIHRoYXQgaXMgbm90IGNvbmNlcm5lZCB3aXRoIG1hdGVyaWFsIGdhaW4sIGJ1dCByYXRoZXIgbWFraW5nIGEgZGlmZmVyZW5jZSBmaXJzdCBhbmQgZm9yZW1vc3QgaW4gdGhlIGxpdmVzIG9mIHRoZSB5b3VuZ2VyIGdlbmVyYXRpb24gYW5kIGZvciB0aGUgZnV0dXJlIGZsb3VyaXNoaW5nIG9mIGFsbCBsaXZpbmcgYmVpbmdzIGluIG91ciB3b3JsZC48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5BbGwgc3R1ZGVudHMgYW5kIG1lbWJlcnMgb2Ygb3VyIGNvbW11bml0eSBtdXN0IHNpZ24gYW5kIGFncmVlIHRvIGFiaWRlIGJ5IG91ciBDb2RlIG9mIFRydXN0LiBDb250YWN0IDxhIGhyZWY9Im1haWx0bzpjb250YWN0QGdjYXMuaWUiPmNvbnRhY3RAZ2Nhcy5pZTwvYT4gdG8gc3VibWl0IHlvdXIgc2lnbmVkIGZvcm0uPC9wPgogICAKICAgIDxoND5TdHVkZW50IEV4cGVjdGF0aW9uczwvaDQ+CiAgICA8cD5BIHN0dWRlbnQgaW4gdGhlIEJBLCBNQSBvciBQaEQgcHJvZ3JhbW1lcyBpcyBhIG1lbWJlciBvZiBhIGhpZ2gtcXVhbGl0eSBhY2FkZW1pYyBjb21tdW5pdHkgd2l0aGluIHRoZSBDb2xsZWdlLiBTaG91bGQgYSBzdHVkZW50IG5vdCBsaXZlIHVwIHRvIG91ciB3b3JsZC1jbGFzcyByZXB1dGF0aW9uIGJ5IGFkdmVyc2UgYWN0aXZpdGllcyBzdWNoIGFzIGx5aW5nLCBjaGVhdGluZywgb3IgaGFybWluZyBvdGhlcnMgaW4gb3VyIGNvbW11bml0eSBvciBvdGhlcnMgb3V0c2lkZSBvdXIgY29tbXVuaXR5IHRoZW4gdGhleSB3aWxsIGJlIHdhcm5lZCBhYm91dCB0aGVpciBiZWhhdmlvdXIuIFNob3VsZCBzdWNoIHdhcm5pbmdzIG5vdCBzdG9wIHRoZSBkaXNyZXNwZWN0ZnVsIGJlaGF2aW91ciBpbiBxdWVzdGlvbiB0aGVuIHRoZSBzdHVkZW50IG1heSBiZSBwbGFjZWQgb24gcHJvYmF0aW9uIG9yIGNvdWxkIGV2ZW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBjb21tdW5pdHkuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImFkbWlzc2lvbnMiPgogICAgPGgzPkFkbWlzc2lvbnM8L2gzPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlJlYWQgQmVmb3JlIFlvdSBBcHBseTo8L3N0cm9uZz4gR0NBUyBpcyBhbiBhY2NyZWRpdGVkIGluc3RpdHV0aW9uIG9mIGhpZ2hlciBlZHVjYXRpb24gaW4gdGhlIEV1cm9wZWFuIFVuaW9uIHZpYSBvdXIgcGFydG5lcnNoaXAgd2l0aCBXb29sZiBVbml2ZXJzaXR5LiBQbGVhc2UgYmUgYXdhcmUgdGhhdCBtb3N0IGJ1dCBub3QgYWxsIGRlZ3JlZSBwcm9ncmFtbWVzIGFyZSBhY2NyZWRpdGVkIGF0IHRoaXMgdGltZS4gSWYgeW91IGhhdmUgYSBxdWVzdGlvbiBhYm91dCB0aGlzIHBsZWFzZSBhc2sgdXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+VG8gYmUgY29uc2lkZXJlZCBmb3IgYWRtaXNzaW9uIGludG8gR0NBUyBDb2xsZWdlLCBwcm9zcGVjdGl2ZSBzdHVkZW50cyBtdXN0IGNvbXBsZXRlIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzIHRocm91Z2ggUGhhc2UgMSBhbmQgUGhhc2UgMi4gSW5mb3JtYXRpb24gYWJvdXQgdGhlc2UgcGhhc2VzIGNhbiBiZSBmb3VuZCBvbiBvdXIgcmVzcGVjdGl2ZSBkZWdyZWUgcHJvZ3JhbW1lIHdlYnBhZ2VzLjwvcD4KICAgCiAgICA8aDQ+UHJlcmVxdWlzaXRlcyBmb3IgQWNjZXB0YW5jZTwvaDQ+CiAgICA8cD5PdXIgcmVzZWFyY2hlcnMgY29tZSBmcm9tIHNvbWUgb2YgdGhlIGJlc3QgYWNhZGVtaWMgaW5zdGl0dXRpb25zIGluIHRoZSB3b3JsZCwgaW5jbHVkaW5nIEpvaG5zIEhvcGtpbnMgVW5pdmVyc2l0eSwgQ29sdW1iaWEgVW5pdmVyc2l0eSwgTG9uZG9uIFNjaG9vbCBvZiBFY29ub21pY3MsIFN3YXJ0aG1vcmUsIFlhbGUgVW5pdmVyc2l0eSwgTmV3IFlvcmsgVW5pdmVyc2l0eSwgQ2FtYnJpZGdlLCBPeGZvcmQsIGFuZCBDYXNlIFdlc3Rlcm4gUmVzZXJ2ZSBVbml2ZXJzaXR5LjwvcD4KICAgCiAgICA8cD5Ib3dldmVyLCBhcyBhIHJlc2VhcmNoIGluc3RpdHV0ZSBhbmQgY29sbGVnZSB0aGF0IGlzIGNoYWxsZW5naW5nIHRyYWRpdGlvbmFsIGFjYWRlbWlhLCB3ZSBhdHRyYWN0IGFwcGxpY2FudHMgd2hvIGJyaW5nIGRpdmVyc2UgYmFja2dyb3VuZHMsIGV4cGVyaWVuY2VzLCBhbmQgZnJlc2ggcGVyc3BlY3RpdmVzIHRvIHRoZSBjb252ZXJzYXRpb24gYW5kIHJlc2VhcmNoLjwvcD4KICAgCiAgICA8aDQ+VHVpdGlvbiBPdmVydmlldzwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+QkEgUHJvZ3JhbW1lOjwvc3Ryb25nPiDigqwzLDUwMCBwZXIgeWVhcjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+TUEgJmFtcDsgUGhEIFByb2dyYW1tZXM6PC9zdHJvbmc+IOKCrDYsMDAwIHBlciB5ZWFyPC9saT4KICAgIDwvdWw+CiAgICA8cD5OZWFybHkgMTAwJSBmaW5hbmNpYWwgYWlkIHBhY2thZ2VzIGFyZSBvZmZlcmVkIHRvIGFsbCBSZXNlYXJjaGVycy9TdHVkZW50cyB3aG8gYXJlIGFjY2VwdGVkLiBHQ0FTJ3MgZmluYW5jaWFsIGFpZCBwYWNrYWdlcyBjb21lIGluIHRoZSBmb3JtIG9mIHR1aXRpb24gcmVkdWN0aW9uLjwvcD4KICAgCiAgICA8aDQ+QXBwbGljYXRpb24gUmV2aWV3PC9oND4KICAgIDxwPkFsbCBhcHBsaWNhdGlvbnMgYXJlIHJldmlld2VkIGJ5IG91ciBBZG1pc3Npb25zIENvbW1pdHRlZSBjaGFpcmVkIGJ5IGEgR0NBUyBGYWN1bHR5IG1lbWJlci4gQWNjZXB0YW5jZSBpcyBoaWdobHkgc2VsZWN0aXZlIGZvciBhbGwgb3VyIGRlZ3JlZSBwcm9ncmFtbWVzLiBQYXJ0IG9mIG91ciBhc3Nlc3NtZW50IGNyaXRlcmlhIGlzIHRvIGVuc3VyZSBHQ0FTIGhhcyB0aGUgY2FwYWNpdHkgYW5kIHJlc291cmNlcyB0byBmdWxseSBzdXBwb3J0IHRoZSBhcHBsaWNhbnQncyByZXNlYXJjaCBwcm9wb3NhbC48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0ibm9tYWRpYy1sZWFybmluZyI+CiAgICA8aDM+R0NBUyBOb21hZGljIExlYXJuaW5nOiAiVGhlIFdvcmxkIGlzIG91ciBDbGFzc3Jvb20iPC9oMz4KICAgIDxwPkZyb20gdGhlIGZpcnN0IGluY2VwdGlvbiBvZiBUaGUgR2xvYmFsIENlbnRlciBmb3IgQWR2YW5jZWQgU3R1ZGllcyAoR0NBUykgd2UgaGF2ZSBjcmVhdGVkIG5ldyBhbmQgaW5ub3ZhdGl2ZSBzcGFjZXMgb2YgbGVhcm5pbmcgYW5kIGFwcGxpZWQgY3JlYXRpdmUgYW5kIGNyaXRpY2FsIHRoaW5raW5nLiBXZSBoYXZlIG9jY3VwaWVkIGRvemVucyBvZiBzcGFjZXMgYXJvdW5kIHRoZSB3b3JsZCBmcm9tIHRoZSBDZW50cmUgUG9tcGlkb3UgaW4gUGFyaXMsIHRvIGEgbXVzZXVtIGluIEJlcmxpbiwgVGhlIEJyb29rbHluIENvbW1vbnMgaW4gTmV3IFlvcmsgQ2l0eSwgdG8gVGhlIE1hcnRpbiBMdXRoZXIgS2luZywgSnIgQ2VudHJlIGluIEhhdmFuYSwgQ3ViYS48L3A+CiAgIAogICAgPGg0PlByZXZpb3VzIEdDQVMgSW5zdGl0dXRlcyAmYW1wOyBDb25mZXJlbmNlczwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjFzdCBBbm51YWwsICJCYWRpb3Ugb24gQmFkaW91IiAoSnVseSAyMDE0KTwvbGk+CiAgICAgICAgPGxpPjJuZCwgIkRlbW9jcmFjeSBSaXNpbmciIEF0aGVucywgR3JlZWNlIChKdWx5IDIwMTUpPC9saT4KICAgICAgICA8bGk+M3JkLCAiRGVtb2NyYWN5IFJpc2luZyIgUGhpbGFkZWxwaGlhIChKdW5lIDIwMTYpPC9saT4KICAgICAgICA8bGk+NHRoLCAiUHJhY3RpY2luZyBJbnRlbGxlY3R1YWwgUmVzaXN0YW5jZSIgTWFyaWJvciwgU2xvdmVuaWEgKEp1bHkgMjAxNyk8L2xpPgogICAgICAgIDxsaT41dGgsICJBZXN0aGV0aWMgUmVzaXN0YW5jZSAmYW1wOyBQZXJmb3JtYW5jZSIgRnJhbmNlIChKdW5lIDIwMTgpPC9saT4KICAgICAgICA8bGk+NnRoLCAiUGhpbG9zb3BoeSBhcyBhIE1vZGUgb2YgUHJvZHVjdGlvbiIgRnJhbmNlIChKdW5lIDIwMTkpPC9saT4KICAgICAgICA8bGk+N3RoLCAiQWVzdGhldGljcyBhbmQgdGhlIFBvbGl0aWNhbCIgTWV4aWNvIENpdHkgKE9jdCAyMDIxKTwvbGk+CiAgICAgICAgPGxpPkdDQVMgQmVsZmFzdCBFdmVudCAoMjAyMik8L2xpPgogICAgICAgIDxsaT44dGgsICJUcmFuc2dyZXNzaXZlIFRob3VnaHQgYW5kIHRoZSBDb3VudGVyZmVpdHMgb2YgQ3JlYXRpdml0eSIgUHJhZ3VlIChKdW5lIDIwMjMpPC9saT4KICAgICAgICA8bGk+OXRoLCAiR0NBUyBQYXJpcyBXZWVrIiAoTWF5IDIwMjQpPC9saT4KICAgICAgICA8bGk+MTB0aCwgIkdDQVMgUGFyaXMgV2VlayIgKE1heSAyMDI1KTwvbGk+CiAgICA8L3VsPgogICAKICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkV2ZW50IEF0dGVuZGFuY2U6PC9zdHJvbmc+IEFsbCBzdHVkZW50cywgZmFjdWx0eSwgYW5kIGF0dGVuZGVlcyB3aG8gYXR0ZW5kIGFueSBHQ0FTIENvbGxlZ2UgZXZlbnRzIGluIHBlcnNvbiBtdXN0IGZpcnN0IHNpZ24gYSBMaWFiaWxpdHkgUmVsZWFzZSBGb3JtLiBBbGwgYXR0ZW5kZWVzIHdpbGwgY29tbWl0IHRvIG5vbi12aW9sZW50IGFuZCByZXNwZWN0ZnVsIG1lYW5zIG9mIGV4Y2hhbmdlLjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InRyYW5zZmVyIj4KICAgIDxoMz5UcmFuc2ZlcnJpbmcgJmFtcDsgQ3JlZGl0IFJlY29nbml0aW9uPC9oMz4KICAgIDxwPlN0dWRlbnRzIHdobyB0cmFuc2ZlciBpbnRvIFRoZSBHcmFkdWF0ZSBTY2hvb2wgb2YgR0NBUyBDb2xsZWdlIER1YmxpbiBmcm9tIG90aGVyIGluc3RpdHV0aW9ucyBvZiBoaWdoZXIgZWR1Y2F0aW9uIG1heSB0cmFuc2ZlciBwcmV2aW91c2x5IGF3YXJkZWQgY3JlZGl0IHJlY2VpdmVkIGZyb20gYW5vdGhlciBpbnN0aXR1dGlvbiBvZiBoaWdoZXIgZWR1Y2F0aW9uIHNvIGxvbmcgYXMgdGhhdCBpbnN0aXR1dGlvbiBpcyBhY2NyZWRpdGVkIGFuZCB5b3VyIHRyYW5zZmVyIGlzIGF1dGhvcmlzZWQgYnkgdGhlIEdDQVMgQ2hhbmNlbGxvci48L3A+CiAgIAogICAgPGg0PkNyZWRpdCBSZWNvZ25pdGlvbiBmb3IgQWx0ZXJuYXRpdmUgTGVhcm5pbmcgRXhwZXJpZW5jZXM8L2g0PgogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBoYXMgYSBwcm9jZXNzIGJ5IHdoaWNoIHdlIHJlY29nbmlzZSBhbHRlcm5hdGl2ZSBsZWFybmluZyBleHBlcmllbmNlcyBpbmNsdWRpbmcgZW1wbG95bWVudCBhbmQgb3RoZXIgcmVsZXZhbnQgZXhwZXJpZW5jZXMsIGFuZCBjYW4gZ3JhbnQgY3JlZGl0IGhvdXJzIGZvciBzdWNoIGV4cGVyaWVuY2VzIHByb3ZpZGVkIHRoYXQgZG9jdW1lbnRhdGlvbiBpcyBwcm92aWRlZC48L3A+CiAgIAogICAgPGg0PkR1YWwgRW5yb2xtZW50IFBvbGljeTwvaDQ+CiAgICA8cD5JdCBpcyBub3QgdGhlIG5vcm1hbCBwcmFjdGljZSBvZiBHQ0FTIENvbGxlZ2UgRHVibGluIHRvIGFjY2VwdCBhIHN0dWRlbnQgd2hvIGlzIGFsc28gZW5yb2xsZWQgaW4gYW5vdGhlciB1bml2ZXJzaXR5LiBIb3dldmVyLCBpbiBleGNlcHRpb25hbCBjYXNlcywgYW4gYXBwbGljYW50IG1heSByZXF1ZXN0IHRoZSBBcHBsaWNhdGlvbnMgQ29tbWl0dGVlIHRvIGNvbnNpZGVyIGFjY2VwdGFuY2UgYXMgYSAiRHVhbCBFbnJvbGxlZCIgc3R1ZGVudC48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iaW50ZXJuYXRpb25hbCI+CiAgICA8aDM+SW50ZXJuYXRpb25hbCBTdHVkZW50czwvaDM+CiAgIAogICAgPGg0PkVuZ2xpc2ggTGFuZ3VhZ2UgUmVxdWlyZW1lbnRzPC9oND4KICAgIDxwPkFwcGxpY2FudHMgd2hvc2UgZmlyc3QgbGFuZ3VhZ2UgaXMgbm90IEVuZ2xpc2ggbXVzdCBkZW1vbnN0cmF0ZSBldmlkZW5jZSBvZiB0aGVpciBwcm9maWNpZW5jeSBpbiBFbmdsaXNoIHZpYSBvbmUgb2YgdGhlIGZvbGxvd2luZzo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkNvbXBsZXRlZCBhIG1pbmltdW0gb2Ygb25lIHllYXIgZWR1Y2F0aW9uIGluIGEgcHJlZG9taW5hbnRseSBFbmdsaXNoLXNwZWFraW5nIGNvdW50cnkgd2l0aGluIHRoZSBwcmV2aW91cyAxOCBtb250aHM8L2xpPgogICAgICAgIDxsaT5Xb3JrIGV4cGVyaWVuY2Ugb2YgYXQgbGVhc3QgMTggbW9udGhzIGluIGEgcHJlZG9taW5hbnRseSBFbmdsaXNoLXNwZWFraW5nIGNvdW50cnk8L2xpPgogICAgICAgIDxsaT5TdWZmaWNpZW50bHkgaGlnaCBxdWFsaWZpY2F0aW9uIHNjb3JlIG9uIGFwcHJvdmVkIGV4YW1pbmF0aW9uczwvbGk+CiAgICAgICAgPGxpPkEgZGVncmVlIGZyb20gYW4gYWNjcmVkaXRlZCBpbnN0aXR1dGlvbiB0YXVnaHQgaW4gRW5nbGlzaDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5BY2NlcHRlZCBFbmdsaXNoIFByb2ZpY2llbmN5IFRlc3RzPC9oND4KICAgIDx0YWJsZT4KICAgICAgICA8dGJvZHk+PHRyPgogICAgICAgICAgICA8dGg+VGVzdDwvdGg+CiAgICAgICAgICAgIDx0aD5NaW5pbXVtIFNjb3JlPC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPklFTFRTPC90ZD4KICAgICAgICAgICAgPHRkPkdyYWRlIDYuNSBvdmVyYWxsPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlRPRUZMPC90ZD4KICAgICAgICAgICAgPHRkPjg4IEludGVybmV0LWJhc2VkIC8gNTcwIHBhcGVyLWJhc2VkPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkNhbWJyaWRnZSBQcm9maWNpZW5jeS9BZHZhbmNlZDwvdGQ+CiAgICAgICAgICAgIDx0ZD5HcmFkZSBDIG9yIGJldHRlciAoQ0VGUiBMZXZlbCBDMSBvciBDMik8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+UGVhcnNvbiBQVEUgQWNhZGVtaWM8L3RkPgogICAgICAgICAgICA8dGQ+TWluaW11bSA2MyAobm8gc2VjdGlvbiBiZWxvdyA1OSk8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+CiAgICA8cD48ZW0+Tm90ZTogVGVzdCBzY29yZXMgYXJlIG9ubHkgdmFsaWQgZm9yIHR3byB5ZWFycyBwcmlvciB0byBhcHBseWluZy48L2VtPjwvcD4KICAgCiAgICA8aDQ+VmlzYSBSZXF1aXJlbWVudHM8L2g0PgogICAgPHA+QmVjYXVzZSB3ZSBvZmZlciBjb3Vyc2VzIG9ubGluZSBhbmQgaW4gbG93LXJlc2lkZW50aWFsIHdheXMsIGEgc3R1ZGVudCBzaG91bGRuJ3QgZXhwZWN0IHZpc2EgYmFja2luZyBmcm9tIEdDQVMgQ29sbGVnZSBEdWJsaW4uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHN0dWRlbnQgdmlzYXMsIHBsZWFzZSBjb25zdWx0IHRoZSBEZXBhcnRtZW50IG9mIEZvcmVpZ24gQWZmYWlycyB3ZWJzaXRlLjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiAyOiBHZW5lcmFsIEFjYWRlbWljIFBvbGljaWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InBsYWdpYXJpc20iPgogICAgPGgzPlBsYWdpYXJpc20gUG9saWN5PC9oMz4KICAgIDxwPlBsYWdpYXJpc20gaXMgdGhlIGFjdCBvciBpbnN0YW5jZSBvZiB1c2luZyBvciBjbG9zZWx5IGltaXRhdGluZyB0aGUgbGFuZ3VhZ2UgYW5kIHRob3VnaHRzIG9mIGFub3RoZXIgYXV0aG9yIHdpdGhvdXQgYXV0aG9yaXNhdGlvbiBvciB0aGUgcHJlc2VudGF0aW9uIG9mIHRoYXQgYXV0aG9yJ3Mgd29yayBhcyBvbmUncyBvd24uPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+WmVybyBUb2xlcmFuY2U6PC9zdHJvbmc+IEdDQVMgbW9zdCBmdW5kYW1lbnRhbGx5IGlzIGEgcGxhY2UgaW4gd2hpY2ggYm9sZCBhbmQgbmV3IHJlc2VhcmNoIGlzIGVuY291cmFnZWQsIGFzIHdlbGwgYXMgdGhlIGNyZWF0aW9uIG9mIG5ldyB0aGlua2luZyBwYXJhZGlnbXMuIFBsYWdpYXJpc20gaXMgdGhlIGFjdCBvZiAidW50aGlua2luZyIgYW5kIGEgZm9ybSBvZiBpbnRlbGxlY3R1YWwgZGlzaG9uZXN0eS4gR0NBUyBzdHJvbmdseSBjb25kZW1ucyBhbnkgYWN0cyBvZiBwbGFnaWFyaXNtIHVubGVzcyB0aG9zZSBhY3RzIGFyZSBzaG93biB0byBiZSBhbiBhcnRpc3RpYyBvciBwZXJmb3JtYXRpdmUgYWN0IHRoYXQgaGFzIGJlZW4gcHJlLWFwcHJvdmVkIGJ5IGZhY3VsdHkuPC9wPgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0ic3VwZXJ2aXNpb24iPgogICAgPGgzPkFjYWRlbWljIFN1cGVydmlzaW5nPC9oMz4KICAgIDxwPkFsbCBzdHVkZW50cyBhcmUgaW5pdGlhbGx5IGFzc2lnbmVkIGFuIEFjYWRlbWljIFN1cGVydmlzb3IuIFRoZSBzdHVkZW50J3MgQWNhZGVtaWMgU3VwZXJ2aXNvciB3aWxsIGVuc3VyZSB0aGUgc3R1ZGVudCB1bmRlcnN0YW5kcyB0aGUgYWNhZGVtaWMgZXhwZWN0YXRpb25zIGFuZCBwb2xpY2llcyB0aHJvdWdoIHRoZSBpbml0aWFsIGFkdmlzb3J5IG1lZXRpbmcuIFN0dWRlbnRzIHNob3VsZCBtZWV0IHdpdGggdGhlaXIgc3VwZXJ2aXNvciBhYm91dCBvbmNlIGEgbW9udGguPC9wPgogICAKICAgIDxoND5DaGFuZ2luZyBBY2FkZW1pYyBTdXBlcnZpc29yczwvaDQ+CiAgICA8cD5BZnRlciB0aGUgZmlyc3QgdGVybSwgdGhlIHN0dWRlbnQgbWF5IHdpc2ggdG8gY2hhbmdlIHRoZWlyIEFjYWRlbWljIFN1cGVydmlzb3IuIFRvIGRvIHRoaXMsIGVtYWlsIHRoZSBDaGFuY2VsbG9yIG9yIFJlZ2lzdHJhci48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYXR0ZW5kYW5jZSI+CiAgICA8aDM+QXR0ZW5kYW5jZSBhbmQgQWJzZW5jZSBQb2xpY3k8L2gzPgogICAgPHA+SW4gb3JkZXIgdG8gYmUgYSBzdWNjZXNzZnVsIHN0dWRlbnQgYXQgR0NBUyBDb2xsZWdlIER1YmxpbiwgYSBzdHVkZW50IG11c3QgYXR0ZW5kOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+TGVjdHVyZXM8L2xpPgogICAgICAgIDxsaT5DbGFzc2VzPC9saT4KICAgICAgICA8bGk+TW9udGhseSBwZWVyIGdyb3VwIG1lZXQtdXBzPC9saT4KICAgICAgICA8bGk+TW9udGhseSBhY2FkZW1pYyBzdXBlcnZpc2lvbiBtZWV0aW5nczwvbGk+CiAgICAgICAgPGxpPk90aGVyIGV2ZW50cyBhcyByZXF1aXJlZDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkxpdmUgQ291cnNlIFBvbGljeTo8L3N0cm9uZz4gV2Ugc3Ryb25nbHkgZW5jb3VyYWdlIGFsbCBzdHVkZW50cyB0byBhdHRlbmQgbGl2ZSBjb3Vyc2VzLiBJZiB0aGUgY291cnNlIGlzIGhhcHBlbmluZyBiZXR3ZWVuIDggYS5tLiBhbmQgOCBwLm0uIGluIHlvdXIgbG9jYWwgdGltZSB6b25lLCB3ZSBleHBlY3QgYXR0ZW5kYW5jZS4gU3R1ZGVudHMgbWF5IG1pc3MgdXAgdG8gMiBsaXZlIGNsYXNzIHNlc3Npb25zIHdpdGhvdXQgcGVuYWx0eS48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8aDQ+QWJzZW5jZSBSZXF1aXJlbWVudHM8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT5JZiBhYnNlbnQsIHBvc3QgYSAyNTAtd29yZCByZXNwb25zZSB0byB0aGUgbGVjdHVyZSB3aXRoaW4gMyBkYXlzIGFmdGVyIHRoZSByZWNvcmRpbmcgaXMgcG9zdGVkPC9saT4KICAgICAgICA8bGk+TGVhdmluZyBtb3JlIHRoYW4gMjAlIG9mIGNsYXNzIGVhcmx5IGNvdW50cyBhcyBhbiBhYnNlbmNlPC9saT4KICAgICAgICA8bGk+MyBhYnNlbmNlczogRmluYWwgZ3JhZGUgcmVkdWNlZCBieSAxIHVuaXQ8L2xpPgogICAgICAgIDxsaT40IGFic2VuY2VzOiBGaW5hbCBncmFkZSByZWR1Y2VkIGJ5IGFub3RoZXIgdW5pdDwvbGk+CiAgICAgICAgPGxpPjUrIGFic2VuY2VzOiBGYWlsdXJlIG9mIHRoZSBjb3Vyc2U8L2xpPgogICAgPC91bD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJncmFkaW5nIj4KICAgIDxoMz5HcmFkaW5nIFNjYWxlPC9oMz4KICAgIDxwPlRoZSBncmFkaW5nIHNjYWxlIGlzIGZyb20gMSB0byAxMCB3aXRoIDEwIGJlaW5nIHRoZSBoaWdoZXN0IGdyYWRlIGFjaGlldmFibGU6PC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImdyYWRlLXNjYWxlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjEwPC9zdHJvbmc+IC0gSGlnaGVzdCBhY2hpZXZhYmxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz45PC9zdHJvbmc+IC0gRXhjZWxsZW50PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz44PC9zdHJvbmc+IC0gVmVyeSBHb29kPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz43PC9zdHJvbmc+IC0gR29vZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+Njwvc3Ryb25nPiAtIFBhc3NhYmxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz41PC9zdHJvbmc+IC0gRmFpbHVyZSAobWF5IHJldGFrZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjQ8L3N0cm9uZz4gLSBGYWlsdXJlIChtYXkgcmV0YWtlKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+Mzwvc3Ryb25nPiAtIEZhaWx1cmUgKG5vIHJldGFrZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjI8L3N0cm9uZz4gLSBGYWlsdXJlIChubyByZXRha2UpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz4xPC9zdHJvbmc+IC0gRmFpbHVyZSAobm8gcmV0YWtlKTwvZGl2PgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0id2l0aGRyYXdpbmciPgogICAgPGgzPldpdGhkcmF3aW5nIGZyb20gYSBDb3Vyc2U8L2gzPgogICAgPHA+QSBzdHVkZW50IG1heSB3aXRoZHJhdyBmcm9tIGFueSBjb3Vyc2UgYXQgYW55IHRpbWU7IGhvd2V2ZXIsIHRoZXJlIGFyZSBkaWZmZXJlbnQgY29uc2VxdWVuY2VzOjwvcD4KICAgCiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPldpdGhkcmF3YWwgUGVyaW9kPC90aD4KICAgICAgICAgICAgPHRoPkNvbnNlcXVlbmNlPC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkJlZm9yZSAybmQgY2xhc3MgbWVldGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5ObyBjb25zZXF1ZW5jZXMsIG5vIGdyYWRlIG9yIGNyZWRpdDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5CZWZvcmUgNHRoIGNsYXNzIG1lZXRpbmc8L3RkPgogICAgICAgICAgICA8dGQ+Q2FuIGNsYWltIDUwJSBvZiB0dWl0aW9uIGZ1bmRzLCBubyBncmFkZSBvciBjcmVkaXQ8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+QmVmb3JlIDV0aCBjbGFzcyBtZWV0aW5nPC90ZD4KICAgICAgICAgICAgPHRkPk5vIHR1aXRpb24gcmVpbWJ1cnNlbWVudCwgbm8gZ3JhZGUgb3IgY3JlZGl0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkFmdGVyIDZ0aCBjbGFzcyBtZWV0aW5nPC90ZD4KICAgICAgICAgICAgPHRkPldpbGwgcmVjZWl2ZSBhIGdyYWRlIGZvciB0aGUgY291cnNlPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImRpc2NpcGxpbmFyeSI+CiAgICA8aDM+RGlzY2lwbGluYXJ5IFBvbGljeTwvaDM+CiAgICA8cD5BbGwgR0NBUyBDb2xsZWdlIHN0dWRlbnRzIGFyZSBleHBlY3RlZCB0byBjb25kdWN0IHRoZW1zZWx2ZXMgaW4gYSByZXNwZWN0ZnVsIGFuZCBwcm9mZXNzaW9uYWwgbWFubmVyIGF0IGFsbCB0aW1lcy48L3A+CiAgIAogICAgPGg0PktpbmRzIG9mIERpc2NpcGxpbmFyeSBBY3Rpb248L2g0PgogICAgPHVsPgogICAgICAgIDxsaT5PZmZpY2lhbCBSZXByaW1hbmQ8L2xpPgogICAgICAgIDxsaT5BY2FkZW1pYyBQcm9iYXRpb248L2xpPgogICAgICAgIDxsaT5UZW1wb3JhcnkgU3VzcGVuc2lvbjwvbGk+CiAgICAgICAgPGxpPkZvcmNlZCBMZWF2ZSBvZiBBYnNlbmNlPC9saT4KICAgICAgICA8bGk+U3VzcGVuc2lvbiBmb3IgMSBZZWFyPC9saT4KICAgICAgICA8bGk+VGVybWluYXRpb248L2xpPgogICAgICAgIDxsaT5UZXJtaW5hdGlvbiB3aXRob3V0IHRoZSBwcml2aWxlZ2Ugb2YgcmVhcHBseWluZzwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5Qcm9jZWR1cmU8L2g0PgogICAgPHA+U2hvdWxkIGEgc3R1ZGVudCBiZSBzdXNwZWN0ZWQgb2YgdmlvbGF0aW5nIGEgcG9saWN5IG9yIGNvZGUgb2YgR0NBUyBDb2xsZWdlLCB0aGV5IHdpbGwgYmUgZm9ybWFsbHkgbm90aWZpZWQgYnkgdGhlIERlYW4gb2YgU3R1ZGVudCBBZmZhaXJzIHZpYSBlbWFpbC4gVGhlIHN0dWRlbnQgY2FuIGFkbWl0IHZpb2xhdGlvbiBpbiB3cml0aW5nLCBvciBjbGFpbSBpbm5vY2VuY2UgYW5kIHJlY2VpdmUgYSBmYWlyIGRlZmVuc2UgaW4gYW4gRXRoaWNzIENvbW1pdHRlZSBWaW9sYXRpb24gSGVhcmluZy48L3A+CiAgIAogICAgPGg0PkxlYXZlIG9mIEFic2VuY2U8L2g0PgogICAgPHA+QSBzdHVkZW50IG1heSBhcHBseSBmb3IgYSBtZWRpY2FsIGxlYXZlIG9mIGFic2VuY2UgYW5kL29yIGEgcGF1c2UgaW4gdGhlaXIgc3R1ZGllcy4gVGhlIGNvc3Qgb2YgYSBsZWF2ZSBvZiBhYnNlbmNlIGlzIOKCrDUwMC48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gMzogR0NBUyBDb2xsZWdlIEVjb25vbXk8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZmluYW5jaWFsLWFpZCI+CiAgICA8aDM+RmluYW5jaWFsIEFpZDwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0iaGlnaGxpZ2h0LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz4xMDAlIE9GIEFMTCBHQ0FTIENPTExFR0UgU1RVREVOVFMgUkVDRUlWRSBTT01FIEZJTkFOQ0lBTCBBSUQ8L3N0cm9uZz48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5HQ0FTIENvbGxlZ2UgRHVibGluIGlzIGNvbW1pdHRlZCB0byBwcm92aWRpbmcgdGhlIGhpZ2hlc3QgcXVhbGl0eSBlZHVjYXRpb24gYXQgdGhlIGxvd2VzdCBwb3NzaWJsZSBjb3N0LiBUaGVyZSBhcmUgdGhyZWUgd2F5cyB3ZSBoZWxwIHN0dWRlbnRzOjwvcD4KICAgIDxvbD4KICAgICAgICA8bGk+RXh0cmVtZWx5IGxvdyB0dWl0aW9uIGZvciBoaWdoZXIgcXVhbGl0eSBlZHVjYXRpb248L2xpPgogICAgICAgIDxsaT5BbGwgc3R1ZGVudHMgcmVjZWl2ZSB0dWl0aW9uIHJlbWlzc2lvbiBzdXBwb3J0OyBzb21lIHJlY2VpdmUgNTAlIGFuZCBpbiByYXJlIG9jY2FzaW9ucyAxMDAlIHNjaG9sYXJzaGlwczwvbGk+CiAgICAgICAgPGxpPkZsZXhpYmxlIHBheW1lbnQgc2NoZWR1bGVzPC9saT4KICAgIDwvb2w+CiAgIAogICAgPGg0PlRoZSBXYXJyZW4gVC4gRGF2aXMsIEpyIFNjaG9sYXJzaGlwPC9oND4KICAgIDxwPkdDQVMgb2ZmZXJzIGEgdW5pcXVlIHNjaG9sYXJzaGlwIG9wcG9ydHVuaXR5IHRoYXQgcHJvdmlkZXMgdGhlIHJlY2lwaWVudCB3aXRoIHVwIHRvIDEwMCUgdHVpdGlvbiByZW1pc3Npb24uIFRoaXMgc2Nob2xhcnNoaXAgaXMgc2V0IGFzaWRlIGZvciBCQSwgTUEgYW5kIFBoRCBSZXNlYXJjaGVycyB3aG8gYXJlIGFjY2VwdGVkIGludG8gR0NBUy48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZmVlcyI+CiAgICA8aDM+QWRkaXRpb25hbCBGZWVzPC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5TdGF5IG9uIFRyYWNrLCBTdGF5IERlYnQtRnJlZTo8L3N0cm9uZz4gTk8gRVhUUkEgRkVFUyBJRiBZT1UgR1JBRFVBVEUgT04gVElNRS4gQWRkaXRpb25hbCBmZWVzIGFwcGx5IG9ubHkgaW4gZXhjZXB0aW9uYWwgY2lyY3Vtc3RhbmNlcy48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8aDQ+RmVlIFN1bW1hcnk8L2g0PgogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5GZWUgVHlwZTwvdGg+CiAgICAgICAgICAgIDx0aD5BcHBsaWVzIFRvPC90aD4KICAgICAgICAgICAgPHRoPldoZW4gRmVlcyBBcHBseTwvdGg+CiAgICAgICAgICAgIDx0aD5Nb250aGx5IENvc3Q8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+Q29udGludWF0aW9uIEZlZTwvdGQ+CiAgICAgICAgICAgIDx0ZD5NQSwgQkEsIFBoRDwvdGQ+CiAgICAgICAgICAgIDx0ZD5BZnRlciBncmFjZSBwZXJpb2QsIGZvciBlYWNoIGFkZGl0aW9uYWwgbW9udGg8L3RkPgogICAgICAgICAgICA8dGQ+4oKsMjUwPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkV4dHJhb3JkaW5hcnkgU3VwZXJ2aXNpb24gKE1BKTwvdGQ+CiAgICAgICAgICAgIDx0ZD5NQSB0aGVzaXMgd3JpdGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5JZiBzdXBlcnZpc2lvbiBleGNlZWRzIDMgbW9udGhzPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5FeHRyYW9yZGluYXJ5IFN1cGVydmlzaW9uIChQaEQpPC90ZD4KICAgICAgICAgICAgPHRkPlBoRDwvdGQ+CiAgICAgICAgICAgIDx0ZD5EdXJpbmcgMyBub24tYnVkZ2V0ZWQgbW9udGhzIChzdW1tZXIgYnJlYWspPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BZGRpdGlvbmFsIFN1cGVydmlzb3IgKFBoRCk8L3RkPgogICAgICAgICAgICA8dGQ+UGhEIChZZWFyIDIgb3IgMyk8L3RkPgogICAgICAgICAgICA8dGQ+Rm9yIGVhY2ggbW9udGggd2l0aCBhZGRpdGlvbmFsIHN1cGVydmlzb3I8L3RkPgogICAgICAgICAgICA8dGQ+4oKsMTUwPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgogICAKICAgIDxoND5Db250aW51YXRpb24gRmVlczwvaDQ+CiAgICA8cD5HQ0FTIHByb3ZpZGVzIGNsZWFybHkgZGVmaW5lZCB0aW1lbGluZXMgZm9yIGRlZ3JlZSBjb21wbGV0aW9uOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBwcm9ncmFtczo8L3N0cm9uZz4gMTIgbW9udGhzPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CQSBhbmQgUGhEIHByb2dyYW1zOjwvc3Ryb25nPiAzNiBtb250aHM8L2xpPgogICAgPC91bD4KICAgIDxwPkEgdHdvLW1vbnRoIGdyYWNlIHBlcmlvZCBpcyBncmFudGVkIGF0IG5vIGFkZGl0aW9uYWwgY29zdC4gQWZ0ZXIgdGhpcywgYSBtb250aGx5IGNvbnRpbnVhdGlvbiBmZWUgb2Yg4oKsMjAwIHdpbGwgYmUgY2hhcmdlZC48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gNDogQkEgYW5kIE1BIERlZ3JlZSBQcm9ncmFtbWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImJhLXByb2dyYW0iPgogICAgPGgzPkJhY2hlbG9yIG9mIEludGVyZGlzY2lwbGluYXJ5IFN0dWRpZXMgKEJBLUlTKTwvaDM+CiAgICA8cD48c3Ryb25nPkRpcmVjdG9yOjwvc3Ryb25nPiBNYXJpbyBEJ0FtYXRvPC9wPgogICAgPHA+UGxlYXNlIHJlZmVyIHRvIHRoZSBHQ0FTIHdlYnNpdGUgZm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgcHJvZ3JhbW1lLjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJtYS1wcm9ncmFtcyI+CiAgICA8aDM+TUEgUHJvZ3JhbW1lczwvaDM+CiAgICA8cD5UaGUgTUEgcHJvZ3JhbW1lcyBhcmUgYmFzZWQgb24gY291cnNld29yayBhbmQgcmVzZWFyY2ggYW5kIHJhbmdlIGluIGxlbmd0aCBmcm9tIG9uZSB0byB0d28geWVhcnMuIFN0dWRlbnRzIGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSA5MCBFQ1RTIGNyZWRpdCBob3Vycywgd2hpY2ggaW5jbHVkZTo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkNvdXJzZXdvcms8L2xpPgogICAgICAgIDxsaT5Nb250aGx5IHN1cGVydmlzaW9uPC9saT4KICAgICAgICA8bGk+TUEgVGhlc2lzIHBlZXIgbWVudG9yIGhvdXJzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PlByb2dyYW1tZSBEaXJlY3RvcnM8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFBoaWxvc29waHk6PC9zdHJvbmc+IENyZXN0b24gRGF2aXMsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+TUEgaW4gUHN5Y2hvYW5hbHlzaXM6PC9zdHJvbmc+IEZsb3JpYW4gS2xlaW5hdSwgUGhEPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBpbiBQb2xpdGljczo8L3N0cm9uZz4gRnJhbmNpc2NvIEdvbnphbGVzLCBQaEQ8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFRoZW9sb2d5Ojwvc3Ryb25nPiBCYXJyeSBUYXlsb3IsIFBoRDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5TdXBlcnZpc2VkIEd1aWRlZCBSZXNlYXJjaDwvaDQ+CiAgICA8cD5UaGUgY29yZSBvZiB0aGlzIHByb2dyYW1tZSBpcyBndWlkZWQgYW5kIHN1cGVydmlzZWQgaW5kaXZpZHVhbCByZXNlYXJjaCBmcm9tIG9uZSBvZiBHQ0FTIENvbGxlZ2UncyBmYWN1bHR5IG1lbWJlcnMuIFlvdSBhcmUgcmVxdWlyZWQgdG8gbWVldCBhdCBsZWFzdCBvbmNlIHBlciBtb250aCB3aXRoIHlvdXIgYXNzaWduZWQgQWNhZGVtaWMgU3VwZXJ2aXNvci48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBTaG91bGQgYSBzdHVkZW50IHNlZWsgYSBzdXBlcnZpc29yIG91dHNpZGUgdGhlIGNvcmUgR0NBUyBmYWN1bHR5LCB0aGV5IG11c3QgZmlyc3QgYXJyYW5nZSB0aGlzIHZpYSB0aGUgQ2hhbmNlbGxvciwgRHIuIENyZXN0b24gRGF2aXMuIFRoZXJlIHdpbGwgbm9ybWFsbHkgYmUgYW4gZXh0cmEgZmVlIG9mIOKCrDEwMCBwZXIgbW9udGggZm9yIGV4dGVybmFsIHN1cGVydmlzb3JzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxoND5NYXN0ZXJzIENvbXByZWhlbnNpdmUgRXhhbWluYXRpb24gKE1DRSk8L2g0PgogICAgPHA+RWFjaCBzdHVkZW50IHdpbGwgYmUgcmVxdWlyZWQgdG8gdGFrZSBhbmQgc3VjY2Vzc2Z1bGx5IHBhc3MgdGhlIE1DRS4gVGhpcyBleGFtaW5hdGlvbiBpcyBhIGZvdXItaG91ciwgd3JpdHRlbiBleGFtaW5hdGlvbi4gU3R1ZGVudHMgY2FuIHVzZSBleHRlcm5hbCBtYXRlcmlhbHMgZHVyaW5nIHRoaXMgZXhhbWluYXRpb24uPC9wPgogICAgPHVsPgogICAgICAgIDxsaT5UaGUgZXhhbWluYXRpb24gY29uc2lzdHMgb2Ygb25lIG9yIHR3byBxdWVzdGlvbnMgb24gdGhlIHJlc2VhcmNoIHRvcGljPC9saT4KICAgICAgICA8bGk+TXVzdCBiZSBwcm9jdG9yZWQgYnkgYSBHQ0FTIGZhY3VsdHkgbWVtYmVyIG9yIGFwcHJvdmVkIHByb2N0b3I8L2xpPgogICAgICAgIDxsaT5HcmFkZWQgYXMgIlBhc3MiIG9yICJGYWlsIjwvbGk+CiAgICAgICAgPGxpPklmIGZhaWxlZCwgY2FuIHJldGFrZSBhZnRlciAzMCBkYXlzPC9saT4KICAgICAgICA8bGk+SWYgdGhlIHJldGFrZSBpcyBmYWlsZWQsIHRoZSBzdHVkZW50IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBwcm9ncmFtbWU8L2xpPgogICAgPC91bD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0aGVzaXMtcmVxdWlyZW1lbnRzIj4KICAgIDxoMz5NQSBUaGVzaXMgUmVxdWlyZW1lbnRzPC9oMz4KICAgCiAgICA8aDQ+TGVuZ3RoPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+TWluaW11bTogMjAsMDAwIHdvcmRzPC9saT4KICAgICAgICA8bGk+TWF4aW11bTogNDAsMDAwIHdvcmRzIChleGNsdWRpbmcgYmlibGlvZ3JhcGh5IGFuZCBhcHBlbmRpY2VzKTwvbGk+CiAgICAgICAgPGxpPkFic29sdXRlIG1heGltdW06IDUwLDAwMCB3b3JkczwvbGk+CiAgICAgICAgPGxpPkZvb3Rub3RlcyAmYW1wOyBjaXRhdGlvbnM6IFNob3VsZCBub3QgZXhjZWVkIDIwJSBvZiB0aGUgVGhlc2lzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkZvcm1hdDwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkVsZW1lbnQ8L3RoPgogICAgICAgICAgICA8dGg+UmVxdWlyZW1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TWFyZ2luczwvdGQ+CiAgICAgICAgICAgIDx0ZD4xIGluY2ggb24gYWxsIHNpZGVzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQ8L3RkPgogICAgICAgICAgICA8dGQ+VGltZXMgTmV3IFJvbWFuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQgU2l6ZTwvdGQ+CiAgICAgICAgICAgIDx0ZD4xMnB0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNwYWNpbmc8L3RkPgogICAgICAgICAgICA8dGQ+RG91YmxlPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkNpdGF0aW9uIFN0eWxlPC90ZD4KICAgICAgICAgICAgPHRkPkNoaWNhZ28sIE1MQSwgb3IgQVBBIChtdXN0IGJlIGNvbnNpc3RlbnQgdGhyb3VnaG91dCk8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+CiAgIAogICAgPGg0PlRoZXNpcyBEZWZlbnNlPC9oND4KICAgIDxwPlRoZSBNQSBEZWZlbnNlIGlzIGV4cGVjdGVkIHRvIGxhc3QgYWJvdXQgb25lIGhvdXI6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT41IG1pbnV0ZXM6IEludHJvZHVjdGlvbiBieSBBY2FkZW1pYyBTdXBlcnZpc29yPC9saT4KICAgICAgICA8bGk+MTAgbWludXRlczogU3R1ZGVudCBzdW1tYXJpc2VzIHRoZXNpczwvbGk+CiAgICAgICAgPGxpPjIwIG1pbnV0ZXM6IENvbW1pdHRlZSBleGFtaW5hdGlvbjwvbGk+CiAgICAgICAgPGxpPjUgbWludXRlczogU3R1ZGVudCBzdW1tYXJ5PC9saT4KICAgICAgICA8bGk+MTUgbWludXRlczogQ29tbWl0dGVlIHByaXZhdGUgZGlzY3Vzc2lvbjwvbGk+CiAgICAgICAgPGxpPjUgbWludXRlczogR3JhZGUgYW5ub3VuY2VtZW50PC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkRlZmVuc2UgR3JhZGVzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5BLjwvc3Ryb25nPiBQYXNzIHdpdGggRGlzdGluY3Rpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkIuPC9zdHJvbmc+IFBhc3Mgd2l0aG91dCBSZXZpc2lvbjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Qy48L3N0cm9uZz4gUGFzcyB3aXRoIE1pbm9yIFJldmlzaW9ucyAoMTgwIGRheXMgdG8gYWRkcmVzcyk8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkQuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNYWpvciBSZXZpc2lvbnMgKDE4MCBkYXlzIHRvIGFkZHJlc3MpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5FLjwvc3Ryb25nPiBGYWlsIChidXQgc3R1ZGVudCBjYW4gcmVkZWZlbmQgYWZ0ZXIgMzY1IGRheXMpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5GLjwvc3Ryb25nPiBGYWlsICh3aXRoIG5vIGZ1cnRoZXIgb3B0aW9ucyk8L2xpPgogICAgPC91bD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA1OiBQaEQgUHJvZ3JhbW1lczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJwaGQtb3ZlcnZpZXciPgogICAgPGgzPlBoRCBPdmVydmlldzwvaDM+CiAgICA8cD5HQ0FTJ3MgUGguRC4gcHJvZ3JhbW1lcyBzdHJpdmUgdG8gYmUgdGhlIGJlc3QgcmVzZWFyY2ggcHJvZ3JhbW1lIG9mIGl0cyBraW5kIGluIHRoZSB3b3JsZC48L3A+CiAgIAogICAgPGg0PkF2YWlsYWJsZSBQcm9ncmFtbWVzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5QaEQgaW4gdGhlIEh1bWFuaXRpZXMgYW5kIFNvY2lhbCBTY2llbmNlczwvc3Ryb25nPiDigJQgRGlyZWN0b3I6IENyZXN0b24gRGF2aXMsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+UGhEIGluIHRoZSBOYXR1cmFsIFNjaWVuY2VzIChNYXRoZW1hdGljcyBhbmQgUGh5c2ljcyk8L3N0cm9uZz4g4oCUIERpcmVjdG9yOiBGZXJuYW5kbyBUb2htw6ksIFBoRDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5CYXNpYyBSZXF1aXJlbWVudHM8L2g0PgogICAgPHA+R0NBUyBQaEQgcHJvZ3JhbW1lcyBhcmUgMyB5ZWFycyBpbiBsZW5ndGg6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPlllYXIgMTo8L3N0cm9uZz4gUmVzZWFyY2ggZGVzaWduLCBtZXRob2RvbG9neSBkZXZlbG9wbWVudCwgbGl0ZXJhdHVyZSByZXZpZXcsIGlkZW50aWZ5aW5nIHJlc2VhcmNoICJnYXAsIiBhbmQgZGV2ZWxvcGluZyBhIHRlbnRhdGl2ZSBoeXBvdGhlc2lzLiBPbmUgcmVxdWlyZWQgY291cnNlOiAiTWV0aG9kb2xvZ2llcyBhbmQgUmVzZWFyY2ggVGVjaG5pcXVlcyIgKG1lZXRzIDQgdGltZXMgcGVyIHllYXIpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDI6PC9zdHJvbmc+IFByb21vdGlvbiB0byAiUGhEIENhbmRpZGF0ZSIgc3RhdHVzIGFuZCBhc3NpZ25tZW50IG9mIGFuIGV4cGVydCBzdXBlcnZpc29yPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDM6PC9zdHJvbmc+IERpc3NlcnRhdGlvbiBjb21wbGV0aW9uIGFuZCBkZWZlbnNlPC9saT4KICAgIDwvdWw+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGlzc2VydGF0aW9uIj4KICAgIDxoMz5QaEQgRGlzc2VydGF0aW9uIFJlcXVpcmVtZW50czwvaDM+CiAgICA8cD5UaGUgUGhEIERpc3NlcnRhdGlvbiBpcyBhIHNjaWVudGlmaWMgZG9jdW1lbnQgY29uc2lzdGluZyBvZiBzdXN0YWluZWQsIHJpZ29yb3VzLCBhbmQgY29oZXJlbnQgcmVzZWFyY2ggdGhhdCBjb250cmlidXRlcyBzb21ldGhpbmcgb3JpZ2luYWwgdG8gYSBmaWVsZCBvciBmaWVsZHMgb2YgaW5xdWlyeS48L3A+CiAgIAogICAgPGg0PkZvcm1hdDwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkVsZW1lbnQ8L3RoPgogICAgICAgICAgICA8dGg+UmVxdWlyZW1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TGVuZ3RoPC90ZD4KICAgICAgICAgICAgPHRkPn44MCwwMDAgd29yZHMgKG1heCAxMDAsMDAwIGV4Y2x1ZGluZyBiaWJsaW9ncmFwaHkpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPk1hcmdpbnM8L3RkPgogICAgICAgICAgICA8dGQ+MS41IGluY2ggb24gYWxsIHNpZGVzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQ8L3RkPgogICAgICAgICAgICA8dGQ+VGltZXMgTmV3IFJvbWFuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQgU2l6ZTwvdGQ+CiAgICAgICAgICAgIDx0ZD4xMnB0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNwYWNpbmc8L3RkPgogICAgICAgICAgICA8dGQ+RG91YmxlPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InBoZC1kZWZlbnNlIj4KICAgIDxoMz5QaEQgRGlzc2VydGF0aW9uIERlZmVuc2U8L2gzPgogICAgPHA+VGhlIFBoRCBEaXNzZXJ0YXRpb24gRGVmZW5zZSBtdXN0IGJlIHNjaGVkdWxlZCBhdCBsZWFzdCA5MCBkYXlzIGFoZWFkLiBBbGwgY29tbWl0dGVlIG1lbWJlcnMgbXVzdCBiZSBwcmVzZW50IGVpdGhlciBpbiBwZXJzb24gb3IgdmlhIGxpdmUgb25saW5lIG1lZXRpbmcuPC9wPgogICAKICAgIDxoND5EZWZlbnNlIEZvcm1hdDwvaDQ+CiAgICA8b2w+CiAgICAgICAgPGxpPkludHJvZHVjdGlvbjwvbGk+CiAgICAgICAgPGxpPlN0dWRlbnQgcHJlc2VudHMgMy01IG1pbnV0ZSBzdW1tYXJ5PC9saT4KICAgICAgICA8bGk+UXVlc3Rpb25zIGFuZCBleGFtaW5hdGlvbiBieSBldmFsdWF0b3JzPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCByZXBsaWVzIHRvIGV4YW1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCBsZWF2ZXMgd2hpbGUgZXhhbWluZXJzIGNvbnZlbmU8L2xpPgogICAgICAgIDxsaT5HcmFkZSBkZXRlcm1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCByZXR1cm5zIGFuZCBncmFkZSBpcyBkZWxpdmVyZWQ8L2xpPgogICAgICAgIDxsaT5NZWV0aW5nIGFkam91cm5lZDwvbGk+CiAgICA8L29sPgogICAKICAgIDxoND5HcmFkZSBTY2FsZTwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+QS48L3N0cm9uZz4gUGFzcyB3aXRoIERpc3RpbmN0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CLjwvc3Ryb25nPiBQYXNzIHdpdGhvdXQgUmV2aXNpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkMuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNaW5vciBSZXZpc2lvbiAoOTAgZGF5cyB0byBzdWJtaXQgcmV2aXNpb25zKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RC48L3N0cm9uZz4gUGFzcyB3aXRoIE1ham9yIFJldmlzaW9uICgxODAgZGF5cyB0byBzdWJtaXQgcmV2aXNpb25zKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RS48L3N0cm9uZz4gRmFpbCAod2l0aCByZXN1Ym1pc3Npb24gcG9zc2libGUpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5GLjwvc3Ryb25nPiBGYWlsICh3aXRob3V0IHJlc3VibWlzc2lvbik8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+U3VibWlzc2lvbjwvaDQ+CiAgICA8cD5PbmNlIHBhc3NlZCwgdGhlIHN0dWRlbnQgbXVzdCBzdWJtaXQgdGhlIGZpbmFsIGNvcHkgd2l0aGluIDE4MCBkYXlzLiBGYWlsdXJlIHRvIHN1Ym1pdCB3aXRoaW4gMTgwIGRheXMgd2lsbCByZXN1bHQgaW4gdGhlIGRlZ3JlZSBiZWluZyByZXZva2VkLjwvcD4KICAgCiAgICA8aDQ+UmVzZWFyY2ggQmV5b25kIDMgWWVhcnM8L2g0PgogICAgPHA+SWYgZGlzc2VydGF0aW9uIHJlc2VhcmNoIHRha2VzIGxvbmdlciB0aGFuIDMgeWVhcnMsIHR1aXRpb24gZmVlcyByZW1haW4gdGhlIHNhbWUgYXMgdGhlIGZpbmFsIHllYXIgb2Ygc3R1ZHkuIEFmdGVyIFllYXIgNCwgdGhlIENoYW5jZWxsb3Igd2lsbCBhc3Nlc3MgdGhlIGZlYXNpYmlsaXR5IG9mIGNvbXBsZXRpb24uPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDY6IFN0dWRlbnQgQWdyZWVtZW50cyAmYW1wOyBPYmxpZ2F0aW9uczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJsaWFiaWxpdHkiPgogICAgPGgzPkV2ZW50IEF0dGVuZGFuY2UgJmFtcDsgTGlhYmlsaXR5PC9oMz4KICAgIDxwPldoZW4gYSBzdHVkZW50IGF0dGVuZHMgYSBHQ0FTIGV2ZW50IGluIHBlcnNvbiwgdGhleSBkbyBzbyA8c3Ryb25nPiJhdCB0aGVpciBvd24gcmlzay4iPC9zdHJvbmc+PC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+TGlhYmlsaXR5IFdhaXZlcjo8L3N0cm9uZz4gQnkgYXR0ZW5kaW5nIGFueSBHQ0FTIENvbGxlZ2UgRHVibGluIG9yIEdsb2JhbCBDZW50cmUgZm9yIEFkdmFuY2VkIFN0dWRpZXMgKCJHQ0FTIikgZXZlbnQgaW4gcGVyc29uLCBzdHVkZW50cyBhZ3JlZSB0aGF0IGluIHRoZSB1bmV4cGVjdGVkIGV2ZW50IHRoYXQgdGhleSBhcmUgaW5qdXJlZCBvciBodXJ0LCB0aGV5IHdpbGwgbm90IGhvbGQgR0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIG9yIHRoZSBHbG9iYWwgQ2VudHJlIGZvciBBZHZhbmNlZCBTdHVkaWVzICgiR0NBUyIpIHJlc3BvbnNpYmxlIGZvciBhbnkgaW5qdXJpZXMsIGRhbWFnZXMsIG9yIGxvc3NlcyBpbmN1cnJlZC48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5BbGwgc3R1ZGVudHMsIGZhY3VsdHksIGFuZCBhdHRlbmRlZXMgd2hvIGF0dGVuZCBhbnkgR0NBUyBDb2xsZWdlIGV2ZW50cyBpbiBwZXJzb24gbXVzdCBmaXJzdCBzaWduIGEgTGlhYmlsaXR5IFJlbGVhc2UgRm9ybSBhY2tub3dsZWRnaW5nIHRoaXMgcG9saWN5LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0dWl0aW9uLXBheW1lbnQiPgogICAgPGgzPlR1aXRpb24gUGF5bWVudCBPYmxpZ2F0aW9uczwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0iaW1wb3J0YW50LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5QYXltZW50IFJlcXVpcmVtZW50Ojwvc3Ryb25nPiBTdHVkZW50cyBhZ3JlZSB0byBwYXkgdGhlaXIgdHVpdGlvbiBvbiB0aW1lIGFjY29yZGluZyB0byB0aGUgcGF5bWVudCBzY2hlZHVsZSBlc3RhYmxpc2hlZCB1cG9uIGVucm9sbG1lbnQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0Pk5vbi1QYXltZW50IENvbnNlcXVlbmNlczwvaDQ+CiAgICA8cD5TaG91bGQgYSBzdHVkZW50IG5vdCBwYXkgdGhlaXIgdHVpdGlvbiBhZnRlciByZWNlaXZpbmcgYSB3YXJuaW5nIGFuZCBhZnRlciBtb3JlIHRoYW4gPHN0cm9uZz42MCBkYXlzPC9zdHJvbmc+IHdpdGhvdXQgcHJpb3IgYXBwcm92YWwgZnJvbSB0aGUgQ2hhbmNlbGxvciwgdGhleSB3aWxsIGJlIHJlbW92ZWQgZnJvbSBlbnJvbGxtZW50IGFuZCBmcm9tIEdDQVMuPC9wPgogICAKICAgIDxoND5UdWl0aW9uIENvbW1pdG1lbnQgQWZ0ZXIgQWNjZXB0YW5jZTwvaDQ+CiAgICA8cD5JZiB5b3UgYWdyZWUgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIG91ciBhY2NlcHRhbmNlIG9mZmVyLCBHQ0FTIG5lZWRzIHRvIHJlbHkgb24geW91IHRvIHBheSBmb3IgeW91ciB0dWl0aW9uIGluIGEgdGltZWx5IG1hbm5lciBhcyBhZ3JlZWQuIFRoaXMgY29tbWl0bWVudCBpcyBlc3NlbnRpYWwgZm9yIEdDQVMgdG8gbWFpbnRhaW4gaXRzIG9wZXJhdGlvbnMgYW5kIGNvbnRpbnVlIHByb3ZpZGluZyBxdWFsaXR5IGVkdWNhdGlvbi48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBTaG91bGQgeW91IHdhbnQgdG8gc3RvcCB5b3VyIHN0dWRpZXMgYWZ0ZXIgMzAgZGF5cywgeW91IGFyZSBzdGlsbCBvYmxpZ2F0ZWQgdG8gcGF5IGZvciB5b3VyIGVudGlyZSB0dWl0aW9uIGFtb3VudCB0aGF0IHlvdSBoYXZlIGFncmVlZCB0by4gVGhpcyBwb2xpY3kgZW5zdXJlcyB0aGF0IEdDQVMgY2FuIGFsbG9jYXRlIHJlc291cmNlcyBhcHByb3ByaWF0ZWx5IGFuZCBtYWludGFpbiBpdHMgY29tbWl0bWVudCB0byBhbGwgc3R1ZGVudHMuPC9wPgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0icmVjb3JkaW5nLXBvbGljeSI+CiAgICA8aDM+UmVjb3JkaW5nICZhbXA7IE1lZGlhIFBvbGljeTwvaDM+CiAgICA8cD5HQ0FTIHJlY29yZHMgb3VyIGxlY3R1cmVzIGFuZCBldmVudHMgdG8gZW5zdXJlIGFsbCBzdHVkZW50cyBoYXZlIGFjY2VzcyB0byBlZHVjYXRpb25hbCBjb250ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlaXIgbG9jYXRpb24gb3Igc2NoZWR1bGUuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkNvbnNlbnQgdG8gUmVjb3JkaW5nOjwvc3Ryb25nPiBCeSBwYXJ0aWNpcGF0aW5nIGluIEdDQVMgZXZlbnRzLCBjb3Vyc2VzLCBvciBzZW1pbmFycyBvbmxpbmUgdmlhIFpvb20gKG9yIHNpbWlsYXIgcGxhdGZvcm1zKSwgeW91IGFncmVlIHRvIGFsbG93IEdDQVMgdG8gcmVjb3JkIHRoZXNlIHNlc3Npb25zIGFuZCBwcm92aWRlIHRoZSByZWNvcmRpbmdzIHRvIEdDQVMgc3R1ZGVudHMgYW5kIHJlc2VhcmNoZXJzIHdobyBjb3VsZG4ndCBwYXJ0aWNpcGF0ZSBkdWUgdG8gdGltZS16b25lIGlzc3VlcywgaGVhbHRoIGNvbmNlcm5zLCBvciBzaW1pbGFyIGNpcmN1bXN0YW5jZXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PldoZXJlIFJlY29yZGluZ3MgQXJlIFN0b3JlZDwvaDQ+CiAgICA8cD5HQ0FTIHBvc3RzIGFuZCBzdG9yZXMgcmVjb3JkaW5ncyBpbiB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkdDQVMgQ29tbXVuaXR5IEZvcnVtPC9saT4KICAgICAgICA8bGk+Q2FudmFzIExlYXJuaW5nIE1hbmFnZW1lbnQgU3lzdGVtPC9saT4KICAgICAgICA8bGk+R0NBUyBZb3VUdWJlIENoYW5uZWw8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5UaGVzZSByZWNvcmRpbmdzIGFyZSBpbnRlbmRlZCBmb3IgZWR1Y2F0aW9uYWwgcHVycG9zZXMgYW5kIHRvIHN1cHBvcnQgdGhlIGxlYXJuaW5nIGNvbW11bml0eSBhdCBHQ0FTLjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA3OiBHQ0FTIENvbGxlZ2UgUG9saWNpZXM8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGF0YS1wcm90ZWN0aW9uIj4KICAgIDxoMz5EYXRhIFByb3RlY3Rpb24gYW5kIFJldGVudGlvbiBQb2xpY3k8L2gzPgogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIGlzIGNvbW1pdHRlZCB0byBwcm90ZWN0aW5nIHRoZSBwcml2YWN5IGFuZCBwZXJzb25hbCBkYXRhIG9mIGFsbCBzdHVkZW50cywgZmFjdWx0eSwgc3RhZmYsIGFuZCBwYXJ0bmVycyBpbiBhY2NvcmRhbmNlIHdpdGggR0RQUiBhbmQgdGhlIElyaXNoIERhdGEgUHJvdGVjdGlvbiBBY3QgMjAxOC48L3A+CiAgIAogICAgPGg0PkRhdGEgQ29udHJvbGxlcjwvaDQ+CiAgICA8cD5HQ0FTIENvbGxlZ2UgRHVibGluIExpbWl0ZWQgYWN0cyBhcyB0aGUgZGF0YSBjb250cm9sbGVyIGZvciBhZG1pbmlzdHJhdGl2ZSBhbmQgb3BlcmF0aW9uYWwgZGF0YS4gQWNhZGVtaWMgcmVjb3JkcyByZWxhdGVkIHRvIGFjY3JlZGl0YXRpb24sIHRyYW5zY3JpcHRzLCBhbmQgZ3JhZGVzIGFyZSBtYW5hZ2VkIHNlcGFyYXRlbHkgYnkgV29vbGYgVW5pdmVyc2l0eS48L3A+CiAgIAogICAgPGg0PllvdXIgUmlnaHRzIFVuZGVyIEdEUFI8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT5SaWdodCBvZiBhY2Nlc3MgKEFydGljbGUgMTUpPC9saT4KICAgICAgICA8bGk+UmlnaHQgdG8gcmVjdGlmaWNhdGlvbiAoQXJ0aWNsZSAxNik8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byBlcmFzdXJlIChBcnRpY2xlIDE3KTwvbGk+CiAgICAgICAgPGxpPlJpZ2h0IHRvIHJlc3RyaWN0aW9uIG9yIG9iamVjdGlvbiAoQXJ0aWNsZXMgMTjigJMyMSk8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byBkYXRhIHBvcnRhYmlsaXR5IChBcnRpY2xlIDIwKTwvbGk+CiAgICA8L3VsPgogICAgPHA+UmVxdWVzdHMgY2FuIGJlIHN1Ym1pdHRlZCB0byA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+LiBHQ0FTIHdpbGwgcmVzcG9uZCB3aXRoaW4gb25lIGNhbGVuZGFyIG1vbnRoLjwvcD4KICAgCiAgICA8aDQ+RGF0YSBSZXRlbnRpb24gUGVyaW9kczwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkNhdGVnb3J5PC90aD4KICAgICAgICAgICAgPHRoPlJldGVudGlvbiBQZXJpb2Q8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+U3R1ZGVudCBjb250YWN0IGFuZCBlbnJvbG1lbnQgZGF0YTwvdGQ+CiAgICAgICAgICAgIDx0ZD5VcCB0byA3IHllYXJzIGFmdGVyIGNvbXBsZXRpb24vd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5GaW5hbmNpYWwgYW5kIGludm9pY2luZyByZWNvcmRzPC90ZD4KICAgICAgICAgICAgPHRkPjcgeWVhcnMgKElyaXNoIHRheCBsYXcpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkVtYWlsIGFuZCBpbnN0aXR1dGlvbmFsIGFjY291bnQgZGF0YTwvdGQ+CiAgICAgICAgICAgIDx0ZD5EZWxldGVkIHVwb24gb2ZmaWNpYWwgd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5MZWFybmluZyBwbGF0Zm9ybSBhbmQgZm9ydW0gcG9zdHM8L3RkPgogICAgICAgICAgICA8dGQ+RGVsZXRlZC9hbm9ueW1pc2VkIHdpdGhpbiAxMiBtb250aHMgb2Ygd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJlcXVhbC1vcHBvcnR1bml0eSI+CiAgICA8aDM+RXF1YWwgRW1wbG95bWVudCBhbmQgTGVhcm5pbmcgT3Bwb3J0dW5pdHkgUG9saWN5PC9oMz4KICAgIDxwPkl0IGlzIHRoZSBwb2xpY3kgb2YgR0NBUyBDb2xsZWdlIER1YmxpbiB0byBlbnN1cmUgZXF1YWwgZW1wbG95bWVudCBhbmQgbGVhcm5pbmcgb3Bwb3J0dW5pdGllcyB3aXRob3V0IGRpc2NyaW1pbmF0aW9uIG9yIGhhcmFzc21lbnQgb24gdGhlIGJhc2VzIG9mIHJhY2UsIGNvbG9yLCBuYXRpb25hbCBvcmlnaW4sIHJlbGlnaW9uLCBzZXgsIGFnZSwgZGlzYWJpbGl0eSwgY2l0aXplbnNoaXAsIG1hcml0YWwgc3RhdHVzIG9yIGFueSBvdGhlciBjaGFyYWN0ZXJpc3RpYyBwcm90ZWN0ZWQgYnkgbGF3LjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJoaWdobGlnaHQtYm94Ij4KICAgICAgICA8cD5UaGlzIHBvbGljeSBwZXJtZWF0ZXMgYWxsIGRlY2lzaW9ucywgaW5jbHVkaW5nIHRob3NlIGludm9sdmluZyBlbXBsb3llZSBjb21wZW5zYXRpb24sIGFwcGxpY2F0aW9uIGFzc2Vzc21lbnRzLCBiZW5lZml0cywgaGlyaW5nLCBwcm9tb3Rpb24sIHRyYWluaW5nIGFuZCBkZXZlbG9wbWVudCwgYW5kIG90aGVyIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGVtcGxveW1lbnQgYW5kIGxlYXJuaW5nLjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImJ1bGx5aW5nIj4KICAgIDxoMz5QcmV2ZW50aW9uIG9mIEJ1bGx5aW5nIGFuZCBIYXJhc3NtZW50PC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlplcm8gVG9sZXJhbmNlIFBvbGljeTo8L3N0cm9uZz4gR0NBUyBDb2xsZWdlIHdpbGwgaW52ZXN0aWdhdGUgdmlnb3JvdXNseSBhbnkgYWxsZWdhdGlvbnMgb2YgYnVsbHlpbmcgb3IgaGFyYXNzbWVudCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBtYXR0ZXIgaGFzIGJlZW4gcmFpc2VkIGZvcm1hbGx5IG9yIGluZm9ybWFsbHkuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PkRlZmluaXRpb24gb2YgSGFyYXNzbWVudDwvaDQ+CiAgICA8cD5IYXJhc3NtZW50IGlzIGFueSBjb25kdWN0IHdoaWNoIGlzIHVud2FudGVkIGJ5IHRoZSByZWNpcGllbnQgYW5kIGlzIGNvbnNpZGVyZWQgb2JqZWN0aW9uYWJsZSwgY2F1c2luZyBodW1pbGlhdGlvbiwgb2ZmZW5jZSwgZGlzdHJlc3Mgb3Igb3RoZXIgZGV0cmltZW50YWwgZWZmZWN0LiBUaGlzIG1heSBpbmNsdWRlOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5QaHlzaWNhbDo8L3N0cm9uZz4gQ29udGFjdCByYW5naW5nIGZyb20gdG91Y2hpbmcgdG8gc2VyaW91cyBhc3NhdWx0LCBnZXN0dXJlcywgaW50aW1pZGF0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5WZXJiYWw6PC9zdHJvbmc+IFVud2VsY29tZSByZW1hcmtzLCBzdWdnZXN0aW9ucywgbWFsaWNpb3VzIGdvc3NpcCwgam9rZXMsIG9mZmVuc2l2ZSBsYW5ndWFnZTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Tm9uLXZlcmJhbDo8L3N0cm9uZz4gT2ZmZW5zaXZlIGxpdGVyYXR1cmUgb3IgcGljdHVyZXMsIGdyYWZmaXRpLCBpc29sYXRpb24gb3IgZXhjbHVzaW9uIGZyb20gYWN0aXZpdGllczwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5EZWZpbml0aW9uIG9mIEJ1bGx5aW5nPC9oND4KICAgIDxwPkJ1bGx5aW5nIGlzIHVzdWFsbHkgcmVwZWF0ZWQgYW5kIHBlcnNpc3RlbnQgYmVoYXZpb3VyIHdoaWNoIGlzIG9mZmVuc2l2ZSwgYWJ1c2l2ZSwgaW50aW1pZGF0aW5nLCBtYWxpY2lvdXMgb3IgaW5zdWx0aW5nLCBpbmNsdWRpbmc6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Db25kdWN0IHdoaWNoIGlzIGludGltaWRhdGluZywgcGh5c2ljYWxseSBhYnVzaXZlIG9yIHRocmVhdGVuaW5nPC9saT4KICAgICAgICA8bGk+Q29uZHVjdCB0aGF0IGRlbmlncmF0ZXMsIHJpZGljdWxlcyBvciBodW1pbGlhdGVzIGFuIGluZGl2aWR1YWw8L2xpPgogICAgICAgIDxsaT5QaWNraW5nIG9uIG9uZSBwZXJzb24gd2hlbiB0aGVyZSBpcyBhIGNvbW1vbiBwcm9ibGVtPC9saT4KICAgICAgICA8bGk+U2hvdXRpbmcgYXQgYW4gaW5kaXZpZHVhbCB0byBnZXQgdGhpbmdzIGRvbmU8L2xpPgogICAgICAgIDxsaT5TZXR0aW5nIHVucmVhbGlzdGljIHRhcmdldHMgb3IgZXhjZXNzaXZlIHdvcmtsb2FkczwvbGk+CiAgICAgICAgPGxpPkN5YmVyIGJ1bGx5aW5nIHZpYSBlbWFpbCBvciBzb2NpYWwgbWVkaWE8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+UmVzb2x1dGlvbiBQcm9jZXNzPC9oND4KICAgIDxwPkNvbXBsYWluYW50cyBhcmUgZW5jb3VyYWdlZCB0byB0cnkgaW5mb3JtYWwgcmVzb2x1dGlvbiBmaXJzdC4gSWYgdGhpcyBpcyBub3QgcG9zc2libGUgb3IgYXBwcm9wcmlhdGUsIGZvcm1hbCBjb21wbGFpbnRzIHNob3VsZCBiZSByYWlzZWQgdG8gVGhlIEV0aGljcyBDb21taXR0ZWUgdmlhIHRoZSBDb21wbGFpbnQgRm9ybS48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYWktcG9saWN5Ij4KICAgIDxoMz5Qb2xpY3kgb24gdGhlIFVzZSBvZiBBcnRpZmljaWFsIEludGVsbGlnZW5jZSAoQUkpIGluIEFjYWRlbWljIFdyaXRpbmc8L2gzPgogICAgPHA+R0NBUyBpcyBjb21taXR0ZWQgdG8gcHJlc2VydmluZyB0aGUgaGlnaGVzdCBzdGFuZGFyZHMgb2YgYWNhZGVtaWMgaW50ZWdyaXR5LCBvcmlnaW5hbGl0eSwgYW5kIGdlbnVpbmUgc2Nob2xhcmx5IGlucXVpcnkuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxoND5Qcm9oaWJpdGVkIFVzZXMgb2YgQUk8L2g0PgogICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPkRyYWZ0aW5nIG9yIHdyaXRpbmcgYW55IHBvcnRpb24gb2YgYXNzaWdubWVudHM8L2xpPgogICAgICAgICAgICA8bGk+R2VuZXJhdGluZyBhcmd1bWVudHMgb3IgZXhwbGFuYXRpb25zPC9saT4KICAgICAgICAgICAgPGxpPlByb2R1Y2luZyBvciBlZGl0aW5nIHRleHQgaW50ZW5kZWQgdG8gYXBwZWFyIGFzIHRoZSBzdHVkZW50J3Mgb3duIHdvcms8L2xpPgogICAgICAgICAgICA8bGk+UmVwaHJhc2luZyBvciByZXdyaXRpbmcgY29udGVudDwvbGk+CiAgICAgICAgICAgIDxsaT5HZW5lcmF0aW5nIGNpdGF0aW9ucywgYmlibGlvZ3JhcGhpZXMsIG9yIGxpdGVyYXR1cmUgcmV2aWV3cyAodW5sZXNzIHNwZWNpZmljYWxseSBwZXJtaXR0ZWQpPC9saT4KICAgICAgICA8L3VsPgogICAgPC9kaXY+CiAgIAogICAgPGg0PlBlcm1pdHRlZCBVc2VzIG9mIEFJPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+TG9jYXRpbmcgYmlibGlvZ3JhcGhpYyByZXNvdXJjZXM8L2xpPgogICAgICAgIDxsaT5DbGFyaWZ5aW5nIGNvbmNlcHRzIGluIGFuIGV4cGxhbmF0b3J5IG9yIHR1dG9yaW5nIGNhcGFjaXR5PC9saT4KICAgICAgICA8bGk+UmVjZWl2aW5nIGd1aWRhbmNlIG9uIGZvcm1hdHRpbmcgb3IgY2l0YXRpb24gc3R5bGVzPC9saT4KICAgICAgICA8bGk+R2VuZXJhdGluZyBhIGJhc2ljIG91dGxpbmUgdGVtcGxhdGUgdGhhdCB0aGUgc3R1ZGVudCBzaWduaWZpY2FudGx5IHJldmlzZXM8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5BbnkgcGVybWl0dGVkIHVzZSBtdXN0IGJlIGRpc2Nsb3NlZCBpbiBhbiA8c3Ryb25nPkFJIFVzZSBTdGF0ZW1lbnQ8L3N0cm9uZz4gYXQgdGhlIGVuZCBvZiB0aGUgc3VibWl0dGVkIHdvcmsuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlZpb2xhdGlvbnM6PC9zdHJvbmc+IFdpbGwgYmUgaGFuZGxlZCBpbiBhY2NvcmRhbmNlIHdpdGggR0NBUydzIEFjYWRlbWljIEludGVncml0eSBhbmQgTWlzY29uZHVjdCBwcm9jZWR1cmVzLiBSZXBlYXRlZCBvciBzZXJpb3VzIHZpb2xhdGlvbnMgbWF5IHJlc3VsdCBpbiBzYW5jdGlvbnMsIGluY2x1ZGluZyByZXZpc2lvbiByZXF1aXJlbWVudHMsIHByb2JhdGlvbiwgb3IgZGlzZW5yb2xsbWVudC48L3A+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJkaXNhYmlsaXR5Ij4KICAgIDxoMz5Qb2xpY3kgQ29uY2VybmluZyBEaXNhYmlsaXR5IGFuZCBBY2FkZW1pYyBBY2NvbW1vZGF0aW9uPC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBEdWJsaW4gaXMgY29tbWl0dGVkIHRvIGFkZHJlc3NpbmcgdGhlIGlzc3VlcyBvZiBkaXNhYmlsaXR5IGluIG91ciBzdHVkZW50IHBvcHVsYXRpb24uPC9wPgogICAKICAgIDxoND5BY2NvbW1vZGF0aW9uIFByb2Nlc3M8L2g0PgogICAgPG9sPgogICAgICAgIDxsaT5Db21wbGV0ZSB0aGUgRGlzYWJpbGl0eSBEaXNjbG9zdXJlIEZvcm08L2xpPgogICAgICAgIDxsaT5Qcm92aWRlIHN1ZmZpY2llbnQgZXZpZGVuY2UgdG8gc3VwcG9ydCB0aGUgZGlzY2xvc2VkIGRpc2FiaWxpdHkgZnJvbSBhIGhlYWx0aGNhcmUgcHJvZmVzc2lvbmFsPC9saT4KICAgICAgICA8bGk+VGhlIERlYW4gb2YgQWNhZGVtaWMgQWZmYWlycyB3aWxsIGRldGVybWluZSB0aGUgZGVncmVlIG9mIGFjYWRlbWljIGFjY29tbW9kYXRpb248L2xpPgogICAgICAgIDxsaT5UaGUgRGlzYWJpbGl0eSBEaXNjbG9zdXJlIEZvcm0gd2lsbCBvbmx5IGJlIHNoYXJlZCB3aXRoIHRoZSBEZWFuIG9mIFN0dWRlbnQgQWZmYWlycyBhbmQgdGhlIEFjYWRlbWljIERpc2FiaWxpdGllcyBBY2NvbW1vZGF0aW9uIENvbW1pc3Npb248L2xpPgogICAgPC9vbD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5HQ0FTJ3MgQ29tbWl0bWVudDo8L3N0cm9uZz4gR0NBUyBpcyBhd2FyZSB0aGF0IHRoZSBjb25jZXB0IG9mIGRpc2FiaWxpdHkgaGFzIGJlZW4gc2V2ZXJlbHkgbGltaXRlZCBieSBhIGJpbmFyeSBjb25jZXB0dWFsaXphdGlvbi4gQ3VycmVudCByZXNlYXJjaCBzaG93cyB0aGF0IHRoZSB3YXlzIG9mIGJlaW5nIGRpc2FibGVkIGFuZCB0aGUgZGVncmVlcyBvZiBkaXNhYmlsaXR5IGFyZSBoaWdobHkgdmFyaWFibGUsIHBvdGVudGlhbGx5IGluY2x1ZGluZyBwaHlzaWNhbCwgaW50ZWxsZWN0dWFsIGNhcGFjaXRpZXMsIGFuZCBzb2NpYWwgZmFjdG9ycy4gR0NBUyBob3BlcyB0byBjb250cmlidXRlIHJlc2VhcmNoIGluIHRoaXMgZmllbGQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgPGgzPkdDQVMgUmVmdW5kIFBvbGljeTwvaDM+CiAgICA8cD5PbmNlIGFuIGFwcGxpY2FudCByZWNlaXZlcyBHQ0FTJ3Mgb2ZmaWNpYWwgYWNjZXB0YW5jZSBsZXR0ZXIgdGhleSB3aWxsIGhhdmUgPHN0cm9uZz4xMCBkYXlzPC9zdHJvbmc+IHRvIGRlY2lkZSBpZiB0aGV5IGFncmVlIG9yIGRpc2FncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zLiBPbmNlIHRoZSBhcHBsaWNhbnQgYWNjZXB0cyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhleSB3aWxsIGJlIGdpdmVuIDxzdHJvbmc+MzAgZGF5czwvc3Ryb25nPiB0byBhc2sgZm9yIGEgcmVmdW5kIG1pbnVzIHRoZSBhZG1pbmlzdHJhdGlvbiBjb3N0cyBhbmQgZmVlcy4gQWZ0ZXIgMzAgZGF5cyB0aGVyZSBhcmUgbm8gcmVmdW5kcy48L3A+Cjwvc2VjdGlvbj4KCjxmb290ZXIgY2xhc3M9ImhhbmRib29rLWZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJoYW5kYm9vay1mb290ZXItaW5uZXIiPgogICAgICAgIDxwPjxzdHJvbmc+wqkgR0NBUyBDb2xsZWdlIER1YmxpbiwgTHRkLiAyMDI1PC9zdHJvbmc+PC9wPgogICAgICAgIDxwPkFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+CiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICAgICAgPGVtPiJPdXQgb2YgQXNoZXMsIGEgTmV3IExpZ2h0IjwvZW0+PGJyPgogICAgICAgICAgICA8ZW0+IklzIEx1YWl0aHJlYWNoIFNvbGFzIE51YSI8L2VtPgogICAgICAgIDwvcD4KICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMzBweDsgZm9udC1zaXplOiAwLjllbTsiPgogICAgICAgICAgICBHQ0FTIHJlc2VydmVzIHRoZSByaWdodCB0byBtb2RpZnkgcHJvZ3JhbW1lcywgcG9saWNpZXMsIGNvdXJzZSBvZmZlcmluZ3MsIHJlcXVpcmVtZW50cywgYW5kIGFueSBvdGhlciBtYXR0ZXJzIG91dGxpbmVkIGluIHRoaXMgSGFuZGJvb2sgYXQgYW55IHRpbWUgYW5kIHdpdGhvdXQgcHJpb3Igbm90aWNlLgogICAgICAgIDwvcD4KICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMjBweDsiPgogICAgICAgICAgICA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+IHwgPGEgaHJlZj0iaHR0cHM6Ly9nY2FzLmllIiB0YXJnZXQ9Il9ibGFuayI+Z2Nhcy5pZTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KPC9mb290ZXI+Cgo8L2Rpdj52AxByZXN0cmljdGlvbl90eXBldwdleGNsdWRlEnNlbGVjdGVkX2xhbmd1YWdlc3UACnBhbmVsX29wZW54dyRiYzk4NzM1ZS02OGEzLTQ5YjQtYjA3ZS0zZGRiYmU3NTIwMTd4d5kEPHA+PHN0cm9uZz5OZXcgQWRkaXRpb246PC9zdHJvbmc+IE93aW5nIHRvIHRoZSB0cmFuc2FjdGlvbmFsIGV4cGVuc2Ugb2YgbG9kZ2luZyBzaGFyZXMgdG8gZ3JhZHVhdGVzIGFuZCBmYWN1bHR5IG1lbWJlcnMsIEdDQVMgd2lsbCBiZSBhc2tpbmcgdGhvc2Ugd2hvIHF1YWxpZnkgYW5kIHNlZWsgc3RvY2sgc2hhcmVzIG9mIG93bmVyc2hpcCBpbiBHQ0FTIENvbGxlZ2UgRHVibGluIExpbWl0ZWQgdG8gcGF5IHRoZSBmZWUgb2YgbG9kZ2VtZW50LCB3aGljaCBpcyBhIGZlZSBvZiDigqwyNSBhcyBvZiAxIEphbnVhcnkgMjAyNS4gRm9yIHRoZSBleHBhbmRlZCB2ZXJzaW9uIG9mIHRoZSBHQ0FTIEhhbmRib29rLCBwbGVhc2UgcmVmZXIgdG8gPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQvZC8xdko2T1ZyR0N3cG95VGltbG96S1Q5UndQTE0zdC1WVEdOM3J0TDV3cUlwZy9lZGl0P3VzcD1zaGFyaW5nIiBzdHlsZT0iY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+dGhpcyBsaW5rPC9hPi48L3A+dwljb3JlL2h0bWx3mQQ8cD48c3Ryb25nPk5ldyBBZGRpdGlvbjo8L3N0cm9uZz4gT3dpbmcgdG8gdGhlIHRyYW5zYWN0aW9uYWwgZXhwZW5zZSBvZiBsb2RnaW5nIHNoYXJlcyB0byBncmFkdWF0ZXMgYW5kIGZhY3VsdHkgbWVtYmVycywgR0NBUyB3aWxsIGJlIGFza2luZyB0aG9zZSB3aG8gcXVhbGlmeSBhbmQgc2VlayBzdG9jayBzaGFyZXMgb2Ygb3duZXJzaGlwIGluIEdDQVMgQ29sbGVnZSBEdWJsaW4gTGltaXRlZCB0byBwYXkgdGhlIGZlZSBvZiBsb2RnZW1lbnQsIHdoaWNoIGlzIGEgZmVlIG9mIOKCrDI1IGFzIG9mIDEgSmFudWFyeSAyMDI1LiBGb3IgdGhlIGV4cGFuZGVkIHZlcnNpb24gb2YgdGhlIEdDQVMgSGFuZGJvb2ssIHBsZWFzZSByZWZlciB0byA8YSBocmVmPSJodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzF2SjZPVnJHQ3dwb3lUaW1sb3pLVDlSd1BMTTN0LVZUR04zcnRMNXdxSXBnL2VkaXQ\/dXNwPXNoYXJpbmciIHN0eWxlPSJjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij50aGlzIGxpbms8L2E+LjwvcD52AxByZXN0cmljdGlvbl90eXBldwdleGNsdWRlEnNlbGVjdGVkX2xhbmd1YWdlc3UACnBhbmVsX29wZW54dyRiNzAyYjJhNi1iYjg5LTRjMTAtODJiMC03ZGI1NTZhNmZkZDF3xYoDPG1ldGEgY2hhcnNldD0iVVRGLTgiPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+Cjx0aXRsZT5HQ0FTIENvbGxlZ2UgRHVibGluIC0gU3R1ZGVudCBIYW5kYm9vayAyMDI1PC90aXRsZT4KPHN0eWxlPgogICAgOnJvb3QgewogICAgICAgIC0tZ2Nhcy1ncmVlbjogIzJlN2QzMjsKICAgICAgICAtLWdjYXMtcmVkOiAjYzYyODI4OwogICAgICAgIC0tZ2Nhcy1kYXJrOiAjMWExYTFhOwogICAgICAgIC0tZ2Nhcy1saWdodDogI2Y1ZjVmNTsKICAgICAgICAtLWdjYXMtYm9yZGVyOiAjZTBlMGUwOwogICAgfQogICAKICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CiAgIAogICAgLmhhbmRib29rLXdyYXBwZXIgewogICAgICAgIGZvbnQtZmFtaWx5OiAnR2VvcmdpYScsICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjsKICAgICAgICBsaW5lLWhlaWdodDogMS44OwogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWRhcmspOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWhlYWRlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAgCiAgICAuaGFuZGJvb2staGVhZGVyIGgxIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgZm9udC1zaXplOiAyLjVlbTsKICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2staGVhZGVyIC5zdWJ0aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtcmVkKTsKICAgICAgICBmb250LXNpemU6IDEuM2VtOwogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2staGVhZGVyIC55ZWFyIHsKICAgICAgICBmb250LXNpemU6IDEuMWVtOwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgfQogICAKICAgIC5oYW5kYm9vay1idG4tY29udGFpbmVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0byAzMHB4IGF1dG87CiAgICB9CiAgIAogICAgLmhhbmRib29rLWJ0biB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiAxNXB4IDMwcHg7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICBmb250LXNpemU6IDEuMWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zczsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMWI1ZTIwOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KICAgCiAgICAudG9jLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ2Nhcy1ib3JkZXIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAzMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CiAgIAogICAgLnRvYy1jb250YWluZXIgaDIgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgfQogICAKICAgIC50b2MtbGlzdCB7CiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBjb2x1bW5zOiAyOwogICAgICAgIGNvbHVtbi1nYXA6IDQwcHg7CiAgICB9CiAgIAogICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgLnRvYy1saXN0IHsKICAgICAgICAgICAgY29sdW1uczogMTsKICAgICAgICB9CiAgICB9CiAgIAogICAgLnRvYy1saXN0IGxpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZDsKICAgIH0KICAgCiAgICAudG9jLWxpc3QgYSB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZGFyayk7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgIH0KICAgCiAgICAudG9jLWxpc3QgYTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgfQogICAKICAgIC50b2Mtc2VjdGlvbiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CiAgIAogICAgLnNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdjYXMtYm9yZGVyKTsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgIH0KICAgCiAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdjYXMtZ3JlZW4pLCAjNGNhZjUwKTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogMjBweCAzMHB4OwogICAgICAgIG1hcmdpbjogNDBweCAwIDMwcHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAKICAgIC5zZWN0aW9uLWhlYWRlciBoMiB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMS44ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAgCiAgICBoMyB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGZvbnQtc2l6ZTogMS40ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMzVweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1nY2FzLWJvcmRlcik7CiAgICB9CiAgIAogICAgaDQgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWRhcmspOwogICAgICAgIGZvbnQtc2l6ZTogMS4xNWVtOwogICAgICAgIG1hcmdpbi10b3A6IDI1cHg7CiAgICB9CiAgIAogICAgcCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yZW07CiAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTsKICAgIH0KICAgCiAgICB1bCwgb2wgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtOwogICAgICAgIHBhZGRpbmctbGVmdDogMjVweDsKICAgIH0KICAgCiAgICBsaSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgfQogICAKICAgIC5pbmZvLWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2UzZjJmZDsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMxOTc2ZDI7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICAgIH0KICAgCiAgICAud2FybmluZy1ib3ggewogICAgICAgIGJhY2tncm91bmQ6ICNmZmYzZTA7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZjU3YzAwOwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7CiAgICB9CiAgIAogICAgLmltcG9ydGFudC1ib3ggewogICAgICAgIGJhY2tncm91bmQ6ICNmY2U0ZWM7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1nY2FzLXJlZCk7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICAgIH0KICAgCiAgICAuaGlnaGxpZ2h0LWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZjVlOTsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7CiAgICB9CiAgIAogICAgdGFibGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgZm9udC1zaXplOiAwLjk1ZW07CiAgICB9CiAgIAogICAgdGggewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE1cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgfQogICAKICAgIHRkIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE1cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdjYXMtYm9yZGVyKTsKICAgIH0KICAgCiAgICB0cjpudGgtY2hpbGQoZXZlbikgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtbGlnaHQpOwogICAgfQogICAKICAgIC5jb250YWN0LWluZm8gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtbGlnaHQpOwogICAgICAgIHBhZGRpbmc6IDI1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW46IDMwcHggYXV0bzsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgfQogICAKICAgIC5jb250YWN0LWluZm8gcCB7CiAgICAgICAgbWFyZ2luOiA1cHggMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgIAogICAgLmdyYWRlLXNjYWxlIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBtYXJnaW46IDIwcHggMDsKICAgIH0KICAgCiAgICAuZ3JhZGUtaXRlbSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgIAogICAgLmdyYWRlLWl0ZW0gc3Ryb25nIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICB9CiAgIAogICAgLnByb2dyYW1zLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgIG1hcmdpbjogMjBweCAwOwogICAgfQogICAKICAgIC5wcm9ncmFtLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtbGlnaHQpOwogICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgIH0KICAgCiAgICAuYmFjay10by10b3AgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICB9CiAgIAogICAgLmJhY2stdG8tdG9wOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMWI1ZTIwOwogICAgfQogICAKICAgIC5oYW5kYm9vay1mb290ZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNTBweDsKICAgICAgICBib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stZm9vdGVyLWlubmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAKICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5oYW5kYm9vay1jb250YWluZXIgewogICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7CiAgICAgICAgfQogICAgICAgCiAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7CiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7CiAgICAgICAgfQogICAgICAgCiAgICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAyMHB4OwogICAgICAgIH0KICAgICAgIAogICAgICAgIC5oYW5kYm9vay1oZWFkZXIgaDEgewogICAgICAgICAgICBmb250LXNpemU6IDEuOGVtOwogICAgICAgIH0KICAgIH0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImhhbmRib29rLXdyYXBwZXIiPgoKPGhlYWRlciBjbGFzcz0iaGFuZGJvb2staGVhZGVyIiBpZD0idG9wIj4KICAgIDxoMT5HQ0FTIENvbGxlZ2UgRHVibGluPC9oMT4KICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+VGhlIEdsb2JhbCBDZW50cmUgZm9yIEFkdmFuY2VkIFN0dWRpZXM8L3A+CiAgICA8cCBjbGFzcz0ieWVhciI+U3R1ZGVudCBIYW5kYm9vayAyMDI1PC9wPgo8L2hlYWRlcj4KCjxkaXYgY2xhc3M9ImhhbmRib29rLWJ0bi1jb250YWluZXIiPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9nY2FzLmllL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAzL0dDQVMtUmVzZWFyY2hlcnMtU3R1ZGVudC1IYW5kYm9vay1VcGRhdGVkLTIwMjYucGRmIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImhhbmRib29rLWJ0biI+UmVhZCB0aGUgRW50aXJlIEhhbmRib29rPC9hPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNvbnRhY3QtaW5mbyI+CiAgICA8cD48c3Ryb25nPkFkZHJlc3M6PC9zdHJvbmc+IDM4LzM5IEZpdHp3aWxsaWFtIFNxdWFyZSwgRHVibGluIDIsIElyZWxhbmQ8L3A+CiAgICA8cD48c3Ryb25nPlBob25lOjwvc3Ryb25nPiArMzUzIDg3IDc1NCAxNDE3PC9wPgogICAgPHA+PHN0cm9uZz5FbWFpbDo8L3N0cm9uZz4gPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAZ2Nhcy5pZSI+Y29udGFjdEBnY2FzLmllPC9hPjwvcD4KICAgIDxwPjxzdHJvbmc+V2Vic2l0ZTo8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly9nY2FzLmllIiB0YXJnZXQ9Il9ibGFuayI+Z2Nhcy5pZTwvYT48L3A+CjwvZGl2PgoKPG5hdiBjbGFzcz0idG9jLWNvbnRhaW5lciIgaWQ9InRvYyI+CiAgICA8aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPgogICAgPHVsIGNsYXNzPSJ0b2MtbGlzdCI+CiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+SW50cm9kdWN0aW9uPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNvdmVydmlldyI+T3ZlcnZpZXcgJmFtcDsgUGhpbG9zb3BoeTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYWNjcmVkaXRhdGlvbiI+QWNjcmVkaXRhdGlvbjwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZmFjdWx0eSI+RmFjdWx0eSAmYW1wOyBMZWFkZXJzaGlwPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDE6IFN0dWRlbnQgTGlmZTwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjY29kZS1vZi10cnVzdCI+Q29kZSBvZiBUcnVzdCAmYW1wOyBQbGVkZ2U8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2FkbWlzc2lvbnMiPkFkbWlzc2lvbnM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI25vbWFkaWMtbGVhcm5pbmciPk5vbWFkaWMgTGVhcm5pbmc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3RyYW5zZmVyIj5UcmFuc2ZlciAmYW1wOyBDcmVkaXQgUmVjb2duaXRpb248L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2ludGVybmF0aW9uYWwiPkludGVybmF0aW9uYWwgU3R1ZGVudHM8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gMjogQWNhZGVtaWMgUG9saWNpZXM8L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3BsYWdpYXJpc20iPlBsYWdpYXJpc20gUG9saWN5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNzdXBlcnZpc2lvbiI+QWNhZGVtaWMgU3VwZXJ2aXNpbmc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2F0dGVuZGFuY2UiPkF0dGVuZGFuY2UgJmFtcDsgQWJzZW5jZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZ3JhZGluZyI+R3JhZGluZyBTY2FsZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjd2l0aGRyYXdpbmciPldpdGhkcmF3aW5nIGZyb20gYSBDb3Vyc2U8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2Rpc2NpcGxpbmFyeSI+RGlzY2lwbGluYXJ5IFBvbGljeTwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiAzOiBGaW5hbmNlczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZmluYW5jaWFsLWFpZCI+RmluYW5jaWFsIEFpZDwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZmVlcyI+QWRkaXRpb25hbCBGZWVzPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDQ6IERlZ3JlZSBQcm9ncmFtczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYmEtcHJvZ3JhbSI+QkEgUHJvZ3JhbTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjbWEtcHJvZ3JhbXMiPk1BIFByb2dyYW1zPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiN0aGVzaXMtcmVxdWlyZW1lbnRzIj5UaGVzaXMgUmVxdWlyZW1lbnRzPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDU6IFBoRCBQcm9ncmFtczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjcGhkLW92ZXJ2aWV3Ij5QaEQgT3ZlcnZpZXc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2Rpc3NlcnRhdGlvbiI+RGlzc2VydGF0aW9uIFJlcXVpcmVtZW50czwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjcGhkLWRlZmVuc2UiPlBoRCBEZWZlbnNlPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDY6IFN0dWRlbnQgQWdyZWVtZW50czwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjbGlhYmlsaXR5Ij5FdmVudCBBdHRlbmRhbmNlICZhbXA7IExpYWJpbGl0eTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjdHVpdGlvbi1wYXltZW50Ij5UdWl0aW9uIFBheW1lbnQgT2JsaWdhdGlvbnM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3JlY29yZGluZy1wb2xpY3kiPlJlY29yZGluZyAmYW1wOyBNZWRpYSBQb2xpY3k8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gNzogQ29sbGVnZSBQb2xpY2llczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZGF0YS1wcm90ZWN0aW9uIj5EYXRhIFByb3RlY3Rpb248L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2VxdWFsLW9wcG9ydHVuaXR5Ij5FcXVhbCBPcHBvcnR1bml0eTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYnVsbHlpbmciPkFudGktQnVsbHlpbmcgUG9saWN5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNhaS1wb2xpY3kiPkFJIGluIEFjYWRlbWljIFdyaXRpbmc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2Rpc2FiaWxpdHkiPkRpc2FiaWxpdHkgQWNjb21tb2RhdGlvbnM8L2E+PC9saT4KICAgIDwvdWw+CjwvbmF2PgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPkludHJvZHVjdGlvbjwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJvdmVydmlldyI+CiAgICA8aDM+T3ZlcnZpZXc8L2gzPgogICAgPHA+V2VsY29tZSB0byBHQ0FTIENvbGxlZ2UgRHVibGluLCBMdGQuIFRoZSBHbG9iYWwgQ2VudHJlIGZvciBBZHZhbmNlZCBTdHVkaWVzIChoZW5jZWZvcnRoICJHQ0FTIiBvciAiR0NBUyBDb2xsZWdlIikuIFRoaXMgaXMgYSBzaG9ydGVuZWQgdmVyc2lvbiBvZiB0aGUgSGFuZGJvb2sgb24gdGhpcyBwYWdlLiBXZSBhcmUgY29tbWl0dGVkIHRvIHByb3ZpZGluZyB5b3Ugd2l0aCB0aGUgcmVzb3VyY2VzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IGFuZCBlbmNvdXJhZ2UgeW91ciByZXNlYXJjaCBmaW5kaW5ncy4gQWx0aG91Z2ggR0NBUyBoYXMgb25lIG9mIHRoZSBiZXN0IGZhY3VsdGllcyBhdmFpbGFibGUgaW4gdGhlIGZpZWxkcyBvZiBwaGlsb3NvcGh5LCBhcnQgcGVyZm9ybWFuY2UsIHBzeWNob2FuYWx5c2lzLCB0aGVvbG9neSwgcG9saXRpY3MsIGFuZCBvdGhlciBmaWVsZHMsIGl0IGlzIHVwIHRvIHRoZSBzdHVkZW50IHRvIGRlY2lkZSBpZiBHQ0FTIGlzIHRoZSBiZXN0IGZpdCBmb3IgdGhlaXIgcmVzZWFyY2ggYWltcyBhbmQgb2JqZWN0aXZlcy48L3A+CiAgIAogICAgPHA+R0NBUyBpcyBhIGNvbGxlZ2Ugb2ZmZXJpbmcgQkEsIE1BLCBhbmQgUGhEIGRlZ3JlZXMgb25saW5lIGFuZCBhdCB0aW1lcyBpbi1wZXJzb24gc2V0dGluZ3MgYW5kIHRocm91Z2ggb3VyIHB1YmxpY2x5IGF2YWlsYWJsZSBwcm9ncmFtcyBpbiBvdXIgRVNjaG9vbC4gV2UgYXJlIGNvbW1pdHRlZCB0byBkZWJ0LWZyZWUgaGlnaC1xdWFsaXR5IGVkdWNhdGlvbiBpbiBhbiBlY29sb2dpY2FsbHksIGNvbGxhYm9yYXRpdmUgYW5kIGVjb25vbWljYWxseSBzdXN0YWluYWJsZSB3YXkuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImhpZ2hsaWdodC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+T3VyIE1pc3Npb246PC9zdHJvbmc+IEhpZ2gtcXVhbGl0eSwgZGVidC1mcmVlIGVkdWNhdGlvbiB0aGF0IHByb3ZpZGVzIHRoZSByZXNvdXJjZXMgZm9yIGNyZWF0aXZlIGFuZCBuZXcgcmVzZWFyY2ggdGhhdCBpcyBub3QgcG9zc2libGUgaW4gYSB0cmFkaXRpb25hbCB1bml2ZXJzaXR5IHNldHRpbmcuIFdlIGJlbGlldmUgdGhhdCBlZHVjYXRpb24gaXMgaW5oZXJlbnRseSBhbiBpbnRlcnN1YmplY3RpdmUgZXhwZXJpZW5jZSB0aGF0IHJlcXVpcmVzIHNoYXJpbmcgaWRlYXMgb3Blbmx5LCBwcm9wb3NpbmcgYW5kIGVzdGFibGlzaGluZyBuZXcgYW5kIGJvbGQgbGluZXMgb2YgdGhpbmtpbmcgYW5kIGFjdGlvbnMgaW4gcmlnb3JvdXMgc2NpZW50aWZpYyB3YXlzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxwPkdDQVMgaG9sZHMgaW4gcmVzaWRlbmNlIHNlbWluYXJzIGZvciBzaG9ydCBwZXJpb2RzIG9mIHRpbWUgaW4gZGlmZmVyZW50IGxvY2F0aW9ucy4gV2UndmUgaGVsZCBzZW1pbmFycyBpbiBIYXZhbmEsIEN1YmE7IEJlcmxpbjsgUHJhZ3VlOyBBdGhlbnM7IE1hcmlib3IsIFNsb3ZlbmlhOyBQYXJpczsgTmV3IFlvcms7IENpbmNpbm5hdGksIE9oaW87IEdyYW5kIFJhcGlkcywgTWljaGlnYW47IE1leGljbyBDaXR5OyBhbmQgQm9nb3TDoSBDb2xvbWJpYSwgdG8gbmFtZSBhIGZldy48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYWNjcmVkaXRhdGlvbiI+CiAgICA8aDM+QWNjcmVkaXRhdGlvbjwvaDM+CiAgICA8cD5HQ0FTIENvbGxlZ2Ugb2ZmZXJzIHNldmVyYWwgYWNjcmVkaXRlZCBkZWdyZWUgcHJvZ3JhbW1lcyBpbiB0aGUgRXVyb3BlYW4gVW5pb24gdGhyb3VnaCBvdXIgcGFydG5lcnNoaXAgd2l0aCBXb29sZjo8L3A+CiAgIAogICAgPGRpdiBjbGFzcz0icHJvZ3JhbXMtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5QaC5ELiBpbiB0aGUgSHVtYW5pdGllcyBhbmQgU29jaWFsIFNjaWVuY2VzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5QaC5ELiBpbiB0aGUgTmF0dXJhbCBTY2llbmNlczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TUEgaW4gUGhpbG9zb3BoeTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TUEgaW4gUHN5Y2hvYW5hbHlzaXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPk1BIGluIFRoZW9sb2d5PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NQSBpbiBQb2xpdGljczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TWFzdGVyIG9mIExhd3MgKExMLk0uKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+QkEgaW4gSW50ZXJkaXNjaXBsaW5hcnkgU3R1ZGllczwvZGl2PgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZmFjdWx0eSI+CiAgICA8aDM+TGVhZGVyc2hpcCAmYW1wOyBGYWN1bHR5PC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBpcyBvd25lZCBhbmQgb3BlcmF0ZWQgYnkgZmFjdWx0eSwgc3RhZmYsIGFuZCBncmFkdWF0ZXMgb2YgR0NBUyBDb2xsZWdlLiBPdXIgZ292ZXJuYW5jZSBzdHJ1Y3R1cmUgaW5jbHVkZXM6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Cb2FyZCBvZiBUcnVzdGVlczwvbGk+CiAgICAgICAgPGxpPkFjYWRlbWljIENvdW5jaWw8L2xpPgogICAgICAgIDxsaT5RdWFsaXR5IEFzc3VyYW5jZSBDb21taXNzaW9uPC9saT4KICAgICAgICA8bGk+RXRoaWNzIENvbW1pdHRlZTwvbGk+CiAgICA8L3VsPgogICAKICAgIDxwPkdDQVMgd2FzIGZvdW5kZWQgYnkgRHIuIENyZXN0b24gRGF2aXMgaW4gMjAxMyBzdGVtbWluZyBmcm9tIGFuIGlkZWEgaGUgY29uY2VpdmVkIGluIDE5OTkgd2hpbGUgYSBzdHVkZW50IGF0IFlhbGUgVW5pdmVyc2l0eS4gSW4gMjAxOCBHQ0FTIG1vdmVkIGZyb20gdGhlIFVuaXRlZCBTdGF0ZXMgdG8gRHVibGluLCBJcmVsYW5kIGZvciBzZXZlcmFsIHJlYXNvbiBzdXByZW1lIGFtb25nIHRoZW0gYmVpbmcgYWNhZGVtaWMgZnJlZWRvbS4gSW1wb3J0YW50bHksIEdDQVMgQ29sbGVnZSBpcyBvd25lZCBieSB0aGUgZmFjdWx0eSBhbmQgZ3JhZHVhdGVzIHdobyBzaGFyZSBvd25lcnNoaXAgdG9nZXRoZXIuIFdoZW4gYSBzdHVkZW50IGlzIGFjY2VwdGVkIGludG8gb3VyIENvbGxlZ2UgdGhleSB3aWxsIGJlIHRyYWluZWQgYW5kIHN1cHBvcnRlZCBieSB0aGUgZmFjdWx0eSBhbmQgc3RhZmYgd2l0aCB0aGUgaW50ZW50IHRvIGludml0ZSB0aGUgc3R1ZGVudCBpbnRvIHRoZSBvd25lcnNoaXAgY29tbXVuaXR5IG9mIEdDQVMgQ29sbGVnZSBEdWJsaW4gb25jZSB0aGV5IGdyYWR1YXRlLjwvcD4KICAgCiAgICA8aDQ+UHVibGljYXRpb25zPC9oND4KICAgIDxwPldlIGFsc28gcHVibGlzaCBhbiBvbmxpbmUgbWFnYXppbmUgYW5kIHBlZXItcmV2aWV3ZWQgYWNhZGVtaWMgam91cm5hbCwgPHN0cm9uZz5UaGUgR0NBUyBSZXZpZXc8L3N0cm9uZz4uPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDE6IFN0dWRlbnQgQ29tbXVuaXR5IExpZmUgJmFtcDsgUmVzcG9uc2liaWxpdGllczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJjb2RlLW9mLXRydXN0Ij4KICAgIDxoMz5UaGUgR0NBUyBDb2RlIG9mIFRydXN0IGFuZCBQbGVkZ2U8L2gzPgogICAgPHA+QmVpbmcgYSBzdHVkZW50LXJlc2VhcmNoZXIgYXQgR0NBUyBDb2xsZWdlIER1YmxpbiBtZWFucyBiZWxvbmdpbmcgdG8gb3VyIGFjYWRlbWljIGNvbW11bml0eS4gT3VyIGFjYWRlbWljIGNvbW11bml0eSByZXF1aXJlcyB0aGF0IGFsbCBtZW1iZXJzIGFsd2F5cyBhY3QgaW4gdGhlIG1vc3QgZXN0ZWVtZWQgZXRoaWNhbCB3YXlzIHBvc3NpYmxlLiBUaGlzIGlzIGJlY2F1c2UgaWYgYW5kIHdoZW4gYSBzdHVkZW50IGdyYWR1YXRlcyBmcm9tIEdDQVMgQ29sbGVnZSBEdWJsaW4sIHRoZSBmYWN1bHR5IGFuZCBBbHVtbmkgbWF5IGludml0ZSB0aGVtIHRvIGJlY29tZSBjby1vd25lcnMgb2YgR0NBUyBDb2xsZWdlIER1Ymxpbi48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0iaW1wb3J0YW50LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5Db3JlIFZhbHVlczo8L3N0cm9uZz4gV2UgdHJ1c3QgdGhhdCB3ZSBhcmUgY3JlYXRpbmcgYSBkaWZmZXJlbnQga2luZCBvZiBIaWdoZXIgRWR1Y2F0aW9uYWwgSW5zdGl0dXRpb24sIG9uZSB0aGF0IGlzIG5vdCBjb25jZXJuZWQgd2l0aCBtYXRlcmlhbCBnYWluLCBidXQgcmF0aGVyIG1ha2luZyBhIGRpZmZlcmVuY2UgZmlyc3QgYW5kIGZvcmVtb3N0IGluIHRoZSBsaXZlcyBvZiB0aGUgeW91bmdlciBnZW5lcmF0aW9uIGFuZCBmb3IgdGhlIGZ1dHVyZSBmbG91cmlzaGluZyBvZiBhbGwgbGl2aW5nIGJlaW5ncyBpbiBvdXIgd29ybGQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+QWxsIHN0dWRlbnRzIGFuZCBtZW1iZXJzIG9mIG91ciBjb21tdW5pdHkgbXVzdCBzaWduIGFuZCBhZ3JlZSB0byBhYmlkZSBieSBvdXIgQ29kZSBvZiBUcnVzdC4gQ29udGFjdCA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+IHRvIHN1Ym1pdCB5b3VyIHNpZ25lZCBmb3JtLjwvcD4KICAgCiAgICA8aDQ+U3R1ZGVudCBFeHBlY3RhdGlvbnM8L2g0PgogICAgPHA+QSBzdHVkZW50IGluIHRoZSBCQSwgTUEgb3IgUGhEIHByb2dyYW1tZXMgaXMgYSBtZW1iZXIgb2YgYSBoaWdoLXF1YWxpdHkgYWNhZGVtaWMgY29tbXVuaXR5IHdpdGhpbiB0aGUgQ29sbGVnZS4gU2hvdWxkIGEgc3R1ZGVudCBub3QgbGl2ZSB1cCB0byBvdXIgd29ybGQtY2xhc3MgcmVwdXRhdGlvbiBieSBhZHZlcnNlIGFjdGl2aXRpZXMgc3VjaCBhcyBseWluZywgY2hlYXRpbmcsIG9yIGhhcm1pbmcgb3RoZXJzIGluIG91ciBjb21tdW5pdHkgb3Igb3RoZXJzIG91dHNpZGUgb3VyIGNvbW11bml0eSB0aGVuIHRoZXkgd2lsbCBiZSB3YXJuZWQgYWJvdXQgdGhlaXIgYmVoYXZpb3VyLiBTaG91bGQgc3VjaCB3YXJuaW5ncyBub3Qgc3RvcCB0aGUgZGlzcmVzcGVjdGZ1bCBiZWhhdmlvdXIgaW4gcXVlc3Rpb24gdGhlbiB0aGUgc3R1ZGVudCBtYXkgYmUgcGxhY2VkIG9uIHByb2JhdGlvbiBvciBjb3VsZCBldmVuIGJlIHJlbW92ZWQgZnJvbSB0aGUgY29tbXVuaXR5LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJhZG1pc3Npb25zIj4KICAgIDxoMz5BZG1pc3Npb25zPC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5SZWFkIEJlZm9yZSBZb3UgQXBwbHk6PC9zdHJvbmc+IEdDQVMgaXMgYW4gYWNjcmVkaXRlZCBpbnN0aXR1dGlvbiBvZiBoaWdoZXIgZWR1Y2F0aW9uIGluIHRoZSBFdXJvcGVhbiBVbmlvbiB2aWEgb3VyIHBhcnRuZXJzaGlwIHdpdGggV29vbGYgVW5pdmVyc2l0eS4gUGxlYXNlIGJlIGF3YXJlIHRoYXQgbW9zdCBidXQgbm90IGFsbCBkZWdyZWUgcHJvZ3JhbW1lcyBhcmUgYWNjcmVkaXRlZCBhdCB0aGlzIHRpbWUuIElmIHlvdSBoYXZlIGEgcXVlc3Rpb24gYWJvdXQgdGhpcyBwbGVhc2UgYXNrIHVzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxwPlRvIGJlIGNvbnNpZGVyZWQgZm9yIGFkbWlzc2lvbiBpbnRvIEdDQVMgQ29sbGVnZSwgcHJvc3BlY3RpdmUgc3R1ZGVudHMgbXVzdCBjb21wbGV0ZSB0aGUgYXBwbGljYXRpb24gcHJvY2VzcyB0aHJvdWdoIFBoYXNlIDEgYW5kIFBoYXNlIDIuIEluZm9ybWF0aW9uIGFib3V0IHRoZXNlIHBoYXNlcyBjYW4gYmUgZm91bmQgb24gb3VyIHJlc3BlY3RpdmUgZGVncmVlIHByb2dyYW1tZSB3ZWJwYWdlcy48L3A+CiAgIAogICAgPGg0PlByZXJlcXVpc2l0ZXMgZm9yIEFjY2VwdGFuY2U8L2g0PgogICAgPHA+T3VyIHJlc2VhcmNoZXJzIGNvbWUgZnJvbSBzb21lIG9mIHRoZSBiZXN0IGFjYWRlbWljIGluc3RpdHV0aW9ucyBpbiB0aGUgd29ybGQsIGluY2x1ZGluZyBKb2hucyBIb3BraW5zIFVuaXZlcnNpdHksIENvbHVtYmlhIFVuaXZlcnNpdHksIExvbmRvbiBTY2hvb2wgb2YgRWNvbm9taWNzLCBTd2FydGhtb3JlLCBZYWxlIFVuaXZlcnNpdHksIE5ldyBZb3JrIFVuaXZlcnNpdHksIENhbWJyaWRnZSwgT3hmb3JkLCBhbmQgQ2FzZSBXZXN0ZXJuIFJlc2VydmUgVW5pdmVyc2l0eS48L3A+CiAgIAogICAgPHA+SG93ZXZlciwgYXMgYSByZXNlYXJjaCBpbnN0aXR1dGUgYW5kIGNvbGxlZ2UgdGhhdCBpcyBjaGFsbGVuZ2luZyB0cmFkaXRpb25hbCBhY2FkZW1pYSwgd2UgYXR0cmFjdCBhcHBsaWNhbnRzIHdobyBicmluZyBkaXZlcnNlIGJhY2tncm91bmRzLCBleHBlcmllbmNlcywgYW5kIGZyZXNoIHBlcnNwZWN0aXZlcyB0byB0aGUgY29udmVyc2F0aW9uIGFuZCByZXNlYXJjaC48L3A+CiAgIAogICAgPGg0PlR1aXRpb24gT3ZlcnZpZXc8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPkJBIFByb2dyYW1tZTo8L3N0cm9uZz4g4oKsMyw1MDAgcGVyIHllYXI8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk1BICZhbXA7IFBoRCBQcm9ncmFtbWVzOjwvc3Ryb25nPiDigqw2LDAwMCBwZXIgeWVhcjwvbGk+CiAgICA8L3VsPgogICAgPHA+TmVhcmx5IDEwMCUgZmluYW5jaWFsIGFpZCBwYWNrYWdlcyBhcmUgb2ZmZXJlZCB0byBhbGwgUmVzZWFyY2hlcnMvU3R1ZGVudHMgd2hvIGFyZSBhY2NlcHRlZC4gR0NBUydzIGZpbmFuY2lhbCBhaWQgcGFja2FnZXMgY29tZSBpbiB0aGUgZm9ybSBvZiB0dWl0aW9uIHJlZHVjdGlvbi48L3A+CiAgIAogICAgPGg0PkFwcGxpY2F0aW9uIFJldmlldzwvaDQ+CiAgICA8cD5BbGwgYXBwbGljYXRpb25zIGFyZSByZXZpZXdlZCBieSBvdXIgQWRtaXNzaW9ucyBDb21taXR0ZWUgY2hhaXJlZCBieSBhIEdDQVMgRmFjdWx0eSBtZW1iZXIuIEFjY2VwdGFuY2UgaXMgaGlnaGx5IHNlbGVjdGl2ZSBmb3IgYWxsIG91ciBkZWdyZWUgcHJvZ3JhbW1lcy4gUGFydCBvZiBvdXIgYXNzZXNzbWVudCBjcml0ZXJpYSBpcyB0byBlbnN1cmUgR0NBUyBoYXMgdGhlIGNhcGFjaXR5IGFuZCByZXNvdXJjZXMgdG8gZnVsbHkgc3VwcG9ydCB0aGUgYXBwbGljYW50J3MgcmVzZWFyY2ggcHJvcG9zYWwuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9Im5vbWFkaWMtbGVhcm5pbmciPgogICAgPGgzPkdDQVMgTm9tYWRpYyBMZWFybmluZzogIlRoZSBXb3JsZCBpcyBvdXIgQ2xhc3Nyb29tIjwvaDM+CiAgICA8cD5Gcm9tIHRoZSBmaXJzdCBpbmNlcHRpb24gb2YgVGhlIEdsb2JhbCBDZW50ZXIgZm9yIEFkdmFuY2VkIFN0dWRpZXMgKEdDQVMpIHdlIGhhdmUgY3JlYXRlZCBuZXcgYW5kIGlubm92YXRpdmUgc3BhY2VzIG9mIGxlYXJuaW5nIGFuZCBhcHBsaWVkIGNyZWF0aXZlIGFuZCBjcml0aWNhbCB0aGlua2luZy4gV2UgaGF2ZSBvY2N1cGllZCBkb3plbnMgb2Ygc3BhY2VzIGFyb3VuZCB0aGUgd29ybGQgZnJvbSB0aGUgQ2VudHJlIFBvbXBpZG91IGluIFBhcmlzLCB0byBhIG11c2V1bSBpbiBCZXJsaW4sIFRoZSBCcm9va2x5biBDb21tb25zIGluIE5ldyBZb3JrIENpdHksIHRvIFRoZSBNYXJ0aW4gTHV0aGVyIEtpbmcsIEpyIENlbnRyZSBpbiBIYXZhbmEsIEN1YmEuPC9wPgogICAKICAgIDxoND5QcmV2aW91cyBHQ0FTIEluc3RpdHV0ZXMgJmFtcDsgQ29uZmVyZW5jZXM8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT4xc3QgQW5udWFsLCAiQmFkaW91IG9uIEJhZGlvdSIgKEp1bHkgMjAxNCk8L2xpPgogICAgICAgIDxsaT4ybmQsICJEZW1vY3JhY3kgUmlzaW5nIiBBdGhlbnMsIEdyZWVjZSAoSnVseSAyMDE1KTwvbGk+CiAgICAgICAgPGxpPjNyZCwgIkRlbW9jcmFjeSBSaXNpbmciIFBoaWxhZGVscGhpYSAoSnVuZSAyMDE2KTwvbGk+CiAgICAgICAgPGxpPjR0aCwgIlByYWN0aWNpbmcgSW50ZWxsZWN0dWFsIFJlc2lzdGFuY2UiIE1hcmlib3IsIFNsb3ZlbmlhIChKdWx5IDIwMTcpPC9saT4KICAgICAgICA8bGk+NXRoLCAiQWVzdGhldGljIFJlc2lzdGFuY2UgJmFtcDsgUGVyZm9ybWFuY2UiIEZyYW5jZSAoSnVuZSAyMDE4KTwvbGk+CiAgICAgICAgPGxpPjZ0aCwgIlBoaWxvc29waHkgYXMgYSBNb2RlIG9mIFByb2R1Y3Rpb24iIEZyYW5jZSAoSnVuZSAyMDE5KTwvbGk+CiAgICAgICAgPGxpPjd0aCwgIkFlc3RoZXRpY3MgYW5kIHRoZSBQb2xpdGljYWwiIE1leGljbyBDaXR5IChPY3QgMjAyMSk8L2xpPgogICAgICAgIDxsaT5HQ0FTIEJlbGZhc3QgRXZlbnQgKDIwMjIpPC9saT4KICAgICAgICA8bGk+OHRoLCAiVHJhbnNncmVzc2l2ZSBUaG91Z2h0IGFuZCB0aGUgQ291bnRlcmZlaXRzIG9mIENyZWF0aXZpdHkiIFByYWd1ZSAoSnVuZSAyMDIzKTwvbGk+CiAgICAgICAgPGxpPjl0aCwgIkdDQVMgUGFyaXMgV2VlayIgKE1heSAyMDI0KTwvbGk+CiAgICAgICAgPGxpPjEwdGgsICJHQ0FTIFBhcmlzIFdlZWsiIChNYXkgMjAyNSk8L2xpPgogICAgPC91bD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5FdmVudCBBdHRlbmRhbmNlOjwvc3Ryb25nPiBBbGwgc3R1ZGVudHMsIGZhY3VsdHksIGFuZCBhdHRlbmRlZXMgd2hvIGF0dGVuZCBhbnkgR0NBUyBDb2xsZWdlIGV2ZW50cyBpbiBwZXJzb24gbXVzdCBmaXJzdCBzaWduIGEgTGlhYmlsaXR5IFJlbGVhc2UgRm9ybS4gQWxsIGF0dGVuZGVlcyB3aWxsIGNvbW1pdCB0byBub24tdmlvbGVudCBhbmQgcmVzcGVjdGZ1bCBtZWFucyBvZiBleGNoYW5nZS48L3A+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0cmFuc2ZlciI+CiAgICA8aDM+VHJhbnNmZXJyaW5nICZhbXA7IENyZWRpdCBSZWNvZ25pdGlvbjwvaDM+CiAgICA8cD5TdHVkZW50cyB3aG8gdHJhbnNmZXIgaW50byBUaGUgR3JhZHVhdGUgU2Nob29sIG9mIEdDQVMgQ29sbGVnZSBEdWJsaW4gZnJvbSBvdGhlciBpbnN0aXR1dGlvbnMgb2YgaGlnaGVyIGVkdWNhdGlvbiBtYXkgdHJhbnNmZXIgcHJldmlvdXNseSBhd2FyZGVkIGNyZWRpdCByZWNlaXZlZCBmcm9tIGFub3RoZXIgaW5zdGl0dXRpb24gb2YgaGlnaGVyIGVkdWNhdGlvbiBzbyBsb25nIGFzIHRoYXQgaW5zdGl0dXRpb24gaXMgYWNjcmVkaXRlZCBhbmQgeW91ciB0cmFuc2ZlciBpcyBhdXRob3Jpc2VkIGJ5IHRoZSBHQ0FTIENoYW5jZWxsb3IuPC9wPgogICAKICAgIDxoND5DcmVkaXQgUmVjb2duaXRpb24gZm9yIEFsdGVybmF0aXZlIExlYXJuaW5nIEV4cGVyaWVuY2VzPC9oND4KICAgIDxwPkdDQVMgQ29sbGVnZSBEdWJsaW4gaGFzIGEgcHJvY2VzcyBieSB3aGljaCB3ZSByZWNvZ25pc2UgYWx0ZXJuYXRpdmUgbGVhcm5pbmcgZXhwZXJpZW5jZXMgaW5jbHVkaW5nIGVtcGxveW1lbnQgYW5kIG90aGVyIHJlbGV2YW50IGV4cGVyaWVuY2VzLCBhbmQgY2FuIGdyYW50IGNyZWRpdCBob3VycyBmb3Igc3VjaCBleHBlcmllbmNlcyBwcm92aWRlZCB0aGF0IGRvY3VtZW50YXRpb24gaXMgcHJvdmlkZWQuPC9wPgogICAKICAgIDxoND5EdWFsIEVucm9sbWVudCBQb2xpY3k8L2g0PgogICAgPHA+SXQgaXMgbm90IHRoZSBub3JtYWwgcHJhY3RpY2Ugb2YgR0NBUyBDb2xsZWdlIER1YmxpbiB0byBhY2NlcHQgYSBzdHVkZW50IHdobyBpcyBhbHNvIGVucm9sbGVkIGluIGFub3RoZXIgdW5pdmVyc2l0eS4gSG93ZXZlciwgaW4gZXhjZXB0aW9uYWwgY2FzZXMsIGFuIGFwcGxpY2FudCBtYXkgcmVxdWVzdCB0aGUgQXBwbGljYXRpb25zIENvbW1pdHRlZSB0byBjb25zaWRlciBhY2NlcHRhbmNlIGFzIGEgIkR1YWwgRW5yb2xsZWQiIHN0dWRlbnQuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImludGVybmF0aW9uYWwiPgogICAgPGgzPkludGVybmF0aW9uYWwgU3R1ZGVudHM8L2gzPgogICAKICAgIDxoND5FbmdsaXNoIExhbmd1YWdlIFJlcXVpcmVtZW50czwvaDQ+CiAgICA8cD5BcHBsaWNhbnRzIHdob3NlIGZpcnN0IGxhbmd1YWdlIGlzIG5vdCBFbmdsaXNoIG11c3QgZGVtb25zdHJhdGUgZXZpZGVuY2Ugb2YgdGhlaXIgcHJvZmljaWVuY3kgaW4gRW5nbGlzaCB2aWEgb25lIG9mIHRoZSBmb2xsb3dpbmc6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Db21wbGV0ZWQgYSBtaW5pbXVtIG9mIG9uZSB5ZWFyIGVkdWNhdGlvbiBpbiBhIHByZWRvbWluYW50bHkgRW5nbGlzaC1zcGVha2luZyBjb3VudHJ5IHdpdGhpbiB0aGUgcHJldmlvdXMgMTggbW9udGhzPC9saT4KICAgICAgICA8bGk+V29yayBleHBlcmllbmNlIG9mIGF0IGxlYXN0IDE4IG1vbnRocyBpbiBhIHByZWRvbWluYW50bHkgRW5nbGlzaC1zcGVha2luZyBjb3VudHJ5PC9saT4KICAgICAgICA8bGk+U3VmZmljaWVudGx5IGhpZ2ggcXVhbGlmaWNhdGlvbiBzY29yZSBvbiBhcHByb3ZlZCBleGFtaW5hdGlvbnM8L2xpPgogICAgICAgIDxsaT5BIGRlZ3JlZSBmcm9tIGFuIGFjY3JlZGl0ZWQgaW5zdGl0dXRpb24gdGF1Z2h0IGluIEVuZ2xpc2g8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+QWNjZXB0ZWQgRW5nbGlzaCBQcm9maWNpZW5jeSBUZXN0czwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPlRlc3Q8L3RoPgogICAgICAgICAgICA8dGg+TWluaW11bSBTY29yZTwvdGg+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5JRUxUUzwvdGQ+CiAgICAgICAgICAgIDx0ZD5HcmFkZSA2LjUgb3ZlcmFsbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5UT0VGTDwvdGQ+CiAgICAgICAgICAgIDx0ZD44OCBJbnRlcm5ldC1iYXNlZCAvIDU3MCBwYXBlci1iYXNlZDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5DYW1icmlkZ2UgUHJvZmljaWVuY3kvQWR2YW5jZWQ8L3RkPgogICAgICAgICAgICA8dGQ+R3JhZGUgQyBvciBiZXR0ZXIgKENFRlIgTGV2ZWwgQzEgb3IgQzIpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlBlYXJzb24gUFRFIEFjYWRlbWljPC90ZD4KICAgICAgICAgICAgPHRkPk1pbmltdW0gNjMgKG5vIHNlY3Rpb24gYmVsb3cgNTkpPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgogICAgPHA+PGVtPk5vdGU6IFRlc3Qgc2NvcmVzIGFyZSBvbmx5IHZhbGlkIGZvciB0d28geWVhcnMgcHJpb3IgdG8gYXBwbHlpbmcuPC9lbT48L3A+CiAgIAogICAgPGg0PlZpc2EgUmVxdWlyZW1lbnRzPC9oND4KICAgIDxwPkJlY2F1c2Ugd2Ugb2ZmZXIgY291cnNlcyBvbmxpbmUgYW5kIGluIGxvdy1yZXNpZGVudGlhbCB3YXlzLCBhIHN0dWRlbnQgc2hvdWxkbid0IGV4cGVjdCB2aXNhIGJhY2tpbmcgZnJvbSBHQ0FTIENvbGxlZ2UgRHVibGluLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBzdHVkZW50IHZpc2FzLCBwbGVhc2UgY29uc3VsdCB0aGUgRGVwYXJ0bWVudCBvZiBGb3JlaWduIEFmZmFpcnMgd2Vic2l0ZS48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gMjogR2VuZXJhbCBBY2FkZW1pYyBQb2xpY2llczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJwbGFnaWFyaXNtIj4KICAgIDxoMz5QbGFnaWFyaXNtIFBvbGljeTwvaDM+CiAgICA8cD5QbGFnaWFyaXNtIGlzIHRoZSBhY3Qgb3IgaW5zdGFuY2Ugb2YgdXNpbmcgb3IgY2xvc2VseSBpbWl0YXRpbmcgdGhlIGxhbmd1YWdlIGFuZCB0aG91Z2h0cyBvZiBhbm90aGVyIGF1dGhvciB3aXRob3V0IGF1dGhvcmlzYXRpb24gb3IgdGhlIHByZXNlbnRhdGlvbiBvZiB0aGF0IGF1dGhvcidzIHdvcmsgYXMgb25lJ3Mgb3duLjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlplcm8gVG9sZXJhbmNlOjwvc3Ryb25nPiBHQ0FTIG1vc3QgZnVuZGFtZW50YWxseSBpcyBhIHBsYWNlIGluIHdoaWNoIGJvbGQgYW5kIG5ldyByZXNlYXJjaCBpcyBlbmNvdXJhZ2VkLCBhcyB3ZWxsIGFzIHRoZSBjcmVhdGlvbiBvZiBuZXcgdGhpbmtpbmcgcGFyYWRpZ21zLiBQbGFnaWFyaXNtIGlzIHRoZSBhY3Qgb2YgInVudGhpbmtpbmciIGFuZCBhIGZvcm0gb2YgaW50ZWxsZWN0dWFsIGRpc2hvbmVzdHkuIEdDQVMgc3Ryb25nbHkgY29uZGVtbnMgYW55IGFjdHMgb2YgcGxhZ2lhcmlzbSB1bmxlc3MgdGhvc2UgYWN0cyBhcmUgc2hvd24gdG8gYmUgYW4gYXJ0aXN0aWMgb3IgcGVyZm9ybWF0aXZlIGFjdCB0aGF0IGhhcyBiZWVuIHByZS1hcHByb3ZlZCBieSBmYWN1bHR5LjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InN1cGVydmlzaW9uIj4KICAgIDxoMz5BY2FkZW1pYyBTdXBlcnZpc2luZzwvaDM+CiAgICA8cD5BbGwgc3R1ZGVudHMgYXJlIGluaXRpYWxseSBhc3NpZ25lZCBhbiBBY2FkZW1pYyBTdXBlcnZpc29yLiBUaGUgc3R1ZGVudCdzIEFjYWRlbWljIFN1cGVydmlzb3Igd2lsbCBlbnN1cmUgdGhlIHN0dWRlbnQgdW5kZXJzdGFuZHMgdGhlIGFjYWRlbWljIGV4cGVjdGF0aW9ucyBhbmQgcG9saWNpZXMgdGhyb3VnaCB0aGUgaW5pdGlhbCBhZHZpc29yeSBtZWV0aW5nLiBTdHVkZW50cyBzaG91bGQgbWVldCB3aXRoIHRoZWlyIHN1cGVydmlzb3IgYWJvdXQgb25jZSBhIG1vbnRoLjwvcD4KICAgCiAgICA8aDQ+Q2hhbmdpbmcgQWNhZGVtaWMgU3VwZXJ2aXNvcnM8L2g0PgogICAgPHA+QWZ0ZXIgdGhlIGZpcnN0IHRlcm0sIHRoZSBzdHVkZW50IG1heSB3aXNoIHRvIGNoYW5nZSB0aGVpciBBY2FkZW1pYyBTdXBlcnZpc29yLiBUbyBkbyB0aGlzLCBlbWFpbCB0aGUgQ2hhbmNlbGxvciBvciBSZWdpc3RyYXIuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImF0dGVuZGFuY2UiPgogICAgPGgzPkF0dGVuZGFuY2UgYW5kIEFic2VuY2UgUG9saWN5PC9oMz4KICAgIDxwPkluIG9yZGVyIHRvIGJlIGEgc3VjY2Vzc2Z1bCBzdHVkZW50IGF0IEdDQVMgQ29sbGVnZSBEdWJsaW4sIGEgc3R1ZGVudCBtdXN0IGF0dGVuZDo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkxlY3R1cmVzPC9saT4KICAgICAgICA8bGk+Q2xhc3NlczwvbGk+CiAgICAgICAgPGxpPk1vbnRobHkgcGVlciBncm91cCBtZWV0LXVwczwvbGk+CiAgICAgICAgPGxpPk1vbnRobHkgYWNhZGVtaWMgc3VwZXJ2aXNpb24gbWVldGluZ3M8L2xpPgogICAgICAgIDxsaT5PdGhlciBldmVudHMgYXMgcmVxdWlyZWQ8L2xpPgogICAgPC91bD4KICAgCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5MaXZlIENvdXJzZSBQb2xpY3k6PC9zdHJvbmc+IFdlIHN0cm9uZ2x5IGVuY291cmFnZSBhbGwgc3R1ZGVudHMgdG8gYXR0ZW5kIGxpdmUgY291cnNlcy4gSWYgdGhlIGNvdXJzZSBpcyBoYXBwZW5pbmcgYmV0d2VlbiA4IGEubS4gYW5kIDggcC5tLiBpbiB5b3VyIGxvY2FsIHRpbWUgem9uZSwgd2UgZXhwZWN0IGF0dGVuZGFuY2UuIFN0dWRlbnRzIG1heSBtaXNzIHVwIHRvIDIgbGl2ZSBjbGFzcyBzZXNzaW9ucyB3aXRob3V0IHBlbmFsdHkuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PkFic2VuY2UgUmVxdWlyZW1lbnRzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+SWYgYWJzZW50LCBwb3N0IGEgMjUwLXdvcmQgcmVzcG9uc2UgdG8gdGhlIGxlY3R1cmUgd2l0aGluIDMgZGF5cyBhZnRlciB0aGUgcmVjb3JkaW5nIGlzIHBvc3RlZDwvbGk+CiAgICAgICAgPGxpPkxlYXZpbmcgbW9yZSB0aGFuIDIwJSBvZiBjbGFzcyBlYXJseSBjb3VudHMgYXMgYW4gYWJzZW5jZTwvbGk+CiAgICAgICAgPGxpPjMgYWJzZW5jZXM6IEZpbmFsIGdyYWRlIHJlZHVjZWQgYnkgMSB1bml0PC9saT4KICAgICAgICA8bGk+NCBhYnNlbmNlczogRmluYWwgZ3JhZGUgcmVkdWNlZCBieSBhbm90aGVyIHVuaXQ8L2xpPgogICAgICAgIDxsaT41KyBhYnNlbmNlczogRmFpbHVyZSBvZiB0aGUgY291cnNlPC9saT4KICAgIDwvdWw+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZ3JhZGluZyI+CiAgICA8aDM+R3JhZGluZyBTY2FsZTwvaDM+CiAgICA8cD5UaGUgZ3JhZGluZyBzY2FsZSBpcyBmcm9tIDEgdG8gMTAgd2l0aCAxMCBiZWluZyB0aGUgaGlnaGVzdCBncmFkZSBhY2hpZXZhYmxlOjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJncmFkZS1zY2FsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz4xMDwvc3Ryb25nPiAtIEhpZ2hlc3QgYWNoaWV2YWJsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+OTwvc3Ryb25nPiAtIEV4Y2VsbGVudDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+ODwvc3Ryb25nPiAtIFZlcnkgR29vZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+Nzwvc3Ryb25nPiAtIEdvb2Q8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjY8L3N0cm9uZz4gLSBQYXNzYWJsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+NTwvc3Ryb25nPiAtIEZhaWx1cmUgKG1heSByZXRha2UpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz40PC9zdHJvbmc+IC0gRmFpbHVyZSAobWF5IHJldGFrZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjM8L3N0cm9uZz4gLSBGYWlsdXJlIChubyByZXRha2UpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz4yPC9zdHJvbmc+IC0gRmFpbHVyZSAobm8gcmV0YWtlKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+MTwvc3Ryb25nPiAtIEZhaWx1cmUgKG5vIHJldGFrZSk8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9IndpdGhkcmF3aW5nIj4KICAgIDxoMz5XaXRoZHJhd2luZyBmcm9tIGEgQ291cnNlPC9oMz4KICAgIDxwPkEgc3R1ZGVudCBtYXkgd2l0aGRyYXcgZnJvbSBhbnkgY291cnNlIGF0IGFueSB0aW1lOyBob3dldmVyLCB0aGVyZSBhcmUgZGlmZmVyZW50IGNvbnNlcXVlbmNlczo8L3A+CiAgIAogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5XaXRoZHJhd2FsIFBlcmlvZDwvdGg+CiAgICAgICAgICAgIDx0aD5Db25zZXF1ZW5jZTwvdGg+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5CZWZvcmUgMm5kIGNsYXNzIG1lZXRpbmc8L3RkPgogICAgICAgICAgICA8dGQ+Tm8gY29uc2VxdWVuY2VzLCBubyBncmFkZSBvciBjcmVkaXQ8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+QmVmb3JlIDR0aCBjbGFzcyBtZWV0aW5nPC90ZD4KICAgICAgICAgICAgPHRkPkNhbiBjbGFpbSA1MCUgb2YgdHVpdGlvbiBmdW5kcywgbm8gZ3JhZGUgb3IgY3JlZGl0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkJlZm9yZSA1dGggY2xhc3MgbWVldGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5ObyB0dWl0aW9uIHJlaW1idXJzZW1lbnQsIG5vIGdyYWRlIG9yIGNyZWRpdDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BZnRlciA2dGggY2xhc3MgbWVldGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5XaWxsIHJlY2VpdmUgYSBncmFkZSBmb3IgdGhlIGNvdXJzZTwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJkaXNjaXBsaW5hcnkiPgogICAgPGgzPkRpc2NpcGxpbmFyeSBQb2xpY3k8L2gzPgogICAgPHA+QWxsIEdDQVMgQ29sbGVnZSBzdHVkZW50cyBhcmUgZXhwZWN0ZWQgdG8gY29uZHVjdCB0aGVtc2VsdmVzIGluIGEgcmVzcGVjdGZ1bCBhbmQgcHJvZmVzc2lvbmFsIG1hbm5lciBhdCBhbGwgdGltZXMuPC9wPgogICAKICAgIDxoND5LaW5kcyBvZiBEaXNjaXBsaW5hcnkgQWN0aW9uPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+T2ZmaWNpYWwgUmVwcmltYW5kPC9saT4KICAgICAgICA8bGk+QWNhZGVtaWMgUHJvYmF0aW9uPC9saT4KICAgICAgICA8bGk+VGVtcG9yYXJ5IFN1c3BlbnNpb248L2xpPgogICAgICAgIDxsaT5Gb3JjZWQgTGVhdmUgb2YgQWJzZW5jZTwvbGk+CiAgICAgICAgPGxpPlN1c3BlbnNpb24gZm9yIDEgWWVhcjwvbGk+CiAgICAgICAgPGxpPlRlcm1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+VGVybWluYXRpb24gd2l0aG91dCB0aGUgcHJpdmlsZWdlIG9mIHJlYXBwbHlpbmc8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+UHJvY2VkdXJlPC9oND4KICAgIDxwPlNob3VsZCBhIHN0dWRlbnQgYmUgc3VzcGVjdGVkIG9mIHZpb2xhdGluZyBhIHBvbGljeSBvciBjb2RlIG9mIEdDQVMgQ29sbGVnZSwgdGhleSB3aWxsIGJlIGZvcm1hbGx5IG5vdGlmaWVkIGJ5IHRoZSBEZWFuIG9mIFN0dWRlbnQgQWZmYWlycyB2aWEgZW1haWwuIFRoZSBzdHVkZW50IGNhbiBhZG1pdCB2aW9sYXRpb24gaW4gd3JpdGluZywgb3IgY2xhaW0gaW5ub2NlbmNlIGFuZCByZWNlaXZlIGEgZmFpciBkZWZlbnNlIGluIGFuIEV0aGljcyBDb21taXR0ZWUgVmlvbGF0aW9uIEhlYXJpbmcuPC9wPgogICAKICAgIDxoND5MZWF2ZSBvZiBBYnNlbmNlPC9oND4KICAgIDxwPkEgc3R1ZGVudCBtYXkgYXBwbHkgZm9yIGEgbWVkaWNhbCBsZWF2ZSBvZiBhYnNlbmNlIGFuZC9vciBhIHBhdXNlIGluIHRoZWlyIHN0dWRpZXMuIFRoZSBjb3N0IG9mIGEgbGVhdmUgb2YgYWJzZW5jZSBpcyDigqw1MDAuPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDM6IEdDQVMgQ29sbGVnZSBFY29ub215PC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImZpbmFuY2lhbC1haWQiPgogICAgPGgzPkZpbmFuY2lhbCBBaWQ8L2gzPgogICAKICAgIDxkaXYgY2xhc3M9ImhpZ2hsaWdodC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+MTAwJSBPRiBBTEwgR0NBUyBDT0xMRUdFIFNUVURFTlRTIFJFQ0VJVkUgU09NRSBGSU5BTkNJQUwgQUlEPC9zdHJvbmc+PC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBpcyBjb21taXR0ZWQgdG8gcHJvdmlkaW5nIHRoZSBoaWdoZXN0IHF1YWxpdHkgZWR1Y2F0aW9uIGF0IHRoZSBsb3dlc3QgcG9zc2libGUgY29zdC4gVGhlcmUgYXJlIHRocmVlIHdheXMgd2UgaGVscCBzdHVkZW50czo8L3A+CiAgICA8b2w+CiAgICAgICAgPGxpPkV4dHJlbWVseSBsb3cgdHVpdGlvbiBmb3IgaGlnaCBxdWFsaXR5IGVkdWNhdGlvbjwvbGk+CiAgICAgICAgPGxpPkFsbCBhY2NlcHRlZCBzdHVkZW50cyByZWNlaXZlIHNvbWUgZm9ybSBvZiB0dWl0aW9uIHJlbWlzc2lvbiBzdXBwb3J0OyBzb21lIG1heSByZWNlaXZlIHVwIHRvIDUwJSBkZXBlbmRpbmcgb24gdGhlIHN0cmVuZ3RoIG9mIHRoZSBhcHBsaWNhdGlvbiBzPC9saT4KICAgICAgICA8bGk+RmxleGlibGUgcGF5bWVudCBzY2hlZHVsZXM8L2xpPgogICAgPC9vbD4KICAgCiAgICA8aDQ+VGhlIFdhcnJlbiBULiBEYXZpcywgSnIgU2Nob2xhcnNoaXA8L2g0PgogICAgPHA+R0NBUyBtYXkgb2ZmZXIgdW5pcXVlIHNjaG9sYXJzaGlwIG9wcG9ydHVuaXR5IHRoYXQgcHJvdmlkZXMgdGhlIHJlY2lwaWVudCB3aXRoIHVwIHRvIDEwMCUgdHVpdGlvbiByZW1pc3Npb24uIFRoaXMgc2Nob2xhcnNoaXAgaXMgc2V0IGFzaWRlIGZvciBCQSwgTUEgYW5kIFBoRCBSZXNlYXJjaGVycyB3aG8gYXJlIGFjY2VwdGVkIGludG8gR0NBUy48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZmVlcyI+CiAgICA8aDM+QWRkaXRpb25hbCBGZWVzPC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5TdGF5IG9uIFRyYWNrLCBTdGF5IERlYnQtRnJlZTo8L3N0cm9uZz4gTk8gRVhUUkEgRkVFUyBJRiBZT1UgR1JBRFVBVEUgT04gVElNRS4gQWRkaXRpb25hbCBmZWVzIGFwcGx5IG9ubHkgaW4gZXhjZXB0aW9uYWwgY2lyY3Vtc3RhbmNlcy48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8aDQ+RmVlIFN1bW1hcnk8L2g0PgogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5GZWUgVHlwZTwvdGg+CiAgICAgICAgICAgIDx0aD5BcHBsaWVzIFRvPC90aD4KICAgICAgICAgICAgPHRoPldoZW4gRmVlcyBBcHBseTwvdGg+CiAgICAgICAgICAgIDx0aD5Nb250aGx5IENvc3Q8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+Q29udGludWF0aW9uIEZlZTwvdGQ+CiAgICAgICAgICAgIDx0ZD5NQSwgQkEsIFBoRDwvdGQ+CiAgICAgICAgICAgIDx0ZD5BZnRlciBncmFjZSBwZXJpb2QsIGZvciBlYWNoIGFkZGl0aW9uYWwgbW9udGg8L3RkPgogICAgICAgICAgICA8dGQ+4oKsMjUwPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkV4dHJhb3JkaW5hcnkgU3VwZXJ2aXNpb24gKE1BKTwvdGQ+CiAgICAgICAgICAgIDx0ZD5NQSB0aGVzaXMgd3JpdGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5JZiBzdXBlcnZpc2lvbiBleGNlZWRzIDMgbW9udGhzPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5FeHRyYW9yZGluYXJ5IFN1cGVydmlzaW9uIChQaEQpPC90ZD4KICAgICAgICAgICAgPHRkPlBoRDwvdGQ+CiAgICAgICAgICAgIDx0ZD5EdXJpbmcgMyBub24tYnVkZ2V0ZWQgbW9udGhzIChzdW1tZXIgYnJlYWspPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BZGRpdGlvbmFsIFN1cGVydmlzb3IgKFBoRCk8L3RkPgogICAgICAgICAgICA8dGQ+UGhEIChZZWFyIDIgb3IgMyk8L3RkPgogICAgICAgICAgICA8dGQ+Rm9yIGVhY2ggbW9udGggd2l0aCBhZGRpdGlvbmFsIHN1cGVydmlzb3I8L3RkPgogICAgICAgICAgICA8dGQ+4oKsMTUwPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgogICAKICAgIDxoND5Db250aW51YXRpb24gRmVlczwvaDQ+CiAgICA8cD5HQ0FTIHByb3ZpZGVzIGNsZWFybHkgZGVmaW5lZCB0aW1lbGluZXMgZm9yIGRlZ3JlZSBjb21wbGV0aW9uOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBwcm9ncmFtczo8L3N0cm9uZz4gMTIgbW9udGhzPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CQSBhbmQgUGhEIHByb2dyYW1zOjwvc3Ryb25nPiAzNiBtb250aHM8L2xpPgogICAgPC91bD4KICAgIDxwPkEgdHdvLW1vbnRoIGdyYWNlIHBlcmlvZCBpcyBncmFudGVkIGF0IG5vIGFkZGl0aW9uYWwgY29zdC4gQWZ0ZXIgdGhpcywgYSBtb250aGx5IGNvbnRpbnVhdGlvbiBmZWUgb2Yg4oKsMjAwIHdpbGwgYmUgY2hhcmdlZC48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gNDogQkEgYW5kIE1BIERlZ3JlZSBQcm9ncmFtbWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImJhLXByb2dyYW0iPgogICAgPGgzPkJhY2hlbG9yIG9mIEludGVyZGlzY2lwbGluYXJ5IFN0dWRpZXMgKEJBLUlTKTwvaDM+CiAgICA8cD48c3Ryb25nPkRpcmVjdG9yOjwvc3Ryb25nPiBNYXJpbyBEJ0FtYXRvPC9wPgogICAgPHA+UGxlYXNlIHJlZmVyIHRvIHRoZSBHQ0FTIHdlYnNpdGUgZm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgcHJvZ3JhbW1lLjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJtYS1wcm9ncmFtcyI+CiAgICA8aDM+TUEgUHJvZ3JhbW1lczwvaDM+CiAgICA8cD5UaGUgTUEgcHJvZ3JhbW1lcyBhcmUgYmFzZWQgb24gY291cnNld29yayBhbmQgcmVzZWFyY2ggYW5kIHJhbmdlIGluIGxlbmd0aCBmcm9tIG9uZSB0byB0d28geWVhcnMuIFN0dWRlbnRzIGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSA5MCBFQ1RTIGNyZWRpdCBob3Vycywgd2hpY2ggaW5jbHVkZTo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkNvdXJzZXdvcms8L2xpPgogICAgICAgIDxsaT5Nb250aGx5IHN1cGVydmlzaW9uPC9saT4KICAgICAgICA8bGk+TUEgVGhlc2lzIHBlZXIgbWVudG9yIGhvdXJzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PlByb2dyYW1tZSBEaXJlY3RvcnM8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFBoaWxvc29waHk6PC9zdHJvbmc+IENyZXN0b24gRGF2aXMsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+TUEgaW4gUHN5Y2hvYW5hbHlzaXM6PC9zdHJvbmc+IEZsb3JpYW4gS2xlaW5hdSwgUGhEPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBpbiBQb2xpdGljczo8L3N0cm9uZz4gRnJhbmNpc2NvIEdvbnphbGVzLCBQaEQ8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFRoZW9sb2d5Ojwvc3Ryb25nPiBCYXJyeSBUYXlsb3IsIFBoRDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5TdXBlcnZpc2VkIEd1aWRlZCBSZXNlYXJjaDwvaDQ+CiAgICA8cD5UaGUgY29yZSBvZiB0aGlzIHByb2dyYW1tZSBpcyBndWlkZWQgYW5kIHN1cGVydmlzZWQgaW5kaXZpZHVhbCByZXNlYXJjaCBmcm9tIG9uZSBvZiBHQ0FTIENvbGxlZ2UncyBmYWN1bHR5IG1lbWJlcnMuIFlvdSBhcmUgcmVxdWlyZWQgdG8gbWVldCBhdCBsZWFzdCBvbmNlIHBlciBtb250aCB3aXRoIHlvdXIgYXNzaWduZWQgQWNhZGVtaWMgU3VwZXJ2aXNvci48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBTaG91bGQgYSBzdHVkZW50IHNlZWsgYSBzdXBlcnZpc29yIG91dHNpZGUgdGhlIGNvcmUgR0NBUyBmYWN1bHR5LCB0aGV5IG11c3QgZmlyc3QgYXJyYW5nZSB0aGlzIHZpYSB0aGUgQ2hhbmNlbGxvciwgRHIuIENyZXN0b24gRGF2aXMuIFRoZXJlIHdpbGwgbm9ybWFsbHkgYmUgYW4gZXh0cmEgZmVlIG9mIOKCrDEwMCBwZXIgbW9udGggZm9yIGV4dGVybmFsIHN1cGVydmlzb3JzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxoND5NYXN0ZXJzIENvbXByZWhlbnNpdmUgRXhhbWluYXRpb24gKE1DRSk8L2g0PgogICAgPHA+RWFjaCBzdHVkZW50IHdpbGwgYmUgcmVxdWlyZWQgdG8gdGFrZSBhbmQgc3VjY2Vzc2Z1bGx5IHBhc3MgdGhlIE1DRS4gVGhpcyBleGFtaW5hdGlvbiBpcyBhIGZvdXItaG91ciwgd3JpdHRlbiBleGFtaW5hdGlvbi4gU3R1ZGVudHMgY2FuIHVzZSBleHRlcm5hbCBtYXRlcmlhbHMgZHVyaW5nIHRoaXMgZXhhbWluYXRpb24uPC9wPgogICAgPHVsPgogICAgICAgIDxsaT5UaGUgZXhhbWluYXRpb24gY29uc2lzdHMgb2Ygb25lIG9yIHR3byBxdWVzdGlvbnMgb24gdGhlIHJlc2VhcmNoIHRvcGljPC9saT4KICAgICAgICA8bGk+TXVzdCBiZSBwcm9jdG9yZWQgYnkgYSBHQ0FTIGZhY3VsdHkgbWVtYmVyIG9yIGFwcHJvdmVkIHByb2N0b3I8L2xpPgogICAgICAgIDxsaT5HcmFkZWQgYXMgIlBhc3MiIG9yICJGYWlsIjwvbGk+CiAgICAgICAgPGxpPklmIGZhaWxlZCwgY2FuIHJldGFrZSBhZnRlciAzMCBkYXlzPC9saT4KICAgICAgICA8bGk+SWYgdGhlIHJldGFrZSBpcyBmYWlsZWQsIHRoZSBzdHVkZW50IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBwcm9ncmFtbWU8L2xpPgogICAgPC91bD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0aGVzaXMtcmVxdWlyZW1lbnRzIj4KICAgIDxoMz5NQSBUaGVzaXMgUmVxdWlyZW1lbnRzPC9oMz4KICAgCiAgICA8aDQ+TGVuZ3RoPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+TWluaW11bTogMjAsMDAwIHdvcmRzPC9saT4KICAgICAgICA8bGk+TWF4aW11bTogNDAsMDAwIHdvcmRzIChleGNsdWRpbmcgYmlibGlvZ3JhcGh5IGFuZCBhcHBlbmRpY2VzKTwvbGk+CiAgICAgICAgPGxpPkFic29sdXRlIG1heGltdW06IDUwLDAwMCB3b3JkczwvbGk+CiAgICAgICAgPGxpPkZvb3Rub3RlcyAmYW1wOyBjaXRhdGlvbnM6IFNob3VsZCBub3QgZXhjZWVkIDIwJSBvZiB0aGUgVGhlc2lzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkZvcm1hdDwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkVsZW1lbnQ8L3RoPgogICAgICAgICAgICA8dGg+UmVxdWlyZW1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TWFyZ2luczwvdGQ+CiAgICAgICAgICAgIDx0ZD4xIGluY2ggb24gYWxsIHNpZGVzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQ8L3RkPgogICAgICAgICAgICA8dGQ+VGltZXMgTmV3IFJvbWFuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQgU2l6ZTwvdGQ+CiAgICAgICAgICAgIDx0ZD4xMnB0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNwYWNpbmc8L3RkPgogICAgICAgICAgICA8dGQ+RG91YmxlPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkNpdGF0aW9uIFN0eWxlPC90ZD4KICAgICAgICAgICAgPHRkPkNoaWNhZ28sIE1MQSwgb3IgQVBBIChtdXN0IGJlIGNvbnNpc3RlbnQgdGhyb3VnaG91dCk8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+CiAgIAogICAgPGg0PlRoZXNpcyBEZWZlbnNlPC9oND4KICAgIDxwPlRoZSBNQSBEZWZlbnNlIGlzIGV4cGVjdGVkIHRvIGxhc3QgYWJvdXQgb25lIGhvdXI6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT41IG1pbnV0ZXM6IEludHJvZHVjdGlvbiBieSBBY2FkZW1pYyBTdXBlcnZpc29yPC9saT4KICAgICAgICA8bGk+MTAgbWludXRlczogU3R1ZGVudCBzdW1tYXJpc2VzIHRoZXNpczwvbGk+CiAgICAgICAgPGxpPjIwIG1pbnV0ZXM6IENvbW1pdHRlZSBleGFtaW5hdGlvbjwvbGk+CiAgICAgICAgPGxpPjUgbWludXRlczogU3R1ZGVudCBzdW1tYXJ5PC9saT4KICAgICAgICA8bGk+MTUgbWludXRlczogQ29tbWl0dGVlIHByaXZhdGUgZGlzY3Vzc2lvbjwvbGk+CiAgICAgICAgPGxpPjUgbWludXRlczogR3JhZGUgYW5ub3VuY2VtZW50PC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PkRlZmVuc2UgR3JhZGVzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5BLjwvc3Ryb25nPiBQYXNzIHdpdGggRGlzdGluY3Rpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkIuPC9zdHJvbmc+IFBhc3Mgd2l0aG91dCBSZXZpc2lvbjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Qy48L3N0cm9uZz4gUGFzcyB3aXRoIE1pbm9yIFJldmlzaW9ucyAoMTgwIGRheXMgdG8gYWRkcmVzcyk8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkQuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNYWpvciBSZXZpc2lvbnMgKDE4MCBkYXlzIHRvIGFkZHJlc3MpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5FLjwvc3Ryb25nPiBGYWlsIChidXQgc3R1ZGVudCBjYW4gcmVkZWZlbmQgYWZ0ZXIgMzY1IGRheXMpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5GLjwvc3Ryb25nPiBGYWlsICh3aXRoIG5vIGZ1cnRoZXIgb3B0aW9ucyk8L2xpPgogICAgPC91bD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA1OiBQaEQgUHJvZ3JhbW1lczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJwaGQtb3ZlcnZpZXciPgogICAgPGgzPlBoRCBPdmVydmlldzwvaDM+CiAgICA8cD5HQ0FTJ3MgUGguRC4gcHJvZ3JhbW1lcyBzdHJpdmUgdG8gYmUgdGhlIGJlc3QgcmVzZWFyY2ggcHJvZ3JhbW1lIG9mIGl0cyBraW5kIGluIHRoZSB3b3JsZC48L3A+CiAgIAogICAgPGg0PkF2YWlsYWJsZSBQcm9ncmFtbWVzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5QaEQgaW4gdGhlIEh1bWFuaXRpZXMgYW5kIFNvY2lhbCBTY2llbmNlczwvc3Ryb25nPiDigJQgRGlyZWN0b3I6IENyZXN0b24gRGF2aXMsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+UGhEIGluIHRoZSBOYXR1cmFsIFNjaWVuY2VzIChNYXRoZW1hdGljcyBhbmQgUGh5c2ljcyk8L3N0cm9uZz4g4oCUIERpcmVjdG9yOiBGZXJuYW5kbyBUb2htw6ksIFBoRDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5CYXNpYyBSZXF1aXJlbWVudHM8L2g0PgogICAgPHA+R0NBUyBQaEQgcHJvZ3JhbW1lcyBhcmUgMyB5ZWFycyBpbiBsZW5ndGg6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPlllYXIgMTo8L3N0cm9uZz4gUmVzZWFyY2ggZGVzaWduLCBtZXRob2RvbG9neSBkZXZlbG9wbWVudCwgbGl0ZXJhdHVyZSByZXZpZXcsIGlkZW50aWZ5aW5nIHJlc2VhcmNoICJnYXAsIiBhbmQgZGV2ZWxvcGluZyBhIHRlbnRhdGl2ZSBoeXBvdGhlc2lzLiBPbmUgcmVxdWlyZWQgY291cnNlOiAiTWV0aG9kb2xvZ2llcyBhbmQgUmVzZWFyY2ggVGVjaG5pcXVlcyIgKG1lZXRzIDQgdGltZXMgcGVyIHllYXIpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDI6PC9zdHJvbmc+IFByb21vdGlvbiB0byAiUGhEIENhbmRpZGF0ZSIgc3RhdHVzIGFuZCBhc3NpZ25tZW50IG9mIGFuIGV4cGVydCBzdXBlcnZpc29yPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDM6PC9zdHJvbmc+IERpc3NlcnRhdGlvbiBjb21wbGV0aW9uIGFuZCBkZWZlbnNlPC9saT4KICAgIDwvdWw+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGlzc2VydGF0aW9uIj4KICAgIDxoMz5QaEQgRGlzc2VydGF0aW9uIFJlcXVpcmVtZW50czwvaDM+CiAgICA8cD5UaGUgUGhEIERpc3NlcnRhdGlvbiBpcyBhIHNjaWVudGlmaWMgZG9jdW1lbnQgY29uc2lzdGluZyBvZiBzdXN0YWluZWQsIHJpZ29yb3VzLCBhbmQgY29oZXJlbnQgcmVzZWFyY2ggdGhhdCBjb250cmlidXRlcyBzb21ldGhpbmcgb3JpZ2luYWwgdG8gYSBmaWVsZCBvciBmaWVsZHMgb2YgaW5xdWlyeS48L3A+CiAgIAogICAgPGg0PkZvcm1hdDwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkVsZW1lbnQ8L3RoPgogICAgICAgICAgICA8dGg+UmVxdWlyZW1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TGVuZ3RoPC90ZD4KICAgICAgICAgICAgPHRkPn44MCwwMDAgd29yZHMgKG1heCAxMDAsMDAwIGV4Y2x1ZGluZyBiaWJsaW9ncmFwaHkpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPk1hcmdpbnM8L3RkPgogICAgICAgICAgICA8dGQ+MS41IGluY2ggb24gYWxsIHNpZGVzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQ8L3RkPgogICAgICAgICAgICA8dGQ+VGltZXMgTmV3IFJvbWFuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkZvbnQgU2l6ZTwvdGQ+CiAgICAgICAgICAgIDx0ZD4xMnB0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNwYWNpbmc8L3RkPgogICAgICAgICAgICA8dGQ+RG91YmxlPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InBoZC1kZWZlbnNlIj4KICAgIDxoMz5QaEQgRGlzc2VydGF0aW9uIERlZmVuc2U8L2gzPgogICAgPHA+VGhlIFBoRCBEaXNzZXJ0YXRpb24gRGVmZW5zZSBtdXN0IGJlIHNjaGVkdWxlZCBhdCBsZWFzdCA5MCBkYXlzIGFoZWFkLiBBbGwgY29tbWl0dGVlIG1lbWJlcnMgbXVzdCBiZSBwcmVzZW50IGVpdGhlciBpbiBwZXJzb24gb3IgdmlhIGxpdmUgb25saW5lIG1lZXRpbmcuPC9wPgogICAKICAgIDxoND5EZWZlbnNlIEZvcm1hdDwvaDQ+CiAgICA8b2w+CiAgICAgICAgPGxpPkludHJvZHVjdGlvbjwvbGk+CiAgICAgICAgPGxpPlN0dWRlbnQgcHJlc2VudHMgMy01IG1pbnV0ZSBzdW1tYXJ5PC9saT4KICAgICAgICA8bGk+UXVlc3Rpb25zIGFuZCBleGFtaW5hdGlvbiBieSBldmFsdWF0b3JzPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCByZXBsaWVzIHRvIGV4YW1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCBsZWF2ZXMgd2hpbGUgZXhhbWluZXJzIGNvbnZlbmU8L2xpPgogICAgICAgIDxsaT5HcmFkZSBkZXRlcm1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+U3R1ZGVudCByZXR1cm5zIGFuZCBncmFkZSBpcyBkZWxpdmVyZWQ8L2xpPgogICAgICAgIDxsaT5NZWV0aW5nIGFkam91cm5lZDwvbGk+CiAgICA8L29sPgogICAKICAgIDxoND5HcmFkZSBTY2FsZTwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+QS48L3N0cm9uZz4gUGFzcyB3aXRoIERpc3RpbmN0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CLjwvc3Ryb25nPiBQYXNzIHdpdGhvdXQgUmV2aXNpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkMuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNaW5vciBSZXZpc2lvbiAoOTAgZGF5cyB0byBzdWJtaXQgcmV2aXNpb25zKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RC48L3N0cm9uZz4gUGFzcyB3aXRoIE1ham9yIFJldmlzaW9uICgxODAgZGF5cyB0byBzdWJtaXQgcmV2aXNpb25zKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RS48L3N0cm9uZz4gRmFpbCAod2l0aCByZXN1Ym1pc3Npb24gcG9zc2libGUpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5GLjwvc3Ryb25nPiBGYWlsICh3aXRob3V0IHJlc3VibWlzc2lvbik8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+U3VibWlzc2lvbjwvaDQ+CiAgICA8cD5PbmNlIHBhc3NlZCwgdGhlIHN0dWRlbnQgbXVzdCBzdWJtaXQgdGhlIGZpbmFsIGNvcHkgd2l0aGluIDE4MCBkYXlzLiBGYWlsdXJlIHRvIHN1Ym1pdCB3aXRoaW4gMTgwIGRheXMgd2lsbCByZXN1bHQgaW4gdGhlIGRlZ3JlZSBiZWluZyByZXZva2VkLjwvcD4KICAgCiAgICA8aDQ+UmVzZWFyY2ggQmV5b25kIDMgWWVhcnM8L2g0PgogICAgPHA+SWYgZGlzc2VydGF0aW9uIHJlc2VhcmNoIHRha2VzIGxvbmdlciB0aGFuIDMgeWVhcnMsIHR1aXRpb24gZmVlcyByZW1haW4gdGhlIHNhbWUgYXMgdGhlIGZpbmFsIHllYXIgb2Ygc3R1ZHkuIEFmdGVyIFllYXIgNCwgdGhlIENoYW5jZWxsb3Igd2lsbCBhc3Nlc3MgdGhlIGZlYXNpYmlsaXR5IG9mIGNvbXBsZXRpb24uPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDY6IFN0dWRlbnQgQWdyZWVtZW50cyAmYW1wOyBPYmxpZ2F0aW9uczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJsaWFiaWxpdHkiPgogICAgPGgzPkV2ZW50IEF0dGVuZGFuY2UgJmFtcDsgTGlhYmlsaXR5PC9oMz4KICAgIDxwPldoZW4gYSBzdHVkZW50IGF0dGVuZHMgYSBHQ0FTIGV2ZW50IGluIHBlcnNvbiwgdGhleSBkbyBzbyA8c3Ryb25nPiJhdCB0aGVpciBvd24gcmlzay4iPC9zdHJvbmc+PC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+TGlhYmlsaXR5IFdhaXZlcjo8L3N0cm9uZz4gQnkgYXR0ZW5kaW5nIGFueSBHQ0FTIENvbGxlZ2UgRHVibGluIG9yIEdsb2JhbCBDZW50cmUgZm9yIEFkdmFuY2VkIFN0dWRpZXMgKCJHQ0FTIikgZXZlbnQgaW4gcGVyc29uLCBzdHVkZW50cyBhZ3JlZSB0aGF0IGluIHRoZSB1bmV4cGVjdGVkIGV2ZW50IHRoYXQgdGhleSBhcmUgaW5qdXJlZCBvciBodXJ0LCB0aGV5IHdpbGwgbm90IGhvbGQgR0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIG9yIHRoZSBHbG9iYWwgQ2VudHJlIGZvciBBZHZhbmNlZCBTdHVkaWVzICgiR0NBUyIpIHJlc3BvbnNpYmxlIGZvciBhbnkgaW5qdXJpZXMsIGRhbWFnZXMsIG9yIGxvc3NlcyBpbmN1cnJlZC48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8cD5BbGwgc3R1ZGVudHMsIGZhY3VsdHksIGFuZCBhdHRlbmRlZXMgd2hvIGF0dGVuZCBhbnkgR0NBUyBDb2xsZWdlIGV2ZW50cyBpbiBwZXJzb24gbXVzdCBmaXJzdCBzaWduIGEgTGlhYmlsaXR5IFJlbGVhc2UgRm9ybSBhY2tub3dsZWRnaW5nIHRoaXMgcG9saWN5LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0dWl0aW9uLXBheW1lbnQiPgogICAgPGgzPlR1aXRpb24gUGF5bWVudCBPYmxpZ2F0aW9uczwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0iaW1wb3J0YW50LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5QYXltZW50IFJlcXVpcmVtZW50Ojwvc3Ryb25nPiBTdHVkZW50cyBhZ3JlZSB0byBwYXkgdGhlaXIgdHVpdGlvbiBvbiB0aW1lIGFjY29yZGluZyB0byB0aGUgcGF5bWVudCBzY2hlZHVsZSBlc3RhYmxpc2hlZCB1cG9uIGVucm9sbG1lbnQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0Pk5vbi1QYXltZW50IENvbnNlcXVlbmNlczwvaDQ+CiAgICA8cD5TaG91bGQgYSBzdHVkZW50IG5vdCBwYXkgdGhlaXIgdHVpdGlvbiBhZnRlciByZWNlaXZpbmcgYSB3YXJuaW5nIGFuZCBhZnRlciBtb3JlIHRoYW4gPHN0cm9uZz42MCBkYXlzPC9zdHJvbmc+IHdpdGhvdXQgcHJpb3IgYXBwcm92YWwgZnJvbSB0aGUgQ2hhbmNlbGxvciwgdGhleSB3aWxsIGJlIHJlbW92ZWQgZnJvbSBlbnJvbGxtZW50IGFuZCBmcm9tIEdDQVMuPC9wPgogICAKICAgIDxoND5UdWl0aW9uIENvbW1pdG1lbnQgQWZ0ZXIgQWNjZXB0YW5jZTwvaDQ+CiAgICA8cD5JZiB5b3UgYWdyZWUgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIG91ciBhY2NlcHRhbmNlIG9mZmVyLCBHQ0FTIG5lZWRzIHRvIHJlbHkgb24geW91IHRvIHBheSBmb3IgeW91ciB0dWl0aW9uIGluIGEgdGltZWx5IG1hbm5lciBhcyBhZ3JlZWQuIFRoaXMgY29tbWl0bWVudCBpcyBlc3NlbnRpYWwgZm9yIEdDQVMgdG8gbWFpbnRhaW4gaXRzIG9wZXJhdGlvbnMgYW5kIGNvbnRpbnVlIHByb3ZpZGluZyBxdWFsaXR5IGVkdWNhdGlvbi48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0id2FybmluZy1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBTaG91bGQgeW91IHdhbnQgdG8gc3RvcCB5b3VyIHN0dWRpZXMgYWZ0ZXIgMzAgZGF5cywgeW91IGFyZSBzdGlsbCBvYmxpZ2F0ZWQgdG8gcGF5IGZvciB5b3VyIGVudGlyZSB0dWl0aW9uIGFtb3VudCB0aGF0IHlvdSBoYXZlIGFncmVlZCB0by4gVGhpcyBwb2xpY3kgZW5zdXJlcyB0aGF0IEdDQVMgY2FuIGFsbG9jYXRlIHJlc291cmNlcyBhcHByb3ByaWF0ZWx5IGFuZCBtYWludGFpbiBpdHMgY29tbWl0bWVudCB0byBhbGwgc3R1ZGVudHMuPC9wPgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0icmVjb3JkaW5nLXBvbGljeSI+CiAgICA8aDM+UmVjb3JkaW5nICZhbXA7IE1lZGlhIFBvbGljeTwvaDM+CiAgICA8cD5HQ0FTIHJlY29yZHMgb3VyIGxlY3R1cmVzIGFuZCBldmVudHMgdG8gZW5zdXJlIGFsbCBzdHVkZW50cyBoYXZlIGFjY2VzcyB0byBlZHVjYXRpb25hbCBjb250ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlaXIgbG9jYXRpb24gb3Igc2NoZWR1bGUuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkNvbnNlbnQgdG8gUmVjb3JkaW5nOjwvc3Ryb25nPiBCeSBwYXJ0aWNpcGF0aW5nIGluIEdDQVMgZXZlbnRzLCBjb3Vyc2VzLCBvciBzZW1pbmFycyBvbmxpbmUgdmlhIFpvb20gKG9yIHNpbWlsYXIgcGxhdGZvcm1zKSwgeW91IGFncmVlIHRvIGFsbG93IEdDQVMgdG8gcmVjb3JkIHRoZXNlIHNlc3Npb25zIGFuZCBwcm92aWRlIHRoZSByZWNvcmRpbmdzIHRvIEdDQVMgc3R1ZGVudHMgYW5kIHJlc2VhcmNoZXJzIHdobyBjb3VsZG4ndCBwYXJ0aWNpcGF0ZSBkdWUgdG8gdGltZS16b25lIGlzc3VlcywgaGVhbHRoIGNvbmNlcm5zLCBvciBzaW1pbGFyIGNpcmN1bXN0YW5jZXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PldoZXJlIFJlY29yZGluZ3MgQXJlIFN0b3JlZDwvaDQ+CiAgICA8cD5HQ0FTIHBvc3RzIGFuZCBzdG9yZXMgcmVjb3JkaW5ncyBpbiB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkdDQVMgQ29tbXVuaXR5IEZvcnVtPC9saT4KICAgICAgICA8bGk+Q2FudmFzIExlYXJuaW5nIE1hbmFnZW1lbnQgU3lzdGVtPC9saT4KICAgICAgICA8bGk+R0NBUyBZb3VUdWJlIENoYW5uZWw8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5UaGVzZSByZWNvcmRpbmdzIGFyZSBpbnRlbmRlZCBmb3IgZWR1Y2F0aW9uYWwgcHVycG9zZXMgYW5kIHRvIHN1cHBvcnQgdGhlIGxlYXJuaW5nIGNvbW11bml0eSBhdCBHQ0FTLjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA3OiBHQ0FTIENvbGxlZ2UgUG9saWNpZXM8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGF0YS1wcm90ZWN0aW9uIj4KICAgIDxoMz5EYXRhIFByb3RlY3Rpb24gYW5kIFJldGVudGlvbiBQb2xpY3k8L2gzPgogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIGlzIGNvbW1pdHRlZCB0byBwcm90ZWN0aW5nIHRoZSBwcml2YWN5IGFuZCBwZXJzb25hbCBkYXRhIG9mIGFsbCBzdHVkZW50cywgZmFjdWx0eSwgc3RhZmYsIGFuZCBwYXJ0bmVycyBpbiBhY2NvcmRhbmNlIHdpdGggR0RQUiBhbmQgdGhlIElyaXNoIERhdGEgUHJvdGVjdGlvbiBBY3QgMjAxOC48L3A+CiAgIAogICAgPGg0PkRhdGEgQ29udHJvbGxlcjwvaDQ+CiAgICA8cD5HQ0FTIENvbGxlZ2UgRHVibGluIExpbWl0ZWQgYWN0cyBhcyB0aGUgZGF0YSBjb250cm9sbGVyIGZvciBhZG1pbmlzdHJhdGl2ZSBhbmQgb3BlcmF0aW9uYWwgZGF0YS4gQWNhZGVtaWMgcmVjb3JkcyByZWxhdGVkIHRvIGFjY3JlZGl0YXRpb24sIHRyYW5zY3JpcHRzLCBhbmQgZ3JhZGVzIGFyZSBtYW5hZ2VkIHNlcGFyYXRlbHkgYnkgV29vbGYgVW5pdmVyc2l0eS48L3A+CiAgIAogICAgPGg0PllvdXIgUmlnaHRzIFVuZGVyIEdEUFI8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT5SaWdodCBvZiBhY2Nlc3MgKEFydGljbGUgMTUpPC9saT4KICAgICAgICA8bGk+UmlnaHQgdG8gcmVjdGlmaWNhdGlvbiAoQXJ0aWNsZSAxNik8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byBlcmFzdXJlIChBcnRpY2xlIDE3KTwvbGk+CiAgICAgICAgPGxpPlJpZ2h0IHRvIHJlc3RyaWN0aW9uIG9yIG9iamVjdGlvbiAoQXJ0aWNsZXMgMTjigJMyMSk8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byBkYXRhIHBvcnRhYmlsaXR5IChBcnRpY2xlIDIwKTwvbGk+CiAgICA8L3VsPgogICAgPHA+UmVxdWVzdHMgY2FuIGJlIHN1Ym1pdHRlZCB0byA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+LiBHQ0FTIHdpbGwgcmVzcG9uZCB3aXRoaW4gb25lIGNhbGVuZGFyIG1vbnRoLjwvcD4KICAgCiAgICA8aDQ+RGF0YSBSZXRlbnRpb24gUGVyaW9kczwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPkNhdGVnb3J5PC90aD4KICAgICAgICAgICAgPHRoPlJldGVudGlvbiBQZXJpb2Q8L3RoPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+U3R1ZGVudCBjb250YWN0IGFuZCBlbnJvbG1lbnQgZGF0YTwvdGQ+CiAgICAgICAgICAgIDx0ZD5VcCB0byA3IHllYXJzIGFmdGVyIGNvbXBsZXRpb24vd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5GaW5hbmNpYWwgYW5kIGludm9pY2luZyByZWNvcmRzPC90ZD4KICAgICAgICAgICAgPHRkPjcgeWVhcnMgKElyaXNoIHRheCBsYXcpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkVtYWlsIGFuZCBpbnN0aXR1dGlvbmFsIGFjY291bnQgZGF0YTwvdGQ+CiAgICAgICAgICAgIDx0ZD5EZWxldGVkIHVwb24gb2ZmaWNpYWwgd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5MZWFybmluZyBwbGF0Zm9ybSBhbmQgZm9ydW0gcG9zdHM8L3RkPgogICAgICAgICAgICA8dGQ+RGVsZXRlZC9hbm9ueW1pc2VkIHdpdGhpbiAxMiBtb250aHMgb2Ygd2l0aGRyYXdhbDwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJlcXVhbC1vcHBvcnR1bml0eSI+CiAgICA8aDM+RXF1YWwgRW1wbG95bWVudCBhbmQgTGVhcm5pbmcgT3Bwb3J0dW5pdHkgUG9saWN5PC9oMz4KICAgIDxwPkl0IGlzIHRoZSBwb2xpY3kgb2YgR0NBUyBDb2xsZWdlIER1YmxpbiB0byBlbnN1cmUgZXF1YWwgZW1wbG95bWVudCBhbmQgbGVhcm5pbmcgb3Bwb3J0dW5pdGllcyB3aXRob3V0IGRpc2NyaW1pbmF0aW9uIG9yIGhhcmFzc21lbnQgb24gdGhlIGJhc2VzIG9mIHJhY2UsIGNvbG9yLCBuYXRpb25hbCBvcmlnaW4sIHJlbGlnaW9uLCBzZXgsIGFnZSwgZGlzYWJpbGl0eSwgY2l0aXplbnNoaXAsIG1hcml0YWwgc3RhdHVzIG9yIGFueSBvdGhlciBjaGFyYWN0ZXJpc3RpYyBwcm90ZWN0ZWQgYnkgbGF3LjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJoaWdobGlnaHQtYm94Ij4KICAgICAgICA8cD5UaGlzIHBvbGljeSBwZXJtZWF0ZXMgYWxsIGRlY2lzaW9ucywgaW5jbHVkaW5nIHRob3NlIGludm9sdmluZyBlbXBsb3llZSBjb21wZW5zYXRpb24sIGFwcGxpY2F0aW9uIGFzc2Vzc21lbnRzLCBiZW5lZml0cywgaGlyaW5nLCBwcm9tb3Rpb24sIHRyYWluaW5nIGFuZCBkZXZlbG9wbWVudCwgYW5kIG90aGVyIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGVtcGxveW1lbnQgYW5kIGxlYXJuaW5nLjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImJ1bGx5aW5nIj4KICAgIDxoMz5QcmV2ZW50aW9uIG9mIEJ1bGx5aW5nIGFuZCBIYXJhc3NtZW50PC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlplcm8gVG9sZXJhbmNlIFBvbGljeTo8L3N0cm9uZz4gR0NBUyBDb2xsZWdlIHdpbGwgaW52ZXN0aWdhdGUgdmlnb3JvdXNseSBhbnkgYWxsZWdhdGlvbnMgb2YgYnVsbHlpbmcgb3IgaGFyYXNzbWVudCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBtYXR0ZXIgaGFzIGJlZW4gcmFpc2VkIGZvcm1hbGx5IG9yIGluZm9ybWFsbHkuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PkRlZmluaXRpb24gb2YgSGFyYXNzbWVudDwvaDQ+CiAgICA8cD5IYXJhc3NtZW50IGlzIGFueSBjb25kdWN0IHdoaWNoIGlzIHVud2FudGVkIGJ5IHRoZSByZWNpcGllbnQgYW5kIGlzIGNvbnNpZGVyZWQgb2JqZWN0aW9uYWJsZSwgY2F1c2luZyBodW1pbGlhdGlvbiwgb2ZmZW5jZSwgZGlzdHJlc3Mgb3Igb3RoZXIgZGV0cmltZW50YWwgZWZmZWN0LiBUaGlzIG1heSBpbmNsdWRlOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5QaHlzaWNhbDo8L3N0cm9uZz4gQ29udGFjdCByYW5naW5nIGZyb20gdG91Y2hpbmcgdG8gc2VyaW91cyBhc3NhdWx0LCBnZXN0dXJlcywgaW50aW1pZGF0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5WZXJiYWw6PC9zdHJvbmc+IFVud2VsY29tZSByZW1hcmtzLCBzdWdnZXN0aW9ucywgbWFsaWNpb3VzIGdvc3NpcCwgam9rZXMsIG9mZmVuc2l2ZSBsYW5ndWFnZTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Tm9uLXZlcmJhbDo8L3N0cm9uZz4gT2ZmZW5zaXZlIGxpdGVyYXR1cmUgb3IgcGljdHVyZXMsIGdyYWZmaXRpLCBpc29sYXRpb24gb3IgZXhjbHVzaW9uIGZyb20gYWN0aXZpdGllczwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5EZWZpbml0aW9uIG9mIEJ1bGx5aW5nPC9oND4KICAgIDxwPkJ1bGx5aW5nIGlzIHVzdWFsbHkgcmVwZWF0ZWQgYW5kIHBlcnNpc3RlbnQgYmVoYXZpb3VyIHdoaWNoIGlzIG9mZmVuc2l2ZSwgYWJ1c2l2ZSwgaW50aW1pZGF0aW5nLCBtYWxpY2lvdXMgb3IgaW5zdWx0aW5nLCBpbmNsdWRpbmc6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Db25kdWN0IHdoaWNoIGlzIGludGltaWRhdGluZywgcGh5c2ljYWxseSBhYnVzaXZlIG9yIHRocmVhdGVuaW5nPC9saT4KICAgICAgICA8bGk+Q29uZHVjdCB0aGF0IGRlbmlncmF0ZXMsIHJpZGljdWxlcyBvciBodW1pbGlhdGVzIGFuIGluZGl2aWR1YWw8L2xpPgogICAgICAgIDxsaT5QaWNraW5nIG9uIG9uZSBwZXJzb24gd2hlbiB0aGVyZSBpcyBhIGNvbW1vbiBwcm9ibGVtPC9saT4KICAgICAgICA8bGk+U2hvdXRpbmcgYXQgYW4gaW5kaXZpZHVhbCB0byBnZXQgdGhpbmdzIGRvbmU8L2xpPgogICAgICAgIDxsaT5TZXR0aW5nIHVucmVhbGlzdGljIHRhcmdldHMgb3IgZXhjZXNzaXZlIHdvcmtsb2FkczwvbGk+CiAgICAgICAgPGxpPkN5YmVyIGJ1bGx5aW5nIHZpYSBlbWFpbCBvciBzb2NpYWwgbWVkaWE8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+UmVzb2x1dGlvbiBQcm9jZXNzPC9oND4KICAgIDxwPkNvbXBsYWluYW50cyBhcmUgZW5jb3VyYWdlZCB0byB0cnkgaW5mb3JtYWwgcmVzb2x1dGlvbiBmaXJzdC4gSWYgdGhpcyBpcyBub3QgcG9zc2libGUgb3IgYXBwcm9wcmlhdGUsIGZvcm1hbCBjb21wbGFpbnRzIHNob3VsZCBiZSByYWlzZWQgdG8gVGhlIEV0aGljcyBDb21taXR0ZWUgdmlhIHRoZSBDb21wbGFpbnQgRm9ybS48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYWktcG9saWN5Ij4KICAgIDxoMz5Qb2xpY3kgb24gdGhlIFVzZSBvZiBBcnRpZmljaWFsIEludGVsbGlnZW5jZSAoQUkpIGluIEFjYWRlbWljIFdyaXRpbmc8L2gzPgogICAgPHA+R0NBUyBpcyBjb21taXR0ZWQgdG8gcHJlc2VydmluZyB0aGUgaGlnaGVzdCBzdGFuZGFyZHMgb2YgYWNhZGVtaWMgaW50ZWdyaXR5LCBvcmlnaW5hbGl0eSwgYW5kIGdlbnVpbmUgc2Nob2xhcmx5IGlucXVpcnkuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxoND5Qcm9oaWJpdGVkIFVzZXMgb2YgQUk8L2g0PgogICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPkRyYWZ0aW5nIG9yIHdyaXRpbmcgYW55IHBvcnRpb24gb2YgYXNzaWdubWVudHM8L2xpPgogICAgICAgICAgICA8bGk+R2VuZXJhdGluZyBhcmd1bWVudHMgb3IgZXhwbGFuYXRpb25zPC9saT4KICAgICAgICAgICAgPGxpPlByb2R1Y2luZyBvciBlZGl0aW5nIHRleHQgaW50ZW5kZWQgdG8gYXBwZWFyIGFzIHRoZSBzdHVkZW50J3Mgb3duIHdvcms8L2xpPgogICAgICAgICAgICA8bGk+UmVwaHJhc2luZyBvciByZXdyaXRpbmcgY29udGVudDwvbGk+CiAgICAgICAgICAgIDxsaT5HZW5lcmF0aW5nIGNpdGF0aW9ucywgYmlibGlvZ3JhcGhpZXMsIG9yIGxpdGVyYXR1cmUgcmV2aWV3cyAodW5sZXNzIHNwZWNpZmljYWxseSBwZXJtaXR0ZWQpPC9saT4KICAgICAgICA8L3VsPgogICAgPC9kaXY+CiAgIAogICAgPGg0PlBlcm1pdHRlZCBVc2VzIG9mIEFJPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+TG9jYXRpbmcgYmlibGlvZ3JhcGhpYyByZXNvdXJjZXM8L2xpPgogICAgICAgIDxsaT5DbGFyaWZ5aW5nIGNvbmNlcHRzIGluIGFuIGV4cGxhbmF0b3J5IG9yIHR1dG9yaW5nIGNhcGFjaXR5PC9saT4KICAgICAgICA8bGk+UmVjZWl2aW5nIGd1aWRhbmNlIG9uIGZvcm1hdHRpbmcgb3IgY2l0YXRpb24gc3R5bGVzPC9saT4KICAgICAgICA8bGk+R2VuZXJhdGluZyBhIGJhc2ljIG91dGxpbmUgdGVtcGxhdGUgdGhhdCB0aGUgc3R1ZGVudCBzaWduaWZpY2FudGx5IHJldmlzZXM8L2xpPgogICAgPC91bD4KICAgCiAgICA8cD5BbnkgcGVybWl0dGVkIHVzZSBtdXN0IGJlIGRpc2Nsb3NlZCBpbiBhbiA8c3Ryb25nPkFJIFVzZSBTdGF0ZW1lbnQ8L3N0cm9uZz4gYXQgdGhlIGVuZCBvZiB0aGUgc3VibWl0dGVkIHdvcmsuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlZpb2xhdGlvbnM6PC9zdHJvbmc+IFdpbGwgYmUgaGFuZGxlZCBpbiBhY2NvcmRhbmNlIHdpdGggR0NBUydzIEFjYWRlbWljIEludGVncml0eSBhbmQgTWlzY29uZHVjdCBwcm9jZWR1cmVzLiBSZXBlYXRlZCBvciBzZXJpb3VzIHZpb2xhdGlvbnMgbWF5IHJlc3VsdCBpbiBzYW5jdGlvbnMsIGluY2x1ZGluZyByZXZpc2lvbiByZXF1aXJlbWVudHMsIHByb2JhdGlvbiwgb3IgZGlzZW5yb2xsbWVudC48L3A+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJkaXNhYmlsaXR5Ij4KICAgIDxoMz5Qb2xpY3kgQ29uY2VybmluZyBEaXNhYmlsaXR5IGFuZCBBY2FkZW1pYyBBY2NvbW1vZGF0aW9uPC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBEdWJsaW4gaXMgY29tbWl0dGVkIHRvIGFkZHJlc3NpbmcgdGhlIGlzc3VlcyBvZiBkaXNhYmlsaXR5IGluIG91ciBzdHVkZW50IHBvcHVsYXRpb24uPC9wPgogICAKICAgIDxoND5BY2NvbW1vZGF0aW9uIFByb2Nlc3M8L2g0PgogICAgPG9sPgogICAgICAgIDxsaT5Db21wbGV0ZSB0aGUgRGlzYWJpbGl0eSBEaXNjbG9zdXJlIEZvcm08L2xpPgogICAgICAgIDxsaT5Qcm92aWRlIHN1ZmZpY2llbnQgZXZpZGVuY2UgdG8gc3VwcG9ydCB0aGUgZGlzY2xvc2VkIGRpc2FiaWxpdHkgZnJvbSBhIGhlYWx0aGNhcmUgcHJvZmVzc2lvbmFsPC9saT4KICAgICAgICA8bGk+VGhlIERlYW4gb2YgQWNhZGVtaWMgQWZmYWlycyB3aWxsIGRldGVybWluZSB0aGUgZGVncmVlIG9mIGFjYWRlbWljIGFjY29tbW9kYXRpb248L2xpPgogICAgICAgIDxsaT5UaGUgRGlzYWJpbGl0eSBEaXNjbG9zdXJlIEZvcm0gd2lsbCBvbmx5IGJlIHNoYXJlZCB3aXRoIHRoZSBEZWFuIG9mIFN0dWRlbnQgQWZmYWlycyBhbmQgdGhlIEFjYWRlbWljIERpc2FiaWxpdGllcyBBY2NvbW1vZGF0aW9uIENvbW1pc3Npb248L2xpPgogICAgPC9vbD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5HQ0FTJ3MgQ29tbWl0bWVudDo8L3N0cm9uZz4gR0NBUyBpcyBhd2FyZSB0aGF0IHRoZSBjb25jZXB0IG9mIGRpc2FiaWxpdHkgaGFzIGJlZW4gc2V2ZXJlbHkgbGltaXRlZCBieSBhIGJpbmFyeSBjb25jZXB0dWFsaXphdGlvbi4gQ3VycmVudCByZXNlYXJjaCBzaG93cyB0aGF0IHRoZSB3YXlzIG9mIGJlaW5nIGRpc2FibGVkIGFuZCB0aGUgZGVncmVlcyBvZiBkaXNhYmlsaXR5IGFyZSBoaWdobHkgdmFyaWFibGUsIHBvdGVudGlhbGx5IGluY2x1ZGluZyBwaHlzaWNhbCwgaW50ZWxsZWN0dWFsIGNhcGFjaXRpZXMsIGFuZCBzb2NpYWwgZmFjdG9ycy4gR0NBUyBob3BlcyB0byBjb250cmlidXRlIHJlc2VhcmNoIGluIHRoaXMgZmllbGQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgPGgzPkdDQVMgUmVmdW5kIFBvbGljeTwvaDM+CiAgICA8cD5PbmNlIGFuIGFwcGxpY2FudCByZWNlaXZlcyBHQ0FTJ3Mgb2ZmaWNpYWwgYWNjZXB0YW5jZSBsZXR0ZXIgdGhleSB3aWxsIGhhdmUgPHN0cm9uZz4xMCBkYXlzPC9zdHJvbmc+IHRvIGRlY2lkZSBpZiB0aGV5IGFncmVlIG9yIGRpc2FncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zLiBPbmNlIHRoZSBhcHBsaWNhbnQgYWNjZXB0cyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhleSB3aWxsIGJlIGdpdmVuIDxzdHJvbmc+MzAgZGF5czwvc3Ryb25nPiB0byBhc2sgZm9yIGEgcmVmdW5kIG1pbnVzIHRoZSBhZG1pbmlzdHJhdGlvbiBjb3N0cyBhbmQgZmVlcy4gQWZ0ZXIgMzAgZGF5cyB0aGVyZSBhcmUgbm8gcmVmdW5kcy48L3A+Cjwvc2VjdGlvbj4KCjxmb290ZXIgY2xhc3M9ImhhbmRib29rLWZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJoYW5kYm9vay1mb290ZXItaW5uZXIiPgogICAgICAgIDxwPjxzdHJvbmc+wqkgR0NBUyBDb2xsZWdlIER1YmxpbiwgTHRkLiAyMDI1PC9zdHJvbmc+PC9wPgogICAgICAgIDxwPkFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+CiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICAgICAgPGVtPiJPdXQgb2YgQXNoZXMsIGEgTmV3IExpZ2h0IjwvZW0+PGJyPgogICAgICAgICAgICA8ZW0+IklzIEx1YWl0aHJlYWNoIFNvbGFzIE51YSI8L2VtPgogICAgICAgIDwvcD4KICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMzBweDsgZm9udC1zaXplOiAwLjllbTsiPgogICAgICAgICAgICBHQ0FTIHJlc2VydmVzIHRoZSByaWdodCB0byBtb2RpZnkgcHJvZ3JhbW1lcywgcG9saWNpZXMsIGNvdXJzZSBvZmZlcmluZ3MsIHJlcXVpcmVtZW50cywgYW5kIGFueSBvdGhlciBtYXR0ZXJzIG91dGxpbmVkIGluIHRoaXMgSGFuZGJvb2sgYXQgYW55IHRpbWUgYW5kIHdpdGhvdXQgcHJpb3Igbm90aWNlLgogICAgICAgIDwvcD4KICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMjBweDsiPgogICAgICAgICAgICA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+IHwgPGEgaHJlZj0iaHR0cHM6Ly9nY2FzLmllIiB0YXJnZXQ9Il9ibGFuayI+Z2Nhcy5pZTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KPC9mb290ZXI+Cgo8L2Rpdj57QnnYes\/1IAB7QeYJWldgAAB3xooDPG1ldGEgY2hhcnNldD0iVVRGLTgiPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+Cjx0aXRsZT5HQ0FTIENvbGxlZ2UgRHVibGluIC0gU3R1ZGVudCBIYW5kYm9vayAyMDI1PC90aXRsZT4KPHN0eWxlPgogICAgOnJvb3QgewogICAgICAgIC0tZ2Nhcy1ncmVlbjogIzJlN2QzMjsKICAgICAgICAtLWdjYXMtcmVkOiAjYzYyODI4OwogICAgICAgIC0tZ2Nhcy1kYXJrOiAjMWExYTFhOwogICAgICAgIC0tZ2Nhcy1saWdodDogI2Y1ZjVmNTsKICAgICAgICAtLWdjYXMtYm9yZGVyOiAjZTBlMGUwOwogICAgfQogICAKICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CiAgIAogICAgLmhhbmRib29rLXdyYXBwZXIgewogICAgICAgIGZvbnQtZmFtaWx5OiAnR2VvcmdpYScsICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjsKICAgICAgICBsaW5lLWhlaWdodDogMS44OwogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWRhcmspOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICB9CiAgIAogICAgLmhhbmRib29rLWhlYWRlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAgCiAgICAuaGFuZGJvb2staGVhZGVyIGgxIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgZm9udC1zaXplOiAyLjVlbTsKICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2staGVhZGVyIC5zdWJ0aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtcmVkKTsKICAgICAgICBmb250LXNpemU6IDEuM2VtOwogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgIH0KICAgCiAgICAuaGFuZGJvb2staGVhZGVyIC55ZWFyIHsKICAgICAgICBmb250LXNpemU6IDEuMWVtOwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgfQogICAKICAgIC5oYW5kYm9vay1idG4tY29udGFpbmVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0byAzMHB4IGF1dG87CiAgICB9CiAgIAogICAgLmhhbmRib29rLWJ0biB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiAxNXB4IDMwcHg7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICBmb250LXNpemU6IDEuMWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zczsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMWI1ZTIwOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KICAgCiAgICAudG9jLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ2Nhcy1ib3JkZXIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAzMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CiAgIAogICAgLnRvYy1jb250YWluZXIgaDIgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgfQogICAKICAgIC50b2MtbGlzdCB7CiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBjb2x1bW5zOiAyOwogICAgICAgIGNvbHVtbi1nYXA6IDQwcHg7CiAgICB9CiAgIAogICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgLnRvYy1saXN0IHsKICAgICAgICAgICAgY29sdW1uczogMTsKICAgICAgICB9CiAgICB9CiAgIAogICAgLnRvYy1saXN0IGxpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZDsKICAgIH0KICAgCiAgICAudG9jLWxpc3QgYSB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZGFyayk7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgIH0KICAgCiAgICAudG9jLWxpc3QgYTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgfQogICAKICAgIC50b2Mtc2VjdGlvbiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CiAgIAogICAgLnNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdjYXMtYm9yZGVyKTsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgIH0KICAgCiAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdjYXMtZ3JlZW4pLCAjNGNhZjUwKTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogMjBweCAzMHB4OwogICAgICAgIG1hcmdpbjogNDBweCAwIDMwcHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAKICAgIC5zZWN0aW9uLWhlYWRlciBoMiB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMS44ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAgCiAgICBoMyB7CiAgICAgICAgY29sb3I6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGZvbnQtc2l6ZTogMS40ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMzVweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1nY2FzLWJvcmRlcik7CiAgICB9CiAgIAogICAgaDQgewogICAgICAgIGNvbG9yOiB2YXIoLS1nY2FzLWRhcmspOwogICAgICAgIGZvbnQtc2l6ZTogMS4xNWVtOwogICAgICAgIG1hcmdpbi10b3A6IDI1cHg7CiAgICB9CiAgIAogICAgcCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yZW07CiAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTsKICAgIH0KICAgCiAgICB1bCwgb2wgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtOwogICAgICAgIHBhZGRpbmctbGVmdDogMjVweDsKICAgIH0KICAgCiAgICBsaSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgfQogICAKICAgIC5pbmZvLWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2UzZjJmZDsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMxOTc2ZDI7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICAgIH0KICAgCiAgICAud2FybmluZy1ib3ggewogICAgICAgIGJhY2tncm91bmQ6ICNmZmYzZTA7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZjU3YzAwOwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7CiAgICB9CiAgIAogICAgLmltcG9ydGFudC1ib3ggewogICAgICAgIGJhY2tncm91bmQ6ICNmY2U0ZWM7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1nY2FzLXJlZCk7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICAgIH0KICAgCiAgICAuaGlnaGxpZ2h0LWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZjVlOTsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7CiAgICB9CiAgIAogICAgdGFibGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgZm9udC1zaXplOiAwLjk1ZW07CiAgICB9CiAgIAogICAgdGggewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtZ3JlZW4pOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE1cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgfQogICAKICAgIHRkIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE1cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdjYXMtYm9yZGVyKTsKICAgIH0KICAgCiAgICB0cjpudGgtY2hpbGQoZXZlbikgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtbGlnaHQpOwogICAgfQogICAKICAgIC5jb250YWN0LWluZm8gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtbGlnaHQpOwogICAgICAgIHBhZGRpbmc6IDI1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW46IDMwcHggYXV0bzsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgfQogICAKICAgIC5jb250YWN0LWluZm8gcCB7CiAgICAgICAgbWFyZ2luOiA1cHggMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgIAogICAgLmdyYWRlLXNjYWxlIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBtYXJnaW46IDIwcHggMDsKICAgIH0KICAgCiAgICAuZ3JhZGUtaXRlbSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ2Nhcy1saWdodCk7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgIAogICAgLmdyYWRlLWl0ZW0gc3Ryb25nIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICB9CiAgIAogICAgLnByb2dyYW1zLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgIG1hcmdpbjogMjBweCAwOwogICAgfQogICAKICAgIC5wcm9ncmFtLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdjYXMtbGlnaHQpOwogICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1nY2FzLWdyZWVuKTsKICAgIH0KICAgCiAgICAuYmFjay10by10b3AgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nY2FzLWdyZWVuKTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICB9CiAgIAogICAgLmJhY2stdG8tdG9wOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMWI1ZTIwOwogICAgfQogICAKICAgIC5oYW5kYm9vay1mb290ZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNTBweDsKICAgICAgICBib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tZ2Nhcy1ncmVlbik7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgIH0KICAgCiAgICAuaGFuZGJvb2stZm9vdGVyLWlubmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAKICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5oYW5kYm9vay1jb250YWluZXIgewogICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7CiAgICAgICAgfQogICAgICAgCiAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7CiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7CiAgICAgICAgfQogICAgICAgCiAgICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAyMHB4OwogICAgICAgIH0KICAgICAgIAogICAgICAgIC5oYW5kYm9vay1oZWFkZXIgaDEgewogICAgICAgICAgICBmb250LXNpemU6IDEuOGVtOwogICAgICAgIH0KICAgIH0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImhhbmRib29rLXdyYXBwZXIiPgoKPGhlYWRlciBjbGFzcz0iaGFuZGJvb2staGVhZGVyIiBpZD0idG9wIj4KICAgIDxoMT5HQ0FTIENvbGxlZ2UgRHVibGluPC9oMT4KICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+VGhlIEdsb2JhbCBDZW50cmUgZm9yIEFkdmFuY2VkIFN0dWRpZXM8L3A+CiAgICA8cCBjbGFzcz0ieWVhciI+U3R1ZGVudCBIYW5kYm9vayAyMDI1PC9wPgo8L2hlYWRlcj4KCjxkaXYgY2xhc3M9ImhhbmRib29rLWJ0bi1jb250YWluZXIiPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9nY2FzLmllL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAzL0dDQVMtUmVzZWFyY2hlcnMtU3R1ZGVudC1IYW5kYm9vay1VcGRhdGVkLTIwMjYucGRmIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImhhbmRib29rLWJ0biI+UmVhZCB0aGUgRW50aXJlIEhhbmRib29rPC9hPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNvbnRhY3QtaW5mbyI+CiAgICA8cD48c3Ryb25nPkFkZHJlc3M6PC9zdHJvbmc+IDM4LzM5IEZpdHp3aWxsaWFtIFNxdWFyZSwgRHVibGluIDIsIElyZWxhbmQ8L3A+CiAgICA8cD48c3Ryb25nPlBob25lOjwvc3Ryb25nPiArMzUzIDg3IDc1NCAxNDE3PC9wPgogICAgPHA+PHN0cm9uZz5FbWFpbDo8L3N0cm9uZz4gPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAZ2Nhcy5pZSI+Y29udGFjdEBnY2FzLmllPC9hPjwvcD4KICAgIDxwPjxzdHJvbmc+V2Vic2l0ZTo8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly9nY2FzLmllIiB0YXJnZXQ9Il9ibGFuayI+Z2Nhcy5pZTwvYT48L3A+CjwvZGl2PgoKPG5hdiBjbGFzcz0idG9jLWNvbnRhaW5lciIgaWQ9InRvYyI+CiAgICA8aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPgogICAgPHVsIGNsYXNzPSJ0b2MtbGlzdCI+CiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+SW50cm9kdWN0aW9uPC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNvdmVydmlldyI+T3ZlcnZpZXcgJmFtcDsgUGhpbG9zb3BoeTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYWNjcmVkaXRhdGlvbiI+QWNjcmVkaXRhdGlvbjwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZmFjdWx0eSI+RmFjdWx0eSAmYW1wOyBMZWFkZXJzaGlwPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDE6IFN0dWRlbnQgTGlmZTwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjY29kZS1vZi10cnVzdCI+Q29kZSBvZiBUcnVzdCAmYW1wOyBQbGVkZ2U8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2FkbWlzc2lvbnMiPkFkbWlzc2lvbnM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI25vbWFkaWMtbGVhcm5pbmciPk5vbWFkaWMgTGVhcm5pbmc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3RyYW5zZmVyIj5UcmFuc2ZlciAmYW1wOyBDcmVkaXQgUmVjb2duaXRpb248L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2ludGVybmF0aW9uYWwiPkludGVybmF0aW9uYWwgU3R1ZGVudHM8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gMjogQWNhZGVtaWMgUG9saWNpZXM8L3NwYW4+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3BsYWdpYXJpc20iPlBsYWdpYXJpc20gUG9saWN5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNzdXBlcnZpc2lvbiI+QWNhZGVtaWMgU3VwZXJ2aXNpbmc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2F0dGVuZGFuY2UiPkF0dGVuZGFuY2UgJmFtcDsgQWJzZW5jZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZ3JhZGluZyI+R3JhZGluZyBTY2FsZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjd2l0aGRyYXdpbmciPldpdGhkcmF3aW5nIGZyb20gYSBDb3Vyc2U8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2Rpc2NpcGxpbmFyeSI+RGlzY2lwbGluYXJ5IFBvbGljeTwvYT48L2xpPgogICAgICAgCiAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJ0b2Mtc2VjdGlvbiI+U2VjdGlvbiAzOiBGaW5hbmNlczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZmluYW5jaWFsLWFpZCI+RmluYW5jaWFsIEFpZDwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZmVlcyI+QWRkaXRpb25hbCBGZWVzPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDQ6IERlZ3JlZSBQcm9ncmFtczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYmEtcHJvZ3JhbSI+QkEgUHJvZ3JhbTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjbWEtcHJvZ3JhbXMiPk1BIFByb2dyYW1zPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiN0aGVzaXMtcmVxdWlyZW1lbnRzIj5UaGVzaXMgUmVxdWlyZW1lbnRzPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDU6IFBoRCBQcm9ncmFtczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjcGhkLW92ZXJ2aWV3Ij5QaEQgT3ZlcnZpZXc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2Rpc3NlcnRhdGlvbiI+RGlzc2VydGF0aW9uIFJlcXVpcmVtZW50czwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjcGhkLWRlZmVuc2UiPlBoRCBEZWZlbnNlPC9hPjwvbGk+CiAgICAgICAKICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InRvYy1zZWN0aW9uIj5TZWN0aW9uIDY6IFN0dWRlbnQgQWdyZWVtZW50czwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjbGlhYmlsaXR5Ij5FdmVudCBBdHRlbmRhbmNlICZhbXA7IExpYWJpbGl0eTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjdHVpdGlvbi1wYXltZW50Ij5UdWl0aW9uIFBheW1lbnQgT2JsaWdhdGlvbnM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI3JlY29yZGluZy1wb2xpY3kiPlJlY29yZGluZyAmYW1wOyBNZWRpYSBQb2xpY3k8L2E+PC9saT4KICAgICAgIAogICAgICAgIDxsaT48c3BhbiBjbGFzcz0idG9jLXNlY3Rpb24iPlNlY3Rpb24gNzogQ29sbGVnZSBQb2xpY2llczwvc3Bhbj48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjZGF0YS1wcm90ZWN0aW9uIj5EYXRhIFByb3RlY3Rpb248L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2VxdWFsLW9wcG9ydHVuaXR5Ij5FcXVhbCBPcHBvcnR1bml0eTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjYnVsbHlpbmciPkFudGktQnVsbHlpbmcgUG9saWN5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNhaS1wb2xpY3kiPkFJIGluIEFjYWRlbWljIFdyaXRpbmc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2Rpc2FiaWxpdHkiPkRpc2FiaWxpdHkgQWNjb21tb2RhdGlvbnM8L2E+PC9saT4KICAgIDwvdWw+CjwvbmF2PgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPkludHJvZHVjdGlvbjwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJvdmVydmlldyI+CiAgICA8aDM+T3ZlcnZpZXc8L2gzPgogICAgPHA+V2VsY29tZSB0byBHQ0FTIENvbGxlZ2UgRHVibGluLCBMdGQuIFRoZSBHbG9iYWwgQ2VudHJlIGZvciBBZHZhbmNlZCBTdHVkaWVzIChoZW5jZWZvcnRoICJHQ0FTIiBvciAiR0NBUyBDb2xsZWdlIikuIFRoaXMgaXMgYSBzaG9ydGVuZWQgdmVyc2lvbiBvZiB0aGUgSGFuZGJvb2sgb24gdGhpcyBwYWdlLiBXZSBhcmUgY29tbWl0dGVkIHRvIHByb3ZpZGluZyB5b3Ugd2l0aCB0aGUgcmVzb3VyY2VzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IGFuZCBlbmNvdXJhZ2UgeW91ciByZXNlYXJjaCBmaW5kaW5ncy4gQWx0aG91Z2ggR0NBUyBoYXMgb25lIG9mIHRoZSBiZXN0IGZhY3VsdGllcyBhdmFpbGFibGUgaW4gdGhlIGZpZWxkcyBvZiBwaGlsb3NvcGh5LCBhcnQgcGVyZm9ybWFuY2UsIHBzeWNob2FuYWx5c2lzLCB0aGVvbG9neSwgcG9saXRpY3MsIGFuZCBvdGhlciBmaWVsZHMsIGl0IGlzIHVwIHRvIHRoZSBzdHVkZW50IHRvIGRlY2lkZSBpZiBHQ0FTIGlzIHRoZSBiZXN0IGZpdCBmb3IgdGhlaXIgcmVzZWFyY2ggYWltcyBhbmQgb2JqZWN0aXZlcy48L3A+CiAgIAogICAgPHA+R0NBUyBpcyBhIGNvbGxlZ2Ugb2ZmZXJpbmcgQkEsIE1BLCBhbmQgUGhEIGRlZ3JlZXMgb25saW5lIGFuZCBhdCB0aW1lcyBpbi1wZXJzb24gc2V0dGluZ3MgYW5kIHRocm91Z2ggb3VyIHB1YmxpY2x5IGF2YWlsYWJsZSBwcm9ncmFtcyBpbiBvdXIgRVNjaG9vbC4gV2UgYXJlIGNvbW1pdHRlZCB0byBkZWJ0LWZyZWUgaGlnaC1xdWFsaXR5IGVkdWNhdGlvbiBpbiBhbiBlY29sb2dpY2FsbHksIGNvbGxhYm9yYXRpdmUgYW5kIGVjb25vbWljYWxseSBzdXN0YWluYWJsZSB3YXkuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9ImhpZ2hsaWdodC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+T3VyIE1pc3Npb246PC9zdHJvbmc+IEhpZ2gtcXVhbGl0eSwgZGVidC1mcmVlIGVkdWNhdGlvbiB0aGF0IHByb3ZpZGVzIHRoZSByZXNvdXJjZXMgZm9yIGNyZWF0aXZlIGFuZCBuZXcgcmVzZWFyY2ggdGhhdCBpcyBub3QgcG9zc2libGUgaW4gYSB0cmFkaXRpb25hbCB1bml2ZXJzaXR5IHNldHRpbmcuIFdlIGJlbGlldmUgdGhhdCBlZHVjYXRpb24gaXMgaW5oZXJlbnRseSBhbiBpbnRlcnN1YmplY3RpdmUgZXhwZXJpZW5jZSB0aGF0IHJlcXVpcmVzIHNoYXJpbmcgaWRlYXMgb3Blbmx5LCBwcm9wb3NpbmcgYW5kIGVzdGFibGlzaGluZyBuZXcgYW5kIGJvbGQgbGluZXMgb2YgdGhpbmtpbmcgYW5kIGFjdGlvbnMgaW4gcmlnb3JvdXMgc2NpZW50aWZpYyB3YXlzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxwPkdDQVMgaG9sZHMgaW4gcmVzaWRlbmNlIHNlbWluYXJzIGZvciBzaG9ydCBwZXJpb2RzIG9mIHRpbWUgaW4gZGlmZmVyZW50IGxvY2F0aW9ucy4gV2UndmUgaGVsZCBzZW1pbmFycyBpbiBIYXZhbmEsIEN1YmE7IEJlcmxpbjsgUHJhZ3VlOyBBdGhlbnM7IE1hcmlib3IsIFNsb3ZlbmlhOyBQYXJpczsgTmV3IFlvcms7IENpbmNpbm5hdGksIE9oaW87IEdyYW5kIFJhcGlkcywgTWljaGlnYW47IE1leGljbyBDaXR5OyBhbmQgQm9nb3TDoSBDb2xvbWJpYSwgdG8gbmFtZSBhIGZldy48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iYWNjcmVkaXRhdGlvbiI+CiAgICA8aDM+QWNjcmVkaXRhdGlvbjwvaDM+CiAgICA8cD5HQ0FTIENvbGxlZ2Ugb2ZmZXJzIHNldmVyYWwgYWNjcmVkaXRlZCBkZWdyZWUgcHJvZ3JhbW1lcyBpbiB0aGUgRXVyb3BlYW4gVW5pb24gdGhyb3VnaCBvdXIgcGFydG5lcnNoaXAgd2l0aCBXb29sZjo8L3A+CiAgIAogICAgPGRpdiBjbGFzcz0icHJvZ3JhbXMtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5QaC5ELiBpbiB0aGUgSHVtYW5pdGllcyBhbmQgU29jaWFsIFNjaWVuY2VzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5QaC5ELiBpbiB0aGUgTmF0dXJhbCBTY2llbmNlczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TUEgaW4gUGhpbG9zb3BoeTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TUEgaW4gUHN5Y2hvYW5hbHlzaXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtLWNhcmQiPk1BIGluIFRoZW9sb2d5PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbS1jYXJkIj5NQSBpbiBQb2xpdGljczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+TWFzdGVyIG9mIExhd3MgKExMLk0uKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW0tY2FyZCI+QkEgaW4gSW50ZXJkaXNjaXBsaW5hcnkgU3R1ZGllczwvZGl2PgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZmFjdWx0eSI+CiAgICA8aDM+TGVhZGVyc2hpcCAmYW1wOyBGYWN1bHR5PC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBpcyBvd25lZCBhbmQgb3BlcmF0ZWQgYnkgZmFjdWx0eSwgc3RhZmYsIGFuZCBncmFkdWF0ZXMgb2YgR0NBUyBDb2xsZWdlLiBPdXIgZ292ZXJuYW5jZSBzdHJ1Y3R1cmUgaW5jbHVkZXM6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Cb2FyZCBvZiBUcnVzdGVlczwvbGk+CiAgICAgICAgPGxpPkFjYWRlbWljIENvdW5jaWw8L2xpPgogICAgICAgIDxsaT5RdWFsaXR5IEFzc3VyYW5jZSBDb21taXNzaW9uPC9saT4KICAgICAgICA8bGk+RXRoaWNzIENvbW1pdHRlZTwvbGk+CiAgICA8L3VsPgogICAKICAgIDxwPkdDQVMgd2FzIGZvdW5kZWQgYnkgRHIuIENyZXN0b24gRGF2aXMgaW4gMjAxMyBzdGVtbWluZyBmcm9tIGFuIGlkZWEgaGUgY29uY2VpdmVkIGluIDE5OTkgd2hpbGUgYSBzdHVkZW50IGF0IFlhbGUgVW5pdmVyc2l0eS4gSW4gMjAxOCBHQ0FTIG1vdmVkIGZyb20gdGhlIFVuaXRlZCBTdGF0ZXMgdG8gRHVibGluLCBJcmVsYW5kIGZvciBzZXZlcmFsIHJlYXNvbiBzdXByZW1lIGFtb25nIHRoZW0gYmVpbmcgYWNhZGVtaWMgZnJlZWRvbS4gSW1wb3J0YW50bHksIEdDQVMgQ29sbGVnZSBpcyBvd25lZCBieSB0aGUgZmFjdWx0eSBhbmQgZ3JhZHVhdGVzIHdobyBzaGFyZSBvd25lcnNoaXAgdG9nZXRoZXIuIFdoZW4gYSBzdHVkZW50IGlzIGFjY2VwdGVkIGludG8gb3VyIENvbGxlZ2UgdGhleSB3aWxsIGJlIHRyYWluZWQgYW5kIHN1cHBvcnRlZCBieSB0aGUgZmFjdWx0eSBhbmQgc3RhZmYgd2l0aCB0aGUgaW50ZW50IHRvIGludml0ZSB0aGUgc3R1ZGVudCBpbnRvIHRoZSBvd25lcnNoaXAgY29tbXVuaXR5IG9mIEdDQVMgQ29sbGVnZSBEdWJsaW4gb25jZSB0aGV5IGdyYWR1YXRlLjwvcD4KICAgCiAgICA8aDQ+UHVibGljYXRpb25zPC9oND4KICAgIDxwPldlIGFsc28gcHVibGlzaCBhbiBvbmxpbmUgbWFnYXppbmUgYW5kIHBlZXItcmV2aWV3ZWQgYWNhZGVtaWMgam91cm5hbCwgPHN0cm9uZz5UaGUgR0NBUyBSZXZpZXc8L3N0cm9uZz4uPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDE6IFN0dWRlbnQgQ29tbXVuaXR5IExpZmUgJmFtcDsgUmVzcG9uc2liaWxpdGllczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJjb2RlLW9mLXRydXN0Ij4KICAgIDxoMz5UaGUgR0NBUyBDb2RlIG9mIFRydXN0IGFuZCBQbGVkZ2U8L2gzPgogICAgPHA+QmVpbmcgYSBzdHVkZW50LXJlc2VhcmNoZXIgYXQgR0NBUyBDb2xsZWdlIER1YmxpbiBtZWFucyBiZWxvbmdpbmcgdG8gb3VyIGFjYWRlbWljIGNvbW11bml0eS4gT3VyIGFjYWRlbWljIGNvbW11bml0eSByZXF1aXJlcyB0aGF0IGFsbCBtZW1iZXJzIGFsd2F5cyBhY3QgaW4gdGhlIG1vc3QgZXN0ZWVtZWQgZXRoaWNhbCB3YXlzIHBvc3NpYmxlLiBUaGlzIGlzIGJlY2F1c2UgaWYgYW5kIHdoZW4gYSBzdHVkZW50IGdyYWR1YXRlcyBmcm9tIEdDQVMgQ29sbGVnZSBEdWJsaW4sIHRoZSBmYWN1bHR5IGFuZCBBbHVtbmkgbWF5IGludml0ZSB0aGVtIHRvIGJlY29tZSBjby1vd25lcnMgb2YgR0NBUyBDb2xsZWdlIER1Ymxpbi48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0iaW1wb3J0YW50LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5Db3JlIFZhbHVlczo8L3N0cm9uZz4gV2UgdHJ1c3QgdGhhdCB3ZSBhcmUgY3JlYXRpbmcgYSBkaWZmZXJlbnQga2luZCBvZiBIaWdoZXIgRWR1Y2F0aW9uYWwgSW5zdGl0dXRpb24sIG9uZSB0aGF0IGlzIG5vdCBjb25jZXJuZWQgd2l0aCBtYXRlcmlhbCBnYWluLCBidXQgcmF0aGVyIG1ha2luZyBhIGRpZmZlcmVuY2UgZmlyc3QgYW5kIGZvcmVtb3N0IGluIHRoZSBsaXZlcyBvZiB0aGUgeW91bmdlciBnZW5lcmF0aW9uIGFuZCBmb3IgdGhlIGZ1dHVyZSBmbG91cmlzaGluZyBvZiBhbGwgbGl2aW5nIGJlaW5ncyBpbiBvdXIgd29ybGQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+QWxsIHN0dWRlbnRzIGFuZCBtZW1iZXJzIG9mIG91ciBjb21tdW5pdHkgbXVzdCBzaWduIGFuZCBhZ3JlZSB0byBhYmlkZSBieSBvdXIgQ29kZSBvZiBUcnVzdC4gQ29udGFjdCA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBnY2FzLmllIj5jb250YWN0QGdjYXMuaWU8L2E+IHRvIHN1Ym1pdCB5b3VyIHNpZ25lZCBmb3JtLjwvcD4KICAgCiAgICA8aDQ+U3R1ZGVudCBFeHBlY3RhdGlvbnM8L2g0PgogICAgPHA+QSBzdHVkZW50IGluIHRoZSBCQSwgTUEgb3IgUGhEIHByb2dyYW1tZXMgaXMgYSBtZW1iZXIgb2YgYSBoaWdoLXF1YWxpdHkgYWNhZGVtaWMgY29tbXVuaXR5IHdpdGhpbiB0aGUgQ29sbGVnZS4gU2hvdWxkIGEgc3R1ZGVudCBub3QgbGl2ZSB1cCB0byBvdXIgd29ybGQtY2xhc3MgcmVwdXRhdGlvbiBieSBhZHZlcnNlIGFjdGl2aXRpZXMgc3VjaCBhcyBseWluZywgY2hlYXRpbmcsIG9yIGhhcm1pbmcgb3RoZXJzIGluIG91ciBjb21tdW5pdHkgb3Igb3RoZXJzIG91dHNpZGUgb3VyIGNvbW11bml0eSB0aGVuIHRoZXkgd2lsbCBiZSB3YXJuZWQgYWJvdXQgdGhlaXIgYmVoYXZpb3VyLiBTaG91bGQgc3VjaCB3YXJuaW5ncyBub3Qgc3RvcCB0aGUgZGlzcmVzcGVjdGZ1bCBiZWhhdmlvdXIgaW4gcXVlc3Rpb24gdGhlbiB0aGUgc3R1ZGVudCBtYXkgYmUgcGxhY2VkIG9uIHByb2JhdGlvbiBvciBjb3VsZCBldmVuIGJlIHJlbW92ZWQgZnJvbSB0aGUgY29tbXVuaXR5LjwvcD4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJhZG1pc3Npb25zIj4KICAgIDxoMz5BZG1pc3Npb25zPC9oMz4KICAgCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5SZWFkIEJlZm9yZSBZb3UgQXBwbHk6PC9zdHJvbmc+IEdDQVMgaXMgYW4gYWNjcmVkaXRlZCBpbnN0aXR1dGlvbiBvZiBoaWdoZXIgZWR1Y2F0aW9uIGluIHRoZSBFdXJvcGVhbiBVbmlvbiB2aWEgb3VyIHBhcnRuZXJzaGlwIHdpdGggV29vbGYgVW5pdmVyc2l0eS4gUGxlYXNlIGJlIGF3YXJlIHRoYXQgbW9zdCBidXQgbm90IGFsbCBkZWdyZWUgcHJvZ3JhbW1lcyBhcmUgYWNjcmVkaXRlZCBhdCB0aGlzIHRpbWUuIElmIHlvdSBoYXZlIGEgcXVlc3Rpb24gYWJvdXQgdGhpcyBwbGVhc2UgYXNrIHVzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxwPlRvIGJlIGNvbnNpZGVyZWQgZm9yIGFkbWlzc2lvbiBpbnRvIEdDQVMgQ29sbGVnZSwgcHJvc3BlY3RpdmUgc3R1ZGVudHMgbXVzdCBjb21wbGV0ZSB0aGUgYXBwbGljYXRpb24gcHJvY2VzcyB0aHJvdWdoIFBoYXNlIDEgYW5kIFBoYXNlIDIuIEluZm9ybWF0aW9uIGFib3V0IHRoZXNlIHBoYXNlcyBjYW4gYmUgZm91bmQgb24gb3VyIHJlc3BlY3RpdmUgZGVncmVlIHByb2dyYW1tZSB3ZWJwYWdlcy48L3A+CiAgIAogICAgPGg0PlByZXJlcXVpc2l0ZXMgZm9yIEFjY2VwdGFuY2U8L2g0PgogICAgPHA+T3VyIHJlc2VhcmNoZXJzIGNvbWUgZnJvbSBzb21lIG9mIHRoZSBiZXN0IGFjYWRlbWljIGluc3RpdHV0aW9ucyBpbiB0aGUgd29ybGQsIGluY2x1ZGluZyBKb2hucyBIb3BraW5zIFVuaXZlcnNpdHksIENvbHVtYmlhIFVuaXZlcnNpdHksIExvbmRvbiBTY2hvb2wgb2YgRWNvbm9taWNzLCBTd2FydGhtb3JlLCBZYWxlIFVuaXZlcnNpdHksIE5ldyBZb3JrIFVuaXZlcnNpdHksIENhbWJyaWRnZSwgT3hmb3JkLCBhbmQgQ2FzZSBXZXN0ZXJuIFJlc2VydmUgVW5pdmVyc2l0eS48L3A+CiAgIAogICAgPHA+SG93ZXZlciwgYXMgYSByZXNlYXJjaCBpbnN0aXR1dGUgYW5kIGNvbGxlZ2UgdGhhdCBpcyBjaGFsbGVuZ2luZyB0cmFkaXRpb25hbCBhY2FkZW1pYSwgd2UgYXR0cmFjdCBhcHBsaWNhbnRzIHdobyBicmluZyBkaXZlcnNlIGJhY2tncm91bmRzLCBleHBlcmllbmNlcywgYW5kIGZyZXNoIHBlcnNwZWN0aXZlcyB0byB0aGUgY29udmVyc2F0aW9uIGFuZCByZXNlYXJjaC48L3A+CiAgIAogICAgPGg0PlR1aXRpb24gT3ZlcnZpZXc8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPkJBIFByb2dyYW1tZTo8L3N0cm9uZz4g4oKsMyw1MDAgcGVyIHllYXI8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk1BICZhbXA7IFBoRCBQcm9ncmFtbWVzOjwvc3Ryb25nPiDigqw2LDAwMCBwZXIgeWVhcjwvbGk+CiAgICA8L3VsPgogICAgPHA+TmVhcmx5IDEwMCUgZmluYW5jaWFsIGFpZCBwYWNrYWdlcyBhcmUgb2ZmZXJlZCB0byBhbGwgUmVzZWFyY2hlcnMvU3R1ZGVudHMgd2hvIGFyZSBhY2NlcHRlZC4gR0NBUydzIGZpbmFuY2lhbCBhaWQgcGFja2FnZXMgY29tZSBpbiB0aGUgZm9ybSBvZiB0dWl0aW9uIHJlZHVjdGlvbi48L3A+CiAgIAogICAgPGg0PkFwcGxpY2F0aW9uIFJldmlldzwvaDQ+CiAgICA8cD5BbGwgYXBwbGljYXRpb25zIGFyZSByZXZpZXdlZCBieSBvdXIgQWRtaXNzaW9ucyBDb21taXR0ZWUgY2hhaXJlZCBieSBhIEdDQVMgRmFjdWx0eSBtZW1iZXIuIEFjY2VwdGFuY2UgaXMgaGlnaGx5IHNlbGVjdGl2ZSBmb3IgYWxsIG91ciBkZWdyZWUgcHJvZ3JhbW1lcy4gUGFydCBvZiBvdXIgYXNzZXNzbWVudCBjcml0ZXJpYSBpcyB0byBlbnN1cmUgR0NBUyBoYXMgdGhlIGNhcGFjaXR5IGFuZCByZXNvdXJjZXMgdG8gZnVsbHkgc3VwcG9ydCB0aGUgYXBwbGljYW50J3MgcmVzZWFyY2ggcHJvcG9zYWwuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9Im5vbWFkaWMtbGVhcm5pbmciPgogICAgPGgzPkdDQVMgTm9tYWRpYyBMZWFybmluZzogIlRoZSBXb3JsZCBpcyBvdXIgQ2xhc3Nyb29tIjwvaDM+CiAgICA8cD5Gcm9tIHRoZSBmaXJzdCBpbmNlcHRpb24gb2YgVGhlIEdsb2JhbCBDZW50ZXIgZm9yIEFkdmFuY2VkIFN0dWRpZXMgKEdDQVMpIHdlIGhhdmUgY3JlYXRlZCBuZXcgYW5kIGlubm92YXRpdmUgc3BhY2VzIG9mIGxlYXJuaW5nIGFuZCBhcHBsaWVkIGNyZWF0aXZlIGFuZCBjcml0aWNhbCB0aGlua2luZy4gV2UgaGF2ZSBvY2N1cGllZCBkb3plbnMgb2Ygc3BhY2VzIGFyb3VuZCB0aGUgd29ybGQgZnJvbSB0aGUgQ2VudHJlIFBvbXBpZG91IGluIFBhcmlzLCB0byBhIG11c2V1bSBpbiBCZXJsaW4sIFRoZSBCcm9va2x5biBDb21tb25zIGluIE5ldyBZb3JrIENpdHksIHRvIFRoZSBNYXJ0aW4gTHV0aGVyIEtpbmcsIEpyIENlbnRyZSBpbiBIYXZhbmEsIEN1YmEuPC9wPgogICAKICAgIDxoND5QcmV2aW91cyBHQ0FTIEluc3RpdHV0ZXMgJmFtcDsgQ29uZmVyZW5jZXM8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT4xc3QgQW5udWFsLCAiQmFkaW91IG9uIEJhZGlvdSIgKEp1bHkgMjAxNCk8L2xpPgogICAgICAgIDxsaT4ybmQsICJEZW1vY3JhY3kgUmlzaW5nIiBBdGhlbnMsIEdyZWVjZSAoSnVseSAyMDE1KTwvbGk+CiAgICAgICAgPGxpPjNyZCwgIkRlbW9jcmFjeSBSaXNpbmciIFBoaWxhZGVscGhpYSAoSnVuZSAyMDE2KTwvbGk+CiAgICAgICAgPGxpPjR0aCwgIlByYWN0aWNpbmcgSW50ZWxsZWN0dWFsIFJlc2lzdGFuY2UiIE1hcmlib3IsIFNsb3ZlbmlhIChKdWx5IDIwMTcpPC9saT4KICAgICAgICA8bGk+NXRoLCAiQWVzdGhldGljIFJlc2lzdGFuY2UgJmFtcDsgUGVyZm9ybWFuY2UiIEZyYW5jZSAoSnVuZSAyMDE4KTwvbGk+CiAgICAgICAgPGxpPjZ0aCwgIlBoaWxvc29waHkgYXMgYSBNb2RlIG9mIFByb2R1Y3Rpb24iIEZyYW5jZSAoSnVuZSAyMDE5KTwvbGk+CiAgICAgICAgPGxpPjd0aCwgIkFlc3RoZXRpY3MgYW5kIHRoZSBQb2xpdGljYWwiIE1leGljbyBDaXR5IChPY3QgMjAyMSk8L2xpPgogICAgICAgIDxsaT5HQ0FTIEJlbGZhc3QgRXZlbnQgKDIwMjIpPC9saT4KICAgICAgICA8bGk+OHRoLCAiVHJhbnNncmVzc2l2ZSBUaG91Z2h0IGFuZCB0aGUgQ291bnRlcmZlaXRzIG9mIENyZWF0aXZpdHkiIFByYWd1ZSAoSnVuZSAyMDIzKTwvbGk+CiAgICAgICAgPGxpPjl0aCwgIkdDQVMgUGFyaXMgV2VlayIgKE1heSAyMDI0KTwvbGk+CiAgICAgICAgPGxpPjEwdGgsICJHQ0FTIFBhcmlzIFdlZWsiIChNYXkgMjAyNSk8L2xpPgogICAgPC91bD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5FdmVudCBBdHRlbmRhbmNlOjwvc3Ryb25nPiBBbGwgc3R1ZGVudHMsIGZhY3VsdHksIGFuZCBhdHRlbmRlZXMgd2hvIGF0dGVuZCBhbnkgR0NBUyBDb2xsZWdlIGV2ZW50cyBpbiBwZXJzb24gbXVzdCBmaXJzdCBzaWduIGEgTGlhYmlsaXR5IFJlbGVhc2UgRm9ybS4gQWxsIGF0dGVuZGVlcyB3aWxsIGNvbW1pdCB0byBub24tdmlvbGVudCBhbmQgcmVzcGVjdGZ1bCBtZWFucyBvZiBleGNoYW5nZS48L3A+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJ0cmFuc2ZlciI+CiAgICA8aDM+VHJhbnNmZXJyaW5nICZhbXA7IENyZWRpdCBSZWNvZ25pdGlvbjwvaDM+CiAgICA8cD5TdHVkZW50cyB3aG8gdHJhbnNmZXIgaW50byBUaGUgR3JhZHVhdGUgU2Nob29sIG9mIEdDQVMgQ29sbGVnZSBEdWJsaW4gZnJvbSBvdGhlciBpbnN0aXR1dGlvbnMgb2YgaGlnaGVyIGVkdWNhdGlvbiBtYXkgdHJhbnNmZXIgcHJldmlvdXNseSBhd2FyZGVkIGNyZWRpdCByZWNlaXZlZCBmcm9tIGFub3RoZXIgaW5zdGl0dXRpb24gb2YgaGlnaGVyIGVkdWNhdGlvbiBzbyBsb25nIGFzIHRoYXQgaW5zdGl0dXRpb24gaXMgYWNjcmVkaXRlZCBhbmQgeW91ciB0cmFuc2ZlciBpcyBhdXRob3Jpc2VkIGJ5IHRoZSBHQ0FTIENoYW5jZWxsb3IuPC9wPgogICAKICAgIDxoND5DcmVkaXQgUmVjb2duaXRpb24gZm9yIEFsdGVybmF0aXZlIExlYXJuaW5nIEV4cGVyaWVuY2VzPC9oND4KICAgIDxwPkdDQVMgQ29sbGVnZSBEdWJsaW4gaGFzIGEgcHJvY2VzcyBieSB3aGljaCB3ZSByZWNvZ25pc2UgYWx0ZXJuYXRpdmUgbGVhcm5pbmcgZXhwZXJpZW5jZXMgaW5jbHVkaW5nIGVtcGxveW1lbnQgYW5kIG90aGVyIHJlbGV2YW50IGV4cGVyaWVuY2VzLCBhbmQgY2FuIGdyYW50IGNyZWRpdCBob3VycyBmb3Igc3VjaCBleHBlcmllbmNlcyBwcm92aWRlZCB0aGF0IGRvY3VtZW50YXRpb24gaXMgcHJvdmlkZWQuPC9wPgogICAKICAgIDxoND5EdWFsIEVucm9sbWVudCBQb2xpY3k8L2g0PgogICAgPHA+SXQgaXMgbm90IHRoZSBub3JtYWwgcHJhY3RpY2Ugb2YgR0NBUyBDb2xsZWdlIER1YmxpbiB0byBhY2NlcHQgYSBzdHVkZW50IHdobyBpcyBhbHNvIGVucm9sbGVkIGluIGFub3RoZXIgdW5pdmVyc2l0eS4gSG93ZXZlciwgaW4gZXhjZXB0aW9uYWwgY2FzZXMsIGFuIGFwcGxpY2FudCBtYXkgcmVxdWVzdCB0aGUgQXBwbGljYXRpb25zIENvbW1pdHRlZSB0byBjb25zaWRlciBhY2NlcHRhbmNlIGFzIGEgIkR1YWwgRW5yb2xsZWQiIHN0dWRlbnQuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImludGVybmF0aW9uYWwiPgogICAgPGgzPkludGVybmF0aW9uYWwgU3R1ZGVudHM8L2gzPgogICAKICAgIDxoND5FbmdsaXNoIExhbmd1YWdlIFJlcXVpcmVtZW50czwvaDQ+CiAgICA8cD5BcHBsaWNhbnRzIHdob3NlIGZpcnN0IGxhbmd1YWdlIGlzIG5vdCBFbmdsaXNoIG11c3QgZGVtb25zdHJhdGUgZXZpZGVuY2Ugb2YgdGhlaXIgcHJvZmljaWVuY3kgaW4gRW5nbGlzaCB2aWEgb25lIG9mIHRoZSBmb2xsb3dpbmc6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Db21wbGV0ZWQgYSBtaW5pbXVtIG9mIG9uZSB5ZWFyIGVkdWNhdGlvbiBpbiBhIHByZWRvbWluYW50bHkgRW5nbGlzaC1zcGVha2luZyBjb3VudHJ5IHdpdGhpbiB0aGUgcHJldmlvdXMgMTggbW9udGhzPC9saT4KICAgICAgICA8bGk+V29yayBleHBlcmllbmNlIG9mIGF0IGxlYXN0IDE4IG1vbnRocyBpbiBhIHByZWRvbWluYW50bHkgRW5nbGlzaC1zcGVha2luZyBjb3VudHJ5PC9saT4KICAgICAgICA8bGk+U3VmZmljaWVudGx5IGhpZ2ggcXVhbGlmaWNhdGlvbiBzY29yZSBvbiBhcHByb3ZlZCBleGFtaW5hdGlvbnM8L2xpPgogICAgICAgIDxsaT5BIGRlZ3JlZSBmcm9tIGFuIGFjY3JlZGl0ZWQgaW5zdGl0dXRpb24gdGF1Z2h0IGluIEVuZ2xpc2g8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+QWNjZXB0ZWQgRW5nbGlzaCBQcm9maWNpZW5jeSBUZXN0czwvaDQ+CiAgICA8dGFibGU+CiAgICAgICAgPHRib2R5Pjx0cj4KICAgICAgICAgICAgPHRoPlRlc3Q8L3RoPgogICAgICAgICAgICA8dGg+TWluaW11bSBTY29yZTwvdGg+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5JRUxUUzwvdGQ+CiAgICAgICAgICAgIDx0ZD5HcmFkZSA2LjUgb3ZlcmFsbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5UT0VGTDwvdGQ+CiAgICAgICAgICAgIDx0ZD44OCBJbnRlcm5ldC1iYXNlZCAvIDU3MCBwYXBlci1iYXNlZDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5DYW1icmlkZ2UgUHJvZmljaWVuY3kvQWR2YW5jZWQ8L3RkPgogICAgICAgICAgICA8dGQ+R3JhZGUgQyBvciBiZXR0ZXIgKENFRlIgTGV2ZWwgQzEgb3IgQzIpPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlBlYXJzb24gUFRFIEFjYWRlbWljPC90ZD4KICAgICAgICAgICAgPHRkPk1pbmltdW0gNjMgKG5vIHNlY3Rpb24gYmVsb3cgNTkpPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgogICAgPHA+PGVtPk5vdGU6IFRlc3Qgc2NvcmVzIGFyZSBvbmx5IHZhbGlkIGZvciB0d28geWVhcnMgcHJpb3IgdG8gYXBwbHlpbmcuPC9lbT48L3A+CiAgIAogICAgPGg0PlZpc2EgUmVxdWlyZW1lbnRzPC9oND4KICAgIDxwPkJlY2F1c2Ugd2Ugb2ZmZXIgY291cnNlcyBvbmxpbmUgYW5kIGluIGxvdy1yZXNpZGVudGlhbCB3YXlzLCBhIHN0dWRlbnQgc2hvdWxkbid0IGV4cGVjdCB2aXNhIGJhY2tpbmcgZnJvbSBHQ0FTIENvbGxlZ2UgRHVibGluLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBzdHVkZW50IHZpc2FzLCBwbGVhc2UgY29uc3VsdCB0aGUgRGVwYXJ0bWVudCBvZiBGb3JlaWduIEFmZmFpcnMgd2Vic2l0ZS48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gMjogR2VuZXJhbCBBY2FkZW1pYyBQb2xpY2llczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJwbGFnaWFyaXNtIj4KICAgIDxoMz5QbGFnaWFyaXNtIFBvbGljeTwvaDM+CiAgICA8cD5QbGFnaWFyaXNtIGlzIHRoZSBhY3Qgb3IgaW5zdGFuY2Ugb2YgdXNpbmcgb3IgY2xvc2VseSBpbWl0YXRpbmcgdGhlIGxhbmd1YWdlIGFuZCB0aG91Z2h0cyBvZiBhbm90aGVyIGF1dGhvciB3aXRob3V0IGF1dGhvcmlzYXRpb24gb3IgdGhlIHByZXNlbnRhdGlvbiBvZiB0aGF0IGF1dGhvcidzIHdvcmsgYXMgb25lJ3Mgb3duLjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPlplcm8gVG9sZXJhbmNlOjwvc3Ryb25nPiBHQ0FTIG1vc3QgZnVuZGFtZW50YWxseSBpcyBhIHBsYWNlIGluIHdoaWNoIGJvbGQgYW5kIG5ldyByZXNlYXJjaCBpcyBlbmNvdXJhZ2VkLCBhcyB3ZWxsIGFzIHRoZSBjcmVhdGlvbiBvZiBuZXcgdGhpbmtpbmcgcGFyYWRpZ21zLiBQbGFnaWFyaXNtIGlzIHRoZSBhY3Qgb2YgInVudGhpbmtpbmciIGFuZCBhIGZvcm0gb2YgaW50ZWxsZWN0dWFsIGRpc2hvbmVzdHkuIEdDQVMgc3Ryb25nbHkgY29uZGVtbnMgYW55IGFjdHMgb2YgcGxhZ2lhcmlzbSB1bmxlc3MgdGhvc2UgYWN0cyBhcmUgc2hvd24gdG8gYmUgYW4gYXJ0aXN0aWMgb3IgcGVyZm9ybWF0aXZlIGFjdCB0aGF0IGhhcyBiZWVuIHByZS1hcHByb3ZlZCBieSBmYWN1bHR5LjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InN1cGVydmlzaW9uIj4KICAgIDxoMz5BY2FkZW1pYyBTdXBlcnZpc2luZzwvaDM+CiAgICA8cD5BbGwgc3R1ZGVudHMgYXJlIGluaXRpYWxseSBhc3NpZ25lZCBhbiBBY2FkZW1pYyBTdXBlcnZpc29yLiBUaGUgc3R1ZGVudCdzIEFjYWRlbWljIFN1cGVydmlzb3Igd2lsbCBlbnN1cmUgdGhlIHN0dWRlbnQgdW5kZXJzdGFuZHMgdGhlIGFjYWRlbWljIGV4cGVjdGF0aW9ucyBhbmQgcG9saWNpZXMgdGhyb3VnaCB0aGUgaW5pdGlhbCBhZHZpc29yeSBtZWV0aW5nLiBTdHVkZW50cyBzaG91bGQgbWVldCB3aXRoIHRoZWlyIHN1cGVydmlzb3IgYWJvdXQgb25jZSBhIG1vbnRoLjwvcD4KICAgCiAgICA8aDQ+Q2hhbmdpbmcgQWNhZGVtaWMgU3VwZXJ2aXNvcnM8L2g0PgogICAgPHA+QWZ0ZXIgdGhlIGZpcnN0IHRlcm0sIHRoZSBzdHVkZW50IG1heSB3aXNoIHRvIGNoYW5nZSB0aGVpciBBY2FkZW1pYyBTdXBlcnZpc29yLiBUbyBkbyB0aGlzLCBlbWFpbCB0aGUgQ2hhbmNlbGxvciBvciBSZWdpc3RyYXIuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImF0dGVuZGFuY2UiPgogICAgPGgzPkF0dGVuZGFuY2UgYW5kIEFic2VuY2UgUG9saWN5PC9oMz4KICAgIDxwPkluIG9yZGVyIHRvIGJlIGEgc3VjY2Vzc2Z1bCBzdHVkZW50IGF0IEdDQVMgQ29sbGVnZSBEdWJsaW4sIGEgc3R1ZGVudCBtdXN0IGF0dGVuZDo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPkxlY3R1cmVzPC9saT4KICAgICAgICA8bGk+Q2xhc3NlczwvbGk+CiAgICAgICAgPGxpPk1vbnRobHkgcGVlciBncm91cCBtZWV0LXVwczwvbGk+CiAgICAgICAgPGxpPk1vbnRobHkgYWNhZGVtaWMgc3VwZXJ2aXNpb24gbWVldGluZ3M8L2xpPgogICAgICAgIDxsaT5PdGhlciBldmVudHMgYXMgcmVxdWlyZWQ8L2xpPgogICAgPC91bD4KICAgCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5MaXZlIENvdXJzZSBQb2xpY3k6PC9zdHJvbmc+IFdlIHN0cm9uZ2x5IGVuY291cmFnZSBhbGwgc3R1ZGVudHMgdG8gYXR0ZW5kIGxpdmUgY291cnNlcy4gSWYgdGhlIGNvdXJzZSBpcyBoYXBwZW5pbmcgYmV0d2VlbiA4IGEubS4gYW5kIDggcC5tLiBpbiB5b3VyIGxvY2FsIHRpbWUgem9uZSwgd2UgZXhwZWN0IGF0dGVuZGFuY2UuIFN0dWRlbnRzIG1heSBtaXNzIHVwIHRvIDIgbGl2ZSBjbGFzcyBzZXNzaW9ucyB3aXRob3V0IHBlbmFsdHkuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PkFic2VuY2UgUmVxdWlyZW1lbnRzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+SWYgYWJzZW50LCBwb3N0IGEgMjUwLXdvcmQgcmVzcG9uc2UgdG8gdGhlIGxlY3R1cmUgd2l0aGluIDMgZGF5cyBhZnRlciB0aGUgcmVjb3JkaW5nIGlzIHBvc3RlZDwvbGk+CiAgICAgICAgPGxpPkxlYXZpbmcgbW9yZSB0aGFuIDIwJSBvZiBjbGFzcyBlYXJseSBjb3VudHMgYXMgYW4gYWJzZW5jZTwvbGk+CiAgICAgICAgPGxpPjMgYWJzZW5jZXM6IEZpbmFsIGdyYWRlIHJlZHVjZWQgYnkgMSB1bml0PC9saT4KICAgICAgICA8bGk+NCBhYnNlbmNlczogRmluYWwgZ3JhZGUgcmVkdWNlZCBieSBhbm90aGVyIHVuaXQ8L2xpPgogICAgICAgIDxsaT41KyBhYnNlbmNlczogRmFpbHVyZSBvZiB0aGUgY291cnNlPC9saT4KICAgIDwvdWw+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZ3JhZGluZyI+CiAgICA8aDM+R3JhZGluZyBTY2FsZTwvaDM+CiAgICA8cD5UaGUgZ3JhZGluZyBzY2FsZSBpcyBmcm9tIDEgdG8gMTAgd2l0aCAxMCBiZWluZyB0aGUgaGlnaGVzdCBncmFkZSBhY2hpZXZhYmxlOjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJncmFkZS1zY2FsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz4xMDwvc3Ryb25nPiAtIEhpZ2hlc3QgYWNoaWV2YWJsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+OTwvc3Ryb25nPiAtIEV4Y2VsbGVudDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+ODwvc3Ryb25nPiAtIFZlcnkgR29vZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+Nzwvc3Ryb25nPiAtIEdvb2Q8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjY8L3N0cm9uZz4gLSBQYXNzYWJsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+NTwvc3Ryb25nPiAtIEZhaWx1cmUgKG1heSByZXRha2UpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz40PC9zdHJvbmc+IC0gRmFpbHVyZSAobWF5IHJldGFrZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFkZS1pdGVtIj48c3Ryb25nPjM8L3N0cm9uZz4gLSBGYWlsdXJlIChubyByZXRha2UpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGUtaXRlbSI+PHN0cm9uZz4yPC9zdHJvbmc+IC0gRmFpbHVyZSAobm8gcmV0YWtlKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYWRlLWl0ZW0iPjxzdHJvbmc+MTwvc3Ryb25nPiAtIEZhaWx1cmUgKG5vIHJldGFrZSk8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9IndpdGhkcmF3aW5nIj4KICAgIDxoMz5XaXRoZHJhd2luZyBmcm9tIGEgQ291cnNlPC9oMz4KICAgIDxwPkEgc3R1ZGVudCBtYXkgd2l0aGRyYXcgZnJvbSBhbnkgY291cnNlIGF0IGFueSB0aW1lOyBob3dldmVyLCB0aGVyZSBhcmUgZGlmZmVyZW50IGNvbnNlcXVlbmNlczo8L3A+CiAgIAogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5XaXRoZHJhd2FsIFBlcmlvZDwvdGg+CiAgICAgICAgICAgIDx0aD5Db25zZXF1ZW5jZTwvdGg+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5CZWZvcmUgMm5kIGNsYXNzIG1lZXRpbmc8L3RkPgogICAgICAgICAgICA8dGQ+Tm8gY29uc2VxdWVuY2VzLCBubyBncmFkZSBvciBjcmVkaXQ8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+QmVmb3JlIDR0aCBjbGFzcyBtZWV0aW5nPC90ZD4KICAgICAgICAgICAgPHRkPkNhbiBjbGFpbSA1MCUgb2YgdHVpdGlvbiBmdW5kcywgbm8gZ3JhZGUgb3IgY3JlZGl0PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkJlZm9yZSA1dGggY2xhc3MgbWVldGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5ObyB0dWl0aW9uIHJlaW1idXJzZW1lbnQsIG5vIGdyYWRlIG9yIGNyZWRpdDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BZnRlciA2dGggY2xhc3MgbWVldGluZzwvdGQ+CiAgICAgICAgICAgIDx0ZD5XaWxsIHJlY2VpdmUgYSBncmFkZSBmb3IgdGhlIGNvdXJzZTwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJkaXNjaXBsaW5hcnkiPgogICAgPGgzPkRpc2NpcGxpbmFyeSBQb2xpY3k8L2gzPgogICAgPHA+QWxsIEdDQVMgQ29sbGVnZSBzdHVkZW50cyBhcmUgZXhwZWN0ZWQgdG8gY29uZHVjdCB0aGVtc2VsdmVzIGluIGEgcmVzcGVjdGZ1bCBhbmQgcHJvZmVzc2lvbmFsIG1hbm5lciBhdCBhbGwgdGltZXMuPC9wPgogICAKICAgIDxoND5LaW5kcyBvZiBEaXNjaXBsaW5hcnkgQWN0aW9uPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+T2ZmaWNpYWwgUmVwcmltYW5kPC9saT4KICAgICAgICA8bGk+QWNhZGVtaWMgUHJvYmF0aW9uPC9saT4KICAgICAgICA8bGk+VGVtcG9yYXJ5IFN1c3BlbnNpb248L2xpPgogICAgICAgIDxsaT5Gb3JjZWQgTGVhdmUgb2YgQWJzZW5jZTwvbGk+CiAgICAgICAgPGxpPlN1c3BlbnNpb24gZm9yIDEgWWVhcjwvbGk+CiAgICAgICAgPGxpPlRlcm1pbmF0aW9uPC9saT4KICAgICAgICA8bGk+VGVybWluYXRpb24gd2l0aG91dCB0aGUgcHJpdmlsZWdlIG9mIHJlYXBwbHlpbmc8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+UHJvY2VkdXJlPC9oND4KICAgIDxwPlNob3VsZCBhIHN0dWRlbnQgYmUgc3VzcGVjdGVkIG9mIHZpb2xhdGluZyBhIHBvbGljeSBvciBjb2RlIG9mIEdDQVMgQ29sbGVnZSwgdGhleSB3aWxsIGJlIGZvcm1hbGx5IG5vdGlmaWVkIGJ5IHRoZSBEZWFuIG9mIFN0dWRlbnQgQWZmYWlycyB2aWEgZW1haWwuIFRoZSBzdHVkZW50IGNhbiBhZG1pdCB2aW9sYXRpb24gaW4gd3JpdGluZywgb3IgY2xhaW0gaW5ub2NlbmNlIGFuZCByZWNlaXZlIGEgZmFpciBkZWZlbnNlIGluIGFuIEV0aGljcyBDb21taXR0ZWUgVmlvbGF0aW9uIEhlYXJpbmcuPC9wPgogICAKICAgIDxoND5MZWF2ZSBvZiBBYnNlbmNlPC9oND4KICAgIDxwPkEgc3R1ZGVudCBtYXkgYXBwbHkgZm9yIGEgbWVkaWNhbCBsZWF2ZSBvZiBhYnNlbmNlIGFuZC9vciBhIHBhdXNlIGluIHRoZWlyIHN0dWRpZXMuIFRoZSBjb3N0IG9mIGEgbGVhdmUgb2YgYWJzZW5jZSBpcyDigqw1MDAuPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDM6IEdDQVMgQ29sbGVnZSBFY29ub215PC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImZpbmFuY2lhbC1haWQiPgogICAgPGgzPkZpbmFuY2lhbCBBaWQ8L2gzPgogICAKICAgIDxkaXYgY2xhc3M9ImhpZ2hsaWdodC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+MTAwJSBPRiBBTEwgR0NBUyBDT0xMRUdFIFNUVURFTlRTIFJFQ0VJVkUgU09NRSBGSU5BTkNJQUwgQUlEPC9zdHJvbmc+PC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBpcyBjb21taXR0ZWQgdG8gcHJvdmlkaW5nIHRoZSBoaWdoZXN0IHF1YWxpdHkgZWR1Y2F0aW9uIGF0IHRoZSBsb3dlc3QgcG9zc2libGUgY29zdC4gVGhlcmUgYXJlIHRocmVlIHdheXMgd2UgaGVscCBzdHVkZW50czo8L3A+CiAgICA8b2w+CiAgICAgICAgPGxpPkV4dHJlbWVseSBsb3cgdHVpdGlvbiBmb3IgaGlnaCBxdWFsaXR5IGVkdWNhdGlvbjwvbGk+CiAgICAgICAgPGxpPkFsbCBhY2NlcHRlZCBzdHVkZW50cyByZWNlaXZlIHNvbWUgZm9ybSBvZiB0dWl0aW9uIHJlbWlzc2lvbiBzdXBwb3J0OyBzb21lIG1heSByZWNlaXZlIHVwIHRvIDUwJSBkZXBlbmRpbmcgb24gdGhlIHN0cmVuZ3RoIG9mIHRoZWlyIGFwcGxpY2F0aW9uLjwvbGk+CiAgICAgICAgPGxpPkZsZXhpYmxlIHBheW1lbnQgc2NoZWR1bGVzPC9saT4KICAgIDwvb2w+CiAgIAogICAgPGg0PlRoZSBXYXJyZW4gVC4gRGF2aXMsIEpyIFNjaG9sYXJzaGlwPC9oND4KICAgIDxwPkdDQVMgbWF5IG9mZmVyIHVuaXF1ZSBzY2hvbGFyc2hpcCBvcHBvcnR1bml0eSB0aGF0IHByb3ZpZGVzIHRoZSByZWNpcGllbnQgd2l0aCB1cCB0byAxMDAlIHR1aXRpb24gcmVtaXNzaW9uLiBUaGlzIHNjaG9sYXJzaGlwIGlzIHNldCBhc2lkZSBmb3IgQkEsIE1BIGFuZCBQaEQgUmVzZWFyY2hlcnMgd2hvIGFyZSBhY2NlcHRlZCBpbnRvIEdDQVMuPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImZlZXMiPgogICAgPGgzPkFkZGl0aW9uYWwgRmVlczwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0iaW5mby1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+U3RheSBvbiBUcmFjaywgU3RheSBEZWJ0LUZyZWU6PC9zdHJvbmc+IE5PIEVYVFJBIEZFRVMgSUYgWU9VIEdSQURVQVRFIE9OIFRJTUUuIEFkZGl0aW9uYWwgZmVlcyBhcHBseSBvbmx5IGluIGV4Y2VwdGlvbmFsIGNpcmN1bXN0YW5jZXMuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPGg0PkZlZSBTdW1tYXJ5PC9oND4KICAgIDx0YWJsZT4KICAgICAgICA8dGJvZHk+PHRyPgogICAgICAgICAgICA8dGg+RmVlIFR5cGU8L3RoPgogICAgICAgICAgICA8dGg+QXBwbGllcyBUbzwvdGg+CiAgICAgICAgICAgIDx0aD5XaGVuIEZlZXMgQXBwbHk8L3RoPgogICAgICAgICAgICA8dGg+TW9udGhseSBDb3N0PC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkNvbnRpbnVhdGlvbiBGZWU8L3RkPgogICAgICAgICAgICA8dGQ+TUEsIEJBLCBQaEQ8L3RkPgogICAgICAgICAgICA8dGQ+QWZ0ZXIgZ3JhY2UgcGVyaW9kLCBmb3IgZWFjaCBhZGRpdGlvbmFsIG1vbnRoPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDI1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5FeHRyYW9yZGluYXJ5IFN1cGVydmlzaW9uIChNQSk8L3RkPgogICAgICAgICAgICA8dGQ+TUEgdGhlc2lzIHdyaXRpbmc8L3RkPgogICAgICAgICAgICA8dGQ+SWYgc3VwZXJ2aXNpb24gZXhjZWVkcyAzIG1vbnRoczwvdGQ+CiAgICAgICAgICAgIDx0ZD7igqwxNTA8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+RXh0cmFvcmRpbmFyeSBTdXBlcnZpc2lvbiAoUGhEKTwvdGQ+CiAgICAgICAgICAgIDx0ZD5QaEQ8L3RkPgogICAgICAgICAgICA8dGQ+RHVyaW5nIDMgbm9uLWJ1ZGdldGVkIG1vbnRocyAoc3VtbWVyIGJyZWFrKTwvdGQ+CiAgICAgICAgICAgIDx0ZD7igqwxNTA8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+QWRkaXRpb25hbCBTdXBlcnZpc29yIChQaEQpPC90ZD4KICAgICAgICAgICAgPHRkPlBoRCAoWWVhciAyIG9yIDMpPC90ZD4KICAgICAgICAgICAgPHRkPkZvciBlYWNoIG1vbnRoIHdpdGggYWRkaXRpb25hbCBzdXBlcnZpc29yPC90ZD4KICAgICAgICAgICAgPHRkPuKCrDE1MDwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KICAgCiAgICA8aDQ+Q29udGludWF0aW9uIEZlZXM8L2g0PgogICAgPHA+R0NBUyBwcm92aWRlcyBjbGVhcmx5IGRlZmluZWQgdGltZWxpbmVzIGZvciBkZWdyZWUgY29tcGxldGlvbjo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+TUEgcHJvZ3JhbXM6PC9zdHJvbmc+IDEyIG1vbnRoczwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+QkEgYW5kIFBoRCBwcm9ncmFtczo8L3N0cm9uZz4gMzYgbW9udGhzPC9saT4KICAgIDwvdWw+CiAgICA8cD5BIHR3by1tb250aCBncmFjZSBwZXJpb2QgaXMgZ3JhbnRlZCBhdCBubyBhZGRpdGlvbmFsIGNvc3QuIEFmdGVyIHRoaXMsIGEgbW9udGhseSBjb250aW51YXRpb24gZmVlIG9mIOKCrDIwMCB3aWxsIGJlIGNoYXJnZWQuPC9wPgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgIDxoMj5TZWN0aW9uIDQ6IEJBIGFuZCBNQSBEZWdyZWUgUHJvZ3JhbW1lczwvaDI+CjwvZGl2PgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJiYS1wcm9ncmFtIj4KICAgIDxoMz5CYWNoZWxvciBvZiBJbnRlcmRpc2NpcGxpbmFyeSBTdHVkaWVzIChCQS1JUyk8L2gzPgogICAgPHA+PHN0cm9uZz5EaXJlY3Rvcjo8L3N0cm9uZz4gTWFyaW8gRCdBbWF0bzwvcD4KICAgIDxwPlBsZWFzZSByZWZlciB0byB0aGUgR0NBUyB3ZWJzaXRlIGZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIHByb2dyYW1tZS48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0ibWEtcHJvZ3JhbXMiPgogICAgPGgzPk1BIFByb2dyYW1tZXM8L2gzPgogICAgPHA+VGhlIE1BIHByb2dyYW1tZXMgYXJlIGJhc2VkIG9uIGNvdXJzZXdvcmsgYW5kIHJlc2VhcmNoIGFuZCByYW5nZSBpbiBsZW5ndGggZnJvbSBvbmUgdG8gdHdvIHllYXJzLiBTdHVkZW50cyBhcmUgcmVxdWlyZWQgdG8gY29tcGxldGUgOTAgRUNUUyBjcmVkaXQgaG91cnMsIHdoaWNoIGluY2x1ZGU6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5Db3Vyc2V3b3JrPC9saT4KICAgICAgICA8bGk+TW9udGhseSBzdXBlcnZpc2lvbjwvbGk+CiAgICAgICAgPGxpPk1BIFRoZXNpcyBwZWVyIG1lbnRvciBob3VyczwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5Qcm9ncmFtbWUgRGlyZWN0b3JzPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBpbiBQaGlsb3NvcGh5Ojwvc3Ryb25nPiBDcmVzdG9uIERhdmlzLCBQaEQ8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk1BIGluIFBzeWNob2FuYWx5c2lzOjwvc3Ryb25nPiBGbG9yaWFuIEtsZWluYXUsIFBoRDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+TUEgaW4gUG9saXRpY3M6PC9zdHJvbmc+IEZyYW5jaXNjbyBHb256YWxlcywgUGhEPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5NQSBpbiBUaGVvbG9neTo8L3N0cm9uZz4gQmFycnkgVGF5bG9yLCBQaEQ8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+U3VwZXJ2aXNlZCBHdWlkZWQgUmVzZWFyY2g8L2g0PgogICAgPHA+VGhlIGNvcmUgb2YgdGhpcyBwcm9ncmFtbWUgaXMgZ3VpZGVkIGFuZCBzdXBlcnZpc2VkIGluZGl2aWR1YWwgcmVzZWFyY2ggZnJvbSBvbmUgb2YgR0NBUyBDb2xsZWdlJ3MgZmFjdWx0eSBtZW1iZXJzLiBZb3UgYXJlIHJlcXVpcmVkIHRvIG1lZXQgYXQgbGVhc3Qgb25jZSBwZXIgbW9udGggd2l0aCB5b3VyIGFzc2lnbmVkIEFjYWRlbWljIFN1cGVydmlzb3IuPC9wPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkltcG9ydGFudDo8L3N0cm9uZz4gU2hvdWxkIGEgc3R1ZGVudCBzZWVrIGEgc3VwZXJ2aXNvciBvdXRzaWRlIHRoZSBjb3JlIEdDQVMgZmFjdWx0eSwgdGhleSBtdXN0IGZpcnN0IGFycmFuZ2UgdGhpcyB2aWEgdGhlIENoYW5jZWxsb3IsIERyLiBDcmVzdG9uIERhdmlzLiBUaGVyZSB3aWxsIG5vcm1hbGx5IGJlIGFuIGV4dHJhIGZlZSBvZiDigqwxMDAgcGVyIG1vbnRoIGZvciBleHRlcm5hbCBzdXBlcnZpc29ycy48L3A+CiAgICA8L2Rpdj4KICAgCiAgICA8aDQ+TWFzdGVycyBDb21wcmVoZW5zaXZlIEV4YW1pbmF0aW9uIChNQ0UpPC9oND4KICAgIDxwPkVhY2ggc3R1ZGVudCB3aWxsIGJlIHJlcXVpcmVkIHRvIHRha2UgYW5kIHN1Y2Nlc3NmdWxseSBwYXNzIHRoZSBNQ0UuIFRoaXMgZXhhbWluYXRpb24gaXMgYSBmb3VyLWhvdXIsIHdyaXR0ZW4gZXhhbWluYXRpb24uIFN0dWRlbnRzIGNhbiB1c2UgZXh0ZXJuYWwgbWF0ZXJpYWxzIGR1cmluZyB0aGlzIGV4YW1pbmF0aW9uLjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+VGhlIGV4YW1pbmF0aW9uIGNvbnNpc3RzIG9mIG9uZSBvciB0d28gcXVlc3Rpb25zIG9uIHRoZSByZXNlYXJjaCB0b3BpYzwvbGk+CiAgICAgICAgPGxpPk11c3QgYmUgcHJvY3RvcmVkIGJ5IGEgR0NBUyBmYWN1bHR5IG1lbWJlciBvciBhcHByb3ZlZCBwcm9jdG9yPC9saT4KICAgICAgICA8bGk+R3JhZGVkIGFzICJQYXNzIiBvciAiRmFpbCI8L2xpPgogICAgICAgIDxsaT5JZiBmYWlsZWQsIGNhbiByZXRha2UgYWZ0ZXIgMzAgZGF5czwvbGk+CiAgICAgICAgPGxpPklmIHRoZSByZXRha2UgaXMgZmFpbGVkLCB0aGUgc3R1ZGVudCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgcHJvZ3JhbW1lPC9saT4KICAgIDwvdWw+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0idGhlc2lzLXJlcXVpcmVtZW50cyI+CiAgICA8aDM+TUEgVGhlc2lzIFJlcXVpcmVtZW50czwvaDM+CiAgIAogICAgPGg0Pkxlbmd0aDwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPk1pbmltdW06IDIwLDAwMCB3b3JkczwvbGk+CiAgICAgICAgPGxpPk1heGltdW06IDQwLDAwMCB3b3JkcyAoZXhjbHVkaW5nIGJpYmxpb2dyYXBoeSBhbmQgYXBwZW5kaWNlcyk8L2xpPgogICAgICAgIDxsaT5BYnNvbHV0ZSBtYXhpbXVtOiA1MCwwMDAgd29yZHM8L2xpPgogICAgICAgIDxsaT5Gb290bm90ZXMgJmFtcDsgY2l0YXRpb25zOiBTaG91bGQgbm90IGV4Y2VlZCAyMCUgb2YgdGhlIFRoZXNpczwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5Gb3JtYXQ8L2g0PgogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5FbGVtZW50PC90aD4KICAgICAgICAgICAgPHRoPlJlcXVpcmVtZW50PC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPk1hcmdpbnM8L3RkPgogICAgICAgICAgICA8dGQ+MSBpbmNoIG9uIGFsbCBzaWRlczwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5Gb250PC90ZD4KICAgICAgICAgICAgPHRkPlRpbWVzIE5ldyBSb21hbjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5Gb250IFNpemU8L3RkPgogICAgICAgICAgICA8dGQ+MTJwdDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5TcGFjaW5nPC90ZD4KICAgICAgICAgICAgPHRkPkRvdWJsZTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5DaXRhdGlvbiBTdHlsZTwvdGQ+CiAgICAgICAgICAgIDx0ZD5DaGljYWdvLCBNTEEsIG9yIEFQQSAobXVzdCBiZSBjb25zaXN0ZW50IHRocm91Z2hvdXQpPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90Ym9keT48L3RhYmxlPgogICAKICAgIDxoND5UaGVzaXMgRGVmZW5zZTwvaDQ+CiAgICA8cD5UaGUgTUEgRGVmZW5zZSBpcyBleHBlY3RlZCB0byBsYXN0IGFib3V0IG9uZSBob3VyOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+NSBtaW51dGVzOiBJbnRyb2R1Y3Rpb24gYnkgQWNhZGVtaWMgU3VwZXJ2aXNvcjwvbGk+CiAgICAgICAgPGxpPjEwIG1pbnV0ZXM6IFN0dWRlbnQgc3VtbWFyaXNlcyB0aGVzaXM8L2xpPgogICAgICAgIDxsaT4yMCBtaW51dGVzOiBDb21taXR0ZWUgZXhhbWluYXRpb248L2xpPgogICAgICAgIDxsaT41IG1pbnV0ZXM6IFN0dWRlbnQgc3VtbWFyeTwvbGk+CiAgICAgICAgPGxpPjE1IG1pbnV0ZXM6IENvbW1pdHRlZSBwcml2YXRlIGRpc2N1c3Npb248L2xpPgogICAgICAgIDxsaT41IG1pbnV0ZXM6IEdyYWRlIGFubm91bmNlbWVudDwvbGk+CiAgICA8L3VsPgogICAKICAgIDxoND5EZWZlbnNlIEdyYWRlczwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+QS48L3N0cm9uZz4gUGFzcyB3aXRoIERpc3RpbmN0aW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5CLjwvc3Ryb25nPiBQYXNzIHdpdGhvdXQgUmV2aXNpb248L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkMuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNaW5vciBSZXZpc2lvbnMgKDE4MCBkYXlzIHRvIGFkZHJlc3MpPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5ELjwvc3Ryb25nPiBQYXNzIHdpdGggTWFqb3IgUmV2aXNpb25zICgxODAgZGF5cyB0byBhZGRyZXNzKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+RS48L3N0cm9uZz4gRmFpbCAoYnV0IHN0dWRlbnQgY2FuIHJlZGVmZW5kIGFmdGVyIDM2NSBkYXlzKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Ri48L3N0cm9uZz4gRmFpbCAod2l0aCBubyBmdXJ0aGVyIG9wdGlvbnMpPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gNTogUGhEIFByb2dyYW1tZXM8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0icGhkLW92ZXJ2aWV3Ij4KICAgIDxoMz5QaEQgT3ZlcnZpZXc8L2gzPgogICAgPHA+R0NBUydzIFBoLkQuIHByb2dyYW1tZXMgc3RyaXZlIHRvIGJlIHRoZSBiZXN0IHJlc2VhcmNoIHByb2dyYW1tZSBvZiBpdHMga2luZCBpbiB0aGUgd29ybGQuPC9wPgogICAKICAgIDxoND5BdmFpbGFibGUgUHJvZ3JhbW1lczwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+UGhEIGluIHRoZSBIdW1hbml0aWVzIGFuZCBTb2NpYWwgU2NpZW5jZXM8L3N0cm9uZz4g4oCUIERpcmVjdG9yOiBDcmVzdG9uIERhdmlzLCBQaEQ8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPlBoRCBpbiB0aGUgTmF0dXJhbCBTY2llbmNlcyAoTWF0aGVtYXRpY3MgYW5kIFBoeXNpY3MpPC9zdHJvbmc+IOKAlCBEaXJlY3RvcjogRmVybmFuZG8gVG9obcOpLCBQaEQ8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+QmFzaWMgUmVxdWlyZW1lbnRzPC9oND4KICAgIDxwPkdDQVMgUGhEIHByb2dyYW1tZXMgYXJlIDMgeWVhcnMgaW4gbGVuZ3RoOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5ZZWFyIDE6PC9zdHJvbmc+IFJlc2VhcmNoIGRlc2lnbiwgbWV0aG9kb2xvZ3kgZGV2ZWxvcG1lbnQsIGxpdGVyYXR1cmUgcmV2aWV3LCBpZGVudGlmeWluZyByZXNlYXJjaCAiZ2FwLCIgYW5kIGRldmVsb3BpbmcgYSB0ZW50YXRpdmUgaHlwb3RoZXNpcy4gT25lIHJlcXVpcmVkIGNvdXJzZTogIk1ldGhvZG9sb2dpZXMgYW5kIFJlc2VhcmNoIFRlY2huaXF1ZXMiIChtZWV0cyA0IHRpbWVzIHBlciB5ZWFyKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+WWVhciAyOjwvc3Ryb25nPiBQcm9tb3Rpb24gdG8gIlBoRCBDYW5kaWRhdGUiIHN0YXR1cyBhbmQgYXNzaWdubWVudCBvZiBhbiBleHBlcnQgc3VwZXJ2aXNvcjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+WWVhciAzOjwvc3Ryb25nPiBEaXNzZXJ0YXRpb24gY29tcGxldGlvbiBhbmQgZGVmZW5zZTwvbGk+CiAgICA8L3VsPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImRpc3NlcnRhdGlvbiI+CiAgICA8aDM+UGhEIERpc3NlcnRhdGlvbiBSZXF1aXJlbWVudHM8L2gzPgogICAgPHA+VGhlIFBoRCBEaXNzZXJ0YXRpb24gaXMgYSBzY2llbnRpZmljIGRvY3VtZW50IGNvbnNpc3Rpbmcgb2Ygc3VzdGFpbmVkLCByaWdvcm91cywgYW5kIGNvaGVyZW50IHJlc2VhcmNoIHRoYXQgY29udHJpYnV0ZXMgc29tZXRoaW5nIG9yaWdpbmFsIHRvIGEgZmllbGQgb3IgZmllbGRzIG9mIGlucXVpcnkuPC9wPgogICAKICAgIDxoND5Gb3JtYXQ8L2g0PgogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5FbGVtZW50PC90aD4KICAgICAgICAgICAgPHRoPlJlcXVpcmVtZW50PC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkxlbmd0aDwvdGQ+CiAgICAgICAgICAgIDx0ZD5+ODAsMDAwIHdvcmRzIChtYXggMTAwLDAwMCBleGNsdWRpbmcgYmlibGlvZ3JhcGh5KTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5NYXJnaW5zPC90ZD4KICAgICAgICAgICAgPHRkPjEuNSBpbmNoIG9uIGFsbCBzaWRlczwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5Gb250PC90ZD4KICAgICAgICAgICAgPHRkPlRpbWVzIE5ldyBSb21hbjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5Gb250IFNpemU8L3RkPgogICAgICAgICAgICA8dGQ+MTJwdDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5TcGFjaW5nPC90ZD4KICAgICAgICAgICAgPHRkPkRvdWJsZTwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJsZT4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJwaGQtZGVmZW5zZSI+CiAgICA8aDM+UGhEIERpc3NlcnRhdGlvbiBEZWZlbnNlPC9oMz4KICAgIDxwPlRoZSBQaEQgRGlzc2VydGF0aW9uIERlZmVuc2UgbXVzdCBiZSBzY2hlZHVsZWQgYXQgbGVhc3QgOTAgZGF5cyBhaGVhZC4gQWxsIGNvbW1pdHRlZSBtZW1iZXJzIG11c3QgYmUgcHJlc2VudCBlaXRoZXIgaW4gcGVyc29uIG9yIHZpYSBsaXZlIG9ubGluZSBtZWV0aW5nLjwvcD4KICAgCiAgICA8aDQ+RGVmZW5zZSBGb3JtYXQ8L2g0PgogICAgPG9sPgogICAgICAgIDxsaT5JbnRyb2R1Y3Rpb248L2xpPgogICAgICAgIDxsaT5TdHVkZW50IHByZXNlbnRzIDMtNSBtaW51dGUgc3VtbWFyeTwvbGk+CiAgICAgICAgPGxpPlF1ZXN0aW9ucyBhbmQgZXhhbWluYXRpb24gYnkgZXZhbHVhdG9yczwvbGk+CiAgICAgICAgPGxpPlN0dWRlbnQgcmVwbGllcyB0byBleGFtaW5hdGlvbjwvbGk+CiAgICAgICAgPGxpPlN0dWRlbnQgbGVhdmVzIHdoaWxlIGV4YW1pbmVycyBjb252ZW5lPC9saT4KICAgICAgICA8bGk+R3JhZGUgZGV0ZXJtaW5hdGlvbjwvbGk+CiAgICAgICAgPGxpPlN0dWRlbnQgcmV0dXJucyBhbmQgZ3JhZGUgaXMgZGVsaXZlcmVkPC9saT4KICAgICAgICA8bGk+TWVldGluZyBhZGpvdXJuZWQ8L2xpPgogICAgPC9vbD4KICAgCiAgICA8aDQ+R3JhZGUgU2NhbGU8L2g0PgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPkEuPC9zdHJvbmc+IFBhc3Mgd2l0aCBEaXN0aW5jdGlvbjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Qi48L3N0cm9uZz4gUGFzcyB3aXRob3V0IFJldmlzaW9uPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5DLjwvc3Ryb25nPiBQYXNzIHdpdGggTWlub3IgUmV2aXNpb24gKDkwIGRheXMgdG8gc3VibWl0IHJldmlzaW9ucyk8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkQuPC9zdHJvbmc+IFBhc3Mgd2l0aCBNYWpvciBSZXZpc2lvbiAoMTgwIGRheXMgdG8gc3VibWl0IHJldmlzaW9ucyk8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkUuPC9zdHJvbmc+IEZhaWwgKHdpdGggcmVzdWJtaXNzaW9uIHBvc3NpYmxlKTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Ri48L3N0cm9uZz4gRmFpbCAod2l0aG91dCByZXN1Ym1pc3Npb24pPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PlN1Ym1pc3Npb248L2g0PgogICAgPHA+T25jZSBwYXNzZWQsIHRoZSBzdHVkZW50IG11c3Qgc3VibWl0IHRoZSBmaW5hbCBjb3B5IHdpdGhpbiAxODAgZGF5cy4gRmFpbHVyZSB0byBzdWJtaXQgd2l0aGluIDE4MCBkYXlzIHdpbGwgcmVzdWx0IGluIHRoZSBkZWdyZWUgYmVpbmcgcmV2b2tlZC48L3A+CiAgIAogICAgPGg0PlJlc2VhcmNoIEJleW9uZCAzIFllYXJzPC9oND4KICAgIDxwPklmIGRpc3NlcnRhdGlvbiByZXNlYXJjaCB0YWtlcyBsb25nZXIgdGhhbiAzIHllYXJzLCB0dWl0aW9uIGZlZXMgcmVtYWluIHRoZSBzYW1lIGFzIHRoZSBmaW5hbCB5ZWFyIG9mIHN0dWR5LiBBZnRlciBZZWFyIDQsIHRoZSBDaGFuY2VsbG9yIHdpbGwgYXNzZXNzIHRoZSBmZWFzaWJpbGl0eSBvZiBjb21wbGV0aW9uLjwvcD4KICAgCiAgICA8YSBocmVmPSIjdG9jIiBjbGFzcz0iYmFjay10by10b3AiPuKGkSBCYWNrIHRvIENvbnRlbnRzPC9hPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICA8aDI+U2VjdGlvbiA2OiBTdHVkZW50IEFncmVlbWVudHMgJmFtcDsgT2JsaWdhdGlvbnM8L2gyPgo8L2Rpdj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0ibGlhYmlsaXR5Ij4KICAgIDxoMz5FdmVudCBBdHRlbmRhbmNlICZhbXA7IExpYWJpbGl0eTwvaDM+CiAgICA8cD5XaGVuIGEgc3R1ZGVudCBhdHRlbmRzIGEgR0NBUyBldmVudCBpbiBwZXJzb24sIHRoZXkgZG8gc28gPHN0cm9uZz4iYXQgdGhlaXIgb3duIHJpc2suIjwvc3Ryb25nPjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkxpYWJpbGl0eSBXYWl2ZXI6PC9zdHJvbmc+IEJ5IGF0dGVuZGluZyBhbnkgR0NBUyBDb2xsZWdlIER1YmxpbiBvciBHbG9iYWwgQ2VudHJlIGZvciBBZHZhbmNlZCBTdHVkaWVzICgiR0NBUyIpIGV2ZW50IGluIHBlcnNvbiwgc3R1ZGVudHMgYWdyZWUgdGhhdCBpbiB0aGUgdW5leHBlY3RlZCBldmVudCB0aGF0IHRoZXkgYXJlIGluanVyZWQgb3IgaHVydCwgdGhleSB3aWxsIG5vdCBob2xkIEdDQVMgQ29sbGVnZSBEdWJsaW4gTGltaXRlZCBvciB0aGUgR2xvYmFsIENlbnRyZSBmb3IgQWR2YW5jZWQgU3R1ZGllcyAoIkdDQVMiKSByZXNwb25zaWJsZSBmb3IgYW55IGluanVyaWVzLCBkYW1hZ2VzLCBvciBsb3NzZXMgaW5jdXJyZWQuPC9wPgogICAgPC9kaXY+CiAgIAogICAgPHA+QWxsIHN0dWRlbnRzLCBmYWN1bHR5LCBhbmQgYXR0ZW5kZWVzIHdobyBhdHRlbmQgYW55IEdDQVMgQ29sbGVnZSBldmVudHMgaW4gcGVyc29uIG11c3QgZmlyc3Qgc2lnbiBhIExpYWJpbGl0eSBSZWxlYXNlIEZvcm0gYWNrbm93bGVkZ2luZyB0aGlzIHBvbGljeS48L3A+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0idHVpdGlvbi1wYXltZW50Ij4KICAgIDxoMz5UdWl0aW9uIFBheW1lbnQgT2JsaWdhdGlvbnM8L2gzPgogICAKICAgIDxkaXYgY2xhc3M9ImltcG9ydGFudC1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+UGF5bWVudCBSZXF1aXJlbWVudDo8L3N0cm9uZz4gU3R1ZGVudHMgYWdyZWUgdG8gcGF5IHRoZWlyIHR1aXRpb24gb24gdGltZSBhY2NvcmRpbmcgdG8gdGhlIHBheW1lbnQgc2NoZWR1bGUgZXN0YWJsaXNoZWQgdXBvbiBlbnJvbGxtZW50LjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxoND5Ob24tUGF5bWVudCBDb25zZXF1ZW5jZXM8L2g0PgogICAgPHA+U2hvdWxkIGEgc3R1ZGVudCBub3QgcGF5IHRoZWlyIHR1aXRpb24gYWZ0ZXIgcmVjZWl2aW5nIGEgd2FybmluZyBhbmQgYWZ0ZXIgbW9yZSB0aGFuIDxzdHJvbmc+NjAgZGF5czwvc3Ryb25nPiB3aXRob3V0IHByaW9yIGFwcHJvdmFsIGZyb20gdGhlIENoYW5jZWxsb3IsIHRoZXkgd2lsbCBiZSByZW1vdmVkIGZyb20gZW5yb2xsbWVudCBhbmQgZnJvbSBHQ0FTLjwvcD4KICAgCiAgICA8aDQ+VHVpdGlvbiBDb21taXRtZW50IEFmdGVyIEFjY2VwdGFuY2U8L2g0PgogICAgPHA+SWYgeW91IGFncmVlIHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBvdXIgYWNjZXB0YW5jZSBvZmZlciwgR0NBUyBuZWVkcyB0byByZWx5IG9uIHlvdSB0byBwYXkgZm9yIHlvdXIgdHVpdGlvbiBpbiBhIHRpbWVseSBtYW5uZXIgYXMgYWdyZWVkLiBUaGlzIGNvbW1pdG1lbnQgaXMgZXNzZW50aWFsIGZvciBHQ0FTIHRvIG1haW50YWluIGl0cyBvcGVyYXRpb25zIGFuZCBjb250aW51ZSBwcm92aWRpbmcgcXVhbGl0eSBlZHVjYXRpb24uPC9wPgogICAKICAgIDxkaXYgY2xhc3M9Indhcm5pbmctYm94Ij4KICAgICAgICA8cD48c3Ryb25nPkltcG9ydGFudDo8L3N0cm9uZz4gU2hvdWxkIHlvdSB3YW50IHRvIHN0b3AgeW91ciBzdHVkaWVzIGFmdGVyIDMwIGRheXMsIHlvdSBhcmUgc3RpbGwgb2JsaWdhdGVkIHRvIHBheSBmb3IgeW91ciBlbnRpcmUgdHVpdGlvbiBhbW91bnQgdGhhdCB5b3UgaGF2ZSBhZ3JlZWQgdG8uIFRoaXMgcG9saWN5IGVuc3VyZXMgdGhhdCBHQ0FTIGNhbiBhbGxvY2F0ZSByZXNvdXJjZXMgYXBwcm9wcmlhdGVseSBhbmQgbWFpbnRhaW4gaXRzIGNvbW1pdG1lbnQgdG8gYWxsIHN0dWRlbnRzLjwvcD4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9InJlY29yZGluZy1wb2xpY3kiPgogICAgPGgzPlJlY29yZGluZyAmYW1wOyBNZWRpYSBQb2xpY3k8L2gzPgogICAgPHA+R0NBUyByZWNvcmRzIG91ciBsZWN0dXJlcyBhbmQgZXZlbnRzIHRvIGVuc3VyZSBhbGwgc3R1ZGVudHMgaGF2ZSBhY2Nlc3MgdG8gZWR1Y2F0aW9uYWwgY29udGVudCByZWdhcmRsZXNzIG9mIHRoZWlyIGxvY2F0aW9uIG9yIHNjaGVkdWxlLjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5Db25zZW50IHRvIFJlY29yZGluZzo8L3N0cm9uZz4gQnkgcGFydGljaXBhdGluZyBpbiBHQ0FTIGV2ZW50cywgY291cnNlcywgb3Igc2VtaW5hcnMgb25saW5lIHZpYSBab29tIChvciBzaW1pbGFyIHBsYXRmb3JtcyksIHlvdSBhZ3JlZSB0byBhbGxvdyBHQ0FTIHRvIHJlY29yZCB0aGVzZSBzZXNzaW9ucyBhbmQgcHJvdmlkZSB0aGUgcmVjb3JkaW5ncyB0byBHQ0FTIHN0dWRlbnRzIGFuZCByZXNlYXJjaGVycyB3aG8gY291bGRuJ3QgcGFydGljaXBhdGUgZHVlIHRvIHRpbWUtem9uZSBpc3N1ZXMsIGhlYWx0aCBjb25jZXJucywgb3Igc2ltaWxhciBjaXJjdW1zdGFuY2VzLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxoND5XaGVyZSBSZWNvcmRpbmdzIEFyZSBTdG9yZWQ8L2g0PgogICAgPHA+R0NBUyBwb3N0cyBhbmQgc3RvcmVzIHJlY29yZGluZ3MgaW4gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5HQ0FTIENvbW11bml0eSBGb3J1bTwvbGk+CiAgICAgICAgPGxpPkNhbnZhcyBMZWFybmluZyBNYW5hZ2VtZW50IFN5c3RlbTwvbGk+CiAgICAgICAgPGxpPkdDQVMgWW91VHViZSBDaGFubmVsPC9saT4KICAgIDwvdWw+CiAgIAogICAgPHA+VGhlc2UgcmVjb3JkaW5ncyBhcmUgaW50ZW5kZWQgZm9yIGVkdWNhdGlvbmFsIHB1cnBvc2VzIGFuZCB0byBzdXBwb3J0IHRoZSBsZWFybmluZyBjb21tdW5pdHkgYXQgR0NBUy48L3A+CiAgIAogICAgPGEgaHJlZj0iI3RvYyIgY2xhc3M9ImJhY2stdG8tdG9wIj7ihpEgQmFjayB0byBDb250ZW50czwvYT4KPC9zZWN0aW9uPgoKPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgPGgyPlNlY3Rpb24gNzogR0NBUyBDb2xsZWdlIFBvbGljaWVzPC9oMj4KPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImRhdGEtcHJvdGVjdGlvbiI+CiAgICA8aDM+RGF0YSBQcm90ZWN0aW9uIGFuZCBSZXRlbnRpb24gUG9saWN5PC9oMz4KICAgIDxwPkdDQVMgQ29sbGVnZSBEdWJsaW4gTGltaXRlZCBpcyBjb21taXR0ZWQgdG8gcHJvdGVjdGluZyB0aGUgcHJpdmFjeSBhbmQgcGVyc29uYWwgZGF0YSBvZiBhbGwgc3R1ZGVudHMsIGZhY3VsdHksIHN0YWZmLCBhbmQgcGFydG5lcnMgaW4gYWNjb3JkYW5jZSB3aXRoIEdEUFIgYW5kIHRoZSBJcmlzaCBEYXRhIFByb3RlY3Rpb24gQWN0IDIwMTguPC9wPgogICAKICAgIDxoND5EYXRhIENvbnRyb2xsZXI8L2g0PgogICAgPHA+R0NBUyBDb2xsZWdlIER1YmxpbiBMaW1pdGVkIGFjdHMgYXMgdGhlIGRhdGEgY29udHJvbGxlciBmb3IgYWRtaW5pc3RyYXRpdmUgYW5kIG9wZXJhdGlvbmFsIGRhdGEuIEFjYWRlbWljIHJlY29yZHMgcmVsYXRlZCB0byBhY2NyZWRpdGF0aW9uLCB0cmFuc2NyaXB0cywgYW5kIGdyYWRlcyBhcmUgbWFuYWdlZCBzZXBhcmF0ZWx5IGJ5IFdvb2xmIFVuaXZlcnNpdHkuPC9wPgogICAKICAgIDxoND5Zb3VyIFJpZ2h0cyBVbmRlciBHRFBSPC9oND4KICAgIDx1bD4KICAgICAgICA8bGk+UmlnaHQgb2YgYWNjZXNzIChBcnRpY2xlIDE1KTwvbGk+CiAgICAgICAgPGxpPlJpZ2h0IHRvIHJlY3RpZmljYXRpb24gKEFydGljbGUgMTYpPC9saT4KICAgICAgICA8bGk+UmlnaHQgdG8gZXJhc3VyZSAoQXJ0aWNsZSAxNyk8L2xpPgogICAgICAgIDxsaT5SaWdodCB0byByZXN0cmljdGlvbiBvciBvYmplY3Rpb24gKEFydGljbGVzIDE44oCTMjEpPC9saT4KICAgICAgICA8bGk+UmlnaHQgdG8gZGF0YSBwb3J0YWJpbGl0eSAoQXJ0aWNsZSAyMCk8L2xpPgogICAgPC91bD4KICAgIDxwPlJlcXVlc3RzIGNhbiBiZSBzdWJtaXR0ZWQgdG8gPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAZ2Nhcy5pZSI+Y29udGFjdEBnY2FzLmllPC9hPi4gR0NBUyB3aWxsIHJlc3BvbmQgd2l0aGluIG9uZSBjYWxlbmRhciBtb250aC48L3A+CiAgIAogICAgPGg0PkRhdGEgUmV0ZW50aW9uIFBlcmlvZHM8L2g0PgogICAgPHRhYmxlPgogICAgICAgIDx0Ym9keT48dHI+CiAgICAgICAgICAgIDx0aD5DYXRlZ29yeTwvdGg+CiAgICAgICAgICAgIDx0aD5SZXRlbnRpb24gUGVyaW9kPC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlN0dWRlbnQgY29udGFjdCBhbmQgZW5yb2xtZW50IGRhdGE8L3RkPgogICAgICAgICAgICA8dGQ+VXAgdG8gNyB5ZWFycyBhZnRlciBjb21wbGV0aW9uL3dpdGhkcmF3YWw8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+RmluYW5jaWFsIGFuZCBpbnZvaWNpbmcgcmVjb3JkczwvdGQ+CiAgICAgICAgICAgIDx0ZD43IHllYXJzIChJcmlzaCB0YXggbGF3KTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5FbWFpbCBhbmQgaW5zdGl0dXRpb25hbCBhY2NvdW50IGRhdGE8L3RkPgogICAgICAgICAgICA8dGQ+RGVsZXRlZCB1cG9uIG9mZmljaWFsIHdpdGhkcmF3YWw8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+TGVhcm5pbmcgcGxhdGZvcm0gYW5kIGZvcnVtIHBvc3RzPC90ZD4KICAgICAgICAgICAgPHRkPkRlbGV0ZWQvYW5vbnltaXNlZCB3aXRoaW4gMTIgbW9udGhzIG9mIHdpdGhkcmF3YWw8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZXF1YWwtb3Bwb3J0dW5pdHkiPgogICAgPGgzPkVxdWFsIEVtcGxveW1lbnQgYW5kIExlYXJuaW5nIE9wcG9ydHVuaXR5IFBvbGljeTwvaDM+CiAgICA8cD5JdCBpcyB0aGUgcG9saWN5IG9mIEdDQVMgQ29sbGVnZSBEdWJsaW4gdG8gZW5zdXJlIGVxdWFsIGVtcGxveW1lbnQgYW5kIGxlYXJuaW5nIG9wcG9ydHVuaXRpZXMgd2l0aG91dCBkaXNjcmltaW5hdGlvbiBvciBoYXJhc3NtZW50IG9uIHRoZSBiYXNlcyBvZiByYWNlLCBjb2xvciwgbmF0aW9uYWwgb3JpZ2luLCByZWxpZ2lvbiwgc2V4LCBhZ2UsIGRpc2FiaWxpdHksIGNpdGl6ZW5zaGlwLCBtYXJpdGFsIHN0YXR1cyBvciBhbnkgb3RoZXIgY2hhcmFjdGVyaXN0aWMgcHJvdGVjdGVkIGJ5IGxhdy48L3A+CiAgIAogICAgPGRpdiBjbGFzcz0iaGlnaGxpZ2h0LWJveCI+CiAgICAgICAgPHA+VGhpcyBwb2xpY3kgcGVybWVhdGVzIGFsbCBkZWNpc2lvbnMsIGluY2x1ZGluZyB0aG9zZSBpbnZvbHZpbmcgZW1wbG95ZWUgY29tcGVuc2F0aW9uLCBhcHBsaWNhdGlvbiBhc3Nlc3NtZW50cywgYmVuZWZpdHMsIGhpcmluZywgcHJvbW90aW9uLCB0cmFpbmluZyBhbmQgZGV2ZWxvcG1lbnQsIGFuZCBvdGhlciB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBlbXBsb3ltZW50IGFuZCBsZWFybmluZy48L3A+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGlkPSJidWxseWluZyI+CiAgICA8aDM+UHJldmVudGlvbiBvZiBCdWxseWluZyBhbmQgSGFyYXNzbWVudDwvaDM+CiAgIAogICAgPGRpdiBjbGFzcz0iaW1wb3J0YW50LWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5aZXJvIFRvbGVyYW5jZSBQb2xpY3k6PC9zdHJvbmc+IEdDQVMgQ29sbGVnZSB3aWxsIGludmVzdGlnYXRlIHZpZ29yb3VzbHkgYW55IGFsbGVnYXRpb25zIG9mIGJ1bGx5aW5nIG9yIGhhcmFzc21lbnQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgbWF0dGVyIGhhcyBiZWVuIHJhaXNlZCBmb3JtYWxseSBvciBpbmZvcm1hbGx5LjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxoND5EZWZpbml0aW9uIG9mIEhhcmFzc21lbnQ8L2g0PgogICAgPHA+SGFyYXNzbWVudCBpcyBhbnkgY29uZHVjdCB3aGljaCBpcyB1bndhbnRlZCBieSB0aGUgcmVjaXBpZW50IGFuZCBpcyBjb25zaWRlcmVkIG9iamVjdGlvbmFibGUsIGNhdXNpbmcgaHVtaWxpYXRpb24sIG9mZmVuY2UsIGRpc3RyZXNzIG9yIG90aGVyIGRldHJpbWVudGFsIGVmZmVjdC4gVGhpcyBtYXkgaW5jbHVkZTo8L3A+CiAgICA8dWw+CiAgICAgICAgPGxpPjxzdHJvbmc+UGh5c2ljYWw6PC9zdHJvbmc+IENvbnRhY3QgcmFuZ2luZyBmcm9tIHRvdWNoaW5nIHRvIHNlcmlvdXMgYXNzYXVsdCwgZ2VzdHVyZXMsIGludGltaWRhdGlvbjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+VmVyYmFsOjwvc3Ryb25nPiBVbndlbGNvbWUgcmVtYXJrcywgc3VnZ2VzdGlvbnMsIG1hbGljaW91cyBnb3NzaXAsIGpva2VzLCBvZmZlbnNpdmUgbGFuZ3VhZ2U8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk5vbi12ZXJiYWw6PC9zdHJvbmc+IE9mZmVuc2l2ZSBsaXRlcmF0dXJlIG9yIHBpY3R1cmVzLCBncmFmZml0aSwgaXNvbGF0aW9uIG9yIGV4Y2x1c2lvbiBmcm9tIGFjdGl2aXRpZXM8L2xpPgogICAgPC91bD4KICAgCiAgICA8aDQ+RGVmaW5pdGlvbiBvZiBCdWxseWluZzwvaDQ+CiAgICA8cD5CdWxseWluZyBpcyB1c3VhbGx5IHJlcGVhdGVkIGFuZCBwZXJzaXN0ZW50IGJlaGF2aW91ciB3aGljaCBpcyBvZmZlbnNpdmUsIGFidXNpdmUsIGludGltaWRhdGluZywgbWFsaWNpb3VzIG9yIGluc3VsdGluZywgaW5jbHVkaW5nOjwvcD4KICAgIDx1bD4KICAgICAgICA8bGk+Q29uZHVjdCB3aGljaCBpcyBpbnRpbWlkYXRpbmcsIHBoeXNpY2FsbHkgYWJ1c2l2ZSBvciB0aHJlYXRlbmluZzwvbGk+CiAgICAgICAgPGxpPkNvbmR1Y3QgdGhhdCBkZW5pZ3JhdGVzLCByaWRpY3VsZXMgb3IgaHVtaWxpYXRlcyBhbiBpbmRpdmlkdWFsPC9saT4KICAgICAgICA8bGk+UGlja2luZyBvbiBvbmUgcGVyc29uIHdoZW4gdGhlcmUgaXMgYSBjb21tb24gcHJvYmxlbTwvbGk+CiAgICAgICAgPGxpPlNob3V0aW5nIGF0IGFuIGluZGl2aWR1YWwgdG8gZ2V0IHRoaW5ncyBkb25lPC9saT4KICAgICAgICA8bGk+U2V0dGluZyB1bnJlYWxpc3RpYyB0YXJnZXRzIG9yIGV4Y2Vzc2l2ZSB3b3JrbG9hZHM8L2xpPgogICAgICAgIDxsaT5DeWJlciBidWxseWluZyB2aWEgZW1haWwgb3Igc29jaWFsIG1lZGlhPC9saT4KICAgIDwvdWw+CiAgIAogICAgPGg0PlJlc29sdXRpb24gUHJvY2VzczwvaDQ+CiAgICA8cD5Db21wbGFpbmFudHMgYXJlIGVuY291cmFnZWQgdG8gdHJ5IGluZm9ybWFsIHJlc29sdXRpb24gZmlyc3QuIElmIHRoaXMgaXMgbm90IHBvc3NpYmxlIG9yIGFwcHJvcHJpYXRlLCBmb3JtYWwgY29tcGxhaW50cyBzaG91bGQgYmUgcmFpc2VkIHRvIFRoZSBFdGhpY3MgQ29tbWl0dGVlIHZpYSB0aGUgQ29tcGxhaW50IEZvcm0uPC9wPgo8L3NlY3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgaWQ9ImFpLXBvbGljeSI+CiAgICA8aDM+UG9saWN5IG9uIHRoZSBVc2Ugb2YgQXJ0aWZpY2lhbCBJbnRlbGxpZ2VuY2UgKEFJKSBpbiBBY2FkZW1pYyBXcml0aW5nPC9oMz4KICAgIDxwPkdDQVMgaXMgY29tbWl0dGVkIHRvIHByZXNlcnZpbmcgdGhlIGhpZ2hlc3Qgc3RhbmRhcmRzIG9mIGFjYWRlbWljIGludGVncml0eSwgb3JpZ2luYWxpdHksIGFuZCBnZW51aW5lIHNjaG9sYXJseSBpbnF1aXJ5LjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJpbXBvcnRhbnQtYm94Ij4KICAgICAgICA8aDQ+UHJvaGliaXRlZCBVc2VzIG9mIEFJPC9oND4KICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5EcmFmdGluZyBvciB3cml0aW5nIGFueSBwb3J0aW9uIG9mIGFzc2lnbm1lbnRzPC9saT4KICAgICAgICAgICAgPGxpPkdlbmVyYXRpbmcgYXJndW1lbnRzIG9yIGV4cGxhbmF0aW9uczwvbGk+CiAgICAgICAgICAgIDxsaT5Qcm9kdWNpbmcgb3IgZWRpdGluZyB0ZXh0IGludGVuZGVkIHRvIGFwcGVhciBhcyB0aGUgc3R1ZGVudCdzIG93biB3b3JrPC9saT4KICAgICAgICAgICAgPGxpPlJlcGhyYXNpbmcgb3IgcmV3cml0aW5nIGNvbnRlbnQ8L2xpPgogICAgICAgICAgICA8bGk+R2VuZXJhdGluZyBjaXRhdGlvbnMsIGJpYmxpb2dyYXBoaWVzLCBvciBsaXRlcmF0dXJlIHJldmlld3MgKHVubGVzcyBzcGVjaWZpY2FsbHkgcGVybWl0dGVkKTwvbGk+CiAgICAgICAgPC91bD4KICAgIDwvZGl2PgogICAKICAgIDxoND5QZXJtaXR0ZWQgVXNlcyBvZiBBSTwvaDQ+CiAgICA8dWw+CiAgICAgICAgPGxpPkxvY2F0aW5nIGJpYmxpb2dyYXBoaWMgcmVzb3VyY2VzPC9saT4KICAgICAgICA8bGk+Q2xhcmlmeWluZyBjb25jZXB0cyBpbiBhbiBleHBsYW5hdG9yeSBvciB0dXRvcmluZyBjYXBhY2l0eTwvbGk+CiAgICAgICAgPGxpPlJlY2VpdmluZyBndWlkYW5jZSBvbiBmb3JtYXR0aW5nIG9yIGNpdGF0aW9uIHN0eWxlczwvbGk+CiAgICAgICAgPGxpPkdlbmVyYXRpbmcgYSBiYXNpYyBvdXRsaW5lIHRlbXBsYXRlIHRoYXQgdGhlIHN0dWRlbnQgc2lnbmlmaWNhbnRseSByZXZpc2VzPC9saT4KICAgIDwvdWw+CiAgIAogICAgPHA+QW55IHBlcm1pdHRlZCB1c2UgbXVzdCBiZSBkaXNjbG9zZWQgaW4gYW4gPHN0cm9uZz5BSSBVc2UgU3RhdGVtZW50PC9zdHJvbmc+IGF0IHRoZSBlbmQgb2YgdGhlIHN1Ym1pdHRlZCB3b3JrLjwvcD4KICAgCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nLWJveCI+CiAgICAgICAgPHA+PHN0cm9uZz5WaW9sYXRpb25zOjwvc3Ryb25nPiBXaWxsIGJlIGhhbmRsZWQgaW4gYWNjb3JkYW5jZSB3aXRoIEdDQVMncyBBY2FkZW1pYyBJbnRlZ3JpdHkgYW5kIE1pc2NvbmR1Y3QgcHJvY2VkdXJlcy4gUmVwZWF0ZWQgb3Igc2VyaW91cyB2aW9sYXRpb25zIG1heSByZXN1bHQgaW4gc2FuY3Rpb25zLCBpbmNsdWRpbmcgcmV2aXNpb24gcmVxdWlyZW1lbnRzLCBwcm9iYXRpb24sIG9yIGRpc2Vucm9sbG1lbnQuPC9wPgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBpZD0iZGlzYWJpbGl0eSI+CiAgICA8aDM+UG9saWN5IENvbmNlcm5pbmcgRGlzYWJpbGl0eSBhbmQgQWNhZGVtaWMgQWNjb21tb2RhdGlvbjwvaDM+CiAgICA8cD5HQ0FTIENvbGxlZ2UgRHVibGluIGlzIGNvbW1pdHRlZCB0byBhZGRyZXNzaW5nIHRoZSBpc3N1ZXMgb2YgZGlzYWJpbGl0eSBpbiBvdXIgc3R1ZGVudCBwb3B1bGF0aW9uLjwvcD4KICAgCiAgICA8aDQ+QWNjb21tb2RhdGlvbiBQcm9jZXNzPC9oND4KICAgIDxvbD4KICAgICAgICA8bGk+Q29tcGxldGUgdGhlIERpc2FiaWxpdHkgRGlzY2xvc3VyZSBGb3JtPC9saT4KICAgICAgICA8bGk+UHJvdmlkZSBzdWZmaWNpZW50IGV2aWRlbmNlIHRvIHN1cHBvcnQgdGhlIGRpc2Nsb3NlZCBkaXNhYmlsaXR5IGZyb20gYSBoZWFsdGhjYXJlIHByb2Zlc3Npb25hbDwvbGk+CiAgICAgICAgPGxpPlRoZSBEZWFuIG9mIEFjYWRlbWljIEFmZmFpcnMgd2lsbCBkZXRlcm1pbmUgdGhlIGRlZ3JlZSBvZiBhY2FkZW1pYyBhY2NvbW1vZGF0aW9uPC9saT4KICAgICAgICA8bGk+VGhlIERpc2FiaWxpdHkgRGlzY2xvc3VyZSBGb3JtIHdpbGwgb25seSBiZSBzaGFyZWQgd2l0aCB0aGUgRGVhbiBvZiBTdHVkZW50IEFmZmFpcnMgYW5kIHRoZSBBY2FkZW1pYyBEaXNhYmlsaXRpZXMgQWNjb21tb2RhdGlvbiBDb21taXNzaW9uPC9saT4KICAgIDwvb2w+CiAgIAogICAgPGRpdiBjbGFzcz0iaW5mby1ib3giPgogICAgICAgIDxwPjxzdHJvbmc+R0NBUydzIENvbW1pdG1lbnQ6PC9zdHJvbmc+IEdDQVMgaXMgYXdhcmUgdGhhdCB0aGUgY29uY2VwdCBvZiBkaXNhYmlsaXR5IGhhcyBiZWVuIHNldmVyZWx5IGxpbWl0ZWQgYnkgYSBiaW5hcnkgY29uY2VwdHVhbGl6YXRpb24uIEN1cnJlbnQgcmVzZWFyY2ggc2hvd3MgdGhhdCB0aGUgd2F5cyBvZiBiZWluZyBkaXNhYmxlZCBhbmQgdGhlIGRlZ3JlZXMgb2YgZGlzYWJpbGl0eSBhcmUgaGlnaGx5IHZhcmlhYmxlLCBwb3RlbnRpYWxseSBpbmNsdWRpbmcgcGh5c2ljYWwsIGludGVsbGVjdHVhbCBjYXBhY2l0aWVzLCBhbmQgc29jaWFsIGZhY3RvcnMuIEdDQVMgaG9wZXMgdG8gY29udHJpYnV0ZSByZXNlYXJjaCBpbiB0aGlzIGZpZWxkLjwvcD4KICAgIDwvZGl2PgogICAKICAgIDxhIGhyZWY9IiN0b2MiIGNsYXNzPSJiYWNrLXRvLXRvcCI+4oaRIEJhY2sgdG8gQ29udGVudHM8L2E+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgIDxoMz5HQ0FTIFJlZnVuZCBQb2xpY3k8L2gzPgogICAgPHA+T25jZSBhbiBhcHBsaWNhbnQgcmVjZWl2ZXMgR0NBUydzIG9mZmljaWFsIGFjY2VwdGFuY2UgbGV0dGVyIHRoZXkgd2lsbCBoYXZlIDxzdHJvbmc+MTAgZGF5czwvc3Ryb25nPiB0byBkZWNpZGUgaWYgdGhleSBhZ3JlZSBvciBkaXNhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gT25jZSB0aGUgYXBwbGljYW50IGFjY2VwdHMgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoZXkgd2lsbCBiZSBnaXZlbiA8c3Ryb25nPjMwIGRheXM8L3N0cm9uZz4gdG8gYXNrIGZvciBhIHJlZnVuZCBtaW51cyB0aGUgYWRtaW5pc3RyYXRpb24gY29zdHMgYW5kIGZlZXMuIEFmdGVyIDMwIGRheXMgdGhlcmUgYXJlIG5vIHJlZnVuZHMuPC9wPgo8L3NlY3Rpb24+Cgo8Zm9vdGVyIGNsYXNzPSJoYW5kYm9vay1mb290ZXIiPgogICAgPGRpdiBjbGFzcz0iaGFuZGJvb2stZm9vdGVyLWlubmVyIj4KICAgICAgICA8cD48c3Ryb25nPsKpIEdDQVMgQ29sbGVnZSBEdWJsaW4sIEx0ZC4gMjAyNTwvc3Ryb25nPjwvcD4KICAgICAgICA8cD5BbGwgUmlnaHRzIFJlc2VydmVkPC9wPgogICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyI+CiAgICAgICAgICAgIDxlbT4iT3V0IG9mIEFzaGVzLCBhIE5ldyBMaWdodCI8L2VtPjxicj4KICAgICAgICAgICAgPGVtPiJJcyBMdWFpdGhyZWFjaCBTb2xhcyBOdWEiPC9lbT4KICAgICAgICA8L3A+CiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDMwcHg7IGZvbnQtc2l6ZTogMC45ZW07Ij4KICAgICAgICAgICAgR0NBUyByZXNlcnZlcyB0aGUgcmlnaHQgdG8gbW9kaWZ5IHByb2dyYW1tZXMsIHBvbGljaWVzLCBjb3Vyc2Ugb2ZmZXJpbmdzLCByZXF1aXJlbWVudHMsIGFuZCBhbnkgb3RoZXIgbWF0dGVycyBvdXRsaW5lZCBpbiB0aGlzIEhhbmRib29rIGF0IGFueSB0aW1lIGFuZCB3aXRob3V0IHByaW9yIG5vdGljZS4KICAgICAgICA8L3A+CiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICAgICAgPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAZ2Nhcy5pZSI+Y29udGFjdEBnY2FzLmllPC9hPiB8IDxhIGhyZWY9Imh0dHBzOi8vZ2Nhcy5pZSIgdGFyZ2V0PSJfYmxhbmsiPmdjYXMuaWU8L2E+CiAgICAgICAgPC9wPgogICAgPC9kaXY+CjwvZm9vdGVyPgoKPC9kaXY+Abulq4ILCN7kAb0Ba88BjKsBAAQACwEBAEKgAdEBAQ==\",\"updateId\":231365962}","publish_to_discourse":"","publish_post_category":"","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","footnotes":""},"class_list":["post-242","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>GCAS Student Handbook - The Global Centre for Advanced Studies<\/title>\n<meta name=\"description\" content=\"Access the GCAS student handbook for academic policies, grading standards, code of conduct, and everything you need to navigate your degree program.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gcas.ie\/de\/handbook\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GCAS Student Handbook\" \/>\n<meta property=\"og:description\" content=\"Access the GCAS student handbook for academic policies, grading standards, code of conduct, and everything you need to navigate your degree program.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gcas.ie\/de\/handbook\/\" \/>\n<meta property=\"og:site_name\" content=\"The Global Centre for Advanced Studies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/globalcenterforadvancedstudies\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-13T16:31:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/gcas.ie\/wp-content\/uploads\/2025\/12\/social-share-website.png?fit=1200%2C675&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"19\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gcas.ie\\\/handbook\\\/\",\"url\":\"https:\\\/\\\/gcas.ie\\\/handbook\\\/\",\"name\":\"GCAS Student Handbook - The Global Centre for Advanced Studies\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gcas.ie\\\/#website\"},\"datePublished\":\"2025-12-11T13:29:54+00:00\",\"dateModified\":\"2026-04-13T16:31:37+00:00\",\"description\":\"Access the GCAS student handbook for academic policies, grading standards, code of conduct, and everything you need to navigate your degree program.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gcas.ie\\\/handbook\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gcas.ie\\\/handbook\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gcas.ie\\\/handbook\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gcas.ie\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GCAS Student Handbook\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gcas.ie\\\/#website\",\"url\":\"https:\\\/\\\/gcas.ie\\\/\",\"name\":\"The Global Centre for Advanced Studies\",\"description\":\"The World\u2019s First, Global Debt-Free, Accredited College Owned by Faculty and Graduates.\",\"publisher\":{\"@id\":\"https:\\\/\\\/gcas.ie\\\/#organization\"},\"alternateName\":\"GCAS College\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gcas.ie\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gcas.ie\\\/#organization\",\"name\":\"The Global Centre for Advanced Studies\",\"alternateName\":\"GCAS\",\"url\":\"https:\\\/\\\/gcas.ie\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/gcas.ie\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/gcas.ie\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Untitled-design-2.png?fit=1080%2C1080&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/gcas.ie\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Untitled-design-2.png?fit=1080%2C1080&ssl=1\",\"width\":1080,\"height\":1080,\"caption\":\"The Global Centre for Advanced Studies\"},\"image\":{\"@id\":\"https:\\\/\\\/gcas.ie\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/globalcenterforadvancedstudies\\\/\",\"https:\\\/\\\/www.instagram.com\\\/gcas.ie\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/school\\\/the-global-center-for-advanced-studies\\\/?viewAsMember=true\"],\"description\":\"GCAS College Dublin is the world's first debt-free, EU-accredited online college, offering cooperatively owned BA, MA, and PhD degrees in philosophy, psychoanalysis, theology, social sciences, law, and natural sciences to students in 80+ countries.\",\"email\":\"contact@gcas.ie\",\"telephone\":\"+353 87 754 1417\",\"legalName\":\"GCAS College Dublin, LTD\",\"foundingDate\":\"2013-08-22\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"GCAS Student Handbook - The Global Centre for Advanced Studies","description":"Access the GCAS student handbook for academic policies, grading standards, code of conduct, and everything you need to navigate your degree program.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gcas.ie\/de\/handbook\/","og_locale":"de_DE","og_type":"article","og_title":"GCAS Student Handbook","og_description":"Access the GCAS student handbook for academic policies, grading standards, code of conduct, and everything you need to navigate your degree program.","og_url":"https:\/\/gcas.ie\/de\/handbook\/","og_site_name":"The Global Centre for Advanced Studies","article_publisher":"https:\/\/www.facebook.com\/globalcenterforadvancedstudies\/","article_modified_time":"2026-04-13T16:31:37+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/i0.wp.com\/gcas.ie\/wp-content\/uploads\/2025\/12\/social-share-website.png?fit=1200%2C675&ssl=1","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"19\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/gcas.ie\/handbook\/","url":"https:\/\/gcas.ie\/handbook\/","name":"GCAS Student Handbook - The Global Centre for Advanced Studies","isPartOf":{"@id":"https:\/\/gcas.ie\/#website"},"datePublished":"2025-12-11T13:29:54+00:00","dateModified":"2026-04-13T16:31:37+00:00","description":"Access the GCAS student handbook for academic policies, grading standards, code of conduct, and everything you need to navigate your degree program.","breadcrumb":{"@id":"https:\/\/gcas.ie\/handbook\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gcas.ie\/handbook\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gcas.ie\/handbook\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gcas.ie\/"},{"@type":"ListItem","position":2,"name":"GCAS Student Handbook"}]},{"@type":"WebSite","@id":"https:\/\/gcas.ie\/#website","url":"https:\/\/gcas.ie\/","name":"The Global Centre for Advanced Studies","description":"Die erste schuldenfreie, akkreditierte Hochschule der Welt, die im Besitz der Fakult\u00e4t und der Absolventen ist.","publisher":{"@id":"https:\/\/gcas.ie\/#organization"},"alternateName":"GCAS College","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gcas.ie\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/gcas.ie\/#organization","name":"The Global Centre for Advanced Studies","alternateName":"GCAS","url":"https:\/\/gcas.ie\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/gcas.ie\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/gcas.ie\/wp-content\/uploads\/2025\/12\/Untitled-design-2.png?fit=1080%2C1080&ssl=1","contentUrl":"https:\/\/i0.wp.com\/gcas.ie\/wp-content\/uploads\/2025\/12\/Untitled-design-2.png?fit=1080%2C1080&ssl=1","width":1080,"height":1080,"caption":"The Global Centre for Advanced Studies"},"image":{"@id":"https:\/\/gcas.ie\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/globalcenterforadvancedstudies\/","https:\/\/www.instagram.com\/gcas.ie\/","https:\/\/www.linkedin.com\/school\/the-global-center-for-advanced-studies\/?viewAsMember=true"],"description":"GCAS College Dublin is the world's first debt-free, EU-accredited online college, offering cooperatively owned BA, MA, and PhD degrees in philosophy, psychoanalysis, theology, social sciences, law, and natural sciences to students in 80+ countries.","email":"contact@gcas.ie","telephone":"+353 87 754 1417","legalName":"GCAS College Dublin, LTD","foundingDate":"2013-08-22","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}}]}},"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PesgkL-3U","jetpack-related-posts":[{"id":544,"url":"https:\/\/gcas.ie\/de\/complaint-form\/","url_meta":{"origin":242,"position":0},"title":"Complaint Form","author":"Creston Davis","date":"Dezember 15, 2025","format":false,"excerpt":"GCAS College Dublin & all of The Global Center for Advanced Studies entities strive to provide the highest quality education in the world. Our track record is superb having serviced thousands of participants, students, professors and researchers. However, at times situations may arise where complaints are needed. This is the\u2026","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2234,"url":"https:\/\/gcas.ie\/de\/the-gcas-difference\/","url_meta":{"origin":242,"position":1},"title":"Warum GCAS w\u00e4hlen","author":"crestondavis","date":"Dezember 29, 2025","format":false,"excerpt":"The GCAS Difference The GCAS Difference A debt-free, co-owned, globally networked model of higher education\u2014built for serious study, original research, and public-facing intellectual life. GCAS was created in direct opposition to the dominant \"debt university\" model\u2014an increasingly financialized system that treats students as revenue streams, turns learning into a product,\u2026","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1915,"url":"https:\/\/gcas.ie\/de\/gcas-florence\/","url_meta":{"origin":242,"position":2},"title":"GCAS Florence","author":"crestondavis","date":"Dezember 24, 2025","format":false,"excerpt":"Go to GCAS Florence Seminars Page","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2181,"url":"https:\/\/gcas.ie\/de\/student-register\/","url_meta":{"origin":242,"position":3},"title":"GCAS Student Registration","author":"crestondavis","date":"Dezember 28, 2025","format":false,"excerpt":"","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1899,"url":"https:\/\/gcas.ie\/de\/student-login\/","url_meta":{"origin":242,"position":4},"title":"GCAS Student Portal","author":"crestondavis","date":"Dezember 24, 2025","format":false,"excerpt":"","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2788,"url":"https:\/\/gcas.ie\/de\/become-a-gcas-researcher\/","url_meta":{"origin":242,"position":5},"title":"Werden Sie ein GCAS-Forscher","author":"crestondavis","date":"Januar 3, 2026","format":false,"excerpt":"Become a GCAS Researcher Join a Global Community of Critical Thinkers The Global Center for Advanced Studies invites scholars, intellectuals, and independent researchers to join our worldwide network of critical thinkers. As a GCAS Researcher, you become part of a vibrant academic community dedicated to rigorous inquiry, interdisciplinary collaboration, and\u2026","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/gcas.ie\/de\/wp-json\/wp\/v2\/pages\/242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gcas.ie\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gcas.ie\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gcas.ie\/de\/wp-json\/wp\/v2\/users\/8678545"}],"replies":[{"embeddable":true,"href":"https:\/\/gcas.ie\/de\/wp-json\/wp\/v2\/comments?post=242"}],"version-history":[{"count":32,"href":"https:\/\/gcas.ie\/de\/wp-json\/wp\/v2\/pages\/242\/revisions"}],"predecessor-version":[{"id":3915,"href":"https:\/\/gcas.ie\/de\/wp-json\/wp\/v2\/pages\/242\/revisions\/3915"}],"wp:attachment":[{"href":"https:\/\/gcas.ie\/de\/wp-json\/wp\/v2\/media?parent=242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}