Generated banner for Number Details
Generated logo for Number Details

Number Details

Meng ToCommunityCreated by Meng To

  • Skill
  • Guidelines
  • Design and creative
  • MIT
  • Medium risk

From the author

Add decorative 01, 02, 03 numeric detail markers.
— the description by Meng To

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The Number Details skill provides a structured approach to adding subtle, architectural numeric markers to digital interfaces. By using consistent two-digit formatting (01, 02, 03), designers can create a sense of order and rhythm in layouts such as timelines, feature lists, or card-based galleries without overwhelming the primary content.

What it does

  • Defines a standard for two-digit numeric markers.
  • Provides placement strategies for visual consistency.
  • Offers guidance on typography and contrast for decorative elements.
  • Establishes rules for maintaining visual hierarchy.

When to use it

  • When you need to add visual structure to a series of items.
  • When designing timelines or process steps.
  • When creating card-based layouts that require subtle numbering.
  • When you want to improve the editorial rhythm of a page.

Advantages

  • Improves visual organization and layout clarity.
  • Ensures consistent design language across interface elements.
  • Prevents decorative elements from distracting from primary content.
  • Creates a professional, architectural aesthetic.

Usage examples

“How should I style the numbers for a three-step process section?”
The skill advises using two-digit markers (01, 02, 03) with low-contrast, mono, or narrow typography, placed in consistent positions like section gutters or beside headings.
“Where should I place decorative numbers in a card layout?”
The skill recommends placing them in predictable locations such as card corners to maintain a clean, architectural look without competing with the card's main content.

Install

Documentation by Meng To

Number Details Skill

Use When

  • A section needs subtle 01, 02, 03 markers for process steps, feature groups, cards, or editorial rhythm.

Workflow

  1. Add numeric markers as secondary visual structure, not primary content.

  2. Use two-digit numbers such as 01, 02, 03 for consistency.

  3. Place markers in predictable positions: card corners, section gutters, timeline rails, or beside headings.

  4. Use mono or narrow uppercase typography with low contrast so the detail feels architectural.

  5. Keep spacing and alignment consistent across all numbered elements.

Guardrails

  • Do not let decorative numbers compete with headings or CTAs.

  • Do not mix numbering styles in the same section.

Files

demo/index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="neuform-sandboxed-demo" content="1">
  <meta http-equiv="Content-Security-Policy" content="default-src 'none'; connect-src 'self'; frame-src 'self'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; object-src 'none'">
  <title>Sandboxed Neuform demo</title>
  <style>
    html, body, iframe { width: 100%; height: 100%; margin: 0; border: 0; }
    body { overflow: hidden; background: #0b0b0b; }
    iframe { display: block; background: white; }
    .error { box-sizing: border-box; min-height: 100%; padding: 32px; color: #fff; font: 16px/1.5 system-ui, sans-serif; }
  </style>
</head>
<body>
  <iframe id="neuform-demo" title="Sandboxed Neuform design demo" sandbox="allow-scripts" referrerpolicy="no-referrer"></iframe>
  <script>
    const encodedHtml = "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJkZWZhdWx0LXNyYyAnbm9uZSc7IGJhc2UtdXJpICdub25lJzsgY29ubmVjdC1zcmMgJ25vbmUnOyBmb250LXNyYyBkYXRhOiBodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tOyBmb3JtLWFjdGlvbiAnbm9uZSc7IGZyYW1lLXNyYyAnbm9uZSc7IGltZy1zcmMgYmxvYjo7IG1lZGlhLXNyYyBibG9iOjsgbmF2aWdhdGUtdG8gJ25vbmUnOyBvYmplY3Qtc3JjICdub25lJzsgc2NyaXB0LXNyYyAndW5zYWZlLWlubGluZScgX19ORVVGT1JNX1JVTlRJTUVfU09VUkNFU19fOyBzdHlsZS1zcmMgJ3Vuc2FmZS1pbmxpbmUnIGh0dHBzOi8vYXBpLmZvbnRzaGFyZS5jb20gaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbTsgd29ya2VyLXNyYyAnbm9uZSciPgo8c2NyaXB0IGRhdGEtbmV1Zm9ybS1hc3NldC1ib290c3RyYXA+CigoKSA9PiB7CiAgbGV0IHJlY2VpdmVkID0gZmFsc2U7CiAgY29uc3Qgb2JqZWN0VXJscyA9IFtdOwogIGNvbnN0IHJlcGxhY2VBbGwgPSAodmFsdWUsIHJlcGxhY2VtZW50cykgPT4gewogICAgbGV0IG5leHQgPSBTdHJpbmcodmFsdWUgfHwgIiIpOwogICAgZm9yIChjb25zdCBbZmlsZSwgb2JqZWN0VXJsXSBvZiByZXBsYWNlbWVudHMpIG5leHQgPSBuZXh0LnNwbGl0KGZpbGUpLmpvaW4ob2JqZWN0VXJsKTsKICAgIHJldHVybiBuZXh0OwogIH07CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKICAgIGlmIChyZWNlaXZlZCB8fCBldmVudC5zb3VyY2UgIT09IHBhcmVudCB8fCBldmVudC5kYXRhPy50eXBlICE9PSAibmV1Zm9ybS1hc3NldHMtdjEiKSByZXR1cm47CiAgICByZWNlaXZlZCA9IHRydWU7CiAgICBjb25zdCByZXBsYWNlbWVudHMgPSBbXTsKICAgIGZvciAoY29uc3QgYXNzZXQgb2YgZXZlbnQuZGF0YS5hc3NldHMgfHwgW10pIHsKICAgICAgaWYgKCFhc3NldCB8fCB0eXBlb2YgYXNzZXQuZmlsZSAhPT0gInN0cmluZyIgfHwgdHlwZW9mIGFzc2V0LmJhc2U2NCAhPT0gInN0cmluZyIpIGNvbnRpbnVlOwogICAgICBjb25zdCBiaW5hcnkgPSBhdG9iKGFzc2V0LmJhc2U2NCk7CiAgICAgIGNvbnN0IGJ5dGVzID0gVWludDhBcnJheS5mcm9tKGJpbmFyeSwgKGNoYXJhY3RlcikgPT4gY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCkpOwogICAgICBjb25zdCBvYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtieXRlc10sIHsgdHlwZTogYXNzZXQuY29udGVudFR5cGUgfHwgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgfSkpOwogICAgICBvYmplY3RVcmxzLnB1c2gob2JqZWN0VXJsKTsKICAgICAgcmVwbGFjZW1lbnRzLnB1c2goW2Fzc2V0LmZpbGUsIG9iamVjdFVybF0pOwogICAgfQogICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSkgewogICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgWyJzcmMiLCAicG9zdGVyIiwgInNyY3NldCIsICJzdHlsZSJdKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShuYW1lKTsKICAgICAgICBpZiAodmFsdWUpIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHJlcGxhY2VBbGwodmFsdWUsIHJlcGxhY2VtZW50cykpOwogICAgICB9CiAgICB9CiAgICBmb3IgKGNvbnN0IHN0eWxlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIikpIHsKICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSByZXBsYWNlQWxsKHN0eWxlLnRleHRDb250ZW50LCByZXBsYWNlbWVudHMpOwogICAgfQogIH0pOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsICgpID0+IHsKICAgIGZvciAoY29uc3Qgb2JqZWN0VXJsIG9mIG9iamVjdFVybHMpIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTsKICB9LCB7IG9uY2U6IHRydWUgfSk7Cn0pKCk7Cjwvc2NyaXB0PgoKPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPkNlZGFyIExvZGdlcyB8IFdoZXJlIHRoZSBNb3VudGFpbnMgQnJlYXRoZTwvdGl0bGU+CiAgICAKICAgIDwhLS0gRm9udHMgLS0+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20iPgogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UGxheWZhaXIrRGlzcGxheTppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MSw0MDA7MSw1MDAmZmFtaWx5PVNvdXJjZStTYW5zKzM6aXRhbCx3Z2h0QDAsMzAwOzAsNDAwOzEsMzAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIAogICAgPCEtLSBUYWlsd2luZCBDU1MgLS0+CiAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vYXNzZXRzL3J1bnRpbWUvcnVudGltZS1jY2M4ODk0YjM0MTgtcnVudGltZS5qcyI+PC9zY3JpcHQ+CiAgICAKICAgIDwhLS0gSWNvbmlmeSAtLT4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLTE2M2ViZDA4N2NmYy1pY29uaWZ5LWljb24tbWluLmpzIj48L3NjcmlwdD4KICAgIAogICAgPCEtLSBHU0FQICYgVGhyZWUuanMgLS0+CiAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vYXNzZXRzL3J1bnRpbWUvcnVudGltZS0wMjcwNTFlZmZhNDctZ3NhcC1taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Fzc2V0cy9ydW50aW1lL3J1bnRpbWUtNjg5Y2E4ZGRhNDRjLXNjcm9sbHRyaWdnZXItbWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLTI1MDIzYjUyMWQ3Ny10aHJlZS1taW4uanMiPjwvc2NyaXB0PgoKICAgIDxzdHlsZT4KICAgICAgICAvKiBUeXBvZ3JhcGh5IFN5c3RlbSAqLwogICAgICAgIC5mb250LXBsYXlmYWlyIHsgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7IH0KICAgICAgICAuZm9udC1zb3VyY2UgeyBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIDMnLCBzYW5zLXNlcmlmOyB9CiAgICAgICAgCiAgICAgICAgLyogU21vb3RoIFNjcm9sbGluZyAmIFV0aWxpdGllcyAqLwogICAgICAgIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfQogICAgICAgIC5oaWRlLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5OiBub25lOyB9CiAgICAgICAgLmhpZGUtc2Nyb2xsYmFyIHsgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IH0KICAgICAgICAKICAgICAgICAvKiBDaW5lbWF0aWMgS2VuIEJ1cm5zICovCiAgICAgICAgQGtleWZyYW1lcyBzbG93LXpvb20gewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wKTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTsgfQogICAgICAgIH0KICAgICAgICAuYW5pbWF0ZS16b29tIHsgYW5pbWF0aW9uOiBzbG93LXpvb20gMjBzIGVhc2Utb3V0IGZvcndhcmRzOyB9CiAgICAgICAgCiAgICAgICAgLyogVGlja2VyIEFuaW1hdGlvbiAqLwogICAgICAgIEBrZXlmcmFtZXMgdGlja2VyIHsKICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfQogICAgICAgIH0KICAgICAgICAuYW5pbWF0ZS10aWNrZXIgeyBhbmltYXRpb246IHRpY2tlciAzMHMgbGluZWFyIGluZmluaXRlOyB9CgogICAgICAgIC8qIEN1c3RvbSBGb3JtIFN0eWxpbmcgdG8gcmVtb3ZlIGRlZmF1bHQgd2Via2l0IHN0eWxlcyAqLwogICAgICAgIGlucHV0W3R5cGU9ImRhdGUiXTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC8qIEFtYmllbnQgUmF5cyBCYWNrZ3JvdW5kICovCiAgICAgICAgLmFtYmllbnQtcmF5LTEgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNlbnRlciwgcmdiYSgxOTcsIDE2MCwgODksIDAuMTUpIDAlLCB0cmFuc3BhcmVudCA3MCUpOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHkgY2xhc3M9ImZvbnQtc291cmNlIGZvbnQtbGlnaHQgYmctWyNGREZCRjddIHRleHQtWyMyQzJDMkNdIGFudGlhbGlhc2VkIHNlbGVjdGlvbjpiZy1bIzZFNEIzQV0gc2VsZWN0aW9uOnRleHQtWyNGREZCRjddIG92ZXJmbG93LXgtaGlkZGVuIj4KCiAgICA8IS0tIEdsb2JhbCBOYXZpZ2F0aW9uIC0tPgogICAgPG5hdiBpZD0ibmF2YmFyIiBjbGFzcz0iZml4ZWQgdG9wLTAgbGVmdC0wIHctZnVsbCB6LTUwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMCBweS02IHB4LTYgbWQ6cHgtMTIgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGJvcmRlci1iIGJvcmRlci13aGl0ZS8xMCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPgogICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOnRyZWUtbGluZWFyIiBjbGFzcz0idGV4dC0yeGwgdGV4dC1bI0ZERkJGN10gbG9nby10ZXh0IHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTMwMCI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb250LXBsYXlmYWlyIHRleHQtbGcgdHJhY2tpbmctd2lkZXN0IHRleHQtWyNGREZCRjddIGxvZ28tdGV4dCB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0zMDAgdXBwZXJjYXNlIj5DZWRhciBMb2RnZXM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iaGlkZGVuIGxnOmZsZXggaXRlbXMtY2VudGVyIGdhcC04IGZvbnQtc291cmNlIHRleHQtc20gdHJhY2tpbmctd2lkZXN0IHVwcGVyY2FzZSB0ZXh0LVsjRkRGQkY3XSBuYXYtbGlua3MgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMzAwIj4KICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImhvdmVyOnRleHQtWyNDNUEwNTldIHRyYW5zaXRpb24tY29sb3JzIHJlbGF0aXZlIGdyb3VwIj4KICAgICAgICAgICAgICAgIFN1aXRlcwogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFic29sdXRlIC1ib3R0b20tMSBsZWZ0LTAgdy0wIGgtWzFweF0gYmctWyNDNUEwNTldIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBncm91cC1ob3Zlcjp3LWZ1bGwiPjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC1bI0M1QTA1OV0gdHJhbnNpdGlvbi1jb2xvcnMgcmVsYXRpdmUgZ3JvdXAiPgogICAgICAgICAgICAgICAgRXhwZXJpZW5jZXMKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhYnNvbHV0ZSAtYm90dG9tLTEgbGVmdC0wIHctMCBoLVsxcHhdIGJnLVsjQzVBMDU5XSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZ3JvdXAtaG92ZXI6dy1mdWxsIj48L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImhvdmVyOnRleHQtWyNDNUEwNTldIHRyYW5zaXRpb24tY29sb3JzIHJlbGF0aXZlIGdyb3VwIj4KICAgICAgICAgICAgICAgIERpbmluZwogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFic29sdXRlIC1ib3R0b20tMSBsZWZ0LTAgdy0wIGgtWzFweF0gYmctWyNDNUEwNTldIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBncm91cC1ob3Zlcjp3LWZ1bGwiPjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC1bI0M1QTA1OV0gdHJhbnNpdGlvbi1jb2xvcnMgcmVsYXRpdmUgZ3JvdXAiPgogICAgICAgICAgICAgICAgQ29udGFjdAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFic29sdXRlIC1ib3R0b20tMSBsZWZ0LTAgdy0wIGgtWzFweF0gYmctWyNDNUEwNTldIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBncm91cC1ob3Zlcjp3LWZ1bGwiPjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8YnV0dG9uIGNsYXNzPSJoaWRkZW4gbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgYmctWyM2RTRCM0FdIHRleHQtWyNGREZCRjddIHB4LTYgcHktMi41IHJvdW5kZWQtZnVsbCB0ZXh0LXhzIHRyYWNraW5nLXdpZGVzdCB1cHBlcmNhc2UgaG92ZXI6YmctWyM1QTNEMkZdIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBob3ZlcjpzY2FsZS0xMDUgc2hhZG93LVswcHhfMnB4XzNweF8tMXB4X3JnYmEoMCwwLDAsMC4xKSwwcHhfMXB4XzBweF8wcHhfcmdiYSgyNSwyOCwzMywwLjAyKSwwcHhfMHB4XzBweF8xcHhfcmdiYSgyNSwyOCwzMywwLjA4KV0iPgogICAgICAgICAgICBSZXNlcnZlCiAgICAgICAgPC9idXR0b24+CgogICAgICAgIDxidXR0b24gY2xhc3M9ImxnOmhpZGRlbiB0ZXh0LVsjRkRGQkY3XSB0ZXh0LTN4bCBsb2dvLXRleHQiPgogICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOmhhbWJ1cmdlci1tZW51LWxpbmVhciI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgPC9idXR0b24+CiAgICA8L25hdj4KCiAgICA8IS0tIFBhZ2UgMTogSG9tZXBhZ2UgSGVybyAtLT4KICAgIDxoZWFkZXIgY2xhc3M9InJlbGF0aXZlIGgtWzEwMHN2aF0gdy1mdWxsIGZsZXggZmxleC1jb2wganVzdGlmeS1lbmQgYmctWyMxMDIwMThdIG92ZXJmbG93LWhpZGRlbiI+CiAgICAgICAgPCEtLSBDaW5lbWF0aWMgQmFja2dyb3VuZCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBpbnNldC0wIHotMCBvdmVyZmxvdy1oaWRkZW4iPgogICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL3BhZ2UtMDEtcGhvdG8tMTU0MjIyNDU2Ni02ZTg1ZjJlNjc3MmYuanBnIiBhbHQ9Ik1pc3R5IE1vdW50YWluIEZvcmVzdCIgY2xhc3M9InctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIG9wYWNpdHktODAgYW5pbWF0ZS16b29tIG9yaWdpbi1jZW50ZXIiPgogICAgICAgICAgICA8IS0tIEdyYWRpZW50cyBmb3IgZGVwdGggYW5kIHRleHQgcmVhZGFiaWxpdHkgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGluc2V0LTAgYmctZ3JhZGllbnQtdG8tdCBmcm9tLVsjMTAyMDE4XS85MCB2aWEtWyMxMDIwMThdLzIwIHRvLXRyYW5zcGFyZW50Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgaW5zZXQtMCBiZy1ncmFkaWVudC10by1yIGZyb20tWyMxMDIwMThdLzYwIHRvLXRyYW5zcGFyZW50Ij48L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBIZXJvIFRleHQgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUgei0xMCBweC02IG1kOnB4LTEyIHBiLTEyIHctZnVsbCBtYXgtdy03eGwgbXgtYXV0byI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdzYXAtcmV2ZWFsIG9wYWNpdHktMCB0cmFuc2xhdGUteS04Ij4KICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0iZm9udC1wbGF5ZmFpciB0ZXh0LTV4bCBtZDp0ZXh0LTd4bCBsZzp0ZXh0LTh4bCB0cmFja2luZy10aWdodCB0ZXh0LVsjRkRGQkY3XSBtYi00IiBzdHlsZT0idGV4dC1zaGFkb3c6IDAgNHB4IDI0cHggcmdiYSgwLDAsMCwwLjQpOyI+CiAgICAgICAgICAgICAgICAgICAgQ2VkYXIgTG9kZ2VzCiAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtc291cmNlIHRleHQteHMgbWQ6dGV4dC1zbSB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LVsjQzVBMDU5XSI+CiAgICAgICAgICAgICAgICAgICAgV2hlcmUgdGhlIG1vdW50YWlucyBicmVhdGhlCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEludGVncmF0ZWQgQm9va2luZyBGb3JtIFNoZWxsIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIHotMjAgdy1mdWxsIHB4LTQgbWQ6cHgtMTIgcGItNiBtZDpwYi0xMiBtYXgtdy03eGwgbXgtYXV0byBnc2FwLXJldmVhbCBvcGFjaXR5LTAgdHJhbnNsYXRlLXktOCBkZWxheS0yMDAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLVsxcHhdIHJvdW5kZWQtMnhsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20td2hpdGUvMjAgdmlhLXdoaXRlLzUgdG8tdHJhbnNwYXJlbnQgc2hhZG93LVswXzIuOHB4XzIuMnB4X3JnYmEoMCxfMCxfMCxfMC4wMzQpLF8wXzYuN3B4XzUuM3B4X3JnYmEoMCxfMCxfMCxfMC4wNDgpLF8wXzEyLjVweF8xMHB4X3JnYmEoMCxfMCxfMCxfMC4wNiksXzBfMjIuM3B4XzE3LjlweF9yZ2JhKDAsXzAsXzAsXzAuMDcyKSxfMF8xMDBweF84MHB4X3JnYmEoMCxfMCxfMCxfMC4xMildIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLVsjMUEyRjI0XS84MCBiYWNrZHJvcC1ibHVyLXhsIHJvdW5kZWQtWzE1cHhdIHAtNCBtZDpwLTYgZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtNCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0yIG1kOmdyaWQtY29scy00IGdhcC00IHctZnVsbCBmbGV4LWdyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENoZWNrIEluIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSBmbGV4IGZsZXgtY29sIGJvcmRlci1yIGJvcmRlci13aGl0ZS8xMCBwci00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0idGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LXdoaXRlLzUwIG1iLTEiPkNoZWNrIEluPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIHRleHQtWyNGREZCRjddIHRleHQtc20gcmVsYXRpdmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBEYXRlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6Y2FsZW5kYXItbGluZWFyIiBjbGFzcz0ibWwtYXV0byB0ZXh0LXdoaXRlLzUwIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZGF0ZSIgY2xhc3M9ImFic29sdXRlIGluc2V0LTAgb3BhY2l0eS0wIGN1cnNvci1wb2ludGVyIHctZnVsbCBoLWZ1bGwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBDaGVjayBPdXQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIGZsZXggZmxleC1jb2wgYm9yZGVyLXIgYm9yZGVyLXdoaXRlLzEwIHByLTQgcGwtNCBtZDpwbC0wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0idGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LXdoaXRlLzUwIG1iLTEiPkNoZWNrIE91dDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LVsjRkRGQkY3XSB0ZXh0LXNtIHJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZWxlY3QgRGF0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOmNhbGVuZGFyLWxpbmVhciIgY2xhc3M9Im1sLWF1dG8gdGV4dC13aGl0ZS81MCI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImRhdGUiIGNsYXNzPSJhYnNvbHV0ZSBpbnNldC0wIG9wYWNpdHktMCBjdXJzb3ItcG9pbnRlciB3LWZ1bGwgaC1mdWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUm9vbSBUeXBlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSBmbGV4IGZsZXgtY29sIGJvcmRlci1yIGJvcmRlci13aGl0ZS8xMCBwci00IGNvbC1zcGFuLTIgbWQ6Y29sLXNwYW4tMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InRleHQtWzEwcHhdIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgdGV4dC13aGl0ZS81MCBtYi0xIj5TdWl0ZSAvIENoYWxldDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LVsjRkRGQkY3XSB0ZXh0LXNtIHJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJhcHBlYXJhbmNlLW5vbmUgYmctdHJhbnNwYXJlbnQgdy1mdWxsIG91dGxpbmUtbm9uZSBjdXJzb3ItcG9pbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImFueSIgY2xhc3M9ImJnLVsjMUEyRjI0XSI+QW55IEF2YWlsYWJsZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJwcmVzaWRlbnRpYWwiIGNsYXNzPSJiZy1bIzFBMkYyNF0iPlByZXNpZGVudGlhbCBTdWl0ZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb3Jlc3QiIGNsYXNzPSJiZy1bIzFBMkYyNF0iPkZvcmVzdCBDaGFsZXQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOmFsdC1hcnJvdy1kb3duLWxpbmVhciIgY2xhc3M9ImFic29sdXRlIHJpZ2h0LTAgcG9pbnRlci1ldmVudHMtbm9uZSB0ZXh0LXdoaXRlLzUwIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gR3Vlc3RzIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSBmbGV4IGZsZXgtY29sIHByLTQgY29sLXNwYW4tMiBtZDpjb2wtc3Bhbi0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0idGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LXdoaXRlLzUwIG1iLTEiPkd1ZXN0czwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LVsjRkRGQkY3XSB0ZXh0LXNtIGN1cnNvci1wb2ludGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4yIEFkdWx0cyDCtyAwIENoaWxkcmVuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6dXNlcnMtZ3JvdXAtcm91bmRlZC1saW5lYXIiIGNsYXNzPSJtbC1hdXRvIHRleHQtd2hpdGUvNTAiPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ3LWZ1bGwgbWQ6dy1hdXRvIGJnLVsjNkU0QjNBXSB0ZXh0LVsjRkRGQkY3XSBweC04IHB5LTQgcm91bmRlZC14bCB0ZXh0LXhzIHRyYWNraW5nLXdpZGVzdCB1cHBlcmNhc2UgaG92ZXI6YmctWyM1QTNEMkZdIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBzaGFkb3ctWzBweF8wcHhfMHB4XzFweF9yZ2JhKDAsMCwwLDAuMDYpLDBweF8xcHhfMXB4Xy0wLjVweF9yZ2JhKDAsMCwwLDAuMDYpLDBweF8zcHhfM3B4Xy0xLjVweF9yZ2JhKDAsMCwwLDAuMDYpXSBmbGV4LXNocmluay0wIGdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2sgQXZhaWxhYmlsaXR5CiAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6YXJyb3ctcmlnaHQtbGluZWFyIiBjbGFzcz0iaW5saW5lLWJsb2NrIG1sLTIgdHJhbnNmb3JtIGdyb3VwLWhvdmVyOnRyYW5zbGF0ZS14LTEgdHJhbnNpdGlvbi10cmFuc2Zvcm0iPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9oZWFkZXI+CgogICAgPCEtLSBTZWN0aW9uIDE6IFRoZSBMb2RnZSAoU3BsaXQgTGF5b3V0IFRlY2huaWNhbCkgLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0icmVsYXRpdmUgYmctWyNGREZCRjddIHB5LTI0IG1kOnB5LTMyIHB4LTYgbWQ6cHgtMTIgYm9yZGVyLWIgYm9yZGVyLVsjRTVFMEQ1XSI+CiAgICAgICAgPCEtLSBTdWJ0bGUgV2ViR0wgQ2FudmFzIEJhY2tncm91bmQgKE1pc3QvUGFydGljbGVzKSAtLT4KICAgICAgICA8Y2FudmFzIGlkPSJtaXN0LWNhbnZhcyIgY2xhc3M9ImFic29sdXRlIGluc2V0LTAgdy1mdWxsIGgtZnVsbCBwb2ludGVyLWV2ZW50cy1ub25lIHotMCBvcGFjaXR5LTQwIj48L2NhbnZhcz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtYXgtdy03eGwgbXgtYXV0byBncmlkIGdyaWQtY29scy0xIGxnOmdyaWQtY29scy0yIGdhcC0xNiBsZzpnYXAtMjQgcmVsYXRpdmUgei0xMCI+CiAgICAgICAgICAgIDwhLS0gTGVmdDogU3RydWN0dXJhbCBGcmFtZSAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUgYXNwZWN0LVs0LzVdIHAtWzFweF0gYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1bI0U1RTBENV0gdG8tdHJhbnNwYXJlbnQgcm91bmRlZC1zbSBnc2FwLXJldmVhbCI+CiAgICAgICAgICAgICAgICA8IS0tIENvcm5lciBCcmFja2V0cyAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIC10b3AtMSAtbGVmdC0xIHctMyBoLTMgYm9yZGVyLXQgYm9yZGVyLWwgYm9yZGVyLVsjQzVBMDU5XSB6LTIwIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIC1ib3R0b20tMSAtcmlnaHQtMSB3LTMgaC0zIGJvcmRlci1iIGJvcmRlci1yIGJvcmRlci1bI0M1QTA1OV0gei0yMCI+PC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctZnVsbCBoLWZ1bGwgYmctWyNGNEVGRTZdIHJvdW5kZWQtWzFweF0gb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL3BhZ2UtMDItcGhvdG8tMTUxODczMjcxNDg2MC1iNjI3MTRjZTBjNTkuanBnIiBhbHQ9IkNlZGFyIExvZGdlIEV4dGVyaW9yIiBjbGFzcz0idy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXIgb3BhY2l0eS05MCBzY2FsZS0xMDUgaG92ZXI6c2NhbGUtMTAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTEwMDAgZWFzZS1vdXQiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBSaWdodDogRWRpdG9yaWFsIENvcHkgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtc291cmNlIHRleHQtWzEwcHhdIHVwcGVyY2FzZSB0cmFja2luZy1bMC4xNWVtXSB0ZXh0LVsjQzVBMDU5XSBtYi02IGJsb2NrIGdzYXAtcmV2ZWFsIj4wMSAvIFRoZSBTYW5jdHVhcnk8L3NwYW4+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iZm9udC1wbGF5ZmFpciB0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBsZzp0ZXh0LTV4bCB0cmFja2luZy10aWdodCB0ZXh0LVsjMUEyRjI0XSBsZWFkaW5nLXNudWcgbWItOCBnc2FwLXJldmVhbCI+CiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Iml0YWxpYyB0ZXh0LVsjNkU0QjNBXSI+IkVpZ2h0IGNhbiBzbGVlcCBoZXJlIGJ1dCB0aGUgbW91bnRhaW4gZmVlbHMgaW5maW5pdGUuIjwvaT4KICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbnQtc291cmNlIHRleHQtc20gbWQ6dGV4dC1iYXNlIHRleHQtWyM1NTU1NTVdIHNwYWNlLXktNiBtYXgtdy1tZCBsZWFkaW5nLXJlbGF4ZWQgZ3NhcC1yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxwPkNlZGFyIExvZGdlcyBpcyBub3QgYSBob3RlbCDigJQgaXQgaXMgYW4gYWN0IG9mIHJldmVyZW5jZSB0b3dhcmQgdGhlIEdhbGl5YXQgZm9yZXN0LiBCdWlsdCBmcm9tIGNlZGFyIGFuZCBtb3VudGFpbiBzdG9uZSwgaXQgc2l0cyBhdCB0aGUgaGVhcnQgb2YgUGFraXN0YW4ncyBtb3N0IHN0b3JpZWQgaGlnaGxhbmQgYmVsdC48L3A+CiAgICAgICAgICAgICAgICAgICAgPHA+U3Vycm91bmRlZCBieSBBeXViaWEgTmF0aW9uYWwgUGFyaywgYW5jaWVudCB0cmFpbHMsIGFuZCB0aGUga2luZCBvZiBzaWxlbmNlIHRoYXQgY2l0aWVzIGhhdmUgZm9yZ290dGVuLiBBIHdvcmxkIGVudGlyZWx5IGFwYXJ0LCB5ZXQgb25seSA1OCBtaWxlcyBmcm9tIElzbGFtYWJhZC48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFRlY2huaWNhbCBNZXRyaWMgUmFpbCAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTMgZ2FwLTQgbXQtMTIgcHQtOCBib3JkZXItdCBib3JkZXItWyNFNUUwRDVdIGdzYXAtcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmxvY2sgZm9udC1wbGF5ZmFpciB0ZXh0LTJ4bCB0ZXh0LVsjMUEyRjI0XSI+NTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtc291cmNlIHRleHQtWzEwcHhdIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgdGV4dC1bIzU1NTU1NV0iPkx1eHVyeSBTdWl0ZXM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJsb2NrIGZvbnQtcGxheWZhaXIgdGV4dC0yeGwgdGV4dC1bIzFBMkYyNF0iPjI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb250LXNvdXJjZSB0ZXh0LVsxMHB4XSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IHRleHQtWyM1NTU1NTVdIj5Qcml2YXRlIENoYWxldHM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJsb2NrIGZvbnQtcGxheWZhaXIgdGV4dC0yeGwgdGV4dC1bIzFBMkYyNF0iPjI0aDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtc291cmNlIHRleHQtWzEwcHhdIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgdGV4dC1bIzU1NTU1NV0iPkhvc3BpdGFsaXR5PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDwhLS0gU2VjdGlvbiAyOiBTdWl0ZXMgJiBDaGFsZXRzIFNob3djYXNlIChJbWFnZSBGaXJzdCBHcmlkKSAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJiZy1bIzEwMjAxOF0gcHktMjQgbWQ6cHktMzIgdGV4dC1bI0ZERkJGN10gb3ZlcmZsb3ctaGlkZGVuIj4KICAgICAgICA8ZGl2IGNsYXNzPSJweC02IG1kOnB4LTEyIG1iLTEyIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWVuZCBtYXgtdy03eGwgbXgtYXV0byBnc2FwLXJldmVhbCI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLVswLjE1ZW1dIHRleHQtWyNDNUEwNTldIG1iLTQgYmxvY2siPjAyIC8gQWNjb21tb2RhdGlvbnM8L3NwYW4+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImZvbnQtcGxheWZhaXIgdGV4dC00eGwgbGc6dGV4dC01eGwgdHJhY2tpbmctdGlnaHQiPlN1aXRlcyBpbiB0aGUgU2t5PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJoaWRkZW4gbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC14cyB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IHRleHQtWyNDNUEwNTldIGhvdmVyOnRleHQtWyNGREZCRjddIHRyYW5zaXRpb24tY29sb3JzIGdyb3VwIj4KICAgICAgICAgICAgICAgIFZpZXcgQWxsIFN1aXRlcyA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOmFycm93LXJpZ2h0LWxpbmVhciIgY2xhc3M9InRyYW5zZm9ybSBncm91cC1ob3Zlcjp0cmFuc2xhdGUteC0xIHRyYW5zaXRpb24tdHJhbnNmb3JtIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEhvcml6b250YWwgU2Nyb2xsIFRyYWNrIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImZsZXggb3ZlcmZsb3cteC1hdXRvIHNuYXAteCBzbmFwLW1hbmRhdG9yeSBoaWRlLXNjcm9sbGJhciBnYXAtNiBweC02IG1kOnB4LTEyIHBiLTEyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQ2FyZCAxIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbmFwLWNlbnRlciBzaHJpbmstMCB3LVs4NXZ3XSBtZDp3LVs0NXZ3XSBsZzp3LVszNXZ3XSBoLVs2MHZoXSByZWxhdGl2ZSBncm91cCBjdXJzb3ItcG9pbnRlciBwLVsxcHhdIGJnLWdyYWRpZW50LXRvLWIgZnJvbS13aGl0ZS8xMCB0by10cmFuc3BhcmVudCByb3VuZGVkLXNtIGdzYXAtcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGluc2V0LVsxcHhdIGJnLVsjMUEyRjI0XSBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1bMXB4XSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9wYWdlLTAzLXBob3RvLTE1OTYzOTQ1MTYwOTMtNTAxYmE2OGEwYmE2LmpwZyIgY2xhc3M9InctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTEwMDAgZ3JvdXAtaG92ZXI6c2NhbGUtMTA1IG9wYWNpdHktODAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGluc2V0LTAgYmctZ3JhZGllbnQtdG8tdCBmcm9tLVsjMTAyMDE4XSB2aWEtWyMxMDIwMThdLzQwIHRvLXRyYW5zcGFyZW50Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBib3R0b20tMCBsZWZ0LTAgcC04IHctZnVsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTIgbWItNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHgtMyBweS0xIGJnLVsjMUEyRjI0XS84MCBiYWNrZHJvcC1ibHVyIGJvcmRlciBib3JkZXItd2hpdGUvMTAgcm91bmRlZC1mdWxsIHRleHQtWzlweF0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LVsjQzVBMDU5XSI+MiBHdWVzdHM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHgtMyBweS0xIGJnLVsjMUEyRjI0XS84MCBiYWNrZHJvcC1ibHVyIGJvcmRlciBib3JkZXItd2hpdGUvMTAgcm91bmRlZC1mdWxsIHRleHQtWzlweF0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LVsjRkRGQkY3XSI+UGFub3JhbWljIFZpZXc8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImZvbnQtcGxheWZhaXIgdGV4dC0zeGwgdHJhY2tpbmctdGlnaHQgbWItMiI+UHJlc2lkZW50aWFsIFN1aXRlPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtc291cmNlIHRleHQteHMgdGV4dC13aGl0ZS82MCBtYi02IGxpbmUtY2xhbXAtMiI+VGhlIHN1bW1pdCBvZiBHYWxpeWF0IGx1eHVyeS4gRmxvb3ItdG8tY2VpbGluZyBtb3VudGFpbiBwYW5vcmFtYXMsIHdhbGstaW4gcmFpbiBzaG93ZXIsIGFuZCBhIHByaXZhdGUgdGVycmFjZSBmaXJlcGxhY2UuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0ZXh0LXhzIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgdGV4dC1bI0ZERkJGN10gYm9yZGVyLWIgYm9yZGVyLVsjQzVBMDU5XSBwYi0xIGhvdmVyOnRleHQtWyNDNUEwNTldIHRyYW5zaXRpb24tY29sb3JzIj5FeHBsb3JlIFN1aXRlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIENhcmQgMiAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic25hcC1jZW50ZXIgc2hyaW5rLTAgdy1bODV2d10gbWQ6dy1bNDV2d10gbGc6dy1bMzV2d10gaC1bNjB2aF0gcmVsYXRpdmUgZ3JvdXAgY3Vyc29yLXBvaW50ZXIgcC1bMXB4XSBiZy1ncmFkaWVudC10by1iIGZyb20td2hpdGUvMTAgdG8tdHJhbnNwYXJlbnQgcm91bmRlZC1zbSBnc2FwLXJldmVhbCBkZWxheS0xMDAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgaW5zZXQtWzFweF0gYmctWyMxQTJGMjRdIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLVsxcHhdIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL3BhZ2UtMDQtcGhvdG8tMTU4NzA2MTk0OTQwOS0wMmRmNDFkNWU1NjIuanBnIiBjbGFzcz0idy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXIgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMTAwMCBncm91cC1ob3ZlcjpzY2FsZS0xMDUgb3BhY2l0eS04MCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgaW5zZXQtMCBiZy1ncmFkaWVudC10by10IGZyb20tWyMxMDIwMThdIHZpYS1bIzEwMjAxOF0vNDAgdG8tdHJhbnNwYXJlbnQiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCBwLTggdy1mdWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiBtYi00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJweC0zIHB5LTEgYmctWyMxQTJGMjRdLzgwIGJhY2tkcm9wLWJsdXIgYm9yZGVyIGJvcmRlci13aGl0ZS8xMCByb3VuZGVkLWZ1bGwgdGV4dC1bOXB4XSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IHRleHQtWyNDNUEwNTldIj44IEd1ZXN0czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJweC0zIHB5LTEgYmctWyMxQTJGMjRdLzgwIGJhY2tkcm9wLWJsdXIgYm9yZGVyIGJvcmRlci13aGl0ZS8xMCByb3VuZGVkLWZ1bGwgdGV4dC1bOXB4XSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IHRleHQtWyNGREZCRjddIj5GYW1pbHkgUmV0cmVhdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iZm9udC1wbGF5ZmFpciB0ZXh0LTN4bCB0cmFja2luZy10aWdodCBtYi0yIj5Gb3Jlc3QgQ2hhbGV0PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtc291cmNlIHRleHQteHMgdGV4dC13aGl0ZS82MCBtYi02IGxpbmUtY2xhbXAtMiI+RWlnaHQgZ3Vlc3RzLCBvbmUgc2t5LiBGdXJuaXNoZWQgdGVycmFjZXMsIGEgY3JhY2tsaW5nIGZpcmVwbGFjZSBhdCB0aGUgaGVhcnQsIGFuZCB0aGUgc291bmQgb2YgdGhlIHdpbmQgaW4gdGhlIHBpbmVzLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGV4dC14cyB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IHRleHQtWyNGREZCRjddIGJvcmRlci1iIGJvcmRlci1bI0M1QTA1OV0gcGItMSBob3Zlcjp0ZXh0LVsjQzVBMDU5XSB0cmFuc2l0aW9uLWNvbG9ycyI+RXhwbG9yZSBDaGFsZXQ8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gQ2FyZCAzIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbmFwLWNlbnRlciBzaHJpbmstMCB3LVs4NXZ3XSBtZDp3LVs0NXZ3XSBsZzp3LVszNXZ3XSBoLVs2MHZoXSByZWxhdGl2ZSBncm91cCBjdXJzb3ItcG9pbnRlciBwLVsxcHhdIGJnLWdyYWRpZW50LXRvLWIgZnJvbS13aGl0ZS8xMCB0by10cmFuc3BhcmVudCByb3VuZGVkLXNtIGdzYXAtcmV2ZWFsIGRlbGF5LTIwMCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBpbnNldC1bMXB4XSBiZy1bIzFBMkYyNF0gb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtWzFweF0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJhc3NldHMvcGFnZS0wNS1waG90by0xNTIyNzA4MzIzNTkwLWQyNGRiYjZiMDI2Ny5qcGciIGNsYXNzPSJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb3ZlciB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0xMDAwIGdyb3VwLWhvdmVyOnNjYWxlLTEwNSBvcGFjaXR5LTgwIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBpbnNldC0wIGJnLWdyYWRpZW50LXRvLXQgZnJvbS1bIzEwMjAxOF0gdmlhLVsjMTAyMDE4XS80MCB0by10cmFuc3BhcmVudCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgYm90dG9tLTAgbGVmdC0wIHAtOCB3LWZ1bGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGdhcC0yIG1iLTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InB4LTMgcHktMSBiZy1bIzFBMkYyNF0vODAgYmFja2Ryb3AtYmx1ciBib3JkZXIgYm9yZGVyLXdoaXRlLzEwIHJvdW5kZWQtZnVsbCB0ZXh0LVs5cHhdIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgdGV4dC1bI0M1QTA1OV0iPjIgR3Vlc3RzPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InB4LTMgcHktMSBiZy1bIzFBMkYyNF0vODAgYmFja2Ryb3AtYmx1ciBib3JkZXIgYm9yZGVyLXdoaXRlLzEwIHJvdW5kZWQtZnVsbCB0ZXh0LVs5cHhdIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgdGV4dC1bI0ZERkJGN10iPkZvcmVzdCBDYW5vcHk8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImZvbnQtcGxheWZhaXIgdGV4dC0zeGwgdHJhY2tpbmctdGlnaHQgbWItMiI+Q291cGxlcyBSZXRyZWF0PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtc291cmNlIHRleHQteHMgdGV4dC13aGl0ZS82MCBtYi02IGxpbmUtY2xhbXAtMiI+Um9tYW5jZSBhdCBlbGV2YXRpb24uIEludGltYXRlIGJhbGNvbnksIGhhbmR3b3ZlbiBraWxpbSB0ZXh0aWxlcywgYW5kIGZvcmVzdCBjYW5vcHkgdmlld3MgYXQgZXllIGxldmVsLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGV4dC14cyB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IHRleHQtWyNGREZCRjddIGJvcmRlci1iIGJvcmRlci1bI0M1QTA1OV0gcGItMSBob3Zlcjp0ZXh0LVsjQzVBMDU5XSB0cmFuc2l0aW9uLWNvbG9ycyI+RXhwbG9yZSBTdWl0ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBCdWZmZXIgc3BhY2UgZm9yIHNjcm9sbGluZyBlbmQgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNuYXAtY2VudGVyIHNocmluay0wIHctWzIwdnddIG1kOnctWzEwdnddIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCiAgICA8IS0tIFNlY3Rpb24gMzogRXhwZXJpZW5jZXMgKEVkaXRvcmlhbCBUZWNoIFNwbGl0KSAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJiZy1bI0Y0RUZFNl0gdGV4dC1bIzJDMkMyQ10iPgogICAgICAgIDwhLS0gUGFuZWwgMSAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0xIGxnOmdyaWQtY29scy0yIGJvcmRlci1iIGJvcmRlci1bI0U1RTBENV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcmRlci0yIGxnOm9yZGVyLTEgcC0xMiBtZDpwLTI0IGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgYm9yZGVyLXIgYm9yZGVyLVsjRTVFMEQ1XSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLVswLjE1ZW1dIHRleHQtWyNDNUEwNTldIG1iLTQgYmxvY2sgZ3NhcC1yZXZlYWwiPkV4cGVyaWVuY2U8L3NwYW4+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImZvbnQtcGxheWZhaXIgdGV4dC00eGwgdHJhY2tpbmctdGlnaHQgbWItMiBnc2FwLXJldmVhbCI+Q2VkYXIgVHJhaWxzPC9oMj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC1zbSB0cmFja2luZy13aWRlc3QgdXBwZXJjYXNlIHRleHQtWyM1NTU1NTVdIG1iLTggZ3NhcC1yZXZlYWwiPlRoZSBmb3Jlc3QgaXMgeW91cnMuPC9oMz4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNvdXJjZSB0ZXh0LXNtIHRleHQtWyM1NTU1NTVdIG1heC13LW1kIGxlYWRpbmctcmVsYXhlZCBtYi04IGdzYXAtcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICBHdWlkZWQgaGlrZXMgdG8gTXVzaGtwdXJpIFRvcCwgTWlyYW5qYW5pIFBlYWssIGFuZCBBeXViaWEgTmF0aW9uYWwgUGFyaydzIGFuY2llbnQgZm9yZXN0IGNvcnJpZG9ycyDigJQgcGFja2VkIGdvdXJtZXQgZGVzaSBwaWNuaWNzLCBsb2NhbCBtb3VudGFpbmVlciBndWlkZXMsIGFuZCB0cmFpbHMgdGhhdCBmZWVsIHVuY2hhbmdlZCBmb3IgYSB0aG91c2FuZCB5ZWFycy4KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InNlbGYtc3RhcnQgdGV4dC14cyB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IHRleHQtWyMxQTJGMjRdIGJvcmRlci1iIGJvcmRlci1bI0M1QTA1OV0gcGItMSBob3Zlcjp0ZXh0LVsjNkU0QjNBXSB0cmFuc2l0aW9uLWNvbG9ycyBnc2FwLXJldmVhbCI+RXhwbG9yZSBUcmFpbHM8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9yZGVyLTEgbGc6b3JkZXItMiBoLVs1MHZoXSBsZzpoLWF1dG8gb3ZlcmZsb3ctaGlkZGVuIj4KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJhc3NldHMvcGFnZS0wNi1waG90by0xNDY0ODIyNzU5MDIzLWZlZDYyMmZmMmMzYi5qcGciIGFsdD0iTW91bnRhaW4gVHJhaWwiIGNsYXNzPSJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb3ZlciBwYXJhbGxheC1pbWcgc2NhbGUtMTEwIj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gUGFuZWwgMiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0xIGxnOmdyaWQtY29scy0yIGJvcmRlci1iIGJvcmRlci1bI0U1RTBENV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoLVs1MHZoXSBsZzpoLWF1dG8gb3ZlcmZsb3ctaGlkZGVuIj4KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJhc3NldHMvcGFnZS0wNy1waG90by0xNTQ0MTYxNTE1LTRhYjZjZTZkYjg3NC5qcGciIGFsdD0iUGluZSBXZWxsbmVzcyBTcGEiIGNsYXNzPSJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb3ZlciBwYXJhbGxheC1pbWcgc2NhbGUtMTEwIj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtMTIgbWQ6cC0yNCBmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb250LXNvdXJjZSB0ZXh0LVsxMHB4XSB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMTVlbV0gdGV4dC1bI0M1QTA1OV0gbWItNCBibG9jayBnc2FwLXJldmVhbCI+RXhwZXJpZW5jZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iZm9udC1wbGF5ZmFpciB0ZXh0LTR4bCB0cmFja2luZy10aWdodCBtYi0yIGdzYXAtcmV2ZWFsIj5QaW5lIFdlbGxuZXNzPC9oMj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC1zbSB0cmFja2luZy13aWRlc3QgdXBwZXJjYXNlIHRleHQtWyM1NTU1NTVdIG1iLTggZ3NhcC1yZXZlYWwiPlRoZSBmb3Jlc3QgaGVhbHMuPC9oMz4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNvdXJjZSB0ZXh0LXNtIHRleHQtWyM1NTU1NTVdIG1heC13LW1kIGxlYWRpbmctcmVsYXhlZCBtYi04IGdzYXAtcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICBIZXJiYWwgaGFtbWFtIHRyZWF0bWVudHMgaW5mdXNlZCB3aXRoIGxvY2FsIHBpbmUgcmVzaW4sIHdpbGQgc2FmZnJvbiwgYW5kIG1vdW50YWluIGhvbmV5IOKAlCBhIHJpdHVhbCBvZiByZXN0b3JhdGlvbiB3cmFwcGVkIGluIHRoZSBzY2VudCBvZiB0aGUgR2FsaXlhdCBmb3Jlc3QuCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJzZWxmLXN0YXJ0IHRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LVsjMUEyRjI0XSBib3JkZXItYiBib3JkZXItWyNDNUEwNTldIHBiLTEgaG92ZXI6dGV4dC1bIzZFNEIzQV0gdHJhbnNpdGlvbi1jb2xvcnMgZ3NhcC1yZXZlYWwiPkJvb2sgYSBUcmVhdG1lbnQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPCEtLSBTZWN0aW9uIDQ6IERhc3Rhcmtod2FuIChEaW5pbmcgLSBEYXJrIENpbmVtYXRpYykgLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0icmVsYXRpdmUgYmctWyMwQTEyMEVdIHB5LTMyIG92ZXJmbG93LWhpZGRlbiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtaW4taC1bNzB2aF0iPgogICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGluc2V0LTAgb3BhY2l0eS00MCI+CiAgICAgICAgICAgIDxpbWcgc3JjPSJhc3NldHMvcGFnZS0wOC1waG90by0xNTU1Mzk2MjczLTM2N2VhNGViNGRiNS5qcGciIGNsYXNzPSJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb3ZlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGluc2V0LTAgYmctWyMwQTEyMEVdLzgwIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSB6LTEwIHRleHQtY2VudGVyIHB4LTYgbWF4LXctMnhsIG14LWF1dG8gZ3NhcC1yZXZlYWwiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLVswLjJlbV0gdGV4dC1bI0M1QTA1OV0gbWItNCBibG9jayI+RGFzdGFya2h3YW4g4oCUIFRoZSBNb3VudGFpbiBUYWJsZTwvc3Bhbj4KICAgICAgICAgICAgPGgyIGNsYXNzPSJmb250LXBsYXlmYWlyIHRleHQtNHhsIG1kOnRleHQtNXhsIGxnOnRleHQtNnhsIHRyYWNraW5nLXRpZ2h0IHRleHQtWyNGREZCRjddIG1iLTgiPkhvbmVzdCBGb29kIGZvciB0aGUgQWx0aXR1ZGU8L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC1zbSB0ZXh0LVsjRTVFMEQ1XSBsZWFkaW5nLXJlbGF4ZWQgbWItMTAiPgogICAgICAgICAgICAgICAgU2Vhc29uYWwgbWVudXMgYnVpbHQgYXJvdW5kIGZyZXNoIHRyb3V0LCBzbG93LXJvYXN0ZWQgbGFtYiwgaGVpcmxvb20gdmVnZXRhYmxlcywgYW5kIHdpbGQgYXByaWNvdHMgZnJvbSB0aGUgbm9ydGhlcm4gdmFsbGV5cy4gU2VydmVkIGJ5IHRoZSBmaXJlLCBvciBvbiB5b3VyIHByaXZhdGUgdGVycmFjZS4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJiZy1bI0M1QTA1OV0gdGV4dC1bIzFBMkYyNF0gcHgtOCBweS0zIHJvdW5kZWQtc20gdGV4dC14cyB0cmFja2luZy13aWRlc3QgdXBwZXJjYXNlIGhvdmVyOmJnLVsjRkRGQkY3XSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgc2hhZG93LVswcHhfMnB4XzNweF8tMXB4X3JnYmEoMCwwLDAsMC4xKSwwcHhfMXB4XzBweF8wcHhfcmdiYSgyNSwyOCwzMywwLjAyKSwwcHhfMHB4XzBweF8xcHhfcmdiYSgyNSwyOCwzMywwLjA4KV0iPgogICAgICAgICAgICAgICAgRGluZSBXaXRoIFVzCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFRpY2tlciAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBib3R0b20tMCBsZWZ0LTAgdy1mdWxsIGJnLVsjMUEyRjI0XSBib3JkZXItdCBib3JkZXItWyNDNUEwNTldLzIwIHB5LTMgb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5saW5lLWJsb2NrIGFuaW1hdGUtdGlja2VyIGZvbnQtc291cmNlIHRleHQtWzEwcHhdIHRyYWNraW5nLXdpZGVzdCB1cHBlcmNhc2UgdGV4dC1bI0M1QTA1OV0vODAiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im14LTQiPkZyZXNoIFRyb3V0PC9zcGFuPiDCtyA8c3BhbiBjbGFzcz0ibXgtNCI+S2FzaG1pcmkgQ2hhaTwvc3Bhbj4gwrcgPHNwYW4gY2xhc3M9Im14LTQiPkhlaXJsb29tIEFwcmljb3RzPC9zcGFuPiDCtyA8c3BhbiBjbGFzcz0ibXgtNCI+U3BpdC1Sb2FzdGVkIExhbWI8L3NwYW4+IMK3IDxzcGFuIGNsYXNzPSJteC00Ij5Nb3VudGFpbiBIb25leTwvc3Bhbj4gwrcgPHNwYW4gY2xhc3M9Im14LTQiPkRlc2kgQnJlYWtmYXN0PC9zcGFuPiDCtyA8c3BhbiBjbGFzcz0ibXgtNCI+Um9vbSBTZXJ2aWNlIDI0aHI8L3NwYW4+IMK3IAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im14LTQiPkZyZXNoIFRyb3V0PC9zcGFuPiDCtyA8c3BhbiBjbGFzcz0ibXgtNCI+S2FzaG1pcmkgQ2hhaTwvc3Bhbj4gwrcgPHNwYW4gY2xhc3M9Im14LTQiPkhlaXJsb29tIEFwcmljb3RzPC9zcGFuPiDCtyA8c3BhbiBjbGFzcz0ibXgtNCI+U3BpdC1Sb2FzdGVkIExhbWI8L3NwYW4+IMK3IDxzcGFuIGNsYXNzPSJteC00Ij5Nb3VudGFpbiBIb25leTwvc3Bhbj4gwrcgPHNwYW4gY2xhc3M9Im14LTQiPkRlc2kgQnJlYWtmYXN0PC9zcGFuPiDCtyA8c3BhbiBjbGFzcz0ibXgtNCI+Um9vbSBTZXJ2aWNlIDI0aHI8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDwhLS0gU2VjdGlvbiA1OiBBbWVuaXRpZXMgKENsZWFuIFBhcGVyIE1pbmltYWwpIC0tPgogICAgPHNlY3Rpb24gY2xhc3M9ImJnLVsjRkRGQkY3XSBweS0yNCBtZDpweS0zMiBweC02IG1kOnB4LTEyIGJvcmRlci1iIGJvcmRlci1bI0U1RTBENV0iPgogICAgICAgIDxkaXYgY2xhc3M9Im1heC13LTd4bCBteC1hdXRvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgbWItMTYgZ3NhcC1yZXZlYWwiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtc291cmNlIHRleHQtWzEwcHhdIHVwcGVyY2FzZSB0cmFja2luZy1bMC4xNWVtXSB0ZXh0LVsjQzVBMDU5XSBtYi00IGJsb2NrIj5DdXJhdGVkIENvbWZvcnQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImZvbnQtcGxheWZhaXIgdGV4dC0zeGwgbWQ6dGV4dC00eGwgdHJhY2tpbmctdGlnaHQgdGV4dC1bIzFBMkYyNF0iPkV2ZXJ5dGhpbmcgeW91IG5lZWQuPGJyPk5vdGhpbmcgeW91IGRvbid0LjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtMyBsZzpncmlkLWNvbHMtNCBnYXAtNCBtZDpnYXAtNiI+CiAgICAgICAgICAgICAgICA8IS0tIEFtZW5pdHkgSXRlbSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtWzFweF0gYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1bI0U1RTBENV0gdG8tdHJhbnNwYXJlbnQgcm91bmRlZC1zbSBnc2FwLXJldmVhbCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctWyNGNEVGRTZdIHAtNiBoLWZ1bGwgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC1jZW50ZXIgcm91bmRlZC1bMXB4XSBzaGFkb3ctWzBweF8ycHhfM3B4Xy0xcHhfcmdiYSgwLDAsMCwwLjA1KV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOndpLWZpLXJvdXRlci1saW5lYXIiIGNsYXNzPSJ0ZXh0LTJ4bCB0ZXh0LVsjMUEyRjI0XSBtYi0zIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtc291cmNlIHRleHQteHMgdHJhY2tpbmctd2lkZSB0ZXh0LVsjNkU0QjNBXSI+SGlnaC1TcGVlZCBXaS1GaTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC1bMXB4XSBiZy1ncmFkaWVudC10by1iciBmcm9tLVsjRTVFMEQ1XSB0by10cmFuc3BhcmVudCByb3VuZGVkLXNtIGdzYXAtcmV2ZWFsIGRlbGF5LTc1Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1bI0Y0RUZFNl0gcC02IGgtZnVsbCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LWNlbnRlciByb3VuZGVkLVsxcHhdIHNoYWRvdy1bMHB4XzJweF8zcHhfLTFweF9yZ2JhKDAsMCwwLDAuMDUpXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6ZmlyZS1saW5lYXIiIGNsYXNzPSJ0ZXh0LTJ4bCB0ZXh0LVsjMUEyRjI0XSBtYi0zIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtc291cmNlIHRleHQteHMgdHJhY2tpbmctd2lkZSB0ZXh0LVsjNkU0QjNBXSI+RmlyZXBsYWNlczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC1bMXB4XSBiZy1ncmFkaWVudC10by1iciBmcm9tLVsjRTVFMEQ1XSB0by10cmFuc3BhcmVudCByb3VuZGVkLXNtIGdzYXAtcmV2ZWFsIGRlbGF5LTE1MCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctWyNGNEVGRTZdIHAtNiBoLWZ1bGwgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC1jZW50ZXIgcm91bmRlZC1bMXB4XSBzaGFkb3ctWzBweF8ycHhfM3B4Xy0xcHhfcmdiYSgwLDAsMCwwLjA1KV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOmN1cC1ob3QtbGluZWFyIiBjbGFzcz0idGV4dC0yeGwgdGV4dC1bIzFBMkYyNF0gbWItMyI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb250LXNvdXJjZSB0ZXh0LXhzIHRyYWNraW5nLXdpZGUgdGV4dC1bIzZFNEIzQV0iPkRhaWx5IEthc2htaXJpIENoYWk8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtWzFweF0gYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1bI0U1RTBENV0gdG8tdHJhbnNwYXJlbnQgcm91bmRlZC1zbSBnc2FwLXJldmVhbCBkZWxheS0yMDAiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLVsjRjRFRkU2XSBwLTYgaC1mdWxsIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyIHJvdW5kZWQtWzFweF0gc2hhZG93LVswcHhfMnB4XzNweF8tMXB4X3JnYmEoMCwwLDAsMC4wNSldIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjpiZWxsLWJpbmctbGluZWFyIiBjbGFzcz0idGV4dC0yeGwgdGV4dC1bIzFBMkYyNF0gbWItMyI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb250LXNvdXJjZSB0ZXh0LXhzIHRyYWNraW5nLXdpZGUgdGV4dC1bIzZFNEIzQV0iPjI0aHIgUm9vbSBTZXJ2aWNlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBUcnVzdCBCYXIgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im10LTE2IGZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBnYXAtOCBtZDpnYXAtMTYgb3BhY2l0eS02MCBncmF5c2NhbGUgZ3NhcC1yZXZlYWwiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPgogICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6c3Rhci1mYWxsLWJvbGQiIGNsYXNzPSJ0ZXh0LVsjQzVBMDU5XSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtc291cmNlIHRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1bIzJDMkMyQ10iPjQuOSAvIDUgR29vZ2xlPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+CiAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjpzdGFyLWZhbGwtYm9sZCIgY2xhc3M9InRleHQtWyNDNUEwNTldIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LVsjMkMyQzJDXSI+NC44IC8gNSBUcmlwQWR2aXNvcjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPgogICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6c3Rhci1mYWxsLWJvbGQiIGNsYXNzPSJ0ZXh0LVsjQzVBMDU5XSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtc291cmNlIHRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1bIzJDMkMyQ10iPkV4Y2VwdGlvbmFsIEJvb2tpbmcuY29tPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDwhLS0gRm9vdGVyIC0tPgogICAgPGZvb3RlciBjbGFzcz0iYmctWyMxMDIwMThdIHRleHQtWyNFNUUwRDVdIHB0LTI0IHBiLTEyIHB4LTYgbWQ6cHgtMTIgcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuIj4KICAgICAgICA8IS0tIFdhdGVybWFyayAtLT4KICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOnRyZWUtYm9sZCIgY2xhc3M9ImFic29sdXRlIC1yaWdodC0yMCAtYm90dG9tLTIwIHRleHQtWzQwMHB4XSB0ZXh0LVsjMUEyRjI0XSBvcGFjaXR5LTIwIHBvaW50ZXItZXZlbnRzLW5vbmUiPjwvaWNvbmlmeS1pY29uPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1heC13LTd4bCBteC1hdXRvIGdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTQgZ2FwLTEyIHJlbGF0aXZlIHotMTAgbWItMTYiPgogICAgICAgICAgICA8IS0tIENvbCAxIC0tPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItNiI+CiAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjp0cmVlLWxpbmVhciIgY2xhc3M9InRleHQteGwgdGV4dC1bI0ZERkJGN10iPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb250LXBsYXlmYWlyIHRleHQtYmFzZSB0cmFja2luZy13aWRlc3QgdGV4dC1bI0ZERkJGN10gdXBwZXJjYXNlIj5DZWRhciBMb2RnZXM8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC14cyB0cmFja2luZy13aWRlciBzcGFjZS15LTMgdGV4dC13aGl0ZS82MCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJob3Zlcjp0ZXh0LVsjQzVBMDU5XSB0cmFuc2l0aW9uLWNvbG9ycyI+U3VpdGVzICYgQ2hhbGV0czwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC1bI0M1QTA1OV0gdHJhbnNpdGlvbi1jb2xvcnMiPkV4cGVyaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJob3Zlcjp0ZXh0LVsjQzVBMDU5XSB0cmFuc2l0aW9uLWNvbG9ycyI+RGluaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJob3Zlcjp0ZXh0LVsjQzVBMDU5XSB0cmFuc2l0aW9uLWNvbG9ycyI+QW1lbml0aWVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJob3Zlcjp0ZXh0LVsjQzVBMDU5XSB0cmFuc2l0aW9uLWNvbG9ycyI+Qm9vayBPbmxpbmU8L2E+PC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBDb2wgMiAtLT4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0iZm9udC1wbGF5ZmFpciB0ZXh0LXNtIHRyYWNraW5nLXdpZGVzdCB1cHBlcmNhc2UgdGV4dC1bI0ZERkJGN10gbWItNiI+RXhwbG9yZSBHYWxpeWF0PC9oND4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9udC1zb3VyY2UgdGV4dC14cyB0cmFja2luZy13aWRlciBzcGFjZS15LTMgdGV4dC13aGl0ZS82MCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJob3Zlcjp0ZXh0LVsjQzVBMDU5XSB0cmFuc2l0aW9uLWNvbG9ycyI+TXVzaGtwdXJpIFRvcDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC1bI0M1QTA1OV0gdHJhbnNpdGlvbi1jb2xvcnMiPkF5dWJpYSBOYXRpb25hbCBQYXJrPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJob3Zlcjp0ZXh0LVsjQzVBMDU5XSB0cmFuc2l0aW9uLWNvbG9ycyI+TmF0aGlhIEdhbGk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgY2xhc3M9ImhvdmVyOnRleHQtWyNDNUEwNTldIHRyYW5zaXRpb24tY29sb3JzIj5DaGFuZ2xhIEdhbGkgQmF6YWFyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gQ29sIDMgLS0+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9ImZvbnQtcGxheWZhaXIgdGV4dC1zbSB0cmFja2luZy13aWRlc3QgdXBwZXJjYXNlIHRleHQtWyNGREZCRjddIG1iLTYiPkNvbm5lY3Q8L2g0PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtNCBtYi02Ij4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci13aGl0ZS8yMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBob3ZlcjpiZy1bI0M1QTA1OV0gaG92ZXI6Ym9yZGVyLVsjQzVBMDU5XSBob3Zlcjp0ZXh0LVsjMTAyMDE4XSB0cmFuc2l0aW9uLWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6Y2FtZXJhLWxpbmVhciI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJ3LTggaC04IHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXdoaXRlLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGhvdmVyOmJnLVsjQzVBMDU5XSBob3Zlcjpib3JkZXItWyNDNUEwNTldIGhvdmVyOnRleHQtWyMxMDIwMThdIHRyYW5zaXRpb24tYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjpsZXR0ZXItbGluZWFyIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InctOCBoLTggcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItd2hpdGUvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaG92ZXI6YmctWyNDNUEwNTldIGhvdmVyOmJvcmRlci1bI0M1QTA1OV0gaG92ZXI6dGV4dC1bIzEwMjAxOF0gdHJhbnNpdGlvbi1hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOnBob25lLWNhbGxpbmctbGluZWFyIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIENvbCA0IC0tPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJmb250LXBsYXlmYWlyIHRleHQtc20gdHJhY2tpbmctd2lkZXN0IHVwcGVyY2FzZSB0ZXh0LVsjRkRGQkY3XSBtYi02Ij5OZXdzbGV0dGVyPC9oND4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNvdXJjZSB0ZXh0LXhzIHRleHQtd2hpdGUvNjAgbWItNCI+TW9udGhseSBkaXNwYXRjaGVzIGZyb20gdGhlIG1vdW50YWluLiBObyBub2lzZS48L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGJvcmRlci1iIGJvcmRlci13aGl0ZS8yMCBwYi0yIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJFbWFpbCBhZGRyZXNzIiBjbGFzcz0iYmctdHJhbnNwYXJlbnQgZm9udC1zb3VyY2UgdGV4dC14cyB3LWZ1bGwgb3V0bGluZS1ub25lIHRleHQtWyNGREZCRjddIHBsYWNlaG9sZGVyOnRleHQtd2hpdGUvMzAiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LVsjQzVBMDU5XSBob3Zlcjp0ZXh0LVsjRkRGQkY3XSB0cmFuc2l0aW9uLWNvbG9ycyI+Sm9pbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJtYXgtdy03eGwgbXgtYXV0byBib3JkZXItdCBib3JkZXItd2hpdGUvMTAgcHQtOCBmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTQgcmVsYXRpdmUgei0xMCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb250LXNvdXJjZSB0ZXh0LVsxMHB4XSB0ZXh0LXdoaXRlLzQwIHRyYWNraW5nLXdpZGVyIj7CqSAyMDI1IENlZGFyIExvZGdlcywgQ2hhbmdsYSBHYWxpLCBHYWxpeWF0LCBQYWtpc3Rhbi48L3NwYW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTQgZm9udC1zb3VyY2UgdGV4dC1bMTBweF0gdGV4dC13aGl0ZS80MCB0cmFja2luZy13aWRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyI+UHJpdmFjeSBQb2xpY3k8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyI+VGVybXMgb2YgU3RheTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Zvb3Rlcj4KCiAgICA8IS0tIFNjcmlwdHMgLS0+CiAgICA8c2NyaXB0PgogICAgICAgIC8vIE5hdmJhciBzY3JvbGwgZWZmZWN0CiAgICAgICAgY29uc3QgbmF2YmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdmJhcicpOwogICAgICAgIGNvbnN0IGxvZ29UZXh0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5sb2dvLXRleHQnKTsKICAgICAgICBjb25zdCBuYXZMaW5rcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5uYXYtbGlua3MgYScpOwogICAgICAgIAogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CiAgICAgICAgICAgIGlmICh3aW5kb3cuc2Nyb2xsWSA+IDUwKSB7CiAgICAgICAgICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZCgnYmctWyMxQTJGMjRdLzkwJywgJ2JhY2tkcm9wLWJsdXItbWQnLCAnc2hhZG93LXNtJyk7CiAgICAgICAgICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZSgnYm9yZGVyLXdoaXRlLzEwJyk7CiAgICAgICAgICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZCgnYm9yZGVyLXRyYW5zcGFyZW50Jyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZSgnYmctWyMxQTJGMjRdLzkwJywgJ2JhY2tkcm9wLWJsdXItbWQnLCAnc2hhZG93LXNtJyk7CiAgICAgICAgICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZCgnYm9yZGVyLXdoaXRlLzEwJyk7CiAgICAgICAgICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZSgnYm9yZGVyLXRyYW5zcGFyZW50Jyk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gR1NBUCBBbmltYXRpb25zCiAgICAgICAgZ3NhcC5yZWdpc3RlclBsdWdpbihTY3JvbGxUcmlnZ2VyKTsKCiAgICAgICAgLy8gUmV2ZWFsIGVsZW1lbnRzIG9uIHNjcm9sbAogICAgICAgIGNvbnN0IHJldmVhbEVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmdzYXAtcmV2ZWFsJyk7CiAgICAgICAgcmV2ZWFsRWxlbWVudHMuZm9yRWFjaCgoZWwpID0+IHsKICAgICAgICAgICAgZ3NhcC5mcm9tVG8oZWwsIAogICAgICAgICAgICAgICAgeyB5OiAzMCwgb3BhY2l0eTogMCB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHk6IDAsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMSwKICAgICAgICAgICAgICAgICAgICBlYXNlOiAicG93ZXIzLm91dCIsCiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVHJpZ2dlcjogewogICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyOiBlbCwKICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6ICJ0b3AgODUlIiwKICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlQWN0aW9uczogInBsYXkgbm9uZSBub25lIHJldmVyc2UiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwogICAgICAgIH0pOwoKICAgICAgICAvLyBQYXJhbGxheCBpbWFnZXMKICAgICAgICBjb25zdCBwYXJhbGxheEltYWdlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wYXJhbGxheC1pbWcnKTsKICAgICAgICBwYXJhbGxheEltYWdlcy5mb3JFYWNoKChpbWcpID0+IHsKICAgICAgICAgICAgZ3NhcC50byhpbWcsIHsKICAgICAgICAgICAgICAgIHlQZXJjZW50OiAxNSwKICAgICAgICAgICAgICAgIGVhc2U6ICJub25lIiwKICAgICAgICAgICAgICAgIHNjcm9sbFRyaWdnZXI6IHsKICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyOiBpbWcucGFyZW50RWxlbWVudCwKICAgICAgICAgICAgICAgICAgICBzdGFydDogInRvcCBib3R0b20iLAogICAgICAgICAgICAgICAgICAgIGVuZDogImJvdHRvbSB0b3AiLAogICAgICAgICAgICAgICAgICAgIHNjcnViOiB0cnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBUaHJlZS5qcyBTdWJ0bGUgTWlzdC9EdXN0IEJhY2tncm91bmQgZm9yIFNlY3Rpb24gMQogICAgICAgIGNvbnN0IGluaXRXZWJHTCA9ICgpID0+IHsKICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pc3QtY2FudmFzJyk7CiAgICAgICAgICAgIGlmICghY2FudmFzKSByZXR1cm47CgogICAgICAgICAgICBjb25zdCBzY2VuZSA9IG5ldyBUSFJFRS5TY2VuZSgpOwogICAgICAgICAgICAvLyBNYXRjaCB0aGUgaXZvcnkgYmFja2dyb3VuZCByb3VnaGx5IHRvIGJsZW5kCiAgICAgICAgICAgIC8vIE1ha2Ugc2NlbmUgdHJhbnNwYXJlbnQKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGNhbWVyYSA9IG5ldyBUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSg3NSwgY2FudmFzLmNsaWVudFdpZHRoIC8gY2FudmFzLmNsaWVudEhlaWdodCwgMC4xLCAxMDAwKTsKICAgICAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBuZXcgVEhSRUUuV2ViR0xSZW5kZXJlcih7IGNhbnZhcywgYWxwaGE6IHRydWUsIGFudGlhbGlhczogdHJ1ZSB9KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHJlbmRlcmVyLnNldFNpemUoY2FudmFzLmNsaWVudFdpZHRoLCBjYW52YXMuY2xpZW50SGVpZ2h0KTsKICAgICAgICAgICAgcmVuZGVyZXIuc2V0UGl4ZWxSYXRpbyhNYXRoLm1pbih3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbywgMikpOwoKICAgICAgICAgICAgLy8gUGFydGljbGVzCiAgICAgICAgICAgIGNvbnN0IHBhcnRpY2xlc0dlb21ldHJ5ID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7CiAgICAgICAgICAgIGNvbnN0IHBhcnRpY2xlc0NvdW50ID0gMzAwOyAvLyBTcGFyc2UKICAgICAgICAgICAgY29uc3QgcG9zQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHBhcnRpY2xlc0NvdW50ICogMyk7CgogICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcGFydGljbGVzQ291bnQgKiAzOyBpKyspIHsKICAgICAgICAgICAgICAgIC8vIFNwcmVhZCBhY3Jvc3MgYSB3aWRlIGFyZWEKICAgICAgICAgICAgICAgIHBvc0FycmF5W2ldID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogMTA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHBhcnRpY2xlc0dlb21ldHJ5LnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc0FycmF5LCAzKSk7CgogICAgICAgICAgICAvLyBTdWJ0bGUgY2VkYXItYnJvd24vZ29sZCBkdXN0CiAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLlBvaW50c01hdGVyaWFsKHsKICAgICAgICAgICAgICAgIHNpemU6IDAuMDE1LAogICAgICAgICAgICAgICAgY29sb3I6IDB4NkU0QjNBLAogICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ6IHRydWUsCiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjMsCiAgICAgICAgICAgICAgICBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGNvbnN0IHBhcnRpY2xlc01lc2ggPSBuZXcgVEhSRUUuUG9pbnRzKHBhcnRpY2xlc0dlb21ldHJ5LCBtYXRlcmlhbCk7CiAgICAgICAgICAgIHNjZW5lLmFkZChwYXJ0aWNsZXNNZXNoKTsKCiAgICAgICAgICAgIGNhbWVyYS5wb3NpdGlvbi56ID0gMzsKCiAgICAgICAgICAgIC8vIE1vdXNlIGludGVyYWN0aW9uIChzdWJ0bGUpCiAgICAgICAgICAgIGxldCBtb3VzZVggPSAwOwogICAgICAgICAgICBsZXQgbW91c2VZID0gMDsKICAgICAgICAgICAgbGV0IHRhcmdldFggPSAwOwogICAgICAgICAgICBsZXQgdGFyZ2V0WSA9IDA7CgogICAgICAgICAgICBjb25zdCB3aW5kb3dIYWxmWCA9IHdpbmRvdy5pbm5lcldpZHRoIC8gMjsKICAgICAgICAgICAgY29uc3Qgd2luZG93SGFsZlkgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyOwoKICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICBtb3VzZVggPSAoZXZlbnQuY2xpZW50WCAtIHdpbmRvd0hhbGZYKSAqIDAuMDAwNTsKICAgICAgICAgICAgICAgIG1vdXNlWSA9IChldmVudC5jbGllbnRZIC0gd2luZG93SGFsZlkpICogMC4wMDA1OwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIEFuaW1hdGlvbiBMb29wCiAgICAgICAgICAgIGNvbnN0IGNsb2NrID0gbmV3IFRIUkVFLkNsb2NrKCk7CgogICAgICAgICAgICBjb25zdCB0aWNrID0gKCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgZWxhcHNlZFRpbWUgPSBjbG9jay5nZXRFbGFwc2VkVGltZSgpOwoKICAgICAgICAgICAgICAgIC8vIFNsb3cgcm90YXRpb24KICAgICAgICAgICAgICAgIHBhcnRpY2xlc01lc2gucm90YXRpb24ueSA9IGVsYXBzZWRUaW1lICogMC4wNTsKICAgICAgICAgICAgICAgIHBhcnRpY2xlc01lc2gucm90YXRpb24ueCA9IGVsYXBzZWRUaW1lICogMC4wMjsKCiAgICAgICAgICAgICAgICAvLyBTdWJ0bGUgd2F2ZSBtb3Rpb24KICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHBhcnRpY2xlc0dlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXk7CiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcGFydGljbGVzQ291bnQ7IGkrKykgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IGkzID0gaSAqIDM7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgeCA9IHBvc2l0aW9uc1tpM107CiAgICAgICAgICAgICAgICAgICAgLy8gTWFrZSB0aGVtIGZsb2F0IHVwIHNsb3dseSBhbmQgZHJpZnQKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbnNbaTMgKyAxXSArPSBNYXRoLnNpbihlbGFwc2VkVGltZSAqIDAuNSArIHgpICogMC4wMDI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwYXJ0aWNsZXNHZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLm5lZWRzVXBkYXRlID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAvLyBFYXNpbmcgbW91c2UgcGFyYWxsYXgKICAgICAgICAgICAgICAgIHRhcmdldFggPSBtb3VzZVggKiAwLjU7CiAgICAgICAgICAgICAgICB0YXJnZXRZID0gbW91c2VZICogMC41OwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBwYXJ0aWNsZXNNZXNoLnJvdGF0aW9uLnkgKz0gMC4wNSAqICh0YXJnZXRYIC0gcGFydGljbGVzTWVzaC5yb3RhdGlvbi55KTsKICAgICAgICAgICAgICAgIHBhcnRpY2xlc01lc2gucm90YXRpb24ueCArPSAwLjA1ICogKHRhcmdldFkgLSBwYXJ0aWNsZXNNZXNoLnJvdGF0aW9uLngpOwoKICAgICAgICAgICAgICAgIHJlbmRlcmVyLnJlbmRlcihzY2VuZSwgY2FtZXJhKTsKICAgICAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljayk7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICB0aWNrKCk7CgogICAgICAgICAgICAvLyBSZXNpemUgaGFuZGxlcgogICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gewogICAgICAgICAgICAgICAgY2FtZXJhLmFzcGVjdCA9IGNhbnZhcy5jbGllbnRXaWR0aCAvIGNhbnZhcy5jbGllbnRIZWlnaHQ7CiAgICAgICAgICAgICAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpOwogICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U2l6ZShjYW52YXMuY2xpZW50V2lkdGgsIGNhbnZhcy5jbGllbnRIZWlnaHQpOwogICAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICAvLyBJbml0aWFsaXplIFdlYkdMIGFmdGVyIERPTSBsb2FkcwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBpbml0V2ViR0wpOwogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=";
    const assetFiles = ["assets/page-01-photo-1542224566-6e85f2e6772f.jpg","assets/page-02-photo-1518732714860-b62714ce0c59.jpg","assets/page-03-photo-1596394516093-501ba68a0ba6.jpg","assets/page-04-photo-1587061949409-02df41d5e562.jpg","assets/page-05-photo-1522708323590-d24dbb6b0267.jpg","assets/page-06-photo-1464822759023-fed622ff2c3b.jpg","assets/page-07-photo-1544161515-4ab6ce6db874.jpg","assets/page-08-photo-1555396273-367ea4eb4db5.jpg"];
    const runtimeFiles = ["../../../../assets/runtime/runtime-027051effa47-gsap-min.js","../../../../assets/runtime/runtime-163ebd087cfc-iconify-icon-min.js","../../../../assets/runtime/runtime-25023b521d77-three-min.js","../../../../assets/runtime/runtime-689ca8dda44c-scrolltrigger-min.js","../../../../assets/runtime/runtime-ccc8894b3418-runtime.js"];
    const frame = document.getElementById("neuform-demo");
    const decodeBytes = (value) => Uint8Array.from(atob(value), (character) => character.charCodeAt(0));
    const decode = (value) => new TextDecoder().decode(decodeBytes(value));
    const encodeBytes = (bytes) => {
      let binary = "";
      for (let index = 0; index < bytes.length; index += 32768) {
        binary += String.fromCharCode(...bytes.subarray(index, index + 32768));
      }
      return btoa(binary);
    };
    const mediaTypes = {
      avif: "image/avif",
      gif: "image/gif",
      jpg: "image/jpeg",
      jpeg: "image/jpeg",
      mp4: "video/mp4",
      png: "image/png",
      webm: "video/webm",
      webp: "image/webp"
    };
    const loadAsset = async (file) => {
      const response = await fetch(file, { cache: "no-store", credentials: "omit", redirect: "error" });
      if (!response.ok) throw new Error("Could not load local demo asset: " + file);
      const extension = file.split(".").pop().toLowerCase();
      const contentType = mediaTypes[extension] || "application/octet-stream";
      const bytes = new Uint8Array(await response.arrayBuffer());
      return { base64: encodeBytes(bytes), contentType, file, kind: "asset" };
    };
    Promise.allSettled(assetFiles.map(loadAsset)).then((results) => {
      const runtimeSources = runtimeFiles.map((file) => new URL(file, location.href).href).join(" ");
      const source = decode(encodedHtml).replace("__NEUFORM_RUNTIME_SOURCES__", runtimeSources);
      const mediaAssets = [];
      for (const result of results) {
        if (result.status !== "fulfilled") continue;
        mediaAssets.push(result.value);
      }
      frame.addEventListener("load", () => {
        frame.contentWindow.postMessage({ type: "neuform-assets-v1", assets: mediaAssets }, "*");
      }, { once: true });
      frame.srcdoc = source;
    }).catch((error) => {
      document.body.innerHTML = '<div class="error">Unable to load this sandboxed demo.</div>';
      console.error(error);
    });
  </script>
</body>
</html>

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

What our scanner noticed· Medium risk

  • Large base64-encoded blobs

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Meng To
Publisher
Meng To (Community)
Source
MengTo/Skills · agent-skills/web-design/number-details · commit 5ea1661
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Meng To.

Get it from the source

1 of this skill’s files are not mirrored here, so there is no ZIP. Get the complete skill from its source: MengTo/Skills