@layer primefaces.tokens, primefaces.vendor, primefaces.components, primefaces.behaviors;

/* packages/components/src/icons/lucide.css */
@layer primefaces.tokens {
  :root {
    --p-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M18 6 6 18' /%3E%3Cpath d='m6 6 12 12' /%3E%3C/svg%3E");
    --p-icon-clear: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='m15 9-6 6' /%3E%3Cpath d='m9 9 6 6' /%3E%3C/svg%3E");
    --p-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20 6 9 17l-5-5' /%3E%3C/svg%3E");
    --p-icon-indeterminate: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3C/svg%3E");
    --p-icon-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3Cpath d='M12 5v14' /%3E%3C/svg%3E");
    --p-icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3C/svg%3E");
    --p-icon-collapsed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m9 18 6-6-6-6' /%3E%3C/svg%3E");
    --p-icon-expanded: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 9 6 6 6-6' /%3E%3C/svg%3E");
    --p-icon-dropdown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 9 6 6 6-6' /%3E%3C/svg%3E");
    --p-icon-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m18 15-6-6-6 6' /%3E%3C/svg%3E");
    --p-icon-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 9 6 6 6-6' /%3E%3C/svg%3E");
    --p-icon-prev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m15 18-6-6 6-6' /%3E%3C/svg%3E");
    --p-icon-next: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m9 18 6-6-6-6' /%3E%3C/svg%3E");
    --p-icon-first: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m11 17-5-5 5-5' /%3E%3Cpath d='m18 17-5-5 5-5' /%3E%3C/svg%3E");
    --p-icon-last: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 17 5-5-5-5' /%3E%3Cpath d='m13 17 5-5-5-5' /%3E%3C/svg%3E");
    --p-icon-top: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m17 11-5-5-5 5' /%3E%3Cpath d='m17 18-5-5-5 5' /%3E%3C/svg%3E");
    --p-icon-bottom: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m7 6 5 5 5-5' /%3E%3Cpath d='m7 13 5 5 5-5' /%3E%3C/svg%3E");
    --p-icon-arrow-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m5 12 7-7 7 7' /%3E%3Cpath d='M12 19V5' /%3E%3C/svg%3E");
    --p-icon-arrow-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 5v14' /%3E%3Cpath d='m19 12-7 7-7-7' /%3E%3C/svg%3E");
    --p-icon-arrow-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m12 19-7-7 7-7' /%3E%3Cpath d='M19 12H5' /%3E%3C/svg%3E");
    --p-icon-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3Cpath d='m12 5 7 7-7 7' /%3E%3C/svg%3E");
    --p-icon-sort: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m21 16-4 4-4-4' /%3E%3Cpath d='M17 20V4' /%3E%3Cpath d='m3 8 4-4 4 4' /%3E%3Cpath d='M7 4v16' /%3E%3C/svg%3E");
    --p-icon-sort-asc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m3 8 4-4 4 4' /%3E%3Cpath d='M7 4v16' /%3E%3Cpath d='M11 12h4' /%3E%3Cpath d='M11 16h7' /%3E%3Cpath d='M11 20h10' /%3E%3C/svg%3E");
    --p-icon-sort-desc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m3 16 4 4 4-4' /%3E%3Cpath d='M7 20V4' /%3E%3Cpath d='M11 4h10' /%3E%3Cpath d='M11 8h7' /%3E%3Cpath d='M11 12h4' /%3E%3C/svg%3E");
    --p-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m21 21-4.34-4.34' /%3E%3Ccircle cx='11' cy='11' r='8' /%3E%3C/svg%3E");
    --p-icon-edit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z' /%3E%3Cpath d='m15 5 4 4' /%3E%3C/svg%3E");
    --p-icon-trash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M10 11v6' /%3E%3Cpath d='M14 11v6' /%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' /%3E%3Cpath d='M3 6h18' /%3E%3Cpath d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' /%3E%3C/svg%3E");
    --p-icon-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z' /%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5' /%3E%3Cpath d='M10 9H8' /%3E%3Cpath d='M16 13H8' /%3E%3Cpath d='M16 17H8' /%3E%3C/svg%3E");
    --p-icon-upload: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 3v12' /%3E%3Cpath d='m17 8-5-5-5 5' /%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' /%3E%3C/svg%3E");
    --p-icon-list: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M3 5h.01' /%3E%3Cpath d='M3 12h.01' /%3E%3Cpath d='M3 19h.01' /%3E%3Cpath d='M8 5h13' /%3E%3Cpath d='M8 12h13' /%3E%3Cpath d='M8 19h13' /%3E%3C/svg%3E");
    --p-icon-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Crect width='7' height='7' x='3' y='3' rx='1' /%3E%3Crect width='7' height='7' x='14' y='3' rx='1' /%3E%3Crect width='7' height='7' x='14' y='14' rx='1' /%3E%3Crect width='7' height='7' x='3' y='14' rx='1' /%3E%3C/svg%3E");
    --p-icon-options: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915' /%3E%3Ccircle cx='12' cy='12' r='3' /%3E%3C/svg%3E");
    --p-icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8' /%3E%3Cpath d='M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z' /%3E%3C/svg%3E");
    --p-icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M8 2v3' /%3E%3Cpath d='M16 2v3' /%3E%3Crect x='3' y='3' width='18' height='18' rx='2' /%3E%3Cpath d='M3 9h18' /%3E%3C/svg%3E");
    --p-icon-maximize: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M15 3h6v6' /%3E%3Cpath d='m21 3-7 7' /%3E%3Cpath d='m3 21 7-7' /%3E%3Cpath d='M9 21H3v-6' /%3E%3C/svg%3E");
    --p-icon-restore: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m14 10 7-7' /%3E%3Cpath d='M20 10h-6V4' /%3E%3Cpath d='m3 21 7-7' /%3E%3Cpath d='M4 14h6v6' /%3E%3C/svg%3E");
    --p-icon-show: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0' /%3E%3Ccircle cx='12' cy='12' r='3' /%3E%3C/svg%3E");
    --p-icon-hide: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49' /%3E%3Cpath d='M14.084 14.158a3 3 0 0 1-4.242-4.242' /%3E%3Cpath d='M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143' /%3E%3Cpath d='m2 2 20 20' /%3E%3C/svg%3E");
    --p-icon-zoom-in: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='11' cy='11' r='8' /%3E%3Cline x1='21' x2='16.65' y1='21' y2='16.65' /%3E%3Cline x1='11' x2='11' y1='8' y2='14' /%3E%3Cline x1='8' x2='14' y1='11' y2='11' /%3E%3C/svg%3E");
    --p-icon-zoom-out: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='11' cy='11' r='8' /%3E%3Cline x1='21' x2='16.65' y1='21' y2='16.65' /%3E%3Cline x1='8' x2='14' y1='11' y2='11' /%3E%3C/svg%3E");
    --p-icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z' /%3E%3C/svg%3E");
    --p-icon-star-filled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z' /%3E%3C/svg%3E");
    --p-icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='M12 16v-4' /%3E%3Cpath d='M12 8h.01' /%3E%3C/svg%3E");
    --p-icon-success: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='m16 9-5.5 5.5L8 12' /%3E%3C/svg%3E");
    --p-icon-warn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3' /%3E%3Cpath d='M12 9v4' /%3E%3Cpath d='M12 17h.01' /%3E%3C/svg%3E");
    --p-icon-error: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='m15 9-6 6' /%3E%3Cpath d='m9 9 6 6' /%3E%3C/svg%3E");
    --p-icon-fatal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='M4.929 4.929 19.07 19.071' /%3E%3C/svg%3E");
    --p-icon-loading: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M21 12a9 9 0 1 1-6.219-8.56' /%3E%3C/svg%3E");
  }
}

/* packages/components/src/base/interactions.css */
@layer primefaces.vendor {
  .p-draggable-handle {
    touch-action: none;
  }
  .p-resizable {
    position: relative;
  }
  .p-resizable-handle {
    position: absolute;
    display: block;
    touch-action: none;
  }
  .p-resizable-disabled .p-resizable-handle {
    display: none;
  }
  .p-resizable-n {
    cursor: n-resize;
    height: 7px;
    width: 100%;
    top: -5px;
    left: 0;
  }
  .p-resizable-s {
    cursor: s-resize;
    height: 7px;
    width: 100%;
    bottom: -5px;
    left: 0;
  }
  .p-resizable-e {
    cursor: e-resize;
    width: 7px;
    right: -5px;
    top: 0;
    height: 100%;
  }
  .p-resizable-w {
    cursor: w-resize;
    width: 7px;
    left: -5px;
    top: 0;
    height: 100%;
  }
  .p-resizable-se {
    cursor: se-resize;
    width: 12px;
    height: 12px;
    right: 1px;
    bottom: 1px;
  }
  .p-resizable-sw {
    cursor: sw-resize;
    width: 9px;
    height: 9px;
    left: -5px;
    bottom: -5px;
  }
  .p-resizable-nw {
    cursor: nw-resize;
    width: 9px;
    height: 9px;
    left: -5px;
    top: -5px;
  }
  .p-resizable-ne {
    cursor: ne-resize;
    width: 9px;
    height: 9px;
    right: -5px;
    top: -5px;
  }
  .p-sortable-handle {
    touch-action: none;
  }
  .p-effect-transfer,
  .p-effect-explode {
    pointer-events: none;
  }
  .p-effect-transfer {
    border: 1px dashed var(--p-primary-color, currentColor);
  }
}

/* packages/components/src/base/common.css */
@layer primefaces.components {
  *,
  ::before,
  ::after {
    box-sizing: border-box;
  }
  .p-widget {
    font-family: var(--p-typography-font-family);
    font-size: var(--p-typography-font-size);
    font-weight: var(--p-typography-font-weight);
    line-height: var(--p-typography-line-height);
    text-decoration: none;
    :where(.p-widget) & {
      font-size: inherit;
    }
  }
  :where(.p-widget-content) {
    background: var(--p-widget-content-background);
    color: var(--p-widget-content-color);
    border-color: var(--p-widget-content-border-color);
  }
  :where(.p-widget-header) {
    background: var(--p-widget-header-background);
    color: var(--p-widget-header-color);
    border-color: var(--p-widget-header-border-color);
    font-weight: var(--p-widget-header-font-weight);
  }
  :where(.p-state-hover) {
    background: var(--p-widget-hover-background);
    color: var(--p-widget-hover-color);
  }
  :where(.p-state-active) {
    background: var(--p-widget-active-background);
    color: var(--p-widget-active-color);
  }
  :where(.p-state-highlight) {
    background: var(--p-widget-highlight-background);
    color: var(--p-widget-highlight-color);
  }
  :where(.p-state-highlight a, .p-state-active a) {
    color: inherit;
  }
  :where(.p-state-error) {
    color: var(--p-widget-error-color);
    border-color: var(--p-widget-error-border-color);
  }
  :where(.p-state-error-text) {
    color: var(--p-widget-error-color);
  }
  .p-state-disabled {
    opacity: var(--p-disabled-opacity);
    cursor: default !important;
    pointer-events: none;
    .p-state-disabled {
      opacity: 1;
    }
  }
  :where(.p-priority-primary) {
    font-weight: 600;
  }
  :where(.p-priority-secondary) {
    opacity: var(--p-disabled-opacity);
    font-weight: var(--p-typography-font-weight);
  }
  .pi,
  .p-button-icon-left,
  .p-button-icon-right,
  .p-menuitem-icon,
  .p-submenu-icon,
  .p-treenode-icon {
    font-size: var(--p-icon-size);
  }
  .p-icon {
    display: inline-block;
    flex-shrink: 0;
    font-size: var(--p-icon-size);
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    vertical-align: baseline;
    &::before {
      content: " ";
      background: currentColor;
      forced-color-adjust: none;
      mask: var(--_icon, linear-gradient(transparent, transparent)) center / contain no-repeat;
    }
  }
  .p-widget-overlay {
    background: var(--p-mask-background);
    color: var(--p-mask-color);
  }
  :where(select, input:not([role=combobox], [type=file], [type=checkbox], [type=radio], [type=range], [type=color], [type=hidden], .p-widget, .p-inputfield)) {
    color: var(--p-form-field-color);
    background: var(--p-form-field-background);
    padding: var(--p-form-field-padding-y) var(--p-form-field-padding-x);
    border: 1px solid var(--p-form-field-border-color);
    border-radius: var(--p-form-field-border-radius);
    outline: 0 none;
    font-family: inherit;
    font-size: var(--p-form-field-font-size);
    box-shadow: var(--p-form-field-shadow);
    transition:
      background var(--p-form-field-transition-duration),
      color var(--p-form-field-transition-duration),
      border-color var(--p-form-field-transition-duration),
      outline-color var(--p-form-field-transition-duration),
      box-shadow var(--p-form-field-transition-duration);
  }
  :where(select:hover, input:not([role=combobox], [type=file], [type=checkbox], [type=radio], [type=range], [type=color], [type=hidden], .p-widget, .p-inputfield):hover) {
    border-color: var(--p-form-field-hover-border-color);
  }
  :where(select:focus, input:not([role=combobox], [type=file], [type=checkbox], [type=radio], [type=range], [type=color], [type=hidden], .p-widget, .p-inputfield):focus) {
    border-color: var(--p-form-field-focus-border-color);
    outline: var(--p-form-field-focus-ring-width) var(--p-form-field-focus-ring-style) var(--p-form-field-focus-ring-color);
    outline-offset: var(--p-form-field-focus-ring-offset);
    box-shadow: var(--p-form-field-focus-ring-shadow);
  }
  @keyframes p-enter {
    from {
      opacity: 0;
      translate: 0 var(--_enter-offset, 0);
    }
  }
  @keyframes fade-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
}

/* packages/components/src/base/core.css */
@layer primefaces.components {
  .p-overlay-visible {
    visibility: visible;
  }
  .p-overflow-hidden {
    overflow: hidden;
  }
  .p-reset {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    text-decoration: none;
    font-size: 100%;
    list-style: none;
  }
  .p-transparent-pixel {
    content: url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==);
  }
  @media only all {
    th.p-column-p-6,
    td.p-column-p-6,
    th.p-column-p-5,
    td.p-column-p-5,
    th.p-column-p-4,
    td.p-column-p-4,
    th.p-column-p-3,
    td.p-column-p-3,
    th.p-column-p-2,
    td.p-column-p-2,
    th.p-column-p-1,
    td.p-column-p-1 {
      display: none;
    }
  }
  @media screen and (min-width: 20em) {
    th.p-column-p-1,
    td.p-column-p-1 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 30em) {
    th.p-column-p-2,
    td.p-column-p-2 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 40em) {
    th.p-column-p-3,
    td.p-column-p-3 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 50em) {
    th.p-column-p-4,
    td.p-column-p-4 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 60em) {
    th.p-column-p-5,
    td.p-column-p-5 {
      display: table-cell;
    }
  }
  @media screen and (min-width: 70em) {
    th.p-column-p-6,
    td.p-column-p-6 {
      display: table-cell;
    }
  }
  .p-connected-overlay-enter {
    opacity: 0;
    transform: scaleY(0.8);
  }
  .p-connected-overlay-enter-active {
    opacity: 1;
    transform: scaleY(1);
    transition: transform var(--p-overlay-enter-duration) var(--p-transition-easing-enter), opacity var(--p-overlay-enter-duration) var(--p-transition-easing-enter);
  }
  .p-connected-overlay-enter-done {
    transform: none;
  }
  .p-connected-overlay-exit {
    opacity: 1;
  }
  .p-connected-overlay-exit-active {
    opacity: 0;
    transition: opacity var(--p-overlay-leave-duration) var(--p-transition-easing-exit);
  }
}

/* packages/components/src/base/document.css */
@layer primefaces.components {
  :root {
    accent-color: var(--p-primary-color);
  }
  ::selection {
    background: var(--p-highlight-background);
    color: var(--p-highlight-color);
  }
  :where(.p-chips-token-icon, .p-autocomplete-token-icon, .p-selectcheckboxmenu-token-icon, .p-password-icon, .p-chip-remove-icon, .p-breadcrumb-home-icon)::after {
    content: "";
    position: absolute;
    inset: calc(50% - 12px);
  }
  :where(.p-chip-remove-icon, .p-breadcrumb-home-icon) {
    position: relative;
  }
  @media (prefers-reduced-motion: reduce) {
    :root,
    [data-p-scope] {
      --p-transition-duration: 0s;
    }
    *,
    ::before,
    ::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
  @media (prefers-reduced-transparency: reduce) {
    :root,
    [data-p-scope] {
      --p-overlay-backdrop-filter: none;
      --p-navigation-backdrop-filter: none;
      --p-button-backdrop-filter: none;
      --p-mask-backdrop-filter: none;
      --p-toast-blur: 0px;
    }
  }
  :root[data-p-animations=off],
  :root[data-p-animations=off] [data-p-scope] {
    --p-message-enter-duration: 0s;
    --p-dataview-content-enter-duration: 0s;
    --p-fileupload-transition-duration: 0s;
  }
  :root {
    background: var(--p-document-background);
  }
  @media print {
    :root {
      color-scheme: light !important;
    }
    *,
    ::before,
    ::after {
      box-shadow: none !important;
      text-shadow: none !important;
    }
    .p-button,
    .p-badge,
    .p-tag,
    .p-chip,
    .p-chkbox-box,
    .p-radiobutton-box,
    .p-toggleswitch,
    .p-slider,
    .p-progressbar,
    .p-state-highlight,
    .p-state-active {
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }
    .p-datatable-scrollable-body,
    .p-treetable-scrollable-body,
    .p-datatable-virtualscroll .p-datatable-scrollable-body {
      height: auto !important;
      max-height: none !important;
      overflow: visible !important;
    }
    tr,
    .p-panel,
    .p-card,
    .p-fieldset {
      break-inside: avoid;
    }
    .p-growl,
    .p-tooltip,
    .p-scrolltop,
    .p-blockui,
    .p-widget-overlay,
    .p-ajax-status,
    .p-paginator,
    .p-datatable-sticky,
    .p-log,
    .p-stack,
    .p-dock {
      display: none !important;
    }
    .p-sticky {
      position: static !important;
      width: auto !important;
    }
  }
}

/* packages/components/src/base/grid.css */
@layer primefaces.components {
  .ui-grid {
    clear: both;
    padding: 0;
    margin: 0;
    &::before,
    &::after {
      content: "";
      display: table;
    }
    &::after {
      clear: both;
    }
    .ui-grid-row {
      display: flex;
      clear: both;
    }
  }
  .ui-grid-row {
    &::after {
      clear: both;
      content: "";
      display: table;
    }
  }
  .ui-grid-col-1,
  .ui-grid-col-2,
  .ui-grid-col-3,
  .ui-grid-col-4,
  .ui-grid-col-5,
  .ui-grid-col-6,
  .ui-grid-col-7,
  .ui-grid-col-8,
  .ui-grid-col-9,
  .ui-grid-col-10,
  .ui-grid-col-11,
  .ui-grid-col-12 {
    float: left;
  }
  .ui-grid-col-0 {
    display: none;
  }
  .ui-grid-col-1 {
    width: 8.33333333%;
  }
  .ui-grid-col-2 {
    width: 16.66666667%;
  }
  .ui-grid-col-3 {
    width: 25%;
  }
  .ui-grid-col-4 {
    width: 33.33333333%;
  }
  .ui-grid-col-5 {
    width: 41.66666667%;
  }
  .ui-grid-col-6 {
    width: 50%;
  }
  .ui-grid-col-7 {
    width: 58.33333333%;
  }
  .ui-grid-col-8 {
    width: 66.66666667%;
  }
  .ui-grid-col-9 {
    width: 75%;
  }
  .ui-grid-col-10 {
    width: 83.33333333%;
  }
  .ui-grid-col-11 {
    width: 91.66666667%;
  }
  .ui-grid-col-12 {
    width: 100%;
  }
  @media (min-width: 480px) {
    .ui-grid-fixed {
      width: 480px;
    }
  }
  @media (min-width: 768px) {
    .ui-grid-fixed {
      width: 768px;
    }
  }
  @media (min-width: 960px) {
    .ui-grid-fixed {
      width: 960px;
    }
  }
  @media (min-width: 1024px) {
    .ui-grid-fixed {
      width: 1024px;
    }
  }
  @media (max-width: 640px) {
    .ui-grid-responsive {
      .ui-grid-row {
        display: block;
      }
      .ui-grid-col-1,
      .ui-grid-col-2,
      .ui-grid-col-3,
      .ui-grid-col-4,
      .ui-grid-col-5,
      .ui-grid-col-6,
      .ui-grid-col-7,
      .ui-grid-col-8,
      .ui-grid-col-9,
      .ui-grid-col-10,
      .ui-grid-col-11,
      .ui-grid-col-12 {
        width: 100%;
        float: none;
      }
    }
  }
  .ui-grid.ui-grid-pad > .ui-grid-row > div {
    padding: .25em .5em;
  }
  .ui-g {
    display: flex;
    flex-wrap: wrap;
    &::after {
      clear: both;
      content: "";
      display: table;
    }
  }
  .ui-g-1,
  .ui-g-2,
  .ui-g-3,
  .ui-g-4,
  .ui-g-5,
  .ui-g-6,
  .ui-g-7,
  .ui-g-8,
  .ui-g-9,
  .ui-g-10,
  .ui-g-11,
  .ui-g-12 {
    float: left;
    padding: 0.5em;
  }
  .ui-g-0 {
    display: none;
  }
  .ui-g-1 {
    width: 8.33333333%;
  }
  .ui-g-2 {
    width: 16.66666667%;
  }
  .ui-g-3 {
    width: 25%;
  }
  .ui-g-4 {
    width: 33.33333333%;
  }
  .ui-g-5 {
    width: 41.66666667%;
  }
  .ui-g-6 {
    width: 50%;
  }
  .ui-g-7 {
    width: 58.33333333%;
  }
  .ui-g-8 {
    width: 66.66666667%;
  }
  .ui-g-9 {
    width: 75%;
  }
  .ui-g-10 {
    width: 83.33333333%;
  }
  .ui-g-11 {
    width: 91.66666667%;
  }
  .ui-g-12 {
    width: 100%;
  }
  .ui-g-offset-12 {
    margin-left: 100%;
  }
  .ui-g-offset-11 {
    margin-left: 91.66666667%;
  }
  .ui-g-offset-10 {
    margin-left: 83.33333333%;
  }
  .ui-g-offset-9 {
    margin-left: 75%;
  }
  .ui-g-offset-8 {
    margin-left: 66.66666667%;
  }
  .ui-g-offset-7 {
    margin-left: 58.33333333%;
  }
  .ui-g-offset-6 {
    margin-left: 50%;
  }
  .ui-g-offset-5 {
    margin-left: 41.66666667%;
  }
  .ui-g-offset-4 {
    margin-left: 33.33333333%;
  }
  .ui-g-offset-3 {
    margin-left: 25%;
  }
  .ui-g-offset-2 {
    margin-left: 16.66666667%;
  }
  .ui-g-offset-1 {
    margin-left: 8.33333333%;
  }
  .ui-g-offset-0 {
    margin-left: 0%;
  }
  @media screen and (max-width: 40em) {
    .ui-sm-1,
    .ui-sm-2,
    .ui-sm-3,
    .ui-sm-4,
    .ui-sm-5,
    .ui-sm-6,
    .ui-sm-7,
    .ui-sm-8,
    .ui-sm-9,
    .ui-sm-10,
    .ui-sm-11,
    .ui-sm-12 {
      padding: 0.5em;
    }
    .ui-sm-0 {
      display: none;
    }
    .ui-sm-1 {
      width: 8.33333333%;
    }
    .ui-sm-2 {
      width: 16.66666667%;
    }
    .ui-sm-3 {
      width: 25%;
    }
    .ui-sm-4 {
      width: 33.33333333%;
    }
    .ui-sm-5 {
      width: 41.66666667%;
    }
    .ui-sm-6 {
      width: 50%;
    }
    .ui-sm-7 {
      width: 58.33333333%;
    }
    .ui-sm-8 {
      width: 66.66666667%;
    }
    .ui-sm-9 {
      width: 75%;
    }
    .ui-sm-10 {
      width: 83.33333333%;
    }
    .ui-sm-11 {
      width: 91.66666667%;
    }
    .ui-sm-12 {
      width: 100%;
    }
    .ui-sm-offset-12 {
      margin-left: 100%;
    }
    .ui-sm-offset-11 {
      margin-left: 91.66666667%;
    }
    .ui-sm-offset-10 {
      margin-left: 83.33333333%;
    }
    .ui-sm-offset-9 {
      margin-left: 75%;
    }
    .ui-sm-offset-8 {
      margin-left: 66.66666667%;
    }
    .ui-sm-offset-7 {
      margin-left: 58.33333333%;
    }
    .ui-sm-offset-6 {
      margin-left: 50%;
    }
    .ui-sm-offset-5 {
      margin-left: 41.66666667%;
    }
    .ui-sm-offset-4 {
      margin-left: 33.33333333%;
    }
    .ui-sm-offset-3 {
      margin-left: 25%;
    }
    .ui-sm-offset-2 {
      margin-left: 16.66666667%;
    }
    .ui-sm-offset-1 {
      margin-left: 8.33333333%;
    }
    .ui-sm-offset-0 {
      margin-left: 0%;
    }
  }
  @media screen and (min-width: 40.063em) {
    .ui-md-1,
    .ui-md-2,
    .ui-md-3,
    .ui-md-4,
    .ui-md-5,
    .ui-md-6,
    .ui-md-7,
    .ui-md-8,
    .ui-md-9,
    .ui-md-10,
    .ui-md-11,
    .ui-md-12 {
      padding: 0.5em;
    }
    .ui-md-0 {
      display: none;
    }
    .ui-md-1 {
      width: 8.33333333%;
    }
    .ui-md-2 {
      width: 16.66666667%;
    }
    .ui-md-3 {
      width: 25%;
    }
    .ui-md-4 {
      width: 33.33333333%;
    }
    .ui-md-5 {
      width: 41.66666667%;
    }
    .ui-md-6 {
      width: 50%;
    }
    .ui-md-7 {
      width: 58.33333333%;
    }
    .ui-md-8 {
      width: 66.66666667%;
    }
    .ui-md-9 {
      width: 75%;
    }
    .ui-md-10 {
      width: 83.33333333%;
    }
    .ui-md-11 {
      width: 91.66666667%;
    }
    .ui-md-12 {
      width: 100%;
    }
    .ui-md-offset-12 {
      margin-left: 100%;
    }
    .ui-md-offset-11 {
      margin-left: 91.66666667%;
    }
    .ui-md-offset-10 {
      margin-left: 83.33333333%;
    }
    .ui-md-offset-9 {
      margin-left: 75%;
    }
    .ui-md-offset-8 {
      margin-left: 66.66666667%;
    }
    .ui-md-offset-7 {
      margin-left: 58.33333333%;
    }
    .ui-md-offset-6 {
      margin-left: 50%;
    }
    .ui-md-offset-5 {
      margin-left: 41.66666667%;
    }
    .ui-md-offset-4 {
      margin-left: 33.33333333%;
    }
    .ui-md-offset-3 {
      margin-left: 25%;
    }
    .ui-md-offset-2 {
      margin-left: 16.66666667%;
    }
    .ui-md-offset-1 {
      margin-left: 8.33333333%;
    }
    .ui-md-offset-0 {
      margin-left: 0%;
    }
  }
  @media screen and (min-width: 64.063em) {
    .ui-lg-1,
    .ui-lg-2,
    .ui-lg-3,
    .ui-lg-4,
    .ui-lg-5,
    .ui-lg-6,
    .ui-lg-7,
    .ui-lg-8,
    .ui-lg-9,
    .ui-lg-10,
    .ui-lg-11,
    .ui-lg-12 {
      padding: 0.5em;
    }
    .ui-lg-0 {
      display: none;
    }
    .ui-lg-1 {
      width: 8.33333333%;
    }
    .ui-lg-2 {
      width: 16.66666667%;
    }
    .ui-lg-3 {
      width: 25%;
    }
    .ui-lg-4 {
      width: 33.33333333%;
    }
    .ui-lg-5 {
      width: 41.66666667%;
    }
    .ui-lg-6 {
      width: 50%;
    }
    .ui-lg-7 {
      width: 58.33333333%;
    }
    .ui-lg-8 {
      width: 66.66666667%;
    }
    .ui-lg-9 {
      width: 75%;
    }
    .ui-lg-10 {
      width: 83.33333333%;
    }
    .ui-lg-11 {
      width: 91.66666667%;
    }
    .ui-lg-12 {
      width: 100%;
    }
    .ui-lg-offset-12 {
      margin-left: 100%;
    }
    .ui-lg-offset-11 {
      margin-left: 91.66666667%;
    }
    .ui-lg-offset-10 {
      margin-left: 83.33333333%;
    }
    .ui-lg-offset-9 {
      margin-left: 75%;
    }
    .ui-lg-offset-8 {
      margin-left: 66.66666667%;
    }
    .ui-lg-offset-7 {
      margin-left: 58.33333333%;
    }
    .ui-lg-offset-6 {
      margin-left: 50%;
    }
    .ui-lg-offset-5 {
      margin-left: 41.66666667%;
    }
    .ui-lg-offset-4 {
      margin-left: 33.33333333%;
    }
    .ui-lg-offset-3 {
      margin-left: 25%;
    }
    .ui-lg-offset-2 {
      margin-left: 16.66666667%;
    }
    .ui-lg-offset-1 {
      margin-left: 8.33333333%;
    }
    .ui-lg-offset-0 {
      margin-left: 0%;
    }
  }
  @media screen and (min-width: 90.063em) {
    .ui-xl-1,
    .ui-xl-2,
    .ui-xl-3,
    .ui-xl-4,
    .ui-xl-5,
    .ui-xl-6,
    .ui-xl-7,
    .ui-xl-8,
    .ui-xl-9,
    .ui-xl-10,
    .ui-xl-11,
    .ui-xl-12 {
      padding: 0.5em;
    }
    .ui-xl-0 {
      display: none;
    }
    .ui-xl-1 {
      width: 8.33333333%;
    }
    .ui-xl-2 {
      width: 16.66666667%;
    }
    .ui-xl-3 {
      width: 25%;
    }
    .ui-xl-4 {
      width: 33.33333333%;
    }
    .ui-xl-5 {
      width: 41.66666667%;
    }
    .ui-xl-6 {
      width: 50%;
    }
    .ui-xl-7 {
      width: 58.33333333%;
    }
    .ui-xl-8 {
      width: 66.66666667%;
    }
    .ui-xl-9 {
      width: 75%;
    }
    .ui-xl-10 {
      width: 83.33333333%;
    }
    .ui-xl-11 {
      width: 91.66666667%;
    }
    .ui-xl-12 {
      width: 100%;
    }
    .ui-xl-offset-12 {
      margin-left: 100%;
    }
    .ui-xl-offset-11 {
      margin-left: 91.66666667%;
    }
    .ui-xl-offset-10 {
      margin-left: 83.33333333%;
    }
    .ui-xl-offset-9 {
      margin-left: 75%;
    }
    .ui-xl-offset-8 {
      margin-left: 66.66666667%;
    }
    .ui-xl-offset-7 {
      margin-left: 58.33333333%;
    }
    .ui-xl-offset-6 {
      margin-left: 50%;
    }
    .ui-xl-offset-5 {
      margin-left: 41.66666667%;
    }
    .ui-xl-offset-4 {
      margin-left: 33.33333333%;
    }
    .ui-xl-offset-3 {
      margin-left: 25%;
    }
    .ui-xl-offset-2 {
      margin-left: 16.66666667%;
    }
    .ui-xl-offset-1 {
      margin-left: 8.33333333%;
    }
    .ui-xl-offset-0 {
      margin-left: 0%;
    }
  }
  .ui-g-nopad {
    padding: 0;
  }
}

/* packages/components/src/base/helpers.css */
@layer primefaces.components {
  .p-hidden-accessible {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }
  :where(.p-resizable) {
    display: flex;
    flex-direction: column;
    > .p-widget-content {
      flex-grow: 1;
    }
  }
}

/* packages/components/src/base/scrollbar.css */
@layer primefaces.components {
  :where(.p-autocomplete-panel, .p-selectonemenu-items-wrapper, .p-selectcheckboxmenu-items-wrapper, .p-splitbuttonmenu-list-wrapper, .p-columntoggler, .p-menu-dynamic-maxheight, .p-slidemenu-content, .p-selectlistbox-listcontainer, .p-multiselectlistbox-listcontainer, .p-picklist-list, .p-orderlist-list, .p-tree-container, .p-log-content, .p-terminal, textarea.p-inputfield, .p-datatable-tablewrapper, .p-datatable-scrollable-body, .p-treetable-scrollable-body, .p-datascroller-inline .p-datascroller-content, .p-carousel-content, .p-dialog, .p-dialog-content, .p-sidebar, .p-accordion-content, .p-panelmenu-content, .p-tabmenu-nav) {
    scrollbar-width: var(--p-scrollbar-width);
    scrollbar-color: var(--p-scrollbar-thumb-color) var(--p-scrollbar-track-color);
  }
}

/* packages/components/src/base/backdrop.css */
@layer primefaces.components {
  :where(.p-sidebar, .p-overlaypanel, .p-confirm-popup, .p-input-overlay, .p-selectonemenu-panel, .p-selectcheckboxmenu-panel, .p-autocomplete-panel, .p-cascadeselect-items-wrapper > .p-cascadeselect-items, .p-menu-dynamic, .p-menu-child, .p-contextmenu, .p-tooltip-text, .p-growl-item-container, .p-password-panel, .p-columntoggler) {
    backdrop-filter: var(--p-overlay-backdrop-filter);
  }
  :where(.p-dialog-box, .p-toolbar)::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
  }
  :where(.p-dialog-box)::before {
    z-index: -1;
    backdrop-filter: var(--p-overlay-backdrop-filter);
  }
  :where(.p-toolbar) {
    position: relative;
  }
  :where(.p-toolbar) > * {
    position: relative;
  }
  :where(.p-toolbar)::before {
    backdrop-filter: var(--p-navigation-backdrop-filter);
  }
  :where(.p-button) {
    backdrop-filter: var(--p-button-backdrop-filter);
  }
  :where(.p-widget-overlay, .p-dialog-mask) {
    backdrop-filter: var(--p-mask-backdrop-filter);
  }
}

/* packages/components/src/badge/badge.css */
@layer primefaces.components {
  .p-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--p-badge-gap);
    padding: var(--p-badge-padding);
    background: var(--p-badge-primary-background);
    color: var(--p-badge-primary-color);
    font-size: var(--p-badge-font-size);
    font-weight: var(--p-badge-font-weight);
    min-width: var(--p-badge-min-width);
    height: var(--p-badge-height);
    line-height: var(--p-badge-height);
    border-radius: var(--p-badge-border-radius);
    text-align: center;
    white-space: nowrap;
    &:not(.p-widget) {
      display: inline-block;
      border-radius: 50%;
    }
    &.p-state-hidden {
      display: none;
    }
    .p-badge-icon {
      font-size: inherit;
      line-height: 1;
      margin: 0;
    }
    &.p-badge-secondary {
      background: var(--p-badge-secondary-background);
      color: var(--p-badge-secondary-color);
    }
    &.p-badge-success {
      background: var(--p-badge-success-background);
      color: var(--p-badge-success-color);
    }
    &.p-badge-info {
      background: var(--p-badge-info-background);
      color: var(--p-badge-info-color);
    }
    &.p-badge-warning {
      background: var(--p-badge-warn-background);
      color: var(--p-badge-warn-color);
    }
    &.p-badge-danger {
      background: var(--p-badge-danger-background);
      color: var(--p-badge-danger-color);
    }
    &.p-badge-help {
      background: var(--p-badge-help-background);
      color: var(--p-badge-help-color);
    }
    &.p-badge-contrast {
      background: var(--p-badge-contrast-background);
      color: var(--p-badge-contrast-color);
    }
    &.p-badge-sm {
      font-size: var(--p-badge-sm-font-size);
      min-width: var(--p-badge-sm-min-width);
      height: var(--p-badge-sm-height);
      line-height: var(--p-badge-sm-height);
    }
    &.p-badge-lg {
      font-size: var(--p-badge-lg-font-size);
      min-width: var(--p-badge-lg-min-width);
      height: var(--p-badge-lg-height);
      line-height: var(--p-badge-lg-height);
    }
    &.p-badge-xl {
      font-size: var(--p-badge-xl-font-size);
      min-width: var(--p-badge-xl-min-width);
      height: var(--p-badge-xl-height);
      line-height: var(--p-badge-xl-height);
    }
    &.p-badge-dot {
      width: var(--p-badge-dot-size);
      min-width: var(--p-badge-dot-size);
      height: var(--p-badge-dot-size);
      border-radius: 50%;
      padding: 0;
    }
    &.p-badge-no-gutter {
      padding: 0;
      border-radius: 50%;
    }
  }
  .p-overlay-badge {
    position: relative;
    display: inline-block;
    cursor: pointer;
    .p-badge {
      position: absolute;
      top: 0;
      right: 0;
      transform: translate(50%, -50%);
      transform-origin: 100% 0;
      margin: 0;
      z-index: 1;
      outline: var(--p-overlaybadge-outline-width) solid var(--p-overlaybadge-outline-color);
      &:dir(rtl) {
        right: auto;
        left: 0;
        transform: translate(-50%, -50%);
        transform-origin: 0 0;
      }
    }
  }
}

/* packages/components/src/forms/checkbox.css */
@layer primefaces.components {
  .p-chkbox {
    position: relative;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin: 0;
    width: auto;
    height: auto;
    .p-chkbox-box {
      display: inline-block;
      cursor: pointer;
      position: relative;
      text-align: center;
      width: var(--p-checkbox-width);
      min-width: var(--p-checkbox-width);
      height: var(--p-checkbox-height);
      background: var(--p-checkbox-background);
      color: var(--p-checkbox-icon-color);
      border: 1px solid var(--p-checkbox-border-color);
      border-radius: var(--p-checkbox-border-radius);
      box-shadow: var(--p-checkbox-shadow);
      outline-color: transparent;
      transition:
        background var(--p-checkbox-transition-duration),
        border-color var(--p-checkbox-transition-duration),
        box-shadow var(--p-checkbox-transition-duration),
        outline-color var(--p-checkbox-transition-duration);
      &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
      &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
        border-color: var(--p-checkbox-hover-border-color);
      }
      &.p-state-focus {
        border-color: var(--p-checkbox-focus-border-color);
        outline: var(--p-checkbox-focus-ring-width) var(--p-checkbox-focus-ring-style) var(--p-checkbox-focus-ring-color);
        outline-offset: var(--p-checkbox-focus-ring-offset);
        box-shadow: var(--p-checkbox-focus-ring-shadow);
      }
      &.p-state-active {
        border-color: var(--p-checkbox-checked-border-color);
        background: var(--p-checkbox-checked-background);
        color: var(--p-checkbox-icon-checked-color);
        &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
        &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
          border-color: var(--p-checkbox-checked-hover-border-color);
          background: var(--p-checkbox-checked-hover-background);
          color: var(--p-checkbox-icon-checked-hover-color);
        }
        &.p-state-focus {
          border-color: var(--p-checkbox-checked-focus-border-color);
        }
      }
      &.p-state-error,
      &.p-state-error:is(:hover, .p-state-hover, .p-state-focus),
      &.p-state-error.p-state-active:is(:hover, .p-state-hover, .p-state-focus) {
        border-color: var(--p-checkbox-invalid-border-color);
      }
      &.p-state-disabled {
        opacity: 1;
        background: var(--p-checkbox-disabled-background);
        border-color: var(--p-checkbox-checked-disabled-border-color);
        color: var(--p-checkbox-icon-disabled-color);
      }
      .p-chkbox-icon {
        overflow: visible;
        position: absolute;
        left: 50%;
        top: 50%;
        font-size: var(--p-checkbox-icon-size);
        line-height: 1;
        margin-left: calc(-1 * var(--p-checkbox-icon-size) / 2);
        margin-top: calc(-1 * var(--p-checkbox-icon-size) / 2);
        &.p-checkbox-checked-icon {
          --_icon: var(--p-checkbox-checked-icon);
        }
        &.p-checkbox-indeterminate-icon {
          --_icon: var(--p-checkbox-indeterminate-icon);
        }
        &.p-checkbox-crossed-icon {
          --_icon: var(--p-checkbox-crossed-icon);
        }
      }
    }
    .p-chkbox-box.p-chkbox-readonly,
    &.p-state-readonly .p-chkbox-box,
    .p-state-readonly & .p-chkbox-box {
      cursor: default;
    }
    .p-chkbox-label {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer;
      margin: 0;
      padding-inline-start: var(--p-checkbox-label-gap);
      outline: 0 none;
      z-index: 1;
      &.p-chkbox-readonly {
        cursor: default;
      }
    }
  }
  .p-input-filled .p-chkbox .p-chkbox-box {
    background: var(--p-checkbox-filled-background);
    &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
    &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
      background: var(--p-form-field-filled-hover-background);
    }
    &.p-state-active {
      background: var(--p-checkbox-checked-background);
      &.p-state-hover:not(.p-chkbox-readonly, .p-state-readonly, .p-state-readonly *),
      &:not(.p-state-disabled, .p-chkbox-readonly, .p-state-readonly, .p-state-readonly *):hover {
        background: var(--p-checkbox-checked-hover-background);
      }
    }
    &.p-state-disabled {
      background: var(--p-checkbox-disabled-background);
    }
  }
  .p-chkbox-sm {
    --p-checkbox-width: var(--p-checkbox-sm-width);
    --p-checkbox-height: var(--p-checkbox-sm-height);
    --p-checkbox-icon-size: var(--p-checkbox-icon-sm-size);
  }
  .p-chkbox-lg {
    --p-checkbox-width: var(--p-checkbox-lg-width);
    --p-checkbox-height: var(--p-checkbox-lg-height);
    --p-checkbox-icon-size: var(--p-checkbox-icon-lg-size);
  }
  .p-state-highlight .p-chkbox .p-chkbox-box.p-state-active.p-state-active {
    border-color: var(--p-highlight-color);
  }
}

/* packages/components/src/forms/inputfield.css */
@layer primefaces.components {
  @keyframes pf-autofill {
    to {
    }
  }
  input:-webkit-autofill {
    animation-name: pf-autofill;
    animation-duration: 0.1s;
    animation-fill-mode: both;
  }
  .p-sr-only {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal;
  }
  input::placeholder,
  textarea::placeholder {
    color: var(--p-form-field-placeholder-color);
    opacity: 1;
  }
  .p-inputfield {
    font-family: inherit;
    font-size: var(--p-inputtext-font-size);
    font-weight: var(--p-inputtext-font-weight);
    line-height: var(--p-typography-line-height);
    margin: 0;
    padding-block: var(--p-inputtext-padding-y);
    padding-inline: var(--p-inputtext-padding-x);
    color: var(--p-inputtext-color);
    background: var(--p-inputtext-background);
    border: 1px solid var(--p-inputtext-border-color);
    border-radius: var(--p-inputtext-border-radius);
    box-shadow: var(--p-inputtext-shadow);
    outline: 0 none;
    outline-color: transparent;
    appearance: none;
    transition:
      background var(--p-inputtext-transition-duration),
      color var(--p-inputtext-transition-duration),
      border-color var(--p-inputtext-transition-duration),
      outline-color var(--p-inputtext-transition-duration),
      box-shadow var(--p-inputtext-transition-duration);
    &::placeholder {
      color: var(--p-inputtext-placeholder-color);
    }
    &:not(:disabled, .p-state-disabled):hover,
    &.p-state-hover {
      border-color: var(--p-inputtext-hover-border-color);
    }
    &:not(:disabled, .p-state-disabled):focus,
    &.p-state-focus {
      border-color: var(--p-inputtext-focus-border-color);
      outline: var(--p-inputtext-focus-ring-width) var(--p-inputtext-focus-ring-style) var(--p-inputtext-focus-ring-color);
      outline-offset: var(--p-inputtext-focus-ring-offset);
      box-shadow: var(--p-inputtext-focus-ring-shadow);
    }
    &.p-state-error,
    &.p-state-error:is(:hover, :focus, .p-state-hover, .p-state-focus) {
      border-color: var(--p-inputtext-invalid-border-color);
    }
    &.p-state-error {
      &::placeholder {
        color: var(--p-inputtext-invalid-placeholder-color);
      }
    }
    .p-input-filled &,
    &.p-input-filled {
      background: var(--p-inputtext-filled-background);
      &:not(:disabled, .p-state-disabled):hover,
      &.p-state-hover {
        background: var(--p-inputtext-filled-hover-background);
      }
      &:focus,
      &.p-state-focus {
        background: var(--p-inputtext-filled-focus-background);
      }
    }
    &:disabled,
    &.p-state-disabled {
      background: var(--p-inputtext-disabled-background);
      color: var(--p-inputtext-disabled-color);
      opacity: 1;
    }
    &.p-inputtext-sm {
      font-size: var(--p-inputtext-sm-font-size);
      padding-block: var(--p-inputtext-sm-padding-y);
      padding-inline: var(--p-inputtext-sm-padding-x);
    }
    &.p-inputtext-lg {
      font-size: var(--p-inputtext-lg-font-size);
      padding-block: var(--p-inputtext-lg-padding-y);
      padding-inline: var(--p-inputtext-lg-padding-x);
    }
  }
  .p-inputtextarea {
    --p-inputtext-font-size: var(--p-textarea-font-size);
    --p-inputtext-font-weight: var(--p-textarea-font-weight);
    --p-inputtext-background: var(--p-textarea-background);
    --p-inputtext-disabled-background: var(--p-textarea-disabled-background);
    --p-inputtext-filled-background: var(--p-textarea-filled-background);
    --p-inputtext-filled-hover-background: var(--p-textarea-filled-hover-background);
    --p-inputtext-filled-focus-background: var(--p-textarea-filled-focus-background);
    --p-inputtext-border-color: var(--p-textarea-border-color);
    --p-inputtext-hover-border-color: var(--p-textarea-hover-border-color);
    --p-inputtext-focus-border-color: var(--p-textarea-focus-border-color);
    --p-inputtext-invalid-border-color: var(--p-textarea-invalid-border-color);
    --p-inputtext-color: var(--p-textarea-color);
    --p-inputtext-disabled-color: var(--p-textarea-disabled-color);
    --p-inputtext-placeholder-color: var(--p-textarea-placeholder-color);
    --p-inputtext-invalid-placeholder-color: var(--p-textarea-invalid-placeholder-color);
    --p-inputtext-shadow: var(--p-textarea-shadow);
    --p-inputtext-padding-x: var(--p-textarea-padding-x);
    --p-inputtext-padding-y: var(--p-textarea-padding-y);
    --p-inputtext-border-radius: var(--p-textarea-border-radius);
    --p-inputtext-focus-ring-width: var(--p-textarea-focus-ring-width);
    --p-inputtext-focus-ring-style: var(--p-textarea-focus-ring-style);
    --p-inputtext-focus-ring-color: var(--p-textarea-focus-ring-color);
    --p-inputtext-focus-ring-offset: var(--p-textarea-focus-ring-offset);
    --p-inputtext-focus-ring-shadow: var(--p-textarea-focus-ring-shadow);
    --p-inputtext-transition-duration: var(--p-textarea-transition-duration);
    --p-inputtext-sm-font-size: var(--p-textarea-sm-font-size);
    --p-inputtext-sm-padding-x: var(--p-textarea-sm-padding-x);
    --p-inputtext-sm-padding-y: var(--p-textarea-sm-padding-y);
    --p-inputtext-lg-font-size: var(--p-textarea-lg-font-size);
    --p-inputtext-lg-padding-x: var(--p-textarea-lg-padding-x);
    --p-inputtext-lg-padding-y: var(--p-textarea-lg-padding-y);
    vertical-align: top;
  }
  .p-inputtextarea-resizable {
    overflow: hidden;
    resize: none;
  }
  .p-inputnumber > .p-inputfield {
    font-variant-numeric: tabular-nums;
  }
  .p-fluid {
    .p-inputfield,
    .p-inputtext,
    .p-inputnumber,
    .p-inputtextarea,
    .p-inputmask {
      width: 100%;
    }
    .p-inputtext[size],
    .p-inputfield[size] {
      width: auto;
    }
  }
  .p-field small.p-state-error,
  .field small.p-state-error {
    color: var(--p-message-error-simple-color);
  }
  .p-float-label {
    display: block;
    position: relative;
    .p-outputlabel {
      display: block;
      min-height: 100%;
      max-width: 95%;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    > label {
      position: absolute;
      top: 50%;
      left: var(--p-floatlabel-position-x);
      margin-top: -0.5em;
      margin-left: 0;
      line-height: 1;
      pointer-events: none;
      color: var(--p-floatlabel-color);
      font-size: var(--p-floatlabel-font-size);
      font-weight: var(--p-floatlabel-font-weight);
      transition-property: all;
      transition-timing-function: var(--p-transition-easing);
      transition-duration: var(--p-floatlabel-transition-duration);
    }
    > label.p-outputlabel-rtl {
      left: 0;
      right: var(--p-floatlabel-position-x);
    }
    > textarea ~ label {
      top: var(--p-floatlabel-position-y);
      margin-top: 0;
    }
    > input:focus ~ label,
    > input.p-state-filled ~ label,
    > textarea:focus ~ label,
    > textarea.p-state-filled ~ label,
    > .p-inputwrapper-focus ~ label,
    > .p-selectcheckboxmenu.p-state-focus ~ label,
    > :where(.p-selectcheckboxmenu:has(> .p-hidden-accessible > [aria-expanded=true])) ~ label,
    > .p-inputwrapper-filled ~ label,
    > :where(.p-autocomplete-multiple:has(.p-autocomplete-token), .p-chips:has(.p-chips-token), .p-selectcheckboxmenu:has(> .p-hidden > :checked)) ~ label,
    > input:-webkit-autofill ~ label,
    > textarea:-webkit-autofill ~ label {
      top: var(--p-floatlabel-over-active-top);
      margin-top: 0;
      font-size: var(--p-floatlabel-active-font-size);
      font-weight: var(--p-floatlabel-active-font-weight);
    }
    > input.p-state-filled ~ label,
    > textarea.p-state-filled ~ label,
    > .p-inputwrapper-filled ~ label,
    > :where(.p-autocomplete-multiple:has(.p-autocomplete-token), .p-chips:has(.p-chips-token), .p-selectcheckboxmenu:has(> .p-hidden > :checked)) ~ label {
      color: var(--p-floatlabel-active-color);
    }
    > input:focus ~ label,
    > textarea:focus ~ label,
    > .p-inputwrapper-focus ~ label,
    > .p-selectcheckboxmenu.p-state-focus ~ label,
    > :where(.p-selectcheckboxmenu:has(> .p-hidden-accessible > [aria-expanded=true])) ~ label,
    > input:-webkit-autofill ~ label,
    > textarea:-webkit-autofill ~ label {
      color: var(--p-floatlabel-focus-color);
    }
    > .p-state-error ~ label,
    > .p-state-error:is(:focus, .p-inputwrapper-focus) ~ label {
      color: var(--p-floatlabel-invalid-color);
    }
    &.p-float-label-in {
      > .p-inputfield,
      > * > .p-inputfield {
        padding-block-start: var(--p-floatlabel-in-input-padding-top);
        padding-block-end: var(--p-floatlabel-in-input-padding-bottom);
      }
      > :is(.p-selectonemenu, .p-cascadeselect, .p-autocomplete) > .p-inputfield {
        padding-block-start: var(--p-floatlabel-in-input-padding-top);
        padding-block-end: var(--p-floatlabel-in-input-padding-bottom);
      }
      > .p-chips > .p-chips-container {
        padding-block-start: calc(var(--p-floatlabel-in-input-padding-top) - var(--p-inputchips-padding-y) / 2);
        padding-block-end: calc(var(--p-floatlabel-in-input-padding-bottom) - var(--p-inputchips-padding-y) / 2);
      }
      > .p-autocomplete > .p-autocomplete-multiple-container {
        padding-block-start: calc(var(--p-floatlabel-in-input-padding-top) - var(--p-autocomplete-padding-y) / 2);
        padding-block-end: calc(var(--p-floatlabel-in-input-padding-bottom) - var(--p-autocomplete-padding-y) / 2);
      }
      > .p-selectcheckboxmenu .p-selectcheckboxmenu-label-container {
        padding-block-start: var(--p-floatlabel-in-input-padding-top);
        padding-block-end: var(--p-floatlabel-in-input-padding-bottom);
      }
      > .p-selectcheckboxmenu .p-selectcheckboxmenu-multiple-container.p-inputfield {
        min-height: calc(var(--p-floatlabel-in-input-padding-top) + var(--p-floatlabel-in-input-padding-bottom) + var(--p-typography-line-height) * var(--p-multiselect-font-size));
        padding-block-start: calc(var(--p-floatlabel-in-input-padding-top) - var(--p-multiselect-padding-y) / 2);
        padding-block-end: calc(var(--p-floatlabel-in-input-padding-bottom) - var(--p-multiselect-padding-y) / 2);
      }
      > textarea ~ label {
        top: var(--p-floatlabel-in-input-padding-top);
      }
      > :is(input:focus, input.p-state-filled, textarea:focus, textarea.p-state-filled, .p-inputwrapper-focus, .p-selectcheckboxmenu.p-state-focus, :where(.p-selectcheckboxmenu:has(> .p-hidden-accessible > [aria-expanded=true])), .p-inputwrapper-filled, input:-webkit-autofill, textarea:-webkit-autofill, :where(.p-autocomplete-multiple:has(.p-autocomplete-token), .p-chips:has(.p-chips-token), .p-selectcheckboxmenu:has(> .p-hidden > :checked))) ~ label {
        top: var(--p-floatlabel-in-active-top);
        margin-top: 0;
      }
    }
    &.p-float-label-on {
      > :is(input:focus, input.p-state-filled, textarea:focus, textarea.p-state-filled, .p-inputwrapper-focus, .p-selectcheckboxmenu.p-state-focus, :where(.p-selectcheckboxmenu:has(> .p-hidden-accessible > [aria-expanded=true])), .p-inputwrapper-filled, input:-webkit-autofill, textarea:-webkit-autofill, :where(.p-autocomplete-multiple:has(.p-autocomplete-token), .p-chips:has(.p-chips-token), .p-selectcheckboxmenu:has(> .p-hidden > :checked))) ~ label {
        top: 0;
        min-height: 0;
        margin-top: 0;
        translate: 0 -50%;
        padding: var(--p-floatlabel-on-active-padding);
        background: var(--p-floatlabel-on-active-background);
        border-radius: var(--p-floatlabel-on-border-radius);
        z-index: 1;
      }
    }
  }
  .p-autocomplete.p-autocomplete-dd,
  .p-calendar.p-trigger-calendar {
    border-radius: var(--p-inputtext-border-radius);
    width: fit-content;
    max-width: 100%;
    .p-fluid & {
      width: 100%;
    }
    &:has(> .p-inputfield:not(:disabled, .p-state-disabled):is(:focus-within, .p-state-focus)) {
      outline: var(--p-inputtext-focus-ring-width) var(--p-inputtext-focus-ring-style) var(--p-inputtext-focus-ring-color);
      outline-offset: var(--p-inputtext-focus-ring-offset);
      box-shadow: var(--p-inputtext-focus-ring-shadow);
      > .p-inputfield {
        outline: 0 none;
        box-shadow: none;
      }
    }
  }
  .p-input-icon-left,
  .p-input-icon-right {
    position: relative;
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    .p-fluid & {
      display: block;
      width: auto;
    }
    > i {
      position: absolute;
      top: 50%;
      margin-top: calc(-1 * var(--p-icon-size) / 2);
      line-height: 1;
      z-index: 1;
    }
  }
  .p-input-icon-left {
    > i:first-of-type {
      left: var(--p-form-field-padding-x);
      color: var(--p-iconfield-icon-color);
    }
    > .p-inputfield {
      padding-left: calc(var(--p-form-field-padding-x) * 2 + var(--p-icon-size));
    }
  }
  .p-input-icon-right {
    > i:last-of-type {
      right: var(--p-form-field-padding-x);
      color: var(--p-iconfield-icon-color);
    }
    > .p-inputfield {
      padding-right: calc(var(--p-form-field-padding-x) * 2 + var(--p-icon-size));
    }
  }
}

/* packages/components/src/forms/inputgroup.css */
@layer primefaces.components {
  .p-inputgroup {
    display: flex;
    align-items: stretch;
    width: 100%;
    .p-inputgroup-addon + .p-inputgroup-addon {
      border-inline-start: 0 none;
    }
    > .p-password:not(.p-inputfield) {
      padding-inline-start: 0;
    }
    > .p-inputtext:not(:first-child),
    > .p-inputtextarea:not(:first-child),
    > .p-password:not(:first-child),
    > .p-password:not(:first-child) > .p-inputfield,
    > .p-inputnumber:not(:first-child) > .p-inputtext,
    > .p-inputmask:not(:first-child),
    > .p-calendar:not(:first-child) > .p-inputfield,
    > .p-chips:not(:first-child) > .p-chips-container,
    > .p-selectonemenu:not(:first-child),
    > .p-selectonebutton:not(:first-child) > .p-button,
    > .p-autocomplete:not(:first-child) > .p-autocomplete-input,
    > .p-spinner:not(:first-child),
    > .p-spinner:not(:first-child) > .p-spinner-input {
      border-start-start-radius: 0;
      border-end-start-radius: 0;
      border-inline-start: 0 none;
    }
    > .p-inputtext:not(:last-child),
    > .p-inputtextarea:not(:last-child),
    > .p-password:not(:last-child),
    > .p-password:not(:last-child) > .p-inputfield,
    > .p-inputnumber:not(:last-child) > .p-inputtext,
    > .p-inputmask:not(:last-child),
    > .p-selectonemenu:not(:last-child),
    > .p-calendar:not(:last-child) > .p-inputfield,
    > .p-chips:not(:last-child) > .p-chips-container,
    > .p-selectonebutton:not(:last-child) > .p-button,
    > .p-autocomplete:not(:last-child) > .p-autocomplete-input,
    > .p-spinner:not(:last-child),
    > .p-spinner:not(:last-child) > .p-spinner-input,
    > .p-spinner:not(:last-child) > .p-spinner-button {
      border-start-end-radius: 0;
      border-end-end-radius: 0;
      border-inline-end: 0 none;
    }
    > .p-autocomplete:not(:last-child) > .p-autocomplete-dropdown.p-button,
    > .p-calendar:not(:last-child) > .p-button.p-button-icon-only,
    > .p-spinner.p-spinner-horizontal:not(:last-child) > .p-spinner-button.p-spinner-up {
      border-start-end-radius: 0;
      border-end-end-radius: 0;
    }
    .p-button {
      margin-inline-end: 0;
      border-radius: 0;
    }
    > .p-inputfield,
    > .p-inputwrapper,
    > .p-inputnumber,
    > .p-autocomplete,
    > .p-chips,
    > .p-spinner,
    > .p-float-label {
      flex: 1 1 auto;
      width: 1%;
    }
    > .p-inputwrapper > .p-inputfield,
    > .p-inputnumber > .p-inputfield,
    > .p-autocomplete > .p-inputfield,
    > .p-float-label > .p-inputfield {
      width: 100%;
    }
    > .p-button,
    .p-inputgroup-addon,
    .p-inputgroup-addon-checkbox {
      flex: 0 0 auto;
    }
    .p-fluid & {
      .p-button {
        width: auto;
      }
      .p-button-icon-only {
        width: var(--p-button-icon-only-width);
      }
    }
    .p-inputgroup-addon,
    .p-inputgroup-addon-checkbox {
      text-align: center;
      border-width: 1px;
      border-style: solid;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: var(--p-inputgroup-addon-padding);
      min-width: var(--p-inputgroup-addon-min-width);
      background: var(--p-inputgroup-addon-background);
      color: var(--p-inputgroup-addon-color);
      border-color: var(--p-inputgroup-addon-border-color);
      font-size: var(--p-inputgroup-addon-font-size);
      font-weight: var(--p-inputgroup-addon-font-weight);
      &:first-child {
        border-start-start-radius: var(--p-inputgroup-addon-border-radius);
        border-end-start-radius: var(--p-inputgroup-addon-border-radius);
      }
      &:last-child {
        border-start-end-radius: var(--p-inputgroup-addon-border-radius);
        border-end-end-radius: var(--p-inputgroup-addon-border-radius);
      }
    }
    > .p-widget,
    > .p-float-label > .p-widget {
      border-radius: 0;
    }
    > .p-widget:first-child,
    > .p-float-label:first-child > .p-widget {
      border-start-start-radius: var(--p-inputgroup-addon-border-radius);
      border-end-start-radius: var(--p-inputgroup-addon-border-radius);
    }
    > .p-widget:last-child,
    > .p-float-label:last-child > .p-widget {
      border-start-end-radius: var(--p-inputgroup-addon-border-radius);
      border-end-end-radius: var(--p-inputgroup-addon-border-radius);
    }
    button:first-child,
    input:first-child,
    textarea:first-child {
      border-start-start-radius: var(--p-inputgroup-addon-border-radius);
      border-end-start-radius: var(--p-inputgroup-addon-border-radius);
    }
    .p-float-label:first-child {
      input,
      textarea {
        border-inline-end-width: 0;
        border-start-start-radius: var(--p-inputgroup-addon-border-radius);
        border-end-start-radius: var(--p-inputgroup-addon-border-radius);
      }
    }
    button:last-child,
    input:last-child,
    textarea:last-child {
      border-start-end-radius: var(--p-inputgroup-addon-border-radius);
      border-end-end-radius: var(--p-inputgroup-addon-border-radius);
    }
    .p-float-label:last-child {
      input,
      textarea {
        border-inline-start-width: 0;
        border-start-end-radius: var(--p-inputgroup-addon-border-radius);
        border-end-end-radius: var(--p-inputgroup-addon-border-radius);
      }
    }
    > .p-widget.p-state-focus,
    > .p-widget:focus,
    > .p-float-label > .p-widget.p-state-focus,
    > .p-float-label > .p-widget:focus {
      z-index: 1;
    }
    > .p-widget.p-state-focus ~ label,
    > .p-widget:focus ~ label,
    > .p-float-label > .p-widget.p-state-focus ~ label,
    > .p-float-label > .p-widget:focus ~ label {
      z-index: 1;
    }
    .p-inputgroup-addon-checkbox {
      padding: 0;
      position: relative;
      .p-chkbox {
        margin: 0;
        vertical-align: baseline;
        position: absolute;
        top: 50%;
        inset-inline-start: 50%;
        margin-top: calc(-1 * var(--p-checkbox-height) / 2);
        margin-inline-start: calc(-1 * var(--p-checkbox-width) / 2);
      }
      .p-radiobutton {
        margin: 0;
        position: absolute;
        top: 50%;
        inset-inline-start: 50%;
        margin-top: calc(-1 * var(--p-radiobutton-height) / 2);
        margin-inline-start: calc(-1 * var(--p-radiobutton-width) / 2);
      }
    }
  }
}

/* packages/components/src/menu/menu.base.css */
@layer primefaces.components {
  .p-menu {
    --_bg: var(--p-menu-background);
    --_border-color: var(--p-menu-border-color);
    --_border-radius: var(--p-menu-border-radius);
    --_color: var(--p-menu-color);
    --_shadow: var(--p-menu-shadow);
    --_list-padding: var(--p-menu-list-padding);
    --_list-gap: var(--p-menu-list-gap);
    --_transition-duration: var(--p-menu-transition-duration);
    --_item-border-radius: var(--p-menu-item-border-radius);
    --_item-padding: var(--p-menu-item-padding);
    --_item-gap: var(--p-menu-item-gap);
    --_item-color: var(--p-menu-item-color);
    --_item-focus-background: var(--p-menu-item-focus-background);
    --_item-focus-color: var(--p-menu-item-focus-color);
    --_item-active-background: var(--p-menu-item-focus-background);
    --_item-active-color: var(--p-menu-item-focus-color);
    --_item-icon-color: var(--p-menu-item-icon-color);
    --_item-icon-focus-color: var(--p-menu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-menu-item-icon-focus-color);
    --_item-icon-size: var(--p-menu-item-icon-size);
    --_item-label-font-size: var(--p-menu-item-label-font-size);
    --_item-label-font-weight: var(--p-menu-item-label-font-weight);
    --_submenu-icon-color: var(--p-menu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-menu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-menu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-menu-item-icon-focus-color);
    --_separator-border-color: var(--p-menu-separator-border-color);
    --_submenu-label-background: var(--p-menu-submenu-label-background);
    --_submenu-label-color: var(--p-menu-submenu-label-color);
    --_submenu-label-font-size: var(--p-menu-submenu-label-font-size);
    --_submenu-label-font-weight: var(--p-menu-submenu-label-font-weight);
    --_submenu-label-padding: var(--p-menu-submenu-label-padding);
    --_submenu-background: var(--p-menu-background);
    --_submenu-border-color: var(--p-menu-border-color);
    --_submenu-border-radius: var(--p-menu-border-radius);
    --_submenu-padding: var(--p-menu-list-padding);
    --_submenu-shadow: var(--p-menu-shadow);
    --_padding: var(--p-menubar-padding);
    --_gap: var(--p-menubar-gap);
    --_base-item-padding: var(--p-menubar-base-item-padding);
    --_base-item-border-radius: var(--p-menubar-base-item-border-radius);
    width: fit-content;
    position: relative;
    outline: 0 none;
    padding: 0;
    background: var(--_bg);
    color: var(--_color);
    border: 1px solid var(--_border-color);
    border-radius: var(--_border-radius);
    &:not(.p-menubar):not([style*=width]) {
      min-width: 12.5rem;
    }
    &.p-menu-dynamic {
      position: absolute;
      display: none;
      z-index: 100000;
      border: 1px solid var(--_border-color);
      box-shadow: var(--_shadow);
    }
    &.p-menu-dynamic-maxheight {
      overflow-y: auto;
    }
    .p-menu-list .p-widget-header {
      clear: both;
    }
    .p-menuitem {
      clear: both;
      padding: 0;
    }
    .p-menuitem-link {
      display: flex;
      align-items: center;
      outline: none;
      text-decoration: none;
      cursor: pointer;
    }
    .p-menuitem-link .p-menuitem-icon,
    .p-submenu-icon {
      display: inline-block;
    }
    .p-widget-header {
      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        display: block;
        margin: 0;
      }
    }
    .p-menu-parent {
      position: relative;
      .p-menu-child {
        display: none;
        width: auto;
        position: absolute;
        margin: 0;
        outline: 0;
        text-decoration: none;
        font-size: 100%;
        list-style: none;
        &:not([style*=width]) {
          min-width: 12.5rem;
        }
      }
    }
    .p-menu-list {
      list-style: none;
      padding: var(--_list-padding);
      margin: 0;
      .p-widget-header h3 {
        display: flex;
        align-items: center;
        gap: var(--_item-gap);
      }
      .p-widget-header .p-submenu-icon {
        position: static;
        float: none;
        margin: 0;
        color: var(--_item-icon-color);
      }
    }
    .p-menu-list .p-widget-header {
      margin: 0;
      width: 100%;
      background: var(--_submenu-label-background);
      color: var(--_submenu-label-color);
      float: none;
      border: 0 none;
      padding: var(--_submenu-label-padding);
      border-radius: 0;
      transition: background var(--_transition-duration), color var(--_transition-duration);
      h3 {
        padding: 0;
        font-size: var(--_submenu-label-font-size);
        font-weight: var(--_submenu-label-font-weight);
        color: var(--_submenu-label-color);
        float: none;
      }
      &.p-state-hover {
        background: var(--_item-focus-background);
        color: var(--_item-focus-color);
        .p-submenu-icon {
          color: var(--_item-icon-focus-color);
        }
      }
    }
    .p-menu-list .p-menuitem {
      margin: 0;
      width: 100%;
      border: 0 none;
      float: none;
      border-radius: var(--_item-border-radius);
      transition: background var(--_transition-duration), color var(--_transition-duration);
      .p-menuitem-link {
        padding: var(--_item-padding);
        width: 100%;
        gap: var(--_item-gap);
        border: 0 none;
        float: none;
        color: var(--_item-color);
        border-radius: var(--_item-border-radius);
        line-height: var(--p-typography-line-height);
        transition: background var(--_transition-duration), color var(--_transition-duration);
        .p-menuitem-icon {
          margin: 0;
          float: none;
          flex-shrink: 0;
          color: var(--_item-icon-color);
          font-size: var(--_item-icon-size);
        }
        .p-menuitem-text {
          float: none;
          color: var(--_item-color);
          font-size: var(--_item-label-font-size);
          font-weight: var(--_item-label-font-weight);
        }
        &:not(.p-state-disabled):hover,
        &.p-state-hover,
        &.p-state-focus,
        &:focus-visible {
          background: var(--_item-focus-background);
        }
        &:focus-visible {
          outline: 0 none;
        }
        &:not(.p-state-disabled):hover .p-menuitem-icon,
        &.p-state-hover .p-menuitem-icon,
        &.p-state-focus .p-menuitem-icon,
        &:focus-visible .p-menuitem-icon {
          color: var(--_item-icon-focus-color);
        }
        &:not(.p-state-disabled):hover .p-menuitem-text,
        &.p-state-hover .p-menuitem-text,
        &.p-state-focus .p-menuitem-text,
        &:focus-visible .p-menuitem-text {
          color: var(--_item-focus-color);
        }
        .p-menu-submenu-icon,
        .p-menubar-submenu-icon {
          margin: 0;
          font-size: var(--_submenu-icon-size);
          color: var(--_submenu-icon-color);
        }
        .p-menu-submenu-icon {
          --_icon: var(--p-menu-submenu-icon);
          &:last-child {
            margin-inline-start: auto;
          }
          &:dir(rtl),
          &:first-child:where(.p-menu-rtl *) {
            scale: -1 1;
          }
        }
        .p-menubar-submenu-icon {
          --_icon: var(--p-menubar-submenu-icon);
        }
        &:not(.p-state-disabled):hover :is(.p-menu-submenu-icon, .p-menubar-submenu-icon),
        &.p-state-hover :is(.p-menu-submenu-icon, .p-menubar-submenu-icon),
        &.p-state-focus :is(.p-menu-submenu-icon, .p-menubar-submenu-icon) {
          color: var(--_submenu-icon-focus-color);
        }
      }
      &.p-state-hover {
        background: var(--_item-focus-background);
        color: var(--_item-focus-color);
        > .p-menuitem-link {
          color: var(--_item-focus-color);
          .p-menuitem-icon,
          .p-icon {
            color: var(--_item-icon-focus-color);
          }
        }
      }
      &.p-menuitem-active > .p-menuitem-link {
        background: var(--_item-active-background);
        .p-menuitem-text {
          color: var(--_item-active-color);
        }
        .p-menuitem-icon {
          color: var(--_item-icon-active-color);
        }
        .p-menu-submenu-icon,
        .p-menubar-submenu-icon {
          color: var(--_submenu-icon-active-color);
        }
      }
    }
    .p-menu-list > :not(:first-child) {
      margin-top: var(--_list-gap);
    }
    .p-menu-list .p-menu-child {
      background: var(--_submenu-background);
      padding: var(--_submenu-padding);
      border-radius: var(--_submenu-border-radius);
      border: 1px solid var(--_submenu-border-color);
      box-shadow: var(--_submenu-shadow);
    }
    .p-divider.p-widget.p-divider-vertical {
      display: inline-flex;
      vertical-align: middle;
      margin: var(--p-menu-list-gap) 0;
      &::before {
        border-left-color: var(--_separator-border-color);
      }
    }
    .p-divider.p-widget.p-divider-horizontal {
      margin: 0;
      &::before {
        border-top-color: var(--_separator-border-color);
      }
      &:not(:first-child) {
        margin-top: var(--_list-gap);
      }
    }
    &.p-menu-rtl {
      direction: rtl;
      .p-menu-list .p-menuitem .p-menuitem-link {
        flex-direction: row-reverse;
        justify-content: flex-end;
        .p-menu-submenu-icon:first-child {
          margin-inline-start: auto;
        }
      }
    }
    &.p-menubar {
      --_bg: var(--p-menubar-background);
      --_border-color: var(--p-menubar-border-color);
      --_border-radius: var(--p-menubar-border-radius);
      --_color: var(--p-menubar-color);
      --_list-gap: var(--p-menubar-submenu-gap);
      --_transition-duration: var(--p-menubar-transition-duration);
      --_item-border-radius: var(--p-menubar-item-border-radius);
      --_item-padding: var(--p-menubar-item-padding);
      --_item-gap: var(--p-menubar-item-gap);
      --_item-color: var(--p-menubar-item-color);
      --_item-focus-background: var(--p-menubar-item-focus-background);
      --_item-focus-color: var(--p-menubar-item-focus-color);
      --_item-active-background: var(--p-menubar-item-active-background);
      --_item-active-color: var(--p-menubar-item-active-color);
      --_item-icon-color: var(--p-menubar-item-icon-color);
      --_item-icon-focus-color: var(--p-menubar-item-icon-focus-color);
      --_item-icon-active-color: var(--p-menubar-item-icon-active-color);
      --_item-icon-size: var(--p-menubar-item-icon-size);
      --_item-label-font-size: var(--p-menubar-item-label-font-size);
      --_item-label-font-weight: var(--p-menubar-item-label-font-weight);
      --_submenu-icon-color: var(--p-menubar-submenu-icon-color);
      --_submenu-icon-focus-color: var(--p-menubar-submenu-icon-focus-color);
      --_submenu-icon-size: var(--p-menubar-submenu-icon-size);
      --_submenu-icon-active-color: var(--p-menubar-submenu-icon-active-color);
      --_separator-border-color: var(--p-menubar-separator-border-color);
      --_submenu-background: var(--p-menubar-submenu-background);
      --_submenu-border-color: var(--p-menubar-submenu-border-color);
      --_submenu-border-radius: var(--p-menubar-submenu-border-radius);
      --_submenu-padding: var(--p-menubar-submenu-padding);
      --_submenu-shadow: var(--p-menubar-submenu-shadow);
      --_padding: var(--p-menubar-padding);
      --_gap: var(--p-menubar-gap);
      --_base-item-padding: var(--p-menubar-base-item-padding);
      --_base-item-border-radius: var(--p-menubar-base-item-border-radius);
      padding: var(--_padding);
      background: var(--_bg);
      border-radius: var(--_border-radius);
      > .p-menu-list {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: var(--_gap);
        padding: 0;
      }
      > .p-menu-list > .p-menuitem {
        width: auto;
        margin: 0;
        > .p-menuitem-link {
          padding: var(--_base-item-padding);
          border-radius: var(--_base-item-border-radius);
        }
        &.p-menubar-start,
        &.p-menubar-options,
        &.p-menubar-end {
          display: flex;
          align-items: center;
        }
        &.p-menubar-options,
        &.p-menubar-end {
          margin-inline-start: auto;
        }
        &.p-menubar-options + .p-menubar-end {
          margin-inline-start: 0;
        }
      }
    }
  }
  .p-menu-list {
    position: static;
  }
  .p-menubar {
    width: auto;
    .p-menuitem {
      clear: none;
    }
    .p-menu-child {
      top: 25px;
      left: 0;
    }
    .p-widget-header {
      clear: none;
    }
  }
  .p-menuitem-outline {
    outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
    outline-offset: var(--p-focus-ring-offset);
    z-index: 1;
  }
  .p-fluid .p-menu {
    width: 100%;
  }
}

/* packages/components/src/paginator/paginator.css */
@layer primefaces.components {
  .p-paginator {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--p-paginator-gap);
    margin: 0;
    text-align: center;
    background: var(--p-paginator-background);
    color: var(--p-paginator-color);
    border: 1px solid var(--p-content-border-color);
    border-width: 0;
    border-radius: var(--p-paginator-border-radius);
    padding: var(--p-paginator-padding);
  }
  .p-paginator-center-content,
  .p-paginator.p-paginator-top .p-paginator-top-left-content,
  .p-paginator.p-paginator-top .p-paginator-top-right-content,
  .p-paginator.p-paginator-bottom .p-paginator-bottom-left-content,
  .p-paginator.p-paginator-bottom .p-paginator-bottom-right-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--p-paginator-gap);
    margin: 0;
    text-align: center;
    min-width: 5em;
  }
  .p-paginator.p-paginator-top .p-paginator-top-left-content:empty,
  .p-paginator.p-paginator-top .p-paginator-top-right-content:empty,
  .p-paginator.p-paginator-bottom .p-paginator-bottom-left-content:empty,
  .p-paginator.p-paginator-bottom .p-paginator-bottom-right-content:empty {
    min-width: 0;
  }
  .p-paginator-center-content {
    justify-content: center;
  }
  .p-paginator {
    &.p-paginator-top .p-paginator-top-right-content,
    &.p-paginator-bottom .p-paginator-bottom-right-content {
      justify-content: flex-end;
    }
    .p-paginator-page,
    .p-paginator-pages,
    .p-paginator-next,
    .p-paginator-last,
    .p-paginator-first,
    .p-paginator-prev,
    .p-paginator-current {
      text-decoration: none;
    }
    .p-paginator-page,
    .p-paginator-next,
    .p-paginator-last,
    .p-paginator-first,
    .p-paginator-prev {
      cursor: pointer;
    }
    .p-paginator-first,
    .p-paginator-prev,
    .p-paginator-next,
    .p-paginator-last {
      font-style: normal;
      font-weight: normal;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
      -webkit-user-select: none;
      user-select: none;
      background: var(--p-paginator-nav-button-background);
      color: var(--p-paginator-nav-button-color);
      min-width: var(--p-paginator-nav-button-width);
      height: var(--p-paginator-nav-button-height);
      margin: 0;
      border: 0 none;
      padding: 0;
      border-radius: var(--p-paginator-nav-button-border-radius);
      outline-color: transparent;
      transition:
        background var(--p-paginator-transition-duration),
        color var(--p-paginator-transition-duration),
        outline-color var(--p-paginator-transition-duration),
        box-shadow var(--p-paginator-transition-duration);
      &.p-state-hover,
      &:not(.p-state-disabled):hover {
        background: var(--p-paginator-nav-button-hover-background);
        color: var(--p-paginator-nav-button-hover-color);
      }
      &.p-state-focus,
      &:focus-visible {
        outline: var(--p-paginator-nav-button-focus-ring-width) var(--p-paginator-nav-button-focus-ring-style) var(--p-paginator-nav-button-focus-ring-color);
        outline-offset: var(--p-paginator-nav-button-focus-ring-offset);
        box-shadow: var(--p-paginator-nav-button-focus-ring-shadow);
      }
      &:dir(rtl) {
        transform: rotate(180deg);
      }
    }
    .p-paginator-first-icon {
      --_icon: var(--p-paginator-first-icon);
    }
    .p-paginator-prev-icon {
      --_icon: var(--p-paginator-prev-icon);
    }
    .p-paginator-next-icon {
      --_icon: var(--p-paginator-next-icon);
    }
    .p-paginator-last-icon {
      --_icon: var(--p-paginator-last-icon);
    }
    .p-paginator-current {
      display: inline-block;
      margin: 0;
      padding: 0;
      color: var(--p-paginator-current-page-report-color);
      font-size: var(--p-paginator-current-page-report-font-size);
      font-weight: var(--p-paginator-current-page-report-font-weight);
      font-variant-numeric: tabular-nums;
    }
    .p-paginator-pages {
      display: inline-flex;
      align-items: center;
      gap: var(--p-paginator-gap);
      margin: 0;
      padding: 0;
    }
    .p-paginator-pages .p-paginator-page {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      border: 0 none;
      min-width: var(--p-paginator-nav-button-width);
      width: unset;
      height: var(--p-paginator-nav-button-height);
      background: var(--p-paginator-nav-button-background);
      color: var(--p-paginator-nav-button-color);
      font-family: inherit;
      font-size: var(--p-paginator-nav-button-font-size);
      font-weight: var(--p-paginator-nav-button-font-weight);
      font-variant-numeric: tabular-nums;
      margin: 0;
      border-radius: var(--p-paginator-nav-button-border-radius);
      box-shadow: none;
      outline-color: transparent;
      transition:
        background var(--p-paginator-transition-duration),
        color var(--p-paginator-transition-duration),
        outline-color var(--p-paginator-transition-duration),
        box-shadow var(--p-paginator-transition-duration);
      &.p-state-hover,
      &:not(.p-state-disabled, .p-state-active):hover,
      &:not(.p-state-disabled, .p-state-active):active {
        background: var(--p-paginator-nav-button-hover-background);
        color: var(--p-paginator-nav-button-hover-color);
      }
      &.p-state-active {
        background: var(--p-paginator-nav-button-selected-background);
        color: var(--p-paginator-nav-button-selected-color);
      }
      &.p-state-focus,
      &:focus-visible {
        outline: var(--p-paginator-nav-button-focus-ring-width) var(--p-paginator-nav-button-focus-ring-style) var(--p-paginator-nav-button-focus-ring-color);
        outline-offset: var(--p-paginator-nav-button-focus-ring-offset);
        box-shadow: var(--p-paginator-nav-button-focus-ring-shadow);
      }
    }
    .p-paginator-rpp-options,
    .p-paginator-jtp-select {
      display: inline-block;
      vertical-align: middle;
      margin: 0;
      font-family: inherit;
      font-size: var(--p-select-font-size);
      font-weight: var(--p-select-font-weight);
      line-height: var(--p-typography-line-height);
      padding-block: var(--p-select-padding-y);
      padding-inline: var(--p-select-padding-x);
      color: var(--p-select-color);
      background: var(--p-select-background);
      border: 1px solid var(--p-select-border-color);
      border-radius: var(--p-select-border-radius);
      box-shadow: var(--p-select-shadow);
      cursor: pointer;
      outline-color: transparent;
      transition:
        background var(--p-select-transition-duration),
        color var(--p-select-transition-duration),
        border-color var(--p-select-transition-duration),
        outline-color var(--p-select-transition-duration),
        box-shadow var(--p-select-transition-duration);
      &.p-state-hover,
      &:not(:disabled, .p-state-disabled):hover {
        border-color: var(--p-select-hover-border-color);
      }
      &.p-state-focus,
      &:focus-visible {
        border-color: var(--p-select-focus-border-color);
        outline: var(--p-select-focus-ring-width) var(--p-select-focus-ring-style) var(--p-select-focus-ring-color);
        outline-offset: var(--p-select-focus-ring-offset);
        box-shadow: var(--p-select-focus-ring-shadow);
      }
      &:disabled,
      &.p-state-disabled {
        background: var(--p-select-disabled-background);
        color: var(--p-select-disabled-color);
        cursor: default;
      }
      option {
        background: var(--p-select-overlay-background);
        color: var(--p-select-option-color);
        border: 0 none;
        box-shadow: none;
      }
    }
    .p-paginator-jtp-input {
      width: calc(var(--p-jtp-digits, 3) * 1ch + 2.5rem);
      margin: 0;
      text-align: center;
      vertical-align: middle;
    }
    @media (max-width: 640px) {
      .p-paginator-pages {
        display: none;
      }
    }
  }
}

/* packages/components/src/forms/radiobutton.css */
@layer primefaces.components {
  .p-radiobutton {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    width: var(--p-radiobutton-width);
    height: var(--p-radiobutton-height);
    line-height: normal;
    .p-radiobutton-box {
      cursor: pointer;
      border: 1px solid var(--p-radiobutton-border-color);
      background: var(--p-radiobutton-background);
      width: var(--p-radiobutton-width);
      height: var(--p-radiobutton-height);
      text-align: center;
      position: relative;
      border-radius: 50%;
      box-shadow: var(--p-radiobutton-shadow);
      outline-color: transparent;
      transition:
        background var(--p-radiobutton-transition-duration),
        color var(--p-radiobutton-transition-duration),
        border-color var(--p-radiobutton-transition-duration),
        box-shadow var(--p-radiobutton-transition-duration),
        outline-color var(--p-radiobutton-transition-duration);
      &.p-state-hover,
      &:not(.p-state-disabled):hover {
        border-color: var(--p-radiobutton-hover-border-color);
      }
      &.p-state-focus {
        border-color: var(--p-radiobutton-focus-border-color);
        outline: var(--p-radiobutton-focus-ring-width) var(--p-radiobutton-focus-ring-style) var(--p-radiobutton-focus-ring-color);
        outline-offset: var(--p-radiobutton-focus-ring-offset);
        box-shadow: var(--p-radiobutton-focus-ring-shadow);
      }
      &.p-state-active {
        border-color: var(--p-radiobutton-checked-border-color);
        background: var(--p-radiobutton-checked-background);
        color: var(--p-radiobutton-icon-checked-color);
        &.p-state-hover,
        &:not(.p-state-disabled):hover {
          border-color: var(--p-radiobutton-checked-hover-border-color);
          background: var(--p-radiobutton-checked-hover-background);
        }
        &.p-state-focus {
          border-color: var(--p-radiobutton-checked-focus-border-color);
        }
        .p-radiobutton-icon {
          background: var(--p-radiobutton-icon-checked-color);
        }
        &.p-state-hover .p-radiobutton-icon,
        &:not(.p-state-disabled):hover .p-radiobutton-icon {
          background: var(--p-radiobutton-icon-checked-hover-color);
        }
      }
      &.p-state-error,
      &.p-state-error:is(:hover, .p-state-hover, .p-state-focus),
      &.p-state-error.p-state-active:is(:hover, .p-state-hover, .p-state-focus) {
        border-color: var(--p-radiobutton-invalid-border-color);
      }
      &.p-state-disabled {
        opacity: 1;
        background: var(--p-radiobutton-disabled-background);
        border-color: var(--p-radiobutton-checked-disabled-border-color);
        &.p-state-active .p-radiobutton-icon {
          background: var(--p-radiobutton-icon-disabled-color);
        }
      }
      .p-radiobutton-icon {
        width: var(--p-radiobutton-icon-size);
        height: var(--p-radiobutton-icon-size);
        vertical-align: middle;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: calc(-1 * var(--p-radiobutton-icon-size) / 2);
        margin-left: calc(-1 * var(--p-radiobutton-icon-size) / 2);
        border-radius: 50%;
        background: transparent;
        forced-color-adjust: none;
        transition-duration: var(--p-radiobutton-transition-duration);
      }
    }
  }
  .p-selectoneradio.p-state-readonly .p-radiobutton-box {
    cursor: default;
  }
  .p-input-filled .p-radiobutton .p-radiobutton-box {
    background: var(--p-radiobutton-filled-background);
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      background: var(--p-form-field-filled-hover-background);
    }
    &.p-state-active {
      background: var(--p-radiobutton-checked-background);
      &.p-state-hover,
      &:not(.p-state-disabled):hover {
        background: var(--p-radiobutton-checked-hover-background);
      }
    }
    &.p-state-disabled {
      background: var(--p-radiobutton-disabled-background);
    }
  }
  .p-radiobutton-sm {
    --p-radiobutton-width: var(--p-radiobutton-sm-width);
    --p-radiobutton-height: var(--p-radiobutton-sm-height);
    --p-radiobutton-icon-size: var(--p-radiobutton-icon-sm-size);
  }
  .p-radiobutton-lg {
    --p-radiobutton-width: var(--p-radiobutton-lg-width);
    --p-radiobutton-height: var(--p-radiobutton-lg-height);
    --p-radiobutton-icon-size: var(--p-radiobutton-icon-lg-size);
  }
  .p-state-highlight .p-radiobutton .p-radiobutton-box.p-state-active.p-state-active {
    border-color: var(--p-highlight-color);
  }
}

/* packages/components/src/accordion/accordion.css */
@layer primefaces.components {
  .p-accordion {
    .p-accordion-header {
      position: relative;
      margin: 0;
      padding: var(--p-accordion-header-padding);
      font-size: var(--p-accordion-header-font-size);
      font-weight: var(--p-accordion-header-font-weight);
      color: var(--p-accordion-header-color);
      background: var(--p-accordion-header-background);
      border-style: solid;
      border-width: var(--p-accordion-header-border-width);
      border-color: var(--p-accordion-header-border-color);
      border-radius: var(--p-accordion-header-border-radius);
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
      outline: 0 none;
      outline-color: transparent;
      transition:
        background var(--p-accordion-transition-duration),
        color var(--p-accordion-transition-duration),
        outline-color var(--p-accordion-transition-duration),
        box-shadow var(--p-accordion-transition-duration);
    }
    .p-accordion-header:not(.p-state-active)::after,
    .p-accordion-content::after {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      border-style: solid;
      border-width: var(--p-accordion-panel-border-width);
      border-color: var(--p-accordion-panel-border-color);
      border-radius: inherit;
    }
    .p-accordion-header:first-child {
      border-width: var(--p-accordion-header-first-border-width);
      border-start-start-radius: var(--p-accordion-header-first-top-border-radius);
      border-start-end-radius: var(--p-accordion-header-first-top-border-radius);
    }
    > .p-accordion-header:not(:has(~ .p-accordion-header)) {
      border-end-start-radius: var(--p-accordion-header-last-bottom-border-radius);
      border-end-end-radius: var(--p-accordion-header-last-bottom-border-radius);
    }
    > .p-accordion-header.p-state-active:not(:has(~ .p-accordion-header)) {
      border-end-start-radius: var(--p-accordion-header-last-active-bottom-border-radius);
      border-end-end-radius: var(--p-accordion-header-last-active-bottom-border-radius);
    }
    .p-accordion-header {
      &.p-state-hover,
      &:not(.p-state-active, .p-state-disabled):hover {
        background: var(--p-accordion-header-hover-background);
        color: var(--p-accordion-header-hover-color);
      }
      &.p-state-active {
        background: var(--p-accordion-header-active-background);
        color: var(--p-accordion-header-active-color);
        &:not(.p-state-disabled):hover {
          background: var(--p-accordion-header-active-hover-background);
          color: var(--p-accordion-header-active-hover-color);
        }
      }
      &:not(.p-state-disabled):focus-visible {
        outline: var(--p-accordion-header-focus-ring-width) var(--p-accordion-header-focus-ring-style) var(--p-accordion-header-focus-ring-color);
        outline-offset: var(--p-accordion-header-focus-ring-offset);
        box-shadow: var(--p-accordion-header-focus-ring-shadow);
      }
      &.p-state-error,
      &.p-state-error:hover,
      &.p-state-error.p-state-active:hover {
        border-color: var(--p-accordion-header-invalid-border-color);
        background: var(--p-accordion-header-invalid-background);
        color: var(--p-accordion-header-invalid-color);
      }
      &.p-state-error::after,
      &.p-state-error + .p-accordion-content,
      &.p-state-error + .p-accordion-content::after {
        border-color: var(--p-accordion-header-invalid-border-color);
      }
      > .p-accordion-toggler {
        float: right;
        line-height: var(--p-typography-line-height);
        color: var(--p-accordion-header-toggle-icon-color);
        transition: color var(--p-accordion-transition-duration);
      }
      &.p-state-hover > .p-accordion-toggler,
      &:not(.p-state-active, .p-state-disabled):hover > .p-accordion-toggler {
        color: var(--p-accordion-header-toggle-icon-hover-color);
      }
      &.p-state-active {
        > .p-accordion-toggler {
          color: var(--p-accordion-header-toggle-icon-active-color);
        }
        &:not(.p-state-disabled):hover > .p-accordion-toggler {
          color: var(--p-accordion-header-toggle-icon-active-hover-color);
        }
      }
      &.p-state-error > .p-accordion-toggler {
        color: inherit;
      }
      .p-accordion-header-icon {
        --_icon: var(--p-accordion-header-collapsed-icon);
      }
      &[aria-expanded=true] .p-accordion-header-icon {
        --_icon: var(--p-accordion-header-expanded-icon);
      }
      .p-panel-titlebar-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--p-button-icon-only-width);
        height: var(--p-button-icon-only-width);
        margin: 0;
        margin-block: calc((var(--p-typography-line-height) * 1em - var(--p-button-icon-only-width)) / 2);
        padding: 0;
        background: transparent;
        color: var(--p-button-text-secondary-color);
        border: 0 none;
        border-radius: 50%;
        text-align: center;
        text-decoration: none;
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-button-transition-duration),
          color var(--p-button-transition-duration),
          outline-color var(--p-button-transition-duration),
          box-shadow var(--p-button-transition-duration);
        &:hover {
          background: var(--p-button-text-secondary-hover-background);
          color: var(--p-button-text-secondary-color);
        }
        &:active {
          background: var(--p-button-text-secondary-active-background);
        }
        &:focus-visible {
          outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
          outline-offset: var(--p-button-focus-ring-offset);
          box-shadow: var(--p-button-secondary-focus-ring-shadow);
        }
        .p-accordion-header-menu-icon {
          --_icon: var(--p-accordion-header-menu-icon);
        }
      }
    }
    .p-panel-titlebar-icon {
      float: right;
      cursor: pointer;
    }
    .p-panel-actions {
      float: right;
    }
    .p-accordion-content {
      position: relative;
      margin: 0;
      padding: var(--p-accordion-content-padding);
      background: var(--p-accordion-content-background);
      color: var(--p-accordion-content-color);
      border-style: solid;
      border-width: var(--p-accordion-content-border-width);
      border-color: var(--p-accordion-content-border-color);
      overflow: auto;
      &:last-of-type {
        border-end-start-radius: var(--p-accordion-header-last-bottom-border-radius);
        border-end-end-radius: var(--p-accordion-header-last-bottom-border-radius);
      }
    }
    &.p-accordion-rtl {
      direction: rtl;
      .p-accordion-header > .p-accordion-toggler,
      .p-panel-titlebar-icon,
      .p-panel-actions {
        float: left;
      }
    }
  }
}

/* packages/core/src/ajaxstatus/ajaxstatus.css */
@layer primefaces.components {
  @keyframes p-spin {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }
  @keyframes p-ajaxstatus-bar-anim {
    from {
      inset-inline-start: -40%;
    }
    to {
      inset-inline-start: 100%;
    }
  }
  .p-icon-loading {
    animation: p-spin var(--p-ajaxstatus-loading-icon-animation-duration) linear infinite;
  }
  .p-ajaxstatus-loading-icon {
    --_icon: var(--p-ajaxstatus-loading-icon);
  }
  .p-ajaxstatus-bar:not(:has(> [id$=_start])),
  .p-ajaxstatus-bar > [id$=_start] {
    position: fixed;
    top: 0;
    inset-inline: 0;
    z-index: 9999;
    height: var(--p-ajaxstatus-bar-height);
    overflow: hidden;
    font-size: 0;
    pointer-events: none;
    background: var(--p-ajaxstatus-bar-background);
    &::before {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      inset-inline-start: -40%;
      width: 40%;
      background: var(--p-ajaxstatus-bar-value-background);
      animation: p-ajaxstatus-bar-anim var(--p-ajaxstatus-bar-animation-duration) linear infinite;
    }
    > * {
      display: none;
    }
  }
}

/* packages/components/src/autocomplete/autocomplete.css */
@layer primefaces.components {
  .p-autocomplete {
    --p-inputtext-background: var(--p-autocomplete-background);
    --p-inputtext-disabled-background: var(--p-autocomplete-disabled-background);
    --p-inputtext-filled-background: var(--p-autocomplete-filled-background);
    --p-inputtext-filled-hover-background: var(--p-autocomplete-filled-hover-background);
    --p-inputtext-filled-focus-background: var(--p-autocomplete-filled-focus-background);
    --p-inputtext-border-color: var(--p-autocomplete-border-color);
    --p-inputtext-hover-border-color: var(--p-autocomplete-hover-border-color);
    --p-inputtext-focus-border-color: var(--p-autocomplete-focus-border-color);
    --p-inputtext-invalid-border-color: var(--p-autocomplete-invalid-border-color);
    --p-inputtext-color: var(--p-autocomplete-color);
    --p-inputtext-disabled-color: var(--p-autocomplete-disabled-color);
    --p-inputtext-placeholder-color: var(--p-autocomplete-placeholder-color);
    --p-inputtext-invalid-placeholder-color: var(--p-autocomplete-invalid-placeholder-color);
    --p-inputtext-shadow: var(--p-autocomplete-shadow);
    --p-inputtext-padding-x: var(--p-autocomplete-padding-x);
    --p-inputtext-padding-y: var(--p-autocomplete-padding-y);
    --p-inputtext-border-radius: var(--p-autocomplete-border-radius);
    --p-inputtext-focus-ring-width: var(--p-autocomplete-focus-ring-width);
    --p-inputtext-focus-ring-style: var(--p-autocomplete-focus-ring-style);
    --p-inputtext-focus-ring-color: var(--p-autocomplete-focus-ring-color);
    --p-inputtext-focus-ring-offset: var(--p-autocomplete-focus-ring-offset);
    --p-inputtext-focus-ring-shadow: var(--p-autocomplete-focus-ring-shadow);
    --p-inputtext-transition-duration: var(--p-autocomplete-transition-duration);
    width: auto;
    cursor: pointer;
    box-shadow: none;
    position: relative;
    display: inline-block;
    &.p-state-disabled {
      opacity: 1;
      > .p-autocomplete-dropdown {
        opacity: var(--p-disabled-opacity);
      }
    }
    &.p-autocomplete-dd {
      display: inline-flex;
      align-items: stretch;
      vertical-align: bottom;
    }
    .p-autocomplete-input.p-autocomplete-dd-input {
      padding-block: var(--p-autocomplete-padding-y);
      padding-inline: var(--p-autocomplete-padding-x);
      border-start-end-radius: 0;
      border-end-end-radius: 0;
    }
    .p-autocomplete-dropdown.p-button {
      --_bg: var(--p-autocomplete-dropdown-background);
      --_hover-bg: var(--p-autocomplete-dropdown-hover-background);
      --_active-bg: var(--p-autocomplete-dropdown-active-background);
      --_border: var(--p-autocomplete-dropdown-border-color);
      --_hover-border: var(--p-autocomplete-dropdown-hover-border-color);
      --_active-border: var(--p-autocomplete-dropdown-active-border-color);
      --_color: var(--p-autocomplete-dropdown-color);
      --_hover-color: var(--p-autocomplete-dropdown-hover-color);
      --_active-color: var(--p-autocomplete-dropdown-active-color);
      --_focus-ring-color: var(--p-autocomplete-dropdown-focus-ring-color);
      --_focus-ring-shadow: var(--p-autocomplete-dropdown-focus-ring-shadow);
      position: relative;
      flex: 0 0 auto;
      height: auto;
      width: var(--p-autocomplete-dropdown-width);
      padding-block: 0;
      margin: 0;
      border-inline-start-width: 0;
      border-start-start-radius: 0;
      border-end-start-radius: 0;
      border-start-end-radius: var(--p-autocomplete-dropdown-border-radius);
      border-end-end-radius: var(--p-autocomplete-dropdown-border-radius);
      transition:
        background var(--p-autocomplete-transition-duration),
        color var(--p-autocomplete-transition-duration),
        border-color var(--p-autocomplete-transition-duration),
        outline-color var(--p-autocomplete-transition-duration),
        box-shadow var(--p-autocomplete-transition-duration);
      &:focus-visible {
        outline: var(--p-autocomplete-dropdown-focus-ring-width) var(--p-autocomplete-dropdown-focus-ring-style) var(--_focus-ring-color);
        outline-offset: var(--p-autocomplete-dropdown-focus-ring-offset);
      }
    }
    .p-autocomplete-dropdown-icon {
      --_icon: var(--p-autocomplete-dropdown-icon);
    }
    .p-icon-loading {
      position: absolute;
      top: 50%;
    }
    &.p-state-loading .p-icon-loading {
      inset-inline-end: var(--p-autocomplete-padding-x);
      margin-top: calc(-1 * var(--p-icon-size) / 2);
      color: var(--p-form-field-icon-color);
    }
    &.p-state-loading.p-autocomplete-dd .p-icon-loading {
      inset-inline-end: calc(var(--p-autocomplete-padding-x) + var(--p-autocomplete-dropdown-width));
    }
  }
  .p-autocomplete.p-autocomplete-dd:has(> .p-inputtext-sm) .p-autocomplete-dropdown.p-button {
    width: var(--p-autocomplete-dropdown-sm-width);
  }
  .p-autocomplete.p-autocomplete-dd:has(> .p-inputtext-lg) .p-autocomplete-dropdown.p-button {
    width: var(--p-autocomplete-dropdown-lg-width);
  }
  .p-autocomplete-dd {
    &:has(> .p-inputfield.p-state-hover, > .p-inputfield:hover) .p-autocomplete-dropdown.p-button {
      --_border: var(--p-autocomplete-hover-border-color);
      --_hover-border: var(--p-autocomplete-hover-border-color);
      --_active-border: var(--p-autocomplete-hover-border-color);
    }
    &:has(> .p-inputfield.p-state-focus, > .p-inputfield:focus) .p-autocomplete-dropdown.p-button {
      --_border: var(--p-autocomplete-focus-border-color);
      --_hover-border: var(--p-autocomplete-focus-border-color);
      --_active-border: var(--p-autocomplete-focus-border-color);
    }
    &:has(> .p-inputfield.p-state-error) .p-autocomplete-dropdown.p-button {
      --_border: var(--p-autocomplete-invalid-border-color);
      --_hover-border: var(--p-autocomplete-invalid-border-color);
      --_active-border: var(--p-autocomplete-invalid-border-color);
    }
  }
  .p-autocomplete-multiple-container {
    clear: left;
    cursor: text;
    list-style-type: none;
    margin: 0;
    min-height: 1px;
    overflow: hidden;
    width: 400px;
    max-width: 100%;
  }
  .p-autocomplete.p-autocomplete-multiple {
    max-width: 100%;
  }
  .p-autocomplete-token {
    cursor: default;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
  }
  .p-autocomplete-token-label,
  .p-autocomplete-token-label-disabled {
    display: block;
  }
  .p-autocomplete-token-icon {
    position: absolute;
    top: 50%;
    cursor: pointer;
  }
  .p-autocomplete-input-token {
    list-style-type: none;
    input {
      border: 0 none;
      width: 140px;
      outline: 0 none;
      background-color: transparent;
      box-shadow: none;
    }
  }
  .p-autocomplete .p-autocomplete-multiple-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: calc(var(--p-autocomplete-padding-y) / 2) var(--p-autocomplete-padding-x);
    &.p-autocomplete-dd-multiple-container {
      flex: 1 1 auto;
      padding-inline-end: var(--p-autocomplete-padding-x);
      border-start-end-radius: 0;
      border-end-end-radius: 0;
    }
    .p-autocomplete-token {
      padding: calc(var(--p-autocomplete-padding-y) / 2) 0;
      margin: 0;
      margin-inline-end: calc(var(--p-autocomplete-padding-y) / 2);
      background: var(--p-chip-background);
      color: var(--p-chip-color);
      display: inline-block;
      vertical-align: middle;
      float: none;
      border-radius: var(--p-autocomplete-chip-border-radius);
      transition: background var(--p-autocomplete-transition-duration), color var(--p-autocomplete-transition-duration);
      .p-autocomplete-token-label {
        padding-block: 0;
        padding-inline: var(--p-chip-padding-x) calc(var(--p-chip-padding-x) + var(--p-chip-gap) + var(--p-chip-remove-icon-size));
        font-size: var(--p-chip-label-font-size);
        font-weight: var(--p-chip-label-font-weight);
      }
      .p-autocomplete-token-label-disabled {
        padding-inline: var(--p-chip-padding-x);
      }
      .p-autocomplete-chip-remove-icon {
        --_icon: var(--p-autocomplete-chip-remove-icon);
      }
      .p-autocomplete-token-icon {
        position: absolute;
        inset-inline-end: var(--p-chip-padding-x);
        margin-top: calc(-1 * var(--p-chip-remove-icon-size) / 2);
        font-size: var(--p-chip-remove-icon-size);
        color: var(--p-chip-remove-icon-color);
      }
    }
    .p-autocomplete-input-token {
      margin: 0;
      padding: calc(var(--p-autocomplete-padding-y) / 2) 0;
      display: inline-block;
      vertical-align: middle;
      float: none;
      flex: 1 1 4rem;
      min-width: 4rem;
      input {
        font-family: inherit;
        font-size: var(--p-form-field-font-size);
        font-weight: var(--p-form-field-font-weight);
        line-height: var(--p-typography-line-height);
        color: var(--p-autocomplete-color);
        appearance: none;
        width: 100%;
        padding: 0;
        margin: 0;
      }
      input::placeholder {
        color: var(--p-autocomplete-placeholder-color);
      }
    }
    &.p-state-error .p-autocomplete-input-token input::placeholder {
      color: var(--p-autocomplete-invalid-placeholder-color);
    }
  }
  .p-autocomplete-panel {
    position: absolute;
    overflow: auto;
    padding: 0;
    background: var(--p-autocomplete-overlay-background);
    color: var(--p-autocomplete-overlay-color);
    border: 1px solid var(--p-autocomplete-overlay-border-color);
    border-radius: var(--p-autocomplete-overlay-border-radius);
    box-shadow: var(--p-autocomplete-overlay-shadow);
    .p-autocomplete-item {
      cursor: pointer;
    }
    .p-autocomplete-list {
      border: 0 none;
      margin: 0;
      list-style-type: none;
    }
    .p-autocomplete-list-item {
      text-align: start;
    }
    .p-autocomplete-empty-message {
      border: 0 none;
      margin: 0;
      padding: var(--p-autocomplete-empty-message-padding);
      color: var(--p-autocomplete-option-color);
      border-radius: var(--p-autocomplete-option-border-radius);
    }
    .p-autocomplete-items {
      padding: var(--p-autocomplete-list-padding);
      border: 0 none;
      background: transparent;
      color: inherit;
      .p-autocomplete-item {
        border: 0 none;
        margin: 0;
        padding: var(--p-autocomplete-option-padding);
        color: var(--p-autocomplete-option-color);
        background: transparent;
        font-size: var(--p-autocomplete-option-font-size);
        font-weight: var(--p-autocomplete-option-font-weight);
        border-radius: var(--p-autocomplete-option-border-radius);
        transition:
          background var(--p-list-option-transition-duration),
          color var(--p-list-option-transition-duration),
          border-color var(--p-list-option-transition-duration);
      }
    }
    .p-autocomplete-items:empty {
      padding: 0;
    }
    .p-autocomplete-list .p-autocomplete-item + .p-autocomplete-item {
      margin-top: var(--p-autocomplete-list-gap);
    }
    .p-autocomplete-table {
      border-collapse: collapse;
      width: 100%;
      th,
      td {
        border-style: solid;
        border-color: var(--p-autocomplete-table-cell-border-color);
        border-width: 0 0 1px 0;
        padding: var(--p-autocomplete-table-cell-padding);
        text-align: start;
      }
      th {
        background: var(--p-autocomplete-table-header-cell-background);
        color: var(--p-autocomplete-table-header-cell-color);
        font-weight: var(--p-autocomplete-table-header-cell-font-weight);
      }
    }
    .p-autocomplete-items .p-autocomplete-item.p-autocomplete-row {
      border-radius: 0;
      &:last-child > td {
        border-bottom-width: 0;
      }
    }
    .p-autocomplete-items .p-autocomplete-item.p-state-highlight {
      background: var(--p-autocomplete-option-focus-background);
      color: var(--p-autocomplete-option-focus-color);
    }
    .p-autocomplete-items .p-autocomplete-moretext {
      padding: var(--p-autocomplete-option-padding);
      color: var(--p-autocomplete-more-text-color);
      font-size: var(--p-autocomplete-option-font-size);
      font-weight: var(--p-autocomplete-more-text-font-weight);
    }
    .p-autocomplete-query {
      font-weight: var(--p-autocomplete-query-font-weight);
    }
    .p-autocomplete-group {
      cursor: default;
      padding: var(--p-autocomplete-option-group-padding);
      background: var(--p-autocomplete-option-group-background);
      color: var(--p-autocomplete-option-group-color);
      font-size: var(--p-autocomplete-option-group-font-size);
      font-weight: var(--p-autocomplete-option-group-font-weight);
    }
  }
  .p-autocomplete-list .p-autocomplete-moretext {
    text-align: start;
  }
  .p-autocomplete-empty-message {
    width: 100%;
  }
  .p-autocomplete-itemtip {
    position: absolute;
    display: none;
    &.p-widget {
      padding: var(--p-autocomplete-itemtip-padding);
      background: var(--p-autocomplete-itemtip-background);
      color: var(--p-autocomplete-itemtip-color);
      border: 1px solid var(--p-autocomplete-itemtip-border-color);
      border-radius: var(--p-autocomplete-itemtip-border-radius);
      box-shadow: var(--p-autocomplete-itemtip-shadow);
    }
  }
  .p-autocomplete-itemtip-content {
    display: none;
  }
  .p-fluid {
    .p-autocomplete,
    .p-autocomplete-input,
    .p-autocomplete-multiple-container {
      width: 100%;
    }
    .p-autocomplete.p-autocomplete-dd {
      display: flex;
    }
    .p-autocomplete .p-autocomplete-input.p-autocomplete-dd-input,
    .p-autocomplete-multiple-container.p-autocomplete-dd-multiple-container {
      width: 1%;
      flex: 1 1 auto;
    }
    .p-autocomplete .p-autocomplete-dropdown.p-button {
      width: var(--p-autocomplete-dropdown-width);
    }
  }
}

/* packages/components/src/avatar/avatar.css */
@layer primefaces.components {
  .p-avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--p-avatar-width);
    height: var(--p-avatar-height);
    font-size: var(--p-avatar-font-size);
    font-weight: var(--p-avatar-font-weight);
    background-color: var(--p-avatar-background);
    color: var(--p-avatar-color);
    border-radius: var(--p-avatar-border-radius);
    &:has(> img) {
      background-color: transparent;
    }
    > * {
      position: absolute;
    }
    img {
      width: 100%;
      height: 100%;
      border-radius: inherit;
    }
    .p-avatar-icon {
      font-size: var(--p-avatar-icon-size);
    }
    &.p-avatar-circle,
    &.p-avatar-circle img {
      border-radius: 50%;
    }
    &.p-avatar-lg {
      width: var(--p-avatar-lg-width);
      height: var(--p-avatar-lg-height);
      font-size: var(--p-avatar-lg-font-size);
      .p-avatar-icon {
        font-size: var(--p-avatar-lg-icon-size);
      }
    }
    &.p-avatar-xl {
      width: var(--p-avatar-xl-width);
      height: var(--p-avatar-xl-height);
      font-size: var(--p-avatar-xl-font-size);
      .p-avatar-icon {
        font-size: var(--p-avatar-xl-icon-size);
      }
    }
    &.p-avatar-dark {
      color: var(--p-avatar-dynamic-dark-color);
    }
    &.p-avatar-light {
      color: var(--p-avatar-dynamic-light-color);
    }
  }
  .p-avatar-group {
    display: flex;
    align-items: center;
  }
  .p-avatar-group .p-avatar {
    border: 2px solid var(--p-avatar-group-border-color);
    + .p-avatar {
      margin-inline-start: var(--p-avatar-group-offset);
    }
    &.p-avatar-lg + .p-avatar.p-avatar-lg {
      margin-inline-start: var(--p-avatar-lg-group-offset);
    }
    &.p-avatar-xl + .p-avatar.p-avatar-xl {
      margin-inline-start: var(--p-avatar-xl-group-offset);
    }
  }
}

/* packages/components/src/blockui/blockui.css */
@layer primefaces.components {
  .p-blockui {
    position: absolute;
    text-align: center;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-user-select: none;
    user-select: none;
    &.p-widget-overlay {
      background: var(--p-blockui-mask-background);
      color: var(--p-blockui-mask-color);
      border-radius: var(--p-blockui-border-radius);
    }
    &.p-widget-overlay.p-blockui-light {
      background: var(--p-blockui-light-mask-background);
      color: var(--p-blockui-light-mask-color);
    }
    &:not(:has(> .p-blockui-content:not(:empty)))::before {
      content: " ";
      position: absolute;
      inset: 0;
      width: 1em;
      height: 1em;
      margin: auto;
      line-height: 1;
      font-size: var(--p-blockui-loading-icon-size);
      color: var(--p-blockui-loading-icon-color);
      background: currentColor;
      forced-color-adjust: none;
      mask: var(--p-blockui-loading-icon) center / contain no-repeat;
      animation: p-spin var(--p-blockui-loading-icon-animation-duration) linear infinite;
    }
    &.p-blockui-light:not(:has(> .p-blockui-content:not(:empty)))::before {
      color: var(--p-blockui-light-mask-color);
    }
  }
  .p-blockui-content {
    position: absolute;
    text-align: center;
    &.p-widget {
      padding: var(--p-blockui-content-padding);
      background: var(--p-blockui-content-background);
      color: var(--p-blockui-content-color);
      border: 1px solid var(--p-blockui-content-border-color);
      border-radius: var(--p-blockui-content-border-radius);
      box-shadow: var(--p-blockui-content-shadow);
    }
  }
}

/* packages/components/src/menu/breadcrumb.css */
@layer primefaces.components {
  .p-breadcrumb {
    margin: 0;
    overflow-x: auto;
    background: var(--p-breadcrumb-background);
    border: var(--p-breadcrumb-border-width) solid var(--p-breadcrumb-border-color);
    border-radius: var(--p-breadcrumb-border-radius);
    padding: var(--p-breadcrumb-padding);
    &::-webkit-scrollbar {
      display: none;
    }
    .p-menuitem-link {
      text-decoration: none;
    }
    .p-breadcrumb-items {
      margin: 0;
      padding: 0;
      list-style-type: none;
      display: flex;
      align-items: center;
      flex-wrap: nowrap;
      li .p-menuitem-link {
        display: flex;
        align-items: center;
        gap: var(--p-breadcrumb-item-gap);
        margin: 0;
        border-radius: var(--p-breadcrumb-item-border-radius);
        outline-color: transparent;
        color: var(--p-breadcrumb-item-color);
        transition:
          background var(--p-breadcrumb-transition-duration),
          color var(--p-breadcrumb-transition-duration),
          outline-color var(--p-breadcrumb-transition-duration),
          box-shadow var(--p-breadcrumb-transition-duration);
        &:focus-visible {
          outline: var(--p-breadcrumb-item-focus-ring-width) var(--p-breadcrumb-item-focus-ring-style) var(--p-breadcrumb-item-focus-ring-color);
          outline-offset: var(--p-breadcrumb-item-focus-ring-offset);
          box-shadow: var(--p-breadcrumb-item-focus-ring-shadow);
        }
        .p-menuitem-text {
          color: var(--p-breadcrumb-item-color);
          font-size: var(--p-breadcrumb-item-label-font-size);
          font-weight: var(--p-breadcrumb-item-label-font-weight);
          transition: inherit;
        }
        .p-menuitem-icon {
          color: var(--p-breadcrumb-item-icon-color);
          font-size: var(--p-breadcrumb-item-icon-size);
          transition: inherit;
        }
        &:not(.p-state-disabled):hover .p-menuitem-text {
          color: var(--p-breadcrumb-item-hover-color);
        }
        &:not(.p-state-disabled):hover .p-menuitem-icon {
          color: var(--p-breadcrumb-item-icon-hover-color);
        }
        &.p-breadcrumb-home-icon {
          color: var(--p-breadcrumb-item-icon-color);
          font-size: var(--p-breadcrumb-item-icon-size);
          line-height: 1;
          &:not(.p-state-disabled):hover {
            color: var(--p-breadcrumb-item-icon-hover-color);
          }
        }
      }
      li.p-breadcrumb-options {
        margin-inline-start: auto;
      }
      li:not(.p-breadcrumb-options) {
        display: flex;
        align-items: center;
      }
      li:not(.p-breadcrumb-options)::before {
        content: " ";
        background: currentColor;
        forced-color-adjust: none;
        mask: var(--p-breadcrumb-separator-icon) center / contain no-repeat;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        display: inline-block;
        margin: 0 var(--p-breadcrumb-gap);
        color: var(--p-breadcrumb-separator-color);
      }
      li:not(.p-breadcrumb-options):dir(rtl)::before {
        scale: -1 1;
      }
      li:first-child::before {
        display: none;
      }
      li:first-child a.p-breadcrumb-home-icon {
        --_icon: var(--p-breadcrumb-home-icon);
        span {
          display: none;
        }
      }
    }
  }
  .p-breadcrumb-home-icon .p-menuitem-text {
    display: none;
  }
}

/* packages/components/src/forms/button.css */
@layer primefaces.components {
  .p-fluid {
    .p-button {
      width: 100%;
    }
    .p-buttonset {
      width: 100%;
    }
  }
  .p-button {
    --_bg: var(--p-button-primary-background);
    --_hover-bg: var(--p-button-primary-hover-background);
    --_active-bg: var(--p-button-primary-active-background);
    --_border: var(--p-button-primary-border-color);
    --_hover-border: var(--p-button-primary-hover-border-color);
    --_active-border: var(--p-button-primary-active-border-color);
    --_color: var(--p-button-primary-color);
    --_hover-color: var(--p-button-primary-hover-color);
    --_active-color: var(--p-button-primary-active-color);
    --_focus-ring-color: var(--p-button-primary-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-primary-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-primary-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-primary-active-background);
    --_outlined-border: var(--p-button-outlined-primary-border-color);
    --_outlined-color: var(--p-button-outlined-primary-color);
    --_text-hover-bg: var(--p-button-text-primary-hover-background);
    --_text-active-bg: var(--p-button-text-primary-active-background);
    --_text-color: var(--p-button-text-primary-color);
    --_shadow: var(--p-button-shadow);
    --_active-shadow: var(--p-button-active-shadow);
    --_label-shadow: var(--p-button-label-shadow);
    --_texture: var(--p-button-texture);
    text-decoration: none !important;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--p-button-gap);
    position: relative;
    margin: 0;
    padding: var(--p-button-padding-y) var(--p-button-padding-x);
    vertical-align: bottom;
    overflow: hidden;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    font-size: var(--p-button-font-size);
    font-weight: var(--p-button-label-font-weight);
    background: var(--_texture), var(--_bg);
    color: var(--_color);
    border: 1px solid var(--_border);
    border-radius: var(--p-button-border-radius);
    box-shadow: var(--_shadow);
    outline-color: transparent;
    transition:
      background var(--p-button-transition-duration),
      color var(--p-button-transition-duration),
      border-color var(--p-button-transition-duration),
      outline-color var(--p-button-transition-duration),
      box-shadow var(--p-button-transition-duration),
      translate var(--p-button-transition-duration);
    .p-button-text {
      display: block;
      padding: 0;
      line-height: var(--p-typography-line-height);
      font-weight: var(--p-button-label-font-weight);
      text-shadow: var(--_label-shadow);
    }
    .p-button-icon-left,
    .p-button-icon-right,
    .p-icon {
      position: static;
      margin: 0;
      line-height: 1;
    }
    .p-button-icon-right {
      order: 1;
    }
    &.p-button-icon-only {
      width: var(--p-button-icon-only-width);
      padding-inline: 0;
      gap: 0;
      .p-button-text {
        visibility: hidden;
        width: 0;
        min-height: calc(1em * var(--p-typography-line-height));
        padding: 0;
        overflow: hidden;
        white-space: nowrap;
      }
      &.rounded-button {
        border-radius: 50%;
        height: var(--p-button-icon-only-width);
      }
    }
    &.p-linkbutton {
      padding: 0;
      > a {
        display: inline-flex;
        align-items: center;
        gap: var(--p-button-gap);
        padding: var(--p-button-padding-y) var(--p-button-padding-x);
        color: inherit;
        text-decoration: none;
        outline: 0 none;
      }
    }
    &:not(:disabled, .p-state-disabled):hover {
      background: var(--_texture), var(--_hover-bg);
      border-color: var(--_hover-border);
      color: var(--_hover-color);
    }
    &:not(:disabled, .p-state-disabled):active,
    &.p-state-active {
      background: var(--_texture), var(--_active-bg);
      border-color: var(--_active-border);
      color: var(--_active-color);
    }
    &:not(:disabled, .p-state-disabled):active {
      box-shadow: var(--_active-shadow);
      translate: 0 var(--p-button-active-offset);
    }
    &:focus-visible,
    &.p-linkbutton:has(> a:focus-visible) {
      outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--_focus-ring-color);
      outline-offset: var(--p-button-focus-ring-offset);
      box-shadow: var(--_focus-ring-shadow);
    }
    &:disabled,
    &.p-state-disabled {
      cursor: default;
    }
    &:disabled {
      opacity: var(--p-disabled-opacity);
    }
    .p-button-dropdown-icon {
      --_icon: var(--p-button-dropdown-icon);
    }
    &.p-state-loading :is(.p-button-icon-left, .p-button-icon-right, .p-icon):not(.p-icon-loading) {
      display: none;
    }
  }
  .p-button-group {
    display: inline-flex;
    border-radius: var(--p-button-border-radius);
    &:has(.p-button-raised) {
      box-shadow: var(--p-button-raised-shadow);
    }
    .p-button {
      margin: 0;
      border-radius: 0;
      &:not(:nth-last-child(1 of .p-button)) {
        border-inline-end-width: 0;
      }
      &:nth-child(1 of .p-button) {
        border-start-start-radius: var(--p-button-border-radius);
        border-end-start-radius: var(--p-button-border-radius);
      }
      &:nth-last-child(1 of .p-button) {
        border-start-end-radius: var(--p-button-border-radius);
        border-end-end-radius: var(--p-button-border-radius);
      }
      &:focus-visible {
        z-index: 1;
      }
      &.p-button-raised:not(:focus-visible) {
        box-shadow: none;
      }
    }
  }
  .p-buttonset .p-button {
    margin-left: 0;
    margin-right: 0;
  }
  button.p-button::-moz-focus-inner {
    border: 0;
    padding: 0;
  }
  .p-menubutton {
    display: inline-flex;
    position: relative;
    padding: 0;
    .p-button {
      margin: 0;
    }
  }
  .p-button.p-button-secondary,
  :is(.p-splitbutton, .p-menubutton).p-button-secondary > .p-button {
    --_bg: var(--p-button-secondary-background);
    --_hover-bg: var(--p-button-secondary-hover-background);
    --_active-bg: var(--p-button-secondary-active-background);
    --_border: var(--p-button-secondary-border-color);
    --_hover-border: var(--p-button-secondary-hover-border-color);
    --_active-border: var(--p-button-secondary-active-border-color);
    --_color: var(--p-button-secondary-color);
    --_hover-color: var(--p-button-secondary-hover-color);
    --_active-color: var(--p-button-secondary-active-color);
    --_focus-ring-color: var(--p-button-secondary-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-secondary-focus-ring-shadow);
    --_label-shadow: var(--p-button-outlined-label-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-secondary-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-secondary-active-background);
    --_outlined-border: var(--p-button-outlined-secondary-border-color);
    --_outlined-color: var(--p-button-outlined-secondary-color);
    --_text-hover-bg: var(--p-button-text-secondary-hover-background);
    --_text-active-bg: var(--p-button-text-secondary-active-background);
    --_text-color: var(--p-button-text-secondary-color);
  }
  .p-button.p-button-info,
  :is(.p-splitbutton, .p-menubutton).p-button-info > .p-button {
    --_bg: var(--p-button-info-background);
    --_hover-bg: var(--p-button-info-hover-background);
    --_active-bg: var(--p-button-info-active-background);
    --_border: var(--p-button-info-border-color);
    --_hover-border: var(--p-button-info-hover-border-color);
    --_active-border: var(--p-button-info-active-border-color);
    --_color: var(--p-button-info-color);
    --_hover-color: var(--p-button-info-hover-color);
    --_active-color: var(--p-button-info-active-color);
    --_focus-ring-color: var(--p-button-info-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-info-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-info-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-info-active-background);
    --_outlined-border: var(--p-button-outlined-info-border-color);
    --_outlined-color: var(--p-button-outlined-info-color);
    --_text-hover-bg: var(--p-button-text-info-hover-background);
    --_text-active-bg: var(--p-button-text-info-active-background);
    --_text-color: var(--p-button-text-info-color);
  }
  .p-button.p-button-success,
  :is(.p-splitbutton, .p-menubutton).p-button-success > .p-button {
    --_bg: var(--p-button-success-background);
    --_hover-bg: var(--p-button-success-hover-background);
    --_active-bg: var(--p-button-success-active-background);
    --_border: var(--p-button-success-border-color);
    --_hover-border: var(--p-button-success-hover-border-color);
    --_active-border: var(--p-button-success-active-border-color);
    --_color: var(--p-button-success-color);
    --_hover-color: var(--p-button-success-hover-color);
    --_active-color: var(--p-button-success-active-color);
    --_focus-ring-color: var(--p-button-success-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-success-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-success-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-success-active-background);
    --_outlined-border: var(--p-button-outlined-success-border-color);
    --_outlined-color: var(--p-button-outlined-success-color);
    --_text-hover-bg: var(--p-button-text-success-hover-background);
    --_text-active-bg: var(--p-button-text-success-active-background);
    --_text-color: var(--p-button-text-success-color);
  }
  .p-button.p-button-warning,
  :is(.p-splitbutton, .p-menubutton).p-button-warning > .p-button {
    --_bg: var(--p-button-warn-background);
    --_hover-bg: var(--p-button-warn-hover-background);
    --_active-bg: var(--p-button-warn-active-background);
    --_border: var(--p-button-warn-border-color);
    --_hover-border: var(--p-button-warn-hover-border-color);
    --_active-border: var(--p-button-warn-active-border-color);
    --_color: var(--p-button-warn-color);
    --_hover-color: var(--p-button-warn-hover-color);
    --_active-color: var(--p-button-warn-active-color);
    --_focus-ring-color: var(--p-button-warn-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-warn-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-warn-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-warn-active-background);
    --_outlined-border: var(--p-button-outlined-warn-border-color);
    --_outlined-color: var(--p-button-outlined-warn-color);
    --_text-hover-bg: var(--p-button-text-warn-hover-background);
    --_text-active-bg: var(--p-button-text-warn-active-background);
    --_text-color: var(--p-button-text-warn-color);
  }
  .p-button.p-button-help,
  :is(.p-splitbutton, .p-menubutton).p-button-help > .p-button {
    --_bg: var(--p-button-help-background);
    --_hover-bg: var(--p-button-help-hover-background);
    --_active-bg: var(--p-button-help-active-background);
    --_border: var(--p-button-help-border-color);
    --_hover-border: var(--p-button-help-hover-border-color);
    --_active-border: var(--p-button-help-active-border-color);
    --_color: var(--p-button-help-color);
    --_hover-color: var(--p-button-help-hover-color);
    --_active-color: var(--p-button-help-active-color);
    --_focus-ring-color: var(--p-button-help-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-help-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-help-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-help-active-background);
    --_outlined-border: var(--p-button-outlined-help-border-color);
    --_outlined-color: var(--p-button-outlined-help-color);
    --_text-hover-bg: var(--p-button-text-help-hover-background);
    --_text-active-bg: var(--p-button-text-help-active-background);
    --_text-color: var(--p-button-text-help-color);
  }
  .p-button.p-button-danger,
  :is(.p-splitbutton, .p-menubutton).p-button-danger > .p-button {
    --_bg: var(--p-button-danger-background);
    --_hover-bg: var(--p-button-danger-hover-background);
    --_active-bg: var(--p-button-danger-active-background);
    --_border: var(--p-button-danger-border-color);
    --_hover-border: var(--p-button-danger-hover-border-color);
    --_active-border: var(--p-button-danger-active-border-color);
    --_color: var(--p-button-danger-color);
    --_hover-color: var(--p-button-danger-hover-color);
    --_active-color: var(--p-button-danger-active-color);
    --_focus-ring-color: var(--p-button-danger-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-danger-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-danger-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-danger-active-background);
    --_outlined-border: var(--p-button-outlined-danger-border-color);
    --_outlined-color: var(--p-button-outlined-danger-color);
    --_text-hover-bg: var(--p-button-text-danger-hover-background);
    --_text-active-bg: var(--p-button-text-danger-active-background);
    --_text-color: var(--p-button-text-danger-color);
  }
  .p-button.p-button-contrast,
  :is(.p-splitbutton, .p-menubutton).p-button-contrast > .p-button {
    --_bg: var(--p-button-contrast-background);
    --_hover-bg: var(--p-button-contrast-hover-background);
    --_active-bg: var(--p-button-contrast-active-background);
    --_border: var(--p-button-contrast-border-color);
    --_hover-border: var(--p-button-contrast-hover-border-color);
    --_active-border: var(--p-button-contrast-active-border-color);
    --_color: var(--p-button-contrast-color);
    --_hover-color: var(--p-button-contrast-hover-color);
    --_active-color: var(--p-button-contrast-active-color);
    --_focus-ring-color: var(--p-button-contrast-focus-ring-color);
    --_focus-ring-shadow: var(--p-button-contrast-focus-ring-shadow);
    --_outlined-hover-bg: var(--p-button-outlined-contrast-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-contrast-active-background);
    --_outlined-border: var(--p-button-outlined-contrast-border-color);
    --_outlined-color: var(--p-button-outlined-contrast-color);
    --_text-hover-bg: var(--p-button-text-contrast-hover-background);
    --_text-active-bg: var(--p-button-text-contrast-active-background);
    --_text-color: var(--p-button-text-contrast-color);
  }
  .p-button.p-button-plain,
  :is(.p-splitbutton, .p-menubutton).p-button-plain > .p-button {
    --_outlined-hover-bg: var(--p-button-outlined-plain-hover-background);
    --_outlined-active-bg: var(--p-button-outlined-plain-active-background);
    --_outlined-border: var(--p-button-outlined-plain-border-color);
    --_outlined-color: var(--p-button-outlined-plain-color);
    --_text-hover-bg: var(--p-button-text-plain-hover-background);
    --_text-active-bg: var(--p-button-text-plain-active-background);
    --_text-color: var(--p-button-text-plain-color);
  }
  .p-button.p-button-outlined,
  :is(.p-splitbutton, .p-menubutton).p-button-outlined > .p-button {
    --_bg: var(--p-button-outlined-background);
    --_label-shadow: var(--p-button-outlined-label-shadow);
    --_hover-bg: var(--_outlined-hover-bg);
    --_active-bg: var(--_outlined-active-bg);
    --_border: var(--_outlined-border);
    --_hover-border: var(--_outlined-border);
    --_active-border: var(--_outlined-border);
    --_color: var(--_outlined-color);
    --_hover-color: var(--_outlined-color);
    --_active-color: var(--_outlined-color);
  }
  .p-button.p-button-flat,
  :is(.p-splitbutton, .p-menubutton).p-button-flat > .p-button {
    --_bg: transparent;
    --_hover-bg: var(--_text-hover-bg);
    --_active-bg: var(--_text-active-bg);
    --_border: transparent;
    --_hover-border: transparent;
    --_active-border: transparent;
    --_shadow: none;
    --_active-shadow: none;
    --_texture: none;
    --_label-shadow: var(--p-button-outlined-label-shadow);
    --_color: var(--_text-color);
    --_hover-color: var(--_text-color);
    --_active-color: var(--_text-color);
  }
  .p-button.p-button-raised,
  :is(.p-splitbutton, .p-menubutton).p-button-raised > .p-button {
    --_shadow: var(--p-button-raised-shadow);
    --_active-shadow: var(--p-button-raised-shadow);
  }
  .p-button {
    &.rounded-button {
      border-radius: var(--p-button-rounded-border-radius);
    }
    &.p-button-sm {
      font-size: var(--p-button-sm-font-size);
      padding: var(--p-button-sm-padding-y) var(--p-button-sm-padding-x);
      .p-button-icon-left,
      .p-button-icon-right,
      .p-icon {
        font-size: var(--p-button-sm-font-size);
      }
      &.p-button-icon-only {
        width: var(--p-button-sm-icon-only-width);
        padding-inline: 0;
        &.rounded-button {
          height: var(--p-button-sm-icon-only-width);
        }
      }
    }
    &.p-button-lg {
      font-size: var(--p-button-lg-font-size);
      padding: var(--p-button-lg-padding-y) var(--p-button-lg-padding-x);
      .p-button-icon-left,
      .p-button-icon-right,
      .p-icon {
        font-size: var(--p-button-lg-font-size);
      }
      &.p-button-icon-only {
        width: var(--p-button-lg-icon-only-width);
        padding-inline: 0;
        &.rounded-button {
          height: var(--p-button-lg-icon-only-width);
        }
      }
    }
    &.p-linkbutton {
      &.p-button-sm,
      &.p-button-lg {
        padding: 0;
      }
      &.p-button-sm > a {
        padding: var(--p-button-sm-padding-y) var(--p-button-sm-padding-x);
      }
      &.p-button-lg > a {
        padding: var(--p-button-lg-padding-y) var(--p-button-lg-padding-x);
      }
      &.p-button-icon-only > a {
        flex: 1 1 auto;
        align-self: stretch;
        justify-content: center;
        padding-inline: 0;
        gap: 0;
      }
    }
    .p-badge {
      min-width: var(--p-button-badge-size);
      height: var(--p-button-badge-size);
      line-height: var(--p-button-badge-size);
    }
  }
  .p-commandlink,
  .p-link {
    color: var(--p-button-link-color);
    border-radius: var(--p-border-radius-xs);
    outline-color: transparent;
    transition: color var(--p-button-transition-duration), outline-color var(--p-button-transition-duration);
    &:hover {
      color: var(--p-button-link-hover-color);
      text-decoration: underline;
    }
    &:active {
      color: var(--p-button-link-active-color);
    }
    &:focus-visible {
      outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
      outline-offset: var(--p-focus-ring-offset);
      box-shadow: var(--p-focus-ring-shadow);
    }
  }
  .p-commandlink.p-state-loading {
    cursor: progress;
    text-decoration: none;
    &::after {
      content: " ";
      display: inline-block;
      line-height: 1;
      margin-inline-start: var(--p-button-link-loading-icon-gap);
      vertical-align: -0.125em;
      background: currentColor;
      forced-color-adjust: none;
      mask: var(--p-button-link-loading-icon) center / contain no-repeat;
      animation: p-spin var(--p-ajaxstatus-loading-icon-animation-duration) linear infinite;
    }
  }
}

/* packages/components/src/card/card.css */
@layer primefaces.components {
  .p-card-header img {
    display: block;
    width: 100%;
  }
  .p-card {
    display: flex;
    flex-direction: column;
    background: var(--p-card-background);
    color: var(--p-card-color);
    border: 0 none;
    box-shadow: var(--p-card-shadow);
    border-radius: var(--p-card-border-radius);
    .p-card-header {
      overflow: hidden;
      border-start-start-radius: var(--p-card-border-radius);
      border-start-end-radius: var(--p-card-border-radius);
    }
    .p-card-body {
      display: flex;
      flex-direction: column;
      gap: var(--p-card-body-gap);
      padding: var(--p-card-body-padding);
    }
    .p-card-title {
      margin: 0;
      font-size: var(--p-card-title-font-size);
      font-weight: var(--p-card-title-font-weight);
    }
    .p-card-subtitle {
      margin: 0;
      color: var(--p-card-subtitle-color);
      font-size: var(--p-card-subtitle-font-size);
      font-weight: var(--p-card-subtitle-font-weight);
    }
    .p-card-title + .p-card-subtitle {
      margin-top: calc(var(--p-card-caption-gap) - var(--p-card-body-gap));
    }
  }
}

/* packages/components/src/carousel/carousel.css */
@layer primefaces.components {
  .p-carousel {
    display: flex;
    flex-direction: column;
    .p-carousel-content {
      .p-carousel-prev,
      .p-carousel-next {
        width: var(--p-button-icon-only-width);
        height: var(--p-button-icon-only-width);
        margin: var(--p-carousel-content-gap);
        padding: 0;
        background: transparent;
        color: var(--p-button-text-secondary-color);
        border: 0 none;
        border-radius: 50%;
        text-align: center;
        line-height: var(--p-button-icon-only-width);
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-carousel-transition-duration),
          color var(--p-carousel-transition-duration),
          outline-color var(--p-carousel-transition-duration),
          box-shadow var(--p-carousel-transition-duration);
      }
      .p-carousel-prev-icon {
        --_icon: var(--p-carousel-prev-icon);
      }
      .p-carousel-next-icon {
        --_icon: var(--p-carousel-next-icon);
      }
      .p-carousel-prev-vertical-icon {
        --_icon: var(--p-carousel-prev-vertical-icon);
      }
      .p-carousel-next-vertical-icon {
        --_icon: var(--p-carousel-next-vertical-icon);
      }
      .p-carousel-prev:hover,
      .p-carousel-next:hover {
        background: var(--p-button-text-secondary-hover-background);
        color: var(--p-button-text-secondary-color);
        text-decoration: none;
      }
      .p-carousel-prev:active,
      .p-carousel-next:active {
        background: var(--p-button-text-secondary-active-background);
      }
      .p-carousel-prev:focus-visible,
      .p-carousel-next:focus-visible {
        outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
        outline-offset: var(--p-focus-ring-offset);
        box-shadow: var(--p-focus-ring-shadow);
      }
      .p-carousel-prev.p-state-disabled,
      .p-carousel-next.p-state-disabled {
        opacity: var(--p-disabled-opacity);
      }
    }
    .p-carousel-indicators {
      padding: var(--p-carousel-indicator-list-padding);
      gap: var(--p-carousel-indicator-list-gap);
      .p-carousel-indicator {
        margin: 0;
        button {
          background: var(--p-carousel-indicator-background);
          width: var(--p-carousel-indicator-width);
          height: var(--p-carousel-indicator-height);
          border: 0 none;
          border-radius: var(--p-carousel-indicator-border-radius);
          outline-color: transparent;
          transition:
            background var(--p-carousel-transition-duration),
            color var(--p-carousel-transition-duration),
            outline-color var(--p-carousel-transition-duration),
            box-shadow var(--p-carousel-transition-duration);
        }
        button:hover {
          background: var(--p-carousel-indicator-hover-background);
        }
        button:focus-visible {
          outline: var(--p-carousel-indicator-focus-ring-width) var(--p-carousel-indicator-focus-ring-style) var(--p-carousel-indicator-focus-ring-color);
          outline-offset: var(--p-carousel-indicator-focus-ring-offset);
          box-shadow: var(--p-carousel-indicator-focus-ring-shadow);
        }
        &.p-state-highlight button {
          background: var(--p-carousel-indicator-active-background);
          color: var(--p-primary-contrast-color);
        }
      }
    }
  }
  .p-carousel-content {
    display: flex;
    flex-direction: column;
    overflow: auto;
  }
  .p-carousel-prev,
  .p-carousel-next {
    align-self: center;
    flex-grow: 0;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    position: relative;
    cursor: pointer;
  }
  .p-carousel-prev.p-state-disabled,
  .p-carousel-next.p-state-disabled {
    pointer-events: none;
  }
  .p-carousel-container {
    display: flex;
    flex-direction: row;
  }
  .p-carousel-items-content {
    overflow: hidden;
    width: 100%;
  }
  .p-carousel-items-container {
    display: flex;
    flex-direction: row;
  }
  .p-carousel-indicators {
    display: flex;
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    margin: 0;
    list-style: none;
  }
  .p-carousel-indicator > button {
    display: flex;
    align-items: center;
    justify-content: center;
    &.p-link {
      text-align: left;
      margin: 0;
      padding: 0;
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
    }
  }
  .p-carousel-vertical {
    .p-carousel-container {
      flex-direction: column;
    }
    .p-carousel-items-container {
      flex-direction: column;
      height: 100%;
    }
  }
  .p-items-hidden .p-carousel-item {
    visibility: hidden;
    &.p-carousel-item-active {
      visibility: visible;
    }
  }
}

/* packages/components/src/forms/cascadeselect.css */
@layer primefaces.components {
  .p-cascadeselect {
    display: inline-flex;
    cursor: pointer;
    position: relative;
    -webkit-user-select: none;
    user-select: none;
    background: var(--p-cascadeselect-background);
    color: var(--p-cascadeselect-color);
    border: 1px solid var(--p-cascadeselect-border-color);
    border-radius: var(--p-cascadeselect-border-radius);
    box-shadow: var(--p-cascadeselect-shadow);
    outline-color: transparent;
    transition:
      background var(--p-cascadeselect-transition-duration),
      color var(--p-cascadeselect-transition-duration),
      border-color var(--p-cascadeselect-transition-duration),
      outline-color var(--p-cascadeselect-transition-duration),
      box-shadow var(--p-cascadeselect-transition-duration);
    &:not(.p-state-disabled):hover {
      border-color: var(--p-cascadeselect-hover-border-color);
    }
    &:not(.p-state-disabled).p-state-focus {
      border-color: var(--p-cascadeselect-focus-border-color);
      outline: var(--p-cascadeselect-focus-ring-width) var(--p-cascadeselect-focus-ring-style) var(--p-cascadeselect-focus-ring-color);
      outline-offset: var(--p-cascadeselect-focus-ring-offset);
      box-shadow: var(--p-cascadeselect-focus-ring-shadow);
    }
    &.p-state-error,
    &.p-state-error:is(:hover, .p-state-focus) {
      border-color: var(--p-cascadeselect-invalid-border-color);
    }
    &.p-state-disabled {
      background: var(--p-cascadeselect-disabled-background);
      opacity: 1;
    }
    .p-cascadeselect-label.p-inputfield,
    .p-cascadeselect-label.p-inputfield:not(.p-state-disabled):hover,
    .p-cascadeselect-label.p-inputfield:not(.p-state-disabled):focus {
      background: transparent;
      border: 0 none;
      border-radius: 0;
      outline: 0 none;
      box-shadow: none;
    }
    .p-cascadeselect-label.p-inputfield {
      padding-block: var(--p-cascadeselect-padding-y);
      padding-inline: var(--p-cascadeselect-padding-x);
      font-size: var(--p-cascadeselect-font-size);
      font-weight: var(--p-cascadeselect-font-weight);
      color: var(--p-cascadeselect-color);
    }
    .p-cascadeselect-label.p-inputfield.p-cascadeselect-label-placeholder {
      color: var(--p-cascadeselect-placeholder-color);
    }
    &.p-state-error .p-cascadeselect-label.p-inputfield.p-cascadeselect-label-placeholder {
      color: var(--p-cascadeselect-invalid-placeholder-color);
    }
    &.p-state-disabled .p-cascadeselect-label.p-inputfield {
      color: var(--p-cascadeselect-disabled-color);
    }
    .p-cascadeselect-dropdown-icon {
      --_icon: var(--p-cascadeselect-dropdown-icon);
    }
    .p-cascadeselect-trigger {
      background: transparent;
      color: var(--p-cascadeselect-dropdown-color);
      width: var(--p-cascadeselect-dropdown-width);
      border-start-end-radius: var(--p-cascadeselect-border-radius);
      border-end-end-radius: var(--p-cascadeselect-border-radius);
    }
    &.p-cascadeselect-sm {
      --p-cascadeselect-font-size: var(--p-cascadeselect-sm-font-size);
      --p-cascadeselect-padding-x: var(--p-cascadeselect-sm-padding-x);
      --p-cascadeselect-padding-y: var(--p-cascadeselect-sm-padding-y);
    }
    &.p-cascadeselect-lg {
      --p-cascadeselect-font-size: var(--p-cascadeselect-lg-font-size);
      --p-cascadeselect-padding-x: var(--p-cascadeselect-lg-padding-x);
      --p-cascadeselect-padding-y: var(--p-cascadeselect-lg-padding-y);
    }
    &.p-cascadeselect-sm .p-cascadeselect-trigger .p-cascadeselect-trigger-icon,
    &.p-cascadeselect-lg .p-cascadeselect-trigger .p-cascadeselect-trigger-icon {
      font-size: var(--p-cascadeselect-font-size);
    }
  }
  .p-cascadeselect-trigger {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .p-cascadeselect-label {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    flex: 1 1 auto;
    width: 1%;
    text-overflow: ellipsis;
    cursor: pointer;
  }
  .p-cascadeselect-label:empty::before {
    content: "​";
  }
  .p-cascadeselect-panel {
    min-width: 100%;
    position: absolute;
    background: var(--p-cascadeselect-overlay-background);
    color: var(--p-cascadeselect-overlay-color);
    border: 1px solid var(--p-cascadeselect-overlay-border-color);
    border-radius: var(--p-cascadeselect-overlay-border-radius);
    box-shadow: var(--p-cascadeselect-overlay-shadow);
    .p-cascadeselect-items {
      padding: var(--p-cascadeselect-list-padding);
    }
  }
  .p-cascadeselect-items {
    margin: 0;
    padding: 0;
    list-style-type: none;
  }
  .p-cascadeselect-item {
    cursor: pointer;
    white-space: nowrap;
  }
  .p-cascadeselect-item-content {
    display: flex;
    align-items: center;
    overflow: hidden;
    position: relative;
    .p-cascadeselect-group-icon {
      margin-inline-start: auto;
    }
  }
  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item {
    margin: 0;
    border: 0 none;
    color: var(--p-cascadeselect-option-color);
    background: transparent;
    font-size: var(--p-cascadeselect-option-font-size);
    font-weight: var(--p-cascadeselect-option-font-weight);
    border-radius: var(--p-cascadeselect-option-border-radius);
    transition:
      background var(--p-list-option-transition-duration),
      color var(--p-list-option-transition-duration),
      border-color var(--p-list-option-transition-duration),
      box-shadow var(--p-list-option-transition-duration),
      outline-color var(--p-list-option-transition-duration);
    & + .p-cascadeselect-item {
      margin-top: var(--p-cascadeselect-list-gap);
    }
    .p-cascadeselect-item-content {
      padding: var(--p-cascadeselect-option-padding);
      border-radius: var(--p-cascadeselect-option-border-radius);
      outline-color: transparent;
      &:focus {
        outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
        outline-offset: calc(-1 * var(--p-focus-ring-width));
        box-shadow: var(--p-focus-ring-shadow);
      }
    }
    &.p-state-highlight {
      color: var(--p-cascadeselect-option-focus-color);
      background: var(--p-cascadeselect-option-focus-background);
    }
    &:not(.p-state-highlight):not(.p-state-disabled):hover {
      color: var(--p-cascadeselect-option-focus-color);
      background: var(--p-cascadeselect-option-focus-background);
    }
    &.p-state-active {
      color: var(--p-cascadeselect-option-selected-color);
      background: var(--p-cascadeselect-option-selected-background);
      &.p-state-highlight,
      &:not(.p-state-disabled):hover {
        color: var(--p-cascadeselect-option-selected-focus-color);
        background: var(--p-cascadeselect-option-selected-focus-background);
      }
    }
    .p-cascadeselect-group-icon {
      --_icon: var(--p-cascadeselect-group-icon);
      font-size: var(--p-cascadeselect-option-icon-size);
      color: var(--p-cascadeselect-option-icon-color);
    }
    &.p-state-highlight > .p-cascadeselect-item-content .p-cascadeselect-group-icon,
    &:not(.p-state-disabled):hover > .p-cascadeselect-item-content .p-cascadeselect-group-icon {
      color: var(--p-cascadeselect-option-icon-focus-color);
    }
  }
  .p-cascadeselect-sublist {
    position: absolute;
    min-width: 100%;
    z-index: 1;
    display: none;
  }
  .p-cascadeselect-item-active > .p-cascadeselect-sublist {
    display: block;
    left: 100%;
    top: 0;
  }
  .p-input-filled .p-cascadeselect {
    background: var(--p-cascadeselect-filled-background);
    &:not(.p-state-disabled):hover {
      background: var(--p-cascadeselect-filled-hover-background);
    }
    &:not(.p-state-disabled).p-state-focus {
      background: var(--p-cascadeselect-filled-focus-background);
    }
  }
  .p-fluid .p-cascadeselect {
    display: flex;
    .p-cascadeselect-label {
      width: 1%;
    }
  }
}

/* packages/components/src/chip/chip.css */
@layer primefaces.components {
  .p-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--p-chip-gap);
    background-color: var(--p-chip-background);
    color: var(--p-chip-color);
    border-radius: var(--p-chip-border-radius);
    padding-block: var(--p-chip-padding-y);
    padding-inline: var(--p-chip-padding-x);
    &:has(> .p-chip-remove-icon) {
      padding-inline-end: var(--p-chip-padding-y);
    }
    &.p-chip-image {
      padding-block: calc(var(--p-chip-padding-y) / 2);
    }
    .p-chip-text {
      margin: 0;
      line-height: var(--p-typography-line-height);
      font-size: var(--p-chip-label-font-size);
      font-weight: var(--p-chip-label-font-weight);
    }
    .p-chip-icon {
      margin: 0;
      line-height: 1;
      color: var(--p-chip-icon-color);
      font-size: var(--p-chip-icon-size);
      width: var(--p-chip-icon-size);
      height: var(--p-chip-icon-size);
      flex-shrink: 0;
    }
    img {
      border-radius: 50%;
      flex-shrink: 0;
      width: var(--p-chip-image-width);
      height: var(--p-chip-image-height);
      margin-block: 0;
      margin-inline: calc(-1 * var(--p-chip-padding-y)) 0;
    }
    .p-chip-remove-icon {
      --_icon: var(--p-chip-remove-icon);
      cursor: pointer;
      flex-shrink: 0;
      margin: 0;
      line-height: 1;
      color: var(--p-chip-remove-icon-color);
      font-size: var(--p-chip-remove-icon-size);
      width: var(--p-chip-remove-icon-size);
      height: var(--p-chip-remove-icon-size);
      border-radius: 50%;
      outline-color: transparent;
      transition: outline-color var(--p-chip-transition-duration), box-shadow var(--p-chip-transition-duration);
      &:focus-visible {
        outline: var(--p-chip-remove-icon-focus-ring-width) var(--p-chip-remove-icon-focus-ring-style) var(--p-chip-remove-icon-focus-ring-color);
        outline-offset: var(--p-chip-remove-icon-focus-ring-offset);
        box-shadow: var(--p-chip-remove-icon-focus-ring-shadow);
      }
    }
    &:has(> .p-chip-remove-icon:focus-visible) {
      background-color: var(--p-chip-focus-background);
    }
  }
}

/* packages/components/src/chips/chips.css */
@layer primefaces.components {
  .p-chips {
    --p-inputtext-background: var(--p-inputchips-background);
    --p-inputtext-disabled-background: var(--p-inputchips-disabled-background);
    --p-inputtext-filled-background: var(--p-inputchips-filled-background);
    --p-inputtext-filled-focus-background: var(--p-inputchips-filled-focus-background);
    --p-inputtext-border-color: var(--p-inputchips-border-color);
    --p-inputtext-hover-border-color: var(--p-inputchips-hover-border-color);
    --p-inputtext-focus-border-color: var(--p-inputchips-focus-border-color);
    --p-inputtext-invalid-border-color: var(--p-inputchips-invalid-border-color);
    --p-inputtext-color: var(--p-inputchips-color);
    --p-inputtext-disabled-color: var(--p-inputchips-disabled-color);
    --p-inputtext-placeholder-color: var(--p-inputchips-placeholder-color);
    --p-inputtext-shadow: var(--p-inputchips-shadow);
    --p-inputtext-padding-x: var(--p-inputchips-padding-x);
    --p-inputtext-padding-y: var(--p-inputchips-padding-y);
    --p-inputtext-border-radius: var(--p-inputchips-border-radius);
    --p-inputtext-focus-ring-width: var(--p-inputchips-focus-ring-width);
    --p-inputtext-focus-ring-style: var(--p-inputchips-focus-ring-style);
    --p-inputtext-focus-ring-color: var(--p-inputchips-focus-ring-color);
    --p-inputtext-focus-ring-offset: var(--p-inputchips-focus-ring-offset);
    --p-inputtext-focus-ring-shadow: var(--p-inputchips-focus-ring-shadow);
    --p-inputtext-transition-duration: var(--p-inputchips-transition-duration);
    box-shadow: none;
    cursor: pointer;
    display: inline-flex;
    position: relative;
    .p-chips-container {
      padding: calc(var(--p-inputchips-padding-y) / 2) var(--p-inputchips-padding-x);
      gap: calc(var(--p-inputchips-padding-y) / 2);
      .p-chips-token {
        padding: calc(var(--p-inputchips-padding-y) / 2) 0;
        margin: 0;
        background: var(--p-chip-background);
        color: var(--p-inputchips-chip-color);
        border-radius: var(--p-inputchips-chip-border-radius);
        transition: background var(--p-inputchips-transition-duration), color var(--p-inputchips-transition-duration);
        .p-chips-token-label {
          padding-block: 0;
          padding-inline: var(--p-chip-padding-x) calc(var(--p-chip-padding-x) + var(--p-chip-gap) + var(--p-chip-remove-icon-size));
          font-size: var(--p-chip-label-font-size);
          font-weight: var(--p-chip-label-font-weight);
        }
        .p-chips-chip-remove-icon {
          --_icon: var(--p-inputchips-chip-remove-icon);
        }
        .p-chips-token-icon {
          inset-inline-end: var(--p-chip-padding-x);
          margin-top: calc(-1 * var(--p-chip-remove-icon-size) / 2);
          font-size: var(--p-chip-remove-icon-size);
          color: var(--p-chip-remove-icon-color);
        }
      }
      .p-chips-input-token {
        margin: 0;
        padding: calc(var(--p-inputchips-padding-y) / 2) 0;
        input {
          font-family: inherit;
          font-size: var(--p-form-field-font-size);
          font-weight: var(--p-form-field-font-weight);
          line-height: var(--p-typography-line-height);
          color: var(--p-inputchips-color);
          appearance: none;
        }
        input::placeholder {
          color: var(--p-inputchips-placeholder-color);
        }
      }
      &.p-state-error .p-chips-input-token input::placeholder {
        color: var(--p-form-field-invalid-placeholder-color);
      }
      &.p-state-disabled .p-chips-input-token input {
        color: var(--p-inputchips-disabled-color);
      }
    }
  }
  .p-chips-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    clear: left;
    cursor: text;
    list-style-type: none;
    margin: 0;
    min-height: 1px;
    overflow: hidden;
  }
  .p-chips-token {
    cursor: default;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    overflow: hidden;
    position: relative;
    .p-chips-token-label {
      display: block;
    }
    .p-chips-token-icon {
      cursor: pointer;
      position: absolute;
      top: 50%;
    }
  }
  .p-chips-input-token {
    display: inline-flex;
    align-items: center;
    flex: 1 1 4rem;
    min-width: 4rem;
    input {
      min-width: 0;
      background-color: transparent;
      border: 0 none;
      outline: 0 none;
      padding: 0;
      margin: 0;
      box-shadow: none;
      border-radius: 0;
      width: 100%;
    }
  }
  .p-fluid .p-chips {
    display: flex;
    flex: 1 1 auto;
    .p-chips-container {
      width: 100%;
    }
  }
}

/* packages/components/src/chronoline/chronoline.css */
@layer primefaces.components {
  .p-chronoline {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    .p-chronoline-event {
      min-height: var(--p-chronoline-event-min-height);
      &:last-child {
        min-height: 0;
      }
    }
    .p-chronoline-event-marker {
      align-items: center;
      justify-content: center;
      position: relative;
      border-width: var(--p-chronoline-event-marker-border-width);
      border-style: solid;
      border-color: var(--p-chronoline-event-marker-border-color);
      border-radius: var(--p-chronoline-event-marker-border-radius);
      width: var(--p-chronoline-event-marker-size);
      height: var(--p-chronoline-event-marker-size);
      background: var(--p-chronoline-event-marker-background);
      &::before {
        content: " ";
        border-radius: var(--p-chronoline-event-marker-content-border-radius);
        width: var(--p-chronoline-event-marker-content-size);
        height: var(--p-chronoline-event-marker-content-size);
        background: var(--p-chronoline-event-marker-content-background);
      }
      &::after {
        content: " ";
        position: absolute;
        width: 100%;
        height: 100%;
        border-radius: var(--p-chronoline-event-marker-border-radius);
        box-shadow: var(--p-chronoline-event-marker-content-inset-shadow);
      }
    }
    .p-chronoline-event-connector {
      background: var(--p-chronoline-event-connector-color);
    }
    &.p-chronoline-vertical {
      .p-chronoline-event-opposite,
      .p-chronoline-event-content {
        padding: var(--p-chronoline-vertical-event-content-padding);
      }
      .p-chronoline-event-connector {
        width: var(--p-chronoline-event-connector-size);
      }
    }
    &.p-chronoline-horizontal {
      .p-chronoline-event-opposite,
      .p-chronoline-event-content {
        padding: var(--p-chronoline-horizontal-event-content-padding);
      }
      .p-chronoline-event-connector {
        height: var(--p-chronoline-event-connector-size);
      }
    }
  }
  .p-chronoline-left {
    .p-chronoline-event-opposite {
      text-align: end;
    }
    .p-chronoline-event-content {
      text-align: start;
    }
  }
  .p-chronoline-right {
    .p-chronoline-event {
      flex-direction: row-reverse;
    }
    .p-chronoline-event-opposite {
      text-align: start;
    }
    .p-chronoline-event-content {
      text-align: end;
    }
  }
  .p-chronoline-vertical.p-chronoline-alternate .p-chronoline-event {
    &:nth-child(even) {
      flex-direction: row-reverse;
    }
    &:nth-child(odd) {
      .p-chronoline-event-opposite {
        text-align: end;
      }
      .p-chronoline-event-content {
        text-align: start;
      }
    }
    &:nth-child(even) {
      .p-chronoline-event-opposite {
        text-align: start;
      }
      .p-chronoline-event-content {
        text-align: end;
      }
    }
  }
  .p-chronoline-event {
    display: flex;
    position: relative;
  }
  .p-chronoline-event-opposite {
    flex: 1;
  }
  .p-chronoline-event-content {
    flex: 1;
  }
  .p-chronoline-event-separator {
    flex: 0;
    display: flex;
    align-items: center;
    flex-direction: column;
  }
  .p-chronoline-event-marker {
    display: flex;
    align-self: baseline;
  }
  .p-chronoline-event-connector {
    flex-grow: 1;
  }
  .p-chronoline-horizontal {
    flex-direction: row;
    .p-chronoline-event {
      flex-direction: column;
      flex: 1;
      &:last-child {
        flex: 0;
      }
    }
    .p-chronoline-event-separator {
      flex-direction: row;
    }
    .p-chronoline-event-connector {
      width: 100%;
    }
    &.p-chronoline-alternate .p-chronoline-event:nth-child(even) {
      flex-direction: column-reverse;
    }
  }
  .p-chronoline-bottom .p-chronoline-event {
    flex-direction: column-reverse;
  }
}

/* packages/components/src/columntoggler/columntoggler.css */
@layer primefaces.components {
  .p-columntoggler {
    padding: 0;
    position: absolute;
    overflow: auto;
    display: none;
    background: var(--p-columntoggler-background);
    color: var(--p-columntoggler-color);
    border: 1px solid var(--p-columntoggler-border-color);
    border-radius: var(--p-columntoggler-border-radius);
    box-shadow: var(--p-columntoggler-shadow);
    .p-columntoggler-close {
      display: none;
    }
    .p-columntoggler-close-icon {
      --_icon: var(--p-columntoggler-close-icon);
    }
    .p-columntoggler-items {
      display: flex;
      flex-direction: column;
      border: 0 none;
      margin: 0;
      list-style: none;
      padding: var(--p-columntoggler-list-padding);
      gap: var(--p-columntoggler-list-gap);
    }
    .p-columntoggler-item,
    .p-columntoggler-all {
      cursor: pointer;
      margin: 0;
      text-align: start;
      white-space: nowrap;
      display: flex;
      align-items: center;
      position: relative;
    }
    .p-columntoggler-item .p-chkbox,
    .p-columntoggler-all .p-chkbox {
      position: static;
      flex: 0 0 auto;
      margin: 0;
    }
    .p-columntoggler-item label,
    .p-columntoggler-all label {
      display: block;
      flex: 1 1 auto;
      padding: 0;
      cursor: pointer;
    }
    .p-columntoggler-items {
      .p-columntoggler-item {
        gap: var(--p-columntoggler-option-gap);
        padding: var(--p-columntoggler-option-padding);
        border: 0 none;
        background: transparent;
        color: var(--p-columntoggler-option-color);
        font-size: var(--p-columntoggler-option-font-size);
        font-weight: normal;
        border-radius: var(--p-columntoggler-option-border-radius);
        transition: background var(--p-columntoggler-transition-duration), color var(--p-columntoggler-transition-duration);
        &:hover,
        &:has(.p-chkbox-box.p-state-focus) {
          background: var(--p-columntoggler-option-focus-background);
          color: var(--p-columntoggler-option-focus-color);
        }
      }
      .p-columntoggler-all {
        gap: var(--p-columntoggler-option-gap);
        padding: var(--p-columntoggler-header-padding);
        background: transparent;
        color: var(--p-columntoggler-header-color);
        font-weight: var(--p-columntoggler-header-font-weight);
        border: 0 none;
        border-bottom: 1px solid var(--p-columntoggler-header-border-color);
        border-radius: 0;
      }
    }
  }
  @media only all {
    .p-columntoggler .p-columntoggler-item.p-column-p-1,
    .p-columntoggler .p-columntoggler-item.p-column-p-2,
    .p-columntoggler .p-columntoggler-item.p-column-p-3,
    .p-columntoggler .p-columntoggler-item.p-column-p-4,
    .p-columntoggler .p-columntoggler-item.p-column-p-5,
    .p-columntoggler .p-columntoggler-item.p-column-p-6 {
      display: none;
    }
    th.p-hidden,
    td.p-hidden {
      display: none;
    }
  }
  @media screen and (min-width: 20em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-1 {
      display: flex;
    }
  }
  @media screen and (min-width: 30em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-2 {
      display: flex;
    }
  }
  @media screen and (min-width: 40em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-3 {
      display: flex;
    }
  }
  @media screen and (min-width: 50em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-4 {
      display: flex;
    }
  }
  @media screen and (min-width: 60em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-5 {
      display: flex;
    }
  }
  @media screen and (min-width: 70em) {
    .p-columntoggler .p-columntoggler-item.p-column-p-6 {
      display: flex;
    }
  }
}

/* packages/components/src/confirmpopup/confirmpopup.css */
@layer primefaces.components {
  .p-confirm-popup {
    position: absolute;
    display: none;
    margin-top: var(--p-confirmpopup-gutter);
    background: var(--p-confirmpopup-background);
    color: var(--p-confirmpopup-color);
    border: 1px solid var(--p-confirmpopup-border-color);
    border-radius: var(--p-confirmpopup-border-radius);
    box-shadow: var(--p-confirmpopup-shadow);
    &.p-confirm-popup-flipped {
      margin-top: 0;
      margin-bottom: var(--p-confirmpopup-gutter);
    }
    .p-confirm-popup-content {
      display: flex;
      align-items: center;
      background: transparent;
      color: inherit;
      border: 0 none;
      gap: var(--p-confirmpopup-content-gap);
      padding: var(--p-confirmpopup-content-padding);
    }
    .p-confirm-popup-icon {
      flex-shrink: 0;
      font-size: var(--p-confirmpopup-icon-size);
      color: var(--p-confirmpopup-icon-color);
    }
    .p-confirm-popup-message {
      margin: 0;
      color: var(--p-confirmpopup-message-color);
      font-size: var(--p-confirmpopup-message-font-size);
      font-weight: var(--p-confirmpopup-message-font-weight);
    }
    .p-confirm-popup-footer {
      background: transparent;
      color: inherit;
      border: 0 none;
      text-align: end;
      padding: var(--p-confirmpopup-footer-padding);
      button {
        margin: 0;
        margin-inline-end: var(--p-confirmpopup-footer-gap);
        width: auto;
        &:last-child {
          margin: 0;
        }
      }
    }
    &::after,
    &::before {
      content: " ";
      position: absolute;
      bottom: 100%;
      left: calc(var(--overlayArrowLeft, 0px) + var(--p-confirmpopup-arrow-offset));
      width: 0;
      height: 0;
      pointer-events: none;
    }
    &::after {
      border-width: calc(var(--p-confirmpopup-gutter) - 2px);
      margin-left: calc(-1 * (var(--p-confirmpopup-gutter) - 2px));
      border-style: solid;
      border-color: transparent;
      border-bottom-color: var(--p-confirmpopup-background);
    }
    &::before {
      border-width: var(--p-confirmpopup-gutter);
      margin-left: calc(-1 * var(--p-confirmpopup-gutter));
      border-style: solid;
      border-color: transparent;
      border-bottom-color: var(--p-confirmpopup-border-color);
    }
    &.p-confirm-popup-flipped {
      &::after,
      &::before {
        bottom: auto;
        top: 100%;
      }
      &::after {
        border-bottom-color: transparent;
        border-top-color: var(--p-confirmpopup-background);
      }
      &::before {
        border-bottom-color: transparent;
        border-top-color: var(--p-confirmpopup-border-color);
      }
    }
  }
}

/* packages/components/src/menu/contextmenu.css */
@layer primefaces.components {
  .p-touch-selection-disabled {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
  }
  .p-menu.p-contextmenu {
    --_bg: var(--p-contextmenu-background);
    --_border-color: var(--p-contextmenu-border-color);
    --_border-radius: var(--p-contextmenu-border-radius);
    --_color: var(--p-contextmenu-color);
    --_shadow: var(--p-contextmenu-shadow);
    --_list-padding: var(--p-contextmenu-list-padding);
    --_list-gap: var(--p-contextmenu-list-gap);
    --_transition-duration: var(--p-contextmenu-transition-duration);
    --_item-border-radius: var(--p-contextmenu-item-border-radius);
    --_item-padding: var(--p-contextmenu-item-padding);
    --_item-gap: var(--p-contextmenu-item-gap);
    --_item-color: var(--p-contextmenu-item-color);
    --_item-focus-background: var(--p-contextmenu-item-focus-background);
    --_item-focus-color: var(--p-contextmenu-item-focus-color);
    --_item-active-background: var(--p-contextmenu-item-active-background);
    --_item-active-color: var(--p-contextmenu-item-active-color);
    --_item-icon-color: var(--p-contextmenu-item-icon-color);
    --_item-icon-focus-color: var(--p-contextmenu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-contextmenu-item-icon-active-color);
    --_item-icon-size: var(--p-contextmenu-item-icon-size);
    --_item-label-font-size: var(--p-contextmenu-item-label-font-size);
    --_item-label-font-weight: var(--p-contextmenu-item-label-font-weight);
    --_submenu-icon-color: var(--p-contextmenu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-contextmenu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-contextmenu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-contextmenu-submenu-icon-active-color);
    --_separator-border-color: var(--p-contextmenu-separator-border-color);
    --_submenu-label-background: var(--p-contextmenu-submenu-label-background);
    --_submenu-label-color: var(--p-contextmenu-submenu-label-color);
    --_submenu-label-font-size: var(--p-contextmenu-submenu-label-font-size);
    --_submenu-label-font-weight: var(--p-contextmenu-submenu-label-font-weight);
    --_submenu-label-padding: var(--p-contextmenu-submenu-label-padding);
    --_submenu-background: var(--p-contextmenu-background);
    --_submenu-border-color: var(--p-contextmenu-border-color);
    --_submenu-border-radius: var(--p-contextmenu-border-radius);
    --_submenu-padding: var(--p-contextmenu-list-padding);
    --_submenu-shadow: var(--p-contextmenu-shadow);
  }
}

/* packages/components/src/dashboard/dashboard.css */
@layer primefaces.components {
  .p-dashboard-column {
    float: left;
    padding-bottom: 100px;
  }
  .p-dashboard-column .p-panel-titlebar,
  .p-dashboard-panel .p-panel-titlebar {
    cursor: move;
  }
  .p-dashboard {
    &::after {
      content: "";
      display: table;
      clear: both;
    }
    .p-dashboard-column {
      padding-inline-end: var(--p-dashboard-gap);
      > .p-panel,
      > .p-sortable-placeholder {
        margin-bottom: var(--p-dashboard-gap);
      }
    }
    &.p-state-disabled .p-panel-titlebar {
      cursor: default;
    }
    .p-sortable-placeholder {
      background: var(--p-dashboard-placeholder-background);
      border: 1px dashed var(--p-dashboard-placeholder-border-color);
      border-radius: var(--p-dashboard-placeholder-border-radius);
    }
    .p-dashboard-active {
      outline: 1px dashed var(--p-dashboard-drop-active-border-color);
      outline-offset: calc(-1 * var(--p-dashboard-drop-outline-offset));
      border-radius: var(--p-dashboard-placeholder-border-radius);
    }
    .p-dashboard-hover {
      outline: 1px solid var(--p-dashboard-drop-hover-border-color);
      outline-offset: calc(-1 * var(--p-dashboard-drop-outline-offset));
      background: var(--p-dashboard-drop-hover-background);
      border-radius: var(--p-dashboard-placeholder-border-radius);
    }
  }
}

/* packages/components/src/datagrid/datagrid.css */
@layer primefaces.components {
  .p-datagrid {
    .p-datagrid-header {
      text-align: center;
      background: var(--p-dataview-header-background);
      color: var(--p-dataview-header-color);
      padding: var(--p-dataview-header-padding);
      font-weight: var(--p-dataview-header-font-weight);
      border: 1px solid var(--p-dataview-header-border-color);
      border-width: var(--p-dataview-header-border-width);
      border-radius: var(--p-dataview-header-border-radius);
    }
    .p-datagrid-footer {
      text-align: center;
      background: var(--p-dataview-footer-background);
      color: var(--p-dataview-footer-color);
      padding: var(--p-dataview-footer-padding);
      font-weight: var(--p-dataview-footer-font-weight);
      border: 1px solid var(--p-dataview-footer-border-color);
      border-width: var(--p-dataview-footer-border-width);
      border-radius: var(--p-dataview-footer-border-radius);
    }
    .p-datagrid-content {
      border: 1px solid var(--p-dataview-content-border-color);
      border-width: var(--p-dataview-content-border-width);
      border-radius: var(--p-dataview-content-border-radius);
      background: var(--p-dataview-content-background);
      color: var(--p-dataview-content-color);
      padding: var(--p-dataview-content-padding);
      &.p-datagrid-content-empty {
        padding: var(--p-dataview-empty-message-padding);
        color: var(--p-dataview-empty-message-color);
      }
    }
    .p-paginator {
      text-align: center;
      padding: var(--p-paginator-padding);
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-dataview-paginator-top-border-color);
        border-width: var(--p-dataview-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-dataview-paginator-bottom-border-color);
        border-width: var(--p-dataview-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
  }
  .p-datagrid-data {
    width: 100%;
  }
  .p-datagrid-column {
    padding: var(--p-dataview-grid-column-padding);
  }
}

/* packages/components/src/datalist/datalist.css */
@layer primefaces.components {
  .p-datalist {
    .p-datalist-header {
      text-align: center;
      background: var(--p-dataview-header-background);
      color: var(--p-dataview-header-color);
      padding: var(--p-dataview-header-padding);
      font-weight: var(--p-dataview-header-font-weight);
      border: 1px solid var(--p-dataview-header-border-color);
      border-width: var(--p-dataview-header-border-width);
      border-radius: var(--p-dataview-header-border-radius);
    }
    .p-datalist-footer {
      text-align: center;
      background: var(--p-dataview-footer-background);
      color: var(--p-dataview-footer-color);
      padding: var(--p-dataview-footer-padding);
      font-weight: var(--p-dataview-footer-font-weight);
      border: 1px solid var(--p-dataview-footer-border-color);
      border-width: var(--p-dataview-footer-border-width);
      border-radius: var(--p-dataview-footer-border-radius);
    }
    .p-datalist-content {
      border: 1px solid var(--p-dataview-content-border-color);
      border-width: var(--p-dataview-content-border-width);
      border-radius: var(--p-dataview-content-border-radius);
      background: var(--p-dataview-content-background);
      color: var(--p-dataview-content-color);
      padding: var(--p-dataview-content-padding);
    }
    .p-datalist-nobullets {
      list-style-type: none;
    }
    .p-datalist-empty-message {
      padding: var(--p-dataview-empty-message-padding);
      color: var(--p-dataview-empty-message-color);
    }
    .p-paginator {
      padding: var(--p-paginator-padding);
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-dataview-paginator-top-border-color);
        border-width: var(--p-dataview-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-dataview-paginator-bottom-border-color);
        border-width: var(--p-dataview-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
  }
}

/* packages/components/src/datascroller/datascroller.css */
@layer primefaces.components {
  .p-datascroller {
    .p-datascroller-header {
      text-align: center;
      background: var(--p-dataview-header-background);
      color: var(--p-dataview-header-color);
      padding: var(--p-dataview-header-padding);
      font-weight: var(--p-dataview-header-font-weight);
      border: 1px solid var(--p-dataview-header-border-color);
      border-width: var(--p-dataview-header-border-width);
      border-radius: var(--p-dataview-header-border-radius);
    }
    .p-datascroller-content {
      border: 1px solid var(--p-dataview-content-border-color);
      border-width: var(--p-dataview-content-border-width);
      border-radius: var(--p-dataview-content-border-radius);
      background: var(--p-dataview-content-background);
      color: var(--p-dataview-content-color);
      padding: var(--p-dataview-content-padding);
    }
    .p-datascroller-list {
      list-style-type: none;
      margin: 0;
      padding: 0;
    }
    .p-datascroller-item {
      border: 1px solid var(--p-dataview-item-border-color);
      border-width: 0 0 1px 0;
      &:last-child {
        border-bottom-width: 0;
      }
    }
    .p-datascroller-content > .p-datascroller-list > .p-datascroller-item {
      --_enter-offset: var(--p-dataview-content-enter-offset);
      animation: p-enter var(--p-dataview-content-enter-duration) var(--p-transition-easing-enter);
    }
    .p-datascroller-virtualscroll-wrapper {
      position: relative;
      .p-datascroller-list {
        top: 0;
        left: 0;
        position: absolute;
      }
    }
    .p-datascroller-loader:not(:empty) {
      display: flex;
      justify-content: center;
      align-items: center;
      padding: var(--p-dataview-loader-padding);
    }
    .p-datascroller-loading-icon {
      --_icon: var(--p-dataview-loading-icon);
    }
    .p-datascroller-loading .p-datascroller-loading-default {
      display: block;
      width: var(--p-dataview-loading-icon-size);
      height: var(--p-dataview-loading-icon-size);
      margin: 0 auto;
      padding: 0;
      font-size: var(--p-dataview-loading-icon-size);
      color: var(--p-dataview-loading-icon-color);
      animation: p-spin var(--p-dataview-loading-icon-animation-duration) linear infinite;
    }
  }
  .p-datascroller-inline .p-datascroller-content {
    overflow: auto;
  }
}

/* packages/components/src/datatable/datatable.css */
@layer primefaces.components {
  .p-datatable {
    .p-datatable-header {
      background: var(--p-datatable-header-background);
      color: var(--p-datatable-header-color);
      border: 1px solid var(--p-datatable-header-border-color);
      border-width: var(--p-datatable-header-border-width);
      padding: var(--p-datatable-header-padding);
      font-weight: var(--p-datatable-header-font-weight);
      text-align: start;
      border-start-start-radius: var(--p-content-border-radius);
      border-start-end-radius: var(--p-content-border-radius);
    }
    .p-datatable-footer {
      background: var(--p-datatable-footer-background);
      color: var(--p-datatable-footer-color);
      border: 1px solid var(--p-datatable-footer-border-color);
      border-width: var(--p-datatable-footer-border-width);
      padding: var(--p-datatable-footer-padding);
      font-weight: var(--p-datatable-footer-font-weight);
      text-align: start;
      border-end-start-radius: var(--p-content-border-radius);
      border-end-end-radius: var(--p-content-border-radius);
    }
    .p-paginator {
      padding: var(--p-paginator-padding);
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-datatable-paginator-top-border-color);
        border-width: var(--p-datatable-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-datatable-paginator-bottom-border-color);
        border-width: var(--p-datatable-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
    table {
      width: 100%;
      table-layout: fixed;
      border-collapse: collapse;
    }
    thead th,
    tbody td,
    tbody th,
    tfoot td,
    tfoot th {
      overflow: hidden;
      border-style: solid;
    }
    thead th {
      background: var(--p-datatable-header-cell-background);
      color: var(--p-datatable-header-cell-color);
      padding: var(--p-datatable-header-cell-padding);
      border: 1px solid var(--p-datatable-header-cell-border-color);
      border-width: 0 0 1px 0;
      font-weight: normal;
      text-align: start;
      box-sizing: content-box;
      outline-color: transparent;
      transition:
        background var(--p-datatable-transition-duration),
        color var(--p-datatable-transition-duration),
        border-color var(--p-datatable-transition-duration),
        outline-color var(--p-datatable-transition-duration),
        box-shadow var(--p-datatable-transition-duration);
      .p-column-title {
        font-weight: var(--p-datatable-column-title-font-weight);
        font-size: var(--p-datatable-column-title-font-size);
        vertical-align: middle;
      }
      .p-sortable-column-icon {
        display: inline-block;
        vertical-align: middle;
        margin: 0;
        margin-inline-start: var(--p-datatable-header-cell-gap);
        color: var(--p-datatable-sort-icon-color);
        font-size: var(--p-datatable-sort-icon-size);
        transition: color var(--p-datatable-transition-duration);
        &.p-datatable-sort-icon {
          --_icon: var(--p-datatable-sort-icon);
        }
        &.p-datatable-sort-asc-icon {
          --_icon: var(--p-datatable-sort-asc-icon);
        }
        &.p-datatable-sort-desc-icon {
          --_icon: var(--p-datatable-sort-desc-icon);
        }
      }
      .p-sortable-column-badge {
        border-radius: var(--p-badge-border-radius);
        padding: var(--p-badge-padding);
        height: var(--p-badge-height);
        min-width: var(--p-badge-min-width);
        line-height: var(--p-badge-height);
        color: var(--p-badge-primary-color);
        background: var(--p-badge-primary-background);
        margin-inline-start: var(--p-datatable-header-cell-gap);
        font-size: var(--p-badge-font-size);
        font-weight: var(--p-badge-font-weight);
        text-align: center;
        vertical-align: middle;
      }
      &.p-sortable-column.p-state-focus,
      &.p-sortable-column:focus-visible {
        outline: var(--p-datatable-header-cell-focus-ring-width) var(--p-datatable-header-cell-focus-ring-style) var(--p-datatable-header-cell-focus-ring-color);
        outline-offset: var(--p-datatable-header-cell-focus-ring-offset);
        box-shadow: var(--p-datatable-header-cell-focus-ring-shadow);
      }
      &.p-state-hover {
        background: var(--p-datatable-header-cell-hover-background);
        color: var(--p-datatable-header-cell-hover-color);
        .p-sortable-column-icon {
          color: var(--p-datatable-sort-icon-hover-color);
        }
      }
    }
    thead th.p-state-active {
      &,
      &.p-state-hover {
        background: var(--p-datatable-header-cell-selected-background);
        color: var(--p-datatable-header-cell-selected-color);
      }
      .p-sortable-column-icon {
        color: var(--p-datatable-header-cell-selected-color);
      }
    }
    .p-sortable-column {
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
    }
    .p-sortable-column-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      &.p-hidden {
        display: none;
      }
    }
    .p-column-filter {
      display: block;
      box-sizing: border-box;
      width: 100%;
      margin: var(--p-datatable-column-filter-gap) auto auto auto;
    }
    .p-column-filter .p-inputfield,
    .p-column-customfilter .p-inputfield,
    .p-column-customfilter .p-selectonemenu {
      width: 100%;
      max-width: 100%;
    }
    .p-column-customfilter {
      margin: var(--p-datatable-column-filter-gap) auto auto auto;
    }
    &.p-filter-toggleable thead :is(.p-column-filter, .p-column-customfilter) {
      display: none;
    }
    tbody.p-datatable-data {
      outline: 0;
      &:focus-visible {
        outline: var(--p-datatable-row-focus-ring-width) var(--p-datatable-row-focus-ring-style) var(--p-datatable-row-focus-ring-color);
        outline-offset: calc(-1 * var(--p-datatable-row-focus-ring-width));
      }
    }
    tr.p-state-highlight {
      cursor: pointer;
    }
    .p-datatable-data tr.p-state-hover {
      cursor: pointer;
    }
    .p-datatable-data > tr {
      background: var(--p-datatable-row-background);
      color: var(--p-datatable-row-color);
      outline-color: transparent;
      transition:
        background var(--p-datatable-transition-duration),
        color var(--p-datatable-transition-duration),
        border-color var(--p-datatable-transition-duration),
        outline-color var(--p-datatable-transition-duration),
        box-shadow var(--p-datatable-transition-duration);
      > td,
      > th {
        padding: var(--p-datatable-body-cell-padding);
        border: 1px solid var(--p-datatable-body-cell-border-color);
        border-width: 0 0 1px 0;
        font-size: var(--p-datatable-body-cell-font-size);
        font-weight: var(--p-datatable-body-cell-font-weight);
        text-align: start;
      }
      &.p-datatable-empty-message > td {
        color: var(--p-datatable-empty-message-color);
      }
      > td.p-datatable-subtable-header {
        background: var(--p-datatable-subtable-header-background);
        border: 1px solid var(--p-datatable-subtable-header-border-color);
        border-width: 0 0 1px 0;
        color: var(--p-datatable-subtable-header-color);
        font-weight: var(--p-datatable-subtable-header-font-weight);
      }
      > td.p-datatable-subtable-footer {
        background: var(--p-datatable-footer-cell-background);
        color: var(--p-datatable-footer-cell-color);
        font-weight: var(--p-datatable-column-footer-font-weight);
      }
      &.p-state-hover {
        background: var(--p-datatable-row-hover-background);
        color: var(--p-datatable-row-hover-color);
      }
      &.p-state-highlight {
        background: var(--p-datatable-row-selected-background);
        color: var(--p-datatable-row-selected-color);
        .p-row-toggler,
        .p-row-editor > a {
          color: var(--p-datatable-row-selected-color);
        }
        .p-row-toggler.p-icon:hover,
        .p-row-editor > a:hover {
          background: var(--p-datatable-row-toggle-button-selected-hover-background);
          color: var(--p-datatable-row-toggle-button-selected-hover-color);
        }
      }
      &.p-state-highlight > td,
      &.p-state-highlight > th,
      &:has(+ tr.p-state-highlight) > td,
      &:has(+ tr.p-state-highlight) > th {
        border-bottom-color: var(--p-datatable-body-cell-selected-border-color);
      }
      &.p-datatable-selectable {
        cursor: pointer;
        > .p-grouped-column {
          background: var(--p-datatable-row-background);
          color: var(--p-datatable-row-color);
          cursor: default;
        }
      }
      &.p-rowgroup-header {
        background: var(--p-datatable-row-group-header-background);
        color: var(--p-datatable-row-group-header-color);
        font-weight: var(--p-datatable-row-group-header-font-weight);
      }
      &.p-datatable-summaryrow {
        background: var(--p-datatable-summary-row-background);
        color: var(--p-datatable-summary-row-color);
        font-weight: var(--p-datatable-summary-row-font-weight);
      }
      &.p-datatable-rowordering {
        background: var(--p-datatable-row-selected-background);
      }
    }
    .p-row-toggler {
      cursor: pointer;
    }
    .p-cell-editor-input {
      display: none;
    }
    .p-row-editing {
      .p-cell-editor .p-cell-editor-output {
        display: none;
      }
      .p-cell-editor .p-cell-editor-input {
        display: block;
      }
      .p-row-editor .p-row-editor-pencil {
        display: none;
      }
      .p-row-editor .p-row-editor-check,
      .p-row-editor .p-row-editor-close {
        display: inline-flex;
      }
    }
    .p-row-editor {
      span {
        cursor: pointer;
      }
      .p-row-editor-pencil {
        display: inline-flex;
      }
      .p-row-editor-check,
      .p-row-editor-close {
        display: none;
      }
    }
    .p-datatable-data tr.p-row-editing td.p-editable-column,
    .p-datatable-data tr.p-row-editing th.p-editable-column,
    .p-datatable-data td.p-cell-editing,
    .p-datatable-data th.p-cell-editing {
      padding-top: 0;
      padding-bottom: 0;
      margin-top: 0;
      margin-bottom: 0;
    }
    .p-row-editor {
      display: inline-flex;
      align-items: center;
      vertical-align: middle;
    }
    .p-datatable-data > tr .p-row-toggler.p-icon,
    .p-datatable-data > tr .p-rowgroup-toggler .p-rowgroup-toggler-icon {
      display: inline-flex;
    }
    .p-datatable-data > tr .p-row-editor > a,
    .p-datatable-data > tr .p-row-toggler.p-icon,
    .p-datatable-data > tr .p-rowgroup-toggler .p-rowgroup-toggler-icon {
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      width: var(--p-datatable-row-toggle-button-size);
      height: var(--p-datatable-row-toggle-button-size);
      background: transparent;
      color: var(--p-datatable-row-toggle-button-color);
      border: 0 none;
      border-radius: var(--p-datatable-row-toggle-button-border-radius);
      text-align: center;
      text-decoration: none;
      padding: 0;
      -webkit-user-select: none;
      user-select: none;
      outline-color: transparent;
      transition:
        background var(--p-datatable-transition-duration),
        color var(--p-datatable-transition-duration),
        outline-color var(--p-datatable-transition-duration),
        box-shadow var(--p-datatable-transition-duration);
    }
    .p-datatable-data > tr {
      .p-row-toggler:not(.p-icon) {
        color: var(--p-primary-color);
      }
      .p-row-editor > a:hover,
      .p-row-toggler.p-icon:hover,
      .p-rowgroup-toggler .p-rowgroup-toggler-icon:hover {
        background: var(--p-datatable-row-toggle-button-hover-background);
        color: var(--p-datatable-row-toggle-button-hover-color);
        border-color: transparent;
      }
      .p-row-editor > a:focus-visible,
      .p-row-editor > a.p-row-editor-outline,
      .p-row-toggler:focus-visible,
      .p-rowgroup-toggler:focus-visible .p-rowgroup-toggler-icon,
      .p-rowgroup-toggler .p-rowgroup-toggler-icon:focus-visible {
        outline: var(--p-datatable-row-toggle-button-focus-ring-width) var(--p-datatable-row-toggle-button-focus-ring-style) var(--p-datatable-row-toggle-button-focus-ring-color);
        outline-offset: var(--p-datatable-row-toggle-button-focus-ring-offset);
        box-shadow: var(--p-datatable-row-toggle-button-focus-ring-shadow);
      }
      .p-rowgroup-toggler {
        margin-inline-end: var(--p-datatable-header-cell-gap);
        &:focus-visible {
          outline: 0 none;
        }
      }
      .p-row-editor {
        > a.p-row-editor-check {
          margin-inline-end: var(--p-datatable-header-cell-gap);
        }
        .p-datatable-row-edit-icon {
          --_icon: var(--p-datatable-row-edit-icon);
        }
        .p-datatable-row-save-icon {
          --_icon: var(--p-datatable-row-save-icon);
        }
        .p-datatable-row-cancel-icon {
          --_icon: var(--p-datatable-row-cancel-icon);
        }
      }
      .p-datatable-row-toggle-icon {
        --_icon: var(--p-datatable-row-toggle-expanded-icon);
      }
      .p-row-toggler.p-datatable-row-toggle-icon[aria-expanded=false],
      .p-rowgroup-toggler[aria-expanded=false] > .p-datatable-row-toggle-icon {
        --_icon: var(--p-datatable-row-toggle-collapsed-icon);
        &:dir(rtl) {
          transform: rotate(180deg);
        }
      }
    }
    .p-rowgroup-header {
      > td > a.p-rowgroup-toggler {
        display: inline-flex;
        vertical-align: middle;
        position: relative;
        padding: 0;
      }
      .p-rowgroup-toggler-icon {
        position: static;
        margin: 0;
      }
    }
    .p-datatable-data > tr.p-expanded-row-content {
      background: var(--p-datatable-row-background);
      color: var(--p-datatable-row-color);
    }
    .p-column-resizer {
      position: absolute;
      top: 0;
      inset-inline-end: 0;
      margin: 0;
      width: var(--p-datatable-column-resizer-width);
      height: 100%;
      padding: 0;
      cursor: col-resize;
      border: 1px solid transparent;
      box-sizing: border-box;
    }
    .p-column-resizer-helper {
      width: var(--p-datatable-resize-indicator-width);
      position: absolute;
      z-index: 10;
      display: none;
      background: var(--p-datatable-resize-indicator-color);
    }
    tfoot td,
    tfoot th {
      background: var(--p-datatable-footer-cell-background);
      border: 1px solid var(--p-datatable-footer-cell-border-color);
      border-width: 0 0 1px 0;
      color: var(--p-datatable-footer-cell-color);
      padding: var(--p-datatable-footer-cell-padding);
      font-weight: var(--p-datatable-column-footer-font-weight);
      font-size: var(--p-datatable-column-footer-font-size);
      text-align: start;
      box-sizing: content-box;
    }
    > .p-datatable-column-reorder-top-icon,
    > .p-datatable-column-reorder-bottom-icon {
      color: var(--p-datatable-drop-point-color);
    }
    > .p-datatable-column-reorder-top-icon {
      --_icon: var(--p-datatable-column-reorder-top-icon);
      visibility: hidden;
    }
    > .p-datatable-column-reorder-bottom-icon {
      --_icon: var(--p-datatable-column-reorder-bottom-icon);
      padding-top: var(--p-datatable-drop-point-offset);
    }
    .p-datatable-scrollable-body {
      min-height: 0%;
      outline: 0 none;
    }
    .p-datatable-scrollable-header {
      background: var(--p-datatable-header-cell-background);
    }
    .p-datatable-scrollable-footer {
      background: var(--p-datatable-footer-cell-background);
    }
    .p-datatable-virtualscroll-wrapper {
      position: relative;
    }
    .p-datatable-virtualscroll-table {
      top: 0;
      left: 0;
      position: absolute;
    }
    .p-selection-column .p-chkbox-all {
      display: inline-flex;
      vertical-align: middle;
      margin: 0;
      width: var(--p-checkbox-width);
      height: var(--p-checkbox-height);
    }
    table.p-datatable-fs {
      width: auto;
    }
    .p-datatable-frozenlayout-left,
    .p-datatable-frozenlayout-right {
      padding: 0;
      border: 0 none;
      vertical-align: top;
    }
    .p-datatable-frozen-container {
      margin-inline-end: -1px;
      .p-row-toggler {
        margin-top: -2px;
        margin-bottom: -2px;
      }
      .p-row-editor {
        margin-top: -2px;
        margin-bottom: -2px;
      }
    }
    &.p-datatable-striped .p-datatable-data > tr.p-datatable-odd {
      background: var(--p-datatable-row-striped-background);
      &.p-state-hover {
        background: var(--p-datatable-row-hover-background);
        color: var(--p-datatable-row-hover-color);
      }
      &.p-state-highlight {
        background: var(--p-datatable-row-selected-background);
        color: var(--p-datatable-row-selected-color);
      }
    }
    &.p-datatable-sm {
      .p-datatable-header {
        padding: var(--p-datatable-header-sm-padding);
      }
      thead > tr > th {
        padding: var(--p-datatable-header-cell-sm-padding);
      }
      .p-datatable-data > tr > td,
      .p-datatable-data > tr > th {
        padding: var(--p-datatable-body-cell-sm-padding);
      }
      tfoot > tr > td {
        padding: var(--p-datatable-footer-cell-sm-padding);
      }
      .p-datatable-footer {
        padding: var(--p-datatable-footer-sm-padding);
      }
    }
    &.p-datatable-lg {
      .p-datatable-header {
        padding: var(--p-datatable-header-lg-padding);
      }
      thead > tr > th {
        padding: var(--p-datatable-header-cell-lg-padding);
      }
      .p-datatable-data > tr > td,
      .p-datatable-data > tr > th {
        padding: var(--p-datatable-body-cell-lg-padding);
      }
      tfoot > tr > td {
        padding: var(--p-datatable-footer-cell-lg-padding);
      }
      .p-datatable-footer {
        padding: var(--p-datatable-footer-lg-padding);
      }
    }
    &.p-datatable-sm .p-datatable-scrollable-theadclone > tr > th,
    &.p-datatable-lg .p-datatable-scrollable-theadclone > tr > th {
      padding-top: 0;
      padding-bottom: 0;
    }
    &.p-datatable-gridlines {
      .p-datatable-header {
        border-width: 1px 1px 0 1px;
      }
      .p-datatable-footer {
        border-width: 0 1px 1px 1px;
      }
      .p-paginator {
        &.p-paginator-top {
          border-width: 1px 1px 0 1px;
        }
        &.p-paginator-bottom {
          border-width: 0 1px 1px 1px;
        }
      }
      thead > tr > th,
      .p-datatable-data > tr > td,
      .p-datatable-data > tr > th,
      tfoot > tr > td {
        border-width: 1px;
      }
      .p-datatable-scrollable-theadclone > tr > th {
        padding-top: 0;
        padding-bottom: 0;
        border-bottom: 0 none;
        border-top: 0 none;
      }
    }
    &.p-datatable-sticky {
      &.p-sticky {
        box-shadow: var(--p-overlay-select-shadow);
      }
      > table {
        > thead {
          background: var(--p-datatable-header-cell-background);
        }
        > tfoot {
          background: var(--p-datatable-footer-cell-background);
        }
      }
    }
  }
  .p-datatable-tablewrapper {
    overflow: auto;
  }
  .p-datatable-summary {
    display: none;
  }
  .p-datatable-scrollable-body {
    overflow: auto;
  }
  .p-datatable-scrollable-header,
  .p-datatable-scrollable-footer {
    overflow: hidden;
    border: 0 none;
  }
  .p-datatable-scrollable {
    .p-datatable-scrollable-header,
    .p-datatable-scrollable-footer {
      position: relative;
    }
    .p-datatable-scrollable-header td {
      font-weight: normal;
    }
  }
  .p-datatable-scrollable-theadclone {
    height: 0;
    tr {
      height: 0;
    }
    th {
      &.p-state-default {
        height: 0 !important;
        border-bottom-width: 0;
        border-top-width: 0;
        padding-top: 0;
        padding-bottom: 0;
        outline: 0 none;
      }
      span.p-column-title {
        display: block;
        height: 0;
      }
    }
  }
  .p-datatable-resizable {
    padding-bottom: 1px;
    overflow: auto;
    thead th,
    tbody td,
    tbody th,
    tfoot td {
      white-space: nowrap;
    }
    th.p-resizable-column {
      background-clip: padding-box;
      position: relative;
    }
  }
  .p-datatable-rtl {
    direction: rtl;
  }
  .p-datatable-frozen-container .p-datatable-scrollable-body {
    overflow: hidden;
  }
  .p-datatable-frozenlayout-right .p-datatable-empty-message td {
    text-indent: -9999px;
    > * {
      visibility: hidden;
    }
  }
  .p-datatable-data td[role=gridcell]:focus,
  .p-datatable-data th[role=rowheader]:focus,
  .p-datatable-data td[role=grid] [tabindex="0"]:focus {
    outline: var(--p-datatable-row-focus-ring-width) var(--p-datatable-row-focus-ring-style) var(--p-datatable-row-focus-ring-color);
    outline-offset: var(--p-datatable-row-focus-ring-offset);
    box-shadow: var(--p-datatable-row-focus-ring-shadow);
  }
  .p-datatable-reflow {
    .p-datatable-data td[role=gridcell] .p-column-title,
    .p-datatable-data th[role=rowheader] .p-column-title,
    .p-expanded-row-content td .p-column-title {
      display: none;
    }
    .p-reflow-label,
    .p-reflow-dropdown {
      margin-bottom: var(--p-datatable-reflow-gap);
      display: none;
    }
    .p-reflow-dropdown {
      font-family: inherit;
      font-size: var(--p-select-font-size);
      padding-block: var(--p-select-padding-y);
      padding-inline: var(--p-select-padding-x);
      color: var(--p-select-color);
      background: var(--p-select-background);
      border: 1px solid var(--p-select-border-color);
      border-radius: var(--p-select-border-radius);
      outline-color: transparent;
      &:hover {
        border-color: var(--p-select-hover-border-color);
      }
      &:focus-visible {
        border-color: var(--p-select-focus-border-color);
        outline: var(--p-select-focus-ring-width) var(--p-select-focus-ring-style) var(--p-select-focus-ring-color);
        outline-offset: var(--p-select-focus-ring-offset);
        box-shadow: var(--p-select-focus-ring-shadow);
      }
    }
  }
  @media (max-width: 640px) {
    .p-datatable-reflow thead th,
    .p-datatable-reflow tfoot td {
      display: none;
    }
    .p-datatable-reflow {
      thead th.p-filter-column {
        box-sizing: border-box;
        display: block;
        float: inline-start;
        clear: inline-start;
        width: 100% !important;
        border: 0 none;
        text-align: start;
        .p-column-title {
          display: block;
          font-weight: var(--p-datatable-reflow-title-font-weight);
          margin: 0 0 var(--p-datatable-reflow-gap) 0;
          padding: 0;
        }
        .p-sortable-column-icon,
        .p-sortable-column-badge,
        .p-column-resizer {
          display: none;
        }
        .p-column-filter,
        .p-column-customfilter {
          display: block;
          box-sizing: border-box;
          width: 100% !important;
          margin: 0;
        }
      }
      &.p-filter-toggleable thead th.p-filter-column :is(.p-column-filter, .p-column-customfilter) {
        display: none;
      }
      .p-datatable-data {
        td[role=gridcell]:not(.p-hidden),
        th[role=rowheader]:not(.p-hidden) {
          box-sizing: border-box;
          clear: inline-start;
          float: inline-start;
          border: 0 none;
          display: block;
          text-align: start !important;
          width: 100% !important;
        }
        &.p-widget-content {
          border: 0 none;
        }
        tr.p-widget-content {
          border-left: 0 none;
          border-right: 0 none;
        }
        td[role=gridcell] .p-column-title,
        th[role=rowheader] .p-column-title {
          display: inline-block;
          font-weight: var(--p-datatable-reflow-title-font-weight);
          margin: 0;
          margin-inline-end: var(--p-datatable-reflow-gap);
          min-width: 30%;
          max-width: 35%;
          padding: 0;
        }
        tr {
          border-bottom: 1px solid var(--p-datatable-body-cell-border-color);
          &:hover,
          &.p-state-highlight {
            border-left: 0 none;
            border-right: 0 none;
            border-bottom: 1px solid var(--p-datatable-body-cell-border-color);
          }
          &.p-expanded-row-content > td {
            display: block;
            width: 100%;
          }
        }
      }
      .p-reflow-label,
      .p-reflow-dropdown {
        display: inline-block;
      }
      .p-reflow-dropdown {
        margin-inline-start: var(--p-datatable-reflow-gap);
      }
      tr.p-datatable-empty-message > td {
        display: block;
        border: 0 none;
      }
    }
  }
}

/* packages/components/src/dataview/dataview.css */
@layer primefaces.components {
  .p-dataview {
    position: relative;
    border: 1px solid var(--p-dataview-border-color);
    border-width: var(--p-dataview-border-width);
    border-radius: var(--p-dataview-border-radius);
    padding: var(--p-dataview-padding);
    .p-paginator {
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-dataview-paginator-top-border-color);
        border-width: var(--p-dataview-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-dataview-paginator-bottom-border-color);
        border-width: var(--p-dataview-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
    .p-dataview-header {
      display: flow-root;
      text-align: center;
      background: var(--p-dataview-header-background);
      color: var(--p-dataview-header-color);
      padding: var(--p-dataview-header-padding);
      font-weight: var(--p-dataview-header-font-weight);
      border: 1px solid var(--p-dataview-header-border-color);
      border-width: var(--p-dataview-header-border-width);
      border-radius: var(--p-dataview-header-border-radius);
      .p-dataview-layout-options {
        float: inline-end;
      }
    }
    .p-dataview-footer {
      text-align: center;
      background: var(--p-dataview-footer-background);
      color: var(--p-dataview-footer-color);
      border: 1px solid var(--p-dataview-footer-border-color);
      border-width: var(--p-dataview-footer-border-width);
      padding: var(--p-dataview-footer-padding);
      font-weight: var(--p-dataview-footer-font-weight);
      border-radius: var(--p-dataview-footer-border-radius);
    }
    .p-dataview-content {
      border: 1px solid var(--p-dataview-content-border-color);
      border-width: var(--p-dataview-content-border-width);
      border-radius: var(--p-dataview-content-border-radius);
      background: var(--p-dataview-content-background);
      color: var(--p-dataview-content-color);
      padding: var(--p-dataview-content-padding);
      > * {
        --_enter-offset: var(--p-dataview-content-enter-offset);
        animation: p-enter var(--p-dataview-content-enter-duration) var(--p-transition-easing-enter);
      }
    }
    &.p-dataview-list .p-dataview-row {
      border: 1px solid var(--p-dataview-item-border-color);
      border-width: 0 0 1px 0;
      &:last-child {
        border-bottom-width: 0;
      }
    }
    &.p-dataview-grid .p-dataview-column {
      padding: var(--p-dataview-grid-column-padding);
    }
    .p-dataview-layout-options {
      display: inline-flex;
      gap: 0;
      background: var(--p-togglebutton-background);
      border: 1px solid var(--p-togglebutton-border-color);
      border-radius: var(--p-togglebutton-border-radius);
      padding: var(--p-togglebutton-padding);
      .p-button {
        margin: 0;
        width: auto;
        padding: var(--p-togglebutton-content-padding);
        background: transparent;
        color: var(--p-togglebutton-icon-color);
        border: 0 none;
        border-radius: var(--p-togglebutton-content-border-radius);
        box-shadow: none;
        transition:
          background var(--p-togglebutton-transition-duration),
          color var(--p-togglebutton-transition-duration),
          box-shadow var(--p-togglebutton-transition-duration),
          outline-color var(--p-togglebutton-transition-duration);
        .p-button-text {
          display: none;
        }
        .p-dataview-list-layout-icon {
          --_icon: var(--p-dataview-list-layout-icon);
        }
        .p-dataview-grid-layout-icon {
          --_icon: var(--p-dataview-grid-layout-icon);
        }
        &::before {
          content: none;
        }
        &:first-child,
        &:last-child {
          border-radius: var(--p-togglebutton-content-border-radius);
        }
        &:not(.p-state-active):hover,
        &.p-state-hover:not(.p-state-active) {
          background: transparent;
          color: var(--p-togglebutton-icon-hover-color);
        }
        &.p-state-active,
        &.p-state-active:not(.p-state-disabled):hover {
          background: var(--p-togglebutton-content-checked-background);
          color: var(--p-togglebutton-icon-checked-color);
          box-shadow: var(--p-togglebutton-content-checked-shadow);
        }
        &.p-state-focus,
        &:focus-visible {
          outline: var(--p-togglebutton-focus-ring-width) var(--p-togglebutton-focus-ring-style) var(--p-togglebutton-focus-ring-color);
          outline-offset: var(--p-togglebutton-focus-ring-offset);
        }
      }
    }
  }
  .p-dataview-list .p-dataview-list-container {
    list-style-type: none;
    margin: 0;
    padding: 0;
  }
  .p-fluid .p-dataview-layout-options.p-buttonset {
    width: auto;
  }
}

/* packages/components/src/dialog/dialog.css */
@layer primefaces.components {
  body.p-dialog-open {
    position: relative;
  }
  .p-dialog {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: var(--p-overlay-modal-padding);
    overflow-x: hidden;
    overflow-y: auto;
    outline: 0;
    &:not([aria-modal=true]) {
      pointer-events: none;
    }
    &.p-dialog-absolute {
      position: absolute;
    }
    &.p-overlay-hidden {
      display: block;
    }
    .p-dialog-titlebar {
      position: relative;
    }
    .p-dialog-content {
      position: relative;
      overflow: auto;
    }
    .p-dialog-box .p-dialog-content.p-df-content {
      overflow: hidden;
      padding: 0;
    }
    .p-resizable-se {
      position: absolute;
      width: 9px;
      height: 9px;
      right: -5px;
      bottom: -5px;
    }
    .p-dialog-titlebar-close,
    .p-dialog-titlebar-minimize,
    .p-dialog-titlebar-maximize {
      cursor: pointer;
    }
    &.p-overflow-hidden,
    &.p-dialog-absolute,
    &.p-dialog-fitviewport {
      overflow-y: hidden;
    }
    &.p-dialog-absolute .p-dialog-box {
      position: absolute;
    }
    .p-dialog-box {
      position: relative;
      display: inline-flex;
      pointer-events: auto;
      flex-direction: column;
      max-width: 100%;
      background: var(--p-dialog-background);
      color: var(--p-dialog-color);
      border: 1px solid var(--p-dialog-border-color);
      border-radius: var(--p-dialog-border-radius);
      box-shadow: var(--p-dialog-shadow);
      .p-dialog-titlebar {
        display: flex;
        align-items: center;
        flex-shrink: 0;
        background: transparent;
        color: var(--p-dialog-color);
        font-weight: var(--p-dialog-title-font-weight);
        border: 0 none;
        border-radius: 0;
        padding: var(--p-dialog-header-padding);
        .p-dialog-title {
          flex: 1 1 auto;
          font-size: var(--p-dialog-title-font-size);
          font-weight: var(--p-dialog-title-font-weight);
          text-wrap: balance;
          overflow: hidden;
          text-overflow: ellipsis;
        }
        .p-dialog-actions {
          order: 1;
          display: inline-flex;
          align-items: center;
          margin-inline-start: var(--p-dialog-header-gap);
        }
        > .p-dialog-titlebar-minimize {
          order: 2;
        }
        > .p-dialog-titlebar-maximize {
          order: 3;
        }
        > .p-dialog-titlebar-close {
          order: 4;
        }
        .p-dialog-titlebar-icon {
          display: inline-flex;
          align-items: center;
          justify-content: center;
          flex-shrink: 0;
          width: var(--p-button-icon-only-width);
          height: var(--p-button-icon-only-width);
          margin: 0;
          margin-inline-start: var(--p-dialog-header-gap);
          padding: 0;
          border: 0 none;
          border-radius: 50%;
          background: transparent;
          color: var(--p-button-text-secondary-color);
          text-decoration: none;
          -webkit-user-select: none;
          user-select: none;
          outline-color: transparent;
          transition:
            background var(--p-button-transition-duration),
            color var(--p-button-transition-duration),
            outline-color var(--p-button-transition-duration),
            box-shadow var(--p-button-transition-duration);
        }
        .p-dialog-titlebar-icon:hover {
          background: var(--p-button-text-secondary-hover-background);
          color: var(--p-button-text-secondary-color);
        }
        .p-dialog-titlebar-icon:active {
          background: var(--p-button-text-secondary-active-background);
        }
        .p-dialog-titlebar-icon:focus-visible {
          outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
          outline-offset: var(--p-button-focus-ring-offset);
          box-shadow: var(--p-button-secondary-focus-ring-shadow);
        }
      }
    }
    .p-dialog-close-icon {
      --_icon: var(--p-dialog-close-icon);
    }
    .p-dialog-minimize-icon {
      --_icon: var(--p-dialog-minimize-icon);
    }
    .p-dialog-maximize-icon {
      --_icon: var(--p-dialog-maximize-icon);
    }
    &.p-dialog-minimized .p-dialog-minimize-icon {
      --_icon: var(--p-dialog-unminimize-icon);
    }
    &.p-dialog-maximized > .p-dialog-box > .p-dialog-titlebar .p-dialog-maximize-icon {
      --_icon: var(--p-dialog-unmaximize-icon);
    }
    .p-dialog-box {
      .p-dialog-content {
        flex-grow: 1;
        background: transparent;
        color: var(--p-dialog-color);
        border: 0 none;
        padding: var(--p-dialog-content-padding);
      }
      .p-dialog-footer {
        flex-shrink: 0;
        background: transparent;
        color: var(--p-dialog-color);
        border: 0 none;
        padding: var(--p-dialog-footer-padding);
        margin: 0;
        text-align: end;
        button {
          margin: 0;
          margin-inline-start: var(--p-dialog-footer-gap);
          width: auto;
        }
      }
    }
    &.p-dialog-maximized {
      padding: 0;
      .p-dialog-box {
        width: 100% !important;
        height: 100% !important;
        top: 0 !important;
        left: 0 !important;
        border-radius: 0;
      }
    }
    &.p-dialog-minimized {
      padding: 0;
      overflow: visible;
      .p-dialog-box {
        width: auto !important;
        height: auto !important;
        top: auto !important;
        left: auto !important;
      }
    }
    &.p-confirm-dialog .p-dialog-box .p-dialog-content,
    &.p-message-dialog .p-dialog-box .p-dialog-content {
      display: flex;
      align-items: center;
      gap: var(--p-confirmdialog-content-gap);
    }
    &.p-confirm-dialog .p-dialog-box .p-dialog-content > span,
    &.p-message-dialog .p-dialog-box .p-dialog-content > span {
      display: inline-block;
      margin: 0;
      color: var(--p-confirmdialog-message-color);
      font-size: var(--p-confirmdialog-message-font-size);
      font-weight: var(--p-confirmdialog-message-font-weight);
    }
    &.p-confirm-dialog .p-dialog-box .p-dialog-content > span.p-confirm-dialog-severity,
    &.p-message-dialog .p-dialog-box .p-dialog-content > span.p-dialog-message {
      flex-shrink: 0;
      line-height: 1;
      color: var(--p-confirmdialog-icon-color);
      font-size: var(--p-confirmdialog-icon-size);
    }
    .p-dialog-warn-icon {
      --_icon: var(--p-dialog-warn-icon);
    }
    .p-dialog-info-icon {
      --_icon: var(--p-dialog-info-icon);
    }
    .p-dialog-error-icon {
      --_icon: var(--p-dialog-error-icon);
    }
    .p-dialog-fatal-icon {
      --_icon: var(--p-dialog-fatal-icon);
    }
  }
  .p-draggable .p-dialog-titlebar {
    cursor: move;
  }
  .p-dialog-docking-zone {
    position: fixed;
    bottom: 0;
    left: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--p-dialog-header-gap);
    padding: var(--p-dialog-header-gap);
  }
  .p-dialog-minimizing {
    border: 1px dashed var(--p-primary-color);
    border-radius: var(--p-dialog-border-radius);
  }
  .p-dialog-mask {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-user-select: none;
    user-select: none;
  }
  .p-dialog-rtl {
    direction: rtl;
  }
}

/* packages/components/src/divider/divider.css */
@layer primefaces.components {
  .p-divider-horizontal {
    display: flex;
    width: 100%;
    position: relative;
    align-items: center;
    &::before {
      position: absolute;
      display: block;
      top: 50%;
      left: 0;
      width: 100%;
      content: "";
    }
    &.p-divider-left {
      justify-content: flex-start;
    }
    &.p-divider-right {
      justify-content: flex-end;
    }
    &.p-divider-center {
      justify-content: center;
    }
  }
  .p-divider-content {
    z-index: 1;
  }
  .p-divider-vertical {
    min-height: 100%;
    display: flex;
    position: relative;
    justify-content: center;
    &::before {
      position: absolute;
      display: block;
      top: 0;
      left: 50%;
      height: 100%;
      content: "";
    }
    &.p-divider-top {
      align-items: flex-start;
    }
    &.p-divider-center {
      align-items: center;
    }
    &.p-divider-bottom {
      align-items: flex-end;
    }
  }
  .p-divider {
    &.p-divider-solid {
      &.p-divider-horizontal::before {
        border-top-style: solid;
      }
      &.p-divider-vertical::before {
        border-left-style: solid;
      }
    }
    &.p-divider-dashed {
      &.p-divider-horizontal::before {
        border-top-style: dashed;
      }
      &.p-divider-vertical::before {
        border-left-style: dashed;
      }
    }
    &.p-divider-dotted {
      &.p-divider-horizontal::before {
        border-top-style: dotted;
      }
      &.p-divider-vertical::before {
        border-left-style: dotted;
      }
    }
    .p-divider-content {
      background-color: var(--p-divider-content-background);
      color: var(--p-divider-content-color);
    }
    &.p-divider-horizontal {
      margin: var(--p-divider-horizontal-margin);
      padding: var(--p-divider-horizontal-padding);
      &::before {
        border-top-width: 1px;
        border-top-color: var(--p-divider-border-color);
      }
      .p-divider-content {
        padding: var(--p-divider-horizontal-content-padding);
      }
    }
    &.p-divider-vertical {
      margin: var(--p-divider-vertical-margin);
      padding: var(--p-divider-vertical-padding);
      &::before {
        border-left-width: 1px;
        border-left-color: var(--p-divider-border-color);
      }
      .p-divider-content {
        padding: var(--p-divider-vertical-content-padding);
      }
    }
  }
}

/* packages/components/src/fieldset/fieldset.css */
@layer primefaces.components {
  .p-fieldset-toggleable .p-fieldset-legend {
    outline: 0;
  }
  .p-fieldset {
    margin: 0;
    padding: var(--p-fieldset-padding);
    background: var(--p-fieldset-background);
    color: var(--p-fieldset-color);
    border: 1px solid var(--p-fieldset-border-color);
    border-radius: var(--p-fieldset-border-radius);
    .p-fieldset-legend {
      display: flex;
      align-items: center;
      gap: var(--p-fieldset-legend-gap);
      padding: var(--p-fieldset-legend-padding);
      font-size: var(--p-fieldset-legend-font-size);
      font-weight: var(--p-fieldset-legend-font-weight);
      background: var(--p-fieldset-legend-background);
      color: var(--p-fieldset-legend-color);
      border-style: solid;
      border-width: var(--p-fieldset-legend-border-width);
      border-color: var(--p-fieldset-legend-border-color);
      border-radius: var(--p-fieldset-legend-border-radius);
      -webkit-user-select: none;
      user-select: none;
      outline-color: transparent;
      transition:
        background var(--p-fieldset-transition-duration),
        color var(--p-fieldset-transition-duration),
        outline-color var(--p-fieldset-transition-duration),
        box-shadow var(--p-fieldset-transition-duration);
    }
    &.p-fieldset-toggleable .p-fieldset-legend {
      cursor: pointer;
    }
    .p-fieldset-legend {
      .p-fieldset-toggler {
        color: var(--p-fieldset-toggle-icon-color);
        transition: color var(--p-fieldset-transition-duration);
      }
      .p-fieldset-toggle-icon {
        --_icon: var(--p-fieldset-toggle-expanded-icon);
      }
      &[aria-expanded=false] .p-fieldset-toggle-icon {
        --_icon: var(--p-fieldset-toggle-collapsed-icon);
      }
    }
    .p-fieldset-legend.p-state-hover,
    &.p-fieldset-toggleable .p-fieldset-legend:hover {
      background: var(--p-fieldset-legend-hover-background);
      color: var(--p-fieldset-legend-hover-color);
    }
    .p-fieldset-legend.p-state-hover .p-fieldset-toggler,
    &.p-fieldset-toggleable .p-fieldset-legend:hover .p-fieldset-toggler {
      color: var(--p-fieldset-toggle-icon-hover-color);
    }
    .p-fieldset-legend:focus-visible {
      outline: var(--p-fieldset-legend-focus-ring-width) var(--p-fieldset-legend-focus-ring-style) var(--p-fieldset-legend-focus-ring-color);
      outline-offset: var(--p-fieldset-legend-focus-ring-offset);
      box-shadow: var(--p-fieldset-legend-focus-ring-shadow);
    }
    .p-fieldset-content {
      padding: var(--p-fieldset-content-padding);
    }
  }
}

/* packages/components/src/growl/growl.css */
@layer primefaces.components {
  .p-growl {
    position: fixed;
    top: var(--p-growl-offset);
    right: var(--p-growl-offset);
    width: var(--p-toast-width);
    max-width: calc(100dvw - 2 * var(--p-growl-offset));
    .p-growl-item-container {
      --_bg: var(--p-toast-info-background);
      --_border-color: var(--p-toast-info-border-color);
      --_color: var(--p-toast-info-color);
      --_detail-color: var(--p-toast-info-detail-color);
      --_shadow: var(--p-toast-info-shadow);
      --_close-hover-bg: var(--p-toast-info-close-button-hover-background);
      --_close-focus-ring-color: var(--p-toast-info-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-toast-info-close-button-focus-ring-shadow);
      --_outlined-color: var(--p-toast-info-outlined-color);
      --_outlined-border-color: var(--p-toast-info-outlined-border-color);
      --_simple-color: var(--p-toast-info-simple-color);
      margin: 0 0 var(--p-growl-gap) 0;
      background: var(--_bg);
      border-width: var(--p-toast-border-width);
      border-style: solid;
      border-color: var(--_border-color);
      color: var(--_color);
      border-radius: var(--p-toast-border-radius);
      box-shadow: var(--_shadow);
      backdrop-filter: blur(var(--p-toast-blur));
      &.p-growl-success {
        --_bg: var(--p-toast-success-background);
        --_border-color: var(--p-toast-success-border-color);
        --_color: var(--p-toast-success-color);
        --_detail-color: var(--p-toast-success-detail-color);
        --_shadow: var(--p-toast-success-shadow);
        --_close-hover-bg: var(--p-toast-success-close-button-hover-background);
        --_close-focus-ring-color: var(--p-toast-success-close-button-focus-ring-color);
        --_close-focus-ring-shadow: var(--p-toast-success-close-button-focus-ring-shadow);
        --_outlined-color: var(--p-toast-success-outlined-color);
        --_outlined-border-color: var(--p-toast-success-outlined-border-color);
        --_simple-color: var(--p-toast-success-simple-color);
      }
      &.p-growl-warn {
        --_bg: var(--p-toast-warn-background);
        --_border-color: var(--p-toast-warn-border-color);
        --_color: var(--p-toast-warn-color);
        --_detail-color: var(--p-toast-warn-detail-color);
        --_shadow: var(--p-toast-warn-shadow);
        --_close-hover-bg: var(--p-toast-warn-close-button-hover-background);
        --_close-focus-ring-color: var(--p-toast-warn-close-button-focus-ring-color);
        --_close-focus-ring-shadow: var(--p-toast-warn-close-button-focus-ring-shadow);
        --_outlined-color: var(--p-toast-warn-outlined-color);
        --_outlined-border-color: var(--p-toast-warn-outlined-border-color);
        --_simple-color: var(--p-toast-warn-simple-color);
      }
      &.p-growl-error {
        --_bg: var(--p-toast-error-background);
        --_border-color: var(--p-toast-error-border-color);
        --_color: var(--p-toast-error-color);
        --_detail-color: var(--p-toast-error-detail-color);
        --_shadow: var(--p-toast-error-shadow);
        --_close-hover-bg: var(--p-toast-error-close-button-hover-background);
        --_close-focus-ring-color: var(--p-toast-error-close-button-focus-ring-color);
        --_close-focus-ring-shadow: var(--p-toast-error-close-button-focus-ring-shadow);
        --_outlined-color: var(--p-toast-error-outlined-color);
        --_outlined-border-color: var(--p-toast-error-outlined-border-color);
        --_simple-color: var(--p-toast-error-simple-color);
      }
      &.p-growl-fatal {
        --_bg: var(--p-growl-fatal-background);
        --_border-color: var(--p-growl-fatal-border-color);
        --_color: var(--p-growl-fatal-color);
        --_detail-color: var(--p-growl-fatal-detail-color);
        --_shadow: var(--p-growl-fatal-shadow);
        --_close-hover-bg: var(--p-growl-fatal-close-button-hover-background);
        --_close-focus-ring-color: var(--p-growl-fatal-close-button-focus-ring-color);
        --_close-focus-ring-shadow: var(--p-growl-fatal-close-button-focus-ring-shadow);
        --_outlined-color: var(--p-growl-fatal-outlined-color);
        --_outlined-border-color: var(--p-growl-fatal-outlined-border-color);
        --_simple-color: var(--p-growl-fatal-simple-color);
      }
      .p-growl-item {
        display: flex;
        align-items: flex-start;
        gap: var(--p-toast-content-gap);
        padding: var(--p-toast-content-padding);
      }
      .p-growl-icon-close {
        display: inline-flex;
        position: absolute;
        top: calc(var(--p-toast-content-gap) / 2);
        inset-inline-end: calc(var(--p-toast-content-gap) / 2);
        align-items: center;
        justify-content: center;
        width: var(--p-toast-close-button-width);
        height: var(--p-toast-close-button-height);
        font-size: var(--p-toast-close-icon-size);
        border-radius: var(--p-toast-close-button-border-radius);
        color: var(--_color);
        outline-color: transparent;
        transition:
          background var(--p-toast-transition-duration),
          color var(--p-toast-transition-duration),
          outline-color var(--p-toast-transition-duration),
          box-shadow var(--p-toast-transition-duration);
        &:hover {
          background: var(--_close-hover-bg);
        }
        &:focus-visible {
          outline: var(--p-toast-close-button-focus-ring-width) var(--p-toast-close-button-focus-ring-style) var(--_close-focus-ring-color);
          outline-offset: var(--p-toast-close-button-focus-ring-offset);
          box-shadow: var(--_close-focus-ring-shadow);
        }
      }
      .p-growl-close-icon {
        --_icon: var(--p-toast-close-icon);
      }
      .p-growl-image {
        flex-shrink: 0;
        width: var(--p-toast-icon-size);
        height: var(--p-toast-icon-size);
        margin: 0;
        margin-block-start: calc((var(--p-typography-line-height) * var(--p-toast-summary-font-size) - var(--p-toast-icon-size)) / 2);
        font-size: var(--p-toast-icon-size);
        line-height: 1;
        color: var(--_color);
      }
      .p-growl-info-icon {
        --_icon: var(--p-toast-info-icon);
      }
      .p-growl-success-icon {
        --_icon: var(--p-toast-success-icon);
      }
      .p-growl-warn-icon {
        --_icon: var(--p-toast-warn-icon);
      }
      .p-growl-error-icon {
        --_icon: var(--p-toast-error-icon);
      }
      .p-growl-fatal-icon {
        --_icon: var(--p-toast-fatal-icon);
      }
      .p-growl-message {
        flex: 1 1 auto;
        min-width: 0;
        padding-inline-end: var(--p-toast-close-button-width);
        display: flex;
        flex-direction: column;
        gap: var(--p-toast-text-gap);
        overflow-wrap: break-word;
      }
      .p-growl-title {
        font-size: var(--p-toast-summary-font-size);
        font-weight: var(--p-toast-summary-font-weight);
        line-height: var(--p-typography-line-height);
      }
      .p-growl-message p {
        font-size: var(--p-toast-detail-font-size);
        font-weight: var(--p-toast-detail-font-weight);
        color: var(--_detail-color);
        text-wrap: pretty;
      }
    }
  }
  :is(.p-growl-outlined.p-growl, .p-growl-outlined .p-growl) .p-growl-item-container {
    --_bg: var(--p-toast-outlined-background);
    --_border-color: var(--_outlined-border-color);
    --_color: var(--_outlined-color);
    --_detail-color: var(--p-toast-outlined-detail-color);
    --_shadow: var(--p-toast-outlined-shadow);
    --_close-hover-bg: var(--p-toast-outlined-close-button-hover-background);
    border-width: var(--p-toast-outlined-border-width);
  }
  :is(.p-growl-simple.p-growl, .p-growl-simple .p-growl) .p-growl-item-container {
    --_bg: var(--p-toast-simple-background);
    --_border-color: transparent;
    --_color: var(--_simple-color);
    --_detail-color: var(--p-toast-simple-detail-color);
    --_shadow: var(--p-toast-simple-shadow);
    --_close-hover-bg: var(--p-toast-simple-close-button-hover-background);
  }
  .p-growl-item-container {
    position: relative;
  }
  .p-growl-item p {
    padding: 0;
    margin: 0;
  }
  .p-growl-icon-close {
    position: absolute;
    cursor: pointer;
  }
  .p-growl-title {
    display: block;
  }
}

/* packages/components/src/inplace/inplace.css */
@layer primefaces.components {
  .p-inplace {
    &.p-inplace-password .p-masked::before {
      content: "••••••";
    }
    .p-inplace-display,
    .p-inplace-display-disabled {
      display: inline-block;
      border: 0 none;
      padding: var(--p-inplace-padding);
      border-radius: var(--p-inplace-border-radius);
    }
    .p-inplace-display {
      cursor: pointer;
      outline-color: transparent;
      transition:
        background var(--p-inplace-transition-duration),
        color var(--p-inplace-transition-duration),
        outline-color var(--p-inplace-transition-duration),
        box-shadow var(--p-inplace-transition-duration);
      &.p-state-highlight {
        background: var(--p-inplace-display-hover-background);
        color: var(--p-inplace-display-hover-color);
      }
      &.p-state-focus {
        outline: var(--p-inplace-focus-ring-width) var(--p-inplace-focus-ring-style) var(--p-inplace-focus-ring-color);
        outline-offset: var(--p-inplace-focus-ring-offset);
        box-shadow: var(--p-inplace-focus-ring-shadow);
      }
    }
    .p-inplace-display-disabled {
      cursor: default;
      opacity: var(--p-disabled-opacity);
    }
    .p-inplace-save-icon {
      --_icon: var(--p-inplace-save-icon);
    }
    .p-inplace-cancel-icon {
      --_icon: var(--p-inplace-cancel-icon);
    }
    .p-inplace-editor {
      margin-inline-start: var(--p-inplace-editor-gap);
    }
    .p-inplace-cancel {
      margin-inline-start: var(--p-inplace-editor-button-gap);
    }
  }
}

/* packages/components/src/menu/megamenu.css */
@layer primefaces.components {
  .p-megamenu {
    > .p-menu-list > .p-menuitem-selected > .p-menuitem-link {
      text-decoration: underline;
      text-underline-offset: 0.25em;
      text-decoration-thickness: 0.125em;
    }
    td {
      vertical-align: top;
    }
    .p-widget-header span {
      display: block;
    }
  }
  .p-megamenu-vertical {
    width: fit-content;
    &:not([style*=width]) {
      min-width: 12.5rem;
    }
    .p-menu-parent {
      clear: both;
      width: 100%;
    }
  }
  .p-menu.p-megamenu {
    --_bg: var(--p-megamenu-background);
    --_border-color: var(--p-megamenu-border-color);
    --_border-radius: var(--p-megamenu-border-radius);
    --_color: var(--p-megamenu-color);
    --_list-padding: var(--p-megamenu-submenu-padding);
    --_list-gap: var(--p-megamenu-submenu-gap);
    --_transition-duration: var(--p-megamenu-transition-duration);
    --_item-border-radius: var(--p-megamenu-item-border-radius);
    --_item-padding: var(--p-megamenu-item-padding);
    --_item-gap: var(--p-megamenu-item-gap);
    --_item-color: var(--p-megamenu-item-color);
    --_item-focus-background: var(--p-megamenu-item-focus-background);
    --_item-focus-color: var(--p-megamenu-item-focus-color);
    --_item-active-background: var(--p-megamenu-item-active-background);
    --_item-active-color: var(--p-megamenu-item-active-color);
    --_item-icon-color: var(--p-megamenu-item-icon-color);
    --_item-icon-focus-color: var(--p-megamenu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-megamenu-item-icon-active-color);
    --_item-icon-size: var(--p-megamenu-item-icon-size);
    --_item-label-font-size: var(--p-megamenu-item-label-font-size);
    --_item-label-font-weight: var(--p-megamenu-item-label-font-weight);
    --_submenu-icon-color: var(--p-megamenu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-megamenu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-megamenu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-megamenu-submenu-icon-active-color);
    --_separator-border-color: var(--p-megamenu-separator-border-color);
    --_submenu-label-background: var(--p-megamenu-submenu-label-background);
    --_submenu-label-color: var(--p-megamenu-submenu-label-color);
    --_submenu-label-font-size: var(--p-megamenu-submenu-label-font-size);
    --_submenu-label-font-weight: var(--p-megamenu-submenu-label-font-weight);
    --_submenu-label-padding: var(--p-megamenu-submenu-label-padding);
    --_submenu-background: var(--p-megamenu-overlay-background);
    --_submenu-border-color: var(--p-megamenu-overlay-border-color);
    --_submenu-border-radius: var(--p-megamenu-overlay-border-radius);
    --_submenu-padding: var(--p-megamenu-overlay-padding);
    --_submenu-shadow: var(--p-megamenu-overlay-shadow);
    --_padding: var(--p-megamenu-horizontal-orientation-padding);
    --_gap: var(--p-megamenu-horizontal-orientation-gap);
    --_base-item-padding: var(--p-megamenu-base-item-padding);
    --_base-item-border-radius: var(--p-megamenu-base-item-border-radius);
    .p-widget-header {
      margin: 0;
      width: 100%;
      background: var(--_submenu-label-background);
      color: var(--_submenu-label-color);
      float: none;
      border: 0 none;
      padding: var(--_submenu-label-padding);
      font-weight: var(--_submenu-label-font-weight);
      font-size: var(--_submenu-label-font-size);
      border-radius: 0;
      transition: background var(--_transition-duration), color var(--_transition-duration);
    }
    .p-menu-child .p-menu-list {
      min-width: 12.5rem;
    }
    > .p-menu-list {
      padding: 0;
    }
    .p-menu-child {
      color: var(--p-megamenu-overlay-color);
    }
    .p-menu-list > table > tbody > tr > td {
      padding: var(--p-megamenu-overlay-gap);
    }
    td > hr.p-divider {
      margin: var(--_list-gap) 0;
      border: 0 none;
      border-block-start: 1px solid var(--_separator-border-color);
    }
    .p-menu-list .p-menuitem-link {
      border-radius: var(--_item-border-radius);
    }
    &.p-megamenu-vertical {
      background: var(--_bg);
      padding: var(--p-megamenu-vertical-orientation-padding);
      > .p-menu-list {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: var(--p-megamenu-vertical-orientation-gap);
      }
      > .p-menu-list .p-menuitem {
        width: 100%;
        > .p-menuitem-link {
          border-radius: var(--_item-border-radius);
        }
      }
      > .p-menu-list > :is(.p-menubar-options, .p-menubar-end) {
        margin-inline-start: 0;
      }
    }
  }
}

/* packages/components/src/menu/menu.css */
@layer primefaces.components {
  .p-menu.p-menu-toggleable {
    li.p-widget-header {
      position: relative;
      min-height: 0;
      cursor: pointer;
    }
    .p-menu-list .p-widget-header {
      .p-menu-toggle-icon {
        --_icon: var(--p-menu-toggle-collapsed-icon);
        color: var(--_submenu-icon-color);
        font-size: var(--_submenu-icon-size);
      }
      &[aria-expanded=true] .p-menu-toggle-icon {
        --_icon: var(--p-menu-toggle-expanded-icon);
      }
      &:not([aria-expanded=true]) .p-menu-toggle-icon:dir(rtl) {
        scale: -1 1;
      }
      .p-submenu-icon {
        color: var(--_item-icon-color);
        font-size: var(--_item-icon-size);
      }
      &.p-state-hover {
        .p-menu-toggle-icon {
          color: var(--_submenu-icon-focus-color);
        }
        .p-submenu-icon {
          color: var(--_item-icon-focus-color);
        }
      }
    }
  }
}

/* packages/components/src/messages/message.css */
@layer primefaces.components {
  .p-message {
    --_bg: var(--p-message-info-background);
    --_border-color: var(--p-message-info-border-color);
    --_color: var(--p-message-info-color);
    --_shadow: var(--p-message-info-shadow);
    --_outlined-color: var(--p-message-info-outlined-color);
    --_outlined-border-color: var(--p-message-info-outlined-border-color);
    --_simple-color: var(--p-message-info-simple-color);
    --_close-hover-bg: var(--p-message-info-close-button-hover-background);
    --_close-focus-ring-color: var(--p-message-info-close-button-focus-ring-color);
    --_close-focus-ring-shadow: var(--p-message-info-close-button-focus-ring-shadow);
    --_border-width: var(--p-message-border-width);
    --_padding: var(--p-message-content-padding);
    --_font-size: var(--p-message-text-font-size);
    --_icon-size: var(--p-message-icon-size);
    --_close-icon-size: var(--p-message-close-icon-size);
    display: inline-block;
    vertical-align: middle;
    border-radius: var(--p-message-border-radius);
    font-size: var(--_font-size);
    font-weight: var(--p-message-text-font-weight);
    outline-color: transparent;
    transition:
      background var(--p-message-transition-duration),
      color var(--p-message-transition-duration),
      border-color var(--p-message-transition-duration);
    &:not(.p-staticmessage) {
      --_enter-offset: var(--p-message-enter-offset);
      animation: p-enter var(--p-message-enter-duration) var(--p-transition-easing-enter);
    }
    &.p-message-info,
    &.p-message-success,
    &.p-message-warn,
    &.p-message-error,
    &.p-message-fatal,
    &.p-message-secondary,
    &.p-message-contrast {
      padding: var(--_padding);
      background: var(--_bg);
      border: var(--_border-width) solid var(--_border-color);
      color: var(--_color);
      box-shadow: var(--_shadow);
    }
    &.p-message-success {
      --_bg: var(--p-message-success-background);
      --_border-color: var(--p-message-success-border-color);
      --_color: var(--p-message-success-color);
      --_shadow: var(--p-message-success-shadow);
      --_outlined-color: var(--p-message-success-outlined-color);
      --_outlined-border-color: var(--p-message-success-outlined-border-color);
      --_simple-color: var(--p-message-success-simple-color);
      --_close-hover-bg: var(--p-message-success-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-success-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-success-close-button-focus-ring-shadow);
    }
    &.p-message-warn {
      --_bg: var(--p-message-warn-background);
      --_border-color: var(--p-message-warn-border-color);
      --_color: var(--p-message-warn-color);
      --_shadow: var(--p-message-warn-shadow);
      --_outlined-color: var(--p-message-warn-outlined-color);
      --_outlined-border-color: var(--p-message-warn-outlined-border-color);
      --_simple-color: var(--p-message-warn-simple-color);
      --_close-hover-bg: var(--p-message-warn-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-warn-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-warn-close-button-focus-ring-shadow);
    }
    &.p-message-error {
      --_bg: var(--p-message-error-background);
      --_border-color: var(--p-message-error-border-color);
      --_color: var(--p-message-error-color);
      --_shadow: var(--p-message-error-shadow);
      --_outlined-color: var(--p-message-error-outlined-color);
      --_outlined-border-color: var(--p-message-error-outlined-border-color);
      --_simple-color: var(--p-message-error-simple-color);
      --_close-hover-bg: var(--p-message-error-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-error-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-error-close-button-focus-ring-shadow);
    }
    &.p-message-fatal {
      --_bg: var(--p-message-fatal-background);
      --_border-color: var(--p-message-fatal-border-color);
      --_color: var(--p-message-fatal-color);
      --_shadow: var(--p-message-fatal-shadow);
      --_outlined-color: var(--p-message-fatal-outlined-color);
      --_outlined-border-color: var(--p-message-fatal-outlined-border-color);
      --_simple-color: var(--p-message-fatal-simple-color);
      --_close-hover-bg: var(--p-message-fatal-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-fatal-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-fatal-close-button-focus-ring-shadow);
    }
    &.p-message-secondary {
      --_bg: var(--p-message-secondary-background);
      --_border-color: var(--p-message-secondary-border-color);
      --_color: var(--p-message-secondary-color);
      --_shadow: var(--p-message-secondary-shadow);
      --_outlined-color: var(--p-message-secondary-outlined-color);
      --_outlined-border-color: var(--p-message-secondary-outlined-border-color);
      --_simple-color: var(--p-message-secondary-simple-color);
      --_close-hover-bg: var(--p-message-secondary-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-secondary-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-secondary-close-button-focus-ring-shadow);
    }
    &.p-message-contrast {
      --_bg: var(--p-message-contrast-background);
      --_border-color: var(--p-message-contrast-border-color);
      --_color: var(--p-message-contrast-color);
      --_shadow: var(--p-message-contrast-shadow);
      --_outlined-color: var(--p-message-contrast-outlined-color);
      --_outlined-border-color: var(--p-message-contrast-outlined-border-color);
      --_simple-color: var(--p-message-contrast-simple-color);
      --_close-hover-bg: var(--p-message-contrast-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-contrast-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-contrast-close-button-focus-ring-shadow);
    }
    &.p-message-sm {
      --_padding: var(--p-message-content-sm-padding);
      --_font-size: var(--p-message-text-sm-font-size);
      --_icon-size: var(--p-message-icon-sm-size);
      --_close-icon-size: var(--p-message-close-icon-sm-size);
    }
    &.p-message-lg {
      --_padding: var(--p-message-content-lg-padding);
      --_font-size: var(--p-message-text-lg-font-size);
      --_icon-size: var(--p-message-icon-lg-size);
      --_close-icon-size: var(--p-message-close-icon-lg-size);
    }
    &.p-message-outlined {
      --_bg: transparent;
      --_border-width: var(--p-message-outlined-border-width);
      --_border-color: var(--_outlined-border-color);
      --_color: var(--_outlined-color);
      --_shadow: none;
    }
    &.p-message-simple {
      --_bg: transparent;
      --_border-width: 0;
      --_color: var(--_simple-color);
      --_shadow: none;
      --_padding: var(--p-message-simple-content-padding);
    }
    > div {
      display: flex;
      align-items: center;
      gap: var(--p-message-content-gap);
      min-height: calc(var(--p-typography-line-height) * 1em);
    }
    .p-message-info-icon,
    .p-message-success-icon,
    .p-message-warn-icon,
    .p-message-error-icon,
    .p-message-fatal-icon,
    .p-message-secondary-icon,
    .p-message-contrast-icon {
      flex-shrink: 0;
      color: var(--_color);
      font-size: var(--_icon-size);
      line-height: 1;
    }
    .p-message-info-icon {
      --_icon: var(--p-message-info-icon);
    }
    .p-message-success-icon {
      --_icon: var(--p-message-success-icon);
    }
    .p-message-warn-icon {
      --_icon: var(--p-message-warn-icon);
    }
    .p-message-error-icon {
      --_icon: var(--p-message-error-icon);
    }
    .p-message-fatal-icon {
      --_icon: var(--p-message-fatal-icon);
    }
    .p-message-secondary-icon {
      --_icon: var(--p-message-secondary-icon);
    }
    .p-message-contrast-icon {
      --_icon: var(--p-message-contrast-icon);
    }
    .p-message-info-summary,
    .p-message-success-summary,
    .p-message-warn-summary,
    .p-message-error-summary,
    .p-message-fatal-summary,
    .p-message-secondary-summary,
    .p-message-contrast-summary {
      font-weight: var(--p-message-summary-font-weight);
    }
    .p-message-info-detail,
    .p-message-success-detail,
    .p-message-warn-detail,
    .p-message-error-detail,
    .p-message-fatal-detail,
    .p-message-secondary-detail,
    .p-message-contrast-detail {
      font-weight: var(--p-message-detail-font-weight);
      overflow-wrap: break-word;
      text-wrap: pretty;
    }
    .p-message-info-summary:empty,
    .p-message-success-summary:empty,
    .p-message-warn-summary:empty,
    .p-message-error-summary:empty,
    .p-message-fatal-summary:empty,
    .p-message-secondary-summary:empty,
    .p-message-contrast-summary:empty,
    .p-message-info-detail:empty,
    .p-message-success-detail:empty,
    .p-message-warn-detail:empty,
    .p-message-error-detail:empty,
    .p-message-fatal-detail:empty,
    .p-message-secondary-detail:empty,
    .p-message-contrast-detail:empty {
      display: none;
    }
    &.p-hidden {
      display: none;
    }
  }
  .p-widget + .p-message:not(.p-staticmessage) {
    margin-inline-start: var(--p-message-content-gap);
  }
}

/* packages/components/src/messages/messages.css */
@layer primefaces.components {
  .p-messages {
    --_padding: var(--p-message-content-lg-padding);
    --_font-size: var(--p-message-text-font-size);
    --_icon-size: var(--p-message-icon-lg-size);
    --_close-icon-size: var(--p-message-close-icon-size);
    font-size: var(--_font-size);
    font-weight: var(--p-message-text-font-weight);
    position: relative;
    border-radius: var(--p-message-border-radius);
    > div {
      --_bg: var(--p-message-info-background);
      --_border-color: var(--p-message-info-border-color);
      --_color: var(--p-message-info-color);
      --_shadow: var(--p-message-info-shadow);
      --_outlined-color: var(--p-message-info-outlined-color);
      --_outlined-border-color: var(--p-message-info-outlined-border-color);
      --_simple-color: var(--p-message-info-simple-color);
      --_close-hover-bg: var(--p-message-info-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-info-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-info-close-button-focus-ring-shadow);
      --_border-width: var(--p-message-border-width);
      display: flex;
      align-items: flex-start;
      gap: var(--p-message-content-gap);
      padding: var(--_padding);
      margin: var(--p-messages-gap) 0;
      border-radius: var(--p-message-border-radius);
      outline-color: transparent;
      transition:
        background var(--p-message-transition-duration),
        color var(--p-message-transition-duration),
        border-color var(--p-message-transition-duration);
      --_enter-offset: var(--p-message-enter-offset);
      animation: p-enter var(--p-message-enter-duration) var(--p-transition-easing-enter);
    }
    .p-messages-info,
    .p-messages-success,
    .p-messages-warn,
    .p-messages-error,
    .p-messages-fatal {
      background: var(--_bg);
      border: var(--_border-width) solid var(--_border-color);
      color: var(--_color);
      box-shadow: var(--_shadow);
    }
    .p-messages-success {
      --_bg: var(--p-message-success-background);
      --_border-color: var(--p-message-success-border-color);
      --_color: var(--p-message-success-color);
      --_shadow: var(--p-message-success-shadow);
      --_outlined-color: var(--p-message-success-outlined-color);
      --_outlined-border-color: var(--p-message-success-outlined-border-color);
      --_simple-color: var(--p-message-success-simple-color);
      --_close-hover-bg: var(--p-message-success-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-success-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-success-close-button-focus-ring-shadow);
    }
    .p-messages-warn {
      --_bg: var(--p-message-warn-background);
      --_border-color: var(--p-message-warn-border-color);
      --_color: var(--p-message-warn-color);
      --_shadow: var(--p-message-warn-shadow);
      --_outlined-color: var(--p-message-warn-outlined-color);
      --_outlined-border-color: var(--p-message-warn-outlined-border-color);
      --_simple-color: var(--p-message-warn-simple-color);
      --_close-hover-bg: var(--p-message-warn-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-warn-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-warn-close-button-focus-ring-shadow);
    }
    .p-messages-error {
      --_bg: var(--p-message-error-background);
      --_border-color: var(--p-message-error-border-color);
      --_color: var(--p-message-error-color);
      --_shadow: var(--p-message-error-shadow);
      --_outlined-color: var(--p-message-error-outlined-color);
      --_outlined-border-color: var(--p-message-error-outlined-border-color);
      --_simple-color: var(--p-message-error-simple-color);
      --_close-hover-bg: var(--p-message-error-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-error-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-error-close-button-focus-ring-shadow);
    }
    .p-messages-fatal {
      --_bg: var(--p-message-fatal-background);
      --_border-color: var(--p-message-fatal-border-color);
      --_color: var(--p-message-fatal-color);
      --_shadow: var(--p-message-fatal-shadow);
      --_outlined-color: var(--p-message-fatal-outlined-color);
      --_outlined-border-color: var(--p-message-fatal-outlined-border-color);
      --_simple-color: var(--p-message-fatal-simple-color);
      --_close-hover-bg: var(--p-message-fatal-close-button-hover-background);
      --_close-focus-ring-color: var(--p-message-fatal-close-button-focus-ring-color);
      --_close-focus-ring-shadow: var(--p-message-fatal-close-button-focus-ring-shadow);
    }
    &.p-message-sm {
      --_padding: var(--p-message-content-sm-padding);
      --_font-size: var(--p-message-text-sm-font-size);
      --_icon-size: var(--p-message-icon-sm-size);
      --_close-icon-size: var(--p-message-close-icon-sm-size);
    }
    &.p-message-lg {
      --_font-size: var(--p-message-text-lg-font-size);
      --_close-icon-size: var(--p-message-close-icon-lg-size);
    }
    &.p-message-simple {
      --_padding: var(--p-message-simple-content-padding);
    }
    &.p-message-outlined > div {
      --_bg: transparent;
      --_border-width: var(--p-message-outlined-border-width);
      --_border-color: var(--_outlined-border-color);
      --_color: var(--_outlined-color);
      --_shadow: none;
    }
    &.p-message-simple > div {
      --_bg: transparent;
      --_border-width: 0;
      --_color: var(--_simple-color);
      --_shadow: none;
    }
    ul {
      flex: 1 1 auto;
      min-width: 0;
      margin: 0;
      padding: 0;
      list-style-type: none;
      > li {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        column-gap: var(--p-messages-text-gap);
        + li {
          margin-top: var(--p-message-content-gap);
        }
      }
      .p-messages-info-summary,
      .p-messages-success-summary,
      .p-messages-warn-summary,
      .p-messages-error-summary,
      .p-messages-fatal-summary {
        font-weight: var(--p-message-summary-font-weight);
      }
      .p-messages-info-detail,
      .p-messages-success-detail,
      .p-messages-warn-detail,
      .p-messages-error-detail,
      .p-messages-fatal-detail {
        font-weight: var(--p-message-detail-font-weight);
        overflow-wrap: break-word;
        text-wrap: pretty;
        min-width: 0;
      }
    }
    .p-messages-info-icon,
    .p-messages-success-icon,
    .p-messages-warn-icon,
    .p-messages-error-icon,
    .p-messages-fatal-icon {
      flex-shrink: 0;
      font-size: var(--_icon-size);
      line-height: 1;
      margin: calc((var(--p-typography-line-height) * var(--_font-size) - var(--_icon-size)) / 2) 0 0;
      color: var(--_color);
    }
    .p-messages-info-icon {
      --_icon: var(--p-message-info-icon);
    }
    .p-messages-success-icon {
      --_icon: var(--p-message-success-icon);
    }
    .p-messages-warn-icon {
      --_icon: var(--p-message-warn-icon);
    }
    .p-messages-error-icon {
      --_icon: var(--p-message-error-icon);
    }
    .p-messages-fatal-icon {
      --_icon: var(--p-message-fatal-icon);
    }
    .p-messages-close {
      order: 1;
      display: inline-flex;
      flex-shrink: 0;
      align-items: center;
      justify-content: center;
      width: var(--p-message-close-button-width);
      height: var(--p-message-close-button-height);
      padding: 0;
      border: 0 none;
      border-radius: var(--p-message-close-button-border-radius);
      background: transparent;
      color: var(--_color);
      text-align: center;
      text-decoration: none;
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
      outline-color: transparent;
      transition:
        background var(--p-message-transition-duration),
        color var(--p-message-transition-duration),
        outline-color var(--p-message-transition-duration),
        box-shadow var(--p-message-transition-duration);
      &:hover {
        background: var(--_close-hover-bg);
      }
      &:focus-visible {
        outline: var(--p-message-close-button-focus-ring-width) var(--p-message-close-button-focus-ring-style) var(--_close-focus-ring-color);
        outline-offset: var(--p-message-close-button-focus-ring-offset);
        box-shadow: var(--_close-focus-ring-shadow);
      }
      .p-messages-close-icon {
        --_icon: var(--p-message-close-icon);
        font-size: var(--_close-icon-size);
        color: inherit;
      }
    }
  }
}

/* packages/components/src/forms/multiselectlistbox.css */
@layer primefaces.components {
  .p-multiselectlistbox {
    display: flow-root;
    .p-multiselectlistbox-listcontainer {
      float: inline-start;
      overflow: auto;
      width: auto;
      min-width: var(--p-multiselectlistbox-list-min-width);
      margin: 0;
      margin-inline-end: var(--p-multiselectlistbox-gap);
      padding: 0;
      background: var(--p-listbox-background);
      color: var(--p-listbox-color);
      border: 1px solid var(--p-listbox-border-color);
      border-radius: var(--p-listbox-border-radius);
      box-shadow: var(--p-listbox-shadow);
      &:last-child {
        margin-inline-end: 0;
      }
      .p-multiselectlistbox-header {
        padding: var(--p-multiselectlistbox-header-padding);
        margin: 0;
        border: 0 none;
        border-bottom: 1px solid var(--p-multiselectlistbox-header-border-color);
        border-start-start-radius: var(--p-listbox-border-radius);
        border-start-end-radius: var(--p-listbox-border-radius);
        background: var(--p-multiselectlistbox-header-background);
        color: var(--p-multiselectlistbox-header-color);
        font-size: var(--p-multiselectlistbox-header-font-size);
        font-weight: var(--p-multiselectlistbox-header-font-weight);
      }
      .p-multiselectlistbox-list,
      .p-multiselectlistbox-list:not(.p-state-disabled):hover,
      .p-multiselectlistbox-list:not(.p-state-disabled):focus {
        width: 100%;
        padding: var(--p-listbox-list-padding);
        background: transparent;
        color: inherit;
        border: 0 none;
        border-radius: 0;
        outline: 0 none;
        box-shadow: none;
      }
      .p-multiselectlistbox-list .p-multiselectlistbox-item {
        display: flex;
        align-items: center;
        gap: var(--p-multiselectlistbox-gap);
        padding: var(--p-listbox-option-padding);
        margin: 0;
        background: transparent;
        color: var(--p-listbox-option-color);
        font-size: var(--p-listbox-option-font-size);
        font-weight: var(--p-listbox-option-font-weight);
        border-radius: var(--p-listbox-option-border-radius);
        transition:
          background var(--p-list-option-transition-duration),
          color var(--p-list-option-transition-duration),
          border-color var(--p-list-option-transition-duration);
        & + .p-multiselectlistbox-item {
          margin-top: var(--p-listbox-list-gap);
        }
        &.p-state-hover {
          background: var(--p-listbox-option-focus-background);
          color: var(--p-listbox-option-focus-color);
        }
        &.p-state-highlight {
          background: var(--p-listbox-option-selected-background);
          color: var(--p-listbox-option-selected-color);
          font-weight: var(--p-listbox-option-selected-font-weight);
        }
      }
    }
    .p-multiselectlistbox-list {
      list-style-type: none;
      margin: 0;
    }
    .p-multiselectlistbox-header {
      text-align: center;
    }
    .p-multiselectlistbox-item {
      cursor: pointer;
      white-space: nowrap;
      border: 0 none;
      &:has(> ul)::after {
        content: " ";
        background: currentColor;
        forced-color-adjust: none;
        mask: var(--p-multiselectlistbox-submenu-icon) center / contain no-repeat;
        margin-inline-start: auto;
        font-style: normal;
        font-weight: normal;
        font-size: var(--p-icon-size);
        line-height: 1;
        color: var(--p-multiselectlistbox-item-icon-color);
      }
      &:has(> ul):dir(rtl)::after {
        scale: -1 1;
      }
      &.p-state-highlight:has(> ul)::after {
        color: inherit;
      }
    }
    &.p-state-disabled {
      opacity: 1;
      .p-multiselectlistbox-item {
        cursor: default;
      }
      .p-multiselectlistbox-listcontainer {
        background: var(--p-listbox-disabled-background);
        color: var(--p-listbox-disabled-color);
      }
      .p-multiselectlistbox-listcontainer .p-multiselectlistbox-list .p-multiselectlistbox-item {
        color: var(--p-listbox-disabled-color);
        &.p-state-highlight {
          color: var(--p-listbox-option-selected-color);
        }
      }
    }
  }
}

/* packages/components/src/notificationbar/notificationbar.css */
@layer primefaces.components {
  .p-notificationbar {
    display: none;
    position: fixed;
    left: 0;
    width: 100%;
    min-height: 100px;
    padding: var(--p-notificationbar-padding);
    background: var(--p-notificationbar-background);
    color: var(--p-notificationbar-color);
    border: 0 none;
    border-block: 1px solid var(--p-notificationbar-border-color);
    box-shadow: var(--p-notificationbar-shadow);
    .p-notificationbar-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      top: var(--p-notificationbar-close-button-offset);
      inset-inline-end: var(--p-notificationbar-close-button-offset);
      width: var(--p-notificationbar-close-button-width);
      height: var(--p-notificationbar-close-button-height);
      border-radius: var(--p-notificationbar-close-button-border-radius);
      background: transparent;
      color: var(--p-notificationbar-close-button-color);
      text-decoration: none;
      outline-color: transparent;
      transition:
        background var(--p-notificationbar-transition-duration),
        color var(--p-notificationbar-transition-duration),
        outline-color var(--p-notificationbar-transition-duration),
        box-shadow var(--p-notificationbar-transition-duration);
      &:hover {
        background: var(--p-notificationbar-close-button-hover-background);
        color: var(--p-notificationbar-close-button-hover-color);
      }
      &:focus-visible {
        outline: var(--p-notificationbar-close-button-focus-ring-width) var(--p-notificationbar-close-button-focus-ring-style) var(--p-notificationbar-close-button-focus-ring-color);
        outline-offset: var(--p-notificationbar-close-button-focus-ring-offset);
        box-shadow: var(--p-notificationbar-close-button-focus-ring-shadow);
      }
      .pi {
        font-size: var(--p-message-close-icon-size);
      }
    }
  }
  .p-notificationbar-close {
    position: absolute;
    cursor: pointer;
  }
}

/* packages/components/src/orderlist/orderlist.css */
@layer primefaces.components {
  .p-orderlist {
    display: table;
    .p-orderlist-caption {
      width: 200px;
      text-align: center;
      background: linear-gradient(var(--p-orderlist-caption-background), var(--p-orderlist-caption-background)), var(--p-listbox-background);
      border: 1px solid var(--p-orderlist-caption-border-color);
      border-bottom: 0 none;
      color: var(--p-orderlist-caption-color);
      padding: var(--p-orderlist-caption-padding);
      font-weight: var(--p-orderlist-caption-font-weight);
      border-radius: var(--p-listbox-border-radius) var(--p-listbox-border-radius) 0 0;
    }
    .p-orderlist-list {
      list-style-type: none;
      margin: 0;
      overflow: auto;
      height: 200px;
      width: 200px;
      border: 1px solid var(--p-listbox-border-color);
      background: var(--p-listbox-background);
      color: var(--p-listbox-color);
      padding: var(--p-listbox-list-padding);
      box-shadow: var(--p-listbox-shadow);
      border-radius: 0 0 var(--p-listbox-border-radius) var(--p-listbox-border-radius);
      .p-orderlist-item {
        padding: var(--p-listbox-option-padding);
        margin: 0;
        border: 0 none;
        color: var(--p-listbox-option-color);
        font-size: var(--p-listbox-option-font-size);
        font-weight: var(--p-listbox-option-font-weight);
        border-radius: var(--p-listbox-option-border-radius);
        transition:
          background var(--p-listbox-transition-duration),
          color var(--p-listbox-transition-duration),
          border-color var(--p-listbox-transition-duration),
          box-shadow var(--p-listbox-transition-duration);
      }
      .p-orderlist-item + .p-orderlist-item {
        margin-top: var(--p-listbox-list-gap);
      }
      .p-orderlist-item:not(.p-state-highlight):hover,
      .p-orderlist-item.p-state-hover {
        background: var(--p-listbox-option-focus-background);
        color: var(--p-listbox-option-focus-color);
      }
      .p-orderlist-item.p-state-highlight {
        background: var(--p-listbox-option-selected-background);
        color: var(--p-listbox-option-selected-color);
        font-weight: var(--p-listbox-option-selected-font-weight);
      }
      .p-orderlist-item.p-state-highlight.p-sortable-placeholder {
        background: var(--p-listbox-option-selected-focus-background);
      }
      &:first-child {
        border-radius: var(--p-listbox-border-radius);
      }
    }
    .p-button {
      display: flex;
    }
    .p-orderlist-item {
      cursor: pointer;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    .p-orderlist-controls {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      .p-button {
        margin-bottom: var(--p-orderlist-controls-gap);
      }
      .p-orderlist-move-up-icon {
        --_icon: var(--p-orderlist-move-up-icon);
      }
      .p-orderlist-move-top-icon {
        --_icon: var(--p-orderlist-move-top-icon);
      }
      .p-orderlist-move-down-icon {
        --_icon: var(--p-orderlist-move-down-icon);
      }
      .p-orderlist-move-bottom-icon {
        --_icon: var(--p-orderlist-move-bottom-icon);
      }
    }
    .ui-g > div {
      padding: 0;
      &.p-orderlist-controls {
        padding: 0;
        padding-inline-end: var(--p-orderlist-gap);
      }
    }
    &.p-orderlist-controls-right .ui-g > div.p-orderlist-controls {
      padding: 0;
      padding-inline-start: var(--p-orderlist-gap);
    }
    &.p-state-disabled {
      .p-orderlist-item,
      .p-button {
        cursor: default;
      }
      .p-orderlist-list {
        overflow: hidden;
        background: var(--p-listbox-disabled-background);
        color: var(--p-listbox-disabled-color);
      }
    }
    &.ui-grid-responsive {
      display: block;
      width: 100%;
      .p-orderlist-list,
      .p-orderlist-caption {
        width: 100%;
      }
      .p-orderlist-controls .p-button {
        width: 100%;
      }
    }
  }
  @media (max-width: 640px) {
    .p-orderlist.ui-grid-responsive .ui-g > div {
      width: 100%;
      &.p-orderlist-controls {
        text-align: center;
        padding: 0;
        flex-direction: row;
        .p-button {
          display: inline-flex;
          width: 20%;
          margin-top: var(--p-orderlist-controls-gap);
          margin-inline-end: var(--p-orderlist-controls-gap);
        }
        .p-button:last-child {
          margin-inline-end: 0;
        }
      }
    }
  }
}

/* packages/components/src/forms/outputlabel.css */
@layer primefaces.components {
  .p-outputlabel {
    color: var(--p-label-text-color);
    font-size: var(--p-label-font-size);
    font-weight: var(--p-label-font-weight);
    .p-outputlabel-label {
      overflow: hidden;
    }
    &.p-state-error {
      color: var(--p-label-invalid-color);
    }
    &.p-state-disabled {
      opacity: var(--p-label-disabled-opacity);
    }
    .p-outputlabel-rfi {
      margin-left: var(--p-label-required-indicator-gap);
      color: var(--p-label-required-indicator-color);
    }
  }
  .p-outputlabel-rtl .p-outputlabel-rfi {
    margin-left: 0;
    margin-right: var(--p-label-required-indicator-gap);
  }
}

/* packages/components/src/outputpanel/outputpanel.css */
@layer primefaces.components {
  div.p-outputpanel:has(> .p-outputpanel-loading) {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--p-outputpanel-loading-padding);
  }
  .p-outputpanel .p-outputpanel-loading {
    font-size: var(--p-outputpanel-loading-icon-size);
    color: var(--p-outputpanel-loading-icon-color);
    animation: p-spin var(--p-outputpanel-loading-icon-animation-duration) linear infinite;
  }
  .p-outputpanel-loading-icon {
    --_icon: var(--p-outputpanel-loading-icon);
  }
}

/* packages/components/src/overlaypanel/overlaypanel.css */
@layer primefaces.components {
  .p-overlaypanel {
    position: absolute;
    display: none;
    margin: 0;
    background: var(--p-popover-background);
    color: var(--p-popover-color);
    border: 1px solid var(--p-popover-border-color);
    border-radius: var(--p-popover-border-radius);
    box-shadow: var(--p-popover-shadow);
    .p-overlaypanel-content {
      padding: var(--p-popover-content-padding);
    }
    .p-overlaypanel-close {
      position: absolute;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: var(--p-overlaypanel-close-button-size);
      height: var(--p-overlaypanel-close-button-size);
      inset-inline-end: calc(-1 * var(--p-overlaypanel-close-button-size) / 2);
      top: calc(-1 * var(--p-overlaypanel-close-button-size) / 2);
      background: var(--p-overlaypanel-close-button-background);
      color: var(--p-overlaypanel-close-button-color);
      border: 0 none;
      border-radius: 50%;
      padding: 0;
      text-decoration: none;
      outline-color: transparent;
      transition:
        background var(--p-overlaypanel-close-button-transition-duration),
        color var(--p-overlaypanel-close-button-transition-duration),
        outline-color var(--p-overlaypanel-close-button-transition-duration),
        box-shadow var(--p-overlaypanel-close-button-transition-duration);
      &:hover,
      &.p-state-hover {
        background: var(--p-overlaypanel-close-button-hover-background);
        color: var(--p-overlaypanel-close-button-hover-color);
      }
      &:focus-visible {
        outline: var(--p-overlaypanel-close-button-focus-ring-width) var(--p-overlaypanel-close-button-focus-ring-style) var(--p-overlaypanel-close-button-focus-ring-color);
        outline-offset: var(--p-overlaypanel-close-button-focus-ring-offset);
        box-shadow: var(--p-overlaypanel-close-button-focus-ring-shadow);
      }
      .p-overlaypanel-close-icon {
        --_icon: var(--p-overlaypanel-close-icon);
        color: inherit;
      }
    }
  }
}

/* packages/components/src/panel/panel.css */
@layer primefaces.components {
  .p-panel {
    background: var(--p-panel-background);
    color: var(--p-panel-color);
    border: 1px solid var(--p-panel-border-color);
    border-radius: var(--p-panel-border-radius);
    .p-panel-titlebar {
      display: flex;
      align-items: center;
      padding: var(--p-panel-header-padding);
      background: var(--p-panel-header-background);
      color: var(--p-panel-header-color);
      font-weight: var(--p-panel-title-font-weight);
      border-style: solid;
      border-width: var(--p-panel-header-border-width);
      border-color: var(--p-panel-header-border-color);
      border-radius: var(--p-panel-header-border-radius);
      &:has(> .p-panel-titlebar-icon) {
        padding: var(--p-panel-toggleable-header-padding);
      }
    }
    .p-panel-titlebar-toggleable {
      cursor: pointer;
    }
    .p-panel-title {
      margin: 0;
      margin-inline-end: auto;
      font-size: var(--p-panel-title-font-size);
      font-weight: var(--p-panel-title-font-weight);
      text-wrap: balance;
    }
    .p-panel-titlebar {
      > .p-panel-actions {
        order: 1;
      }
      > .p-panel-titlebar-icon {
        &[id$=_menu] {
          order: 2;
        }
        &[id$=_toggler] {
          order: 3;
        }
        &[id$=_closer] {
          order: 4;
        }
      }
      .p-panel-titlebar-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: var(--p-button-icon-only-width);
        height: var(--p-button-icon-only-width);
        margin: 0;
        padding: 0;
        background: transparent;
        color: var(--p-button-text-secondary-color);
        border: 0 none;
        border-radius: 50%;
        text-align: center;
        text-decoration: none;
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-button-transition-duration),
          color var(--p-button-transition-duration),
          outline-color var(--p-button-transition-duration),
          box-shadow var(--p-button-transition-duration);
        &:hover {
          background: var(--p-button-text-secondary-hover-background);
          color: var(--p-button-text-secondary-color);
        }
        &:active {
          background: var(--p-button-text-secondary-active-background);
        }
        &:focus-visible {
          outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
          outline-offset: var(--p-button-focus-ring-offset);
          box-shadow: var(--p-button-secondary-focus-ring-shadow);
        }
        .p-panel-close-icon {
          --_icon: var(--p-panel-close-icon);
        }
        .p-panel-toggle-icon {
          --_icon: var(--p-panel-toggle-expanded-icon);
        }
        &[aria-expanded=false] .p-panel-toggle-icon {
          --_icon: var(--p-panel-toggle-collapsed-icon);
        }
        .p-panel-menu-icon {
          --_icon: var(--p-panel-menu-icon);
        }
      }
    }
    .p-panel-titlebar-icon {
      cursor: pointer;
    }
    .p-panel-content {
      padding: var(--p-panel-content-padding);
      background: transparent;
      color: inherit;
      border: 0 none;
    }
    > .p-panel-content:first-child {
      padding-top: var(--p-panel-header-padding);
    }
    .p-panel-footer {
      margin: 0;
      padding: var(--p-panel-footer-padding);
      background: transparent;
      color: inherit;
      border: 0 none;
      text-align: start;
    }
    &.p-panel-collapsed .p-panel-titlebar,
    &:not(:has(> .p-panel-footer)):has(> .p-panel-content[style*="display:none"]) > .p-panel-titlebar {
      border-end-start-radius: var(--p-panel-border-radius);
      border-end-end-radius: var(--p-panel-border-radius);
    }
    &.p-panel-collapsed-h {
      width: 42px;
      .p-panel-title {
        display: none;
      }
      .p-panel-titlebar {
        position: relative;
        justify-content: center;
        padding-inline: 0;
      }
    }
  }
}

/* packages/components/src/panelgrid/panelgrid.css */
@layer primefaces.components {
  .p-panelgrid {
    border-collapse: collapse;
    .p-panelgrid-header {
      text-align: center;
    }
    .p-panelgrid-footer {
      text-align: start;
    }
    .p-panelgrid-cell {
      padding: var(--p-panelgrid-cell-padding);
      background: var(--p-panelgrid-cell-background);
      color: var(--p-panelgrid-cell-color);
      border: 1px solid var(--p-panelgrid-cell-border-color);
    }
    .p-panelgrid-cell.p-widget-header,
    > div.p-panelgrid-header,
    > div.p-panelgrid-footer {
      padding: var(--p-panelgrid-header-cell-padding);
      background: var(--p-panelgrid-header-cell-background);
      color: var(--p-panelgrid-header-cell-color);
      border: 1px solid var(--p-panelgrid-header-cell-border-color);
      font-size: var(--p-panelgrid-header-cell-font-size);
      font-weight: var(--p-panelgrid-header-cell-font-weight);
    }
    > div {
      &.p-panelgrid-content {
        background: var(--p-panelgrid-cell-background);
        color: var(--p-panelgrid-cell-color);
        border: 1px solid var(--p-panelgrid-cell-border-color);
      }
      &.p-panelgrid-header + div.p-panelgrid-content,
      &.p-panelgrid-content + div.p-panelgrid-footer {
        border-top: 0 none;
      }
    }
    &.p-noborder .p-widget-content,
    &.p-noborder .p-widget-header,
    &.p-noborder .p-panelgrid-cell,
    &.p-noborder .p-panelgrid-cell.p-widget-header,
    &.p-noborder > div.p-panelgrid-header,
    &.p-noborder > div.p-panelgrid-content,
    &.p-noborder > div.p-panelgrid-footer,
    .grid .p-panelgrid-cell,
    .p-grid .p-panelgrid-cell,
    .ui-grid-responsive .p-panelgrid-cell {
      border: 0 none;
    }
    &.p-panelgrid-blank .p-panelgrid-content.p-widget-content,
    &.p-panelgrid-blank .p-panelgrid-header.p-widget-header,
    &.p-panelgrid-blank .p-panelgrid-footer.p-widget-header,
    &.p-panelgrid-blank .p-panelgrid-header > tr.p-widget-header,
    &.p-panelgrid-blank .p-panelgrid-footer > tr.p-widget-header,
    &.p-panelgrid-blank tbody > tr.p-widget-content,
    &.p-panelgrid-blank tbody > tr.p-widget-content > td.p-panelgrid-cell,
    &.p-panelgrid-blank .p-panelgrid-cell,
    &.p-panelgrid-blank > div.p-panelgrid-header,
    &.p-panelgrid-blank > div.p-panelgrid-content,
    &.p-panelgrid-blank > div.p-panelgrid-footer {
      background: none;
      border: 0 none;
    }
    .p-panelgrid-cell.p-panelgrid-nopad {
      padding: 0;
    }
  }
  @media (max-width: 640px) {
    .p-panelgrid {
      .ui-grid-responsive .ui-grid-row {
        border-top: 1px solid var(--p-panelgrid-cell-border-color);
        &:first-child {
          border-top: 0 none;
        }
      }
      &.p-noborder .ui-grid-responsive .ui-grid-row {
        border: 0 none;
      }
    }
  }
}

/* packages/components/src/menu/panelmenu.css */
@layer primefaces.components {
  .p-panelmenu {
    width: auto;
    display: flex;
    flex-direction: column;
    gap: var(--p-panelmenu-gap);
    .p-panelmenu-panel {
      margin: 0;
      background: var(--p-panelmenu-panel-background);
      color: var(--p-panelmenu-panel-color);
      border-style: solid;
      border-width: var(--p-panelmenu-panel-border-width);
      border-color: var(--p-panelmenu-panel-border-color);
      border-radius: var(--p-panelmenu-panel-border-radius);
      padding: var(--p-panelmenu-panel-padding);
      &:first-child {
        border-width: var(--p-panelmenu-panel-first-border-width);
        border-start-start-radius: var(--p-panelmenu-panel-first-top-border-radius);
        border-start-end-radius: var(--p-panelmenu-panel-first-top-border-radius);
      }
      &:last-child {
        border-width: var(--p-panelmenu-panel-last-border-width);
        border-end-start-radius: var(--p-panelmenu-panel-last-bottom-border-radius);
        border-end-end-radius: var(--p-panelmenu-panel-last-bottom-border-radius);
      }
    }
    .p-panelmenu-header {
      cursor: pointer;
      position: relative;
      margin: 0;
      &.p-state-disabled,
      &.p-state-disabled a {
        cursor: default;
      }
    }
    h3.p-panelmenu-header {
      display: flex;
      align-items: center;
      gap: var(--p-panelmenu-item-gap);
      padding: var(--p-panelmenu-item-padding);
      background: transparent;
      color: var(--p-panelmenu-item-color);
      border: 0 none;
      border-radius: var(--p-panelmenu-item-border-radius);
      font-size: var(--p-panelmenu-item-label-font-size);
      font-weight: var(--p-panelmenu-item-label-font-weight);
      -webkit-user-select: none;
      user-select: none;
      outline: 0 none;
      transition:
        background var(--p-panelmenu-transition-duration),
        color var(--p-panelmenu-transition-duration),
        outline-color var(--p-panelmenu-transition-duration),
        box-shadow var(--p-panelmenu-transition-duration);
      a {
        display: block;
        flex: 1 1 auto;
        padding: 0;
        outline: 0 none;
        color: inherit;
        text-decoration: none;
      }
      :is(.p-menuitem-icon, .p-submenu-icon) {
        color: var(--p-panelmenu-item-icon-color);
        font-size: var(--p-panelmenu-item-icon-size);
      }
      .p-panelmenu-header-icon {
        --_icon: var(--p-panelmenu-header-collapsed-icon);
        font-size: var(--p-panelmenu-item-icon-size);
        color: var(--p-panelmenu-submenu-icon-color);
      }
      &.p-state-active .p-panelmenu-header-icon {
        --_icon: var(--p-panelmenu-header-expanded-icon);
      }
      &:not(.p-state-active) .p-panelmenu-header-icon:dir(rtl) {
        scale: -1 1;
      }
      &:not(.p-state-disabled):hover,
      &.p-state-hover,
      &:not(.p-state-disabled):focus-visible,
      &:not(.p-state-disabled):has(> a:focus-visible) {
        background: var(--p-panelmenu-item-focus-background);
        color: var(--p-panelmenu-item-focus-color);
      }
      &:not(.p-state-disabled):hover :is(.p-menuitem-icon, .p-submenu-icon),
      &.p-state-hover :is(.p-menuitem-icon, .p-submenu-icon),
      &:not(.p-state-disabled):focus-visible :is(.p-menuitem-icon, .p-submenu-icon),
      &:not(.p-state-disabled):has(> a:focus-visible) :is(.p-menuitem-icon, .p-submenu-icon) {
        color: var(--p-panelmenu-item-icon-focus-color);
      }
      &:not(.p-state-disabled):hover .p-panelmenu-header-icon,
      &.p-state-hover .p-panelmenu-header-icon,
      &:not(.p-state-disabled):focus-visible .p-panelmenu-header-icon,
      &:not(.p-state-disabled):has(> a:focus-visible) .p-panelmenu-header-icon {
        color: var(--p-panelmenu-submenu-icon-focus-color);
      }
    }
    .p-panelmenu-content {
      position: relative;
      overflow: auto;
      outline: none;
      padding: 0;
      margin: 0;
      background: transparent;
      color: inherit;
      border: 0 none;
    }
    .p-menu-list {
      list-style: none;
      padding: 0;
      margin: 0;
      .p-menu-list {
        padding: 0;
        padding-inline-start: var(--p-panelmenu-submenu-indent);
        margin: 0;
      }
    }
    .p-menuitem {
      margin: 0;
      padding: 0;
    }
    .p-menuitem-link {
      outline: none;
      text-decoration: none;
      cursor: pointer;
      position: relative;
    }
    .p-panelmenu-content .p-menuitem-link {
      display: flex;
      align-items: center;
      gap: var(--p-panelmenu-item-gap);
      padding: var(--p-panelmenu-item-padding);
      color: var(--p-panelmenu-item-color);
      border: 0 none;
      border-radius: var(--p-panelmenu-item-border-radius);
      line-height: inherit;
      -webkit-user-select: none;
      user-select: none;
      overflow: hidden;
      outline-color: transparent;
      transition:
        background var(--p-panelmenu-transition-duration),
        color var(--p-panelmenu-transition-duration),
        outline-color var(--p-panelmenu-transition-duration),
        box-shadow var(--p-panelmenu-transition-duration);
      > span:is(.p-menuitem-icon, .p-submenu-icon) {
        color: var(--p-panelmenu-item-icon-color);
        font-size: var(--p-panelmenu-item-icon-size);
      }
      > .p-panelmenu-submenu-icon {
        --_icon: var(--p-panelmenu-submenu-collapsed-icon);
        font-size: var(--p-panelmenu-item-icon-size);
        color: var(--p-panelmenu-submenu-icon-color);
      }
      &:has(> .p-menuitem-text[aria-expanded=true]) > .p-panelmenu-submenu-icon {
        --_icon: var(--p-panelmenu-submenu-expanded-icon);
      }
      &:not(:has(> .p-menuitem-text[aria-expanded=true])) > .p-panelmenu-submenu-icon:dir(rtl) {
        scale: -1 1;
      }
      .p-menuitem-text {
        display: inline-block;
        font-size: var(--p-panelmenu-item-label-font-size);
        font-weight: var(--p-panelmenu-item-label-font-weight);
      }
      &:not(.p-state-disabled):hover,
      &.p-state-hover,
      &:has(> .p-menuitem-outline),
      &:not(.p-state-disabled):focus-visible {
        background: var(--p-panelmenu-item-focus-background);
        color: var(--p-panelmenu-item-focus-color);
      }
      .p-menuitem-text.p-menuitem-outline {
        outline: 0 none;
      }
      &:not(.p-state-disabled):hover span:is(.p-menuitem-icon, .p-submenu-icon),
      &.p-state-hover span:is(.p-menuitem-icon, .p-submenu-icon),
      &:has(> .p-menuitem-outline) span:is(.p-menuitem-icon, .p-submenu-icon),
      &:not(.p-state-disabled):focus-visible span:is(.p-menuitem-icon, .p-submenu-icon) {
        color: var(--p-panelmenu-item-icon-focus-color);
      }
      &:not(.p-state-disabled):hover span.p-panelmenu-icon,
      &.p-state-hover span.p-panelmenu-icon,
      &:has(> .p-menuitem-outline) span.p-panelmenu-icon,
      &:not(.p-state-disabled):focus-visible span.p-panelmenu-icon {
        color: var(--p-panelmenu-submenu-icon-focus-color);
      }
      &:not(.p-state-disabled):hover .p-menuitem-text,
      &.p-state-hover .p-menuitem-text,
      &:has(> .p-menuitem-outline) .p-menuitem-text,
      &:not(.p-state-disabled):focus-visible .p-menuitem-text {
        color: var(--p-panelmenu-item-focus-color);
      }
    }
  }
}

/* packages/components/src/forms/password.css */
@layer primefaces.components {
  .p-password-panel-overlay {
    position: absolute;
  }
  .p-password-masked.p-password,
  .p-password-unmasked.p-password {
    > input::-ms-reveal,
    > input::-ms-clear {
      display: none;
    }
  }
  .p-password {
    .p-password-icon {
      cursor: pointer;
      font-size: inherit;
      color: var(--p-password-icon-color);
      border-radius: var(--p-border-radius-xs);
      outline-color: transparent;
      &:focus-visible {
        outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
        outline-offset: var(--p-focus-ring-offset);
        box-shadow: var(--p-focus-ring-shadow);
      }
    }
    .p-password-toggle-icon {
      --_icon: var(--p-password-show-icon);
    }
    &.p-password-unmasked .p-password-toggle-icon {
      --_icon: var(--p-password-hide-icon);
    }
  }
  .p-password-panel {
    &.p-widget {
      background: var(--p-password-overlay-background);
      color: var(--p-password-overlay-color);
      padding: var(--p-password-overlay-padding);
      border: 1px solid var(--p-password-overlay-border-color);
      margin: 0;
      width: auto;
      min-width: 150px;
      box-shadow: var(--p-password-overlay-shadow);
      border-radius: var(--p-password-overlay-border-radius);
    }
    &.p-password-panel-inline {
      margin-top: var(--p-password-content-gap);
      box-shadow: none;
    }
    .p-password-meter {
      height: var(--p-password-meter-height);
      max-height: 10px;
      padding: 0;
      margin: 0;
      overflow: hidden;
      font-size: 0;
      line-height: 0;
      border-radius: var(--p-password-meter-border-radius);
      background-color: var(--p-password-meter-background);
      background-image:
        linear-gradient(
          to bottom,
          transparent 10px,
          var(--p-password-strength-weak-background) 10px,
          var(--p-password-strength-weak-background) 20px,
          transparent 20px),
        linear-gradient(
          to bottom,
          transparent 20px,
          var(--p-password-strength-medium-background) 20px,
          var(--p-password-strength-medium-background) 30px,
          transparent 30px),
        linear-gradient(
          to bottom,
          transparent 30px,
          var(--p-password-strength-strong-background) 30px);
      background-size:
        33.333% 40px,
        66.666% 40px,
        100% 40px;
      background-repeat: no-repeat;
    }
    .p-password-info {
      margin-top: var(--p-password-content-gap);
      font-size: var(--p-password-meter-text-font-size);
      font-weight: var(--p-password-meter-text-font-weight);
    }
  }
  .p-fluid .p-password,
  .p-fluid .p-password input {
    width: 100%;
  }
}

/* packages/components/src/picklist/picklist.css */
@layer primefaces.components {
  .p-picklist {
    display: table;
    > div {
      float: none;
      display: table-cell;
      vertical-align: top;
    }
    .p-picklist-buttons {
      height: 200px;
      vertical-align: middle;
      padding: 0 var(--p-picklist-gap);
      button {
        pointer-events: auto;
      }
      .p-button {
        margin-bottom: var(--p-picklist-controls-gap);
      }
      .p-picklist-move-up-icon {
        --_icon: var(--p-picklist-move-up-icon);
      }
      .p-picklist-move-top-icon {
        --_icon: var(--p-picklist-move-top-icon);
      }
      .p-picklist-move-down-icon {
        --_icon: var(--p-picklist-move-down-icon);
      }
      .p-picklist-move-bottom-icon {
        --_icon: var(--p-picklist-move-bottom-icon);
      }
      .p-picklist-move-to-target-icon {
        --_icon: var(--p-picklist-move-to-target-icon);
      }
      .p-picklist-move-all-to-target-icon {
        --_icon: var(--p-picklist-move-all-to-target-icon);
      }
      .p-picklist-move-to-source-icon {
        --_icon: var(--p-picklist-move-to-source-icon);
      }
      .p-picklist-move-all-to-source-icon {
        --_icon: var(--p-picklist-move-all-to-source-icon);
      }
      .p-picklist-move-to-target-vertical-icon {
        --_icon: var(--p-picklist-move-to-target-vertical-icon);
      }
      .p-picklist-move-all-to-target-vertical-icon {
        --_icon: var(--p-picklist-move-all-to-target-vertical-icon);
      }
      .p-picklist-move-to-source-vertical-icon {
        --_icon: var(--p-picklist-move-to-source-vertical-icon);
      }
      .p-picklist-move-all-to-source-vertical-icon {
        --_icon: var(--p-picklist-move-all-to-source-vertical-icon);
      }
    }
    .p-button {
      display: flex;
    }
    .p-button-text-icon-left {
      width: 100%;
    }
    .p-picklist-caption {
      text-align: center;
      background: linear-gradient(var(--p-picklist-caption-background), var(--p-picklist-caption-background)), var(--p-listbox-background);
      border: 1px solid var(--p-picklist-caption-border-color);
      border-bottom: 0 none;
      color: var(--p-picklist-caption-color);
      padding: var(--p-picklist-caption-padding);
      font-weight: var(--p-picklist-caption-font-weight);
      border-radius: var(--p-listbox-border-radius) var(--p-listbox-border-radius) 0 0;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    .p-picklist-filter {
      width: 100%;
      box-sizing: border-box;
    }
    .p-picklist-filter-container {
      position: relative;
      margin: 0;
      padding: 0;
      .p-picklist-filter {
        padding-block: var(--p-inputtext-padding-y);
        padding-inline: var(--p-inputtext-padding-x);
        padding-inline-start: calc(2 * var(--p-inputtext-padding-x) + var(--p-icon-size));
        margin-bottom: var(--p-picklist-controls-gap);
      }
      .p-picklist-filter-icon {
        --_icon: var(--p-picklist-filter-icon);
        position: absolute;
        inset-inline-start: var(--p-inputtext-padding-x);
        top: 50%;
        margin-top: calc(-1 * var(--p-icon-size) / 2 - var(--p-picklist-controls-gap) / 2);
        color: var(--p-form-field-icon-color);
      }
    }
    .p-picklist-list {
      list-style-type: none;
      margin: 0;
      overflow: auto;
      height: 200px;
      width: 200px;
      border: 1px solid var(--p-listbox-border-color);
      background: var(--p-listbox-background);
      color: var(--p-listbox-color);
      padding: var(--p-listbox-list-padding);
      box-shadow: var(--p-listbox-shadow);
      border-radius: var(--p-listbox-border-radius);
      li {
        overflow-wrap: break-word;
      }
    }
    .p-picklist-caption + .p-picklist-list {
      border-top-left-radius: 0;
      border-top-right-radius: 0;
    }
    .p-picklist-item {
      cursor: pointer;
    }
    .p-picklist-list .p-picklist-item {
      padding: var(--p-listbox-option-padding);
      border: 0 none;
      margin: 0;
      color: var(--p-listbox-option-color);
      font-size: var(--p-listbox-option-font-size);
      font-weight: var(--p-listbox-option-font-weight);
      border-radius: var(--p-listbox-option-border-radius);
      transition:
        background var(--p-listbox-transition-duration),
        color var(--p-listbox-transition-duration),
        border-color var(--p-listbox-transition-duration),
        box-shadow var(--p-listbox-transition-duration);
      + .p-picklist-item {
        margin-top: var(--p-listbox-list-gap);
      }
      &:not(.p-state-highlight, .p-state-disabled):hover,
      &.p-state-hover {
        background: var(--p-listbox-option-focus-background);
        color: var(--p-listbox-option-focus-color);
      }
      &.p-state-highlight {
        background: var(--p-listbox-option-selected-background);
        color: var(--p-listbox-option-selected-color);
        font-weight: var(--p-listbox-option-selected-font-weight);
      }
      &.p-state-highlight.p-sortable-placeholder {
        background: var(--p-listbox-option-selected-focus-background);
      }
      &.p-picklist-outline {
        outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
        outline-offset: calc(-1 * var(--p-focus-ring-width));
        box-shadow: var(--p-focus-ring-shadow);
      }
      .p-chkbox {
        margin-inline-end: var(--p-listbox-checkmark-gutter-end);
      }
    }
    &.p-picklist-vertical {
      > div {
        float: none;
        display: table-row;
        vertical-align: top;
      }
      .p-picklist-buttons {
        text-align: center;
        height: auto;
        padding: var(--p-picklist-controls-gap) 0;
        .p-button {
          display: inline-flex;
          margin: 0;
          margin-inline-end: var(--p-picklist-controls-gap);
        }
      }
    }
    &.p-picklist-responsive {
      width: 100%;
      * {
        box-sizing: border-box;
      }
      .p-picklist-buttons button {
        width: 100%;
      }
      .p-picklist-list {
        width: auto;
      }
    }
    &.p-picklist-responsive:not(.p-picklist-vertical) {
      display: grid;
      grid-template-columns: 45% 10% 45%;
      &:has(> .p-picklist-source-controls) {
        grid-template-columns: auto 35% 10% 45%;
      }
      &:has(> .p-picklist-target-controls) {
        grid-template-columns: 45% 10% 35% auto;
      }
      &:has(> .p-picklist-source-controls):has(> .p-picklist-target-controls) {
        grid-template-columns: auto 35% 10% 35% auto;
      }
      > div {
        display: block;
      }
      > .p-picklist-buttons {
        display: flex;
        flex-direction: column;
        justify-content: center;
        height: auto;
      }
    }
    &.p-picklist-responsive.p-picklist-vertical {
      display: block;
      > div {
        display: block;
      }
      > :where(.p-picklist-buttons) {
        padding: 0;
      }
    }
  }
  .p-picklist-list.p-picklist-source,
  .p-picklist-list.p-picklist-target {
    outline: none;
  }
  .p-picklist-outline {
    z-index: 1;
  }
  @media (max-width: 640px) {
    .p-picklist.p-picklist-responsive {
      > div {
        grid-column: 1 / -1;
      }
      > div.p-hidden-accessible {
        display: none;
      }
      .p-picklist-buttons {
        text-align: center;
        height: auto;
        padding: var(--p-picklist-controls-gap) 0;
        button {
          display: inline-flex;
          width: 20%;
        }
        .p-button {
          margin-top: var(--p-picklist-controls-gap);
          margin-inline-end: var(--p-picklist-controls-gap);
        }
        .p-button:last-child {
          margin-inline-end: 0;
        }
        .p-button .p-picklist-move-to-target-icon {
          --_icon: var(--p-picklist-move-to-target-vertical-icon);
        }
        .p-button .p-picklist-move-all-to-target-icon {
          --_icon: var(--p-picklist-move-all-to-target-vertical-icon);
        }
        .p-button .p-picklist-move-to-source-icon {
          --_icon: var(--p-picklist-move-to-source-vertical-icon);
        }
        .p-button .p-picklist-move-all-to-source-icon {
          --_icon: var(--p-picklist-move-all-to-source-vertical-icon);
        }
      }
    }
  }
  .p-picklist .p-picklist-list:focus-visible {
    outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
    outline-offset: calc(-1 * var(--p-focus-ring-width));
    box-shadow: var(--p-focus-ring-shadow);
  }
}

/* packages/components/src/progressbar/progressbar.css */
@layer primefaces.components {
  .p-progressbar {
    --_value-bg: var(--p-progressbar-value-background);
    --_label-color: var(--p-progressbar-label-color);
    position: relative;
    overflow: hidden;
    text-align: left;
    height: var(--p-progressbar-height);
    background: var(--p-progressbar-background);
    border-radius: var(--p-progressbar-border-radius);
    .p-progressbar-value {
      border: 0 none;
      background: var(--_value-bg);
      border-radius: var(--p-progressbar-border-radius);
    }
    .p-progressbar-label {
      color: var(--_label-color);
      font-size: var(--p-progressbar-label-font-size);
      font-weight: var(--p-progressbar-label-font-weight);
      line-height: var(--p-progressbar-height);
      font-variant-numeric: tabular-nums;
    }
    &.p-progressbar-success {
      --_value-bg: var(--p-progressbar-success-value-background);
      --_label-color: var(--p-progressbar-success-label-color);
    }
    &.p-progressbar-info {
      --_value-bg: var(--p-progressbar-info-value-background);
      --_label-color: var(--p-progressbar-info-label-color);
    }
    &.p-progressbar-warning {
      --_value-bg: var(--p-progressbar-warn-value-background);
      --_label-color: var(--p-progressbar-warn-label-color);
    }
    &.p-progressbar-danger {
      --_value-bg: var(--p-progressbar-danger-value-background);
      --_label-color: var(--p-progressbar-danger-label-color);
    }
  }
  .p-state-highlight .p-progressbar {
    background: color-mix(in srgb, var(--p-highlight-color), transparent 70%);
    &:not(.p-progressbar-success, .p-progressbar-info, .p-progressbar-warning, .p-progressbar-danger) {
      --_value-bg: var(--p-highlight-color);
      --_label-color: var(--p-highlight-background);
    }
  }
  .p-progressbar-determinate {
    .p-progressbar-value {
      height: 100%;
      width: 0%;
      position: absolute;
      display: none;
      overflow: hidden;
    }
    .p-progressbar-label {
      text-align: center;
      height: 100%;
      width: 100%;
      position: absolute;
      display: none;
      white-space: nowrap;
    }
  }
  .p-progressbar-indeterminate .p-progressbar-value {
    &::before,
    &::after {
      content: "";
      position: absolute;
      background-color: inherit;
      top: 0;
      left: 0;
      bottom: 0;
      width: 100%;
      transform-origin: left center;
      transform: scaleX(0);
      will-change: transform;
    }
    &::before {
      animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
    }
    &::after {
      animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
      animation-delay: 1.15s;
    }
    @media (prefers-reduced-motion: reduce) {
      &::before {
        transform: none;
        animation: none;
        opacity: 0.5;
      }
      &::after {
        content: none;
      }
    }
  }
  @keyframes p-progressbar-indeterminate-anim {
    0% {
      transform: translateX(-35%) scaleX(0.35);
    }
    60% {
      transform: translateX(100%) scaleX(0.9);
    }
    100% {
      transform: translateX(100%) scaleX(0.9);
    }
  }
  @keyframes p-progressbar-indeterminate-anim-short {
    0% {
      transform: translateX(-200%) scaleX(2);
    }
    60% {
      transform: translateX(107%) scaleX(0.01);
    }
    100% {
      transform: translateX(107%) scaleX(0.01);
    }
  }
}

/* packages/components/src/rating/rating.css */
@layer primefaces.components {
  .p-rating-star,
  .p-rating-cancel {
    display: inline-block;
    cursor: pointer;
    a {
      display: block;
      text-decoration: none;
    }
  }
  .p-rating {
    display: inline-flex;
    align-items: center;
    gap: var(--p-rating-gap);
    &.p-state-disabled .p-rating-star,
    &.p-state-readonly .p-rating-star,
    &.p-state-readonly .p-rating-cancel,
    &.p-state-disabled .p-rating-cancel {
      cursor: default;
    }
    .p-rating-cancel,
    .p-rating-star {
      border-radius: 50%;
      outline-color: transparent;
      transition: outline-color var(--p-rating-transition-duration), box-shadow var(--p-rating-transition-duration);
      &.p-state-focus {
        outline: var(--p-rating-focus-ring-width) var(--p-rating-focus-ring-style) var(--p-rating-focus-ring-color);
        outline-offset: var(--p-rating-focus-ring-offset);
        box-shadow: var(--p-rating-focus-ring-shadow);
      }
      a {
        font-style: normal;
        font-weight: normal;
        font-size: var(--p-rating-icon-size);
        line-height: 1;
        height: var(--p-rating-icon-size);
        width: var(--p-rating-icon-size);
        transition: color var(--p-rating-transition-duration);
      }
    }
    .p-rating-cancel a {
      color: var(--p-rating-cancel-icon-color);
    }
    .p-rating-cancel-icon {
      --_icon: var(--p-rating-cancel-icon);
    }
    &:not(.p-state-disabled, .p-state-readonly) .p-rating-cancel.p-rating-cancel-hover a,
    &:not(.p-state-disabled, .p-state-readonly) .p-rating-cancel a:hover {
      color: var(--p-rating-cancel-icon-hover-color);
    }
    .p-rating-star a {
      color: var(--p-rating-icon-color);
    }
    .p-rating-icon {
      --_icon: var(--p-rating-off-icon);
    }
    &:not(.p-state-disabled, .p-state-readonly) .p-rating-star a:hover {
      color: var(--p-rating-icon-hover-color);
    }
    .p-rating-star-on a {
      color: var(--p-rating-icon-active-color);
    }
    .p-rating-star-on .p-rating-icon {
      --_icon: var(--p-rating-on-icon);
    }
    &.p-state-error .p-rating-star a {
      color: var(--p-rating-invalid-icon-color);
    }
  }
  .p-state-highlight .p-rating-star a,
  .p-state-highlight .p-rating-star-on a {
    color: var(--p-highlight-color);
  }
}

/* packages/components/src/scrolltop/scrolltop.css */
@layer primefaces.components {
  .p-scrolltop {
    position: fixed;
    bottom: 20px;
    inset-inline-end: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    width: var(--p-button-lg-icon-only-width);
    height: var(--p-button-lg-icon-only-width);
    border-radius: 50%;
    background: var(--p-button-primary-background);
    color: var(--p-button-primary-color);
    border: 1px solid var(--p-button-primary-border-color);
    box-shadow: var(--p-button-raised-shadow);
    text-decoration: none;
    outline-color: transparent;
    transition:
      background var(--p-button-transition-duration),
      color var(--p-button-transition-duration),
      border-color var(--p-button-transition-duration),
      outline-color var(--p-button-transition-duration),
      box-shadow var(--p-button-transition-duration);
    &:hover {
      background: var(--p-button-primary-hover-background);
      color: var(--p-button-primary-hover-color);
      border-color: var(--p-button-primary-hover-border-color);
    }
    &:active {
      background: var(--p-button-primary-active-background);
      color: var(--p-button-primary-active-color);
      border-color: var(--p-button-primary-active-border-color);
    }
    &:focus-visible {
      outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-primary-focus-ring-color);
      outline-offset: var(--p-button-focus-ring-offset);
    }
    .p-scrolltop-icon {
      --_icon: var(--p-scrolltop-icon);
      font-size: var(--p-button-lg-font-size);
      color: inherit;
    }
    &.p-scrolltop-sticky {
      width: var(--p-button-icon-only-width);
      height: var(--p-button-icon-only-width);
      .p-scrolltop-icon {
        font-size: var(--p-icon-size);
      }
    }
  }
  .p-scrolltop-sticky {
    position: sticky;
    margin-inline-start: auto;
  }
}

/* packages/components/src/forms/selectbooleancheckbox.css */
@layer primefaces.components {
  .p-fluid .p-selectbooleancheckbox {
    width: 100%;
  }
}

/* packages/components/src/forms/selectcheckboxmenu.css */
@layer primefaces.components {
  .p-selectcheckboxmenu {
    display: inline-block;
    width: auto;
    cursor: pointer;
    vertical-align: baseline;
    border: 1px solid var(--p-multiselect-border-color);
    position: relative;
    background: var(--p-multiselect-background);
    color: var(--p-multiselect-color);
    border-radius: var(--p-multiselect-border-radius);
    box-shadow: var(--p-multiselect-shadow);
    outline-color: transparent;
    transition:
      background var(--p-multiselect-transition-duration),
      color var(--p-multiselect-transition-duration),
      border-color var(--p-multiselect-transition-duration),
      outline-color var(--p-multiselect-transition-duration),
      box-shadow var(--p-multiselect-transition-duration);
    .p-selectcheckboxmenu-label {
      display: block;
      width: auto;
      border: 0 none;
      cursor: pointer;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      &::after {
        content: "p";
        display: inline-flex;
        visibility: hidden;
        overflow: hidden;
        width: 0;
        clip: rect(0, 0, 0, 0);
      }
    }
    .p-selectcheckboxmenu-label-container {
      padding: var(--p-multiselect-padding-y) var(--p-multiselect-padding-x);
      padding-inline-end: var(--p-multiselect-dropdown-width);
      display: block;
      background: transparent;
      border-radius: var(--p-multiselect-border-radius);
      .p-selectcheckboxmenu-label {
        padding: 0;
        background: transparent;
        color: var(--p-multiselect-color);
        font-size: var(--p-multiselect-font-size);
        font-weight: var(--p-multiselect-font-weight);
      }
    }
    .p-selectcheckboxmenu-trigger {
      border: 0 none;
      cursor: pointer;
      height: 100%;
      position: absolute;
      top: 0;
      inset-inline-end: 0;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      width: var(--p-multiselect-dropdown-width);
      background: transparent;
      color: var(--p-multiselect-dropdown-color);
      border-start-end-radius: var(--p-multiselect-border-radius);
      border-end-end-radius: var(--p-multiselect-border-radius);
      .p-selectcheckboxmenu-dropdown-icon {
        --_icon: var(--p-multiselect-dropdown-icon);
        color: var(--p-multiselect-dropdown-color);
      }
    }
    &.p-state-disabled .p-selectcheckboxmenu-trigger,
    &.p-state-disabled .p-selectcheckboxmenu-label {
      cursor: auto;
    }
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      border-color: var(--p-multiselect-hover-border-color);
    }
    &.p-state-focus {
      border-color: var(--p-multiselect-focus-border-color);
      outline: var(--p-multiselect-focus-ring-width) var(--p-multiselect-focus-ring-style) var(--p-multiselect-focus-ring-color);
      outline-offset: var(--p-multiselect-focus-ring-offset);
      box-shadow: var(--p-multiselect-focus-ring-shadow);
    }
    &.p-state-error,
    &.p-state-error:is(:hover, .p-state-focus) {
      border-color: var(--p-multiselect-invalid-border-color);
    }
    &.p-state-disabled {
      opacity: 1;
      background: var(--p-multiselect-disabled-background);
      .p-selectcheckboxmenu-label {
        color: var(--p-multiselect-disabled-color);
      }
    }
    &.p-selectcheckboxmenu-sm {
      --p-multiselect-font-size: var(--p-multiselect-sm-font-size);
      --p-multiselect-padding-x: var(--p-multiselect-sm-padding-x);
      --p-multiselect-padding-y: var(--p-multiselect-sm-padding-y);
    }
    &.p-selectcheckboxmenu-lg {
      --p-multiselect-font-size: var(--p-multiselect-lg-font-size);
      --p-multiselect-padding-x: var(--p-multiselect-lg-padding-x);
      --p-multiselect-padding-y: var(--p-multiselect-lg-padding-y);
    }
    &.p-selectcheckboxmenu-sm .p-selectcheckboxmenu-trigger .p-selectcheckboxmenu-dropdown-icon,
    &.p-selectcheckboxmenu-lg .p-selectcheckboxmenu-trigger .p-selectcheckboxmenu-dropdown-icon {
      font-size: var(--p-multiselect-font-size);
    }
    .p-selectcheckboxmenu-multiple-container.p-inputfield {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      row-gap: calc(var(--p-multiselect-padding-y) / 2);
      min-height: calc(2 * var(--p-multiselect-padding-y) + var(--p-typography-line-height) * var(--p-multiselect-font-size));
      padding: calc(var(--p-multiselect-padding-y) / 2) calc(var(--p-multiselect-padding-x) / 2);
      padding-inline-end: var(--p-multiselect-dropdown-width);
      background: transparent;
      border: 0 none;
      box-shadow: none;
      outline: 0 none;
    }
    .p-selectcheckboxmenu-multiple-container .p-selectcheckboxmenu-emptylabel {
      color: var(--p-multiselect-placeholder-color);
      white-space: nowrap;
    }
    &.p-state-error .p-selectcheckboxmenu-multiple-container .p-selectcheckboxmenu-emptylabel {
      color: var(--p-multiselect-invalid-placeholder-color);
    }
    .p-selectcheckboxmenu-multiple-container .p-selectcheckboxmenu-token {
      padding-block: calc(var(--p-multiselect-padding-y) / 2);
      padding-inline: 0;
      margin: 0;
      margin-inline-end: calc(var(--p-multiselect-padding-y) / 2);
      background: var(--p-chip-background);
      color: var(--p-chip-color);
      border-radius: var(--p-multiselect-chip-border-radius);
      .p-selectcheckboxmenu-token-label {
        padding-block: 0;
        padding-inline: calc(var(--p-icon-size) / 2) calc(2 * var(--p-icon-size));
        font-size: var(--p-chip-label-font-size);
        font-weight: var(--p-chip-label-font-weight);
      }
      .p-selectcheckboxmenu-chip-remove-icon {
        --_icon: var(--p-multiselect-chip-remove-icon);
      }
      .p-selectcheckboxmenu-token-icon {
        margin-top: calc(-1 * var(--p-icon-size) / 2);
        position: absolute;
        color: var(--p-chip-remove-icon-color);
        font-size: var(--p-chip-remove-icon-size);
      }
    }
  }
  .p-selectcheckboxmenu-multiple-container {
    clear: left;
    cursor: pointer;
    list-style-type: none;
    margin: 0;
    overflow: hidden;
    min-width: 100px;
    &:empty::after {
      content: attr(data-label);
      white-space: nowrap;
      display: inline-block;
      color: var(--p-multiselect-placeholder-color);
    }
  }
  .p-selectcheckboxmenu-token {
    cursor: default;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
  }
  .p-selectcheckboxmenu-token-label {
    display: block;
  }
  .p-selectcheckboxmenu-token-icon {
    position: absolute;
    top: 50%;
    inset-inline-end: calc(var(--p-icon-size) / 2);
    cursor: pointer;
  }
  .p-input-filled .p-selectcheckboxmenu {
    background: var(--p-multiselect-filled-background);
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      background: var(--p-multiselect-filled-hover-background);
    }
    &.p-state-focus {
      background: var(--p-multiselect-filled-focus-background);
    }
    &.p-state-disabled {
      background: var(--p-multiselect-disabled-background);
    }
    .p-selectcheckboxmenu-multiple-container.p-inputfield,
    .p-selectcheckboxmenu-multiple-container.p-inputfield:hover {
      background: transparent;
    }
  }
  .p-fluid .p-selectcheckboxmenu {
    width: 100%;
  }
  .p-selectcheckboxmenu-panel {
    position: absolute;
    overflow: hidden;
    padding: 0;
    background: var(--p-multiselect-overlay-background);
    color: var(--p-multiselect-overlay-color);
    border: 1px solid var(--p-multiselect-overlay-border-color);
    box-shadow: var(--p-multiselect-overlay-shadow);
    border-radius: var(--p-multiselect-overlay-border-radius);
    .p-selectcheckboxmenu-items-wrapper {
      overflow: auto;
      position: relative;
      padding: 0;
    }
    .p-selectcheckboxmenu-item {
      cursor: pointer;
    }
    .p-selectcheckboxmenu-list {
      border: 0 none;
      margin: 0;
      list-style-type: none;
    }
    .p-selectcheckboxmenu-list-item {
      border: 0 none;
      display: flex;
      align-items: center;
      position: relative;
      text-align: start;
      white-space: nowrap;
    }
    .p-selectcheckboxmenu-table {
      border-collapse: collapse;
      width: 100%;
      th,
      td {
        border-width: 1px;
        border-style: solid;
        border-color: var(--p-datatable-body-cell-border-color);
      }
      th:first-of-type,
      td:first-of-type {
        width: 1%;
        white-space: nowrap;
      }
    }
    .p-selectcheckboxmenu-header {
      padding: var(--p-multiselect-list-header-padding);
      margin: 0;
      border: 0 none;
      border-radius: 0;
      background: transparent;
      color: var(--p-multiselect-overlay-color);
      position: relative;
      display: flex;
      align-items: center;
      .p-chkbox {
        margin-inline-end: var(--p-multiselect-option-gap);
      }
      .p-selectcheckboxmenu-filter-container {
        padding: 0;
        margin: 0;
        margin-inline-end: var(--p-multiselect-option-gap);
        flex: 1 1 0;
        .p-inputfield {
          width: 100%;
          padding-block: var(--p-multiselect-padding-y);
          padding-inline: var(--p-multiselect-padding-x);
          padding-inline-start: calc(2 * var(--p-multiselect-padding-x) + var(--p-icon-size));
        }
        .p-selectcheckboxmenu-filter-icon {
          --_icon: var(--p-multiselect-filter-icon);
          position: absolute;
          inset-inline-start: var(--p-multiselect-padding-x);
          top: 50%;
          margin-top: calc(-1 * var(--p-icon-size) / 2);
          color: var(--p-form-field-icon-color);
        }
      }
      .p-selectcheckboxmenu-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--p-button-icon-only-width);
        height: var(--p-button-icon-only-width);
        padding: 0;
        margin-inline: auto 0;
        text-align: center;
        -webkit-user-select: none;
        user-select: none;
        background: transparent;
        color: var(--p-button-text-plain-color);
        border: 0 none;
        border-radius: 50%;
        outline-color: transparent;
        transition:
          background var(--p-button-transition-duration),
          color var(--p-button-transition-duration),
          outline-color var(--p-button-transition-duration),
          box-shadow var(--p-button-transition-duration);
        &:hover,
        &.p-state-hover {
          background: var(--p-button-text-plain-hover-background);
          color: var(--p-button-text-plain-color);
        }
        &:focus-visible {
          outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
          outline-offset: var(--p-focus-ring-offset);
          box-shadow: var(--p-focus-ring-shadow);
        }
        .p-selectcheckboxmenu-close-icon {
          --_icon: var(--p-multiselect-close-icon);
        }
      }
    }
    .p-selectcheckboxmenu-items {
      padding: var(--p-multiselect-list-padding);
      &.p-selectcheckboxmenu-list {
        display: flex;
        flex-direction: column;
        gap: var(--p-multiselect-list-gap);
      }
      &.p-selectcheckboxmenu-table > thead tr th {
        background: var(--p-datatable-header-cell-background);
        border: 1px solid var(--p-datatable-header-cell-border-color);
        color: var(--p-datatable-header-cell-color);
        font-weight: var(--p-datatable-column-title-font-weight);
        padding: var(--p-datatable-header-cell-padding);
      }
      .p-selectcheckboxmenu-item {
        padding: var(--p-multiselect-option-padding);
        margin: 0;
        outline: 0 none;
        background: transparent;
        color: var(--p-multiselect-option-color);
        font-size: var(--p-multiselect-option-font-size);
        font-weight: var(--p-multiselect-option-font-weight);
        border-radius: var(--p-multiselect-option-border-radius);
        transition:
          background var(--p-list-option-transition-duration),
          color var(--p-list-option-transition-duration),
          border-color var(--p-list-option-transition-duration),
          box-shadow var(--p-list-option-transition-duration),
          outline-color var(--p-list-option-transition-duration);
        &.p-state-hover {
          background: var(--p-multiselect-option-focus-background);
          color: var(--p-multiselect-option-focus-color);
        }
        &.p-state-highlight {
          background: var(--p-multiselect-option-selected-background);
          color: var(--p-multiselect-option-selected-color);
          font-weight: var(--p-multiselect-option-selected-font-weight);
        }
        &.p-state-highlight.p-state-hover {
          background: var(--p-multiselect-option-selected-focus-background);
          color: var(--p-multiselect-option-selected-focus-color);
        }
        .p-chkbox {
          position: static;
          margin-inline-end: var(--p-multiselect-option-gap);
        }
        > label {
          display: inline;
          vertical-align: middle;
        }
        &.p-selectcheckboxmenu-row {
          background: var(--p-datatable-row-background);
          color: var(--p-datatable-row-color);
          border: 1px solid var(--p-datatable-body-cell-border-color);
          border-radius: 0;
        }
        &.p-selectcheckboxmenu-row > td {
          padding: var(--p-datatable-body-cell-padding);
          border-color: var(--p-datatable-body-cell-border-color);
        }
        &.p-selectcheckboxmenu-row:first-child {
          border-top-color: transparent;
        }
      }
      .p-selectcheckboxmenu-item-group {
        margin: 0;
        padding: var(--p-multiselect-option-group-padding);
        background: var(--p-multiselect-option-group-background);
        color: var(--p-multiselect-option-group-color);
        font-weight: var(--p-multiselect-option-group-font-weight);
        font-size: var(--p-multiselect-option-group-font-size);
      }
    }
  }
  .p-selectcheckboxmenu-header {
    .p-chkbox {
      cursor: pointer;
    }
    .p-selectcheckboxmenu-filter-container {
      position: relative;
    }
  }
  .p-selectcheckboxmenu-footer {
    border: 0 none;
    margin: 0;
    padding: var(--p-multiselect-list-header-padding);
  }
}

/* packages/components/src/forms/selectmanycheckbox.css */
@layer primefaces.components {
  .p-selectmanycheckbox {
    &.layout-line-direction.ui-grid-responsive > div,
    &.layout-line-direction.ui-grid-responsive > div label {
      display: inline;
    }
    &.ui-grid-responsive > div > div {
      display: inline-flex;
      align-items: center;
    }
    &.ui-grid-responsive > div label {
      flex-grow: 1;
    }
    &.ui-grid-responsive .ui-g > div {
      padding: var(--p-selectmanycheckbox-cell-padding);
    }
    .ui-g-1,
    .ui-g-2,
    .ui-g-3,
    .ui-g-4,
    .ui-g-5,
    .ui-g-6,
    .ui-g-7,
    .ui-g-8,
    .ui-g-9,
    .ui-g-10,
    .ui-g-11,
    .ui-g-12 {
      float: none;
    }
    label {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer;
      margin: 0;
      padding-inline-start: var(--p-checkbox-label-gap);
      margin-inline-end: var(--p-selectmanycheckbox-gap);
      outline: 0 none;
      z-index: 1;
      &.p-state-disabled {
        cursor: default;
      }
    }
    .p-chkbox .p-chkbox-box {
      display: block;
    }
    .p-selectmanycheckbox-item-group {
      color: var(--p-selectmanycheckbox-group-color);
      font-weight: var(--p-selectmanycheckbox-group-font-weight);
    }
    .p-selectmanycheckbox-responsive-group {
      padding: var(--p-selectmanycheckbox-group-padding);
    }
  }
}

/* packages/components/src/forms/selectonebutton.css */
@layer primefaces.components {
  .p-selectonebutton,
  .p-selectmanybutton {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    vertical-align: bottom;
    -webkit-user-select: none;
    user-select: none;
    padding: 0;
    border-radius: var(--p-selectbutton-border-radius);
    outline-color: transparent;
    &.p-state-error {
      outline: 1px solid var(--p-selectbutton-invalid-border-color);
      outline-offset: 0;
    }
    .p-button.p-state-focus {
      position: relative;
      z-index: 1;
    }
  }
  .p-selectonebutton > .p-button,
  .p-selectmanybutton > .p-button,
  .p-button.p-selectbooleanbutton {
    --_bg: var(--p-togglebutton-background);
    --_hover-bg: var(--p-togglebutton-hover-background);
    --_active-bg: var(--p-togglebutton-checked-background);
    --_border: var(--p-togglebutton-border-color);
    --_hover-border: var(--p-togglebutton-border-color);
    --_active-border: var(--p-togglebutton-checked-border-color);
    --_color: var(--p-togglebutton-color);
    --_hover-color: var(--p-togglebutton-hover-color);
    --_active-color: var(--p-togglebutton-checked-color);
    --_focus-ring-color: var(--p-togglebutton-focus-ring-color);
    --_focus-ring-shadow: var(--p-togglebutton-focus-ring-shadow);
    --_label-shadow: var(--p-button-outlined-label-shadow);
    position: relative;
    gap: var(--p-togglebutton-gap);
    padding: var(--p-togglebutton-padding);
    font-size: var(--p-togglebutton-font-size);
    font-weight: var(--p-togglebutton-font-weight);
    background: var(--p-togglebutton-background);
    color: var(--p-togglebutton-color);
    border: 1px solid var(--p-togglebutton-border-color);
    border-radius: var(--p-togglebutton-border-radius);
    outline-color: transparent;
    transition:
      background var(--p-togglebutton-transition-duration),
      color var(--p-togglebutton-transition-duration),
      border-color var(--p-togglebutton-transition-duration),
      outline-color var(--p-togglebutton-transition-duration),
      box-shadow var(--p-togglebutton-transition-duration);
    &::before {
      content: "";
      position: absolute;
      inset: var(--p-togglebutton-padding);
      background: transparent;
      border-radius: var(--p-togglebutton-content-border-radius);
      transition: background var(--p-togglebutton-transition-duration), box-shadow var(--p-togglebutton-transition-duration);
    }
    &.p-state-hover:not(.p-state-active, .p-state-disabled),
    &:not(.p-state-active, .p-state-disabled):hover {
      background: var(--p-togglebutton-hover-background);
      border-color: var(--p-togglebutton-border-color);
      color: var(--p-togglebutton-hover-color);
    }
    &.p-state-active,
    &.p-state-active:not(.p-state-disabled):hover {
      background: var(--p-togglebutton-checked-background);
      border-color: var(--p-togglebutton-checked-border-color);
      color: var(--p-togglebutton-checked-color);
    }
    &.p-state-active::before {
      background: var(--p-togglebutton-content-checked-background);
      box-shadow: var(--p-togglebutton-content-checked-shadow);
    }
    &.p-state-focus,
    &:focus-visible {
      outline: var(--p-togglebutton-focus-ring-width) var(--p-togglebutton-focus-ring-style) var(--p-togglebutton-focus-ring-color);
      outline-offset: var(--p-togglebutton-focus-ring-offset);
      box-shadow: var(--p-togglebutton-focus-ring-shadow);
    }
  }
  .p-selectonebutton > .p-button > .p-button-text,
  .p-selectmanybutton > .p-button > .p-button-text,
  .p-button.p-selectbooleanbutton > .p-button-text,
  .p-selectonebutton > .p-button > .p-button-icon-left,
  .p-selectmanybutton > .p-button > .p-button-icon-left,
  .p-button.p-selectbooleanbutton > .p-button-icon-left {
    position: relative;
    padding: var(--p-togglebutton-content-padding);
    font-weight: var(--p-togglebutton-font-weight);
    cursor: inherit;
  }
  .p-selectonebutton > .p-button,
  .p-selectmanybutton > .p-button,
  .p-button.p-selectbooleanbutton {
    > .p-button-icon-left {
      padding-inline-end: 0;
      color: var(--p-togglebutton-icon-color);
    }
    > .p-button-icon-left + .p-button-text {
      padding-inline-start: 0;
    }
    &.p-button-icon-only {
      width: auto;
      > .p-button-icon-left {
        padding: var(--p-togglebutton-content-padding);
      }
      > .p-button-text {
        padding: 0;
      }
    }
    &:not(.p-state-active, .p-state-disabled):hover > .p-button-icon-left {
      color: var(--p-togglebutton-icon-hover-color);
    }
    &.p-state-active > .p-button-icon-left {
      color: var(--p-togglebutton-icon-checked-color);
    }
  }
  .p-button.p-selectbooleanbutton.p-state-error,
  .p-button.p-selectbooleanbutton.p-state-error:is(:hover, .p-state-hover),
  .p-button.p-selectbooleanbutton.p-state-error.p-state-active:hover {
    border-color: var(--p-togglebutton-invalid-border-color);
  }
  .p-selectonebutton > .p-button,
  .p-selectmanybutton > .p-button,
  .p-button.p-selectbooleanbutton {
    &.p-state-disabled {
      opacity: 1;
      cursor: default;
      background: var(--p-togglebutton-disabled-background);
      border-color: var(--p-togglebutton-disabled-border-color);
      color: var(--p-togglebutton-disabled-color);
    }
    &.p-state-disabled::before {
      background: transparent;
      box-shadow: none;
    }
  }
  .p-selectonebutton > .p-button.p-state-disabled > .p-button-icon-left,
  .p-selectmanybutton > .p-button.p-state-disabled > .p-button-icon-left,
  .p-button.p-selectbooleanbutton.p-state-disabled > .p-button-icon-left {
    color: var(--p-togglebutton-icon-disabled-color);
  }
  .p-selectonebutton > .p-button,
  .p-selectmanybutton > .p-button,
  .p-button.p-selectbooleanbutton {
    &.p-button-sm {
      padding: var(--p-togglebutton-sm-padding);
      font-size: var(--p-togglebutton-sm-font-size);
      &::before {
        inset: var(--p-togglebutton-sm-padding);
      }
      > .p-button-text {
        padding: var(--p-togglebutton-content-sm-padding);
      }
    }
    &.p-button-lg {
      padding: var(--p-togglebutton-lg-padding);
      font-size: var(--p-togglebutton-lg-font-size);
      &::before {
        inset: var(--p-togglebutton-lg-padding);
      }
      > .p-button-text {
        padding: var(--p-togglebutton-content-lg-padding);
      }
    }
  }
  .p-selectonebutton,
  .p-selectmanybutton {
    > .p-button {
      margin: 0;
      border-radius: 0;
      border-width: 1px;
      border-inline-start-width: 0;
      &:first-child {
        border-inline-start-width: 1px;
        border-start-start-radius: var(--p-selectbutton-border-radius);
        border-end-start-radius: var(--p-selectbutton-border-radius);
      }
      &:last-child {
        border-start-end-radius: var(--p-selectbutton-border-radius);
        border-end-end-radius: var(--p-selectbutton-border-radius);
      }
    }
  }
  .p-fluid .p-selectonebutton,
  .p-fluid .p-selectmanybutton {
    display: flex;
    width: 100%;
    > .p-button {
      flex: 1 1 0;
      width: auto;
    }
  }
  @media (max-width: 640px) {
    .p-fluid .p-selectonebutton,
    .p-fluid .p-selectmanybutton {
      flex-direction: column;
      > .p-button {
        flex: 0 0 auto;
        width: 100%;
        border-radius: 0;
        border-inline-start-width: 1px;
        border-block-start-width: 0;
        &:first-child {
          border-block-start-width: 1px;
          border-start-start-radius: var(--p-selectbutton-border-radius);
          border-start-end-radius: var(--p-selectbutton-border-radius);
        }
        &:last-child {
          border-end-start-radius: var(--p-selectbutton-border-radius);
          border-end-end-radius: var(--p-selectbutton-border-radius);
        }
      }
    }
  }
}

/* packages/components/src/forms/selectonelistbox.css */
@layer primefaces.components {
  .p-selectonelistbox,
  .p-selectmanymenu {
    padding: 0;
    width: auto;
    min-width: 12rem;
    background: var(--p-listbox-background);
    color: var(--p-listbox-color);
    border: 1px solid var(--p-listbox-border-color);
    border-radius: var(--p-listbox-border-radius);
    box-shadow: var(--p-listbox-shadow);
    transition:
      background var(--p-listbox-transition-duration),
      color var(--p-listbox-transition-duration),
      border-color var(--p-listbox-transition-duration),
      box-shadow var(--p-listbox-transition-duration),
      outline-color var(--p-listbox-transition-duration);
    &.p-state-error,
    &.p-state-error:is(:hover, :focus, .p-state-hover, .p-state-focus) {
      border-color: var(--p-listbox-invalid-border-color);
    }
    &.p-state-disabled {
      opacity: 1;
      background: var(--p-listbox-disabled-background);
      color: var(--p-listbox-disabled-color);
      .p-selectlistbox-listcontainer {
        overflow: hidden;
      }
      .p-selectlistbox-item {
        cursor: default;
        color: var(--p-listbox-disabled-color);
      }
    }
    .p-selectlistbox-filter-container {
      display: flex;
      align-items: center;
      padding: var(--p-listbox-list-header-padding);
      margin: 0;
      border-bottom: 0 none;
      background: transparent;
      color: var(--p-listbox-color);
      border-start-start-radius: var(--p-listbox-border-radius);
      border-start-end-radius: var(--p-listbox-border-radius);
      .p-selectlistbox-filter.p-inputfield {
        padding-block: var(--p-form-field-padding-y);
        padding-inline: var(--p-form-field-padding-x);
        padding-inline-start: calc(2 * var(--p-form-field-padding-x) + var(--p-icon-size));
      }
      .p-selectlistbox-filter-icon {
        --_icon: var(--p-listbox-filter-icon);
        margin: 0;
        margin-inline-start: var(--p-form-field-padding-x);
        color: var(--p-form-field-icon-color);
      }
    }
    .p-selectlistbox-listcontainer {
      overflow: auto;
      padding: var(--p-listbox-list-padding);
      line-height: var(--p-typography-line-height);
      border: 0 none;
      ul.p-selectlistbox-list {
        display: flex;
        flex-direction: column;
        gap: var(--p-listbox-list-gap);
      }
    }
    .p-selectlistbox-list {
      list-style-type: none;
      margin: 0;
      padding: 0;
    }
    table.p-selectlistbox-list {
      border-collapse: collapse;
      width: 100%;
    }
    .p-selectlistbox-item {
      cursor: pointer;
    }
    .p-selectlistbox-listcontainer .p-selectlistbox-list .p-selectlistbox-item {
      border: 0 none;
      margin: 0;
      padding: var(--p-listbox-option-padding);
      background: transparent;
      color: var(--p-listbox-option-color);
      font-size: var(--p-listbox-option-font-size);
      font-weight: var(--p-listbox-option-font-weight);
      border-radius: var(--p-listbox-option-border-radius);
      transition:
        background var(--p-list-option-transition-duration),
        color var(--p-list-option-transition-duration),
        border-color var(--p-list-option-transition-duration),
        box-shadow var(--p-list-option-transition-duration),
        outline-color var(--p-list-option-transition-duration);
      &.p-state-hover {
        background: var(--p-listbox-option-focus-background);
        color: var(--p-listbox-option-focus-color);
      }
      &.p-state-highlight {
        background: var(--p-listbox-option-selected-background);
        color: var(--p-listbox-option-selected-color);
        font-weight: var(--p-listbox-option-selected-font-weight);
      }
      &.p-state-highlight.p-state-hover {
        background: var(--p-listbox-option-selected-focus-background);
        color: var(--p-listbox-option-selected-focus-color);
      }
      .p-chkbox {
        margin-inline-end: var(--p-multiselect-option-gap);
        vertical-align: middle;
      }
      > td {
        padding: var(--p-datatable-body-cell-padding);
      }
    }
    &.p-listbox-striped .p-selectlistbox-listcontainer .p-selectlistbox-list .p-selectlistbox-item:nth-child(even of .p-selectlistbox-item):not(.p-state-hover, .p-state-highlight, .p-listbox-outline) {
      background: var(--p-listbox-option-striped-background);
    }
    &.p-listbox-checkmark .p-selectlistbox-listcontainer .p-selectlistbox-list li.p-selectlistbox-item {
      display: flex;
      align-items: center;
      &::before {
        content: " ";
        flex-shrink: 0;
        font-size: var(--p-icon-size);
        line-height: 1;
        margin-inline-start: var(--p-listbox-checkmark-gutter-start);
        margin-inline-end: var(--p-listbox-checkmark-gutter-end);
        color: var(--p-listbox-checkmark-color);
        background: transparent;
        forced-color-adjust: none;
        mask: var(--p-listbox-checkmark-icon) center / contain no-repeat;
      }
      &.p-state-highlight::before {
        background: currentColor;
      }
    }
    .p-selectlistbox-listcontainer .p-selectlistbox-list .p-listbox-outline {
      outline: 0 none;
      background: var(--p-listbox-option-focus-background);
      color: var(--p-listbox-option-focus-color);
      &.p-state-highlight {
        background: var(--p-listbox-option-selected-focus-background);
        color: var(--p-listbox-option-selected-focus-color);
      }
    }
    .p-selectlistbox-listcontainer .p-selectlistbox-list .p-selectlistbox-item:focus-visible {
      outline: 0 none;
      background: var(--p-listbox-option-focus-background);
      color: var(--p-listbox-option-focus-color);
      &.p-state-highlight {
        background: var(--p-listbox-option-selected-focus-background);
        color: var(--p-listbox-option-selected-focus-color);
      }
    }
  }
  .p-selectmanymenu .p-selectlistbox-chkbox {
    width: var(--p-checkbox-width);
  }
  .p-selectlistbox-filter.p-inputfield {
    width: 100%;
    box-shadow: none;
  }
  .p-selectlistbox-filter-container {
    position: relative;
    .p-selectlistbox-filter-icon {
      position: absolute;
    }
  }
  .p-listbox-outline {
    outline: 0 none;
    z-index: 1;
  }
  .p-input-filled .p-selectonelistbox.p-inputfield,
  .p-input-filled .p-selectmanymenu.p-inputfield,
  .p-input-filled .p-selectonelistbox.p-inputfield:hover,
  .p-input-filled .p-selectmanymenu.p-inputfield:hover {
    background: var(--p-listbox-background);
  }
  .p-fluid .p-selectonelistbox,
  .p-fluid .p-selectmanymenu {
    width: 100%;
  }
}

/* packages/components/src/forms/selectonemenu.css */
@layer primefaces.components {
  .p-selectonemenu {
    display: inline-block;
    width: auto;
    cursor: pointer;
    vertical-align: middle;
    border: 1px solid var(--p-select-border-color);
    position: relative;
    padding: 0;
    background: var(--p-select-background);
    border-radius: var(--p-select-border-radius);
    box-shadow: var(--p-select-shadow);
    outline-color: transparent;
    transition:
      background var(--p-select-transition-duration),
      color var(--p-select-transition-duration),
      border-color var(--p-select-transition-duration),
      outline-color var(--p-select-transition-duration),
      box-shadow var(--p-select-transition-duration);
    .p-selectonemenu-label {
      display: block;
      width: 100%;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      text-align: start;
    }
    .p-selectonemenu-label.p-inputfield {
      background: transparent;
      border: 0 none;
      border-radius: 0;
      box-shadow: none;
      outline: 0 none;
      color: var(--p-select-color);
      font-size: var(--p-select-font-size);
      font-weight: var(--p-select-font-weight);
      padding-block: var(--p-select-padding-y);
      padding-inline: var(--p-select-padding-x);
      padding-inline-end: var(--p-select-dropdown-width);
    }
    .p-selectonemenu-label.p-selectonemenu-label-placeholder {
      color: var(--p-select-placeholder-color);
    }
    &.p-state-error .p-selectonemenu-label.p-selectonemenu-label-placeholder {
      color: var(--p-select-invalid-placeholder-color);
    }
    &.p-state-disabled .p-selectonemenu-trigger,
    &.p-state-disabled .p-selectonemenu-label {
      cursor: default;
    }
    label.p-selectonemenu-label {
      cursor: pointer;
    }
    input.p-selectonemenu-label {
      cursor: text;
    }
    .p-selectonemenu-trigger {
      border: 0 none;
      cursor: pointer;
      height: 100%;
      position: absolute;
      top: 0;
      inset-inline-end: 0;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      width: var(--p-select-dropdown-width);
      background: transparent;
      color: var(--p-select-dropdown-color);
      border-start-end-radius: var(--p-select-border-radius);
      border-end-end-radius: var(--p-select-border-radius);
      .p-selectonemenu-dropdown-icon {
        --_icon: var(--p-select-dropdown-icon);
        color: var(--p-select-dropdown-color);
      }
    }
    .p-icon-loading {
      position: absolute;
      top: 50%;
      inset-inline-end: 100%;
      margin-top: calc(-1 * var(--p-icon-size) / 2);
      margin-inline: 0;
      color: var(--p-select-dropdown-color);
    }
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      border-color: var(--p-select-hover-border-color);
    }
    &.p-state-focus,
    &:has(> .p-selectonemenu-label:focus-visible) {
      border-color: var(--p-select-focus-border-color);
      outline: var(--p-select-focus-ring-width) var(--p-select-focus-ring-style) var(--p-select-focus-ring-color);
      outline-offset: var(--p-select-focus-ring-offset);
      box-shadow: var(--p-select-focus-ring-shadow);
    }
    &.p-state-error,
    &.p-state-error:is(:hover, .p-state-focus, :focus-within) {
      border-color: var(--p-select-invalid-border-color);
    }
    &.p-state-disabled {
      opacity: 1;
      background: var(--p-select-disabled-background);
      .p-selectonemenu-label.p-inputfield {
        color: var(--p-select-disabled-color);
      }
    }
    &.p-selectonemenu-sm {
      --p-select-font-size: var(--p-select-sm-font-size);
      --p-select-padding-x: var(--p-select-sm-padding-x);
      --p-select-padding-y: var(--p-select-sm-padding-y);
    }
    &.p-selectonemenu-lg {
      --p-select-font-size: var(--p-select-lg-font-size);
      --p-select-padding-x: var(--p-select-lg-padding-x);
      --p-select-padding-y: var(--p-select-lg-padding-y);
    }
    &.p-selectonemenu-sm .p-selectonemenu-trigger .p-selectonemenu-dropdown-icon,
    &.p-selectonemenu-lg .p-selectonemenu-trigger .p-selectonemenu-dropdown-icon {
      font-size: var(--p-select-font-size);
    }
  }
  .p-selectonemenu-rtl {
    direction: rtl;
  }
  .p-input-filled .p-selectonemenu {
    background: var(--p-select-filled-background);
    &.p-state-hover,
    &:not(.p-state-disabled):hover {
      background: var(--p-select-filled-hover-background);
    }
    &.p-state-focus,
    &:has(> .p-selectonemenu-label:focus-visible) {
      background: var(--p-select-filled-focus-background);
    }
    &.p-state-disabled {
      background: var(--p-select-disabled-background);
    }
    .p-selectonemenu-label.p-inputfield,
    .p-selectonemenu-label.p-inputfield:hover,
    .p-selectonemenu-label.p-inputfield:focus {
      background: transparent;
    }
  }
  .p-fluid .p-selectonemenu {
    width: 100%;
    .p-selectonemenu-label.p-inputfield {
      width: calc(100% - var(--p-select-dropdown-width));
      padding-inline: var(--p-select-padding-x);
    }
  }
  .p-selectonemenu-panel {
    position: absolute;
    height: auto;
    background: var(--p-select-overlay-background);
    color: var(--p-select-overlay-color);
    border: 1px solid var(--p-select-overlay-border-color);
    box-shadow: var(--p-select-overlay-shadow);
    border-radius: var(--p-select-overlay-border-radius);
    &.p-selectonemenu-panel-rtl {
      direction: rtl;
    }
    .p-selectonemenu-items-wrapper {
      overflow: auto;
    }
    .p-selectonemenu-filter-container {
      position: relative;
      width: 100%;
      display: flex;
      align-items: center;
      padding: var(--p-select-list-header-padding);
      margin: 0;
      border-bottom: 0 none;
      background: transparent;
      color: var(--p-select-overlay-color);
      .p-selectonemenu-filter.p-inputfield {
        width: 100%;
        padding-block: var(--p-select-padding-y);
        padding-inline: var(--p-select-padding-x);
        padding-inline-start: calc(2 * var(--p-select-padding-x) + var(--p-icon-size));
      }
      .p-selectonemenu-filter-icon {
        --_icon: var(--p-select-filter-icon);
        position: absolute;
        margin: 0;
        margin-inline-start: var(--p-select-padding-x);
        color: var(--p-form-field-icon-color);
      }
    }
    .p-selectonemenu-item {
      cursor: pointer;
    }
    .p-selectonemenu-list {
      display: flex;
      flex-direction: column;
      gap: var(--p-select-list-gap);
      border: 0 none;
      margin: 0;
      padding: 0;
      list-style-type: none;
    }
    .p-selectonemenu-list-item {
      border: 0 none;
      text-align: start;
      white-space: nowrap;
    }
    .p-selectonemenu-table {
      border-collapse: collapse;
      width: 100%;
      td {
        border-color: inherit;
      }
      th,
      td {
        border-width: 1px;
        border-style: solid;
      }
    }
    .p-selectonemenu-items {
      padding: var(--p-select-list-padding);
      &.p-selectonemenu-table > thead tr th {
        background: var(--p-datatable-header-cell-background);
        border: 1px solid var(--p-datatable-header-cell-border-color);
        color: var(--p-datatable-header-cell-color);
        font-weight: var(--p-datatable-column-title-font-weight);
        padding: var(--p-datatable-header-cell-padding);
      }
    }
    .p-selectonemenu-items .p-selectonemenu-item {
      margin: 0;
      padding: var(--p-select-option-padding);
      background: transparent;
      color: var(--p-select-option-color);
      font-size: var(--p-select-option-font-size);
      font-weight: var(--p-select-option-font-weight);
      outline: 0 none;
      border-radius: var(--p-select-option-border-radius);
      transition:
        background var(--p-list-option-transition-duration),
        color var(--p-list-option-transition-duration),
        border-color var(--p-list-option-transition-duration),
        box-shadow var(--p-list-option-transition-duration),
        outline-color var(--p-list-option-transition-duration);
      &.p-selectonemenu-row {
        background: var(--p-datatable-row-background);
        color: var(--p-datatable-row-color);
        border: 1px solid var(--p-datatable-body-cell-border-color);
        border-radius: 0;
      }
      &.p-selectonemenu-row > td {
        padding: var(--p-datatable-body-cell-padding);
        border-color: var(--p-datatable-body-cell-border-color);
      }
      &.p-selectonemenu-row:first-child {
        border-top-color: transparent;
      }
      &.p-state-hover,
      &.p-state-focus {
        background: var(--p-select-option-focus-background);
        color: var(--p-select-option-focus-color);
      }
      &.p-state-highlight {
        background: var(--p-select-option-selected-background);
        color: var(--p-select-option-selected-color);
        font-weight: var(--p-select-option-selected-font-weight);
        overflow: auto;
      }
      &.p-state-highlight.p-state-hover,
      &.p-state-highlight.p-state-focus {
        background: var(--p-select-option-selected-focus-background);
        color: var(--p-select-option-selected-focus-color);
      }
    }
    .p-selectonemenu-items .p-selectonemenu-item-group {
      margin: 0;
      padding: var(--p-select-option-group-padding);
      background: var(--p-select-option-group-background);
      color: var(--p-select-option-group-color);
      font-weight: var(--p-select-option-group-font-weight);
      font-size: var(--p-select-option-group-font-size);
    }
    &.p-select-checkmark .p-selectonemenu-items li.p-selectonemenu-item {
      display: flex;
      align-items: center;
      &::before {
        content: " ";
        flex-shrink: 0;
        font-size: var(--p-icon-size);
        line-height: 1;
        margin-inline-start: var(--p-select-checkmark-gutter-start);
        margin-inline-end: var(--p-select-checkmark-gutter-end);
        color: var(--p-select-checkmark-color);
        background: transparent;
        forced-color-adjust: none;
        mask: var(--p-select-checkmark-icon) center / contain no-repeat;
      }
      &.p-state-highlight::before {
        background: currentColor;
      }
    }
  }
  .p-selectonemenu-footer {
    border: 0 none;
    margin: 0;
    padding: var(--p-select-list-header-padding);
  }
}

/* packages/components/src/forms/selectoneradio.css */
@layer primefaces.components {
  .p-selectoneradio {
    label {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer;
      margin: 0;
      margin-inline-end: var(--p-selectoneradio-gap);
      padding: 0;
      padding-inline-start: var(--p-radiobutton-label-gap);
    }
    label.p-state-disabled,
    &.p-state-readonly label {
      cursor: default;
    }
    &.ui-grid-responsive {
      label {
        display: inline;
      }
      > div > div {
        display: inline-flex;
        align-items: center;
      }
    }
    &.ui-grid-responsive .ui-g > div {
      padding: var(--p-selectoneradio-cell-padding);
    }
    &.layout-line-direction {
      > div,
      > div label {
        display: inline;
      }
    }
  }
  .p-selectoneradio.p-state-readonly .p-radiobutton .p-radiobutton-box {
    &:not(.p-state-error):hover {
      border-color: var(--p-radiobutton-border-color);
    }
    &.p-state-active:not(.p-state-error):hover {
      border-color: var(--p-radiobutton-checked-border-color);
    }
    &.p-state-active:hover {
      background: var(--p-radiobutton-checked-background);
      .p-radiobutton-icon {
        background: var(--p-radiobutton-icon-checked-color);
      }
    }
  }
}

/* packages/components/src/sidebar/sidebar.css */
@layer primefaces.components {
  .p-sidebar {
    position: fixed;
    visibility: hidden;
    transition: transform var(--p-sidebar-transition-duration) var(--p-transition-easing), visibility var(--p-sidebar-transition-duration);
    display: flow-root;
    overflow-y: auto;
    background: var(--p-drawer-background);
    color: var(--p-drawer-color);
    padding: var(--p-drawer-header-padding);
    border: 0 solid var(--p-drawer-border-color);
    border-radius: 0;
    box-shadow: none;
    &.p-sidebar-left {
      border-right-width: 1px;
    }
    &.p-sidebar-right {
      border-left-width: 1px;
    }
    &.p-sidebar-top {
      border-block-end-width: 1px;
    }
    &.p-sidebar-bottom {
      border-block-start-width: 1px;
    }
    &.p-sidebar-full {
      border-width: 1px;
    }
    &.p-sidebar-active {
      box-shadow: var(--p-drawer-shadow);
    }
    .p-sidebar-content {
      background: transparent;
      color: inherit;
      border: 0 none;
    }
    .p-sidebar-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: var(--p-sidebar-close-button-size);
      height: var(--p-sidebar-close-button-size);
      float: inline-end;
      padding: 0;
      border: 0 none;
      border-radius: 50%;
      background: transparent;
      color: var(--p-sidebar-close-button-color);
      text-decoration: none;
      -webkit-user-select: none;
      user-select: none;
      outline-color: transparent;
      transition:
        background var(--p-sidebar-close-button-transition-duration),
        color var(--p-sidebar-close-button-transition-duration),
        outline-color var(--p-sidebar-close-button-transition-duration),
        box-shadow var(--p-sidebar-close-button-transition-duration);
      &:hover {
        background: var(--p-sidebar-close-button-hover-background);
        color: var(--p-sidebar-close-button-color);
      }
      &:active {
        background: var(--p-sidebar-close-button-active-background);
      }
      &:focus-visible {
        outline: var(--p-sidebar-close-button-focus-ring-width) var(--p-sidebar-close-button-focus-ring-style) var(--p-sidebar-close-button-focus-ring-color);
        outline-offset: var(--p-sidebar-close-button-focus-ring-offset);
        box-shadow: var(--p-sidebar-close-button-focus-ring-shadow);
      }
      .p-sidebar-close-icon {
        --_icon: var(--p-sidebar-close-icon);
        color: inherit;
      }
    }
  }
  .p-sidebar-left {
    top: 0;
    left: 0;
    width: 20em;
    height: 100%;
    transform: translateX(-100%);
  }
  .p-sidebar-right {
    top: 0;
    right: 0;
    width: 20em;
    height: 100%;
    transform: translateX(100%);
  }
  .p-sidebar-top {
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    transform: translateY(-100%);
  }
  .p-sidebar-bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    transform: translateY(100%);
  }
  .p-sidebar-full {
    width: 100%;
    height: 100%;
    left: 0;
    transition: transform 0s;
  }
  .p-sidebar-left.p-sidebar-active,
  .p-sidebar-right.p-sidebar-active {
    visibility: visible;
    transform: translateX(0);
  }
  .p-sidebar-left.p-sidebar-sm,
  .p-sidebar-right.p-sidebar-sm {
    width: 20em;
  }
  .p-sidebar-left.p-sidebar-md,
  .p-sidebar-right.p-sidebar-md {
    width: 40em;
  }
  .p-sidebar-left.p-sidebar-lg,
  .p-sidebar-right.p-sidebar-lg {
    width: 60em;
  }
  .p-sidebar-top.p-sidebar-active,
  .p-sidebar-bottom.p-sidebar-active {
    visibility: visible;
    transform: translateY(0);
  }
  .p-sidebar-top.p-sidebar-sm,
  .p-sidebar-bottom.p-sidebar-sm {
    height: 10em;
  }
  .p-sidebar-top.p-sidebar-md,
  .p-sidebar-bottom.p-sidebar-md {
    height: 20em;
  }
  .p-sidebar-top.p-sidebar-lg,
  .p-sidebar-bottom.p-sidebar-lg {
    height: 30em;
  }
  @media screen and (max-width: 64em) {
    .p-sidebar-left.p-sidebar-lg,
    .p-sidebar-left.p-sidebar-md,
    .p-sidebar-right.p-sidebar-lg,
    .p-sidebar-right.p-sidebar-md {
      width: 20em;
    }
  }
}

/* packages/components/src/skeleton/skeleton.css */
@layer primefaces.components {
  .p-skeleton {
    position: relative;
    overflow: hidden;
    background-color: var(--p-skeleton-background);
    border-radius: var(--p-skeleton-border-radius);
    &:after {
      content: "";
      animation: p-skeleton-animation 1.2s infinite;
      height: 100%;
      left: 0;
      position: absolute;
      right: 0;
      top: 0;
      transform: translateX(-100%);
      z-index: 1;
      background:
        linear-gradient(
          90deg,
          transparent,
          var(--p-skeleton-animation-background),
          transparent);
    }
    &:dir(rtl):after {
      animation-name: p-skeleton-animation-rtl;
    }
    &.p-skeleton-animation-none:after {
      animation: none;
    }
    &.p-skeleton-circle {
      border-radius: 50%;
    }
  }
  @keyframes p-skeleton-animation {
    from {
      transform: translateX(-100%);
    }
    to {
      transform: translateX(100%);
    }
  }
  @keyframes p-skeleton-animation-rtl {
    from {
      transform: translateX(100%);
    }
    to {
      transform: translateX(-100%);
    }
  }
}

/* packages/components/src/menu/slidemenu.css */
@layer primefaces.components {
  .p-slidemenu {
    width: 12.5rem;
    .p-slidemenu-wrapper {
      position: relative;
    }
    .p-slidemenu-content {
      overflow-x: hidden;
      overflow-y: auto;
      position: relative;
    }
    .p-menu-list {
      position: absolute;
      top: 0;
    }
    .p-menu-parent {
      position: static;
    }
    .p-menu-child {
      box-shadow: none;
      border: 0 none;
    }
  }
  .p-slidemenu-backward {
    position: absolute;
    cursor: pointer;
  }
  .p-menu.p-slidemenu {
    --_bg: var(--p-slidemenu-background);
    --_border-color: var(--p-slidemenu-border-color);
    --_border-radius: var(--p-slidemenu-border-radius);
    --_color: var(--p-slidemenu-color);
    --_shadow: var(--p-slidemenu-shadow);
    --_list-padding: var(--p-slidemenu-list-padding);
    --_list-gap: var(--p-slidemenu-list-gap);
    --_transition-duration: var(--p-slidemenu-transition-duration);
    --_item-border-radius: var(--p-slidemenu-item-border-radius);
    --_item-padding: var(--p-slidemenu-item-padding);
    --_item-gap: var(--p-slidemenu-item-gap);
    --_item-color: var(--p-slidemenu-item-color);
    --_item-focus-background: var(--p-slidemenu-item-focus-background);
    --_item-focus-color: var(--p-slidemenu-item-focus-color);
    --_item-active-background: var(--p-slidemenu-item-active-background);
    --_item-active-color: var(--p-slidemenu-item-active-color);
    --_item-icon-color: var(--p-slidemenu-item-icon-color);
    --_item-icon-focus-color: var(--p-slidemenu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-slidemenu-item-icon-active-color);
    --_item-icon-size: var(--p-slidemenu-item-icon-size);
    --_item-label-font-size: var(--p-slidemenu-item-label-font-size);
    --_item-label-font-weight: var(--p-slidemenu-item-label-font-weight);
    --_submenu-icon-color: var(--p-slidemenu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-slidemenu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-slidemenu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-slidemenu-item-icon-active-color);
    --_submenu-label-background: var(--p-slidemenu-back-background);
    --_submenu-label-color: var(--p-slidemenu-back-color);
    --_submenu-label-font-weight: var(--p-slidemenu-back-font-weight);
    --_submenu-background: var(--p-slidemenu-background);
    --_submenu-border-color: var(--p-slidemenu-border-color);
    --_submenu-border-radius: var(--p-slidemenu-border-radius);
    --_submenu-padding: var(--p-slidemenu-list-padding);
    --_submenu-shadow: var(--p-slidemenu-shadow);
    .p-slidemenu-backward {
      padding: 0;
      color: var(--_submenu-label-color);
      width: 100%;
      border: 0 none;
      background: var(--_submenu-label-background);
      margin-bottom: 0;
      border-radius: 0;
      .p-menuitem-link {
        color: var(--_submenu-label-color);
        padding: var(--_item-padding);
        width: 100%;
        border: 0 none;
        float: none;
        border-radius: var(--_item-border-radius);
        transition: background var(--_transition-duration), color var(--_transition-duration);
        .p-menuitem-text {
          color: var(--_submenu-label-color);
          font-weight: var(--_submenu-label-font-weight);
        }
        .p-slidemenu-back-icon {
          --_icon: var(--p-slidemenu-back-icon);
          position: relative;
          float: none;
          margin: 0;
          font-size: var(--_submenu-icon-size);
          color: var(--_submenu-icon-color);
        }
        &:not(.p-state-disabled):hover .p-slidemenu-back-icon,
        &.p-state-hover .p-slidemenu-back-icon,
        &.p-state-focus .p-slidemenu-back-icon {
          color: var(--_submenu-icon-focus-color);
        }
      }
    }
    .p-menu-child {
      padding: 0;
      box-shadow: none;
      border: 0 none;
    }
  }
}

/* packages/components/src/slider/slider.css */
@layer primefaces.components {
  .p-slider {
    position: relative;
    text-align: start;
    background: var(--p-slider-track-background);
    border: 0 none;
    border-radius: var(--p-slider-track-border-radius);
    .p-slider-handle {
      position: absolute;
      z-index: 2;
      cursor: grab;
      touch-action: none;
      display: flex;
      justify-content: center;
      align-items: center;
      width: var(--p-slider-handle-width);
      height: var(--p-slider-handle-height);
      background: var(--p-slider-handle-background);
      border: 0 none;
      border-radius: var(--p-slider-handle-border-radius);
      outline-color: transparent;
      transition:
        background var(--p-slider-transition-duration),
        color var(--p-slider-transition-duration),
        border-color var(--p-slider-transition-duration),
        box-shadow var(--p-slider-transition-duration),
        outline-color var(--p-slider-transition-duration);
      &::before {
        content: "";
        display: block;
        width: var(--p-slider-handle-content-width);
        height: var(--p-slider-handle-content-height);
        background: var(--p-slider-handle-content-background);
        border-radius: var(--p-slider-handle-content-border-radius);
        box-shadow: var(--p-slider-handle-content-shadow);
        transition: background var(--p-slider-transition-duration);
      }
      &:active {
        cursor: grabbing;
      }
      &:focus-visible {
        outline: var(--p-slider-handle-focus-ring-width) var(--p-slider-handle-focus-ring-style) var(--p-slider-handle-focus-ring-color);
        outline-offset: var(--p-slider-handle-focus-ring-offset);
        box-shadow: var(--p-slider-handle-focus-ring-shadow);
      }
    }
    &.p-state-disabled .p-slider-handle {
      cursor: default;
    }
    &:not(.p-state-disabled) .p-slider-handle:hover {
      background: var(--p-slider-handle-hover-background);
    }
    &:not(.p-state-disabled) .p-slider-handle:hover::before {
      background: var(--p-slider-handle-content-hover-background);
    }
    &.p-slider-horizontal {
      height: var(--p-slider-track-size);
      touch-action: pan-y;
      .p-slider-range {
        top: 0;
        height: 100%;
      }
      .p-slider-range-min {
        left: 0;
      }
      .p-slider-range-max {
        right: 0;
      }
      .p-slider-handle {
        top: calc(var(--p-slider-track-size) / 2 - var(--p-slider-handle-height) / 2);
        margin-left: calc(-1 * var(--p-slider-handle-width) / 2);
      }
    }
    &.p-slider-vertical {
      width: var(--p-slider-track-size);
      height: 100px;
      touch-action: pan-x;
      .p-slider-range {
        left: 0;
        width: 100%;
      }
      .p-slider-range-min {
        bottom: 0;
      }
      .p-slider-range-max {
        top: 0;
      }
      .p-slider-handle {
        left: calc(var(--p-slider-track-size) / 2 - var(--p-slider-handle-width) / 2);
        margin-left: 0;
        margin-top: 0;
        margin-bottom: calc(-1 * var(--p-slider-handle-height) / 2);
      }
    }
    .p-slider-range {
      position: absolute;
      z-index: 1;
      display: block;
      border: 0;
      background: var(--p-slider-range-background);
      border-radius: var(--p-slider-track-border-radius);
    }
  }
  .p-slider.p-slider-animate {
    .p-slider-handle,
    .p-slider-range {
      transition-property:
        left,
        bottom,
        width,
        height,
        background,
        color,
        border-color,
        box-shadow,
        outline-color;
      transition-duration: var(--p-slider-transition-duration);
    }
  }
  .p-inputtext + .p-slider {
    margin-bottom: var(--p-form-field-padding-y);
  }
}

/* packages/components/src/speeddial/speeddial.css */
@layer primefaces.components {
  .p-speeddial {
    position: absolute;
    display: flex;
    z-index: 1;
    .p-speeddial-show-icon {
      --_icon: var(--p-speeddial-show-icon);
    }
    .p-speeddial-rotate .p-button-icon-left + .p-button-icon-left {
      transform: rotate(-90deg);
    }
    .p-speeddial-button .p-button-icon-left + .p-button-icon-left {
      position: absolute;
      opacity: 0;
    }
  }
  .p-speeddial-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: top 0s linear var(--p-speeddial-transition-duration);
    pointer-events: none;
  }
  .p-speeddial-item {
    transform: scale(0);
    opacity: 0;
    transition: transform var(--p-speeddial-transition-duration) var(--p-transition-easing), opacity var(--p-speeddial-item-fade-duration);
    will-change: transform;
  }
  .p-speeddial-action {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    position: relative;
    overflow: hidden;
    width: var(--p-button-sm-icon-only-width);
    height: var(--p-button-sm-icon-only-width);
    font-size: var(--p-button-sm-font-size);
    background: var(--p-button-secondary-background);
    color: var(--p-button-secondary-color);
    border: 1px solid var(--p-button-secondary-border-color);
    outline-color: transparent;
    text-decoration: none;
    cursor: pointer;
    transition:
      background var(--p-speeddial-transition-duration),
      color var(--p-speeddial-transition-duration),
      border-color var(--p-speeddial-transition-duration),
      outline-color var(--p-speeddial-transition-duration),
      box-shadow var(--p-speeddial-transition-duration);
    .p-speeddial-action-icon {
      font-size: var(--p-button-sm-font-size);
    }
    .p-menuitem-text:empty {
      display: none;
    }
    &:not(.p-disabled):hover {
      background: var(--p-button-secondary-hover-background);
      color: var(--p-button-secondary-hover-color);
      border-color: var(--p-button-secondary-hover-border-color);
    }
    &:not(.p-disabled):active {
      background: var(--p-button-secondary-active-background);
      color: var(--p-button-secondary-active-color);
      border-color: var(--p-button-secondary-active-border-color);
    }
    &:focus-visible {
      outline: var(--p-button-focus-ring-width) var(--p-button-focus-ring-style) var(--p-button-secondary-focus-ring-color);
      outline-offset: var(--p-button-focus-ring-offset);
      box-shadow: var(--p-button-secondary-focus-ring-shadow);
    }
  }
  .p-speeddial.p-disabled .p-speeddial-button,
  .p-speeddial-action.p-disabled {
    opacity: var(--p-disabled-opacity);
    cursor: default;
  }
  .p-speeddial-button.p-speeddial-rotate .p-button-icon-left {
    transition-duration: var(--p-speeddial-rotate-duration);
    transition-timing-function: var(--p-transition-easing);
    transition-property: opacity, transform;
  }
  .p-speeddial-mask {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    background-color: var(--p-mask-background);
    border-radius: var(--p-content-border-radius);
    transition: opacity var(--p-speeddial-mask-hide-duration) var(--p-transition-easing-exit);
  }
  .p-speeddial-mask-visible {
    pointer-events: none;
    opacity: 1;
    transition: opacity var(--p-speeddial-mask-show-duration) var(--p-transition-easing-enter);
  }
  .p-speeddial-opened {
    &.p-speeddial {
      z-index: 2;
    }
    .p-speeddial-list {
      pointer-events: auto;
    }
    .p-speeddial-item {
      transform: scale(1);
      opacity: 1;
    }
    .p-speeddial-rotate .p-button-icon-left {
      transform: rotate(45deg);
    }
    .p-speeddial-dual-icon .p-button-icon-left {
      opacity: 0;
    }
    .p-button-icon-left + .p-button-icon-left,
    .p-speeddial-button .p-button-icon-left + .p-button-icon-left {
      opacity: 1;
    }
    .p-speeddial-rotate.p-speeddial-dual-icon .p-button-icon-left {
      transform: rotate(90deg);
    }
    .p-speeddial-rotate .p-button-icon-left + .p-button-icon-left {
      transform: rotate(0deg);
    }
  }
  .p-speeddial-direction-up {
    align-items: center;
    flex-direction: column-reverse;
    .p-speeddial-list {
      flex-direction: column-reverse;
    }
    .p-speeddial-item {
      margin: calc(var(--p-speeddial-gap) / 2) 0;
      &:first-child {
        margin-bottom: var(--p-speeddial-gap);
      }
    }
  }
  .p-speeddial-direction-down {
    align-items: center;
    flex-direction: column;
    .p-speeddial-list {
      flex-direction: column;
    }
    .p-speeddial-item {
      margin: calc(var(--p-speeddial-gap) / 2) 0;
      &:first-child {
        margin-top: var(--p-speeddial-gap);
      }
    }
  }
  .p-speeddial-direction-left {
    justify-content: center;
    flex-direction: row-reverse;
    .p-speeddial-list {
      flex-direction: row-reverse;
    }
    .p-speeddial-item {
      margin: 0 calc(var(--p-speeddial-gap) / 2);
      &:first-child {
        margin-right: var(--p-speeddial-gap);
      }
    }
  }
  .p-speeddial-direction-right {
    justify-content: center;
    flex-direction: row;
    .p-speeddial-list {
      flex-direction: row;
    }
    .p-speeddial-item {
      margin: 0 calc(var(--p-speeddial-gap) / 2);
      &:first-child {
        margin-left: var(--p-speeddial-gap);
      }
    }
  }
  .p-speeddial-circle,
  .p-speeddial-semi-circle,
  .p-speeddial-quarter-circle {
    .p-speeddial-item {
      position: absolute;
      margin: 0;
    }
    .p-speeddial-item:first-child {
      margin: 0;
    }
  }
}

/* packages/components/src/spinner/spinner.css */
@layer primefaces.components {
  .p-spinner {
    display: inline-block;
    overflow: visible;
    padding: 0;
    position: relative;
    vertical-align: middle;
    &.p-state-disabled {
      opacity: 1;
      > .p-spinner-button {
        opacity: var(--p-disabled-opacity);
      }
    }
    .p-spinner-input {
      vertical-align: middle;
      text-align: right;
      width: 100%;
      font-variant-numeric: tabular-nums;
      &[dir=rtl] {
        text-align: left;
      }
    }
    &.text-left .p-spinner-input {
      text-align: left;
    }
    &.text-center .p-spinner-input {
      text-align: center;
    }
    &.text-right .p-spinner-input {
      text-align: right;
    }
    .p-spinner-button {
      cursor: default;
      display: block;
      margin: 0;
      overflow: hidden;
      padding: 0;
      position: absolute;
      right: 0;
      text-align: center;
      vertical-align: middle;
      z-index: 1;
    }
    .p-spinner-up {
      top: 0;
    }
    .p-spinner-down {
      bottom: 0;
    }
    .p-spinner-button.p-button {
      --_bg: var(--p-inputnumber-button-background);
      --_hover-bg: var(--p-inputnumber-button-hover-background);
      --_active-bg: var(--p-inputnumber-button-active-background);
      --_border: var(--p-inputnumber-button-border-color);
      --_hover-border: var(--p-inputnumber-button-hover-border-color);
      --_active-border: var(--p-inputnumber-button-active-border-color);
      --_color: var(--p-inputnumber-button-color);
      --_hover-color: var(--p-inputnumber-button-hover-color);
      --_active-color: var(--p-inputnumber-button-active-color);
      padding: 0;
      border-radius: 0;
      width: var(--p-inputnumber-button-width);
      transition:
        background var(--p-inputnumber-transition-duration),
        color var(--p-inputnumber-transition-duration),
        border-color var(--p-inputnumber-transition-duration),
        outline-color var(--p-inputnumber-transition-duration);
      .p-button-text {
        padding: 0;
      }
      .p-icon {
        position: absolute;
        top: 50%;
        left: 50%;
        margin: 0;
        transform: translate(-50%, -50%);
        font-size: var(--p-icon-size);
        line-height: 1;
      }
      &.p-state-error {
        --_border: var(--p-form-field-invalid-border-color);
        --_hover-border: var(--p-form-field-invalid-border-color);
        --_active-border: var(--p-form-field-invalid-border-color);
      }
    }
    .p-spinner-increment-icon {
      --_icon: var(--p-inputnumber-increment-icon);
    }
    .p-spinner-decrement-icon {
      --_icon: var(--p-inputnumber-decrement-icon);
    }
    &:is(.p-spinner-horizontal, .p-spinner-horizontal-after, .p-spinner-vertical) {
      .p-spinner-increment-icon {
        --_icon: var(--p-icon-plus);
      }
      .p-spinner-decrement-icon {
        --_icon: var(--p-icon-minus);
      }
    }
    &.p-spinner-stacked {
      .p-spinner-input {
        padding-inline-end: calc(var(--p-inputnumber-button-width) + var(--p-form-field-padding-x));
      }
      .p-spinner-button.p-button {
        --_border: transparent;
        --_hover-border: transparent;
        --_active-border: transparent;
        height: calc(50% - 1px);
        right: 1px;
      }
      .p-spinner-button.p-spinner-up {
        top: 1px;
        border-top-right-radius: calc(var(--p-inputnumber-button-border-radius) - 1px);
      }
      .p-spinner-button.p-spinner-down {
        bottom: 1px;
        border-bottom-right-radius: calc(var(--p-inputnumber-button-border-radius) - 1px);
      }
    }
    &.p-spinner-stacked.p-spinner-rtl {
      .p-spinner-button.p-button {
        right: auto;
        left: 1px;
      }
      .p-spinner-button.p-spinner-up {
        border-top-right-radius: 0;
        border-top-left-radius: calc(var(--p-inputnumber-button-border-radius) - 1px);
      }
      .p-spinner-button.p-spinner-down {
        border-bottom-right-radius: 0;
        border-bottom-left-radius: calc(var(--p-inputnumber-button-border-radius) - 1px);
      }
    }
    &.p-spinner-horizontal .p-spinner-input {
      text-align: center;
      padding-inline: calc(var(--p-inputnumber-button-width) + var(--p-form-field-padding-x));
    }
    &.p-spinner-horizontal .p-spinner-button.p-button,
    &.p-spinner-horizontal-after .p-spinner-button.p-button {
      top: 0;
      bottom: auto;
      height: 100%;
    }
    &.p-spinner-horizontal {
      .p-spinner-button.p-spinner-up {
        right: 0;
        left: auto;
        border-radius: 0 var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius) 0;
      }
      .p-spinner-button.p-spinner-down {
        left: 0;
        right: auto;
        border-radius: var(--p-inputnumber-button-border-radius) 0 0 var(--p-inputnumber-button-border-radius);
      }
    }
    &.p-spinner-horizontal.p-spinner-rtl {
      .p-spinner-button.p-spinner-up {
        right: auto;
        left: 0;
        border-radius: var(--p-inputnumber-button-border-radius) 0 0 var(--p-inputnumber-button-border-radius);
      }
      .p-spinner-button.p-spinner-down {
        left: auto;
        right: 0;
        border-radius: 0 var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius) 0;
      }
    }
    &.p-spinner-horizontal-after {
      .p-spinner-input {
        padding-inline-end: calc(var(--p-inputnumber-button-width) * 2 + var(--p-form-field-padding-x));
      }
      .p-spinner-button.p-spinner-up {
        right: 0;
        border-radius: 0 var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius) 0;
      }
      .p-spinner-button.p-spinner-down {
        right: calc(var(--p-inputnumber-button-width) - 1px);
        border-radius: 0;
      }
    }
    &.p-spinner-horizontal-after.p-spinner-rtl {
      .p-spinner-input {
        padding-inline-end: var(--p-form-field-padding-x);
        padding-inline-start: calc(var(--p-inputnumber-button-width) * 2 + var(--p-form-field-padding-x));
      }
      .p-spinner-button.p-spinner-up {
        right: auto;
        left: 0;
        border-radius: var(--p-inputnumber-button-border-radius) 0 0 var(--p-inputnumber-button-border-radius);
      }
      .p-spinner-button.p-spinner-down {
        right: auto;
        left: calc(var(--p-inputnumber-button-width) - 1px);
      }
    }
    &.p-spinner-vertical {
      .p-spinner-input {
        text-align: center;
        padding-block: calc(var(--p-inputnumber-button-width) + var(--p-form-field-padding-y));
        padding-inline: var(--p-form-field-padding-x);
      }
      .p-spinner-button.p-button {
        left: 0;
        right: auto;
        width: 100%;
        height: var(--p-inputnumber-button-width);
      }
      .p-spinner-button.p-spinner-up {
        top: 0;
        border-radius: var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius) 0 0;
      }
      .p-spinner-button.p-spinner-down {
        bottom: 0;
        border-radius: 0 0 var(--p-inputnumber-button-border-radius) var(--p-inputnumber-button-border-radius);
      }
    }
    &:has(> .p-inputtext-sm) .p-spinner-button .p-icon {
      font-size: var(--p-form-field-sm-font-size);
    }
    &:has(> .p-inputtext-lg) .p-spinner-button .p-icon {
      font-size: var(--p-form-field-lg-font-size);
    }
  }
  .p-fluid .p-spinner {
    width: 100%;
    .p-spinner-input {
      width: 100%;
    }
  }
  .p-spinner.p-state-error {
    .p-spinner-input,
    .p-spinner-input:is(:hover, :focus, .p-state-hover, .p-state-focus) {
      border-color: var(--p-inputtext-invalid-border-color);
    }
    .p-spinner-button {
      --_border: var(--p-form-field-invalid-border-color);
      --_hover-border: var(--p-form-field-invalid-border-color);
      --_active-border: var(--p-form-field-invalid-border-color);
    }
  }
}

/* packages/components/src/forms/splitbutton.css */
@layer primefaces.components {
  .p-splitbutton {
    display: inline-flex;
    position: relative;
    border-radius: var(--p-splitbutton-border-radius);
    > .p-button {
      margin: 0;
      &:has(+ .p-splitbutton-menubutton) {
        border-start-end-radius: 0;
        border-end-end-radius: 0;
        border-inline-end-width: 0;
      }
      &:focus-visible {
        z-index: 1;
      }
    }
    .p-button.p-splitbutton-menubutton {
      border-start-start-radius: 0;
      border-end-start-radius: 0;
      .p-splitbutton-dropdown-icon {
        --_icon: var(--p-splitbutton-dropdown-icon);
      }
    }
    &.p-button-raised {
      box-shadow: var(--p-splitbutton-raised-shadow);
      > .p-button:not(:focus-visible) {
        box-shadow: none;
      }
    }
    &.rounded-button {
      border-radius: var(--p-splitbutton-rounded-border-radius);
      > .p-button:first-child {
        border-start-start-radius: var(--p-splitbutton-rounded-border-radius);
        border-end-start-radius: var(--p-splitbutton-rounded-border-radius);
      }
      .p-button.p-splitbutton-menubutton {
        border-start-end-radius: var(--p-splitbutton-rounded-border-radius);
        border-end-end-radius: var(--p-splitbutton-rounded-border-radius);
      }
    }
    .p-splitbuttonmenu {
      min-width: 100%;
    }
  }
  .p-splitbuttonmenu {
    width: auto;
    .p-splitbuttonmenu-filter-container {
      position: relative;
      display: block;
      margin: 0;
      padding: var(--p-list-header-padding);
      padding-inline: var(--p-form-field-padding-x);
      border-bottom: 0 none;
      background: var(--p-menu-background);
      color: var(--p-menu-color);
      .p-splitbuttonmenu-filter.p-inputfield {
        padding: var(--p-form-field-padding-y) var(--p-form-field-padding-x);
        padding-inline-start: calc(2 * var(--p-form-field-padding-x) + var(--p-icon-size));
      }
      .p-splitbutton-filter-icon {
        --_icon: var(--p-splitbutton-filter-icon);
        position: absolute;
        inset-inline-start: calc(2 * var(--p-form-field-padding-x));
        top: 50%;
        margin-top: calc(var(--p-icon-size) / -2);
        color: var(--p-form-field-icon-color);
      }
    }
    .p-splitbuttonmenu-filter {
      width: 100%;
    }
    .p-splitbuttonmenu-list-wrapper {
      overflow: auto;
    }
    .p-divider-horizontal {
      width: auto;
    }
  }
  .p-fluid {
    .p-splitbutton {
      display: flex;
      width: 100%;
      .p-button {
        flex: 1 1 auto;
        width: 100%;
        &.p-splitbutton-menubutton {
          flex: 0 0 auto;
          width: var(--p-button-icon-only-width);
          &.p-button-sm {
            width: var(--p-button-sm-icon-only-width);
          }
          &.p-button-lg {
            width: var(--p-button-lg-icon-only-width);
          }
        }
      }
    }
  }
}

/* packages/components/src/splitter/splitter.css */
@layer primefaces.components {
  .p-splitter {
    display: flex;
    flex-wrap: nowrap;
    background: var(--p-splitter-background);
    color: var(--p-splitter-color);
    border: 1px solid var(--p-splitter-border-color);
    border-radius: var(--p-border-radius-md);
    .p-splitter-gutter {
      position: relative;
      z-index: 1;
      background: var(--p-splitter-gutter-background);
      transition: background var(--p-splitter-transition-duration);
      .p-splitter-gutter-handle {
        background: var(--p-splitter-handle-background);
        border-radius: var(--p-splitter-handle-border-radius);
        outline-color: transparent;
        transition:
          background var(--p-splitter-transition-duration),
          outline-color var(--p-splitter-transition-duration),
          box-shadow var(--p-splitter-transition-duration);
      }
      &:focus-visible {
        outline: 0 none;
      }
      &:focus-visible > .p-splitter-gutter-handle,
      .p-splitter-gutter-handle:focus-visible {
        outline: var(--p-splitter-handle-focus-ring-width) var(--p-splitter-handle-focus-ring-style) var(--p-splitter-handle-focus-ring-color);
        outline-offset: var(--p-splitter-handle-focus-ring-offset);
        box-shadow: var(--p-splitter-handle-focus-ring-shadow);
      }
    }
    .p-splitter-gutter-resizing {
      background: var(--p-splitter-gutter-resizing-background);
    }
  }
  .p-splitter-panel {
    flex-grow: 1;
  }
  .p-splitter-panel-nested {
    display: flex;
  }
  .p-splitter-panel .p-splitter {
    flex-grow: 1;
    border: 0 none;
    border-radius: 0;
  }
  .p-splitter-gutter {
    flex-grow: 0;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-splitter-horizontal {
    &.p-splitter-resizing {
      cursor: col-resize;
      -webkit-user-select: none;
      user-select: none;
    }
    > .p-splitter-gutter {
      cursor: col-resize;
      > .p-splitter-gutter-handle {
        width: 100%;
        height: var(--p-splitter-handle-size);
      }
    }
  }
  .p-splitter-vertical {
    flex-direction: column;
    &.p-splitter-resizing {
      cursor: row-resize;
      -webkit-user-select: none;
      user-select: none;
    }
    > .p-splitter-gutter {
      cursor: row-resize;
      > .p-splitter-gutter-handle {
        width: var(--p-splitter-handle-size);
        height: 100%;
      }
    }
  }
}

/* packages/components/src/spotlight/spotlight.css */
@layer primefaces.components {
  .p-spotlight.p-widget-overlay {
    position: fixed;
    background: var(--p-spotlight-mask-background);
    color: var(--p-spotlight-mask-color);
    transition: background var(--p-spotlight-transition-duration);
  }
}

/* packages/components/src/staticmessage/staticmessage.css */
@layer primefaces.components {
  .p-staticmessage {
    position: relative;
    .p-messages-close {
      position: absolute;
      cursor: pointer;
      top: -.75rem;
      inset-inline-end: -.75rem;
      width: 2rem;
      height: 2rem;
      padding: 0;
      -webkit-user-select: none;
      user-select: none;
      text-align: center;
    }
  }
  .p-message.p-staticmessage {
    display: flex;
    align-items: center;
    gap: var(--p-message-content-gap);
    &.p-message-icon-only {
      display: inline-flex;
    }
    > .pi {
      flex-shrink: 0;
      color: var(--_color);
      font-size: var(--_icon-size);
    }
    .p-messages-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: var(--p-message-border-width) solid var(--_border-color);
      border-radius: 50%;
      background: var(--_bg);
      color: var(--_color);
      box-shadow: var(--_shadow);
      text-decoration: none;
      outline-color: transparent;
      transition:
        background var(--p-message-transition-duration),
        color var(--p-message-transition-duration),
        outline-color var(--p-message-transition-duration),
        box-shadow var(--p-message-transition-duration);
      &:hover {
        background-image: linear-gradient(var(--_close-hover-bg), var(--_close-hover-bg));
      }
      &:focus-visible {
        outline: var(--p-message-close-button-focus-ring-width) var(--p-message-close-button-focus-ring-style) var(--_close-focus-ring-color);
        outline-offset: var(--p-message-close-button-focus-ring-offset);
        box-shadow: var(--_close-focus-ring-shadow);
      }
      .p-message-close-icon {
        --_icon: var(--p-message-close-icon);
        color: inherit;
        font-size: var(--_close-icon-size);
      }
    }
    &.p-message-outlined .p-messages-close,
    &.p-message-simple .p-messages-close {
      position: static;
      order: 1;
      flex-shrink: 0;
      margin-inline-start: auto;
      width: var(--p-message-close-button-width);
      height: var(--p-message-close-button-height);
      border: 0 none;
      border-radius: var(--p-message-close-button-border-radius);
    }
  }
}

/* packages/components/src/menu/steps.css */
@layer primefaces.components {
  .p-steps {
    position: relative;
    ul {
      list-style-type: none;
      padding: 0;
      margin: 0;
      display: flex;
    }
    .p-steps-item {
      position: relative;
      display: flex;
      justify-content: center;
      flex: 1 1 0;
      background: transparent;
      text-align: center;
      opacity: 1;
      &::before {
        content: " ";
        border-top: 2px solid var(--p-steps-separator-background);
        width: 100%;
        top: calc(var(--p-steps-item-number-size) / 2 - 1px);
        inset-inline-start: 0;
        display: block;
        position: absolute;
      }
      &:first-child::before {
        width: 50%;
        inset-inline-start: 50%;
      }
      &:last-child::before {
        width: 50%;
      }
      &:only-child::before {
        display: none;
      }
      .p-menuitem-link {
        text-decoration: none;
        position: relative;
        text-align: center;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        gap: var(--p-steps-item-link-gap);
        max-width: 100%;
        background: transparent;
        padding: 0;
        border-radius: var(--p-steps-item-link-border-radius);
        outline-color: transparent;
        transition: outline-color var(--p-steps-transition-duration), box-shadow var(--p-steps-transition-duration);
        &:focus-visible {
          outline: var(--p-steps-item-link-focus-ring-width) var(--p-steps-item-link-focus-ring-style) var(--p-steps-item-link-focus-ring-color);
          outline-offset: var(--p-steps-item-link-focus-ring-offset);
          box-shadow: var(--p-steps-item-link-focus-ring-shadow);
        }
        .p-steps-number {
          display: flex;
          align-items: center;
          justify-content: center;
          position: relative;
          z-index: 1;
          color: var(--p-steps-item-number-color);
          background: var(--p-steps-item-number-background);
          border: 2px solid var(--p-steps-item-number-border-color);
          box-shadow: var(--p-steps-item-number-shadow);
          min-width: var(--p-steps-item-number-size);
          height: var(--p-steps-item-number-size);
          line-height: var(--p-steps-item-number-size);
          font-size: var(--p-steps-item-number-font-size);
          font-weight: var(--p-steps-item-number-font-weight);
          padding: 0;
          margin: 0;
          border-radius: var(--p-steps-item-number-border-radius);
          .p-steps-number-icon {
            font-size: var(--p-icon-size);
            line-height: 1;
          }
        }
        .p-steps-title {
          max-width: 100%;
          overflow: hidden;
          text-overflow: ellipsis;
          padding: 0;
          color: var(--p-steps-item-label-color);
          font-weight: var(--p-steps-item-label-font-weight);
        }
      }
      &.p-state-highlight {
        .p-steps-number {
          background: var(--p-steps-item-number-active-background);
          color: var(--p-steps-item-number-active-color);
          border-color: var(--p-steps-item-number-active-border-color);
        }
        .p-steps-title {
          color: var(--p-steps-item-label-active-color);
        }
      }
    }
    .p-steps-item.p-state-highlight:not(.p-steps-item-executable) .p-menuitem-link,
    .p-steps-item.p-state-disabled .p-menuitem-link {
      cursor: default;
    }
    .p-steps-title {
      display: block;
      white-space: nowrap;
    }
    @media (max-width: 640px) {
      .p-steps-item .p-steps-title {
        display: none;
      }
    }
  }
  .p-steps:not(.p-steps-readonly) .p-steps-item.p-steps-item-executable .p-menuitem-link {
    cursor: pointer;
  }
}

/* packages/components/src/menu/tabmenu.css */
@layer primefaces.components {
  .p-tabmenu {
    .p-tabmenu-nav {
      margin: calc(var(--p-badge-height) / -2) 0 0 0;
      padding: calc(var(--p-badge-height) / 2) 0 0 0;
      background: var(--p-tabmenu-tablist-background);
      display: flex;
      flex-wrap: nowrap;
      position: relative;
      overflow-x: auto;
      &::before {
        content: "";
        display: block;
        position: absolute;
        border-style: solid;
        border-width: var(--p-tabmenu-tablist-border-width);
        border-color: var(--p-tabmenu-tablist-border-color);
        left: 0;
        bottom: 0;
        width: 100%;
      }
      .p-tabmenuitem {
        position: relative;
        list-style: none;
        padding: 0;
        white-space: nowrap;
        background: var(--p-tabmenu-item-background);
        color: var(--p-tabmenu-item-color);
        margin: 0;
        border-style: solid;
        border-width: var(--p-tabmenu-item-border-width);
        border-color: var(--p-tabmenu-item-border-color);
        cursor: pointer;
        display: flex;
        align-items: center;
        flex-shrink: 0;
        outline-color: transparent;
        transition:
          background var(--p-tabmenu-transition-duration),
          border-color var(--p-tabmenu-transition-duration),
          color var(--p-tabmenu-transition-duration),
          outline-color var(--p-tabmenu-transition-duration),
          box-shadow var(--p-tabmenu-transition-duration);
        a {
          color: var(--p-tabmenu-item-color);
          padding: var(--p-tabmenu-item-padding);
          font-weight: var(--p-tabmenu-item-font-weight);
          display: flex;
          align-items: center;
          gap: var(--p-tabmenu-item-gap);
          line-height: 1;
          text-decoration: none;
          outline: 0 none;
          transition: color var(--p-tabmenu-transition-duration);
          .p-menuitem-icon {
            color: var(--p-tabmenu-item-icon-color);
            transition: color var(--p-tabmenu-transition-duration);
          }
        }
        &:not(.p-state-active):not(.p-state-disabled):hover,
        &.p-state-hover {
          background: var(--p-tabmenu-item-hover-background);
          border-color: var(--p-tabmenu-item-hover-border-color);
        }
        &:not(.p-state-active):not(.p-state-disabled):hover a,
        &.p-state-hover a {
          color: var(--p-tabmenu-item-hover-color);
        }
        &:not(.p-state-active):not(.p-state-disabled):hover a .p-menuitem-icon,
        &.p-state-hover a .p-menuitem-icon {
          color: var(--p-tabmenu-item-icon-hover-color);
        }
        &.p-state-active {
          background: var(--p-tabmenu-item-active-background);
          border-color: var(--p-tabmenu-item-active-border-color);
          a {
            color: var(--p-tabmenu-item-active-color);
            .p-menuitem-icon {
              color: var(--p-tabmenu-item-icon-active-color);
            }
          }
        }
        &.p-menuitem-outline:focus-visible,
        &:has(> a:focus-visible) {
          outline: var(--p-tabmenu-item-focus-ring-width) var(--p-tabmenu-item-focus-ring-style) var(--p-tabmenu-item-focus-ring-color);
          outline-offset: var(--p-tabmenu-item-focus-ring-offset);
          box-shadow: var(--p-tabmenu-item-focus-ring-shadow);
          z-index: 1;
        }
      }
    }
  }
  .p-tabmenu.p-tabs-bottom .p-tabmenu-nav {
    &::before {
      border-width: 1px 0 0 0;
      bottom: auto;
      top: 0;
    }
    .p-tabmenuitem {
      border-width: 1px 0 0 0;
    }
  }
  .p-tabmenu.p-tabs-left .p-tabmenu-nav {
    flex-direction: column;
    &::before {
      border-width: 0 1px 0 0;
      left: auto;
      right: 0;
      width: auto;
      height: 100%;
    }
    .p-tabmenuitem {
      border-width: 0 1px 0 0;
    }
  }
  .p-tabmenu.p-tabs-right .p-tabmenu-nav {
    flex-direction: column;
    &::before {
      border-width: 0 0 0 1px;
      width: auto;
      height: 100%;
    }
    .p-tabmenuitem {
      border-width: 0 0 0 1px;
    }
  }
  .p-tabmenu:is(.p-tabs-bottom, .p-tabs-left, .p-tabs-right) .p-tabmenu-nav .p-tabmenuitem {
    &.p-state-hover {
      border-color: var(--p-tabmenu-item-hover-border-color);
    }
    &.p-state-active {
      border-color: var(--p-tabmenu-item-active-border-color);
    }
  }
}

/* packages/components/src/tabview/tabview.css */
@layer primefaces.components {
  .p-tabs {
    position: relative;
    .p-tabs-nav {
      display: flex;
      position: relative;
      margin: 0;
      padding: 0;
      background: var(--p-tabs-tablist-background);
      border-style: solid;
      border-color: var(--p-tabs-tablist-border-color);
      border-width: var(--p-tabs-tablist-border-width);
      border-radius: 0;
      li {
        list-style: none;
        position: relative;
        margin: 0;
        padding: 0;
        white-space: nowrap;
        display: inline-block;
        vertical-align: top;
        .p-menu-list {
          white-space: initial;
        }
        a {
          text-decoration: none;
          outline: none;
          cursor: pointer;
        }
        &.p-tabs-selected a,
        &.p-state-disabled a {
          cursor: text;
        }
        > .p-tabs-close-icon {
          cursor: pointer;
        }
        &.p-tabs-header {
          display: flex;
          align-items: center;
          gap: var(--p-tabs-tab-gap);
          flex-shrink: 0;
          margin: var(--p-tabs-tab-margin);
          padding: var(--p-tabs-tab-padding);
          cursor: pointer;
          -webkit-user-select: none;
          user-select: none;
          font-size: var(--p-tabs-tab-font-size);
          font-weight: var(--p-tabs-tab-font-weight);
          background: var(--p-tabs-tab-background);
          color: var(--p-tabs-tab-color);
          border-style: solid;
          border-width: var(--p-tabs-tab-border-width);
          border-color: var(--p-tabs-tab-border-color);
          border-radius: 0;
          outline-color: transparent;
          transition:
            background var(--p-tabs-transition-duration),
            border-color var(--p-tabs-transition-duration),
            color var(--p-tabs-transition-duration),
            outline-color var(--p-tabs-transition-duration),
            box-shadow var(--p-tabs-transition-duration);
        }
        &.p-tabs-header a {
          display: block;
          color: inherit;
          font-weight: var(--p-tabs-tab-font-weight);
          line-height: var(--p-typography-line-height);
        }
        &.p-tabs-header .p-tabs-close-icon {
          --_icon: var(--p-tabs-close-icon);
        }
        &.p-tabs-header::after {
          content: "";
          display: block;
          position: absolute;
          z-index: 1;
          inset-inline: 0;
          bottom: var(--p-tabs-active-bar-bottom);
          height: var(--p-tabs-active-bar-height);
          background: transparent;
          pointer-events: none;
          transition: background var(--p-tabs-transition-duration);
        }
        &.p-tabs-header.p-state-hover,
        &.p-tabs-header:not(.p-state-active, .p-state-disabled):hover {
          background: var(--p-tabs-tab-hover-background);
          border-color: var(--p-tabs-tab-hover-border-color);
          color: var(--p-tabs-tab-hover-color);
        }
        &.p-tabs-header.p-state-active {
          background: var(--p-tabs-tab-active-background);
          border-color: var(--p-tabs-tab-active-border-color);
          color: var(--p-tabs-tab-active-color);
        }
        &.p-tabs-header.p-state-active::after {
          background: var(--p-tabs-active-bar-background);
        }
        &.p-tabs-header.p-state-error,
        &.p-tabs-header.p-state-error:not(.p-state-disabled):hover {
          color: var(--p-tabs-tab-invalid-color);
          border-color: var(--p-tabs-tab-invalid-border-color);
        }
        &.p-tabs-header.p-state-error.p-state-active,
        &.p-tabs-header.p-state-error.p-state-active:not(.p-state-disabled):hover {
          color: var(--p-tabs-tab-active-invalid-color);
        }
        &.p-tabs-header.p-state-error.p-state-active::after {
          background: var(--p-tabs-active-bar-invalid-background);
        }
        &.p-tabs-header:not(.p-state-disabled):has(> a:focus-visible) {
          z-index: 1;
          outline: var(--p-tabs-tab-focus-ring-width) var(--p-tabs-tab-focus-ring-style) var(--p-tabs-tab-focus-ring-color);
          outline-offset: var(--p-tabs-tab-focus-ring-offset);
          box-shadow: var(--p-tabs-tab-focus-ring-shadow);
        }
        &.p-tabs-actions {
          order: 1;
          margin-inline-start: auto;
          align-self: center;
        }
      }
    }
    li.p-tabs-actions[aria-hidden=true] {
      display: none;
    }
    .p-tabs-footer {
      padding: var(--p-tabs-tabpanel-padding);
      background: var(--p-tabs-tabpanel-background);
      color: var(--p-tabs-tabpanel-color);
    }
    .p-tabs-panels {
      background: var(--p-tabs-tabpanel-background);
      color: var(--p-tabs-tabpanel-color);
      .p-tabs-panel {
        padding: var(--p-tabs-tabpanel-padding);
        outline-color: transparent;
        &:focus-visible {
          outline: var(--p-tabs-tabpanel-focus-ring-width) var(--p-tabs-tabpanel-focus-ring-style) var(--p-tabs-tabpanel-focus-ring-color);
          outline-offset: var(--p-tabs-tabpanel-focus-ring-offset);
          box-shadow: var(--p-tabs-tabpanel-focus-ring-shadow);
        }
      }
    }
    .p-tabs-panel {
      border-width: 0;
      background: none;
    }
    &.p-tabs-top > .p-tabs-nav,
    &.p-tabs-bottom > .p-tabs-nav {
      flex-wrap: wrap;
    }
    &.p-tabs-bottom {
      > .p-tabs-nav,
      > .p-tabs-navscroller > .p-tabs-nav {
        border-width: 0;
        border-top: 1px solid var(--p-tabs-tablist-border-color);
      }
      > .p-tabs-nav > li.p-tabs-header::after,
      > .p-tabs-navscroller > .p-tabs-nav > li.p-tabs-header::after {
        top: var(--p-tabs-active-bar-bottom);
        bottom: auto;
      }
    }
    &.p-tabs-left > .p-tabs-nav,
    &.p-tabs-right > .p-tabs-nav {
      flex-direction: column;
      width: 25%;
      border-width: 0;
    }
    &.p-tabs-left > .p-tabs-nav li,
    &.p-tabs-right > .p-tabs-nav li {
      white-space: normal;
    }
    &.p-tabs-left > .p-tabs-nav li a,
    &.p-tabs-right > .p-tabs-nav li a {
      width: 90%;
    }
    &.p-tabs-left > .p-tabs-nav > li.p-tabs-header,
    &.p-tabs-right > .p-tabs-nav > li.p-tabs-header {
      width: 100%;
    }
    &.p-tabs-left > .p-tabs-panels,
    &.p-tabs-right > .p-tabs-panels {
      width: 75%;
    }
    &.p-tabs-left .p-tabs-actions,
    &.p-tabs-right .p-tabs-actions {
      position: absolute;
      bottom: 0;
    }
    &.p-tabs-left > .p-tabs-nav {
      border-right: 1px solid var(--p-tabs-tablist-border-color);
    }
    &.p-tabs-right {
      > .p-tabs-nav {
        float: right;
        border-left: 1px solid var(--p-tabs-tablist-border-color);
      }
      > .p-tabs-panels {
        float: left;
      }
    }
    &.p-tabs-left > .p-tabs-nav > li.p-tabs-header::after,
    &.p-tabs-right > .p-tabs-nav > li.p-tabs-header::after {
      inset-block: 0;
      width: var(--p-tabs-active-bar-height);
      height: auto;
    }
    &.p-tabs-left > .p-tabs-nav > li.p-tabs-header::after {
      inset-inline: auto var(--p-tabs-active-bar-bottom);
    }
    &.p-tabs-right > .p-tabs-nav > li.p-tabs-header::after {
      inset-inline: var(--p-tabs-active-bar-bottom) auto;
    }
    .p-tabs-navscroller {
      position: relative;
      overflow: hidden;
      padding-left: var(--p-tabs-nav-button-width);
      &.p-tabs-navscroller-btn-hidden {
        padding-left: 0;
      }
      .p-tabs-navscroller-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 2;
        top: 0;
        height: 100%;
        width: var(--p-tabs-nav-button-width);
        background: var(--p-tabs-nav-button-background);
        color: var(--p-tabs-nav-button-color);
        border: 0 none;
        box-shadow: var(--p-tabs-nav-button-shadow);
        outline: 0 none;
        outline-color: transparent;
        transition:
          color var(--p-tabs-transition-duration),
          outline-color var(--p-tabs-transition-duration),
          box-shadow var(--p-tabs-transition-duration);
        &.p-tabs-navscroller-btn-left {
          left: 0;
        }
        &.p-tabs-navscroller-btn-right {
          right: 0;
        }
        .p-tabs-prev-icon {
          --_icon: var(--p-tabs-prev-icon);
        }
        .p-tabs-next-icon {
          --_icon: var(--p-tabs-next-icon);
        }
        &.p-state-hover,
        &:not(.p-state-disabled):hover {
          background: var(--p-tabs-nav-button-background);
          color: var(--p-tabs-nav-button-hover-color);
        }
        &:focus-visible {
          z-index: 3;
          outline: var(--p-tabs-nav-button-focus-ring-width) var(--p-tabs-nav-button-focus-ring-style) var(--p-tabs-nav-button-focus-ring-color);
          outline-offset: var(--p-tabs-nav-button-focus-ring-offset);
          box-shadow: var(--p-tabs-nav-button-focus-ring-shadow);
        }
      }
    }
    .p-tabs-navscroller-btn {
      position: absolute;
      cursor: pointer;
    }
    .p-tabs-navscroller.p-tabs-navscroller-btn-hidden .p-tabs-navscroller-btn {
      display: none;
    }
  }
  .p-tabs-left::after,
  .p-tabs-right::after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
  }
  .p-tabs-left {
    > .p-tabs-nav {
      float: left;
    }
    > .p-tabs-panels {
      overflow: hidden;
    }
  }
  .p-tabs-rtl {
    direction: rtl;
  }
  .p-tabs-scrollable > .p-tabs-navscroller > .p-tabs-nav {
    width: 5000px;
  }
  .p-tabs-outline {
    z-index: 1;
  }
}

/* packages/components/src/tag/tag.css */
@layer primefaces.components {
  .p-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--p-tag-gap);
    background: var(--p-tag-primary-background);
    color: var(--p-tag-primary-color);
    font-size: var(--p-tag-font-size);
    font-weight: var(--p-tag-font-weight);
    padding: var(--p-tag-padding);
    border-radius: var(--p-tag-border-radius);
    .p-tag-icon,
    .p-tag-value {
      line-height: var(--p-typography-line-height);
    }
    &:not(.p-widget) {
      display: inline-block;
      text-align: center;
      line-height: 1;
    }
    &.p-tag-success {
      background: var(--p-tag-success-background);
      color: var(--p-tag-success-color);
    }
    &.p-tag-info {
      background: var(--p-tag-info-background);
      color: var(--p-tag-info-color);
    }
    &.p-tag-warning {
      background: var(--p-tag-warn-background);
      color: var(--p-tag-warn-color);
    }
    &.p-tag-danger {
      background: var(--p-tag-danger-background);
      color: var(--p-tag-danger-color);
    }
    &.p-tag-secondary {
      background: var(--p-tag-secondary-background);
      color: var(--p-tag-secondary-color);
    }
    &.p-tag-help {
      background: var(--p-tag-help-background);
      color: var(--p-tag-help-color);
    }
    &.p-tag-contrast {
      background: var(--p-tag-contrast-background);
      color: var(--p-tag-contrast-color);
    }
    &.p-tag-outlined {
      --_border-color: var(--p-tag-outlined-primary-border-color);
      background: var(--p-tag-outlined-background);
      color: var(--p-tag-outlined-primary-color);
      box-shadow: inset 0 0 0 var(--p-tag-outlined-border-width) var(--_border-color);
      &.p-tag-success {
        --_border-color: var(--p-tag-outlined-success-border-color);
        color: var(--p-tag-outlined-success-color);
      }
      &.p-tag-info {
        --_border-color: var(--p-tag-outlined-info-border-color);
        color: var(--p-tag-outlined-info-color);
      }
      &.p-tag-warning {
        --_border-color: var(--p-tag-outlined-warn-border-color);
        color: var(--p-tag-outlined-warn-color);
      }
      &.p-tag-danger {
        --_border-color: var(--p-tag-outlined-danger-border-color);
        color: var(--p-tag-outlined-danger-color);
      }
      &.p-tag-secondary {
        --_border-color: var(--p-tag-outlined-secondary-border-color);
        color: var(--p-tag-outlined-secondary-color);
      }
      &.p-tag-help {
        --_border-color: var(--p-tag-outlined-help-border-color);
        color: var(--p-tag-outlined-help-color);
      }
      &.p-tag-contrast {
        --_border-color: var(--p-tag-outlined-contrast-border-color);
        color: var(--p-tag-outlined-contrast-color);
      }
    }
    &.p-tag-rounded {
      border-radius: var(--p-tag-rounded-border-radius);
    }
    .p-tag-icon {
      margin: 0;
      font-size: var(--p-tag-icon-size);
    }
    &:not(.p-widget) .p-tag-icon {
      margin-inline-end: var(--p-tag-gap);
    }
  }
}

/* packages/components/src/tagcloud/tagcloud.css */
@layer primefaces.components {
  .p-tagcloud {
    width: 250px;
    border: 1px solid var(--p-tagcloud-border-color);
    background: var(--p-tagcloud-background);
    color: var(--p-tagcloud-color);
    padding: var(--p-tagcloud-padding);
    border-radius: var(--p-tagcloud-border-radius);
    ul {
      margin: 0;
      padding: 0;
      text-align: center;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: var(--p-tagcloud-gap);
    }
    li {
      margin: 0;
      padding: 0;
      list-style: none;
      display: inline-block;
    }
    li a {
      display: inline-block;
      text-decoration: none;
      padding: var(--p-tagcloud-item-padding);
      color: var(--p-tagcloud-item-color);
      border-radius: var(--p-tagcloud-item-border-radius);
      outline-color: transparent;
      transition:
        background var(--p-tagcloud-transition-duration),
        color var(--p-tagcloud-transition-duration),
        outline-color var(--p-tagcloud-transition-duration),
        box-shadow var(--p-tagcloud-transition-duration);
      &:hover,
      &.p-state-hover {
        background: var(--p-tagcloud-item-hover-background);
        color: var(--p-tagcloud-item-hover-color);
      }
      &:focus-visible {
        outline: var(--p-tagcloud-item-focus-ring-width) var(--p-tagcloud-item-focus-ring-style) var(--p-tagcloud-item-focus-ring-color);
        outline-offset: var(--p-tagcloud-item-focus-ring-offset);
        box-shadow: var(--p-tagcloud-item-focus-ring-shadow);
      }
    }
  }
  .p-tagcloud-strength-1 {
    font-size: var(--p-tagcloud-strength-1-font-size);
  }
  .p-tagcloud-strength-2 {
    font-size: var(--p-tagcloud-strength-2-font-size);
  }
  .p-tagcloud-strength-3 {
    font-size: var(--p-tagcloud-strength-3-font-size);
  }
  .p-tagcloud-strength-4 {
    font-size: var(--p-tagcloud-strength-4-font-size);
  }
  .p-tagcloud-strength-5 {
    font-size: var(--p-tagcloud-strength-5-font-size);
  }
}

/* packages/components/src/menu/tieredmenu.css */
@layer primefaces.components {
  .p-menu.p-tieredmenu {
    --_bg: var(--p-tieredmenu-background);
    --_border-color: var(--p-tieredmenu-border-color);
    --_border-radius: var(--p-tieredmenu-border-radius);
    --_color: var(--p-tieredmenu-color);
    --_shadow: var(--p-tieredmenu-shadow);
    --_list-padding: var(--p-tieredmenu-list-padding);
    --_list-gap: var(--p-tieredmenu-list-gap);
    --_transition-duration: var(--p-tieredmenu-transition-duration);
    --_item-border-radius: var(--p-tieredmenu-item-border-radius);
    --_item-padding: var(--p-tieredmenu-item-padding);
    --_item-gap: var(--p-tieredmenu-item-gap);
    --_item-color: var(--p-tieredmenu-item-color);
    --_item-focus-background: var(--p-tieredmenu-item-focus-background);
    --_item-focus-color: var(--p-tieredmenu-item-focus-color);
    --_item-active-background: var(--p-tieredmenu-item-active-background);
    --_item-active-color: var(--p-tieredmenu-item-active-color);
    --_item-icon-color: var(--p-tieredmenu-item-icon-color);
    --_item-icon-focus-color: var(--p-tieredmenu-item-icon-focus-color);
    --_item-icon-active-color: var(--p-tieredmenu-item-icon-active-color);
    --_item-icon-size: var(--p-tieredmenu-item-icon-size);
    --_item-label-font-size: var(--p-tieredmenu-item-label-font-size);
    --_item-label-font-weight: var(--p-tieredmenu-item-label-font-weight);
    --_submenu-icon-color: var(--p-tieredmenu-submenu-icon-color);
    --_submenu-icon-focus-color: var(--p-tieredmenu-submenu-icon-focus-color);
    --_submenu-icon-size: var(--p-tieredmenu-submenu-icon-size);
    --_submenu-icon-active-color: var(--p-tieredmenu-submenu-icon-active-color);
    --_separator-border-color: var(--p-tieredmenu-separator-border-color);
    --_submenu-background: var(--p-tieredmenu-background);
    --_submenu-border-color: var(--p-tieredmenu-border-color);
    --_submenu-border-radius: var(--p-tieredmenu-border-radius);
    --_submenu-padding: var(--p-tieredmenu-list-padding);
    --_submenu-shadow: var(--p-tieredmenu-shadow);
  }
}

/* packages/components/src/toggleswitch/toggleswitch.css */
@layer primefaces.components {
  .p-toggleswitch-handler {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-toggleswitch-dual-icon {
    .p-toggleswitch-handler span {
      position: absolute;
      transition-duration: var(--p-toggleswitch-slide-duration);
      transition-timing-function: var(--p-transition-easing);
      transition-property: opacity, transform;
      opacity: 0;
      transform: rotate(-90deg);
      & + span {
        opacity: 1;
        transform: rotate(0deg);
      }
    }
    &.p-toggleswitch-checked .p-toggleswitch-handler span {
      opacity: 1;
      transform: rotate(0deg);
      & + span {
        opacity: 0;
        transform: rotate(90deg);
      }
    }
    &:dir(rtl) .p-toggleswitch-handler span {
      transform: rotate(90deg);
      & + span {
        transform: rotate(0deg);
      }
    }
    &.p-toggleswitch-checked:dir(rtl) .p-toggleswitch-handler span {
      transform: rotate(0deg);
      & + span {
        transform: rotate(-90deg);
      }
    }
  }
  .p-toggleswitch {
    --_width: var(--_toggleswitch-width, var(--p-toggleswitch-width));
    --_height: var(--_toggleswitch-height, var(--p-toggleswitch-height));
    --_gap: var(--_toggleswitch-gap, var(--p-toggleswitch-gap));
    --_handle-size: var(--_toggleswitch-handle-size, var(--p-toggleswitch-handle-size));
    --_handle-icon-size: var(--_toggleswitch-handle-icon-size, var(--p-toggleswitch-handle-icon-size));
    position: relative;
    display: inline-block;
    width: var(--_width);
    height: var(--_height);
    .p-toggleswitch-slider {
      position: absolute;
      cursor: pointer;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: var(--p-toggleswitch-background);
      border: var(--p-toggleswitch-border-width) solid var(--p-toggleswitch-border-color);
      border-radius: var(--p-toggleswitch-border-radius);
      box-shadow: var(--p-toggleswitch-shadow);
      outline-color: transparent;
      transition:
        background var(--p-toggleswitch-transition-duration),
        color var(--p-toggleswitch-transition-duration),
        border-color var(--p-toggleswitch-transition-duration),
        outline-color var(--p-toggleswitch-transition-duration),
        box-shadow var(--p-toggleswitch-transition-duration);
    }
    .p-toggleswitch-handler {
      position: absolute;
      top: 50%;
      background: var(--p-toggleswitch-handle-background);
      color: var(--p-toggleswitch-handle-color);
      width: var(--_handle-size);
      height: var(--_handle-size);
      inset-inline-start: calc(var(--_gap) - var(--p-toggleswitch-border-width));
      margin-top: calc(-1 * var(--_handle-size) / 2);
      border-radius: var(--p-toggleswitch-handle-border-radius);
      box-shadow: var(--p-toggleswitch-handle-shadow);
      font-size: var(--_handle-icon-size);
      line-height: var(--_handle-size);
      transition:
        background var(--p-toggleswitch-transition-duration),
        color var(--p-toggleswitch-transition-duration),
        transform var(--p-toggleswitch-slide-duration) var(--p-transition-easing),
        box-shadow var(--p-toggleswitch-slide-duration);
    }
    .p-toggleswitch-handler span {
      font-size: var(--_handle-icon-size);
      line-height: var(--_handle-size);
    }
    &.p-toggleswitch-checked {
      .p-toggleswitch-slider {
        background: var(--p-toggleswitch-checked-background);
        border-color: var(--p-toggleswitch-checked-border-color);
      }
      .p-toggleswitch-handler {
        background: var(--p-toggleswitch-handle-checked-background);
        color: var(--p-toggleswitch-handle-checked-color);
        transform: translateX(calc(var(--_width) - var(--_handle-size) - 2 * var(--_gap)));
        &:dir(rtl) {
          transform: translateX(calc(-1 * (var(--_width) - var(--_handle-size) - 2 * var(--_gap))));
        }
      }
    }
    &:not(.p-state-disabled, .p-state-readonly):hover {
      .p-toggleswitch-slider {
        background: var(--p-toggleswitch-hover-background);
        border-color: var(--p-toggleswitch-hover-border-color);
      }
      .p-toggleswitch-handler {
        background: var(--p-toggleswitch-handle-hover-background);
        color: var(--p-toggleswitch-handle-hover-color);
      }
    }
    &.p-toggleswitch-checked:not(.p-state-disabled, .p-state-readonly):hover {
      .p-toggleswitch-slider {
        background: var(--p-toggleswitch-checked-hover-background);
        border-color: var(--p-toggleswitch-checked-hover-border-color);
      }
      .p-toggleswitch-handler {
        background: var(--p-toggleswitch-handle-checked-hover-background);
        color: var(--p-toggleswitch-handle-checked-hover-color);
      }
    }
    &.p-toggleswitch-focus .p-toggleswitch-slider {
      outline: var(--p-toggleswitch-focus-ring-width) var(--p-toggleswitch-focus-ring-style) var(--p-toggleswitch-focus-ring-color);
      outline-offset: var(--p-toggleswitch-focus-ring-offset);
      box-shadow: var(--p-toggleswitch-focus-ring-shadow);
    }
    .p-toggleswitch-slider.p-state-error,
    &:hover .p-toggleswitch-slider.p-state-error,
    &.p-toggleswitch-checked:hover .p-toggleswitch-slider.p-state-error {
      border-color: var(--p-toggleswitch-invalid-border-color);
    }
    &.p-state-disabled {
      opacity: var(--p-toggleswitch-disabled-opacity);
      .p-toggleswitch-slider {
        cursor: default;
        background: var(--p-toggleswitch-disabled-background);
      }
      .p-toggleswitch-handler {
        background: var(--p-toggleswitch-handle-disabled-background);
      }
      &.p-toggleswitch-checked {
        .p-toggleswitch-slider {
          background: var(--p-toggleswitch-checked-disabled-background);
        }
        .p-toggleswitch-handler {
          background: var(--p-toggleswitch-handle-checked-disabled-background);
        }
      }
    }
    &.p-state-readonly .p-toggleswitch-slider {
      cursor: default;
    }
  }
  .p-toggleswitch-sm {
    --_toggleswitch-width: var(--p-toggleswitch-sm-width);
    --_toggleswitch-height: var(--p-toggleswitch-sm-height);
    --_toggleswitch-gap: var(--p-toggleswitch-sm-gap);
    --_toggleswitch-handle-size: var(--p-toggleswitch-handle-sm-size);
    --_toggleswitch-handle-icon-size: var(--p-toggleswitch-handle-sm-icon-size);
  }
  .p-toggleswitch-lg {
    --_toggleswitch-width: var(--p-toggleswitch-lg-width);
    --_toggleswitch-height: var(--p-toggleswitch-lg-height);
    --_toggleswitch-gap: var(--p-toggleswitch-lg-gap);
    --_toggleswitch-handle-size: var(--p-toggleswitch-handle-lg-size);
    --_toggleswitch-handle-icon-size: var(--p-toggleswitch-handle-lg-icon-size);
  }
}

/* packages/components/src/toolbar/toolbar.css */
@layer primefaces.components {
  .p-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--p-toolbar-gap);
    padding: var(--p-toolbar-padding);
    background: var(--p-toolbar-background);
    color: var(--p-toolbar-color);
    border: 1px solid var(--p-toolbar-border-color);
    border-radius: var(--p-toolbar-border-radius);
    font-weight: inherit;
    .p-toolbar-group-left,
    .p-toolbar-group-right {
      gap: var(--p-toolbar-gap);
    }
    .p-toolbar-group-right {
      margin-inline-start: auto;
    }
  }
  .p-toolbar-group-left,
  .p-toolbar-group-right {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }
}

/* packages/components/src/tooltip/tooltip.css */
@layer primefaces.components {
  .p-tooltip {
    position: absolute;
    display: none;
    max-width: var(--p-tooltip-max-width);
    &.p-tooltip-right,
    &.p-tooltip-left {
      padding: 0 var(--p-tooltip-gutter);
    }
    &.p-tooltip-top,
    &.p-tooltip-bottom {
      padding: var(--p-tooltip-gutter) 0;
    }
    .p-tooltip-text {
      word-break: break-word;
      background: var(--p-tooltip-background);
      color: var(--p-tooltip-color);
      padding: var(--p-tooltip-padding);
      box-shadow: var(--p-tooltip-shadow);
      border-radius: var(--p-tooltip-border-radius);
      font-size: var(--p-tooltip-font-size);
      font-weight: var(--p-tooltip-font-weight);
      img,
      svg,
      video,
      canvas {
        display: block;
        max-width: 100%;
        height: auto;
      }
    }
    &.p-tooltip-right .p-tooltip-arrow {
      margin-top: calc(-1 * var(--p-tooltip-gutter));
      border-width: var(--p-tooltip-gutter) var(--p-tooltip-gutter) var(--p-tooltip-gutter) 0;
      border-right-color: var(--p-tooltip-background);
    }
    &.p-tooltip-left .p-tooltip-arrow {
      margin-top: calc(-1 * var(--p-tooltip-gutter));
      border-width: var(--p-tooltip-gutter) 0 var(--p-tooltip-gutter) var(--p-tooltip-gutter);
      border-left-color: var(--p-tooltip-background);
    }
    &.p-tooltip-top .p-tooltip-arrow {
      margin-left: calc(-1 * var(--p-tooltip-gutter));
      border-width: var(--p-tooltip-gutter) var(--p-tooltip-gutter) 0 var(--p-tooltip-gutter);
      border-top-color: var(--p-tooltip-background);
    }
    &.p-tooltip-bottom .p-tooltip-arrow {
      margin-left: calc(-1 * var(--p-tooltip-gutter));
      border-width: 0 var(--p-tooltip-gutter) var(--p-tooltip-gutter) var(--p-tooltip-gutter);
      border-bottom-color: var(--p-tooltip-background);
    }
    .p-tooltip-text.p-state-error {
      background: var(--p-tooltip-invalid-background);
      color: var(--p-tooltip-invalid-color);
    }
    &.p-tooltip-right .p-tooltip-arrow.p-state-error {
      border-right-color: var(--p-tooltip-invalid-background);
    }
    &.p-tooltip-left .p-tooltip-arrow.p-state-error {
      border-left-color: var(--p-tooltip-invalid-background);
    }
    &.p-tooltip-top .p-tooltip-arrow.p-state-error {
      border-top-color: var(--p-tooltip-invalid-background);
    }
    &.p-tooltip-bottom .p-tooltip-arrow.p-state-error {
      border-bottom-color: var(--p-tooltip-invalid-background);
    }
  }
  .p-tooltip-arrow {
    position: absolute;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
  }
  .p-tooltip-right .p-tooltip-arrow {
    top: 50%;
    left: 0;
  }
  .p-tooltip-left .p-tooltip-arrow {
    top: 50%;
    right: 0;
  }
  .p-tooltip-top .p-tooltip-arrow {
    bottom: 0;
    left: 50%;
  }
  .p-tooltip-bottom .p-tooltip-arrow {
    top: 0;
    left: 50%;
  }
}

/* packages/components/src/tree/tree.css */
@layer primefaces.components {
  .p-tree {
    position: relative;
    border: 1px solid var(--p-tree-border-color);
    background: var(--p-tree-background);
    color: var(--p-tree-color);
    padding: var(--p-tree-padding);
    width: 100%;
    border-radius: var(--p-tree-border-radius);
    .p-treenode {
      list-style: none outside none;
      margin: 0;
    }
    .p-tree-toggler {
      cursor: pointer;
      display: inline-block;
      vertical-align: middle;
    }
    .p-treenode-icon {
      display: inline-block;
      vertical-align: middle;
    }
    .p-treenode-label {
      display: inline-block;
      vertical-align: middle;
      cursor: default;
    }
    .p-tree-selectable .p-treenode-content,
    .p-treenode-content.p-tree-selectable,
    .p-treenode-content.p-tree-selectable .p-treenode-label {
      cursor: pointer;
    }
    .p-treenode-leaf-icon {
      display: inline-block;
    }
    .p-chkbox {
      display: inline-block;
    }
    .p-chkbox-box {
      cursor: pointer;
    }
    .p-treenode-hidden {
      display: none;
    }
    &.p-noborder {
      border: 0;
      padding: 0;
    }
    &.p-state-disabled .p-tree-toggler,
    &.p-state-disabled .p-tree-selectable .p-treenode-content,
    &.p-state-disabled .p-treenode-content.p-tree-selectable,
    &.p-state-disabled .p-treenode-content.p-tree-selectable .p-treenode-label,
    &.p-state-disabled .p-tree-selectable .p-treenode-icon,
    &.p-state-disabled .p-chkbox-box {
      cursor: default;
    }
    .p-treenode-content .p-chkbox.p-selection {
      display: none;
    }
    .p-treenode-content.p-tree-selectable .p-chkbox.p-selection,
    &.p-tree-checkbox-all .p-treenode-content .p-chkbox.p-selection {
      display: inline-block;
    }
    &.p-tree-rtl {
      direction: rtl;
    }
    .p-tree-scrollertop,
    .p-tree-scrollerbottom {
      height: 10px;
      width: 100%;
      position: absolute;
    }
    .p-tree-scrollertop {
      top: 0;
    }
    .p-tree-scrollerbottom {
      bottom: 0;
    }
    .p-tree-container {
      white-space: nowrap;
      overflow: auto;
      padding: 0;
      margin: 0;
      .p-treenode {
        padding: var(--p-tree-gap) 0 0 0;
      }
      .p-treenode .p-treenode-content * {
        flex: none;
      }
      .p-treenode .p-treenode-content {
        display: flex;
        align-items: center;
        padding: var(--p-tree-node-padding);
        color: var(--p-tree-node-color);
        border-radius: var(--p-tree-node-border-radius);
        outline-color: transparent;
        transition:
          background var(--p-tree-transition-duration),
          color var(--p-tree-transition-duration),
          outline-color var(--p-tree-transition-duration),
          box-shadow var(--p-tree-transition-duration);
      }
      .p-treenode .p-treenode-content .p-tree-toggler {
        margin: 0 var(--p-tree-node-gap) 0 0;
        width: var(--p-tree-node-toggle-button-size);
        height: var(--p-tree-node-toggle-button-size);
        line-height: var(--p-tree-node-toggle-button-size);
        text-align: center;
        padding: 0;
        -webkit-user-select: none;
        user-select: none;
        background: transparent;
        color: var(--p-tree-node-toggle-button-color);
        border: 0 none;
        border-radius: var(--p-tree-node-toggle-button-border-radius);
        outline-color: transparent;
        transition:
          background var(--p-tree-transition-duration),
          color var(--p-tree-transition-duration),
          outline-color var(--p-tree-transition-duration),
          box-shadow var(--p-tree-transition-duration);
      }
      .p-treenode .p-treenode-content .p-tree-toggler:hover {
        background: var(--p-tree-node-toggle-button-hover-background);
        color: var(--p-tree-node-toggle-button-hover-color);
      }
      .p-treenode .p-treenode-content .p-tree-toggler:focus-visible {
        outline: var(--p-tree-node-toggle-button-focus-ring-width) var(--p-tree-node-toggle-button-focus-ring-style) var(--p-tree-node-toggle-button-focus-ring-color);
        outline-offset: var(--p-tree-node-toggle-button-focus-ring-offset);
        box-shadow: var(--p-tree-node-toggle-button-focus-ring-shadow);
      }
      .p-tree-toggle-icon {
        --_icon: var(--p-tree-toggle-expanded-icon);
      }
      .p-treenode[aria-expanded=false] > .p-treenode-content > .p-tree-toggle-icon {
        --_icon: var(--p-tree-toggle-collapsed-icon);
      }
      .p-treenode .p-treenode-content .p-treenode-leaf-icon {
        width: var(--p-tree-node-toggle-button-size);
        height: var(--p-tree-node-toggle-button-size);
        margin: 0 var(--p-tree-node-gap) 0 0;
      }
      .p-treenode .p-treenode-content .p-treenode-icon {
        margin: 0 var(--p-tree-node-gap) 0 0;
        color: var(--p-tree-node-icon-color);
        transition: color var(--p-tree-transition-duration);
      }
    }
    .p-treenode-children {
      margin: 0;
      padding: 0 0 0 var(--p-tree-indent);
    }
    &.p-tree-rtl .p-treenode-children {
      padding: 0 var(--p-tree-indent) 0 0;
    }
    .p-tree-container {
      .p-treenode .p-treenode-content .p-treenode-label {
        margin: 0;
        padding: 0;
        font-size: var(--p-tree-node-label-font-size);
        font-weight: var(--p-tree-node-label-font-weight);
        border-radius: var(--p-tree-node-border-radius);
      }
      .p-treenode .p-treenode-content .p-chkbox {
        margin-right: calc(2 * var(--p-tree-node-gap));
      }
      .p-treenode .p-treenode-content .p-chkbox .p-checkbox-indeterminate-icon {
        color: var(--p-tree-color);
      }
      .p-treenode .p-treenode-content.p-state-highlight {
        background: var(--p-tree-node-selected-background);
        color: var(--p-tree-node-selected-color);
      }
      .p-treenode .p-treenode-content.p-state-highlight .p-treenode-label {
        font-weight: var(--p-tree-node-label-selected-font-weight);
      }
      .p-treenode .p-treenode-content.p-state-highlight .p-tree-toggler,
      .p-treenode .p-treenode-content.p-state-highlight .p-treenode-icon {
        color: var(--p-tree-node-icon-selected-color);
      }
      .p-treenode .p-treenode-content.p-state-highlight .p-tree-toggler:hover {
        background: var(--p-tree-node-toggle-button-selected-hover-background);
        color: var(--p-tree-node-toggle-button-selected-hover-color);
      }
      .p-treenode .p-treenode-content.p-state-highlight .p-treenode-icon:hover {
        color: var(--p-tree-node-icon-selected-color);
      }
      .p-treenode .p-treenode-content.p-tree-selectable:not(.p-state-highlight):hover,
      .p-treenode .p-treenode-content.p-tree-selectable:not(.p-state-highlight).p-state-hover {
        background: var(--p-tree-node-hover-background);
        color: var(--p-tree-node-hover-color);
      }
      .p-treenode .p-treenode-content.p-tree-selectable:not(.p-state-highlight):hover .p-treenode-icon,
      .p-treenode .p-treenode-content.p-tree-selectable:not(.p-state-highlight).p-state-hover .p-treenode-icon {
        color: var(--p-tree-node-icon-hover-color);
      }
      .p-tree-droppoint.p-state-hover {
        background: var(--p-tree-droppoint-active-background);
        border: 0 none;
      }
      .p-treenode-outline {
        outline: var(--p-tree-node-focus-ring-width) var(--p-tree-node-focus-ring-style) var(--p-tree-node-focus-ring-color);
        outline-offset: var(--p-tree-node-focus-ring-offset);
        box-shadow: var(--p-tree-node-focus-ring-shadow);
      }
    }
    .p-tree-droppoint {
      height: var(--p-tree-droppoint-height);
    }
    &.p-tree-rtl .p-tree-container .p-treenode .p-treenode-content {
      .p-tree-toggler {
        margin-right: 0;
        margin-left: var(--p-tree-node-gap);
      }
      .p-treenode-leaf-icon {
        margin: 0 0 0 var(--p-tree-node-gap);
      }
      .p-treenode-icon {
        margin: 0 0 0 var(--p-tree-node-gap);
      }
      .p-chkbox {
        margin-right: 0;
        margin-left: calc(2 * var(--p-tree-node-gap));
      }
    }
    &:is(.p-tree-rtl, :dir(rtl)) .p-tree-container .p-treenode[aria-expanded=false] > .p-treenode-content > .p-tree-toggle-icon {
      scale: -1 1;
    }
    .p-tree-filter-container {
      margin: var(--p-tree-filter-margin);
      .p-tree-filter-icon {
        --_icon: var(--p-tree-filter-icon);
        position: absolute;
        inset-inline-start: var(--p-inputtext-padding-x);
        top: 50%;
        margin-top: calc(-1 * var(--p-icon-size) / 2);
        color: var(--p-form-field-icon-color);
      }
      .p-inputfield {
        padding-block: var(--p-inputtext-padding-y);
        padding-inline: var(--p-inputtext-padding-x);
        padding-inline-start: calc(2 * var(--p-inputtext-padding-x) + var(--p-icon-size));
      }
    }
  }
  .p-tree-droppoint {
    list-style: none outside none;
    margin: 0;
    padding: 0;
  }
  .p-tree-filter-container {
    padding: 0;
    position: relative;
  }
  .p-tree-filter.p-inputfield {
    width: 100%;
    box-sizing: border-box;
  }
  .p-tree-horizontal {
    width: auto;
    overflow: auto;
    .p-treenode-content {
      position: relative;
      z-index: 1;
      outline: 0 none;
    }
    .p-treenode-parent .p-treenode-content {
      white-space: nowrap;
    }
  }
  .p-tree.p-tree-horizontal {
    padding-left: 0;
    padding-right: 0;
    table,
    tr,
    td {
      border-collapse: collapse;
      margin: 0;
      padding: 0;
      vertical-align: middle;
    }
    table {
      height: 0;
    }
    .p-treenode {
      background: linear-gradient(var(--p-tree-connector-color), var(--p-tree-connector-color)) repeat-x left center / 100% 1px;
      padding: 5px 40px;
      position: relative;
    }
    .p-treenode.p-treenode-leaf,
    .p-treenode.p-treenode-collapsed {
      padding-inline-end: 0;
    }
    .p-treenode-children {
      padding: 0;
      margin: 0;
    }
    .p-treenode-connector {
      width: 1px;
    }
    .p-treenode-connector-table {
      height: 100%;
      width: 1px;
    }
    .p-treenode-connector-line {
      background: linear-gradient(var(--p-tree-connector-color), var(--p-tree-connector-color)) repeat-y left top / 1px 100%;
      width: 1px;
    }
    .p-treenode-content {
      font-weight: var(--p-tree-node-label-font-weight);
      border: 1px solid var(--p-tree-horizontal-node-border-color);
      background: var(--p-tree-horizontal-node-background);
      color: var(--p-tree-node-color);
      padding: var(--p-tree-horizontal-node-padding);
      border-radius: var(--p-tree-node-border-radius);
      transition: background var(--p-tree-transition-duration), color var(--p-tree-transition-duration);
      &.p-state-hover {
        background: var(--p-tree-node-hover-background);
        color: var(--p-tree-node-hover-color);
      }
      &.p-state-highlight {
        background: var(--p-tree-node-selected-background);
        color: var(--p-tree-node-selected-color);
      }
      .p-tree-toggler {
        margin-inline-end: var(--p-tree-node-gap);
        vertical-align: middle;
      }
      .p-tree-horizontal-toggle-icon {
        --_icon: var(--p-tree-horizontal-toggle-expanded-icon);
      }
      .p-treenode-icon {
        vertical-align: middle;
        margin-inline-end: var(--p-tree-node-gap);
      }
      .p-treenode-label {
        padding: 0;
        vertical-align: middle;
      }
      .p-chkbox {
        vertical-align: bottom;
        margin-inline-end: var(--p-tree-node-gap);
      }
      .p-chkbox .p-checkbox-indeterminate-icon {
        color: var(--p-tree-color);
      }
    }
    .p-treenode-collapsed > .p-treenode-content > .p-tree-horizontal-toggle-icon {
      --_icon: var(--p-tree-horizontal-toggle-collapsed-icon);
    }
    .p-treenode::before {
      background-color: var(--p-tree-background);
    }
  }
  .p-tree-horizontal .p-treenode {
    &::before {
      content: " ";
      position: absolute;
      top: 0;
      inset-inline-start: 40px;
      height: 100%;
      width: calc(100% - 80px);
      pointer-events: none;
    }
    &.p-treenode-collapsed::before,
    &.p-treenode-leaf::before {
      width: calc(100% - 40px);
    }
  }
  .p-tree-draghelper,
  .p-tree-draghelper.p-state-highlight {
    background: var(--p-tree-draghelper-background);
    color: var(--p-tree-node-color);
    border: 1px solid var(--p-tree-draghelper-border-color);
    border-radius: var(--p-tree-node-border-radius);
  }
  .p-fluid .p-tree {
    width: 100%;
  }
}

/* packages/components/src/treetable/treetable.css */
@layer primefaces.components {
  .p-treetable {
    .p-treetable-header {
      background: var(--p-treetable-header-background);
      color: var(--p-treetable-header-color);
      border: 1px solid var(--p-treetable-header-border-color);
      border-width: var(--p-treetable-header-border-width);
      padding: var(--p-treetable-header-padding);
      font-weight: var(--p-treetable-header-font-weight);
      text-align: start;
    }
    .p-treetable-footer {
      background: var(--p-treetable-footer-background);
      color: var(--p-treetable-footer-color);
      border: 1px solid var(--p-treetable-footer-border-color);
      border-width: var(--p-treetable-footer-border-width);
      padding: var(--p-treetable-footer-padding);
      font-weight: var(--p-treetable-footer-font-weight);
      text-align: start;
    }
    .p-paginator {
      padding: var(--p-paginator-padding);
      &.p-paginator-top {
        border-style: solid;
        border-color: var(--p-treetable-paginator-top-border-color);
        border-width: var(--p-treetable-paginator-top-border-width);
        border-radius: 0;
      }
      &.p-paginator-bottom {
        border-style: solid;
        border-color: var(--p-treetable-paginator-bottom-border-color);
        border-width: var(--p-treetable-paginator-bottom-border-width);
        border-radius: 0;
      }
    }
    table {
      border-collapse: collapse;
      width: 100%;
      table-layout: fixed;
    }
    thead th,
    tbody td,
    tfoot td {
      overflow: hidden;
      white-space: nowrap;
      border-style: solid;
    }
    thead th {
      background: var(--p-treetable-header-cell-background);
      color: var(--p-treetable-header-cell-color);
      padding: var(--p-treetable-header-cell-padding);
      border: 1px solid var(--p-treetable-header-cell-border-color);
      border-width: 0 0 1px 0;
      font-weight: normal;
      text-align: start;
      box-sizing: content-box;
      outline-color: transparent;
      transition:
        background var(--p-treetable-transition-duration),
        color var(--p-treetable-transition-duration),
        border-color var(--p-treetable-transition-duration),
        outline-color var(--p-treetable-transition-duration),
        box-shadow var(--p-treetable-transition-duration);
      .p-column-title {
        font-weight: var(--p-treetable-column-title-font-weight);
        font-size: var(--p-treetable-column-title-font-size);
        vertical-align: middle;
      }
      .p-sortable-column-icon {
        display: inline-block;
        vertical-align: middle;
        margin: 0;
        margin-inline-start: var(--p-treetable-header-cell-gap);
        color: var(--p-treetable-sort-icon-color);
        font-size: var(--p-treetable-sort-icon-size);
        transition: color var(--p-treetable-transition-duration);
        &.p-treetable-sort-icon {
          --_icon: var(--p-treetable-sort-icon);
        }
        &.p-treetable-sort-asc-icon {
          --_icon: var(--p-treetable-sort-asc-icon);
        }
        &.p-treetable-sort-desc-icon {
          --_icon: var(--p-treetable-sort-desc-icon);
        }
      }
      .p-sortable-column-badge {
        border-radius: var(--p-badge-border-radius);
        padding: var(--p-badge-padding);
        height: var(--p-badge-height);
        min-width: var(--p-badge-min-width);
        line-height: var(--p-badge-height);
        color: var(--p-badge-primary-color);
        background: var(--p-badge-primary-background);
        margin-inline-start: var(--p-treetable-header-cell-gap);
        font-size: var(--p-badge-font-size);
        font-weight: var(--p-badge-font-weight);
        text-align: center;
        vertical-align: middle;
      }
      &.p-sortable-column.p-state-focus,
      &.p-sortable-column:focus-visible {
        outline: var(--p-treetable-header-cell-focus-ring-width) var(--p-treetable-header-cell-focus-ring-style) var(--p-treetable-header-cell-focus-ring-color);
        outline-offset: var(--p-treetable-header-cell-focus-ring-offset);
        box-shadow: var(--p-treetable-header-cell-focus-ring-shadow);
      }
      &.p-state-hover {
        background: var(--p-treetable-header-cell-hover-background);
        color: var(--p-treetable-header-cell-hover-color);
        .p-sortable-column-icon {
          color: var(--p-treetable-sort-icon-hover-color);
        }
      }
    }
    thead th.p-state-active {
      &,
      &.p-state-hover {
        background: var(--p-treetable-header-cell-selected-background);
        color: var(--p-treetable-header-cell-selected-color);
      }
      .p-sortable-column-icon {
        color: var(--p-treetable-header-cell-selected-color);
      }
    }
    .p-sortable-column {
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
    }
    .p-sortable-column-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      &.p-hidden {
        display: none;
      }
    }
    .p-column-filter {
      display: block;
      box-sizing: border-box;
      width: 100%;
      margin: var(--p-treetable-column-filter-gap) auto auto auto;
    }
    .p-column-customfilter {
      margin: var(--p-treetable-column-filter-gap) auto auto auto;
      .p-inputfield,
      .p-selectonemenu {
        width: 100%;
        max-width: 100%;
      }
    }
    .p-treetable-data tr.p-state-hover {
      cursor: pointer;
    }
    .p-treetable-data > tr {
      background: var(--p-treetable-row-background);
      color: var(--p-treetable-row-color);
      outline-color: transparent;
      transition:
        background var(--p-treetable-transition-duration),
        color var(--p-treetable-transition-duration),
        border-color var(--p-treetable-transition-duration),
        outline-color var(--p-treetable-transition-duration),
        box-shadow var(--p-treetable-transition-duration);
      > td {
        padding: var(--p-treetable-body-cell-padding);
        border: 1px solid var(--p-treetable-body-cell-border-color);
        border-width: 0 0 1px 0;
        font-size: var(--p-treetable-body-cell-font-size);
        font-weight: var(--p-treetable-body-cell-font-weight);
        text-align: start;
      }
      &:focus-visible {
        outline: var(--p-treetable-row-focus-ring-width) var(--p-treetable-row-focus-ring-style) var(--p-treetable-row-focus-ring-color);
        outline-offset: var(--p-treetable-row-focus-ring-offset);
        box-shadow: var(--p-treetable-row-focus-ring-shadow);
      }
      &.p-treetable-empty-message > td {
        color: var(--p-treetable-empty-message-color);
      }
      > td .p-treetable-toggler {
        margin: 0;
        margin-inline-end: var(--p-treetable-body-cell-gap);
        width: var(--p-treetable-node-toggle-button-size);
        height: var(--p-treetable-node-toggle-button-size);
        background: transparent;
        color: var(--p-treetable-node-toggle-button-color);
        border: 0 none;
        border-radius: var(--p-treetable-node-toggle-button-border-radius);
        text-align: center;
        padding: 0;
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-treetable-transition-duration),
          color var(--p-treetable-transition-duration),
          outline-color var(--p-treetable-transition-duration),
          box-shadow var(--p-treetable-transition-duration);
        &:hover {
          background: var(--p-treetable-node-toggle-button-hover-background);
          color: var(--p-treetable-node-toggle-button-hover-color);
          border-color: transparent;
        }
        &:focus-visible {
          outline: var(--p-treetable-node-toggle-button-focus-ring-width) var(--p-treetable-node-toggle-button-focus-ring-style) var(--p-treetable-node-toggle-button-focus-ring-color);
          outline-offset: var(--p-treetable-node-toggle-button-focus-ring-offset);
          box-shadow: var(--p-treetable-node-toggle-button-focus-ring-shadow);
        }
        &.p-treetable-toggle-icon {
          --_icon: var(--p-treetable-toggle-expanded-icon);
        }
      }
      &[aria-expanded=false] > td > .p-treetable-toggle-icon {
        --_icon: var(--p-treetable-toggle-collapsed-icon);
        &:dir(rtl) {
          transform: rotate(180deg);
        }
      }
      > td .p-chkbox.p-selection {
        vertical-align: middle;
        margin: 0;
        margin-inline-end: var(--p-treetable-body-cell-gap);
      }
      &.p-state-hover {
        background: var(--p-treetable-row-hover-background);
        color: var(--p-treetable-row-hover-color);
      }
      &.p-state-highlight {
        background: var(--p-treetable-row-selected-background);
        color: var(--p-treetable-row-selected-color);
        cursor: default;
        .p-treetable-toggler {
          color: inherit;
        }
        .p-treetable-toggler:hover {
          background: var(--p-treetable-node-toggle-button-selected-hover-background);
          color: var(--p-treetable-node-toggle-button-selected-hover-color);
        }
      }
      &.p-state-highlight > td,
      &:has(+ tr.p-state-highlight) > td {
        border-bottom-color: var(--p-treetable-body-cell-selected-border-color);
      }
    }
    .p-treetable-toggler {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      cursor: pointer;
    }
    .p-treetable-indent {
      display: inline-block;
      vertical-align: middle;
      width: var(--p-treetable-node-indent);
      height: var(--p-treetable-node-indent);
    }
    .p-chkbox.p-selection {
      display: none;
    }
    .p-treetable-selectable-node .p-chkbox.p-selection {
      display: inline-flex;
    }
    &.p-treetable-checkbox-all .p-chkbox.p-selection {
      display: inline-flex;
    }
    .p-editable-column .p-cell-editor {
      display: inline-block;
      vertical-align: middle;
    }
    .p-cell-editor-input {
      display: none;
    }
    .p-row-editing {
      .p-cell-editor .p-cell-editor-output {
        display: none;
      }
      .p-cell-editor .p-cell-editor-input {
        display: block;
      }
      .p-row-editor .p-row-editor-pencil {
        display: none;
      }
      .p-row-editor .p-row-editor-check,
      .p-row-editor .p-row-editor-close {
        display: inline-flex;
      }
    }
    .p-row-editor {
      span {
        cursor: pointer;
      }
      .p-row-editor-pencil {
        display: inline-flex;
      }
      .p-row-editor-check,
      .p-row-editor-close {
        display: none;
      }
    }
    .p-treetable-data tr.p-row-editing td.p-editable-column,
    .p-treetable-data td.p-cell-editing {
      padding-top: 0;
      padding-bottom: 0;
      margin-top: 0;
      margin-bottom: 0;
    }
    .p-row-editor {
      display: inline-flex;
      align-items: center;
      vertical-align: middle;
      > a {
        align-items: center;
        justify-content: center;
        text-decoration: none;
      }
    }
    .p-treetable-data > tr {
      .p-row-editor .p-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--p-treetable-node-toggle-button-size);
        height: var(--p-treetable-node-toggle-button-size);
        background: transparent;
        color: var(--p-treetable-node-toggle-button-color);
        border: 0 none;
        border-radius: var(--p-treetable-node-toggle-button-border-radius);
        text-align: center;
        padding: 0;
        -webkit-user-select: none;
        user-select: none;
        outline-color: transparent;
        transition:
          background var(--p-treetable-transition-duration),
          color var(--p-treetable-transition-duration),
          outline-color var(--p-treetable-transition-duration),
          box-shadow var(--p-treetable-transition-duration);
      }
      .p-row-editor .p-icon:hover {
        background: var(--p-treetable-node-toggle-button-hover-background);
        color: var(--p-treetable-node-toggle-button-hover-color);
        border-color: transparent;
      }
      .p-row-editor .p-icon:focus-visible,
      .p-row-editor a:focus-visible .p-icon {
        outline: var(--p-treetable-node-toggle-button-focus-ring-width) var(--p-treetable-node-toggle-button-focus-ring-style) var(--p-treetable-node-toggle-button-focus-ring-color);
        outline-offset: var(--p-treetable-node-toggle-button-focus-ring-offset);
        box-shadow: var(--p-treetable-node-toggle-button-focus-ring-shadow);
      }
      .p-row-editor a:focus-visible {
        outline: 0 none;
      }
      .p-row-editor .p-treetable-row-edit-icon {
        --_icon: var(--p-treetable-row-edit-icon);
      }
      .p-row-editor .p-row-editor-check {
        margin-inline-end: var(--p-treetable-body-cell-gap);
      }
      .p-row-editor .p-treetable-row-save-icon {
        --_icon: var(--p-treetable-row-save-icon);
      }
      .p-row-editor .p-treetable-row-cancel-icon {
        --_icon: var(--p-treetable-row-cancel-icon);
      }
      &.p-state-highlight .p-row-editor .p-icon {
        color: var(--p-treetable-row-selected-color);
      }
      &.p-state-highlight .p-row-editor .p-icon:hover {
        background: var(--p-treetable-node-toggle-button-selected-hover-background);
        color: var(--p-treetable-node-toggle-button-selected-hover-color);
      }
    }
    tfoot td {
      background: var(--p-treetable-footer-cell-background);
      border: 1px solid var(--p-treetable-footer-cell-border-color);
      border-width: 0 0 1px 0;
      color: var(--p-treetable-footer-cell-color);
      padding: var(--p-treetable-footer-cell-padding);
      font-weight: var(--p-treetable-column-footer-font-weight);
      font-size: var(--p-treetable-column-footer-font-size);
      text-align: start;
      box-sizing: content-box;
    }
    &.p-treetable-scrollable {
      .p-treetable-scrollable-theadclone tr th > * {
        display: none;
      }
    }
    .p-treetable-scrollable-header {
      background: var(--p-treetable-header-cell-background);
    }
    .p-treetable-scrollable-footer {
      background: var(--p-treetable-footer-cell-background);
    }
    .p-column-resizer {
      position: absolute;
      top: 0;
      inset-inline-end: 0;
      width: var(--p-treetable-column-resizer-width);
      height: 100%;
      margin: 0;
      padding: 0;
      cursor: col-resize;
      border: 1px solid transparent;
      box-sizing: border-box;
    }
    .p-column-resizer-helper {
      width: var(--p-treetable-resize-indicator-width);
      position: absolute;
      z-index: 10;
      display: none;
      background: var(--p-treetable-resize-indicator-color);
    }
    &.p-treetable-sm {
      .p-treetable-header {
        padding: var(--p-treetable-header-sm-padding);
      }
      thead > tr > th {
        padding: var(--p-treetable-header-cell-sm-padding);
      }
      .p-treetable-data > tr > td {
        padding: var(--p-treetable-body-cell-sm-padding);
      }
      tfoot > tr > td {
        padding: var(--p-treetable-footer-cell-sm-padding);
      }
      .p-treetable-footer {
        padding: var(--p-treetable-footer-sm-padding);
      }
    }
    &.p-treetable-lg {
      .p-treetable-header {
        padding: var(--p-treetable-header-lg-padding);
      }
      thead > tr > th {
        padding: var(--p-treetable-header-cell-lg-padding);
      }
      .p-treetable-data > tr > td {
        padding: var(--p-treetable-body-cell-lg-padding);
      }
      tfoot > tr > td {
        padding: var(--p-treetable-footer-cell-lg-padding);
      }
      .p-treetable-footer {
        padding: var(--p-treetable-footer-lg-padding);
      }
    }
    &.p-treetable-sm .p-treetable-scrollable-theadclone > tr > th,
    &.p-treetable-lg .p-treetable-scrollable-theadclone > tr > th {
      padding-top: 0;
      padding-bottom: 0;
    }
    &.p-treetable-gridlines {
      .p-treetable-header {
        border-width: 1px 1px 0 1px;
      }
      .p-treetable-footer {
        border-width: 0 1px 1px 1px;
      }
      .p-paginator {
        &.p-paginator-top {
          border-width: 1px 1px 0 1px;
        }
        &.p-paginator-bottom {
          border-width: 0 1px 1px 1px;
        }
      }
      thead > tr > th,
      .p-treetable-data > tr > td,
      tfoot > tr > td {
        border-width: 1px;
      }
      .p-treetable-scrollable-theadclone > tr > th {
        padding-top: 0;
        padding-bottom: 0;
        border-bottom: 0 none;
        border-top: 0 none;
      }
    }
  }
  .p-treetable-scrollable-body {
    overflow: auto;
  }
  .p-treetable-scrollable-header,
  .p-treetable-scrollable-footer {
    overflow: hidden;
    border: 0 none;
  }
  .p-treetable-scrollable .p-treetable-scrollable-header,
  .p-treetable-scrollable .p-treetable-scrollable-footer {
    position: relative;
  }
  .p-treetable-scrollable-theadclone {
    height: 0;
    tr {
      height: 0;
    }
    th {
      &.p-state-default {
        height: 0;
        border-bottom-width: 0;
        border-top-width: 0;
        padding-top: 0;
        padding-bottom: 0;
        outline: 0 none;
      }
      span {
        display: block;
        height: 0;
      }
    }
  }
  .p-treetable-resizable {
    padding-bottom: 1px;
    overflow: auto;
    th.p-resizable-column {
      background-clip: padding-box;
      position: relative;
    }
  }
  .p-treetable-reflow {
    .p-treetable-data td .p-column-title {
      display: none;
    }
  }
  @media (max-width: 640px) {
    .p-treetable-reflow thead th,
    .p-treetable-reflow tfoot td {
      display: none;
    }
    .p-treetable-reflow {
      thead th.p-filter-column {
        box-sizing: border-box;
        display: block;
        float: inline-start;
        clear: inline-start;
        width: 100% !important;
        border: 0 none;
        text-align: start;
        .p-column-title {
          display: block;
          font-weight: var(--p-treetable-reflow-title-font-weight);
          margin: 0 0 var(--p-treetable-reflow-gap) 0;
          padding: 0;
        }
        .p-sortable-column-icon,
        .p-sortable-column-badge,
        .p-column-resizer {
          display: none;
        }
        .p-column-filter,
        .p-column-customfilter {
          display: block;
          box-sizing: border-box;
          width: 100% !important;
          margin: 0;
        }
      }
      .p-treetable-data {
        td {
          text-align: start;
          display: block;
          border: 0 none;
          width: 100%;
          box-sizing: border-box;
          float: inline-start;
          clear: inline-start;
        }
        &.p-widget-content {
          border: 0 none;
        }
        tr.p-widget-content {
          border-left: 0 none;
          border-right: 0 none;
        }
        td .p-column-title {
          display: inline-block;
          min-width: 30%;
          margin: 0;
          margin-inline-end: var(--p-treetable-reflow-gap);
          padding: 0;
          font-weight: var(--p-treetable-reflow-title-font-weight);
        }
      }
    }
  }
}

/* packages/components/src/wizard/wizard.css */
@layer primefaces.components {
  .p-wizard {
    display: flex;
    flex-direction: column;
    gap: var(--p-wizard-gap);
    .p-wizard-step-titles {
      display: flex;
      flex-wrap: wrap;
      margin: 0;
      padding: 0;
      list-style-type: none;
      .p-wizard-step-title {
        flex: 1 1 0;
        margin: 0;
        padding: var(--p-wizard-step-padding);
        list-style-type: none;
        font-size: var(--p-wizard-step-font-size);
        font-weight: var(--p-wizard-step-font-weight);
        text-align: center;
        background: var(--p-wizard-step-background);
        color: var(--p-wizard-step-color);
        border: 1px solid var(--p-wizard-step-border-color);
        border-inline-end-width: 0;
        border-radius: 0;
        transition:
          background var(--p-wizard-transition-duration),
          color var(--p-wizard-transition-duration),
          border-color var(--p-wizard-transition-duration);
        &:first-child {
          border-start-start-radius: var(--p-wizard-step-border-radius);
          border-end-start-radius: var(--p-wizard-step-border-radius);
        }
        &:last-child {
          border-inline-end-width: 1px;
          border-start-end-radius: var(--p-wizard-step-border-radius);
          border-end-end-radius: var(--p-wizard-step-border-radius);
        }
        &.p-state-highlight {
          background: var(--p-wizard-step-active-background);
          color: var(--p-wizard-step-active-color);
          border-color: var(--p-wizard-step-active-border-color);
        }
      }
    }
    .p-wizard-content {
      margin: 0;
      padding: var(--p-wizard-content-padding);
      background: var(--p-wizard-content-background);
      color: var(--p-wizard-content-color);
    }
    .p-wizard-navbar {
      display: flex;
      align-items: center;
      gap: var(--p-wizard-gap);
      .p-wizard-nav-next {
        margin-inline-start: auto;
      }
    }
    .p-wizard-back-icon {
      --_icon: var(--p-wizard-back-icon);
    }
    .p-wizard-next-icon {
      --_icon: var(--p-wizard-next-icon);
    }
    .p-wizard-back-icon:dir(rtl),
    .p-wizard-next-icon:dir(rtl) {
      scale: -1 1;
    }
  }
}

/* packages/components/src/base/hidden.css */
@layer primefaces.behaviors {
  .p-hidden {
    display: none;
  }
  .p-overlay-hidden {
    visibility: hidden;
    * {
      visibility: hidden;
    }
  }
}

/* packages/components/src/dragdrop/dragdrop.css */
@layer primefaces.behaviors {
  .p-draggable-dragging {
    box-shadow: var(--p-dragdrop-dragging-shadow);
  }
  .p-droppable {
    transition: background var(--p-dragdrop-transition-duration), outline-color var(--p-dragdrop-transition-duration);
  }
  .p-droppable-active {
    outline: var(--p-dragdrop-droppable-active-outline-width) dashed var(--p-dragdrop-droppable-active-outline-color);
    outline-offset: var(--p-dragdrop-droppable-active-outline-offset);
  }
  .p-droppable-hover {
    background: var(--p-dragdrop-droppable-hover-background);
    color: var(--p-dragdrop-droppable-hover-color);
  }
}

/* packages/components/src/resizable/resizable.css */
@layer primefaces.behaviors {
  .p-resizable-se {
    right: var(--p-resizable-handle-inset);
    bottom: var(--p-resizable-handle-inset);
    background:
      linear-gradient(
        135deg,
        transparent 0 55%,
        var(--p-resizable-handle-color) 55% 63%,
        transparent 63% 75%,
        var(--p-resizable-handle-color) 75% 83%,
        transparent 83%);
    &:hover {
      background:
        linear-gradient(
          135deg,
          transparent 0 55%,
          var(--p-resizable-handle-hover-color) 55% 63%,
          transparent 63% 75%,
          var(--p-resizable-handle-hover-color) 75% 83%,
          transparent 83%);
    }
  }
  .p-resizable-ghost {
    opacity: var(--p-resizable-ghost-opacity);
  }
  .p-resizable-proxy,
  .p-resizable-helper {
    border: 1px dashed var(--p-resizable-helper-border-color);
    background: var(--p-resizable-helper-background);
    border-radius: var(--p-resizable-helper-border-radius);
  }
}

/* packages/components/src/sticky/sticky.css */
@layer primefaces.behaviors {
  .p-sticky {
    box-shadow: var(--p-sticky-shadow);
  }
  .p-sticky-ghost {
    visibility: hidden;
  }
}

/* packages/components/index.css */
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvaWNvbnMvbHVjaWRlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYXNlL2ludGVyYWN0aW9ucy5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvYmFzZS9jb21tb24uY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Jhc2UvY29yZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvYmFzZS9kb2N1bWVudC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvYmFzZS9ncmlkLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYXNlL2hlbHBlcnMuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Jhc2Uvc2Nyb2xsYmFyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYXNlL2JhY2tkcm9wLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYWRnZS9iYWRnZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvY2hlY2tib3guY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL2lucHV0ZmllbGQuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL2lucHV0Z3JvdXAuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL21lbnUvbWVudS5iYXNlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9wYWdpbmF0b3IvcGFnaW5hdG9yLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9yYWRpb2J1dHRvbi5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvYWNjb3JkaW9uL2FjY29yZGlvbi5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29yZS9zcmMvYWpheHN0YXR1cy9hamF4c3RhdHVzLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9hdmF0YXIvYXZhdGFyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9ibG9ja3VpL2Jsb2NrdWkuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL21lbnUvYnJlYWRjcnVtYi5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvYnV0dG9uLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9jYXJkL2NhcmQuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Nhcm91c2VsL2Nhcm91c2VsLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9jYXNjYWRlc2VsZWN0LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9jaGlwL2NoaXAuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2NoaXBzL2NoaXBzLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9jaHJvbm9saW5lL2Nocm9ub2xpbmUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2NvbHVtbnRvZ2dsZXIvY29sdW1udG9nZ2xlci5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvY29uZmlybXBvcHVwL2NvbmZpcm1wb3B1cC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvbWVudS9jb250ZXh0bWVudS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZGFzaGJvYXJkL2Rhc2hib2FyZC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZGF0YWdyaWQvZGF0YWdyaWQuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2RhdGFsaXN0L2RhdGFsaXN0LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9kYXRhc2Nyb2xsZXIvZGF0YXNjcm9sbGVyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9kYXRhdGFibGUvZGF0YXRhYmxlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9kYXRhdmlldy9kYXRhdmlldy5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZGlhbG9nL2RpYWxvZy5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZGl2aWRlci9kaXZpZGVyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9maWVsZHNldC9maWVsZHNldC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZ3Jvd2wvZ3Jvd2wuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2lucGxhY2UvaW5wbGFjZS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvbWVudS9tZWdhbWVudS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvbWVudS9tZW51LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9tZXNzYWdlcy9tZXNzYWdlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9tZXNzYWdlcy9tZXNzYWdlcy5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvbXVsdGlzZWxlY3RsaXN0Ym94LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9ub3RpZmljYXRpb25iYXIvbm90aWZpY2F0aW9uYmFyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9vcmRlcmxpc3Qvb3JkZXJsaXN0LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9vdXRwdXRsYWJlbC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvb3V0cHV0cGFuZWwvb3V0cHV0cGFuZWwuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL292ZXJsYXlwYW5lbC9vdmVybGF5cGFuZWwuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3BhbmVsL3BhbmVsLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9wYW5lbGdyaWQvcGFuZWxncmlkLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9tZW51L3BhbmVsbWVudS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvcGFzc3dvcmQuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3BpY2tsaXN0L3BpY2tsaXN0LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9wcm9ncmVzc2Jhci9wcm9ncmVzc2Jhci5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvcmF0aW5nL3JhdGluZy5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvc2Nyb2xsdG9wL3Njcm9sbHRvcC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvc2VsZWN0Ym9vbGVhbmNoZWNrYm94LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9zZWxlY3RjaGVja2JveG1lbnUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL2Zvcm1zL3NlbGVjdG1hbnljaGVja2JveC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvc2VsZWN0b25lYnV0dG9uLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9zZWxlY3RvbmVsaXN0Ym94LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9zZWxlY3RvbmVtZW51LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9mb3Jtcy9zZWxlY3RvbmVyYWRpby5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvc2lkZWJhci9zaWRlYmFyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9za2VsZXRvbi9za2VsZXRvbi5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvbWVudS9zbGlkZW1lbnUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3NsaWRlci9zbGlkZXIuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3NwZWVkZGlhbC9zcGVlZGRpYWwuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3NwaW5uZXIvc3Bpbm5lci5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZm9ybXMvc3BsaXRidXR0b24uY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3NwbGl0dGVyL3NwbGl0dGVyLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9zcG90bGlnaHQvc3BvdGxpZ2h0LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9zdGF0aWNtZXNzYWdlL3N0YXRpY21lc3NhZ2UuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL21lbnUvc3RlcHMuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL21lbnUvdGFibWVudS5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvdGFidmlldy90YWJ2aWV3LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy90YWcvdGFnLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy90YWdjbG91ZC90YWdjbG91ZC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvbWVudS90aWVyZWRtZW51LmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy90b2dnbGVzd2l0Y2gvdG9nZ2xlc3dpdGNoLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy90b29sYmFyL3Rvb2xiYXIuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3Rvb2x0aXAvdG9vbHRpcC5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvdHJlZS90cmVlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy90cmVldGFibGUvdHJlZXRhYmxlLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy93aXphcmQvd2l6YXJkLmNzcyIsICIuLi8uLi8uLi8uLi8uLi9zcmMvbWFpbi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9iYXNlL2hpZGRlbi5jc3MiLCAiLi4vLi4vLi4vLi4vLi4vc3JjL21haW4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50cy9zcmMvZHJhZ2Ryb3AvZHJhZ2Ryb3AuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3Jlc2l6YWJsZS9yZXNpemFibGUuY3NzIiwgIi4uLy4uLy4uLy4uLy4uL3NyYy9tYWluL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3N0aWNreS9zdGlja3kuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiFcbiAqIEx1Y2lkZSBpY29ucyAobHVjaWRlLXN0YXRpYyAxLjUxLjApXG4gKiBodHRwczovL2x1Y2lkZS5kZXZcbiAqXG4gKiBJU0MgTGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAyNiBMdWNpZGUgSWNvbnMgYW5kIENvbnRyaWJ1dG9yc1xuICpcbiAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZVxuICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFU1xuICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRlxuICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1JcbiAqIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVNcbiAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTlxuICogQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0ZcbiAqIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXG4gKlxuICogLS0tXG4gKlxuICogU29tZSBMdWNpZGUgaWNvbnMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgRmVhdGhlciBwcm9qZWN0XG4gKiAoaHR0cHM6Ly9naXRodWIuY29tL2ZlYXRoZXJpY29ucy9mZWF0aGVyKSwgc2VlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9ibG9iL21haW4vTElDRU5TRSBmb3IgdGhlIGxpc3QuXG4gKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpIChmb3IgdGhlIGljb25zIGRlcml2ZWQgZnJvbSBGZWF0aGVyKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50IENvbGUgQmVtaXNcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbi8qXG4gKiBJY29uIHNldDogTHVjaWRlIChodHRwczovL2x1Y2lkZS5kZXYsIElTQykuIE1hcHMgZXZlcnkgaWNvbiBtZWFuaW5nIHRoZSB0aGVtZSB1c2VzIHRvIGFuIFNWRy5cbiAqIFRoZSBjb21wb25lbnQgdG9rZW5zIG9mIHRoZSBwcmVzZXRzIChlLmcuIC0tcC10cmVlLXRvZ2dsZS1jb2xsYXBzZWQtaWNvbikgcmVmZXJlbmNlIHRoZXNlLCBzbyByZXBsYWNpbmcgdGhpcyBmaWxlXG4gKiAob3Igb3ZlcnJpZGluZyBzaW5nbGUgLS1wLWljb24tKiB0b2tlbnMpIGNoYW5nZXMgdGhlIGljb25zIG9mIGFsbCBjb21wb25lbnRzLlxuICpcbiAqIFZhbHVlcyBhcmUgdXJsKClzIG9mIFNWRyBmaWxlczogXCJwYWNrYWdlL3BhdGguc3ZnXCIgaXMgcmVzb2x2ZWQgaW4gbm9kZV9tb2R1bGVzIGFuZCBpbmxpbmVkIGFzIGRhdGEgVVJJIGJ5XG4gKiBidWlsZC9zY3JpcHRzL2J1bmRsZS5tanMsIFwiP2ZpbGxcIiBmaWxscyB0aGUgb3V0bGluZS4gVGhlIFNWRyBvbmx5IHNlcnZlcyBhcyBtYXNrLCB0aGUgY29sb3IgaXMgY3VycmVudENvbG9yLlxuICovXG5AbGF5ZXIgcHJpbWVmYWNlcy50b2tlbnMge1xuICAgIDpyb290IHtcbiAgICAgICAgLS1wLWljb24tY2xvc2U6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMveC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWNsZWFyOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NpcmNsZS14LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tY2hlY2s6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hlY2suc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1pbmRldGVybWluYXRlOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL21pbnVzLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tcGx1czogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9wbHVzLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tbWludXM6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvbWludXMuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1jb2xsYXBzZWQ6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbi1yaWdodC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWV4cGFuZGVkOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NoZXZyb24tZG93bi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWRyb3Bkb3duOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NoZXZyb24tZG93bi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXVwOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NoZXZyb24tdXAuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1kb3duOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NoZXZyb24tZG93bi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXByZXY6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbi1sZWZ0LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tbmV4dDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaGV2cm9uLXJpZ2h0LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tZmlyc3Q6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbnMtbGVmdC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWxhc3Q6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbnMtcmlnaHQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi10b3A6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbnMtdXAuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1ib3R0b206IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvY2hldnJvbnMtZG93bi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWFycm93LXVwOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2Fycm93LXVwLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tYXJyb3ctZG93bjogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9hcnJvdy1kb3duLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tYXJyb3ctbGVmdDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9hcnJvdy1sZWZ0LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tYXJyb3ctcmlnaHQ6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1zb3J0OiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2Fycm93LXVwLWRvd24uc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1zb3J0LWFzYzogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9hcnJvdy11cC1uYXJyb3ctd2lkZS5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXNvcnQtZGVzYzogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9hcnJvdy1kb3duLXdpZGUtbmFycm93LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tc2VhcmNoOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL3NlYXJjaC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWVkaXQ6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvcGVuY2lsLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tdHJhc2g6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvdHJhc2gtMi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWZpbGU6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tdXBsb2FkOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL3VwbG9hZC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWxpc3Q6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvbGlzdC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWdyaWQ6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvbGF5b3V0LWdyaWQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1vcHRpb25zOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL3NldHRpbmdzLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24taG9tZTogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9ob3VzZS5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWNhbGVuZGFyOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NhbGVuZGFyLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tbWF4aW1pemU6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvbWF4aW1pemUtMi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXJlc3RvcmU6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvbWluaW1pemUtMi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXNob3c6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvZXllLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24taGlkZTogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9leWUtb2ZmLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tem9vbS1pbjogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy96b29tLWluLnN2Z1wiKTtcbiAgICAgICAgLS1wLWljb24tem9vbS1vdXQ6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvem9vbS1vdXQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1zdGFyOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL3N0YXIuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1zdGFyLWZpbGxlZDogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9zdGFyLnN2Zz9maWxsXCIpO1xuICAgICAgICAtLXAtaWNvbi1pbmZvOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2luZm8uc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1zdWNjZXNzOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2NpcmNsZS1jaGVjay5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLXdhcm46IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvdHJpYW5nbGUtYWxlcnQuc3ZnXCIpO1xuICAgICAgICAtLXAtaWNvbi1lcnJvcjogdXJsKFwibHVjaWRlLXN0YXRpYy9pY29ucy9jaXJjbGUteC5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWZhdGFsOiB1cmwoXCJsdWNpZGUtc3RhdGljL2ljb25zL2Jhbi5zdmdcIik7XG4gICAgICAgIC0tcC1pY29uLWxvYWRpbmc6IHVybChcImx1Y2lkZS1zdGF0aWMvaWNvbnMvbG9hZGVyLWNpcmNsZS5zdmdcIik7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBCYXNlIHJ1bGVzIG9mIHRoZSBpbnRlcmFjdGlvbnMgKGRyYWdnYWJsZSwgcmVzaXphYmxlLCBzb3J0YWJsZSksIGxvYWRlZCBpbiB0aGUgdmVuZG9yIGxheWVyLiBUYWtlbiBmcm9tIHRoZSBqUXVlcnkgVUlcbiAqIGJhc2UgdGhlbWUgKGRyYWdnYWJsZS5jc3MsIHJlc2l6YWJsZS5jc3MsIHNvcnRhYmxlLmNzcyksIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzLCByZWxlYXNlZFxuICogdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICovXG5cbi5wLWRyYWdnYWJsZS1oYW5kbGUge1xuICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi5wLXJlc2l6YWJsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnAtcmVzaXphYmxlLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi5wLXJlc2l6YWJsZS1kaXNhYmxlZCAucC1yZXNpemFibGUtaGFuZGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnAtcmVzaXphYmxlLW4ge1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAtNXB4O1xuICAgIGxlZnQ6IDA7XG59XG4ucC1yZXNpemFibGUtcyB7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbiAgICBoZWlnaHQ6IDdweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3R0b206IC01cHg7XG4gICAgbGVmdDogMDtcbn1cbi5wLXJlc2l6YWJsZS1lIHtcbiAgICBjdXJzb3I6IGUtcmVzaXplO1xuICAgIHdpZHRoOiA3cHg7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5wLXJlc2l6YWJsZS13IHtcbiAgICBjdXJzb3I6IHctcmVzaXplO1xuICAgIHdpZHRoOiA3cHg7XG4gICAgbGVmdDogLTVweDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLnAtcmVzaXphYmxlLXNlIHtcbiAgICBjdXJzb3I6IHNlLXJlc2l6ZTtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBib3R0b206IDFweDtcbn1cbi5wLXJlc2l6YWJsZS1zdyB7XG4gICAgY3Vyc29yOiBzdy1yZXNpemU7XG4gICAgd2lkdGg6IDlweDtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICBsZWZ0OiAtNXB4O1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5wLXJlc2l6YWJsZS1udyB7XG4gICAgY3Vyc29yOiBudy1yZXNpemU7XG4gICAgd2lkdGg6IDlweDtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICBsZWZ0OiAtNXB4O1xuICAgIHRvcDogLTVweDtcbn1cbi5wLXJlc2l6YWJsZS1uZSB7XG4gICAgY3Vyc29yOiBuZS1yZXNpemU7XG4gICAgd2lkdGg6IDlweDtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICByaWdodDogLTVweDtcbiAgICB0b3A6IC01cHg7XG59XG4ucC1zb3J0YWJsZS1oYW5kbGUge1xuICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLyogZWxlbWVudHMgY3JlYXRlZCBieSBQcmltZUZhY2VzLmVmZmVjdHMgKi9cbi5wLWVmZmVjdC10cmFuc2Zlcixcbi5wLWVmZmVjdC1leHBsb2RlIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5wLWVmZmVjdC10cmFuc2ZlciB7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLXAtcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKTtcbn1cbiIsICIvKlxuICogU2hhcmVkIHN0eWxpbmcgZm9yIGFsbCBjb21wb25lbnRzIChjb3VudGVycGFydCBvZiB0aGUgUHJpbWVVSVggYmFzZSBzdHlsZSkuXG4gKlxuICogR2VuZXJpYyBzdHlsZSBjbGFzc2VzIChwLXdpZGdldC1oZWFkZXIvY29udGVudCwgcC1zdGF0ZS0qKSBhcmUgd3JhcHBlZCBpblxuICogOndoZXJlKCksIHNvIHRoZXkgaGF2ZSB6ZXJvIHNwZWNpZmljaXR5OiB0aGV5IHN0eWxlIHBsYWluIG1hcmt1cCAoZS5nLiA8ZGl2IGNsYXNzPVwicC13aWRnZXQtY29udGVudFwiPikgYnV0IGV2ZXJ5XG4gKiBjb21wb25lbnQgcnVsZSB3aW5zLCBpbmRlcGVuZGVudCBvZiB0aGUgZmlsZSBvcmRlci5cbiAqL1xuKixcbjo6YmVmb3JlLFxuOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnAtd2lkZ2V0IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tcC10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXNpemU6IHZhcigtLXAtdHlwb2dyYXBoeS1mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktZm9udC13ZWlnaHQpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgIC8qIG5lc3RlZCB3aWRnZXQgKD0gOndoZXJlKC5wLXdpZGdldCkgLnAtd2lkZ2V0LCBzcGVjaWZpY2l0eSBvZiBvbmUgY2xhc3MpOiBjb21wb25lbnQgcnVsZXMgd2l0aCB0aGVpciBvd25cbiAgICAgICBmb250IHNpemUgdG9rZW4gKGUuZy4gLnAtYmFkZ2UgaW5zaWRlIGEgcGFuZWwgb3IgdG9vbGJhcikgbXVzdCBzdGlsbCB3aW4gKi9cbiAgICA6d2hlcmUoLnAtd2lkZ2V0KSAmIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIH1cbn1cblxuOndoZXJlKC5wLXdpZGdldC1jb250ZW50KSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC13aWRnZXQtY29udGVudC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC13aWRnZXQtY29udGVudC1jb2xvcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXdpZGdldC1jb250ZW50LWJvcmRlci1jb2xvcik7XG59XG5cbjp3aGVyZSgucC13aWRnZXQtaGVhZGVyKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC13aWRnZXQtaGVhZGVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXdpZGdldC1oZWFkZXItY29sb3IpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC13aWRnZXQtaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtd2lkZ2V0LWhlYWRlci1mb250LXdlaWdodCk7XG59XG5cbjp3aGVyZSgucC1zdGF0ZS1ob3Zlcikge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtd2lkZ2V0LWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXdpZGdldC1ob3Zlci1jb2xvcik7XG59XG5cbjp3aGVyZSgucC1zdGF0ZS1hY3RpdmUpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXdpZGdldC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtd2lkZ2V0LWFjdGl2ZS1jb2xvcik7XG59XG5cbjp3aGVyZSgucC1zdGF0ZS1oaWdobGlnaHQpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXdpZGdldC1oaWdobGlnaHQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtd2lkZ2V0LWhpZ2hsaWdodC1jb2xvcik7XG59XG5cbjp3aGVyZSgucC1zdGF0ZS1oaWdobGlnaHQgYSwgLnAtc3RhdGUtYWN0aXZlIGEpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyogb25seSB0ZXh0IGFuZCBib3JkZXI6IHAtc3RhdGUtZXJyb3IgaXMgYWxzbyBzZXQgb24gbGFiZWxzIGFuZCBpbnB1dHMsIHdoaWNoIGtlZXAgdGhlaXIgb3duIGJhY2tncm91bmQgKi9cbjp3aGVyZSgucC1zdGF0ZS1lcnJvcikge1xuICAgIGNvbG9yOiB2YXIoLS1wLXdpZGdldC1lcnJvci1jb2xvcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXdpZGdldC1lcnJvci1ib3JkZXItY29sb3IpO1xufVxuXG46d2hlcmUoLnAtc3RhdGUtZXJyb3ItdGV4dCkge1xuICAgIGNvbG9yOiB2YXIoLS1wLXdpZGdldC1lcnJvci1jb2xvcik7XG59XG5cbi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiB2YXIoLS1wLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuOndoZXJlKC5wLXByaW9yaXR5LXByaW1hcnkpIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG46d2hlcmUoLnAtcHJpb3JpdHktc2Vjb25kYXJ5KSB7XG4gICAgb3BhY2l0eTogdmFyKC0tcC1kaXNhYmxlZC1vcGFjaXR5KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0KTtcbn1cblxuLyogaWNvbnMgdGhlIGFwcGxpY2F0aW9uIHNldHMgKGljb249XCJwaSBwaS1jaGVja1wiLCBGb250IEF3ZXNvbWUsIC4uLik6IHRoZSBpY29uIHNpemUgb2YgdGhlIHRoZW1lLCBieSB0aGVpciBzbG90IGNsYXNzICovXG4ucGksXG4ucC1idXR0b24taWNvbi1sZWZ0LFxuLnAtYnV0dG9uLWljb24tcmlnaHQsXG4ucC1tZW51aXRlbS1pY29uLFxuLnAtc3VibWVudS1pY29uLFxuLnAtdHJlZW5vZGUtaWNvbiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLWljb24tc2l6ZSk7XG59XG5cbi8qXG4gKiBJY29ucyB0aGUgY29tcG9uZW50cyBkcmF3IHRoZW1zZWx2ZXM6IDxzcGFuIGNsYXNzPVwicC1pY29uIHAtY2xvc2UtaWNvbiBwLXBhbmVsLWNsb3NlLWljb25cIj4uIFRoZSBnZW5lcmljIGNsYXNzIGRyYXdzXG4gKiB0aGUgU1ZHIG9mIC0tX2ljb24gYXMgbWFzayBpbiB0aGUgdGV4dCBjb2xvciwgdGhlIGNvbXBvbmVudCBDU1MgbWFwcyBpdHMgY2xhc3MgKGFuZCBzdGF0ZSkgdG8gdGhlIGljb24gdG9rZW4gb25jZTpcbiAqIC5wLXBhbmVsLWNsb3NlLWljb24geyAtLV9pY29uOiB2YXIoLS1wLXBhbmVsLWNsb3NlLWljb24pOyB9LiBUaGUgbWVhbmluZyBjbGFzcyAocC1jbG9zZS1pY29uKSBpcyBhIGhvb2sgZm9yXG4gKiBhcHBsaWNhdGlvbiBDU1Mgb25seS4gV2l0aG91dCAtLV9pY29uIChlLmcuIGFuIHVuY2hlY2tlZCBjaGVja2JveCkgbm90aGluZyBpcyBkcmF3bi5cbiAqL1xuLnAtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pY29uLXNpemUpO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIC8qIGlubGluZTogbm90IHRyYW5zZm9ybWFibGUsIFJUTCBydWxlcyBtaXJyb3IgdGhlIGljb24gZWxlbWVudCAoc2NhbGU6IC0xIDEpLCBub3QgdGhlIDo6YmVmb3JlICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXDIwMDNcIjtcbiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICBtYXNrOiB2YXIoLS1faWNvbiwgbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCkpIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICAgIH1cbn1cblxuLnAtd2lkZ2V0LW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbWFzay1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1tYXNrLWNvbG9yKTtcbn1cblxuLypcbiAqIE5hdGl2ZSBmb3JtIGVsZW1lbnRzIG91dHNpZGUgb2YgY29tcG9uZW50cy4gSW4gOndoZXJlKCk6IG90aGVyd2lzZSB0aGUgOmhvdmVyIC8gOmZvY3VzIHJ1bGVzIHdvdWxkIGJlYXQgdGhlIGlucHV0c1xuICogaW5zaWRlIGNvbXBvbmVudHMgKHA6YXV0b0NvbXBsZXRlIG11bHRpcGxlLCBwOmNoaXBzLCBwOnNlbGVjdENoZWNrYm94TWVudSwgcDprbm9iLCAuLi4pLlxuICovXG46d2hlcmUoc2VsZWN0LFxuaW5wdXQ6bm90KFtyb2xlPVwiY29tYm9ib3hcIl0sIFt0eXBlPVwiZmlsZVwiXSwgW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSwgW3R5cGU9XCJyYW5nZVwiXSwgW3R5cGU9XCJjb2xvclwiXSwgW3R5cGU9XCJoaWRkZW5cIl0sXG4gICAgLnAtd2lkZ2V0LCAucC1pbnB1dGZpZWxkKSkge1xuICAgIGNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZm9ybS1maWVsZC1iYWNrZ3JvdW5kKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy15KSB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWZvcm0tZmllbGQtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWZvcm0tZmllbGQtYm9yZGVyLXJhZGl1cyk7XG4gICAgb3V0bGluZTogMCBub25lO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1mb3JtLWZpZWxkLWZvbnQtc2l6ZSk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1mb3JtLWZpZWxkLXNoYWRvdyk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWZvcm0tZmllbGQtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtZm9ybS1maWVsZC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtZm9ybS1maWVsZC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWZvcm0tZmllbGQtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1mb3JtLWZpZWxkLXRyYW5zaXRpb24tZHVyYXRpb24pO1xufVxuXG46d2hlcmUoc2VsZWN0OmhvdmVyLFxuaW5wdXQ6bm90KFtyb2xlPVwiY29tYm9ib3hcIl0sIFt0eXBlPVwiZmlsZVwiXSwgW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSwgW3R5cGU9XCJyYW5nZVwiXSwgW3R5cGU9XCJjb2xvclwiXSwgW3R5cGU9XCJoaWRkZW5cIl0sXG4gICAgLnAtd2lkZ2V0LCAucC1pbnB1dGZpZWxkKTpob3Zlcikge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1mb3JtLWZpZWxkLWhvdmVyLWJvcmRlci1jb2xvcik7XG59XG5cbjp3aGVyZShzZWxlY3Q6Zm9jdXMsXG5pbnB1dDpub3QoW3JvbGU9XCJjb21ib2JveFwiXSwgW3R5cGU9XCJmaWxlXCJdLCBbdHlwZT1cImNoZWNrYm94XCJdLCBbdHlwZT1cInJhZGlvXCJdLCBbdHlwZT1cInJhbmdlXCJdLCBbdHlwZT1cImNvbG9yXCJdLCBbdHlwZT1cImhpZGRlblwiXSxcbiAgICAucC13aWRnZXQsIC5wLWlucHV0ZmllbGQpOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICBvdXRsaW5lOiB2YXIoLS1wLWZvcm0tZmllbGQtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1mb3JtLWZpZWxkLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtZm9ybS1maWVsZC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1mb3JtLWZpZWxkLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZvcm0tZmllbGQtZm9jdXMtcmluZy1zaGFkb3cpO1xufVxuXG4vKlxuICogY29udGVudCBhIHdpZGdldCBpbnNlcnRzIGJ5IGFqYXggKG5ldyBtZXNzYWdlcywgaXRlbXMgb2YgZGF0YVZpZXcgLyBkYXRhU2Nyb2xsZXIpOiBhbiBhbmltYXRpb24gcnVucyB3aGVuIGFuIGVsZW1lbnQgaXNcbiAqIGluc2VydGVkLCBzbyBpdCBmYWRlcyBpbiAoYW5kIHNsaWRlcyBieSAtLV9lbnRlci1vZmZzZXQpIHdpdGggQ1NTIG9ubHk7IGFsc28gb24gcGFnZSBsb2FkLCByZWR1Y2VkIG1vdGlvbjpcbiAqIGJhc2UvZG9jdW1lbnQuY3NzXG4gKi9cbkBrZXlmcmFtZXMgcC1lbnRlciB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1fZW50ZXItb2Zmc2V0LCAwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZS1pbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cbiIsICIvKlxuICogQ29yZSBoZWxwZXJzIG9mIFByaW1lRmFjZXM6IG92ZXJsYXkgdmlzaWJpbGl0eSwgcmVzZXQsIHJlc3BvbnNpdmUgY29sdW1uIHByaW9yaXRpZXMsIGNvbm5lY3RlZCBvdmVybGF5IGFuaW1hdGlvbnMuXG4gKi9cbi5wLW92ZXJsYXktdmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLnAtb3ZlcmZsb3ctaGlkZGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucC1yZXNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ucC10cmFuc3BhcmVudC1waXhlbCB7XG4gICAgY29udGVudDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQVAvLy93QUFBQ0g1QkFFQUFBQUFMQUFBQUFBQkFBRUFBQUlDUkFFQU93PT0pO1xufVxuXG4vKiBjb2x1bW4gcHJpb3JpdGllcyAocDpjb2x1bW4gcHJpb3JpdHk9XCIxLTZcIik6IGhpZGRlbiwgc2hvd24gZnJvbSAyMGVtICgxKSB1cCB0byA3MGVtICg2KSAqL1xuQG1lZGlhIG9ubHkgYWxsIHtcbiAgICB0aC5wLWNvbHVtbi1wLTYsXG4gICAgdGQucC1jb2x1bW4tcC02LFxuICAgIHRoLnAtY29sdW1uLXAtNSxcbiAgICB0ZC5wLWNvbHVtbi1wLTUsXG4gICAgdGgucC1jb2x1bW4tcC00LFxuICAgIHRkLnAtY29sdW1uLXAtNCxcbiAgICB0aC5wLWNvbHVtbi1wLTMsXG4gICAgdGQucC1jb2x1bW4tcC0zLFxuICAgIHRoLnAtY29sdW1uLXAtMixcbiAgICB0ZC5wLWNvbHVtbi1wLTIsXG4gICAgdGgucC1jb2x1bW4tcC0xLFxuICAgIHRkLnAtY29sdW1uLXAtMSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyMGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC0xLFxuICAgIHRkLnAtY29sdW1uLXAtMSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC0yLFxuICAgIHRkLnAtY29sdW1uLXAtMiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC0zLFxuICAgIHRkLnAtY29sdW1uLXAtMyB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC00LFxuICAgIHRkLnAtY29sdW1uLXAtNCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC01LFxuICAgIHRkLnAtY29sdW1uLXAtNSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3MGVtKSB7XG4gICAgdGgucC1jb2x1bW4tcC02LFxuICAgIHRkLnAtY29sdW1uLXAtNiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxufVxuXG4vKiBjb25uZWN0ZWQgb3ZlcmxheSBhbmltYXRpb25zICh0aGUgb3ZlcmxheSBKUyByZWxpZXMgb24gdGhlc2UgdHJhbnNpdGlvbnMpICovXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1lbnRlciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwLjgpO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1lbnRlci1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXAtb3ZlcmxheS1lbnRlci1kdXJhdGlvbikgdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZy1lbnRlciksXG4gICAgICAgIG9wYWNpdHkgdmFyKC0tcC1vdmVybGF5LWVudGVyLWR1cmF0aW9uKSB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nLWVudGVyKTtcbn1cblxuLnAtY29ubmVjdGVkLW92ZXJsYXktZW50ZXItZG9uZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1leGl0IHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1leGl0LWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXAtb3ZlcmxheS1sZWF2ZS1kdXJhdGlvbikgdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZy1leGl0KTtcbn1cbiIsICIvKlxuICogRG9jdW1lbnQgbGV2ZWwgZGVmYXVsdHMgYW5kIHVzZXIgcHJlZmVyZW5jZXM6IG5hdGl2ZSBjb250cm9scywgdGV4dCBzZWxlY3Rpb24sIHJlZHVjZWQgbW90aW9uLCBwcmludC5cbiAqL1xuOnJvb3Qge1xuICAgIC8qIG5hdGl2ZSBjaGVja2JveGVzLCByYWRpb3MsIHJhbmdlcywgcHJvZ3Jlc3Mgb2YgdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBwcmltYXJ5IGNvbG9yICovXG4gICAgYWNjZW50LWNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1oaWdobGlnaHQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtaGlnaGxpZ2h0LWNvbG9yKTtcbn1cblxuLyogV0NBRyAyLjIgdGFyZ2V0IHNpemU6IHNtYWxsIGljb24gY29udHJvbHMgZ2V0IGFuIGludmlzaWJsZSAyNHB4IGhpdCBhcmVhIChjZW50ZXJlZCksIHRoZSBsYXlvdXQgc3RheXMgdGhlIHNhbWUgKi9cbjp3aGVyZSgucC1jaGlwcy10b2tlbi1pY29uLCAucC1hdXRvY29tcGxldGUtdG9rZW4taWNvbiwgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRva2VuLWljb24sIC5wLXBhc3N3b3JkLWljb24sXG4gICAgLnAtY2hpcC1yZW1vdmUtaWNvbiwgLnAtYnJlYWRjcnVtYi1ob21lLWljb24pOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IGNhbGMoNTAlIC0gMTJweCk7XG59XG5cbjp3aGVyZSgucC1jaGlwLXJlbW92ZS1pY29uLCAucC1icmVhZGNydW1iLWhvbWUtaWNvbikge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICA6cm9vdCxcbiAgICBbZGF0YS1wLXNjb3BlXSB7XG4gICAgICAgIC0tcC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbiAgICB9XG5cbiAgICAvKiBmaXhlZCBkdXJhdGlvbnMgKGtleWZyYW1lcywgc3BlZWQgZGlhbCwgZG9jayk7IDAuMDFtcyBpbnN0ZWFkIG9mIG5vbmUgc28gYW5pbWF0aW9uIGV2ZW50cyBzdGlsbCBmaXJlXG4gICAgICAgKHRoZSBhdXRvZmlsbCBkZXRlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkcyBsaXN0ZW5zIHRvIGFuaW1hdGlvbnN0YXJ0KSAqL1xuICAgICosXG4gICAgOjpiZWZvcmUsXG4gICAgOjphZnRlciB7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogcmVkdWNlZCB0cmFuc3BhcmVuY3k6IG5vIGJsdXIgYmVoaW5kIGZsb2F0aW5nIGxheWVycyAoR2xhc3MsIGdyb3dsKSAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtdHJhbnNwYXJlbmN5OiByZWR1Y2UpIHtcbiAgICA6cm9vdCxcbiAgICBbZGF0YS1wLXNjb3BlXSB7XG4gICAgICAgIC0tcC1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICAgICAgLS1wLW5hdmlnYXRpb24tYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgICAgICAtLXAtYnV0dG9uLWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICAgICAgLS1wLW1hc2stYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgICAgICAtLXAtdG9hc3QtYmx1cjogMHB4O1xuICAgIH1cbn1cblxuLypcbiAqIFByaW1lRmFjZXMudXRpbHMuZGlzYWJsZUFuaW1hdGlvbnMoKSAoYWxzbyBjYWxsZWQgYnkgUHJpbWVGYWNlcyBTZWxlbml1bSk6IGNvbnRlbnQgdGhhdCBmYWRlcyBpbiB3aGVuIGl0IGlzIGluc2VydGVkXG4gKiBhcHBlYXJzIGF0IG9uY2UuIFRoZXNlIGFuaW1hdGlvbnMgc3RhcnQgYXQgb3BhY2l0eSAwLCBzbyB0aGUgY29udGVudCB3b3VsZCBiZSBpbnZpc2libGUgaW4gaXRzIGZpcnN0IGZyYW1lLlxuICogQWxzbyBvbiBzY29wZXMsIHdoaWNoIHJlLWRlY2xhcmUgdGhlIHRva2Vucy5cbiAqL1xuOnJvb3RbZGF0YS1wLWFuaW1hdGlvbnM9XCJvZmZcIl0sXG46cm9vdFtkYXRhLXAtYW5pbWF0aW9ucz1cIm9mZlwiXSBbZGF0YS1wLXNjb3BlXSB7XG4gICAgLS1wLW1lc3NhZ2UtZW50ZXItZHVyYXRpb246IDBzO1xuICAgIC0tcC1kYXRhdmlldy1jb250ZW50LWVudGVyLWR1cmF0aW9uOiAwcztcbiAgICAtLXAtZmlsZXVwbG9hZC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbn1cblxuLypcbiAqIFBhZ2UgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgaW4gbW9zdCBwcmVzZXRzICh0aGUgcGFnZSBrZWVwcyBpdHMgb3duIGJhY2tncm91bmQpLCBhIHdhbGxwYXBlciBpbiB0cmFuc2x1Y2VudCBwcmVzZXRzXG4gKiAoR2xhc3MpLCB3aGljaCBuZWVkIHNvbWV0aGluZyBjb2xvcmZ1bCBiZWhpbmQgdGhlaXIgZ2xhc3MuIEFwcGxpY2F0aW9uIENTUyAodW5sYXllcmVkKSB3aW5zLlxuICovXG46cm9vdCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1kb2N1bWVudC1iYWNrZ3JvdW5kKTtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgICAvKiBsaWdodCBvbiBwYXBlciwgYWxzbyBvdmVyIGFuIGFwcGxpY2F0aW9uIGNvbG9yLXNjaGVtZTogZGFyayAoYSBsYXllcmVkICFpbXBvcnRhbnQgYmVhdHMgdW5sYXllcmVkIENTUykgKi9cbiAgICA6cm9vdCB7XG4gICAgICAgIGNvbG9yLXNjaGVtZTogbGlnaHQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAqLFxuICAgIDo6YmVmb3JlLFxuICAgIDo6YWZ0ZXIge1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBCcm93c2VycyBkcm9wIGJhY2tncm91bmRzIHdoZW4gcHJpbnRpbmcgKHVubGVzcyB0aGUgdXNlciBlbmFibGVzIGJhY2tncm91bmQgZ3JhcGhpY3MpIGJ1dCBrZWVwIHRoZSB0ZXh0IGNvbG9yOlxuICAgICAqIHdoaXRlIHRleHQgb24gYSBwcmltYXJ5IGJ1dHRvbiB3b3VsZCB2YW5pc2gsIGNoZWNrZWQgYm94ZXMgLyBzd2l0Y2hlcyAvIHNlbGVjdGlvbnMgd291bGQgbG9zZSB0aGVpciBzdGF0ZS4gVGhlc2VcbiAgICAgKiBzbWFsbCBlbGVtZW50cyBwcmludCB0aGVpciBiYWNrZ3JvdW5kIChpbmhlcml0ZWQgYnkgdGhlaXIgcGFydHMpOyBsYXJnZSBhcmVhcyBzdGF5IGluayBzYXZpbmcuXG4gICAgICovXG4gICAgLnAtYnV0dG9uLFxuICAgIC5wLWJhZGdlLFxuICAgIC5wLXRhZyxcbiAgICAucC1jaGlwLFxuICAgIC5wLWNoa2JveC1ib3gsXG4gICAgLnAtcmFkaW9idXR0b24tYm94LFxuICAgIC5wLXRvZ2dsZXN3aXRjaCxcbiAgICAucC1zbGlkZXIsXG4gICAgLnAtcHJvZ3Jlc3NiYXIsXG4gICAgLnAtc3RhdGUtaGlnaGxpZ2h0LFxuICAgIC5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICB9XG5cbiAgICAvKiBzY3JvbGxhYmxlIHRhYmxlcyBwcmludCBhbGwgcm93cyAqL1xuICAgIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWJvZHksXG4gICAgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtYm9keSxcbiAgICAucC1kYXRhdGFibGUtdmlydHVhbHNjcm9sbCAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1ib2R5IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICB0cixcbiAgICAucC1wYW5lbCxcbiAgICAucC1jYXJkLFxuICAgIC5wLWZpZWxkc2V0IHtcbiAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvKiBvdmVybGF5cywgYW5kIHRoZSBmaXhlZCBoZWxwZXJzIGJyb3dzZXJzIHdvdWxkIHJlcGVhdCBvbiBldmVyeSBwYWdlOiB0aGUgc3RpY2t5IGhlYWRlciBjbG9uZSBvZiBhIGRhdGFUYWJsZSxcbiAgICAgICBwOmxvZywgcDpzdGFjaywgcDpkb2NrICovXG4gICAgLnAtZ3Jvd2wsXG4gICAgLnAtdG9vbHRpcCxcbiAgICAucC1zY3JvbGx0b3AsXG4gICAgLnAtYmxvY2t1aSxcbiAgICAucC13aWRnZXQtb3ZlcmxheSxcbiAgICAucC1hamF4LXN0YXR1cyxcbiAgICAucC1wYWdpbmF0b3IsXG4gICAgLnAtZGF0YXRhYmxlLXN0aWNreSxcbiAgICAucC1sb2csXG4gICAgLnAtc3RhY2ssXG4gICAgLnAtZG9jayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiBhIHBpbm5lZCBwOnN0aWNreSB0YXJnZXQgcHJpbnRzIGluIGl0cyBwbGFjZSAodGhlIHdpZGdldCBzZXRzIHBvc2l0aW9uIGZpeGVkIGlubGluZSkgKi9cbiAgICAucC1zdGlja3kge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBHcmlkIENTUzogdWktZ3JpZCAoZGVwcmVjYXRlZCkgYW5kIHVpLWcgKHJlc3BvbnNpdmUgMTIgY29sdW1uIGZsZXggZ3JpZCBpbmNsLiB1aS1zbS9tZC9sZy94bC0qIGFuZCBvZmZzZXRzKS5cbiAqIFB1cmUgbGF5b3V0LCBubyBsb29rLCBzbyBubyB0b2tlbnMgbmVlZGVkLlxuICovXG5cbi8qIHVpLWdyaWQgKGRlcHJlY2F0ZWQpICovXG4udWktZ3JpZCB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC51aS1ncmlkLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbn1cblxuLnVpLWdyaWQtcm93IHtcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG59XG5cbi51aS1ncmlkLWNvbC0xLFxuLnVpLWdyaWQtY29sLTIsXG4udWktZ3JpZC1jb2wtMyxcbi51aS1ncmlkLWNvbC00LFxuLnVpLWdyaWQtY29sLTUsXG4udWktZ3JpZC1jb2wtNixcbi51aS1ncmlkLWNvbC03LFxuLnVpLWdyaWQtY29sLTgsXG4udWktZ3JpZC1jb2wtOSxcbi51aS1ncmlkLWNvbC0xMCxcbi51aS1ncmlkLWNvbC0xMSxcbi51aS1ncmlkLWNvbC0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi51aS1ncmlkLWNvbC0wIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4udWktZ3JpZC1jb2wtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xufVxuXG4udWktZ3JpZC1jb2wtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cblxuLnVpLWdyaWQtY29sLTMge1xuICAgIHdpZHRoOiAyNSU7XG59XG5cbi51aS1ncmlkLWNvbC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuXG4udWktZ3JpZC1jb2wtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbn1cblxuLnVpLWdyaWQtY29sLTYge1xuICAgIHdpZHRoOiA1MCU7XG59XG5cbi51aS1ncmlkLWNvbC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xufVxuXG4udWktZ3JpZC1jb2wtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbn1cblxuLnVpLWdyaWQtY29sLTkge1xuICAgIHdpZHRoOiA3NSU7XG59XG5cbi51aS1ncmlkLWNvbC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbn1cblxuLnVpLWdyaWQtY29sLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xufVxuXG4udWktZ3JpZC1jb2wtMTIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAudWktZ3JpZC1maXhlZCB7XG4gICAgICAgIHdpZHRoOiA0ODBweDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC51aS1ncmlkLWZpeGVkIHtcbiAgICAgICAgd2lkdGg6IDc2OHB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnVpLWdyaWQtZml4ZWQge1xuICAgICAgICB3aWR0aDogOTYwcHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnVpLWdyaWQtZml4ZWQge1xuICAgICAgICB3aWR0aDogMTAyNHB4O1xuICAgIH1cbn1cblxuLyogdWktZ3JpZC1yZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAudWktZ3JpZC1yZXNwb25zaXZlIHtcbiAgICAgICAgLnVpLWdyaWQtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVpLWdyaWQtY29sLTEsXG4gICAgICAgIC51aS1ncmlkLWNvbC0yLFxuICAgICAgICAudWktZ3JpZC1jb2wtMyxcbiAgICAgICAgLnVpLWdyaWQtY29sLTQsXG4gICAgICAgIC51aS1ncmlkLWNvbC01LFxuICAgICAgICAudWktZ3JpZC1jb2wtNixcbiAgICAgICAgLnVpLWdyaWQtY29sLTcsXG4gICAgICAgIC51aS1ncmlkLWNvbC04LFxuICAgICAgICAudWktZ3JpZC1jb2wtOSxcbiAgICAgICAgLnVpLWdyaWQtY29sLTEwLFxuICAgICAgICAudWktZ3JpZC1jb2wtMTEsXG4gICAgICAgIC51aS1ncmlkLWNvbC0xMiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udWktZ3JpZC51aS1ncmlkLXBhZCA+IC51aS1ncmlkLXJvdyA+IGRpdiB7XG4gICAgcGFkZGluZzogLjI1ZW0gLjVlbTtcbn1cblxuLyogdWktZyAqL1xuLnVpLWcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxufVxuXG4udWktZy0xLFxuLnVpLWctMixcbi51aS1nLTMsXG4udWktZy00LFxuLnVpLWctNSxcbi51aS1nLTYsXG4udWktZy03LFxuLnVpLWctOCxcbi51aS1nLTksXG4udWktZy0xMCxcbi51aS1nLTExLFxuLnVpLWctMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAuNWVtO1xufVxuXG4udWktZy0wIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4udWktZy0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG59XG5cbi51aS1nLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG5cbi51aS1nLTMge1xuICAgIHdpZHRoOiAyNSU7XG59XG5cbi51aS1nLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG5cbi51aS1nLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG59XG5cbi51aS1nLTYge1xuICAgIHdpZHRoOiA1MCU7XG59XG5cbi51aS1nLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG59XG5cbi51aS1nLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG59XG5cbi51aS1nLTkge1xuICAgIHdpZHRoOiA3NSU7XG59XG5cbi51aS1nLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xufVxuXG4udWktZy0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbn1cblxuLnVpLWctMTIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4udWktZy1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xufVxuXG4udWktZy1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG59XG5cbi51aS1nLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cblxuLnVpLWctb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG59XG5cbi51aS1nLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xufVxuXG4udWktZy1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbn1cblxuLnVpLWctb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG5cbi51aS1nLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xufVxuXG4udWktZy1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbn1cblxuLnVpLWctb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG5cbi51aS1nLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xufVxuXG4udWktZy1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xufVxuXG4udWktZy1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MGVtKSB7XG4gICAgLnVpLXNtLTEsXG4gICAgLnVpLXNtLTIsXG4gICAgLnVpLXNtLTMsXG4gICAgLnVpLXNtLTQsXG4gICAgLnVpLXNtLTUsXG4gICAgLnVpLXNtLTYsXG4gICAgLnVpLXNtLTcsXG4gICAgLnVpLXNtLTgsXG4gICAgLnVpLXNtLTksXG4gICAgLnVpLXNtLTEwLFxuICAgIC51aS1zbS0xMSxcbiAgICAudWktc20tMTIge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICB9XG5cbiAgICAudWktc20tMCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTEge1xuICAgICAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTIge1xuICAgICAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1zbS0zIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICB9XG5cbiAgICAudWktc20tNCB7XG4gICAgICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTUge1xuICAgICAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1zbS02IHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAudWktc20tNyB7XG4gICAgICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTgge1xuICAgICAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1zbS05IHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG5cbiAgICAudWktc20tMTAge1xuICAgICAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1zbS0xMSB7XG4gICAgICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLTEyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC0xMiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtMTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtMTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtOSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC04IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktc20tb2Zmc2V0LTcge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtNiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC01IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktc20tb2Zmc2V0LTQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1zbS1vZmZzZXQtMyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC0yIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktc20tb2Zmc2V0LTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXNtLW9mZnNldC0wIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIHtcbiAgICAudWktbWQtMSxcbiAgICAudWktbWQtMixcbiAgICAudWktbWQtMyxcbiAgICAudWktbWQtNCxcbiAgICAudWktbWQtNSxcbiAgICAudWktbWQtNixcbiAgICAudWktbWQtNyxcbiAgICAudWktbWQtOCxcbiAgICAudWktbWQtOSxcbiAgICAudWktbWQtMTAsXG4gICAgLnVpLW1kLTExLFxuICAgIC51aS1tZC0xMiB7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgIH1cblxuICAgIC51aS1tZC0wIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAudWktbWQtMSB7XG4gICAgICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbWQtMiB7XG4gICAgICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLTMge1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgIH1cblxuICAgIC51aS1tZC00IHtcbiAgICAgICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbWQtNSB7XG4gICAgICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLTYge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgIC51aS1tZC03IHtcbiAgICAgICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbWQtOCB7XG4gICAgICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLTkge1xuICAgICAgICB3aWR0aDogNzUlO1xuICAgIH1cblxuICAgIC51aS1tZC0xMCB7XG4gICAgICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLTExIHtcbiAgICAgICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbWQtMTIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTEyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC0xMSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC0xMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC05IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTgge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1tZC1vZmZzZXQtNyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC02IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTUge1xuICAgICAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1tZC1vZmZzZXQtNCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLW1kLW9mZnNldC0zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1tZC1vZmZzZXQtMSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbWQtb2Zmc2V0LTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjNlbSkge1xuICAgIC51aS1sZy0xLFxuICAgIC51aS1sZy0yLFxuICAgIC51aS1sZy0zLFxuICAgIC51aS1sZy00LFxuICAgIC51aS1sZy01LFxuICAgIC51aS1sZy02LFxuICAgIC51aS1sZy03LFxuICAgIC51aS1sZy04LFxuICAgIC51aS1sZy05LFxuICAgIC51aS1sZy0xMCxcbiAgICAudWktbGctMTEsXG4gICAgLnVpLWxnLTEyIHtcbiAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgfVxuXG4gICAgLnVpLWxnLTAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC51aS1sZy0xIHtcbiAgICAgICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1sZy0yIHtcbiAgICAgICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbGctMyB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLnVpLWxnLTQge1xuICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1sZy01IHtcbiAgICAgICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbGctNiB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgLnVpLWxnLTcge1xuICAgICAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1sZy04IHtcbiAgICAgICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbGctOSB7XG4gICAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuXG4gICAgLnVpLWxnLTEwIHtcbiAgICAgICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbGctMTEge1xuICAgICAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS1sZy0xMiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtMTIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTExIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTEwIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTkge1xuICAgICAgICBtYXJnaW4tbGVmdDogNzUlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtOCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLWxnLW9mZnNldC03IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTYge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtNSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLWxnLW9mZnNldC00IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgICB9XG5cbiAgICAudWktbGctb2Zmc2V0LTMge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjUlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtMiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLWxnLW9mZnNldC0xIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS1sZy1vZmZzZXQtMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwLjA2M2VtKSB7XG4gICAgLnVpLXhsLTEsXG4gICAgLnVpLXhsLTIsXG4gICAgLnVpLXhsLTMsXG4gICAgLnVpLXhsLTQsXG4gICAgLnVpLXhsLTUsXG4gICAgLnVpLXhsLTYsXG4gICAgLnVpLXhsLTcsXG4gICAgLnVpLXhsLTgsXG4gICAgLnVpLXhsLTksXG4gICAgLnVpLXhsLTEwLFxuICAgIC51aS14bC0xMSxcbiAgICAudWkteGwtMTIge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICB9XG5cbiAgICAudWkteGwtMCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTEge1xuICAgICAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTIge1xuICAgICAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS14bC0zIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICB9XG5cbiAgICAudWkteGwtNCB7XG4gICAgICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTUge1xuICAgICAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS14bC02IHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAudWkteGwtNyB7XG4gICAgICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTgge1xuICAgICAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS14bC05IHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG5cbiAgICAudWkteGwtMTAge1xuICAgICAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS14bC0xMSB7XG4gICAgICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLTEyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC0xMiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtMTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtMTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtOSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC04IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWkteGwtb2Zmc2V0LTcge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtNiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC01IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWkteGwtb2Zmc2V0LTQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICAgIH1cblxuICAgIC51aS14bC1vZmZzZXQtMyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC0yIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgICB9XG5cbiAgICAudWkteGwtb2Zmc2V0LTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gICAgfVxuXG4gICAgLnVpLXhsLW9mZnNldC0wIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIH1cbn1cblxuLnVpLWctbm9wYWQge1xuICAgIHBhZGRpbmc6IDA7XG59XG4iLCAiLypcbiAqIEhlbHBlcnMgYW5kIG92ZXJyaWRlcyBvZiB0aGUgYmFzZSBydWxlcyBpbiBiYXNlL2ludGVyYWN0aW9ucy5jc3MgKHZlbmRvciBsYXllcjogZHJhZ2dhYmxlLCByZXNpemFibGUsIHNvcnRhYmxlKS5cbiAqL1xuLypcbiAqIHAtaGlkZGVuLWFjY2Vzc2libGU6IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGZvY3VzYWJsZSBhbmQgcmVhZCBieSBzY3JlZW4gcmVhZGVycyAodGhlIG5hdGl2ZSBpbnB1dHMgYmVoaW5kIHRoZVxuICogY2hlY2tib3gsIHJhZGlvLCBzZWxlY3QsIC4uLiB3aWRnZXRzKS5cbiAqL1xuLnAtaGlkZGVuLWFjY2Vzc2libGUge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi8qIHA6cmVzaXphYmxlOiB0aGUgcmVzaXplZCBjb250ZW50IGdyb3dzIHdpdGggdGhlIGNvbnRhaW5lci4gSW4gOndoZXJlKCksIHNvIHRoZSBkaXNwbGF5IG9mIGV2ZXJ5IGNvbXBvbmVudCB3aW5zICovXG46d2hlcmUoLnAtcmVzaXphYmxlKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgPiAucC13aWRnZXQtY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFNjcm9sbGJhcnM6IHRoaW4sIHRoZW1lZCBzY3JvbGxiYXJzIGZvciB0aGUgc2Nyb2xsIGNvbnRhaW5lcnMgb2YgdGhlIGNvbXBvbmVudHMgKC0tcC1zY3JvbGxiYXItKiBzZW1hbnRpYyB0b2tlbnMpLlxuICpcbiAqIENvbXBvbmVudCBzY29wZWQgb24gcHVycG9zZSwgbm90IGdsb2JhbDogdGhlIHBhZ2UgYW5kIHRoZSBzY3JvbGwgYXJlYXMgb2YgdGhlIGFwcGxpY2F0aW9uIGtlZXAgdGhlIHNjcm9sbGJhcnMgb2YgdGhlXG4gKiBicm93c2VyIC8gT1MgKGFuIGFwcGxpY2F0aW9uIG9wdHMgaW4gd2l0aCB0aGUgc2FtZSB0d28gZGVjbGFyYXRpb25zIG9uIDpyb290IG9yIGl0cyBvd24gY29udGFpbmVycykuXG4gKiA6d2hlcmUoKSBrZWVwcyB0aGUgc3BlY2lmaWNpdHkgYXQgMCwgc28gYW55IGNvbXBvbmVudCBvciBhcHBsaWNhdGlvbiBydWxlIG92ZXJyaWRlcyBpdC5cbiAqIHNjcm9sbGJhci1jb2xvciBpcyBpbmhlcml0ZWQ6IHNjcm9sbCBhcmVhcyBvZiB0aGUgYXBwbGljYXRpb24gaW5zaWRlIGEgZGlhbG9nIC8gc2lkZWJhciBnZXQgdGhlIHRoZW1lZCBjb2xvcnMgdG9vXG4gKiAobm90IHRoZSB0aGluIHdpZHRoLCB3aGljaCBpcyBub3QgaW5oZXJpdGVkKS4gVGhlIGZvcmNlZCBjb2xvcnMgbW9kZSByZXNldHMgYm90aCB0byB0aGUgc3lzdGVtIHNjcm9sbGJhcnMuXG4gKiBwOnNjcm9sbFBhbmVsIGRyYXdzIGl0cyBvd24gc2Nyb2xsYmFycyAoc2Nyb2xscGFuZWwvc2Nyb2xscGFuZWwvc3JjL3Njcm9sbHBhbmVsLmNzcyksIHRoZSB0YWJWaWV3IG5hdmlnYXRvciBzY3JvbGxzIHdpdGggYnV0dG9ucy5cbiAqL1xuOndoZXJlKFxuICAgIC8qIG92ZXJsYXlzIGFuZCBkcm9wZG93biBsaXN0cyAqL1xuICAgIC5wLWF1dG9jb21wbGV0ZS1wYW5lbCwgLnAtc2VsZWN0b25lbWVudS1pdGVtcy13cmFwcGVyLCAucC1zZWxlY3RjaGVja2JveG1lbnUtaXRlbXMtd3JhcHBlcixcbiAgICAucC1zcGxpdGJ1dHRvbm1lbnUtbGlzdC13cmFwcGVyLCAucC1jb2x1bW50b2dnbGVyLCAucC1tZW51LWR5bmFtaWMtbWF4aGVpZ2h0LCAucC1zbGlkZW1lbnUtY29udGVudCxcbiAgICAvKiBsaXN0cyAqL1xuICAgIC5wLXNlbGVjdGxpc3Rib3gtbGlzdGNvbnRhaW5lciwgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWxpc3Rjb250YWluZXIsIC5wLXBpY2tsaXN0LWxpc3QsIC5wLW9yZGVybGlzdC1saXN0LFxuICAgIC5wLXRyZWUtY29udGFpbmVyLCAucC1sb2ctY29udGVudCwgLnAtdGVybWluYWwsIHRleHRhcmVhLnAtaW5wdXRmaWVsZCxcbiAgICAvKiBkYXRhICovXG4gICAgLnAtZGF0YXRhYmxlLXRhYmxld3JhcHBlciwgLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUtYm9keSwgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtYm9keSxcbiAgICAucC1kYXRhc2Nyb2xsZXItaW5saW5lIC5wLWRhdGFzY3JvbGxlci1jb250ZW50LCAucC1jYXJvdXNlbC1jb250ZW50LFxuICAgIC8qIHBhbmVscywgZGlhbG9ncywgbmF2aWdhdGlvbiAqL1xuICAgIC5wLWRpYWxvZywgLnAtZGlhbG9nLWNvbnRlbnQsIC5wLXNpZGViYXIsIC5wLWFjY29yZGlvbi1jb250ZW50LCAucC1wYW5lbG1lbnUtY29udGVudCwgLnAtdGFibWVudS1uYXZcbikge1xuICAgIHNjcm9sbGJhci13aWR0aDogdmFyKC0tcC1zY3JvbGxiYXItd2lkdGgpO1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tcC1zY3JvbGxiYXItdGh1bWItY29sb3IpIHZhcigtLXAtc2Nyb2xsYmFyLXRyYWNrLWNvbG9yKTtcbn1cbiIsICIvKlxuICogQmFja2Ryb3A6IHRyYW5zbHVjZW50IHByZXNldHMgKEdsYXNzKSBibHVyIGFuZCBzYXR1cmF0ZSB3aGF0IGxpZXMgYmVoaW5kIHRoZSBmbG9hdGluZyBsYXllci4gQWxsIHRva2VucyBhcmUgXCJub25lXCJcbiAqIGluIHRoZSBvdGhlciBwcmVzZXRzLlxuICpcbiAqIE9ubHkgZWxlbWVudHMgdGhhdCBmbG9hdCBvciBmb3JtIGEgYmFyIGdldCBhIGJhY2tkcm9wIGZpbHRlcjogb3ZlcmxheXMgKGRpYWxvZ3MsIHBvcG92ZXJzLCBkcm9wZG93biBwYW5lbHMsIG1lbnVzLFxuICogdG9vbHRpcHMsIGdyb3dsKSwgdGhlIHRvb2xiYXIgYW5kIGJ1dHRvbnMuIE5lc3RlZCBvdmVybGF5cyAoc3VibWVudXMgaW5zaWRlIGEgbWVudSkgb25seSBibHVyIHdoYXQgbGllcyBpbnNpZGUgdGhlaXJcbiAqIHBhcmVudCBvdmVybGF5IChiYWNrZHJvcCByb290KSwgc28gdGhlIG92ZXJsYXkgYmFja2dyb3VuZHMgc3RheSBtb3N0bHkgb3BhcXVlLiBDYXNjYWRlU2VsZWN0OiB0aGUgcm9vdCBwYW5lbCBpcyBvbmx5XG4gKiB0aGUgYW5jaG9yIChubyBoZWlnaHQsIGl0cyBmaXJzdCBsaXN0IGlzIGFic29sdXRlbHkgcG9zaXRpb25lZCksIHNvIHRoZSBmaXJzdCBsaXN0IGdldHMgdGhlIGZpbHRlci5cbiAqIENvbnRlbnQgY29udGFpbmVycyAocGFuZWwsIGNhcmQsIHRhYmxlKSBzdGF5IHdpdGhvdXQgb25lOiBhIGJhY2tkcm9wIGZpbHRlciBtYWtlcyB0aGUgZWxlbWVudCB0aGUgY29udGFpbmluZyBibG9ja1xuICogb2YgaXRzIGFic29sdXRlbHkgLyBmaXhlZCBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzIChvdmVybGF5cyBhcHBlbmRlZCBpbnNpZGUgaXQgd291bGQgYmUgcG9zaXRpb25lZCB3cm9uZyksIGFuZFxuICogdHJhbnNsdWNlbmN5IGJlbG9uZ3MgdG8gdGhlIGNvbnRyb2xzIGxheWVyIGFib3ZlIHRoZSBjb250ZW50IChBcHBsZSBISUcpLlxuICogWmVybyBzcGVjaWZpY2l0eSAoOndoZXJlKSwgc28gY29tcG9uZW50IHJ1bGVzIGFuZCBhcHBsaWNhdGlvbiBDU1Mgd2luLlxuICovXG46d2hlcmUoLnAtc2lkZWJhciwgLnAtb3ZlcmxheXBhbmVsLCAucC1jb25maXJtLXBvcHVwLCAucC1pbnB1dC1vdmVybGF5LCAucC1zZWxlY3RvbmVtZW51LXBhbmVsLFxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1wYW5lbCwgLnAtYXV0b2NvbXBsZXRlLXBhbmVsLFxuICAgIC5wLWNhc2NhZGVzZWxlY3QtaXRlbXMtd3JhcHBlciA+IC5wLWNhc2NhZGVzZWxlY3QtaXRlbXMsXG4gICAgLnAtbWVudS1keW5hbWljLCAucC1tZW51LWNoaWxkLCAucC1jb250ZXh0bWVudSwgLnAtdG9vbHRpcC10ZXh0LCAucC1ncm93bC1pdGVtLWNvbnRhaW5lciwgLnAtcGFzc3dvcmQtcGFuZWwsXG4gICAgLnAtY29sdW1udG9nZ2xlcikge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tcC1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcik7XG59XG5cbi8qXG4gKiBkaWFsb2cgYm94IGFuZCB0b29sYmFyOiB0aGUgZmlsdGVyIGlzIG9uIGEgOjpiZWZvcmUgYmVoaW5kIHRoZSBlbGVtZW50LCBub3Qgb24gdGhlIGVsZW1lbnQuIC5wLWRpYWxvZyBpcyB0aGVcbiAqIHRyYW5zcGFyZW50IGZ1bGwgdmlld3BvcnQgY29udGFpbmVyIChhIGZpbHRlciB0aGVyZSBibHVycyB0aGUgd2hvbGUgcGFnZSwgYWxzbyBmb3IgYSBub24tbW9kYWwgZGlhbG9nKSwgYW5kIGEgZmlsdGVyXG4gKiBvbiB0aGUgYm94IG9yIHRoZSB0b29sYmFyIG1ha2VzIGl0IHRoZSBzdGFja2luZyBjb250ZXh0IGFuZCBjb250YWluaW5nIGJsb2NrIG9mIGl0cyBkZXNjZW5kYW50czogdGhlIGRyb3Bkb3ducyBpbnNpZGVcbiAqIGEgdG9vbGJhciB3b3VsZCBiZSBwYWludGVkIHVuZGVyIHRoZSBjb250ZW50IHRoYXQgZm9sbG93cyBpdC5cbiAqIFRvb2xiYXIgb25seSAobm90IG1lbnViYXIgLyBtZWdhbWVudSk6IGFuIGVsZW1lbnQgd2l0aCBhIGJhY2tkcm9wIGZpbHRlciBpcyB0aGUgYmFja2Ryb3Agcm9vdCBvZiBpdHMgZGVzY2VuZGFudHMsIHRoZVxuICogc3VibWVudXMgd291bGQgb25seSBibHVyIHdoYXQgbGllcyBpbnNpZGUgdGhlIGJhci5cbiAqL1xuOndoZXJlKC5wLWRpYWxvZy1ib3gsIC5wLXRvb2xiYXIpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIGJlaGluZCB0aGUgYm94OiB0aGUgZGlhbG9nIGNvbnRhaW5lciBpcyBhIHN0YWNraW5nIGNvbnRleHQgKHotaW5kZXggb2YgdGhlIHdpZGdldCksIHRoZSBib3ggYmFja2dyb3VuZCBwYWludHMgb3ZlciBpdCAqL1xuOndoZXJlKC5wLWRpYWxvZy1ib3gpOjpiZWZvcmUge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tcC1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcik7XG59XG5cbi8qIG5vIHN0YWNraW5nIGNvbnRleHQgb24gdGhlIHRvb2xiYXI6IHRoZSA6OmJlZm9yZSBjb21lcyBmaXJzdCBpbiB0aGUgcG9zaXRpb25lZCBsYXllciwgdGhlIHBvc2l0aW9uZWQgY2hpbGRyZW4gZm9sbG93ICovXG46d2hlcmUoLnAtdG9vbGJhcikge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuOndoZXJlKC5wLXRvb2xiYXIpID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG46d2hlcmUoLnAtdG9vbGJhcik6OmJlZm9yZSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS1wLW5hdmlnYXRpb24tYmFja2Ryb3AtZmlsdGVyKTtcbn1cblxuOndoZXJlKC5wLWJ1dHRvbikge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tcC1idXR0b24tYmFja2Ryb3AtZmlsdGVyKTtcbn1cblxuLyogbW9kYWwgbWFzazogYmx1cnMgdGhlIHBhZ2UgYmVoaW5kIGEgbW9kYWwgZGlhbG9nIC8gc2lkZWJhciAvIGJsb2NrVUkgKi9cbjp3aGVyZSgucC13aWRnZXQtb3ZlcmxheSwgLnAtZGlhbG9nLW1hc2spIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXAtbWFzay1iYWNrZHJvcC1maWx0ZXIpO1xufVxuIiwgIi8qXG4gKiBCYWRnZSAoc2hhcmVkKTogcDpiYWRnZSAoc3RhbmRhbG9uZSBhbmQgYXMgd3JhcHBlciA9IG92ZXJsYXkgYmFkZ2UpIGFuZCB0aGUgYmFkZ2UgYXR0cmlidXRlIG9mIG90aGVyIGNvbXBvbmVudHNcbiAqXG4gKiBNYXJrdXA6IHNwYW4ucC1iYWRnZSA+IHNwYW4ucC1iYWRnZS1pY29uPyBzcGFuLnAtYmFkZ2UtbGFiZWw/LCB3cmFwcGVyIGRpdi5wLW92ZXJsYXktYmFkZ2VcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLWJhZGdlLXNlY29uZGFyeSB8IC1zdWNjZXNzIHwgLWluZm8gfCAtd2FybmluZyB8IC1kYW5nZXIgfCAtaGVscCxcbiAqICAgICAgICAgICAgICAgICAgICBwLWJhZGdlLWxnLCBwLWJhZGdlLXhsLCBwLWJhZGdlLWRvdCwgcC1iYWRnZS1uby1ndXR0ZXIsIHAtc3RhdGUtaGlkZGVuXG4gKiBzdHlsZUNsYXNzIG9ubHkgKHRoZSBzZXZlcml0eSAvIHNpemUgYXR0cmlidXRlcyBkbyBub3Qga25vdyB0aGVtKTogcC1iYWRnZS1jb250cmFzdCwgcC1iYWRnZS1zbVxuICovXG4ucC1iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXAtYmFkZ2UtZ2FwKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLWJhZGdlLXBhZGRpbmcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYmFkZ2UtcHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1iYWRnZS1wcmltYXJ5LWNvbG9yKTtcbiAgICBmb250LXNpemU6IHZhcigtLXAtYmFkZ2UtZm9udC1zaXplKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC1iYWRnZS1mb250LXdlaWdodCk7XG4gICAgbWluLXdpZHRoOiB2YXIoLS1wLWJhZGdlLW1pbi13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1wLWJhZGdlLWhlaWdodCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtYmFkZ2UtaGVpZ2h0KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWJhZGdlLWJvcmRlci1yYWRpdXMpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLyogYmFkZ2UgdXNlZCBhcyBwbGFpbiBzdHlsZUNsYXNzIChlLmcuIDxzcGFuIGNsYXNzPVwicC1iYWRnZVwiPikgKi9cbiAgICAmOm5vdCgucC13aWRnZXQpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuXG4gICAgLyogYWZ0ZXIgOm5vdCgucC13aWRnZXQpIChzYW1lIHNwZWNpZmljaXR5KSAqL1xuICAgICYucC1zdGF0ZS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8qIHRoZSBpY29uIGZvbGxvd3MgdGhlIGJhZGdlIGZvbnQgc2l6ZSAobGcgLyB4bCkgaW5zdGVhZCBvZiB0aGUgZ2xvYmFsIGljb24gc2l6ZSAqL1xuICAgIC5wLWJhZGdlLWljb24ge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJi5wLWJhZGdlLXNlY29uZGFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYmFkZ2Utc2Vjb25kYXJ5LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1iYWRnZS1zZWNvbmRhcnktY29sb3IpO1xuICAgIH1cblxuICAgICYucC1iYWRnZS1zdWNjZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1iYWRnZS1zdWNjZXNzLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1iYWRnZS1zdWNjZXNzLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtYmFkZ2UtaW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYmFkZ2UtaW5mby1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmFkZ2UtaW5mby1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLWJhZGdlLXdhcm5pbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJhZGdlLXdhcm4tYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJhZGdlLXdhcm4tY29sb3IpO1xuICAgIH1cblxuICAgICYucC1iYWRnZS1kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJhZGdlLWRhbmdlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmFkZ2UtZGFuZ2VyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtYmFkZ2UtaGVscCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYmFkZ2UtaGVscC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmFkZ2UtaGVscC1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLWJhZGdlLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1iYWRnZS1jb250cmFzdC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmFkZ2UtY29udHJhc3QtY29sb3IpO1xuICAgIH1cblxuICAgICYucC1iYWRnZS1zbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1iYWRnZS1zbS1mb250LXNpemUpO1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtYmFkZ2Utc20tbWluLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJhZGdlLXNtLWhlaWdodCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLWJhZGdlLXNtLWhlaWdodCk7XG4gICAgfVxuXG4gICAgJi5wLWJhZGdlLWxnIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJhZGdlLWxnLWZvbnQtc2l6ZSk7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tcC1iYWRnZS1sZy1taW4td2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYmFkZ2UtbGctaGVpZ2h0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtYmFkZ2UtbGctaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmLnAtYmFkZ2UteGwge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYmFkZ2UteGwtZm9udC1zaXplKTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLWJhZGdlLXhsLW1pbi13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1iYWRnZS14bC1oZWlnaHQpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC1iYWRnZS14bC1oZWlnaHQpO1xuICAgIH1cblxuICAgICYucC1iYWRnZS1kb3Qge1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1iYWRnZS1kb3Qtc2l6ZSk7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tcC1iYWRnZS1kb3Qtc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1iYWRnZS1kb3Qtc2l6ZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmLnAtYmFkZ2Utbm8tZ3V0dGVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbn1cblxuLnAtb3ZlcmxheS1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAucC1iYWRnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIC8qIHJpbmcgaW4gdGhlIHN1cnJvdW5kaW5nIGJhY2tncm91bmQgY29sb3IgbGlrZSBQcmltZVVJWCBvdmVybGF5YmFkZ2UgKi9cbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1vdmVybGF5YmFkZ2Utb3V0bGluZS13aWR0aCkgc29saWQgdmFyKC0tcC1vdmVybGF5YmFkZ2Utb3V0bGluZS1jb2xvcik7XG5cbiAgICAgICAgJjpkaXIocnRsKSB7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogQ2hlY2tib3ggKHNoYXJlZCk6IHRoZSBnZW5lcmljIC5wLWNoa2JveCB1c2VkIGJ5IHA6c2VsZWN0Qm9vbGVhbkNoZWNrYm94LCBwOnNlbGVjdE1hbnlDaGVja2JveCwgcDp0cmlTdGF0ZUNoZWNrYm94LFxuICogcm93IHNlbGVjdGlvbiBvZiBwOmRhdGFUYWJsZSAvIHA6dHJlZVRhYmxlLCBwOnNlbGVjdENoZWNrYm94TWVudSwgLi4uXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXMgb24gLnAtY2hrYm94LWJveDogcC1zdGF0ZS1ob3ZlciwgcC1zdGF0ZS1mb2N1cywgcC1zdGF0ZS1hY3RpdmUgKGNoZWNrZWQpLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtc3RhdGUtZXJyb3IgKGludmFsaWQpLCBwLXN0YXRlLWRpc2FibGVkLCBwLWNoa2JveC1yZWFkb25seSxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLWlucHV0LWZpbGxlZCAob24gYSBwYXJlbnQpLCBwLXN0YXRlLXJlYWRvbmx5IChvbiBhIHBhcmVudClcbiAqIFNpemVzOiBwLWNoa2JveC1zbSwgcC1jaGtib3gtbGcgKG9uIHRoZSAucC1jaGtib3ggb3IgYSBwYXJlbnQpXG4gKiBJY29ucyAoLnAtY2hrYm94LWljb24ucC1pY29uLnAtY2hlY2tib3gtaWNvbik6IHAtY2hlY2tib3gtY2hlY2tlZC1pY29uLCBwLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaWNvbiAocGFydGlhbGx5IGNoZWNrZWQpLFxuICogICAgICAgIHAtY2hlY2tib3gtY3Jvc3NlZC1pY29uICh0cmkgc3RhdGUgXCJmYWxzZVwiKSwgbm9uZSAodW5jaGVja2VkKVxuICovXG4ucC1jaGtib3gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIC5wLWNoa2JveC1ib3gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWNoZWNrYm94LXdpZHRoKTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLWNoZWNrYm94LXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWNoZWNrYm94LWhlaWdodCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hlY2tib3gtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNoZWNrYm94LWljb24tY29sb3IpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWNoZWNrYm94LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY2hlY2tib3gtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtY2hlY2tib3gtc2hhZG93KTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm9yZGVyLWNvbG9yIHZhcigtLXAtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAvKiByZWFkb25seSAocC1zdGF0ZS1yZWFkb25seSBvbiB0aGUgYm94IG9yIGEgcGFyZW50LCBwLWNoa2JveC1yZWFkb25seSk6IG5vIGhvdmVyIGZlZWRiYWNrLCBhbHNvIG5vdCBmcm9tIHRoZVxuICAgICAgICAgICBwLXN0YXRlLWhvdmVyIHRoZSB3aWRnZXRzIHNldCBvbiBtb3VzZWVudGVyICovXG4gICAgICAgICYucC1zdGF0ZS1ob3Zlcjpub3QoLnAtY2hrYm94LXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHkgKiksXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkLCAucC1jaGtib3gtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSAqKTpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtY2hlY2tib3gtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtY2hlY2tib3gtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtY2hlY2tib3gtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1jaGVja2JveC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWNoZWNrYm94LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtY2hlY2tib3gtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1jaGVja2JveC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jaGVja2JveC1jaGVja2VkLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNoZWNrYm94LWNoZWNrZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGVja2JveC1pY29uLWNoZWNrZWQtY29sb3IpO1xuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXI6bm90KC5wLWNoa2JveC1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5ICopLFxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQsIC5wLWNoa2JveC1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5ICopOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtY2hlY2tib3gtY2hlY2tlZC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hlY2tib3gtY2hlY2tlZC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGVja2JveC1pY29uLWNoZWNrZWQtaG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtZm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jaGVja2JveC1jaGVja2VkLWZvY3VzLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBpbnZhbGlkOiB0aGUgYm9yZGVyIGFsc28gd2lucyBvdmVyIGhvdmVyLCBmb2N1cyBhbmQgY2hlY2tlZCAoc2FtZSBvciBoaWdoZXIgc3BlY2lmaWNpdHksIGxhdGVyKSwgdGhlIGZvY3VzIHJpbmcgc3RheXMgKi9cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3I6aXMoOmhvdmVyLCAucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtZm9jdXMpLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3IucC1zdGF0ZS1hY3RpdmU6aXMoOmhvdmVyLCAucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtZm9jdXMpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jaGVja2JveC1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hlY2tib3gtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtY2hlY2tib3gtY2hlY2tlZC1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtY2hlY2tib3gtaWNvbi1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaGtib3gtaWNvbiB7XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoZWNrYm94LWljb24tc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tcC1jaGVja2JveC1pY29uLXNpemUpIC8gMik7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1jaGVja2JveC1pY29uLXNpemUpIC8gMik7XG5cbiAgICAgICAgICAgICYucC1jaGVja2JveC1jaGVja2VkLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtY2hlY2tib3gtY2hlY2tlZC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jaGVja2JveC1pbmRldGVybWluYXRlLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtY2hlY2tib3gtY3Jvc3NlZC1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWNoZWNrYm94LWNyb3NzZWQtaWNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiByZWFkb25seSAodGhlIGRpc2FibGVkIGN1cnNvciBjb21lcyBmcm9tIGJhc2UvY29tbW9uLmNzcykgKi9cbiAgICAucC1jaGtib3gtYm94LnAtY2hrYm94LXJlYWRvbmx5LFxuICAgICYucC1zdGF0ZS1yZWFkb25seSAucC1jaGtib3gtYm94LFxuICAgIC5wLXN0YXRlLXJlYWRvbmx5ICYgLnAtY2hrYm94LWJveCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAucC1jaGtib3gtbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAvKiB0aGUgZ2FwIGlzIHBhZGRpbmcgb2YgdGhlIGxhYmVsOiBhIGNsaWNrIGJldHdlZW4gYm94IGFuZCBsYWJlbCB0b2dnbGVzIHRvbyAqL1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tcC1jaGVja2JveC1sYWJlbC1nYXApO1xuICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgJi5wLWNoa2JveC1yZWFkb25seSB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIGZpbGxlZCAqL1xuLnAtaW5wdXQtZmlsbGVkIC5wLWNoa2JveCAucC1jaGtib3gtYm94IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNoZWNrYm94LWZpbGxlZC1iYWNrZ3JvdW5kKTtcblxuICAgIC8qIG5vIHRva2VuOiBjaGVja2JveCBoYXMgbm8gZmlsbGVkIGhvdmVyIGJhY2tncm91bmQsIHVzZSB0aGUgZm9ybSBmaWVsZCBvbmUgKi9cbiAgICAmLnAtc3RhdGUtaG92ZXI6bm90KC5wLWNoa2JveC1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5ICopLFxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkLCAucC1jaGtib3gtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSAqKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hlY2tib3gtY2hlY2tlZC1iYWNrZ3JvdW5kKTtcblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXI6bm90KC5wLWNoa2JveC1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHksIC5wLXN0YXRlLXJlYWRvbmx5ICopLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCwgLnAtY2hrYm94LXJlYWRvbmx5LCAucC1zdGF0ZS1yZWFkb25seSwgLnAtc3RhdGUtcmVhZG9ubHkgKik6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGVja2JveC1jaGVja2VkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGVja2JveC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICB9XG59XG5cbi8qXG4gKiBzaXplczogcC1jaGtib3gtc20gLyBwLWNoa2JveC1sZyBvbiB0aGUgLnAtY2hrYm94IChwOnNlbGVjdEJvb2xlYW5DaGVja2JveCBzdHlsZUNsYXNzKSBvciBvbiBhbnkgcGFyZW50XG4gKiAocDpzZWxlY3RNYW55Q2hlY2tib3ggLyBwOnRyaVN0YXRlQ2hlY2tib3ggc3R5bGVDbGFzcywgYSB3cmFwcGVyKTogdGhlIHNpemUgdG9rZW5zIHJlcGxhY2UgdGhlIGJhc2Ugb25lc1xuICovXG4ucC1jaGtib3gtc20ge1xuICAgIC0tcC1jaGVja2JveC13aWR0aDogdmFyKC0tcC1jaGVja2JveC1zbS13aWR0aCk7XG4gICAgLS1wLWNoZWNrYm94LWhlaWdodDogdmFyKC0tcC1jaGVja2JveC1zbS1oZWlnaHQpO1xuICAgIC0tcC1jaGVja2JveC1pY29uLXNpemU6IHZhcigtLXAtY2hlY2tib3gtaWNvbi1zbS1zaXplKTtcbn1cblxuLnAtY2hrYm94LWxnIHtcbiAgICAtLXAtY2hlY2tib3gtd2lkdGg6IHZhcigtLXAtY2hlY2tib3gtbGctd2lkdGgpO1xuICAgIC0tcC1jaGVja2JveC1oZWlnaHQ6IHZhcigtLXAtY2hlY2tib3gtbGctaGVpZ2h0KTtcbiAgICAtLXAtY2hlY2tib3gtaWNvbi1zaXplOiB2YXIoLS1wLWNoZWNrYm94LWljb24tbGctc2l6ZSk7XG59XG5cbi8qXG4gKiBjaGVja2VkIGluc2lkZSBhIHNlbGVjdGlvbiAoc2VsZWN0ZWQgcm93IC8gaXRlbSwgaGlnaGxpZ2h0IGJhY2tncm91bmQpOiB0aGUgYm94IGNhbiBoYXZlIHRoZSBjb2xvciBvZiB0aGUgc2VsZWN0aW9uXG4gKiAoTm9yYTogcHJpbWFyeSwgTWV0YWw6IGdyYXBoaXRlKSwgYSByaW0gaW4gdGhlIHNlbGVjdGlvbiB0ZXh0IGNvbG9yIGtlZXBzIGl0IHZpc2libGUuIFRoZSBkb3VibGVkIGNsYXNzIHdpbnMgb3ZlciB0aGVcbiAqIGhvdmVyIC8gZm9jdXMgcnVsZXMgYWJvdmUuXG4gKi9cbi5wLXN0YXRlLWhpZ2hsaWdodCAucC1jaGtib3ggLnAtY2hrYm94LWJveC5wLXN0YXRlLWFjdGl2ZS5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWhpZ2hsaWdodC1jb2xvcik7XG59XG4iLCAiLypcbiAqIElucHV0RmllbGQgKHNoYXJlZCk6IGV2ZXJ5IC5wLWlucHV0ZmllbGQgKHA6aW5wdXRUZXh0LCBwOmlucHV0VGV4dGFyZWEsIHA6cGFzc3dvcmQsIC4uLilcbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1zdGF0ZS1ob3ZlciwgcC1zdGF0ZS1mb2N1cywgcC1zdGF0ZS1lcnJvciAoaW52YWxpZCksIHAtc3RhdGUtZGlzYWJsZWQsXG4gKiAgICAgICAgICAgICAgICAgICAgcC1pbnB1dC1maWxsZWQgKG9uIHRoZSBmaWVsZCBvciBhIHBhcmVudCksIHAtaW5wdXR0ZXh0LXNtLCBwLWlucHV0dGV4dC1sZ1xuICogQWxzbzogcGxhY2Vob2xkZXJzLCAuZmllbGQgLyAucC1maWVsZCBzbWFsbC5wLXN0YXRlLWVycm9yLCAucC1mbG9hdC1sYWJlbCAoKyBwLWZsb2F0LWxhYmVsLWluIC8gcC1mbG9hdC1sYWJlbC1vbiksXG4gKiAgICAgICAucC1pbnB1dC1pY29uLWxlZnQgLyAtcmlnaHQsIHA6aW5wdXRUZXh0YXJlYSBhdXRvUmVzaXplLCBwOmlucHV0TnVtYmVyIC8gcDppbnB1dE1hc2sgKHBsYWluIC5wLWlucHV0ZmllbGQpLFxuICogICAgICAgLnAtc3Itb25seVxuICovXG5cbi8qIGF1dG9maWxsIGRldGVjdGlvbiAoYW5pbWF0aW9uc3RhcnQpLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ByaW1lZmFjZXMvcHJpbWVmYWNlcy9pc3N1ZXMvMTI0NDQgKi9cbkBrZXlmcmFtZXMgcGYtYXV0b2ZpbGwge1xuICAgIHRvIHtcbiAgICAgICAgLyogZW1wdHkgb24gcHVycG9zZSAqL1xuICAgIH1cbn1cblxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHBmLWF1dG9maWxsO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4xcztcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuXG4vKiB2aXN1YWxseSBoaWRkZW4sIHN0aWxsIGF2YWlsYWJsZSBmb3IgYXNzaXN0aXZlIHRlY2hub2xvZ3kgKi9cbi5wLXNyLW9ubHkge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd29yZC13cmFwOiBub3JtYWw7XG59XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLXAtZm9ybS1maWVsZC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnAtaW5wdXRmaWVsZCB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLWlucHV0dGV4dC1mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWlucHV0dGV4dC1mb250LXdlaWdodCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteSk7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteCk7XG4gICAgY29sb3I6IHZhcigtLXAtaW5wdXR0ZXh0LWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWlucHV0dGV4dC1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWlucHV0dGV4dC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtaW5wdXR0ZXh0LWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtaW5wdXR0ZXh0LXNoYWRvdyk7XG4gICAgb3V0bGluZTogMCBub25lO1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWlucHV0dGV4dC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1pbnB1dHRleHQtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWlucHV0dGV4dC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWlucHV0dGV4dC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLWlucHV0dGV4dC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtaW5wdXR0ZXh0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOm5vdCg6ZGlzYWJsZWQsIC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlcixcbiAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtaW5wdXR0ZXh0LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpub3QoOmRpc2FibGVkLCAucC1zdGF0ZS1kaXNhYmxlZCk6Zm9jdXMsXG4gICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIGludmFsaWQ6IHRoZSBib3JkZXIgYWxzbyB3aW5zIG92ZXIgaG92ZXIgYW5kIGZvY3VzIChzYW1lIHNwZWNpZmljaXR5LCBsYXRlciksIHRoZSBmb2N1cyByaW5nIHN0YXlzICovXG4gICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICYucC1zdGF0ZS1lcnJvcjppcyg6aG92ZXIsIDpmb2N1cywgLnAtc3RhdGUtaG92ZXIsIC5wLXN0YXRlLWZvY3VzKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1pbnB1dHRleHQtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1lcnJvciB7XG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWlucHV0dGV4dC1pbnZhbGlkLXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGZpbGxlZDogYm90aCBhbHRlcm5hdGl2ZXMgaGF2ZSB0aGUgc2FtZSBzcGVjaWZpY2l0eSAqL1xuICAgIC5wLWlucHV0LWZpbGxlZCAmLFxuICAgICYucC1pbnB1dC1maWxsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWlucHV0dGV4dC1maWxsZWQtYmFja2dyb3VuZCk7XG5cbiAgICAgICAgJjpub3QoOmRpc2FibGVkLCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWlucHV0dGV4dC1maWxsZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmLnAtc3RhdGUtZm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1pbnB1dHRleHQtZmlsbGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogYWZ0ZXIgZmlsbGVkIChzYW1lIHNwZWNpZmljaXR5KTogYSBkaXNhYmxlZCBmaWxsZWQgZmllbGQgc2hvd3MgdGhlIGRpc2FibGVkIGJhY2tncm91bmQsIGxpa2UgUHJpbWVVSVggKi9cbiAgICAmOmRpc2FibGVkLFxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtaW5wdXR0ZXh0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1pbnB1dHRleHQtZGlzYWJsZWQtY29sb3IpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYucC1pbnB1dHRleHQtc20ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtaW5wdXR0ZXh0LXNtLWZvbnQtc2l6ZSk7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtaW5wdXR0ZXh0LXNtLXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWlucHV0dGV4dC1zbS1wYWRkaW5nLXgpO1xuICAgIH1cblxuICAgICYucC1pbnB1dHRleHQtbGcge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtaW5wdXR0ZXh0LWxnLWZvbnQtc2l6ZSk7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtaW5wdXR0ZXh0LWxnLXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWlucHV0dGV4dC1sZy1wYWRkaW5nLXgpO1xuICAgIH1cbn1cblxuLypcbiAqIHA6aW5wdXRUZXh0YXJlYTogdGhlIC5wLWlucHV0ZmllbGQgcnVsZXMgYWJvdmUgcmVhZCB0aGUgaW5wdXR0ZXh0IHRva2VucywgYSB0ZXh0YXJlYSBwb2ludHMgdGhlbSB0byBpdHMgb3duXG4gKiB0ZXh0YXJlYSB0b2tlbnMgKHNhbWUgZGVmYXVsdHMpLCBzbyBvdmVycmlkaW5nIGEgLS1wLXRleHRhcmVhLSogdG9rZW4gc3R5bGVzIGV2ZXJ5IHN0YXRlIG9mIHRoZSB0ZXh0YXJlYVxuICovXG4ucC1pbnB1dHRleHRhcmVhIHtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvbnQtc2l6ZTogdmFyKC0tcC10ZXh0YXJlYS1mb250LXNpemUpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9udC13ZWlnaHQ6IHZhcigtLXAtdGV4dGFyZWEtZm9udC13ZWlnaHQpO1xuICAgIC0tcC1pbnB1dHRleHQtYmFja2dyb3VuZDogdmFyKC0tcC10ZXh0YXJlYS1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLXAtdGV4dGFyZWEtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1maWxsZWQtYmFja2dyb3VuZDogdmFyKC0tcC10ZXh0YXJlYS1maWxsZWQtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1maWxsZWQtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tcC10ZXh0YXJlYS1maWxsZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1maWxsZWQtZm9jdXMtYmFja2dyb3VuZDogdmFyKC0tcC10ZXh0YXJlYS1maWxsZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1ib3JkZXItY29sb3I6IHZhcigtLXAtdGV4dGFyZWEtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWhvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0tcC10ZXh0YXJlYS1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRleHRhcmVhLWZvY3VzLWJvcmRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1pbnZhbGlkLWJvcmRlci1jb2xvcjogdmFyKC0tcC10ZXh0YXJlYS1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1jb2xvcjogdmFyKC0tcC10ZXh0YXJlYS1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1kaXNhYmxlZC1jb2xvcjogdmFyKC0tcC10ZXh0YXJlYS1kaXNhYmxlZC1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1wbGFjZWhvbGRlci1jb2xvcjogdmFyKC0tcC10ZXh0YXJlYS1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1pbnZhbGlkLXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1wLXRleHRhcmVhLWludmFsaWQtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtc2hhZG93OiB2YXIoLS1wLXRleHRhcmVhLXNoYWRvdyk7XG4gICAgLS1wLWlucHV0dGV4dC1wYWRkaW5nLXg6IHZhcigtLXAtdGV4dGFyZWEtcGFkZGluZy14KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteTogdmFyKC0tcC10ZXh0YXJlYS1wYWRkaW5nLXkpO1xuICAgIC0tcC1pbnB1dHRleHQtYm9yZGVyLXJhZGl1czogdmFyKC0tcC10ZXh0YXJlYS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctd2lkdGg6IHZhcigtLXAtdGV4dGFyZWEtZm9jdXMtcmluZy13aWR0aCk7XG4gICAgLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLXN0eWxlOiB2YXIoLS1wLXRleHRhcmVhLWZvY3VzLXJpbmctc3R5bGUpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC10ZXh0YXJlYS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctb2Zmc2V0OiB2YXIoLS1wLXRleHRhcmVhLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLXRleHRhcmVhLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtdGV4dGFyZWEtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgLS1wLWlucHV0dGV4dC1zbS1mb250LXNpemU6IHZhcigtLXAtdGV4dGFyZWEtc20tZm9udC1zaXplKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXNtLXBhZGRpbmcteDogdmFyKC0tcC10ZXh0YXJlYS1zbS1wYWRkaW5nLXgpO1xuICAgIC0tcC1pbnB1dHRleHQtc20tcGFkZGluZy15OiB2YXIoLS1wLXRleHRhcmVhLXNtLXBhZGRpbmcteSk7XG4gICAgLS1wLWlucHV0dGV4dC1sZy1mb250LXNpemU6IHZhcigtLXAtdGV4dGFyZWEtbGctZm9udC1zaXplKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWxnLXBhZGRpbmcteDogdmFyKC0tcC10ZXh0YXJlYS1sZy1wYWRkaW5nLXgpO1xuICAgIC0tcC1pbnB1dHRleHQtbGctcGFkZGluZy15OiB2YXIoLS1wLXRleHRhcmVhLWxnLXBhZGRpbmcteSk7XG5cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4vKiBwOmlucHV0VGV4dGFyZWEgYXV0b1Jlc2l6ZSAqL1xuLnAtaW5wdXR0ZXh0YXJlYS1yZXNpemFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcmVzaXplOiBub25lO1xufVxuXG4vKiBwOmlucHV0TnVtYmVyOiBkaWdpdHMgb2YgZXF1YWwgd2lkdGgsIHRoZSB2YWx1ZSBkb2VzIG5vdCBqdW1wIHdoaWxlIHR5cGluZyAqL1xuLnAtaW5wdXRudW1iZXIgPiAucC1pbnB1dGZpZWxkIHtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4vKiBmbHVpZDogSW5wdXRUZXh0LCBJbnB1dE51bWJlciwgSW5wdXRUZXh0YXJlYSwgSW5wdXRNYXNrIGFuZCBhbnkgb3RoZXIgLnAtaW5wdXRmaWVsZCAoZS5nLiBwOmtleWJvYXJkKSAqL1xuLnAtZmx1aWQge1xuICAgIC5wLWlucHV0ZmllbGQsXG4gICAgLnAtaW5wdXR0ZXh0LFxuICAgIC5wLWlucHV0bnVtYmVyLFxuICAgIC5wLWlucHV0dGV4dGFyZWEsXG4gICAgLnAtaW5wdXRtYXNrIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnAtaW5wdXR0ZXh0W3NpemVdLFxuICAgIC5wLWlucHV0ZmllbGRbc2l6ZV0ge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi8qIHZhbGlkYXRpb24gbWVzc2FnZSBiZWxvdyBhIGZpZWxkICovXG4ucC1maWVsZCBzbWFsbC5wLXN0YXRlLWVycm9yLFxuLmZpZWxkIHNtYWxsLnAtc3RhdGUtZXJyb3Ige1xuICAgIGNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3Itc2ltcGxlLWNvbG9yKTtcbn1cblxuLnAtZmxvYXQtbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5wLW91dHB1dGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogOTUlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICA+IGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogdmFyKC0tcC1mbG9hdGxhYmVsLXBvc2l0aW9uLXgpO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMC41ZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWZsb2F0bGFiZWwtY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZmxvYXRsYWJlbC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1mbG9hdGxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZyk7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtZmxvYXRsYWJlbC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICA+IGxhYmVsLnAtb3V0cHV0bGFiZWwtcnRsIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IHZhcigtLXAtZmxvYXRsYWJlbC1wb3NpdGlvbi14KTtcbiAgICB9XG5cbiAgICA+IHRleHRhcmVhIH4gbGFiZWwge1xuICAgICAgICB0b3A6IHZhcigtLXAtZmxvYXRsYWJlbC1wb3NpdGlvbi15KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICA+IGlucHV0OmZvY3VzIH4gbGFiZWwsXG4gICAgPiBpbnB1dC5wLXN0YXRlLWZpbGxlZCB+IGxhYmVsLFxuICAgID4gdGV4dGFyZWE6Zm9jdXMgfiBsYWJlbCxcbiAgICA+IHRleHRhcmVhLnAtc3RhdGUtZmlsbGVkIH4gbGFiZWwsXG4gICAgPiAucC1pbnB1dHdyYXBwZXItZm9jdXMgfiBsYWJlbCxcbiAgICA+IC5wLXNlbGVjdGNoZWNrYm94bWVudS5wLXN0YXRlLWZvY3VzIH4gbGFiZWwsXG4gICAgPiA6d2hlcmUoLnAtc2VsZWN0Y2hlY2tib3htZW51Omhhcyg+IC5wLWhpZGRlbi1hY2Nlc3NpYmxlID4gW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdKSkgfiBsYWJlbCxcbiAgICA+IC5wLWlucHV0d3JhcHBlci1maWxsZWQgfiBsYWJlbCxcbiAgICA+IDp3aGVyZSgucC1hdXRvY29tcGxldGUtbXVsdGlwbGU6aGFzKC5wLWF1dG9jb21wbGV0ZS10b2tlbiksIC5wLWNoaXBzOmhhcygucC1jaGlwcy10b2tlbiksXG4gICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudTpoYXMoPiAucC1oaWRkZW4gPiA6Y2hlY2tlZCkpIH4gbGFiZWwsXG4gICAgPiBpbnB1dDotd2Via2l0LWF1dG9maWxsIH4gbGFiZWwsXG4gICAgPiB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsIH4gbGFiZWwge1xuICAgICAgICB0b3A6IHZhcigtLXAtZmxvYXRsYWJlbC1vdmVyLWFjdGl2ZS10b3ApO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZmxvYXRsYWJlbC1hY3RpdmUtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZmxvYXRsYWJlbC1hY3RpdmUtZm9udC13ZWlnaHQpO1xuICAgIH1cblxuICAgID4gaW5wdXQucC1zdGF0ZS1maWxsZWQgfiBsYWJlbCxcbiAgICA+IHRleHRhcmVhLnAtc3RhdGUtZmlsbGVkIH4gbGFiZWwsXG4gICAgPiAucC1pbnB1dHdyYXBwZXItZmlsbGVkIH4gbGFiZWwsXG4gICAgPiA6d2hlcmUoLnAtYXV0b2NvbXBsZXRlLW11bHRpcGxlOmhhcygucC1hdXRvY29tcGxldGUtdG9rZW4pLCAucC1jaGlwczpoYXMoLnAtY2hpcHMtdG9rZW4pLFxuICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnU6aGFzKD4gLnAtaGlkZGVuID4gOmNoZWNrZWQpKSB+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZmxvYXRsYWJlbC1hY3RpdmUtY29sb3IpO1xuICAgIH1cblxuICAgID4gaW5wdXQ6Zm9jdXMgfiBsYWJlbCxcbiAgICA+IHRleHRhcmVhOmZvY3VzIH4gbGFiZWwsXG4gICAgPiAucC1pbnB1dHdyYXBwZXItZm9jdXMgfiBsYWJlbCxcbiAgICA+IC5wLXNlbGVjdGNoZWNrYm94bWVudS5wLXN0YXRlLWZvY3VzIH4gbGFiZWwsXG4gICAgPiA6d2hlcmUoLnAtc2VsZWN0Y2hlY2tib3htZW51Omhhcyg+IC5wLWhpZGRlbi1hY2Nlc3NpYmxlID4gW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdKSkgfiBsYWJlbCxcbiAgICA+IGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwgfiBsYWJlbCxcbiAgICA+IHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGwgfiBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWZsb2F0bGFiZWwtZm9jdXMtY29sb3IpO1xuICAgIH1cblxuICAgID4gLnAtc3RhdGUtZXJyb3IgfiBsYWJlbCxcbiAgICA+IC5wLXN0YXRlLWVycm9yOmlzKDpmb2N1cywgLnAtaW5wdXR3cmFwcGVyLWZvY3VzKSB+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZmxvYXRsYWJlbC1pbnZhbGlkLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIHZhcmlhbnQgXCJpblwiIChQcmltZVVJWCBGbG9hdExhYmVsIHZhcmlhbnQ9XCJpblwiIC8gSWZ0YUxhYmVsKTogdGhlIGxhYmVsIHNpdHMgaW5zaWRlIHRoZSBmaWVsZCBhdCB0aGUgdG9wLCB0aGUgZmllbGRcbiAgICAgKiBnZXRzIG1vcmUgc3BhY2UgYWJvdmUgdGhlIHRleHQuIENvbG9ycyBhbmQgdGhlIGFjdGl2ZSBmb250IGNvbWUgZnJvbSB0aGUgcnVsZXMgYWJvdmUuXG4gICAgICovXG4gICAgJi5wLWZsb2F0LWxhYmVsLWluIHtcbiAgICAgICAgLyogdGhlIGJveCBvZiB0aGUgZmllbGQ6IHBsYWluIGlucHV0IC8gdGV4dGFyZWEsIG9yIHRoZSBpbnB1dCBvZiBhIHdyYXBwZXIgKHA6cGFzc3dvcmQsIHA6aW5wdXROdW1iZXIsIHA6ZGF0ZVBpY2tlciwgLi4uKSAqL1xuICAgICAgICA+IC5wLWlucHV0ZmllbGQsXG4gICAgICAgID4gKiA+IC5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctdG9wKTtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy1ib3R0b20pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogY29tcG9uZW50cyB3aG9zZSBvd24gbGFiZWwgLyBpbnB1dCBydWxlIGlzIG1vcmUgc3BlY2lmaWMgdGhhbiB0aGUgb25lIGFib3ZlICovXG4gICAgICAgID4gOmlzKC5wLXNlbGVjdG9uZW1lbnUsIC5wLWNhc2NhZGVzZWxlY3QsIC5wLWF1dG9jb21wbGV0ZSkgPiAucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLXRvcCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctYm90dG9tKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGNoaXBzIGNvbnRhaW5lcnM6IGhhbGYgb2YgdGhlIHBhZGRpbmcgaXMgb24gdGhlIGNvbnRhaW5lciwgdGhlIG90aGVyIGhhbGYgb24gdGhlIGNoaXBzIC8gaW5wdXQgdG9rZW4gKi9cbiAgICAgICAgPiAucC1jaGlwcyA+IC5wLWNoaXBzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLXRvcCkgLSB2YXIoLS1wLWlucHV0Y2hpcHMtcGFkZGluZy15KSAvIDIpO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1lbmQ6IGNhbGModmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctYm90dG9tKSAtIHZhcigtLXAtaW5wdXRjaGlwcy1wYWRkaW5nLXkpIC8gMik7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5wLWF1dG9jb21wbGV0ZSA+IC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogY2FsYyh2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy10b3ApIC0gdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy15KSAvIDIpO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1lbmQ6IGNhbGModmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctYm90dG9tKSAtIHZhcigtLXAtYXV0b2NvbXBsZXRlLXBhZGRpbmcteSkgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHNlbGVjdENoZWNrYm94TWVudTogbGFiZWwgY29udGFpbmVyIChzaW5nbGUpLCB0b2tlbiBjb250YWluZXIgbGlrZSB0aGUgY2hpcHMgKG11bHRpcGxlKSAqL1xuICAgICAgICA+IC5wLXNlbGVjdGNoZWNrYm94bWVudSAucC1zZWxlY3RjaGVja2JveG1lbnUtbGFiZWwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLXRvcCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctYm90dG9tKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLnAtc2VsZWN0Y2hlY2tib3htZW51IC5wLXNlbGVjdGNoZWNrYm94bWVudS1tdWx0aXBsZS1jb250YWluZXIucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tcC1mbG9hdGxhYmVsLWluLWlucHV0LXBhZGRpbmctdG9wKSArIHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLWJvdHRvbSlcbiAgICAgICAgICAgICAgICArIHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCkgKiB2YXIoLS1wLW11bHRpc2VsZWN0LWZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogY2FsYyh2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy10b3ApIC0gdmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXkpIC8gMik7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLWVuZDogY2FsYyh2YXIoLS1wLWZsb2F0bGFiZWwtaW4taW5wdXQtcGFkZGluZy1ib3R0b20pIC0gdmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXkpIC8gMik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0ZXh0YXJlYTogdGhlIGVtcHR5IGxhYmVsIHN0YXlzIG9uIHRoZSBmaXJzdCBsaW5lICovXG4gICAgICAgID4gdGV4dGFyZWEgfiBsYWJlbCB7XG4gICAgICAgICAgICB0b3A6IHZhcigtLXAtZmxvYXRsYWJlbC1pbi1pbnB1dC1wYWRkaW5nLXRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IDppcyhpbnB1dDpmb2N1cywgaW5wdXQucC1zdGF0ZS1maWxsZWQsIHRleHRhcmVhOmZvY3VzLCB0ZXh0YXJlYS5wLXN0YXRlLWZpbGxlZCwgLnAtaW5wdXR3cmFwcGVyLWZvY3VzLFxuICAgICAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LnAtc3RhdGUtZm9jdXMsXG4gICAgICAgICAgICA6d2hlcmUoLnAtc2VsZWN0Y2hlY2tib3htZW51Omhhcyg+IC5wLWhpZGRlbi1hY2Nlc3NpYmxlID4gW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdKSksXG4gICAgICAgICAgICAucC1pbnB1dHdyYXBwZXItZmlsbGVkLCBpbnB1dDotd2Via2l0LWF1dG9maWxsLCB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLFxuICAgICAgICAgICAgOndoZXJlKC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZTpoYXMoLnAtYXV0b2NvbXBsZXRlLXRva2VuKSwgLnAtY2hpcHM6aGFzKC5wLWNoaXBzLXRva2VuKSxcbiAgICAgICAgICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnU6aGFzKD4gLnAtaGlkZGVuID4gOmNoZWNrZWQpKSkgfiBsYWJlbCB7XG4gICAgICAgICAgICB0b3A6IHZhcigtLXAtZmxvYXRsYWJlbC1pbi1hY3RpdmUtdG9wKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiB2YXJpYW50IFwib25cIiAoUHJpbWVVSVggRmxvYXRMYWJlbCB2YXJpYW50PVwib25cIik6IHRoZSBhY3RpdmUgbGFiZWwgc2l0cyBvbiB0aGUgdG9wIGJvcmRlciwgb24gYSBiYWNrZ3JvdW5kICovXG4gICAgJi5wLWZsb2F0LWxhYmVsLW9uIHtcbiAgICAgICAgPiA6aXMoaW5wdXQ6Zm9jdXMsIGlucHV0LnAtc3RhdGUtZmlsbGVkLCB0ZXh0YXJlYTpmb2N1cywgdGV4dGFyZWEucC1zdGF0ZS1maWxsZWQsIC5wLWlucHV0d3JhcHBlci1mb2N1cyxcbiAgICAgICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS5wLXN0YXRlLWZvY3VzLFxuICAgICAgICAgICAgOndoZXJlKC5wLXNlbGVjdGNoZWNrYm94bWVudTpoYXMoPiAucC1oaWRkZW4tYWNjZXNzaWJsZSA+IFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSkpLFxuICAgICAgICAgICAgLnAtaW5wdXR3cmFwcGVyLWZpbGxlZCwgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCwgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAgICAgICAgIDp3aGVyZSgucC1hdXRvY29tcGxldGUtbXVsdGlwbGU6aGFzKC5wLWF1dG9jb21wbGV0ZS10b2tlbiksIC5wLWNoaXBzOmhhcygucC1jaGlwcy10b2tlbiksXG4gICAgICAgICAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51Omhhcyg+IC5wLWhpZGRlbiA+IDpjaGVja2VkKSkpIH4gbGFiZWwge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgLyogLnAtb3V0cHV0bGFiZWwgc3BhbnMgdGhlIGZpZWxkIGhlaWdodCAobWluLWhlaWdodDogMTAwJSk7IG9uIHRoZSBib3JkZXIgb25seSB0aGUgdGV4dCBnZXRzIHRoZSBiYWNrZ3JvdW5kICovXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHRyYW5zbGF0ZTogMCAtNTAlO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1mbG9hdGxhYmVsLW9uLWFjdGl2ZS1wYWRkaW5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZmxvYXRsYWJlbC1vbi1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWZsb2F0bGFiZWwtb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKlxuICogZmllbGRzIHdpdGggYSB0cmlnZ2VyIGJ1dHRvbiBuZXh0IHRvIHRoZSBpbnB1dCAocDphdXRvQ29tcGxldGUgZHJvcGRvd24sIHA6ZGF0ZVBpY2tlciBzaG93SWNvbik6IHRoZSBmb2N1c1xuICogcmluZyBlbmNsb3NlcyBpbnB1dCBhbmQgYnV0dG9uLCBsaWtlIGEgZmllbGQgd2l0aCB0aGUgaWNvbiBpbnNpZGUgKHBhc3N3b3JkLCBjb2xvclBpY2tlcik7IHRoZSBpbnB1dCBrZWVwcyBpdHMgZm9jdXNcbiAqIGJvcmRlci4gVGhlIC0tcC1pbnB1dHRleHQtKiB0b2tlbnMgYXJlIHRoZSBvbmVzIG9mIHRoZSBjb21wb25lbnQgKGF1dG9jb21wbGV0ZS5jc3MgcmVtYXBzIHRoZW0pLlxuICovXG4ucC1hdXRvY29tcGxldGUucC1hdXRvY29tcGxldGUtZGQsXG4ucC1jYWxlbmRhci5wLXRyaWdnZXItY2FsZW5kYXIge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtaW5wdXR0ZXh0LWJvcmRlci1yYWRpdXMpO1xuICAgIC8qIHRoZSByaW5nIGZvbGxvd3MgdGhlIHdyYXBwZXI6IGl0IHdyYXBzIGlucHV0IGFuZCBidXR0b24sIGFsc28gYXMgYSBzdHJldGNoZWQgZmxleCAvIGdyaWQgaXRlbSAqL1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAucC1mbHVpZCAmIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpoYXMoPiAucC1pbnB1dGZpZWxkOm5vdCg6ZGlzYWJsZWQsIC5wLXN0YXRlLWRpc2FibGVkKTppcyg6Zm9jdXMtd2l0aGluLCAucC1zdGF0ZS1mb2N1cykpIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctc2hhZG93KTtcblxuICAgICAgICA+IC5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogaW5wdXQgd2l0aCBpY29uICovXG4ucC1pbnB1dC1pY29uLWxlZnQsXG4ucC1pbnB1dC1pY29uLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qIHRoZSBpY29uIGlzIHBvc2l0aW9uZWQgYXQgdGhlIGVkZ2Ugb2YgdGhlIHdyYXBwZXI6IGl0IHdyYXBzIGl0cyBpbnB1dCwgYWxzbyBhcyBhIHN0cmV0Y2hlZCBmbGV4IC8gZ3JpZCBpdGVtICovXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIC5wLWZsdWlkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgPiBpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59XG5cbi8qXG4gKiBwaHlzaWNhbCBzaWRlcyBvbiBwdXJwb3NlOiB0aGUgY2xhc3MgbmFtZXMgdGhlIHNpZGUsIHRoZSByZW5kZXJlcnMgc3dhcCB0aGUgY2xhc3MgZm9yIFJUTCAocDpwYXNzd29yZCB0b2dnbGVNYXNrKSxcbiAqIGFuZCBkaXI9XCJydGxcIiBpcyBvZnRlbiBvbmx5IHdyaXR0ZW4gb24gdGhlIGlucHV0LCBzbyBsb2dpY2FsIHNpZGVzIG9mIHRoZSB3cmFwcGVyIC8gaWNvbiB3b3VsZCByZXNvbHZlIExUUlxuICovXG4ucC1pbnB1dC1pY29uLWxlZnQge1xuICAgID4gaTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbGVmdDogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWljb25maWVsZC1pY29uLWNvbG9yKTtcbiAgICB9XG5cbiAgICA+IC5wLWlucHV0ZmllbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCkgKiAyICsgdmFyKC0tcC1pY29uLXNpemUpKTtcbiAgICB9XG59XG5cbi5wLWlucHV0LWljb24tcmlnaHQge1xuICAgID4gaTpsYXN0LW9mLXR5cGUge1xuICAgICAgICByaWdodDogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWljb25maWVsZC1pY29uLWNvbG9yKTtcbiAgICB9XG5cbiAgICA+IC5wLWlucHV0ZmllbGQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXgpICogMiArIHZhcigtLXAtaWNvbi1zaXplKSk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBJbnB1dEdyb3VwIChzaGFyZWQpOiAucC1pbnB1dGdyb3VwIHdpdGggLnAtaW5wdXRncm91cC1hZGRvbiAvIC5wLWlucHV0Z3JvdXAtYWRkb24tY2hlY2tib3hcbiAqXG4gKiBPbmx5IHRoZSBvdXRlciBjb3JuZXJzIGFyZSByb3VuZGVkLCBpbm5lciBib3JkZXJzIGFyZSBzcXVhcmUgYW5kIGNvbGxhcHNlZDsgYSBmb2N1c2VkIGlucHV0IGlzIGxpZnRlZCBhYm92ZSBpdHNcbiAqIG5laWdoYm91cnMuIEFkZG9ucyBtYXkgY29udGFpbiB0ZXh0LCBpY29ucywgYnV0dG9ucyBvciBhIHA6c2VsZWN0Qm9vbGVhbkNoZWNrYm94IC8gcDpzZWxlY3RPbmVSYWRpby5cbiAqL1xuLnAtaW5wdXRncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5wLWlucHV0Z3JvdXAtYWRkb24gKyAucC1pbnB1dGdyb3VwLWFkZG9uIHtcbiAgICAgICAgYm9yZGVyLWlubGluZS1zdGFydDogMCBub25lO1xuICAgIH1cblxuICAgID4gLnAtcGFzc3dvcmQ6bm90KC5wLWlucHV0ZmllbGQpIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgfVxuXG4gICAgLyogaW5uZXIgYm9yZGVyczogY29sbGFwc2UgdGhlIGJvcmRlciBiZXR3ZWVuIHR3byBuZWlnaGJvdXJzICovXG4gICAgPiAucC1pbnB1dHRleHQ6bm90KDpmaXJzdC1jaGlsZCksXG4gICAgPiAucC1pbnB1dHRleHRhcmVhOm5vdCg6Zmlyc3QtY2hpbGQpLFxuICAgID4gLnAtcGFzc3dvcmQ6bm90KDpmaXJzdC1jaGlsZCksXG4gICAgPiAucC1wYXNzd29yZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5wLWlucHV0ZmllbGQsXG4gICAgPiAucC1pbnB1dG51bWJlcjpub3QoOmZpcnN0LWNoaWxkKSA+IC5wLWlucHV0dGV4dCxcbiAgICA+IC5wLWlucHV0bWFzazpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICA+IC5wLWNhbGVuZGFyOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnAtaW5wdXRmaWVsZCxcbiAgICA+IC5wLWNoaXBzOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnAtY2hpcHMtY29udGFpbmVyLFxuICAgID4gLnAtc2VsZWN0b25lbWVudTpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICA+IC5wLXNlbGVjdG9uZWJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSA+IC5wLWJ1dHRvbixcbiAgICA+IC5wLWF1dG9jb21wbGV0ZTpub3QoOmZpcnN0LWNoaWxkKSA+IC5wLWF1dG9jb21wbGV0ZS1pbnB1dCxcbiAgICA+IC5wLXNwaW5uZXI6bm90KDpmaXJzdC1jaGlsZCksXG4gICAgPiAucC1zcGlubmVyOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnAtc3Bpbm5lci1pbnB1dCB7XG4gICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItaW5saW5lLXN0YXJ0OiAwIG5vbmU7XG4gICAgfVxuXG4gICAgPiAucC1pbnB1dHRleHQ6bm90KDpsYXN0LWNoaWxkKSxcbiAgICA+IC5wLWlucHV0dGV4dGFyZWE6bm90KDpsYXN0LWNoaWxkKSxcbiAgICA+IC5wLXBhc3N3b3JkOm5vdCg6bGFzdC1jaGlsZCksXG4gICAgPiAucC1wYXNzd29yZDpub3QoOmxhc3QtY2hpbGQpID4gLnAtaW5wdXRmaWVsZCxcbiAgICA+IC5wLWlucHV0bnVtYmVyOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1pbnB1dHRleHQsXG4gICAgPiAucC1pbnB1dG1hc2s6bm90KDpsYXN0LWNoaWxkKSxcbiAgICA+IC5wLXNlbGVjdG9uZW1lbnU6bm90KDpsYXN0LWNoaWxkKSxcbiAgICA+IC5wLWNhbGVuZGFyOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1pbnB1dGZpZWxkLFxuICAgID4gLnAtY2hpcHM6bm90KDpsYXN0LWNoaWxkKSA+IC5wLWNoaXBzLWNvbnRhaW5lcixcbiAgICA+IC5wLXNlbGVjdG9uZWJ1dHRvbjpub3QoOmxhc3QtY2hpbGQpID4gLnAtYnV0dG9uLFxuICAgID4gLnAtYXV0b2NvbXBsZXRlOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1hdXRvY29tcGxldGUtaW5wdXQsXG4gICAgPiAucC1zcGlubmVyOm5vdCg6bGFzdC1jaGlsZCksXG4gICAgPiAucC1zcGlubmVyOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1zcGlubmVyLWlucHV0LFxuICAgID4gLnAtc3Bpbm5lcjpub3QoOmxhc3QtY2hpbGQpID4gLnAtc3Bpbm5lci1idXR0b24ge1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItaW5saW5lLWVuZDogMCBub25lO1xuICAgIH1cblxuICAgIC8qIHRoZSB0cmFpbGluZyBidXR0b25zIG9mIGNvbXBvc2l0ZSBmaWVsZHM6IHRoZWlyIG93biBydWxlcyAoYXV0b2NvbXBsZXRlLmNzcywgc3Bpbm5lci5jc3MsIGRhdGVwaWNrZXIuY3NzKSBhcmVcbiAgICAgICBidW5kbGVkIGxhdGVyIG9yIHN0cm9uZ2VyLCBzbyB0aGVzZSBuZWVkIHRoZSBoaWdoZXIgc3BlY2lmaWNpdHkgKi9cbiAgICA+IC5wLWF1dG9jb21wbGV0ZTpub3QoOmxhc3QtY2hpbGQpID4gLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLnAtYnV0dG9uLFxuICAgID4gLnAtY2FsZW5kYXI6bm90KDpsYXN0LWNoaWxkKSA+IC5wLWJ1dHRvbi5wLWJ1dHRvbi1pY29uLW9ubHksXG4gICAgPiAucC1zcGlubmVyLnAtc3Bpbm5lci1ob3Jpem9udGFsOm5vdCg6bGFzdC1jaGlsZCkgPiAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItdXAge1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8qIGlucHV0cyBncm93LCBhZGRvbnMgYW5kIGJ1dHRvbnMga2VlcCB0aGVpciBzaXplICovXG4gICAgPiAucC1pbnB1dGZpZWxkLFxuICAgID4gLnAtaW5wdXR3cmFwcGVyLFxuICAgID4gLnAtaW5wdXRudW1iZXIsXG4gICAgPiAucC1hdXRvY29tcGxldGUsXG4gICAgPiAucC1jaGlwcyxcbiAgICA+IC5wLXNwaW5uZXIsXG4gICAgPiAucC1mbG9hdC1sYWJlbCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICB3aWR0aDogMSU7XG4gICAgfVxuXG4gICAgPiAucC1pbnB1dHdyYXBwZXIgPiAucC1pbnB1dGZpZWxkLFxuICAgID4gLnAtaW5wdXRudW1iZXIgPiAucC1pbnB1dGZpZWxkLFxuICAgID4gLnAtYXV0b2NvbXBsZXRlID4gLnAtaW5wdXRmaWVsZCxcbiAgICA+IC5wLWZsb2F0LWxhYmVsID4gLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgID4gLnAtYnV0dG9uLFxuICAgIC5wLWlucHV0Z3JvdXAtYWRkb24sXG4gICAgLnAtaW5wdXRncm91cC1hZGRvbi1jaGVja2JveCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC5wLWZsdWlkICYge1xuICAgICAgICAucC1idXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAucC1idXR0b24taWNvbi1vbmx5IHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtaW5wdXRncm91cC1hZGRvbixcbiAgICAucC1pbnB1dGdyb3VwLWFkZG9uLWNoZWNrYm94IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tcGFkZGluZyk7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLW1pbi13aWR0aCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1jb2xvcik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tZm9udC13ZWlnaHQpO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IC5wLXdpZGdldCxcbiAgICA+IC5wLWZsb2F0LWxhYmVsID4gLnAtd2lkZ2V0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAvKiBvdXRlciBjb3JuZXJzIG9mIHdpZGdldHMgdGhhdCBhcmUgbm90IGEgcGxhaW4gaW5wdXQgLyBidXR0b24gKHA6c2VsZWN0T25lTWVudSwgcDpzZWxlY3RDaGVja2JveE1lbnUsIC4uLiksIGxpa2UgUHJpbWVVSVggKi9cbiAgICA+IC5wLXdpZGdldDpmaXJzdC1jaGlsZCxcbiAgICA+IC5wLWZsb2F0LWxhYmVsOmZpcnN0LWNoaWxkID4gLnAtd2lkZ2V0IHtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgID4gLnAtd2lkZ2V0Omxhc3QtY2hpbGQsXG4gICAgPiAucC1mbG9hdC1sYWJlbDpsYXN0LWNoaWxkID4gLnAtd2lkZ2V0IHtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgYnV0dG9uOmZpcnN0LWNoaWxkLFxuICAgIGlucHV0OmZpcnN0LWNoaWxkLFxuICAgIHRleHRhcmVhOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLWZsb2F0LWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAgIGJvcmRlci1pbmxpbmUtZW5kLXdpZHRoOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbjpsYXN0LWNoaWxkLFxuICAgIGlucHV0Omxhc3QtY2hpbGQsXG4gICAgdGV4dGFyZWE6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1pbnB1dGdyb3VwLWFkZG9uLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLWZsb2F0LWxhYmVsOmxhc3QtY2hpbGQge1xuICAgICAgICBpbnB1dCxcbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgYm9yZGVyLWlubGluZS1zdGFydC13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLWlucHV0Z3JvdXAtYWRkb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtaW5wdXRncm91cC1hZGRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gLnAtd2lkZ2V0LnAtc3RhdGUtZm9jdXMsXG4gICAgPiAucC13aWRnZXQ6Zm9jdXMsXG4gICAgPiAucC1mbG9hdC1sYWJlbCA+IC5wLXdpZGdldC5wLXN0YXRlLWZvY3VzLFxuICAgID4gLnAtZmxvYXQtbGFiZWwgPiAucC13aWRnZXQ6Zm9jdXMge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgID4gLnAtd2lkZ2V0LnAtc3RhdGUtZm9jdXMgfiBsYWJlbCxcbiAgICA+IC5wLXdpZGdldDpmb2N1cyB+IGxhYmVsLFxuICAgID4gLnAtZmxvYXQtbGFiZWwgPiAucC13aWRnZXQucC1zdGF0ZS1mb2N1cyB+IGxhYmVsLFxuICAgID4gLnAtZmxvYXQtbGFiZWwgPiAucC13aWRnZXQ6Zm9jdXMgfiBsYWJlbCB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLyogY2hlY2tib3ggLyByYWRpbyBhZGRvbjogdGhlIGNvbnRyb2wgaXMgY2VudGVyZWQgaW4gdGhlIGFkZG9uIGJveCAqL1xuICAgIC5wLWlucHV0Z3JvdXAtYWRkb24tY2hlY2tib3gge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLnAtY2hrYm94IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1jaGVja2JveC1oZWlnaHQpIC8gMik7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tcC1jaGVja2JveC13aWR0aCkgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJhZGlvYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1yYWRpb2J1dHRvbi1oZWlnaHQpIC8gMik7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tcC1yYWRpb2J1dHRvbi13aWR0aCkgLyAyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogTWVudSBmYW1pbHkgKHNoYXJlZCBwYXJ0KTogcDptZW51LCBwOm1lbnViYXIsIHA6bWVnYU1lbnUsIHA6dGllcmVkTWVudSwgcDpzbGlkZU1lbnUsIHA6Y29udGV4dE1lbnUsIHA6bWVudUJ1dHRvblxuICogKGFuZCB0aGUgcDpzcGxpdEJ1dHRvbiBtZW51KS4gVGhleSBhbGwgc2hhcmUgLnAtbWVudSwgLnAtbWVudS1saXN0LCAucC1tZW51aXRlbSwgLnAtbWVudWl0ZW0tbGluayBtYXJrdXAuXG4gKiBUaGlzIGZpbGUgc3R5bGVzIHRoYXQgY29tbW9uIG1hcmt1cDsgdGhlIHRhZyBzcGVjaWZpYyBydWxlcyBhcmUgaW4gbWVudS9tZW51LmNzcyAocDptZW51IHRvZ2dsZWFibGUpLFxuICogbWVnYW1lbnUuY3NzLCBzbGlkZW1lbnUuY3NzLCB0aWVyZWRtZW51LmNzcyBhbmQgY29udGV4dG1lbnUuY3NzIChidW5kbGVkIGFmdGVyIHRoaXMgZmlsZSkuXG4gKiBUaGUgLnAtbWVudWJhciBydWxlcyBzdGF5IGhlcmUgdG9vOiBwOm1lZ2FNZW51IGFsc28gcmVuZGVycyAucC1tZW51YmFyLCBzbyB0aGV5IHN0eWxlIGJvdGggcDptZW51YmFyIGFuZCBwOm1lZ2FNZW51XG4gKiBhbmQgbXVzdCBjb21lIGJlZm9yZSBtZWdhbWVudS5jc3MgKHNvIHA6bWVudWJhciBoYXMgbm8gZmlsZSBvZiBpdHMgb3duIGluIGNvbXBvbmVudHMvKS5cbiAqXG4gKiBUaGUgY29tcG9uZW50IGNsYXNzZXMgb25seSBzd2l0Y2ggdGhlIHByaXZhdGUgLS1fKiB2YXJpYWJsZXMsIHRoZSB2aXN1YWwgcnVsZXMgZXhpc3Qgb25jZTpcbiAqICAgLnAtbWVudSAobWVudSwgc2xpZGVtZW51LCBtZW51YnV0dG9uKSAtPiBtZW51IHRva2Vuc1xuICogICAucC10aWVyZWRtZW51IC0+IHRpZXJlZG1lbnUsIC5wLWNvbnRleHRtZW51IC0+IGNvbnRleHRtZW51LCAucC1tZW51YmFyIC0+IG1lbnViYXIsIC5wLW1lZ2FtZW51IC0+IG1lZ2FtZW51XG4gKiBTdGF0ZSBjbGFzc2VzIHNldCBieSB0aGUgd2lkZ2V0czogcC1zdGF0ZS1ob3ZlciAvIHAtc3RhdGUtZm9jdXMgKGtleWJvYXJkICsgbW91c2UpLCBwLW1lbnVpdGVtLWFjdGl2ZSAob3BlbiBzdWJtZW51KS5cbiAqL1xuLnAtbWVudSB7XG4gICAgLS1fYmc6IHZhcigtLXAtbWVudS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVudS1ib3JkZXItY29sb3IpO1xuICAgIC0tX2JvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1tZW51LWNvbG9yKTtcbiAgICAtLV9zaGFkb3c6IHZhcigtLXAtbWVudS1zaGFkb3cpO1xuICAgIC0tX2xpc3QtcGFkZGluZzogdmFyKC0tcC1tZW51LWxpc3QtcGFkZGluZyk7XG4gICAgLS1fbGlzdC1nYXA6IHZhcigtLXAtbWVudS1saXN0LWdhcCk7XG4gICAgLS1fdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC1tZW51LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIC0tX2l0ZW0tYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZW51LWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1faXRlbS1wYWRkaW5nOiB2YXIoLS1wLW1lbnUtaXRlbS1wYWRkaW5nKTtcbiAgICAtLV9pdGVtLWdhcDogdmFyKC0tcC1tZW51LWl0ZW0tZ2FwKTtcbiAgICAtLV9pdGVtLWNvbG9yOiB2YXIoLS1wLW1lbnUtaXRlbS1jb2xvcik7XG4gICAgLS1faXRlbS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lbnUtaXRlbS1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAtLV9pdGVtLWZvY3VzLWNvbG9yOiB2YXIoLS1wLW1lbnUtaXRlbS1mb2N1cy1jb2xvcik7XG4gICAgLS1faXRlbS1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tcC1tZW51LWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgLS1faXRlbS1hY3RpdmUtY29sb3I6IHZhcigtLXAtbWVudS1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tY29sb3I6IHZhcigtLXAtbWVudS1pdGVtLWljb24tY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1mb2N1cy1jb2xvcjogdmFyKC0tcC1tZW51LWl0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1tZW51LWl0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLXNpemU6IHZhcigtLXAtbWVudS1pdGVtLWljb24tc2l6ZSk7XG4gICAgLS1faXRlbS1sYWJlbC1mb250LXNpemU6IHZhcigtLXAtbWVudS1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgLS1faXRlbS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1tZW51LWl0ZW0tbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1jb2xvcjogdmFyKC0tcC1tZW51LXN1Ym1lbnUtaWNvbi1jb2xvcik7XG4gICAgLS1fc3VibWVudS1pY29uLWZvY3VzLWNvbG9yOiB2YXIoLS1wLW1lbnUtc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tc2l6ZTogdmFyKC0tcC1tZW51LXN1Ym1lbnUtaWNvbi1zaXplKTtcbiAgICAtLV9zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLW1lbnUtaXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9zZXBhcmF0b3ItYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lbnUtc2VwYXJhdG9yLWJvcmRlci1jb2xvcik7XG4gICAgLS1fc3VibWVudS1sYWJlbC1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lbnUtc3VibWVudS1sYWJlbC1iYWNrZ3JvdW5kKTtcbiAgICAtLV9zdWJtZW51LWxhYmVsLWNvbG9yOiB2YXIoLS1wLW1lbnUtc3VibWVudS1sYWJlbC1jb2xvcik7XG4gICAgLS1fc3VibWVudS1sYWJlbC1mb250LXNpemU6IHZhcigtLXAtbWVudS1zdWJtZW51LWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgLS1fc3VibWVudS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1tZW51LXN1Ym1lbnUtbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtcGFkZGluZzogdmFyKC0tcC1tZW51LXN1Ym1lbnUtbGFiZWwtcGFkZGluZyk7XG4gICAgLyogb3ZlcmxheSBzdWJtZW51cyAoLnAtbWVudS1jaGlsZCkgKi9cbiAgICAtLV9zdWJtZW51LWJhY2tncm91bmQ6IHZhcigtLXAtbWVudS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9zdWJtZW51LWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZW51LWJvcmRlci1jb2xvcik7XG4gICAgLS1fc3VibWVudS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lbnUtYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1fc3VibWVudS1wYWRkaW5nOiB2YXIoLS1wLW1lbnUtbGlzdC1wYWRkaW5nKTtcbiAgICAtLV9zdWJtZW51LXNoYWRvdzogdmFyKC0tcC1tZW51LXNoYWRvdyk7XG4gICAgLyogaG9yaXpvbnRhbCBtZW51cyAobWVudWJhciwgbWVnYW1lbnUpICovXG4gICAgLS1fcGFkZGluZzogdmFyKC0tcC1tZW51YmFyLXBhZGRpbmcpO1xuICAgIC0tX2dhcDogdmFyKC0tcC1tZW51YmFyLWdhcCk7XG4gICAgLS1fYmFzZS1pdGVtLXBhZGRpbmc6IHZhcigtLXAtbWVudWJhci1iYXNlLWl0ZW0tcGFkZGluZyk7XG4gICAgLS1fYmFzZS1pdGVtLWJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVudWJhci1iYXNlLWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAvKiBmaXQtY29udGVudDogYSBzdGF0aWMgbWVudSBkb2VzIG5vdCBzdHJldGNoIHRvIHRoZSBmdWxsIHJvdyAqL1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3V0bGluZTogMCBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tX2JnKTtcbiAgICBjb2xvcjogdmFyKC0tX2NvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1fYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1fYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAvKiBQcmltZVVJWCBtaW4td2lkdGgsIG9ubHkgd2l0aG91dCBhbiBpbmxpbmUgd2lkdGggKHN0eWxlPVwid2lkdGg6IC4uLlwiIG9yIHRoZSB3aWR0aCB0aGUgc2xpZGVtZW51IHdpZGdldCB3cml0ZXMpICovXG4gICAgJjpub3QoLnAtbWVudWJhcik6bm90KFtzdHlsZSo9XCJ3aWR0aFwiXSkge1xuICAgICAgICBtaW4td2lkdGg6IDEyLjVyZW07XG4gICAgfVxuXG4gICAgLyogb3ZlcmxheSBtZW51cyAqL1xuICAgICYucC1tZW51LWR5bmFtaWMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6IDEwMDAwMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tX2JvcmRlci1jb2xvcik7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9zaGFkb3cpO1xuICAgIH1cblxuICAgICYucC1tZW51LWR5bmFtaWMtbWF4aGVpZ2h0IHtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAucC1tZW51LWxpc3QgLnAtd2lkZ2V0LWhlYWRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5wLW1lbnVpdGVtIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLW1lbnVpdGVtLWxpbmsgLnAtbWVudWl0ZW0taWNvbixcbiAgICAucC1zdWJtZW51LWljb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLnAtd2lkZ2V0LWhlYWRlciB7XG4gICAgICAgIGgxLFxuICAgICAgICBoMixcbiAgICAgICAgaDMsXG4gICAgICAgIGg0LFxuICAgICAgICBoNSxcbiAgICAgICAgaDYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1tZW51LXBhcmVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAvKiBtaW4td2lkdGggb25seSB3aXRob3V0IGFuIGlubGluZSB3aWR0aCAodGhlIHNsaWRlbWVudSB3aWRnZXQgd3JpdGVzIG9uZSBvbiBpdHMgbGlzdHMpICovXG4gICAgICAgIC5wLW1lbnUtY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgICAgICY6bm90KFtzdHlsZSo9XCJ3aWR0aFwiXSkge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTIuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLW1lbnUtbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLV9saXN0LXBhZGRpbmcpO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLyogc3VibWVudSBoZWFkZXIgY29udGVudCAocDptZW51KTogW3RvZ2dsZSBpY29uXSBbc3VibWVudSBpY29uXSBsYWJlbCAqL1xuICAgICAgICAucC13aWRnZXQtaGVhZGVyIGgzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1faXRlbS1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtd2lkZ2V0LWhlYWRlciAucC1zdWJtZW51LWljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLV9pdGVtLWljb24tY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc3VibWVudSBoZWFkZXJzICovXG4gICAgLnAtbWVudS1saXN0IC5wLXdpZGdldC1oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fc3VibWVudS1sYWJlbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWxhYmVsLWNvbG9yKTtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1fc3VibWVudS1sYWJlbC1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLV90cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1fc3VibWVudS1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLV9zdWJtZW51LWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1fc3VibWVudS1sYWJlbC1jb2xvcik7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1faXRlbS1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1mb2N1cy1jb2xvcik7XG5cbiAgICAgICAgICAgIC5wLXN1Ym1lbnUtaWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9pdGVtLWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtbWVudS1saXN0IC5wLW1lbnVpdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1faXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLV90cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAvKiBsaW5rID0gUHJpbWVVSVggaXRlbSBsaW5rOiBmbGV4IHJvdywgaWNvbiAvIGxhYmVsIC8gc3VibWVudSBpY29uIHNlcGFyYXRlZCBieSB0aGUgaXRlbSBnYXAgKi9cbiAgICAgICAgLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1faXRlbS1wYWRkaW5nKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1faXRlbS1nYXApO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1faXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLV90cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgLyogbWFyZ2luIDA6IHRoZSBnYXAgc2VwYXJhdGVzIHRoZSBwYXJ0cyAqL1xuICAgICAgICAgICAgLnAtbWVudWl0ZW0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLV9pdGVtLWljb24tc2l6ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLW1lbnVpdGVtLXRleHQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1jb2xvcik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1faXRlbS1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1faXRlbS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlcixcbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgICAgICYucC1zdGF0ZS1mb2N1cyxcbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2l0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIGtleWJvYXJkIGZvY3VzICh0YWIgdG8gYSBsaW5rIHdpdGggaHJlZik6IHRoZSBiYWNrZ3JvdW5kIGlzIHRoZSBpbmRpY2F0b3IsIGFzIGZvciB0aGUgd2lkZ2V0IGZvY3VzICovXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIC5wLW1lbnVpdGVtLWljb24sXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXIgLnAtbWVudWl0ZW0taWNvbixcbiAgICAgICAgICAgICYucC1zdGF0ZS1mb2N1cyAucC1tZW51aXRlbS1pY29uLFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIC5wLW1lbnVpdGVtLWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIC5wLW1lbnVpdGVtLXRleHQsXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXIgLnAtbWVudWl0ZW0tdGV4dCxcbiAgICAgICAgICAgICYucC1zdGF0ZS1mb2N1cyAucC1tZW51aXRlbS10ZXh0LFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIC5wLW1lbnVpdGVtLXRleHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN1Ym1lbnUgaW5kaWNhdG9yczogdmVydGljYWwgc3VibWVudXMsIG1lbnViYXIgcm9vdCBpdGVtcyAqL1xuICAgICAgICAgICAgLnAtbWVudS1zdWJtZW51LWljb24sXG4gICAgICAgICAgICAucC1tZW51YmFyLXN1Ym1lbnUtaWNvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tX3N1Ym1lbnUtaWNvbi1zaXplKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtaWNvbi1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLW1lbnUtc3VibWVudS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lbnUtc3VibWVudS1pY29uKTtcblxuICAgICAgICAgICAgICAgIC8qIHB1c2hlZCB0byB0aGUgZW5kLCBsaWtlIHRoZSBQcmltZVVJWCBzdWJtZW51IGljb24gKG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG8pOyBSVEw6IHNlZSAucC1tZW51LXJ0bCAqL1xuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogUlRMIChyZW5kZXJlZCBSVEwgaW4gLnAtbWVudS1ydGw6IHRoZSBpY29uIGNvbWVzIGZpcnN0OyBvciBkaXI9XCJydGxcIiBvbmx5KTogdGhlIGljb24gcG9pbnRzIHRvIHRoZSBzdGFydC5cbiAgICAgICAgICAgICAgICAgICBOb3QgYSBiYXJlIDpmaXJzdC1jaGlsZDogaW4gTFRSIGEgc3VibWVudSB3aXRob3V0IGxhYmVsIGFuZCBpY29uIGhhcyB0aGUgaW5kaWNhdG9yIGFzIG9ubHkgY2hpbGQgKi9cbiAgICAgICAgICAgICAgICAmOmRpcihydGwpLFxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6d2hlcmUoLnAtbWVudS1ydGwgKikge1xuICAgICAgICAgICAgICAgICAgICBzY2FsZTogLTEgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLW1lbnViYXItc3VibWVudS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lbnViYXItc3VibWVudS1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIDppcygucC1tZW51LXN1Ym1lbnUtaWNvbiwgLnAtbWVudWJhci1zdWJtZW51LWljb24pLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIDppcygucC1tZW51LXN1Ym1lbnUtaWNvbiwgLnAtbWVudWJhci1zdWJtZW51LWljb24pLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWZvY3VzIDppcygucC1tZW51LXN1Ym1lbnUtaWNvbiwgLnAtbWVudWJhci1zdWJtZW51LWljb24pIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBpdGVtIChsaSkgaG92ZXIsIHVzZWQgYnkgdGhlIHRpZXJlZCBtZW51cyAqL1xuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2l0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0tZm9jdXMtY29sb3IpO1xuXG4gICAgICAgICAgICA+IC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1mb2N1cy1jb2xvcik7XG5cbiAgICAgICAgICAgICAgICAucC1tZW51aXRlbS1pY29uLFxuICAgICAgICAgICAgICAgIC5wLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogaXRlbSB3aXRoIGFuIG9wZW4gc3VibWVudSAqL1xuICAgICAgICAmLnAtbWVudWl0ZW0tYWN0aXZlID4gLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1faXRlbS1hY3RpdmUtYmFja2dyb3VuZCk7XG5cbiAgICAgICAgICAgIC5wLW1lbnVpdGVtLXRleHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1faXRlbS1hY3RpdmUtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1tZW51aXRlbS1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0taWNvbi1hY3RpdmUtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1tZW51LXN1Ym1lbnUtaWNvbixcbiAgICAgICAgICAgIC5wLW1lbnViYXItc3VibWVudS1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtaWNvbi1hY3RpdmUtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBsaXN0IGdhcDogUHJpbWVVSVggbGlzdHMgYXJlIGZsZXggY29sdW1ucyB3aXRoIGdhcDogPG1lbnU+Lmxpc3QuZ2FwIChtZW51YmFyIC8gbWVnYW1lbnU6IHN1Ym1lbnUuZ2FwKS4gSGVyZSBpdCBpcyBhXG4gICAgICogbWFyZ2luIGJldHdlZW4gdGhlIGxpc3QgY2hpbGRyZW4gaW5zdGVhZCwgYmVjYXVzZSB0aGUgd2lkZ2V0cyBvcGVuIHRoZSBvdmVybGF5IHN1Ym1lbnVzIHdpdGggalF1ZXJ5IC5zaG93KCksXG4gICAgICogd2hpY2ggd3JpdGVzIGFuIGlubGluZSBcImRpc3BsYXk6IGJsb2NrXCIgdGhhdCB3b3VsZCBkcm9wIGEgZGlzcGxheTogZmxleCBvZiB0aGUgbGlzdC4gU2FtZSB2aXN1YWwgcmVzdWx0LlxuICAgICAqIE11c3QgY29tZSBhZnRlciB0aGUgaXRlbSAvIGhlYWRlciBcIm1hcmdpbjogMFwiIHJ1bGVzIChzYW1lIHNwZWNpZmljaXR5KS5cbiAgICAgKi9cbiAgICAucC1tZW51LWxpc3QgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1fbGlzdC1nYXApO1xuICAgIH1cblxuICAgIC8qIG92ZXJsYXkgc3VibWVudXMgKi9cbiAgICAucC1tZW51LWxpc3QgLnAtbWVudS1jaGlsZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9zdWJtZW51LWJhY2tncm91bmQpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1fc3VibWVudS1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tX3N1Ym1lbnUtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLV9zdWJtZW51LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9zdWJtZW51LXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLyogc2VwYXJhdG9ycyAocDpkaXZpZGVyIGluc2lkZSBtZW51cykgKi9cbiAgICAucC1kaXZpZGVyLnAtd2lkZ2V0LnAtZGl2aWRlci12ZXJ0aWNhbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtbWVudS1saXN0LWdhcCkgMDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLV9zZXBhcmF0b3ItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWRpdmlkZXIucC13aWRnZXQucC1kaXZpZGVyLWhvcml6b250YWwge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLV9zZXBhcmF0b3ItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGxpc3QgZ2FwIGFib3ZlIHRoZSBzZXBhcmF0b3IgKHRoZSBvbmUgYmVsb3cgY29tZXMgZnJvbSB0aGUgbmV4dCBpdGVtKSwgbGlrZSB0aGUgUHJpbWVVSVggc2VwYXJhdG9yIGxpICovXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tX2xpc3QtZ2FwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qXG4gICAgICogUlRMICgucC1tZW51LXJ0bDogcDptZW51YmFyLCBwOm1lZ2FNZW51LCBwOnRpZXJlZE1lbnUpOiBhbiBleHBsaWNpdCBydGwgZGlyZWN0aW9uLCBzbyB0aGUgbWVudWJhciByb290IHJvdyBzdGFydHNcbiAgICAgKiBhdCB0aGUgcmlnaHQgYW5kIHRoZSBmYWNldHMgLyBzdWJtZW51IGljb25zIHVzZSB0aGUgbG9naWNhbCBtYXJnaW5zLCBpbmRlcGVuZGVudCBvZiB0aGUgcGFnZSBkaXJlY3Rpb24uXG4gICAgICogVGhlIHJlbmRlcmVycyB3cml0ZSB0aGUgbGluayBjb250ZW50IGluIHJldmVyc2VkIG9yZGVyIGZvciBSVEwgKFtzdWJtZW51IGljb25dIGxhYmVsIFtpY29uXSwgbGFiZWwgW2ljb25dKSxcbiAgICAgKiByb3ctcmV2ZXJzZSByZXN0b3JlcyB0aGUgdmlzdWFsIG9yZGVyIChpY29uIGF0IHRoZSByaWdodCBlZGdlKSwgZmxleC1lbmQga2VlcHMgaXQgYXQgdGhlIHJpZ2h0IGVkZ2UuXG4gICAgICovXG4gICAgJi5wLW1lbnUtcnRsIHtcbiAgICAgICAgZGlyZWN0aW9uOiBydGw7XG5cbiAgICAgICAgLnAtbWVudS1saXN0IC5wLW1lbnVpdGVtIC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgLyogc3VibWVudSBpY29uIChwb2ludGluZyBsZWZ0KSBwdXNoZWQgdG8gdGhlIGxlZnQgZW5kLCBsaWtlIHRoZSBQcmltZVVJWCBzdWJtZW51IGljb24gOmRpcihydGwpICovXG4gICAgICAgICAgICAucC1tZW51LXN1Ym1lbnUtaWNvbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIG1lbnViYXIgdG9rZW5zOiB0aGV5IGFsc28gaGl0IHA6bWVnYU1lbnUgKGl0IGNhcnJpZXMgLnAtbWVudWJhciksIG1lbnUvbWVnYW1lbnUuY3NzIG92ZXJyaWRlcyBhbGwgb2YgdGhlbSAqL1xuICAgICYucC1tZW51YmFyIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVudWJhci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZW51YmFyLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1tZW51YmFyLWNvbG9yKTtcbiAgICAgICAgLyogdmVydGljYWwgbGlzdHMgb2YgdGhlIG1lbnViYXIgPSBpdHMgc3VibWVudXMgKHRoZSByb290IHJvdyB1c2VzIC0tX2dhcCkgKi9cbiAgICAgICAgLS1fbGlzdC1nYXA6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LWdhcCk7XG4gICAgICAgIC0tX3RyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtbWVudWJhci10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgLS1faXRlbS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lbnViYXItaXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgLS1faXRlbS1wYWRkaW5nOiB2YXIoLS1wLW1lbnViYXItaXRlbS1wYWRkaW5nKTtcbiAgICAgICAgLS1faXRlbS1nYXA6IHZhcigtLXAtbWVudWJhci1pdGVtLWdhcCk7XG4gICAgICAgIC0tX2l0ZW0tY29sb3I6IHZhcigtLXAtbWVudWJhci1pdGVtLWNvbG9yKTtcbiAgICAgICAgLS1faXRlbS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lbnViYXItaXRlbS1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1faXRlbS1mb2N1cy1jb2xvcjogdmFyKC0tcC1tZW51YmFyLWl0ZW0tZm9jdXMtY29sb3IpO1xuICAgICAgICAtLV9pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lbnViYXItaXRlbS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2l0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItaXRlbS1hY3RpdmUtY29sb3IpO1xuICAgICAgICAtLV9pdGVtLWljb24tY29sb3I6IHZhcigtLXAtbWVudWJhci1pdGVtLWljb24tY29sb3IpO1xuICAgICAgICAtLV9pdGVtLWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtbWVudWJhci1pdGVtLWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAtLV9pdGVtLWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItaXRlbS1pY29uLWFjdGl2ZS1jb2xvcik7XG4gICAgICAgIC0tX2l0ZW0taWNvbi1zaXplOiB2YXIoLS1wLW1lbnViYXItaXRlbS1pY29uLXNpemUpO1xuICAgICAgICAtLV9pdGVtLWxhYmVsLWZvbnQtc2l6ZTogdmFyKC0tcC1tZW51YmFyLWl0ZW0tbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgLS1faXRlbS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1tZW51YmFyLWl0ZW0tbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICAtLV9zdWJtZW51LWljb24tY29sb3I6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LWljb24tY29sb3IpO1xuICAgICAgICAtLV9zdWJtZW51LWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAtLV9zdWJtZW51LWljb24tc2l6ZTogdmFyKC0tcC1tZW51YmFyLXN1Ym1lbnUtaWNvbi1zaXplKTtcbiAgICAgICAgLS1fc3VibWVudS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1tZW51YmFyLXN1Ym1lbnUtaWNvbi1hY3RpdmUtY29sb3IpO1xuICAgICAgICAtLV9zZXBhcmF0b3ItYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItc2VwYXJhdG9yLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX3N1Ym1lbnUtYmFja2dyb3VuZDogdmFyKC0tcC1tZW51YmFyLXN1Ym1lbnUtYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX3N1Ym1lbnUtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lbnViYXItc3VibWVudS1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zdWJtZW51LWJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAtLV9zdWJtZW51LXBhZGRpbmc6IHZhcigtLXAtbWVudWJhci1zdWJtZW51LXBhZGRpbmcpO1xuICAgICAgICAtLV9zdWJtZW51LXNoYWRvdzogdmFyKC0tcC1tZW51YmFyLXN1Ym1lbnUtc2hhZG93KTtcbiAgICAgICAgLS1fcGFkZGluZzogdmFyKC0tcC1tZW51YmFyLXBhZGRpbmcpO1xuICAgICAgICAtLV9nYXA6IHZhcigtLXAtbWVudWJhci1nYXApO1xuICAgICAgICAtLV9iYXNlLWl0ZW0tcGFkZGluZzogdmFyKC0tcC1tZW51YmFyLWJhc2UtaXRlbS1wYWRkaW5nKTtcbiAgICAgICAgLS1fYmFzZS1pdGVtLWJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVudWJhci1iYXNlLWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgcGFkZGluZzogdmFyKC0tX3BhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fYmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1fYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgLypcbiAgICAgICAgICogcm9vdCBsaXN0OiBhIGZsZXggcm93IHdpdGggdGhlIG1lbnViYXIgZ2FwIGxpa2UgdGhlIFByaW1lVUlYIG1lbnViYXIgLyBtZWdhbWVudSByb290IGxpc3QsIG5vIGxpc3QgcGFkZGluZ1xuICAgICAgICAgKiAob25seSB0aGUgYmFyIHBhZGRpbmcpLiBUaGUgdmVydGljYWwgbWVnYW1lbnUgdHVybnMgaXQgaW50byBhIGNvbHVtbiAobWVnYW1lbnUuY3NzKS5cbiAgICAgICAgICovXG4gICAgICAgID4gLnAtbWVudS1saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1fZ2FwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBtYXJnaW4gMDogbm8gbGlzdCBnYXAgbWFyZ2luIGluIHRoZSByb3cgKHRoZSBmbGV4IGdhcCBzZXBhcmF0ZXMgdGhlIGl0ZW1zKSAqL1xuICAgICAgICA+IC5wLW1lbnUtbGlzdCA+IC5wLW1lbnVpdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICA+IC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLV9iYXNlLWl0ZW0tcGFkZGluZyk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tX2Jhc2UtaXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogZmFjZXRzIChQcmltZVVJWCBzdGFydCAvIGVuZCk6IHN0YXJ0IGJlZm9yZSB0aGUgaXRlbXMsIG9wdGlvbnMgYW5kIGVuZCBwdXNoZWQgdG8gdGhlIGVuZCBvZiB0aGUgcm93ICovXG4gICAgICAgICAgICAmLnAtbWVudWJhci1zdGFydCxcbiAgICAgICAgICAgICYucC1tZW51YmFyLW9wdGlvbnMsXG4gICAgICAgICAgICAmLnAtbWVudWJhci1lbmQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLW1lbnViYXItb3B0aW9ucyxcbiAgICAgICAgICAgICYucC1tZW51YmFyLWVuZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLW1lbnViYXItb3B0aW9ucyArIC5wLW1lbnViYXItZW5kIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1tZW51LWxpc3Qge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi8qIG1lbnViYXIgKHA6bWVudWJhciBhbmQgcDptZWdhTWVudSkgKi9cbi5wLW1lbnViYXIge1xuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgLnAtbWVudWl0ZW0ge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAucC1tZW51LWNoaWxkIHtcbiAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5wLXdpZGdldC1oZWFkZXIge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG59XG5cbi8qIGtleWJvYXJkIGZvY3VzIG91dGxpbmUgdXNlZCBieSB0aGUgcGFuZWxtZW51IC8gdGFibWVudSB3aWRnZXRzICovXG4ucC1tZW51aXRlbS1vdXRsaW5lIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgei1pbmRleDogMTtcbn1cblxuLnAtZmx1aWQgLnAtbWVudSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCAiLypcbiAqIFBhZ2luYXRvciAoc2hhcmVkKTogdGhlIHBhZ2luYXRvciBvZiBwOmRhdGFUYWJsZSwgcDp0cmVlVGFibGUsIHA6ZGF0YVZpZXcsIHA6ZGF0YUdyaWQsIHA6ZGF0YUxpc3QsIC4uLlxuICpcbiAqIE1hcmt1cDogLnAtcGFnaW5hdG9yID4gKGxlZnQgY29udGVudCB8IC5wLXBhZ2luYXRvci1jZW50ZXItY29udGVudCB8IHJpZ2h0IGNvbnRlbnQpLCB0ZW1wbGF0ZSBlbGVtZW50cyBpbiB0aGUgY2VudGVyLlxuICogUGFnZSBsaW5rcyBhcmUgYWxzbyAucC1idXR0b24ucC1idXR0b24tZmxhdCwgc28gdGhlaXIgcnVsZXMgYXJlIHdyaXR0ZW4gdG8gYmVhdCBidXR0b24uY3NzIGJ5IHNwZWNpZmljaXR5LlxuICogUm93cyBwZXIgcGFnZSAvIGp1bXAgdG8gcGFnZSBkcm9wZG93bnMgYXJlIG5hdGl2ZSA8c2VsZWN0PnMsIGp1bXAgdG8gcGFnZSBpbnB1dCBpcyBhIC5wLWlucHV0ZmllbGQuXG4gKiBTdGF0ZXMgKHNldCBieSB0aGUgd2lkZ2V0KTogcC1zdGF0ZS1ob3ZlciwgcC1zdGF0ZS1mb2N1cywgcC1zdGF0ZS1hY3RpdmUgKGN1cnJlbnQgcGFnZSksIHAtc3RhdGUtZGlzYWJsZWRcbiAqL1xuLnAtcGFnaW5hdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXAtcGFnaW5hdG9yLWdhcCk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhZ2luYXRvci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1wYWdpbmF0b3ItY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtY29udGVudC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhZ2luYXRvci1ib3JkZXItcmFkaXVzKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLXBhZ2luYXRvci1wYWRkaW5nKTtcbn1cblxuLyogZmxhdDogdGhlIGFsdGVybmF0aXZlcyBoYXZlIGRpZmZlcmVudCBzcGVjaWZpY2l0eSAqL1xuLnAtcGFnaW5hdG9yLWNlbnRlci1jb250ZW50LFxuLnAtcGFnaW5hdG9yLnAtcGFnaW5hdG9yLXRvcCAucC1wYWdpbmF0b3ItdG9wLWxlZnQtY29udGVudCxcbi5wLXBhZ2luYXRvci5wLXBhZ2luYXRvci10b3AgLnAtcGFnaW5hdG9yLXRvcC1yaWdodC1jb250ZW50LFxuLnAtcGFnaW5hdG9yLnAtcGFnaW5hdG9yLWJvdHRvbSAucC1wYWdpbmF0b3ItYm90dG9tLWxlZnQtY29udGVudCxcbi5wLXBhZ2luYXRvci5wLXBhZ2luYXRvci1ib3R0b20gLnAtcGFnaW5hdG9yLWJvdHRvbS1yaWdodC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcC1wYWdpbmF0b3ItZ2FwKTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1pbi13aWR0aDogNWVtO1xufVxuXG4vKiBlbXB0eSBsZWZ0L3JpZ2h0IGZhY2V0cyBtdXN0IG5vdCB0YWtlIHNwYWNlLCBvdGhlcndpc2UgdGhlIHBhZ2UgbGlua3MgYXJlIHB1c2hlZCBvZmYgY2VudGVyIG9yIHdyYXAgKi9cbi5wLXBhZ2luYXRvci5wLXBhZ2luYXRvci10b3AgLnAtcGFnaW5hdG9yLXRvcC1sZWZ0LWNvbnRlbnQ6ZW1wdHksXG4ucC1wYWdpbmF0b3IucC1wYWdpbmF0b3ItdG9wIC5wLXBhZ2luYXRvci10b3AtcmlnaHQtY29udGVudDplbXB0eSxcbi5wLXBhZ2luYXRvci5wLXBhZ2luYXRvci1ib3R0b20gLnAtcGFnaW5hdG9yLWJvdHRvbS1sZWZ0LWNvbnRlbnQ6ZW1wdHksXG4ucC1wYWdpbmF0b3IucC1wYWdpbmF0b3ItYm90dG9tIC5wLXBhZ2luYXRvci1ib3R0b20tcmlnaHQtY29udGVudDplbXB0eSB7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4ucC1wYWdpbmF0b3ItY2VudGVyLWNvbnRlbnQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ucC1wYWdpbmF0b3Ige1xuICAgICYucC1wYWdpbmF0b3ItdG9wIC5wLXBhZ2luYXRvci10b3AtcmlnaHQtY29udGVudCxcbiAgICAmLnAtcGFnaW5hdG9yLWJvdHRvbSAucC1wYWdpbmF0b3ItYm90dG9tLXJpZ2h0LWNvbnRlbnQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvci1wYWdlLFxuICAgIC5wLXBhZ2luYXRvci1wYWdlcyxcbiAgICAucC1wYWdpbmF0b3ItbmV4dCxcbiAgICAucC1wYWdpbmF0b3ItbGFzdCxcbiAgICAucC1wYWdpbmF0b3ItZmlyc3QsXG4gICAgLnAtcGFnaW5hdG9yLXByZXYsXG4gICAgLnAtcGFnaW5hdG9yLWN1cnJlbnQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtcGFnaW5hdG9yLXBhZ2UsXG4gICAgLnAtcGFnaW5hdG9yLW5leHQsXG4gICAgLnAtcGFnaW5hdG9yLWxhc3QsXG4gICAgLnAtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5wLXBhZ2luYXRvci1wcmV2IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC8qIGZpcnN0IC8gcHJldiAvIG5leHQgLyBsYXN0ICovXG4gICAgLnAtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5wLXBhZ2luYXRvci1wcmV2LFxuICAgIC5wLXBhZ2luYXRvci1uZXh0LFxuICAgIC5wLXBhZ2luYXRvci1sYXN0IHtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWhlaWdodCk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtcGFnaW5hdG9yLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXBhZ2luYXRvci10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1wYWdpbmF0b3ItdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1wYWdpbmF0b3ItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1mb2N1cyxcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmRpcihydGwpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1wYWdpbmF0b3ItZmlyc3QtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtcGFnaW5hdG9yLWZpcnN0LWljb24pO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvci1wcmV2LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhZ2luYXRvci1wcmV2LWljb24pO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvci1uZXh0LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhZ2luYXRvci1uZXh0LWljb24pO1xuICAgIH1cblxuICAgIC5wLXBhZ2luYXRvci1sYXN0LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhZ2luYXRvci1sYXN0LWljb24pO1xuICAgIH1cblxuICAgIC8qIGN1cnJlbnQgcGFnZSByZXBvcnQgKi9cbiAgICAucC1wYWdpbmF0b3ItY3VycmVudCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYWdpbmF0b3ItY3VycmVudC1wYWdlLXJlcG9ydC1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYWdpbmF0b3ItY3VycmVudC1wYWdlLXJlcG9ydC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1wYWdpbmF0b3ItY3VycmVudC1wYWdlLXJlcG9ydC1mb250LXdlaWdodCk7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgfVxuXG4gICAgLyogcGFnZSBsaW5rcyAqL1xuICAgIC5wLXBhZ2luYXRvci1wYWdlcyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXAtcGFnaW5hdG9yLWdhcCk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAucC1wYWdpbmF0b3ItcGFnZXMgLnAtcGFnaW5hdG9yLXBhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24td2lkdGgpO1xuICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1oZWlnaHQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1jb2xvcik7XG4gICAgICAgIC8qIG5hdGl2ZSA8YnV0dG9uPnMgKG5vIC5wLXdpZGdldCkgZG8gbm90IGluaGVyaXQgdGhlIHBhZ2UgZm9udCAqL1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgLyogZXF1YWwgd2lkdGggZGlnaXRzOiB0aGUgbGlua3MgZG8gbm90IHNoaWZ0IHdoZW4gdGhlIHBhZ2UgbnVtYmVycyBjaGFuZ2UgKi9cbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXBhZ2luYXRvci10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1wYWdpbmF0b3ItdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtcGFnaW5hdG9yLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtcGFnaW5hdG9yLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQsIC5wLXN0YXRlLWFjdGl2ZSk6aG92ZXIsXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkLCAucC1zdGF0ZS1hY3RpdmUpOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24taG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzLFxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtcGFnaW5hdG9yLW5hdi1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1wYWdpbmF0b3ItbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXBhZ2luYXRvci1uYXYtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHJvd3MgcGVyIHBhZ2UgLyBqdW1wIHRvIHBhZ2UgZHJvcGRvd25zIChuYXRpdmUgc2VsZWN0cywgc2tpbm5lZCBsaWtlIHA6c2VsZWN0T25lTWVudSkgKi9cbiAgICAucC1wYWdpbmF0b3ItcnBwLW9wdGlvbnMsXG4gICAgLnAtcGFnaW5hdG9yLWp0cC1zZWxlY3Qge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1zZWxlY3QtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtc2VsZWN0LWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3QtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1zZWxlY3QtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zZWxlY3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc2VsZWN0LXNoYWRvdyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1zZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICY6bm90KDpkaXNhYmxlZCwgLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1mb2N1cyxcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZGlzYWJsZWQsXG4gICAgICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zZWxlY3Qtb3ZlcmxheS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcGFnaW5hdG9yLWp0cC1pbnB1dCB7XG4gICAgICAgIC8qIGZpdCB0aGUgbGl2ZSBwYWdlIGNvdW50ICgtLXAtanRwLWRpZ2l0cyBpcyB3cml0dGVuIGlubGluZSBieSB0aGUgcmVuZGVyZXIpOiBvbmUgY2ggcGVyIGRpZ2l0IHBsdXMgcGFkZGluZyBhbmQgc3Bpbm5lciByb29tICovXG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXAtanRwLWRpZ2l0cywgMykgKiAxY2ggKyAyLjVyZW0pO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvKiBhZnRlciB0aGUgZGlzcGxheSBvZiAucC1wYWdpbmF0b3ItcGFnZXMgKHNhbWUgc3BlY2lmaWNpdHkpICovXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIC5wLXBhZ2luYXRvci1wYWdlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBSYWRpb0J1dHRvbiAoc2hhcmVkKTogdGhlIHJhZGlvIGJveCAucC1yYWRpb2J1dHRvbiBvZiBwOnNlbGVjdE9uZVJhZGlvIGFuZCBwOnJhZGlvQnV0dG9uXG4gKiAobGF5b3V0cyBhbmQgdGhlIHJlYWRvbmx5IHN0YXRlIG9mIHA6c2VsZWN0T25lUmFkaW86IGZvcm1zL3NlbGVjdG9uZXJhZGlvLmNzcylcbiAqXG4gKiBTdGF0ZXMgb24gLnAtcmFkaW9idXR0b24tYm94OiBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWZvY3VzLCBwLXN0YXRlLWFjdGl2ZSAoY2hlY2tlZCksIHAtc3RhdGUtZXJyb3IsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC1zdGF0ZS1kaXNhYmxlZCwgcC1pbnB1dC1maWxsZWQgKG9uIGEgcGFyZW50KSwgcC1zdGF0ZS1yZWFkb25seSAob24gLnAtc2VsZWN0b25lcmFkaW8pXG4gKiBTaXplczogcC1yYWRpb2J1dHRvbi1zbSwgcC1yYWRpb2J1dHRvbi1sZyAob24gdGhlIC5wLXJhZGlvYnV0dG9uIG9yIGEgcGFyZW50KVxuICovXG4ucC1yYWRpb2J1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogdmFyKC0tcC1yYWRpb2J1dHRvbi13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1wLXJhZGlvYnV0dG9uLWhlaWdodCk7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgIC5wLXJhZGlvYnV0dG9uLWJveCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1yYWRpb2J1dHRvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWJhY2tncm91bmQpO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1yYWRpb2J1dHRvbi13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1yYWRpb2J1dHRvbi1oZWlnaHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXJhZGlvYnV0dG9uLXNoYWRvdyk7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtcmFkaW9idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtcmFkaW9idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1yYWRpb2J1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXJhZGlvYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLXJhZGlvYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1yYWRpb2J1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXJhZGlvYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtcmFkaW9idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1yYWRpb2J1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXJhZGlvYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24tY2hlY2tlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWljb24tY2hlY2tlZC1jb2xvcik7XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtcmFkaW9idXR0b24taWNvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLWNoZWNrZWQtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXIgLnAtcmFkaW9idXR0b24taWNvbixcbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciAucC1yYWRpb2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWljb24tY2hlY2tlZC1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiByZWFkb25seSAobm8gaG92ZXIgZmVlZGJhY2spOiBmb3Jtcy9zZWxlY3RvbmVyYWRpby5jc3MsIGl0IHdpbnMgYnkgc3BlY2lmaWNpdHkgKi9cblxuICAgICAgICAvKiBpbnZhbGlkOiB0aGUgYm9yZGVyIGFsc28gd2lucyBvdmVyIGhvdmVyLCBmb2N1cyBhbmQgY2hlY2tlZCAoc2FtZSBvciBoaWdoZXIgc3BlY2lmaWNpdHksIGxhdGVyKSwgdGhlIGZvY3VzIHJpbmcgc3RheXMgKi9cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3I6aXMoOmhvdmVyLCAucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtZm9jdXMpLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3IucC1zdGF0ZS1hY3RpdmU6aXMoOmhvdmVyLCAucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtZm9jdXMpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1yYWRpb2J1dHRvbi1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24tZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtcmFkaW9idXR0b24tY2hlY2tlZC1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuXG4gICAgICAgICAgICAmLnAtc3RhdGUtYWN0aXZlIC5wLXJhZGlvYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24taWNvbi1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucC1yYWRpb2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWljb24tc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtcmFkaW9idXR0b24taWNvbi1zaXplKTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1wLXJhZGlvYnV0dG9uLWljb24tc2l6ZSkgLyAyKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLXNpemUpIC8gMik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIC8qIHRoZSBkb3QgaXMgYSBiYWNrZ3JvdW5kOiBrZWVwIGl0IGluIGZvcmNlZCBjb2xvcnMgKHRoZSBjaGVja21hcmsgb2YgdGhlIGNoZWNrYm94IGlzIGEgbWFzaywgc2VlIGJhc2UvY29tbW9uLmNzcykgKi9cbiAgICAgICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wLXJhZGlvYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiByZWFkb25seSAodGhlIGRpc2FibGVkIGN1cnNvciBjb21lcyBmcm9tIGJhc2UvY29tbW9uLmNzcykgKi9cbi5wLXNlbGVjdG9uZXJhZGlvLnAtc3RhdGUtcmVhZG9ubHkgLnAtcmFkaW9idXR0b24tYm94IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIGZpbGxlZCB2YXJpYW50ICovXG4ucC1pbnB1dC1maWxsZWQgLnAtcmFkaW9idXR0b24gLnAtcmFkaW9idXR0b24tYm94IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWZpbGxlZC1iYWNrZ3JvdW5kKTtcblxuICAgIC8qIG5vIHJhZGlvYnV0dG9uIHRva2VuIGZvciB0aGUgZmlsbGVkIGhvdmVyIHN0YXRlICovXG4gICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZm9ybS1maWVsZC1maWxsZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcmFkaW9idXR0b24tY2hlY2tlZC1iYWNrZ3JvdW5kKTtcblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgIH1cbn1cblxuLypcbiAqIHNpemVzOiBwLXJhZGlvYnV0dG9uLXNtIC8gcC1yYWRpb2J1dHRvbi1sZyBvbiB0aGUgLnAtcmFkaW9idXR0b24gb3Igb24gYW55IHBhcmVudCAocDpzZWxlY3RPbmVSYWRpbyBzdHlsZUNsYXNzLFxuICogYSB3cmFwcGVyKTogdGhlIHNpemUgdG9rZW5zIHJlcGxhY2UgdGhlIGJhc2Ugb25lc1xuICovXG4ucC1yYWRpb2J1dHRvbi1zbSB7XG4gICAgLS1wLXJhZGlvYnV0dG9uLXdpZHRoOiB2YXIoLS1wLXJhZGlvYnV0dG9uLXNtLXdpZHRoKTtcbiAgICAtLXAtcmFkaW9idXR0b24taGVpZ2h0OiB2YXIoLS1wLXJhZGlvYnV0dG9uLXNtLWhlaWdodCk7XG4gICAgLS1wLXJhZGlvYnV0dG9uLWljb24tc2l6ZTogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLXNtLXNpemUpO1xufVxuXG4ucC1yYWRpb2J1dHRvbi1sZyB7XG4gICAgLS1wLXJhZGlvYnV0dG9uLXdpZHRoOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWxnLXdpZHRoKTtcbiAgICAtLXAtcmFkaW9idXR0b24taGVpZ2h0OiB2YXIoLS1wLXJhZGlvYnV0dG9uLWxnLWhlaWdodCk7XG4gICAgLS1wLXJhZGlvYnV0dG9uLWljb24tc2l6ZTogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLWxnLXNpemUpO1xufVxuXG4vKiBjaGVja2VkIGluc2lkZSBhIHNlbGVjdGlvbiAoc2VsZWN0ZWQgcm93IC8gaXRlbSk6IGEgcmltIGluIHRoZSBzZWxlY3Rpb24gdGV4dCBjb2xvciwgc2VlIGNoZWNrYm94LmNzcyAqL1xuLnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXJhZGlvYnV0dG9uIC5wLXJhZGlvYnV0dG9uLWJveC5wLXN0YXRlLWFjdGl2ZS5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWhpZ2hsaWdodC1jb2xvcik7XG59XG4iLCAiLypcbiAqIEFjY29yZGlvbjogcDphY2NvcmRpb25QYW5lbFxuICpcbiAqIFBGIHJlbmRlcnMgaGVhZGVyL2NvbnRlbnQgcGFpcnMgYXMgc2libGluZ3MgKG5vIHBhbmVsIHdyYXBwZXIpLCBzbyB0aGUgUHJpbWVVSVggXCJwYW5lbFwiIGJvcmRlclxuICogKGFjY29yZGlvbi5wYW5lbC5ib3JkZXIuKikgaXMgZHJhd24gYnkgYW4gOjphZnRlciBvdmVybGF5IG9uIHRoZSBsYXN0IHZpc2libGUgZWxlbWVudCBvZiBlYWNoIHBhaXI6XG4gKiB0aGUgaGVhZGVyIHdoaWxlIGNvbGxhcHNlZCwgdGhlIGNvbnRlbnQgd2hpbGUgZXhwYW5kZWQuXG4gKiBTdGF0ZXM6IHAtc3RhdGUtYWN0aXZlLCBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWRpc2FibGVkLCBwLXN0YXRlLWVycm9yLCBwLWFjY29yZGlvbi1ydGxcbiAqL1xuLnAtYWNjb3JkaW9uIHtcbiAgICAucC1hY2NvcmRpb24taGVhZGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWFjY29yZGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1hY2NvcmRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtYWNjb3JkaW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtYWNjb3JkaW9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIH1cblxuICAgIC5wLWFjY29yZGlvbi1oZWFkZXI6bm90KC5wLXN0YXRlLWFjdGl2ZSk6OmFmdGVyLFxuICAgIC5wLWFjY29yZGlvbi1jb250ZW50OjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtYWNjb3JkaW9uLXBhbmVsLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1hY2NvcmRpb24tcGFuZWwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAucC1hY2NvcmRpb24taGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItZmlyc3QtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWZpcnN0LXRvcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1maXJzdC10b3AtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiAucC1hY2NvcmRpb24taGVhZGVyOm5vdCg6aGFzKH4gLnAtYWNjb3JkaW9uLWhlYWRlcikpIHtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1sYXN0LWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItbGFzdC1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiAucC1hY2NvcmRpb24taGVhZGVyLnAtc3RhdGUtYWN0aXZlOm5vdCg6aGFzKH4gLnAtYWNjb3JkaW9uLWhlYWRlcikpIHtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1sYXN0LWFjdGl2ZS1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWxhc3QtYWN0aXZlLWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAucC1hY2NvcmRpb24taGVhZGVyIHtcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1hY3RpdmUsIC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlLWNvbG9yKTtcblxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaW52YWxpZDogUHJpbWVGYWNlcyB0b2tlbnMgKi9cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3I6aG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1lcnJvci5wLXN0YXRlLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItaW52YWxpZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItaW52YWxpZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtZXJyb3I6OmFmdGVyLFxuICAgICAgICAmLnAtc3RhdGUtZXJyb3IgKyAucC1hY2NvcmRpb24tY29udGVudCxcbiAgICAgICAgJi5wLXN0YXRlLWVycm9yICsgLnAtYWNjb3JkaW9uLWNvbnRlbnQ6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRvZ2dsZSBpY29uLCBhdCB0aGUgZW5kIGxpa2UgUHJpbWVVSVggKi9cbiAgICAgICAgPiAucC1hY2NvcmRpb24tdG9nZ2xlciB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItdG9nZ2xlLWljb24tY29sb3IpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC1hY2NvcmRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIgPiAucC1hY2NvcmRpb24tdG9nZ2xlcixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtYWN0aXZlLCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgPiAucC1hY2NvcmRpb24tdG9nZ2xlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLXRvZ2dsZS1pY29uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgPiAucC1hY2NvcmRpb24tdG9nZ2xlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci10b2dnbGUtaWNvbi1hY3RpdmUtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgPiAucC1hY2NvcmRpb24tdG9nZ2xlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci10b2dnbGUtaWNvbi1hY3RpdmUtaG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yID4gLnAtYWNjb3JkaW9uLXRvZ2dsZXIge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1hY2NvcmRpb24taGVhZGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLnAtYWNjb3JkaW9uLWhlYWRlci1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG9wdGlvbnMgbWVudSB0cmlnZ2VyOiB0ZXh0L3NlY29uZGFyeSByb3VuZGVkIGljb24gYnV0dG9uIGxpa2UgdGhlIFByaW1lVUlYIHBhbmVsIGhlYWRlciBidXR0b25zICovXG4gICAgICAgIC5wLXBhbmVsLXRpdGxlYmFyLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIC8qIG5vIHRva2VuOiB2ZXJ0aWNhbGx5IGNlbnRlciB0aGUgaWNvbiBidXR0b24gb24gdGhlIGhlYWRlciBsaW5lICovXG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IGNhbGMoKHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCkgKiAxZW0gLSB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpKSAvIDIpO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWFjY29yZGlvbi1oZWFkZXItbWVudS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItbWVudS1pY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXBhbmVsLXRpdGxlYmFyLWljb24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1wYW5lbC1hY3Rpb25zIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5wLWFjY29yZGlvbi1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWFjY29yZGlvbi1jb250ZW50LWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWFjY29yZGlvbi1jb250ZW50LWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1hY2NvcmRpb24tY29udGVudC1ib3JkZXItY29sb3IpO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICAvKiBubyB0b2tlbjogdGhlIGxhc3QgY29udGVudCBjbG9zZXMgdGhlIHJvdW5kZWQgYm94IG9wZW5lZCBieSB0aGUgZmlyc3QgaGVhZGVyICovXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWFjY29yZGlvbi1oZWFkZXItbGFzdC1ib3R0b20tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtYWNjb3JkaW9uLWhlYWRlci1sYXN0LWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFJUTDogdGhlIGZsb2F0cyAodG9nZ2xlIGljb24sIG9wdGlvbnMgbWVudSwgYWN0aW9ucykgbW92ZSB0byB0aGUgbGVmdCAoPSBlbmQpIGVkZ2UgKi9cbiAgICAmLnAtYWNjb3JkaW9uLXJ0bCB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuXG4gICAgICAgIC5wLWFjY29yZGlvbi1oZWFkZXIgPiAucC1hY2NvcmRpb24tdG9nZ2xlcixcbiAgICAgICAgLnAtcGFuZWwtdGl0bGViYXItaWNvbixcbiAgICAgICAgLnAtcGFuZWwtYWN0aW9ucyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogQWpheFN0YXR1czogcDphamF4U3RhdHVzICsgdGhlIGlubGluZSBhamF4IHN0YXR1cyBvZiB0aGUgY29tcG9uZW50cyAoUHJpbWVGYWNlcyBvbmx5IHRva2VuczogdGhlIGFqYXhzdGF0dXMgYmxvY2tcbiAqIG9mIHByZXNldHMvKi5jc3MpXG4gKlxuICogTWFya3VwOiBkaXYjaWQgKHN0eWxlQ2xhc3MpID4gZGl2I2lkX3N0YXJ0IHwgX3N1Y2Nlc3MgfCBfY29tcGxldGUgfCBfZXJyb3IgKGRpc3BsYXk6bm9uZSwgdGhlIHdpZGdldCBzaG93cyB0aGVcbiAqICAgICAgICAgZmFjZXQgb2YgdGhlIGN1cnJlbnQgcmVxdWVzdCBwaGFzZSkgYW5kIGRpdiNpZF9kZWZhdWx0IChhbHdheXMgc2hvd24pLlxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOlxuICogICBwLWFqYXhzdGF0dXMtYmFyICBhbiBpbmRldGVybWluYXRlIHByb2dyZXNzIGJhciBmaXhlZCBhdCB0aGUgdG9wIG9mIHRoZSB2aWV3cG9ydCB3aGlsZSBhIHJlcXVlc3QgcnVucy4gRWl0aGVyIG9uXG4gKiAgICAgICAgICAgICAgICAgICAgICBhbiBlbGVtZW50IGluIHRoZSBzdGFydCBmYWNldCAoPGY6ZmFjZXQgbmFtZT1cInN0YXJ0XCI+PGRpdiBjbGFzcz1cInAtYWpheHN0YXR1cy1iYXJcIi8+PC9mOmZhY2V0PilcbiAqICAgICAgICAgICAgICAgICAgICAgIG9yIGFzIHN0eWxlQ2xhc3Mgb2YgcDphamF4U3RhdHVzIGl0c2VsZiwgd2hpY2ggdGhlbiBuZWVkcyBhIHN0YXJ0IGZhY2V0IChpdHMgY29udGVudCBpcyBoaWRkZW4pLlxuICpcbiAqIElubGluZSBhamF4IHN0YXR1czogYnV0dG9ucyAoZnJvbSB0aGUgY29yZSksIHA6YXV0b0NvbXBsZXRlIGFuZCBwOnNlbGVjdE9uZU1lbnUgZ2V0IGEgc3Bpbm5lclxuICogPHNwYW4gY2xhc3M9XCJwLWljb24tbG9hZGluZyBwLWljb24gcC1sb2FkaW5nLWljb24gcC1hamF4c3RhdHVzLWxvYWRpbmctaWNvblwiPiB3aGlsZSB0aGVpciByZXF1ZXN0IHJ1bnMgKHRoZVxuICogLS1wLWFqYXhzdGF0dXMtbG9hZGluZy1pY29uIHRva2VuLCByb3RhdGVkIGJ5IHRoZSBwLXNwaW4gYW5pbWF0aW9uIGJlbG93KS5cbiAqL1xuXG4vKiB0aGUgcm90YXRpb24gb2YgZXZlcnkgc3Bpbm5lciBvZiB0aGUgdGhlbWUgKGJsb2NrVUksIGNvbW1hbmRMaW5rLCBkYXRhU2Nyb2xsZXIsIG91dHB1dFBhbmVsLCBpbmxpbmUgYWpheCBzdGF0dXMpO1xuICAgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbiBzdG9wcyBpdCAoYmFzZS9kb2N1bWVudC5jc3MpICovXG5Aa2V5ZnJhbWVzIHAtc3BpbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcC1hamF4c3RhdHVzLWJhci1hbmltIHtcbiAgICBmcm9tIHtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAtNDAlO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAxMDAlO1xuICAgIH1cbn1cblxuLnAtaWNvbi1sb2FkaW5nIHtcbiAgICBhbmltYXRpb246IHAtc3BpbiB2YXIoLS1wLWFqYXhzdGF0dXMtbG9hZGluZy1pY29uLWFuaW1hdGlvbi1kdXJhdGlvbikgbGluZWFyIGluZmluaXRlO1xufVxuXG4ucC1hamF4c3RhdHVzLWxvYWRpbmctaWNvbiB7XG4gICAgLS1faWNvbjogdmFyKC0tcC1hamF4c3RhdHVzLWxvYWRpbmctaWNvbik7XG59XG5cbi8qIHRoZSBiYXI6IGFuIGVsZW1lbnQgaW4gdGhlIHN0YXJ0IGZhY2V0LCBvciB0aGUgc3RhcnQgZmFjZXQgb2YgcDphamF4U3RhdHVzIHN0eWxlQ2xhc3M9XCJwLWFqYXhzdGF0dXMtYmFyXCIgKi9cbi5wLWFqYXhzdGF0dXMtYmFyOm5vdCg6aGFzKD4gW2lkJD1cIl9zdGFydFwiXSkpLFxuLnAtYWpheHN0YXR1cy1iYXIgPiBbaWQkPVwiX3N0YXJ0XCJdIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGluc2V0LWlubGluZTogMDtcbiAgICB6LWluZGV4OiA5OTk5O1xuICAgIGhlaWdodDogdmFyKC0tcC1hamF4c3RhdHVzLWJhci1oZWlnaHQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYWpheHN0YXR1cy1iYXItYmFja2dyb3VuZCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IC00MCU7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYWpheHN0YXR1cy1iYXItdmFsdWUtYmFja2dyb3VuZCk7XG4gICAgICAgIGFuaW1hdGlvbjogcC1hamF4c3RhdHVzLWJhci1hbmltIHZhcigtLXAtYWpheHN0YXR1cy1iYXItYW5pbWF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7XG4gICAgfVxuXG4gICAgLyogdGhlIGNvbnRlbnQgb2YgdGhlIHN0YXJ0IGZhY2V0IHdoZW4gdGhlIGNsYXNzIGlzIG9uIHA6YWpheFN0YXR1cyAqL1xuICAgID4gKiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBBdXRvQ29tcGxldGU6IHA6YXV0b0NvbXBsZXRlIChzaW5nbGUsIG11bHRpcGxlLCBkcm9wZG93biwgZ3JvdXBzLCBpdGVtIHRhYmxlLCBpdGVtdGlwLCBtb3JlVGV4dCwgZm9vdGVyKVxuICpcbiAqIFRoZSBpbnB1dCAvIG11bHRpcGxlIGNvbnRhaW5lciBhcmUgLnAtaW5wdXRmaWVsZCAoZm9ybXMvaW5wdXRmaWVsZC5jc3MpLCBvbmx5IHRoZSBkaWZmZXJlbmNlcyBsaXZlIGhlcmUuXG4gKiBUaGUgZHJvcGRvd24gaXMgYSAucC1idXR0b246IGl0IG9ubHkgcmVtYXBzIHRoZSBwcml2YXRlIC0tXyogYnV0dG9uIHZhcmlhYmxlcyB0byB0aGUgYXV0b2NvbXBsZXRlIGRyb3Bkb3duIHRva2Vucy5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLWF1dG9jb21wbGV0ZS1kZCwgcC1hdXRvY29tcGxldGUtbXVsdGlwbGUsIHAtc3RhdGUtbG9hZGluZyAob24gLnAtYXV0b2NvbXBsZXRlKSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXN0YXRlLWhpZ2hsaWdodCAoZm9jdXNlZCBpdGVtKSwgcC1zdGF0ZS1kaXNhYmxlZFxuICovXG4ucC1hdXRvY29tcGxldGUge1xuICAgIC8qIHRoZSBpbnB1dCAvIG11bHRpcGxlIGNvbnRhaW5lciAoLnAtaW5wdXRmaWVsZCkgcmVhZCB0aGUgaW5wdXR0ZXh0IHRva2VuczogcG9pbnQgdGhlbSB0byB0aGUgYXV0b2NvbXBsZXRlIHRva2VucyAqL1xuICAgIC0tcC1pbnB1dHRleHQtYmFja2dyb3VuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZpbGxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1maWxsZWQtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1maWxsZWQtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtZmlsbGVkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tcC1pbnB1dHRleHQtZmlsbGVkLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWZpbGxlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWJvcmRlci1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWhvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLWJvcmRlci1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWludmFsaWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZGlzYWJsZWQtY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRpc2FibGVkLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1pbnZhbGlkLXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pbnZhbGlkLXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXNoYWRvdzogdmFyKC0tcC1hdXRvY29tcGxldGUtc2hhZG93KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteDogdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteTogdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy15KTtcbiAgICAtLXAtaW5wdXR0ZXh0LWJvcmRlci1yYWRpdXM6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWJvcmRlci1yYWRpdXMpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy13aWR0aDogdmFyKC0tcC1hdXRvY29tcGxldGUtZm9jdXMtcmluZy13aWR0aCk7XG4gICAgLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLXN0eWxlOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1mb2N1cy1yaW5nLXN0eWxlKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1vZmZzZXQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAtLXAtaW5wdXR0ZXh0LWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1wLWlucHV0dGV4dC10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgIHdpZHRoOiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAvKiBkaXNhYmxlZDogdGhlIHJvb3QgY2FycmllcyBwLXN0YXRlLWRpc2FibGVkIHRvbzsgdGhlIGlucHV0IHNob3dzIHRoZSBkaXNhYmxlZCBmaWVsZCBsb29rIChsaWtlIHA6aW5wdXRUZXh0KSwgc29cbiAgICAgICB0aGUgcm9vdCBpcyBub3QgZmFkZWQgb24gdG9wIG9mIGl0LCBvbmx5IHRoZSBkcm9wZG93biBidXR0b24gKi9cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgID4gLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXAtZGlzYWJsZWQtb3BhY2l0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBkcm9wZG93bjogaW5wdXQgKG9yIG11bHRpcGxlIGNvbnRhaW5lcikgYW5kIGJ1dHRvbiBzaWRlIGJ5IHNpZGUsIHRoZSBidXR0b24gc3RyZXRjaGVzIHRvIHRoZSBpbnB1dCBoZWlnaHQgKi9cbiAgICAmLnAtYXV0b2NvbXBsZXRlLWRkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC5wLWF1dG9jb21wbGV0ZS1kZC1pbnB1dCB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1wYWRkaW5nLXgpO1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5wLWJ1dHRvbiB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1faG92ZXItYmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9hY3RpdmUtYmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24tY29sb3IpO1xuICAgICAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24taG92ZXItY29sb3IpO1xuICAgICAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWFjdGl2ZS1jb2xvcik7XG4gICAgICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24tZm9jdXMtcmluZy1zaGFkb3cpO1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLXdpZHRoKTtcbiAgICAgICAgLyogc3RyZXRjaGVkIHRvIHRoZSBpbnB1dCBoZWlnaHQgYnkgdGhlIGZsZXggcm93IChhbHNvIGZvciBwLWlucHV0dGV4dC1zbSAvIC1sZykgKi9cbiAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOiAwO1xuICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYXV0b2NvbXBsZXRlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1hdXRvY29tcGxldGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLV9mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtZHJvcGRvd24taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLWljb24pO1xuICAgIH1cblxuICAgIC5wLWljb24tbG9hZGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWxvYWRpbmcgLnAtaWNvbi1sb2FkaW5nIHtcbiAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KTtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1mb3JtLWZpZWxkLWljb24tY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1sb2FkaW5nLnAtYXV0b2NvbXBsZXRlLWRkIC5wLWljb24tbG9hZGluZyB7XG4gICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGModmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KSArIHZhcigtLXAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLXdpZHRoKSk7XG4gICAgfVxufVxuXG4vKiBzaXplczogdGhlIGlucHV0IGNhcnJpZXMgcC1pbnB1dHRleHQtc20gLyAtbGcgKGZvcm1zL2lucHV0ZmllbGQuY3NzKSwgdGhlIGRyb3Bkb3duIHdpZHRoIGZvbGxvd3MgbGlrZSBQcmltZVVJWCAqL1xuLnAtYXV0b2NvbXBsZXRlLnAtYXV0b2NvbXBsZXRlLWRkOmhhcyg+IC5wLWlucHV0dGV4dC1zbSkgLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duLnAtYnV0dG9uIHtcbiAgICB3aWR0aDogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24tc20td2lkdGgpO1xufVxuXG4ucC1hdXRvY29tcGxldGUucC1hdXRvY29tcGxldGUtZGQ6aGFzKD4gLnAtaW5wdXR0ZXh0LWxnKSAucC1hdXRvY29tcGxldGUtZHJvcGRvd24ucC1idXR0b24ge1xuICAgIHdpZHRoOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi1sZy13aWR0aCk7XG59XG5cbi8qIHRoZSBkcm9wZG93biBib3JkZXIgZm9sbG93cyB0aGUgaG92ZXIgLyBmb2N1cyAvIGludmFsaWQgc3RhdGUgb2YgdGhlIGlucHV0ICovXG4ucC1hdXRvY29tcGxldGUtZGQge1xuICAgICY6aGFzKD4gLnAtaW5wdXRmaWVsZC5wLXN0YXRlLWhvdmVyLCA+IC5wLWlucHV0ZmllbGQ6aG92ZXIpIC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5wLWJ1dHRvbiB7XG4gICAgICAgIC0tX2JvcmRlcjogdmFyKC0tcC1hdXRvY29tcGxldGUtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6aGFzKD4gLnAtaW5wdXRmaWVsZC5wLXN0YXRlLWZvY3VzLCA+IC5wLWlucHV0ZmllbGQ6Zm9jdXMpIC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5wLWJ1dHRvbiB7XG4gICAgICAgIC0tX2JvcmRlcjogdmFyKC0tcC1hdXRvY29tcGxldGUtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6aGFzKD4gLnAtaW5wdXRmaWVsZC5wLXN0YXRlLWVycm9yKSAucC1hdXRvY29tcGxldGUtZHJvcGRvd24ucC1idXR0b24ge1xuICAgICAgICAtLV9ib3JkZXI6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG59XG5cbi8qIG11bHRpcGxlIG1vZGUgKi9cbi5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIge1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIGN1cnNvcjogdGV4dDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIGxlZ2FjeSBkZWZhdWx0IHdpZHRoOyBuZXZlciB3aWRlciB0aGFuIGl0cyBjb250YWluZXIgKGdyaWQgY2VsbCwgZml4ZWQgd2lkdGggcGFyZW50KSAqL1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qIHRoZSByb290IGlzIGFuIGlubGluZS1ibG9jayB0aGF0IHNocmlua3MgdG8gdGhlIGNvbnRhaW5lcjogaXQgbmVlZHMgdGhlIGxpbWl0IHRvbyAqL1xuLnAtYXV0b2NvbXBsZXRlLnAtYXV0b2NvbXBsZXRlLW11bHRpcGxlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS10b2tlbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS10b2tlbi1sYWJlbCxcbi5wLWF1dG9jb21wbGV0ZS10b2tlbi1sYWJlbC1kaXNhYmxlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS10b2tlbi1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucC1hdXRvY29tcGxldGUtaW5wdXQtdG9rZW4ge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgIGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHdpZHRoOiAxNDBweDtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG59XG5cbi8qIHRva2VucyBhbmQgaW5wdXQgd3JhcCBhcyBhIGZsZXggcm93LCB0aGUgaW5wdXQgdGFrZXMgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgKGF0IGxlYXN0IDRyZW0pIGluc3RlYWQgb2YgYSBmaXhlZCB3aWR0aCAqL1xuLnAtYXV0b2NvbXBsZXRlIC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1wLWF1dG9jb21wbGV0ZS1wYWRkaW5nLXkpIC8gMikgdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KTtcblxuICAgICYucC1hdXRvY29tcGxldGUtZGQtbXVsdGlwbGUtY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtcGFkZGluZy14KTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtdG9rZW4ge1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXAtYXV0b2NvbXBsZXRlLXBhZGRpbmcteSkgLyAyKSAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLXAtYXV0b2NvbXBsZXRlLXBhZGRpbmcteSkgLyAyKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaGlwLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGlwLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1hdXRvY29tcGxldGUtY2hpcC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWF1dG9jb21wbGV0ZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1hdXRvY29tcGxldGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgLnAtYXV0b2NvbXBsZXRlLXRva2VuLWxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1jaGlwLXBhZGRpbmcteCkgY2FsYyh2YXIoLS1wLWNoaXAtcGFkZGluZy14KSArIHZhcigtLXAtY2hpcC1nYXApICsgdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1jaGlwLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jaGlwLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWF1dG9jb21wbGV0ZS10b2tlbi1sYWJlbC1kaXNhYmxlZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1jaGlwLXBhZGRpbmcteCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1hdXRvY29tcGxldGUtY2hpcC1yZW1vdmUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1jaGlwLXJlbW92ZS1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWF1dG9jb21wbGV0ZS10b2tlbi1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLXAtY2hpcC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tc2l6ZSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC10b2tlbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1wLWF1dG9jb21wbGV0ZS1wYWRkaW5nLXkpIC8gMikgMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZmxleDogMSAxIDRyZW07XG4gICAgICAgIG1pbi13aWR0aDogNHJlbTtcblxuICAgICAgICAvKiBzYW1lIGxpbmUgaGVpZ2h0IGFzIGFuIGlucHV0OiBwYWRkaW5nLXkgLyAyIChjb250YWluZXIpICsgcGFkZGluZy15IC8gMiAoaGVyZSkgKyBsaW5lID0gaW5wdXQgaGVpZ2h0ICovXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWZvcm0tZmllbGQtZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWZvcm0tZmllbGQtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtY29sb3IpO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWVycm9yIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC10b2tlbiBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtaW52YWxpZC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgfVxufVxuXG4vKiBvdmVybGF5ICovXG4ucC1hdXRvY29tcGxldGUtcGFuZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW92ZXJsYXktYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW92ZXJsYXktY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtYXV0b2NvbXBsZXRlLW92ZXJsYXktYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vdmVybGF5LWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW92ZXJsYXktc2hhZG93KTtcblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pdGVtIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1saXN0IHtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1saXN0LWl0ZW0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtZW1wdHktbWVzc2FnZSB7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWVtcHR5LW1lc3NhZ2UtcGFkZGluZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtYXV0b2NvbXBsZXRlLWl0ZW1zIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1hdXRvY29tcGxldGUtbGlzdC1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgICAucC1hdXRvY29tcGxldGUtaXRlbSB7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tY29sb3IpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtaXRlbXM6ZW1wdHkge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1saXN0IC5wLWF1dG9jb21wbGV0ZS1pdGVtICsgLnAtYXV0b2NvbXBsZXRlLWl0ZW0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1saXN0LWdhcCk7XG4gICAgfVxuXG4gICAgLyogdGFibGUgbW9kZSAocDpjb2x1bW4gY2hpbGRyZW4pICovXG4gICAgLnAtYXV0b2NvbXBsZXRlLXRhYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXRhYmxlLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1hdXRvY29tcGxldGUtdGFibGUtY2VsbC1wYWRkaW5nKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtdGFibGUtaGVhZGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtdGFibGUtaGVhZGVyLWNlbGwtY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXRhYmxlLWhlYWRlci1jZWxsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZS1pdGVtcyAucC1hdXRvY29tcGxldGUtaXRlbS5wLWF1dG9jb21wbGV0ZS1yb3cge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCA+IHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBwLXN0YXRlLWhpZ2hsaWdodCA9IHRoZSBpdGVtIHVuZGVyIHRoZSBtb3VzZSAvIGtleWJvYXJkIGN1cnNvciAqL1xuICAgIC5wLWF1dG9jb21wbGV0ZS1pdGVtcyAucC1hdXRvY29tcGxldGUtaXRlbS5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1mb2N1cy1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtYXV0b2NvbXBsZXRlLWl0ZW1zIC5wLWF1dG9jb21wbGV0ZS1tb3JldGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW1vcmUtdGV4dC1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1hdXRvY29tcGxldGUtb3B0aW9uLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1tb3JlLXRleHQtZm9udC13ZWlnaHQpO1xuICAgIH1cblxuICAgIC8qIG1hdGNoZWQgcGFydCBvZiBhbiBpdGVtIGxhYmVsICovXG4gICAgLnAtYXV0b2NvbXBsZXRlLXF1ZXJ5IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLXF1ZXJ5LWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUtZ3JvdXAge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1ncm91cC1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtb3B0aW9uLWdyb3VwLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1hdXRvY29tcGxldGUtb3B0aW9uLWdyb3VwLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWF1dG9jb21wbGV0ZS1vcHRpb24tZ3JvdXAtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYXV0b2NvbXBsZXRlLW9wdGlvbi1ncm91cC1mb250LXdlaWdodCk7XG4gICAgfVxufVxuXG4ucC1hdXRvY29tcGxldGUtbGlzdCAucC1hdXRvY29tcGxldGUtbW9yZXRleHQge1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuXG4ucC1hdXRvY29tcGxldGUtZW1wdHktbWVzc2FnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIGl0ZW10aXA6IHNtYWxsIHBvcG92ZXIgbmV4dCB0byB0aGUgZm9jdXNlZCBpdGVtICh0aGUgZWxlbWVudCBhbHNvIGNhcnJpZXMgcC1zdGF0ZS1oaWdobGlnaHQpICovXG4ucC1hdXRvY29tcGxldGUtaXRlbXRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLnAtd2lkZ2V0IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1hdXRvY29tcGxldGUtaXRlbXRpcC1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1hdXRvY29tcGxldGUtaXRlbXRpcC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWl0ZW10aXAtY29sb3IpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWF1dG9jb21wbGV0ZS1pdGVtdGlwLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWl0ZW10aXAtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYXV0b2NvbXBsZXRlLWl0ZW10aXAtc2hhZG93KTtcbiAgICB9XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1pdGVtdGlwLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wLWZsdWlkIHtcbiAgICAucC1hdXRvY29tcGxldGUsXG4gICAgLnAtYXV0b2NvbXBsZXRlLWlucHV0LFxuICAgIC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAucC1hdXRvY29tcGxldGUucC1hdXRvY29tcGxldGUtZGQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZSAucC1hdXRvY29tcGxldGUtaW5wdXQucC1hdXRvY29tcGxldGUtZGQtaW5wdXQsXG4gICAgLnAtYXV0b2NvbXBsZXRlLW11bHRpcGxlLWNvbnRhaW5lci5wLWF1dG9jb21wbGV0ZS1kZC1tdWx0aXBsZS1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMSU7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgIC5wLWF1dG9jb21wbGV0ZSAucC1hdXRvY29tcGxldGUtZHJvcGRvd24ucC1idXR0b24ge1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1hdXRvY29tcGxldGUtZHJvcGRvd24td2lkdGgpO1xuICAgIH1cbn1cbiIsICIvKlxuICogQXZhdGFyOiBwOmF2YXRhciwgcDphdmF0YXJHcm91cFxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLWF2YXRhci1jaXJjbGUsIHAtYXZhdGFyLWxnLCBwLWF2YXRhci14bCwgcC1hdmF0YXItZGFyayAvIHAtYXZhdGFyLWxpZ2h0IChkeW5hbWljQ29sb3IpXG4gKi9cblxuLnAtYXZhdGFyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogdmFyKC0tcC1hdmF0YXItd2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tcC1hdmF0YXItaGVpZ2h0KTtcbiAgICBmb250LXNpemU6IHZhcigtLXAtYXZhdGFyLWZvbnQtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYXZhdGFyLWZvbnQtd2VpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wLWF2YXRhci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1hdmF0YXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYXZhdGFyLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLyogaW1hZ2UgYXZhdGFyOiBubyBiYWNrZ3JvdW5kIGJlaGluZCB0aGUgcGljdHVyZSAqL1xuICAgICY6aGFzKD4gaW1nKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgID4gKiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgIH1cblxuICAgIC5wLWF2YXRhci1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWF2YXRhci1pY29uLXNpemUpO1xuICAgIH1cblxuICAgICYucC1hdmF0YXItY2lyY2xlLFxuICAgICYucC1hdmF0YXItY2lyY2xlIGltZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG5cbiAgICAmLnAtYXZhdGFyLWxnIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtYXZhdGFyLWxnLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWF2YXRhci1sZy1oZWlnaHQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYXZhdGFyLWxnLWZvbnQtc2l6ZSk7XG5cbiAgICAgICAgLnAtYXZhdGFyLWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWF2YXRhci1sZy1pY29uLXNpemUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWF2YXRhci14bCB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWF2YXRhci14bC13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1hdmF0YXIteGwtaGVpZ2h0KTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWF2YXRhci14bC1mb250LXNpemUpO1xuXG4gICAgICAgIC5wLWF2YXRhci1pY29uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1hdmF0YXIteGwtaWNvbi1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGR5bmFtaWNDb2xvcjogYmFja2dyb3VuZCBjb21lcyBpbmxpbmUgZnJvbSB0aGUgcmVuZGVyZXIsIHRleHQgY29sb3IgZGVwZW5kcyBvbiBpdHMgbGlnaHRuZXNzICovXG4gICAgJi5wLWF2YXRhci1kYXJrIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYXZhdGFyLWR5bmFtaWMtZGFyay1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLWF2YXRhci1saWdodCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWF2YXRhci1keW5hbWljLWxpZ2h0LWNvbG9yKTtcbiAgICB9XG59XG5cbi5wLWF2YXRhci1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBncm91cCAodGhlIDJweCByaW5nIHdpZHRoIGlzIGZpeGVkIGluIFByaW1lVUlYIHRvbykgKi9cbi5wLWF2YXRhci1ncm91cCAucC1hdmF0YXIge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXAtYXZhdGFyLWdyb3VwLWJvcmRlci1jb2xvcik7XG5cbiAgICArIC5wLWF2YXRhciB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtYXZhdGFyLWdyb3VwLW9mZnNldCk7XG4gICAgfVxuXG4gICAgJi5wLWF2YXRhci1sZyArIC5wLWF2YXRhci5wLWF2YXRhci1sZyB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtYXZhdGFyLWxnLWdyb3VwLW9mZnNldCk7XG4gICAgfVxuXG4gICAgJi5wLWF2YXRhci14bCArIC5wLWF2YXRhci5wLWF2YXRhci14bCB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtYXZhdGFyLXhsLWdyb3VwLW9mZnNldCk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBCbG9ja1VJOiBwOmJsb2NrVUlcbiAqIE1hcmt1cDogbWFzayBkaXYucC1ibG9ja3VpLnAtd2lkZ2V0LW92ZXJsYXkgKGFwcGVuZGVkIHRvIGJvZHksIHNpemVkL3Bvc2l0aW9uZWQgdG8gdGhlIHRhcmdldCBieSB0aGUgd2lkZ2V0KVxuICogICAgICAgICBjb250YWluaW5nIGRpdi5wLWJsb2NrdWktY29udGVudC5wLXdpZGdldC5wLXdpZGdldC1jb250ZW50IChvcHRpb25hbCBjb250ZW50KS5cbiAqICAgICAgICAgVGhlIHdpZGdldCBzZXRzIGFyaWEtYnVzeSBvbiB0aGUgYmxvY2tlZCB0YXJnZXQuXG4gKiBXaXRob3V0IGNvbnRlbnQgKG5vIGNoaWxkcmVuKSBhIHNwaW5uZXIgKC0tcC1ibG9ja3VpLWxvYWRpbmctaWNvbikgaXMgc2hvd24gY2VudGVyZWQgb24gdGhlIG1hc2suIFdpdGggc2V2ZXJhbFxuICogdGFyZ2V0cyB0aGUgY29udGVudCBpcyBvbmx5IGFwcGVuZGVkIHRvIG9uZSBtYXNrLCB0aGUgb3RoZXJzIGhhdmUgbm8gLnAtYmxvY2t1aS1jb250ZW50IGF0IGFsbC5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzIChzdHlsZUNsYXNzLCBlbmRzIHVwIG9uIGV2ZXJ5IG1hc2spOiBwLWJsb2NrdWktbGlnaHQgKGEgbGlnaHQgdHJhbnNsdWNlbnQgbWFzayBpbnN0ZWFkIG9mIHRoZVxuICogICAgICAgICAgICAgICAgICAgIG1vZGFsIG1hc2ssIGUuZy4gd2hpbGUgYSB0YWJsZSBvciBwYW5lbCBsb2FkcykuXG4gKiBQcmltZVVJWDogYmxvY2t1aSAoYm9yZGVyIHJhZGl1cykgKyBtYXNrIHRva2VuczsgUHJpbWVGYWNlcyBvbmx5IHRva2VuczogdGhlIGJsb2NrdWkgYmxvY2sgb2YgcHJlc2V0cy8qLmNzcy5cbiAqL1xuXG4ucC1ibG9ja3VpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgJi5wLXdpZGdldC1vdmVybGF5IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1ibG9ja3VpLW1hc2stYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJsb2NrdWktbWFzay1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYmxvY2t1aS1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAmLnAtd2lkZ2V0LW92ZXJsYXkucC1ibG9ja3VpLWxpZ2h0IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1ibG9ja3VpLWxpZ2h0LW1hc2stYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJsb2NrdWktbGlnaHQtbWFzay1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogbm8gY29udGVudDogYSBzcGlubmVyIGNlbnRlcmVkIG9uIHRoZSBtYXNrICovXG4gICAgJjpub3QoOmhhcyg+IC5wLWJsb2NrdWktY29udGVudDpub3QoOmVtcHR5KSkpOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcMjAwM1wiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJsb2NrdWktbG9hZGluZy1pY29uLXNpemUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1ibG9ja3VpLWxvYWRpbmctaWNvbi1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgICAgbWFzazogdmFyKC0tcC1ibG9ja3VpLWxvYWRpbmctaWNvbikgY2VudGVyIC8gY29udGFpbiBuby1yZXBlYXQ7XG4gICAgICAgIGFuaW1hdGlvbjogcC1zcGluIHZhcigtLXAtYmxvY2t1aS1sb2FkaW5nLWljb24tYW5pbWF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7XG4gICAgfVxuXG4gICAgJi5wLWJsb2NrdWktbGlnaHQ6bm90KDpoYXMoPiAucC1ibG9ja3VpLWNvbnRlbnQ6bm90KDplbXB0eSkpKTo6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYmxvY2t1aS1saWdodC1tYXNrLWNvbG9yKTtcbiAgICB9XG59XG5cbi5wLWJsb2NrdWktY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICYucC13aWRnZXQge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWJsb2NrdWktY29udGVudC1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1ibG9ja3VpLWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJsb2NrdWktY29udGVudC1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtYmxvY2t1aS1jb250ZW50LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYmxvY2t1aS1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWJsb2NrdWktY29udGVudC1zaGFkb3cpO1xuICAgIH1cbn1cbiIsICIvKlxuICogQnJlYWRDcnVtYjogcDpicmVhZENydW1iXG4gKlxuICogTWFya3VwOiBuYXYucC1icmVhZGNydW1iID4gb2wucC1icmVhZGNydW1iLWl0ZW1zID4gbGkgPiBhLnAtbWVudWl0ZW0tbGluayAoPiAucC1tZW51aXRlbS1pY29uLCAucC1tZW51aXRlbS10ZXh0KVxuICogICAgICAgICAoZGlzYWJsZWQgLyBsYXN0IGl0ZW06IHNwYW4ucC1tZW51aXRlbS1saW5rLnAtc3RhdGUtZGlzYWJsZWQpLCBsaS5wLWJyZWFkY3J1bWItb3B0aW9ucyAob3B0aW9ucyBmYWNldCkuXG4gKiAgICAgICAgIGhvbWVEaXNwbGF5PVwiaWNvblwiOiB0aGUgZmlyc3QgbGluayBpcyB0aGUgaWNvbiAoLnAtYnJlYWRjcnVtYi1ob21lLWljb24ucC1pY29uLnAtYnJlYWRjcnVtYi1ob21lLWljb24pLlxuICogU2VwYXJhdG9ycyBhcmUgcmVuZGVyZWQgd2l0aCA6OmJlZm9yZSBvbiBldmVyeSBsaSBleGNlcHQgdGhlIGZpcnN0IG9uZS5cbiAqIFRoZSBib3JkZXIgaXMgUHJpbWVGYWNlcyBvbmx5ICh0aGUgYnJlYWRjcnVtYiBibG9jayBvZiBwcmVzZXRzLyouY3NzKSwgUHJpbWVVSVggYnJlYWRjcnVtYiBoYXMgbm9uZS5cbiAqL1xuLnAtYnJlYWRjcnVtYiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1icmVhZGNydW1iLWJhY2tncm91bmQpO1xuICAgIGJvcmRlcjogdmFyKC0tcC1icmVhZGNydW1iLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcC1icmVhZGNydW1iLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1icmVhZGNydW1iLWJvcmRlci1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtYnJlYWRjcnVtYi1wYWRkaW5nKTtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucC1tZW51aXRlbS1saW5rIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5wLWJyZWFkY3J1bWItaXRlbXMge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgICAgbGkgLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0tZ2FwKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0tY29sb3IpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWJyZWFkY3J1bWItdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtYnJlYWRjcnVtYi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtYnJlYWRjcnVtYi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWJyZWFkY3J1bWItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLW1lbnVpdGVtLXRleHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1jb2xvcik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtbWVudWl0ZW0taWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWljb24tY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0taWNvbi1zaXplKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgLnAtbWVudWl0ZW0tdGV4dCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIC5wLW1lbnVpdGVtLWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1pY29uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogaG9tZSBpY29uIChob21lRGlzcGxheT1cImljb25cIik6IHRoZSBsaW5rIGl0c2VsZiBpcyB0aGUgaWNvbiAqL1xuICAgICAgICAgICAgJi5wLWJyZWFkY3J1bWItaG9tZS1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1icmVhZGNydW1iLWl0ZW0taWNvbi1jb2xvcik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWJyZWFkY3J1bWItaXRlbS1pY29uLXNpemUpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnJlYWRjcnVtYi1pdGVtLWljb24taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxpLnAtYnJlYWRjcnVtYi1vcHRpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzZXBhcmF0b3IgKi9cbiAgICAgICAgbGk6bm90KC5wLWJyZWFkY3J1bWItb3B0aW9ucykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBsaTpub3QoLnAtYnJlYWRjcnVtYi1vcHRpb25zKTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDAzXCI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICAgICAgbWFzazogdmFyKC0tcC1icmVhZGNydW1iLXNlcGFyYXRvci1pY29uKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLXAtYnJlYWRjcnVtYi1nYXApO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnJlYWRjcnVtYi1zZXBhcmF0b3ItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGk6bm90KC5wLWJyZWFkY3J1bWItb3B0aW9ucyk6ZGlyKHJ0bCk6OmJlZm9yZSB7XG4gICAgICAgICAgICBzY2FsZTogLTEgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGhvbWUgaWNvbjogb25seSB0aGUgaWNvbiBvZiB0aGUgbGluayBpcyBzaG93biAqL1xuICAgICAgICBsaTpmaXJzdC1jaGlsZCBhLnAtYnJlYWRjcnVtYi1ob21lLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1icmVhZGNydW1iLWhvbWUtaWNvbik7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLWJyZWFkY3J1bWItaG9tZS1pY29uIC5wLW1lbnVpdGVtLXRleHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCAiLypcbiAqIEJ1dHRvbjogcDpjb21tYW5kQnV0dG9uLCBwOmJ1dHRvbiwgcDpsaW5rQnV0dG9uLCAuLi5cbiAqXG4gKiBTZXZlcml0eSBjbGFzc2VzIG9ubHkgc3dpdGNoIHRoZSBwcml2YXRlIC0tXyogdmFyaWFibGVzLCB0aGUgdmlzdWFsIHJ1bGVzIGV4aXN0IG9uY2UuXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1idXR0b24tc2Vjb25kYXJ5IHwgLWluZm8gfCAtc3VjY2VzcyB8IC13YXJuaW5nIHwgLWhlbHAgfCAtZGFuZ2VyIHwgLWNvbnRyYXN0LFxuICogICAgICAgICAgICAgICAgICAgIHAtYnV0dG9uLW91dGxpbmVkLCBwLWJ1dHRvbi1mbGF0ICh0ZXh0KSwgcC1idXR0b24tcGxhaW4sIHAtYnV0dG9uLXJhaXNlZCxcbiAqICAgICAgICAgICAgICAgICAgICByb3VuZGVkLWJ1dHRvbiwgcC1idXR0b24tc20sIHAtYnV0dG9uLWxnXG4gKiBBbHNvOiBwLXN0YXRlLWxvYWRpbmcgKGlubGluZSBhamF4IHN0YXR1cyksIHAtYnV0dG9uc2V0IC8gcC1idXR0b24tZ3JvdXAsIHA6bWVudUJ1dHRvbiB0cmlnZ2VyLCBsaW5rcy5cbiAqL1xuXG4vKiBiZWZvcmUgdGhlIC5wLWJ1dHRvbiBydWxlczogaWNvbiBvbmx5IGJ1dHRvbnMga2VlcCB0aGVpciB3aWR0aCAoc2FtZSBzcGVjaWZpY2l0eSkgKi9cbi5wLWZsdWlkIHtcbiAgICAucC1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvKiB0aGUgb3B0aW9ucyBvZiBwOnNlbGVjdE9uZUJ1dHRvbiAvIHA6c2VsZWN0TWFueUJ1dHRvbiAocC1idXR0b25zZXQtTikgc2hhcmUgdGhlIHdpZHRoOiBmb3Jtcy9zZWxlY3RvbmVidXR0b24uY3NzICovXG4gICAgLnAtYnV0dG9uc2V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ucC1idXR0b24ge1xuICAgIC0tX2JnOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktaG92ZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1jb2xvcjogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktZm9jdXMtcmluZy1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIC0tX291dGxpbmVkLWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtcHJpbWFyeS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1wcmltYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXByaW1hcnktY29sb3IpO1xuICAgIC0tX3RleHQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXByaW1hcnktY29sb3IpO1xuICAgIC0tX3NoYWRvdzogdmFyKC0tcC1idXR0b24tc2hhZG93KTtcbiAgICAtLV9hY3RpdmUtc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1hY3RpdmUtc2hhZG93KTtcbiAgICAtLV9sYWJlbC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLWxhYmVsLXNoYWRvdyk7XG4gICAgLyogdGV4dHVyZSBsYXllciBhYm92ZSB0aGUgYmFja2dyb3VuZCAoZS5nLiBicnVzaGVkIG1ldGFsKSwgbm9uZSBieSBkZWZhdWx0ICovXG4gICAgLS1fdGV4dHVyZTogdmFyKC0tcC1idXR0b24tdGV4dHVyZSk7XG5cbiAgICAvKiAhaW1wb3J0YW50OiBhbHNvIGFnYWluc3QgdW5sYXllcmVkIGFwcGxpY2F0aW9uIHJ1bGVzIGxpa2UgYTpob3ZlciAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcC1idXR0b24tZ2FwKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtYnV0dG9uLXBhZGRpbmcteSkgdmFyKC0tcC1idXR0b24tcGFkZGluZy14KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLWJ1dHRvbi1mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tX3RleHR1cmUpLCB2YXIoLS1fYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLV9ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLV9zaGFkb3cpO1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIHRyYW5zbGF0ZSB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgIC5wLWJ1dHRvbi10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1idXR0b24tbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICB0ZXh0LXNoYWRvdzogdmFyKC0tX2xhYmVsLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLyogdGhlIGljb24gaXMgYSBmbGV4IGl0ZW0gKGFsc28gaWNvbnMgd2l0aG91dCBcIi5wLWNcIiwgZS5nLiBkYXRlcGlja2VyIHRyaWdnZXIsIG1lbnVCdXR0b24gZHJvcGRvd24gaWNvbikgKi9cbiAgICAucC1idXR0b24taWNvbi1sZWZ0LFxuICAgIC5wLWJ1dHRvbi1pY29uLXJpZ2h0LFxuICAgIC5wLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgIC5wLWJ1dHRvbi1pY29uLXJpZ2h0IHtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgfVxuXG4gICAgLyogaWNvbiBvbmx5OiBrZWVwIHRoZSAoaGlkZGVuKSBsYWJlbCBpbiB0aGUgZmxvdyBzbyB0aGUgaGVpZ2h0IG1hdGNoZXMgdGV4dCBidXR0b25zICovXG4gICAgJi5wLWJ1dHRvbi1pY29uLW9ubHkge1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgIGdhcDogMDtcblxuICAgICAgICAucC1idXR0b24tdGV4dCB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIC8qIGFuIGVtcHR5IGxhYmVsICh2YWx1ZT1cIlwiKSBtdXN0IHN0aWxsIGdpdmUgdGhlIGJ1dHRvbiB0aGUgaGVpZ2h0IG9mIGEgdGV4dCBidXR0b24gKi9cbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMWVtICogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnJvdW5kZWQtYnV0dG9uIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHA6bGlua0J1dHRvbiByZW5kZXJzIHNwYW4ucC1idXR0b24gPiBhICovXG4gICAgJi5wLWxpbmtidXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IHZhcigtLXAtYnV0dG9uLWdhcCk7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWJ1dHRvbi1wYWRkaW5nLXkpIHZhcigtLXAtYnV0dG9uLXBhZGRpbmcteCk7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHN0YXRlcyAqL1xuICAgICY6bm90KDpkaXNhYmxlZCwgLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX3RleHR1cmUpLCB2YXIoLS1faG92ZXItYmcpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLV9ob3Zlci1ib3JkZXIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tX2hvdmVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOm5vdCg6ZGlzYWJsZWQsIC5wLXN0YXRlLWRpc2FibGVkKTphY3RpdmUsXG4gICAgJi5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV90ZXh0dXJlKSwgdmFyKC0tX2FjdGl2ZS1iZyk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tX2FjdGl2ZS1ib3JkZXIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tX2FjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogcHJlc3NlZCAobm90IHRoZSBwZXJzaXN0ZW50IHAtc3RhdGUtYWN0aXZlIG9mIHRvZ2dsZSBidXR0b25zKTogZS5nLiBwdXNoZWQgaW50byB0aGUgc3VyZmFjZSAqL1xuICAgICY6bm90KDpkaXNhYmxlZCwgLnAtc3RhdGUtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9hY3RpdmUtc2hhZG93KTtcbiAgICAgICAgdHJhbnNsYXRlOiAwIHZhcigtLXAtYnV0dG9uLWFjdGl2ZS1vZmZzZXQpO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAmLnAtbGlua2J1dHRvbjpoYXMoPiBhOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tX2ZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1fZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQsXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC8qIGRpc2FibGVkIGF0dHJpYnV0ZSB3aXRob3V0IC5wLXN0YXRlLWRpc2FibGVkIChlLmcuIGRpc2FibGVkIGJ5IHRoZSBhamF4IHN0YXR1cyksIHNhbWUgbG9vayBhcyAucC1zdGF0ZS1kaXNhYmxlZCAqL1xuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiB2YXIoLS1wLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIH1cblxuICAgIC8qIGRyb3Bkb3duIGljb24gb2YgcDptZW51QnV0dG9uICovXG4gICAgLnAtYnV0dG9uLWRyb3Bkb3duLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWJ1dHRvbi1kcm9wZG93bi1pY29uKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIGlubGluZSBhamF4IHN0YXR1czogdGhlIGNvcmUgcHJlcGVuZHMgYSBzcGlubmVyIC5wLWljb24tbG9hZGluZyB3aGlsZSB0aGUgcmVxdWVzdCBydW5zLiBJdCB0YWtlcyB0aGUgcGxhY2Ugb2ZcbiAgICAgKiB0aGUgaWNvbiAoaXQgZ2V0cyBwLWJ1dHRvbi1pY29uLWxlZnQgLyAtcmlnaHQgbGlrZSBpdCk7IGEgYnV0dG9uIHdpdGhvdXQgaWNvbiBzaG93cyBpdCBuZXh0IHRvIHRoZSBsYWJlbC5cbiAgICAgKi9cbiAgICAmLnAtc3RhdGUtbG9hZGluZyA6aXMoLnAtYnV0dG9uLWljb24tbGVmdCwgLnAtYnV0dG9uLWljb24tcmlnaHQsIC5wLWljb24pOm5vdCgucC1pY29uLWxvYWRpbmcpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qIGJ1dHRvbiBncm91cHM6IC5wLWJ1dHRvbi1ncm91cCAoam9pbmVkIGJ1dHRvbnMpICovXG4vKlxuICogZmlyc3QgLyBsYXN0IGFyZSBjb3VudGVkIGFtb25nIHRoZSBidXR0b25zIG9ubHkgKFwib2YgLnAtYnV0dG9uXCIpOiBldmVyeSBQcmltZUZhY2VzIGJ1dHRvbiByZW5kZXJzIGl0cyB3aWRnZXRcbiAqIDxzY3JpcHQ+IHJpZ2h0IGFmdGVyIGl0c2VsZiwgc28gOmxhc3QtY2hpbGQgd291bGQgbmV2ZXIgYmUgdGhlIGxhc3QgYnV0dG9uLlxuICovXG4ucC1idXR0b24tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLyogcmFpc2VkOiBvbmUgc2hhZG93IGFyb3VuZCB0aGUgd2hvbGUgZ3JvdXAgKGxpa2UgUHJpbWVVSVgpICovXG4gICAgJjpoYXMoLnAtYnV0dG9uLXJhaXNlZCkge1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1yYWlzZWQtc2hhZG93KTtcbiAgICB9XG5cbiAgICAucC1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJjpub3QoOm50aC1sYXN0LWNoaWxkKDEgb2YgLnAtYnV0dG9uKSkge1xuICAgICAgICAgICAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1jaGlsZCgxIG9mIC5wLWJ1dHRvbikge1xuICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLXN0YXJ0LXJhZGl1czogdmFyKC0tcC1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKDEgb2YgLnAtYnV0dG9uKSB7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtYnV0dG9uLXJhaXNlZDpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLWJ1dHRvbnNldCAucC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbn1cblxuYnV0dG9uLnAtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLyogcDptZW51QnV0dG9uOiBzcGFuLnAtbWVudWJ1dHRvbiA+IGJ1dHRvbi5wLWJ1dHRvbiArIG92ZXJsYXkgLnAtbWVudSAoc3R5bGVkIGJ5IG1lbnUvbWVudS5iYXNlLmNzcykgKi9cbi5wLW1lbnVidXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLnAtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLyogc2V2ZXJpdGllcyAqL1xuLnAtYnV0dG9uLnAtYnV0dG9uLXNlY29uZGFyeSxcbjppcygucC1zcGxpdGJ1dHRvbiwgLnAtbWVudWJ1dHRvbikucC1idXR0b24tc2Vjb25kYXJ5ID4gLnAtYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlcjogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktZm9jdXMtcmluZy1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1fbGFiZWwtc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1sYWJlbC1zaGFkb3cpO1xuICAgIC0tX291dGxpbmVkLWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWJvcmRlcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXNlY29uZGFyeS1jb2xvcik7XG4gICAgLS1fdGV4dC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG59XG5cbi5wLWJ1dHRvbi5wLWJ1dHRvbi1pbmZvLFxuOmlzKC5wLXNwbGl0YnV0dG9uLCAucC1tZW51YnV0dG9uKS5wLWJ1dHRvbi1pbmZvID4gLnAtYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC1idXR0b24taW5mby1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ob3Zlci1iZzogdmFyKC0tcC1idXR0b24taW5mby1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLWluZm8tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlcjogdmFyKC0tcC1idXR0b24taW5mby1ib3JkZXItY29sb3IpO1xuICAgIC0tX2hvdmVyLWJvcmRlcjogdmFyKC0tcC1idXR0b24taW5mby1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLWluZm8tYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtYnV0dG9uLWluZm8tY29sb3IpO1xuICAgIC0tX2hvdmVyLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1pbmZvLWhvdmVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtYnV0dG9uLWluZm8tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1pbmZvLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1pbmZvLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAtLV9vdXRsaW5lZC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtaW5mby1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWluZm8tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWJvcmRlcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtaW5mby1ib3JkZXItY29sb3IpO1xuICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1pbmZvLWNvbG9yKTtcbiAgICAtLV90ZXh0LWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWluZm8taG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtaW5mby1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1jb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1pbmZvLWNvbG9yKTtcbn1cblxuLnAtYnV0dG9uLnAtYnV0dG9uLXN1Y2Nlc3MsXG46aXMoLnAtc3BsaXRidXR0b24sIC5wLW1lbnVidXR0b24pLnAtYnV0dG9uLXN1Y2Nlc3MgPiAucC1idXR0b24ge1xuICAgIC0tX2JnOiB2YXIoLS1wLWJ1dHRvbi1zdWNjZXNzLWJhY2tncm91bmQpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1zdWNjZXNzLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tc3VjY2Vzcy1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1zdWNjZXNzLWJvcmRlci1jb2xvcik7XG4gICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1zdWNjZXNzLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC1idXR0b24tc3VjY2Vzcy1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1idXR0b24tc3VjY2Vzcy1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLXN1Y2Nlc3MtaG92ZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1jb2xvcjogdmFyKC0tcC1idXR0b24tc3VjY2Vzcy1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtYnV0dG9uLXN1Y2Nlc3MtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXN1Y2Nlc3MtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIC0tX291dGxpbmVkLWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1zdWNjZXNzLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtc3VjY2Vzcy1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1zdWNjZXNzLWJvcmRlci1jb2xvcik7XG4gICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXN1Y2Nlc3MtY29sb3IpO1xuICAgIC0tX3RleHQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtc3VjY2Vzcy1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1zdWNjZXNzLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXN1Y2Nlc3MtY29sb3IpO1xufVxuXG4ucC1idXR0b24ucC1idXR0b24td2FybmluZyxcbjppcygucC1zcGxpdGJ1dHRvbiwgLnAtbWVudWJ1dHRvbikucC1idXR0b24td2FybmluZyA+IC5wLWJ1dHRvbiB7XG4gICAgLS1fYmc6IHZhcigtLXAtYnV0dG9uLXdhcm4tYmFja2dyb3VuZCk7XG4gICAgLS1faG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLXdhcm4taG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi13YXJuLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXdhcm4tYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLXdhcm4taG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi13YXJuLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1wLWJ1dHRvbi13YXJuLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tcC1idXR0b24td2Fybi1ob3Zlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi13YXJuLWFjdGl2ZS1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1idXR0b24td2Fybi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1idXR0b24td2Fybi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1fb3V0bGluZWQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXdhcm4taG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC13YXJuLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXdhcm4tYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtd2Fybi1jb2xvcik7XG4gICAgLS1fdGV4dC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tdGV4dC13YXJuLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXdhcm4tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtd2Fybi1jb2xvcik7XG59XG5cbi5wLWJ1dHRvbi5wLWJ1dHRvbi1oZWxwLFxuOmlzKC5wLXNwbGl0YnV0dG9uLCAucC1tZW51YnV0dG9uKS5wLWJ1dHRvbi1oZWxwID4gLnAtYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC1idXR0b24taGVscC1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ob3Zlci1iZzogdmFyKC0tcC1idXR0b24taGVscC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLWhlbHAtYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlcjogdmFyKC0tcC1idXR0b24taGVscC1ib3JkZXItY29sb3IpO1xuICAgIC0tX2hvdmVyLWJvcmRlcjogdmFyKC0tcC1idXR0b24taGVscC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLWhlbHAtYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtYnV0dG9uLWhlbHAtY29sb3IpO1xuICAgIC0tX2hvdmVyLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1oZWxwLWhvdmVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtYnV0dG9uLWhlbHAtYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1oZWxwLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1oZWxwLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAtLV9vdXRsaW5lZC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtaGVscC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWhlbHAtYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX291dGxpbmVkLWJvcmRlcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtaGVscC1ib3JkZXItY29sb3IpO1xuICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1oZWxwLWNvbG9yKTtcbiAgICAtLV90ZXh0LWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWhlbHAtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLXRleHQtaGVscC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1jb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1oZWxwLWNvbG9yKTtcbn1cblxuLnAtYnV0dG9uLnAtYnV0dG9uLWRhbmdlcixcbjppcygucC1zcGxpdGJ1dHRvbiwgLnAtbWVudWJ1dHRvbikucC1idXR0b24tZGFuZ2VyID4gLnAtYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC1idXR0b24tZGFuZ2VyLWJhY2tncm91bmQpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1kYW5nZXItaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1kYW5nZXItYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlcjogdmFyKC0tcC1idXR0b24tZGFuZ2VyLWJvcmRlci1jb2xvcik7XG4gICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1kYW5nZXItaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1kYW5nZXItYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1ob3Zlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1kYW5nZXItYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1kYW5nZXItZm9jdXMtcmluZy1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLWRhbmdlci1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1fb3V0bGluZWQtaG92ZXItYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWRhbmdlci1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1kYW5nZXItYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtZGFuZ2VyLWNvbG9yKTtcbiAgICAtLV90ZXh0LWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1kYW5nZXItYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtZGFuZ2VyLWNvbG9yKTtcbn1cblxuLnAtYnV0dG9uLnAtYnV0dG9uLWNvbnRyYXN0LFxuOmlzKC5wLXNwbGl0YnV0dG9uLCAucC1tZW51YnV0dG9uKS5wLWJ1dHRvbi1jb250cmFzdCA+IC5wLWJ1dHRvbiB7XG4gICAgLS1fYmc6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWJhY2tncm91bmQpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXI6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWJvcmRlci1jb2xvcik7XG4gICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1jb250cmFzdC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1wLWJ1dHRvbi1jb250cmFzdC1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWhvdmVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWFjdGl2ZS1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1idXR0b24tY29udHJhc3QtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgLS1fZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLWNvbnRyYXN0LWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAtLV9vdXRsaW5lZC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtY29udHJhc3QtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1jb250cmFzdC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fb3V0bGluZWQtYm9yZGVyOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1jb250cmFzdC1ib3JkZXItY29sb3IpO1xuICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1jb250cmFzdC1jb2xvcik7XG4gICAgLS1fdGV4dC1ob3Zlci1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWFjdGl2ZS1iZzogdmFyKC0tcC1idXR0b24tdGV4dC1jb250cmFzdC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1fdGV4dC1jb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1jb250cmFzdC1jb2xvcik7XG59XG5cbi8qIHBsYWluOiBuZXV0cmFsIGNvbG9ycyBmb3Igb3V0bGluZWQgLyB0ZXh0IGJ1dHRvbnMgKi9cbi5wLWJ1dHRvbi5wLWJ1dHRvbi1wbGFpbixcbjppcygucC1zcGxpdGJ1dHRvbiwgLnAtbWVudWJ1dHRvbikucC1idXR0b24tcGxhaW4gPiAucC1idXR0b24ge1xuICAgIC0tX291dGxpbmVkLWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1wbGFpbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1hY3RpdmUtYmc6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXBsYWluLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9vdXRsaW5lZC1ib3JkZXI6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXBsYWluLWJvcmRlci1jb2xvcik7XG4gICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLXBsYWluLWNvbG9yKTtcbiAgICAtLV90ZXh0LWhvdmVyLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXBsYWluLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIC0tX3RleHQtYWN0aXZlLWJnOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXBsYWluLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV90ZXh0LWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXBsYWluLWNvbG9yKTtcbn1cblxuLyogdmFyaWFudHM6IHRoZXkgb25seSByZW1hcCB0aGUgYmFzZSB2YXJpYWJsZXMsIHNvIGFsbCBzdGF0ZXMgYWJvdmUga2VlcCB3b3JraW5nICovXG4ucC1idXR0b24ucC1idXR0b24tb3V0bGluZWQsXG46aXMoLnAtc3BsaXRidXR0b24sIC5wLW1lbnVidXR0b24pLnAtYnV0dG9uLW91dGxpbmVkID4gLnAtYnV0dG9uIHtcbiAgICAtLV9iZzogdmFyKC0tcC1idXR0b24tb3V0bGluZWQtYmFja2dyb3VuZCk7XG4gICAgLS1fbGFiZWwtc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1sYWJlbC1zaGFkb3cpO1xuICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1fb3V0bGluZWQtaG92ZXItYmcpO1xuICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tX291dGxpbmVkLWFjdGl2ZS1iZyk7XG4gICAgLS1fYm9yZGVyOiB2YXIoLS1fb3V0bGluZWQtYm9yZGVyKTtcbiAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLV9vdXRsaW5lZC1ib3JkZXIpO1xuICAgIC0tX2FjdGl2ZS1ib3JkZXI6IHZhcigtLV9vdXRsaW5lZC1ib3JkZXIpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1fb3V0bGluZWQtY29sb3IpO1xuICAgIC0tX2hvdmVyLWNvbG9yOiB2YXIoLS1fb3V0bGluZWQtY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1jb2xvcjogdmFyKC0tX291dGxpbmVkLWNvbG9yKTtcbn1cblxuLnAtYnV0dG9uLnAtYnV0dG9uLWZsYXQsXG46aXMoLnAtc3BsaXRidXR0b24sIC5wLW1lbnVidXR0b24pLnAtYnV0dG9uLWZsYXQgPiAucC1idXR0b24ge1xuICAgIC0tX2JnOiB0cmFuc3BhcmVudDtcbiAgICAtLV9ob3Zlci1iZzogdmFyKC0tX3RleHQtaG92ZXItYmcpO1xuICAgIC0tX2FjdGl2ZS1iZzogdmFyKC0tX3RleHQtYWN0aXZlLWJnKTtcbiAgICAtLV9ib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgIC0tX2hvdmVyLWJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgLS1fYWN0aXZlLWJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgLS1fc2hhZG93OiBub25lO1xuICAgIC0tX2FjdGl2ZS1zaGFkb3c6IG5vbmU7XG4gICAgLS1fdGV4dHVyZTogbm9uZTtcbiAgICAtLV9sYWJlbC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLW91dGxpbmVkLWxhYmVsLXNoYWRvdyk7XG4gICAgLS1fY29sb3I6IHZhcigtLV90ZXh0LWNvbG9yKTtcbiAgICAtLV9ob3Zlci1jb2xvcjogdmFyKC0tX3RleHQtY29sb3IpO1xuICAgIC0tX2FjdGl2ZS1jb2xvcjogdmFyKC0tX3RleHQtY29sb3IpO1xufVxuXG4ucC1idXR0b24ucC1idXR0b24tcmFpc2VkLFxuOmlzKC5wLXNwbGl0YnV0dG9uLCAucC1tZW51YnV0dG9uKS5wLWJ1dHRvbi1yYWlzZWQgPiAucC1idXR0b24ge1xuICAgIC0tX3NoYWRvdzogdmFyKC0tcC1idXR0b24tcmFpc2VkLXNoYWRvdyk7XG4gICAgLS1fYWN0aXZlLXNoYWRvdzogdmFyKC0tcC1idXR0b24tcmFpc2VkLXNoYWRvdyk7XG59XG5cbi8qIHNoYXBlIGFuZCBzaXplcyAoYWZ0ZXIgdGhlIGdyb3Vwcywgc28gLnJvdW5kZWQtYnV0dG9uIHdpbnMgb3ZlciBcIi5wLWJ1dHRvbi1ncm91cCAucC1idXR0b25cIikgKi9cbi5wLWJ1dHRvbiB7XG4gICAgJi5yb3VuZGVkLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYnV0dG9uLXJvdW5kZWQtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgJi5wLWJ1dHRvbi1zbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1idXR0b24tc20tZm9udC1zaXplKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1idXR0b24tc20tcGFkZGluZy15KSB2YXIoLS1wLWJ1dHRvbi1zbS1wYWRkaW5nLXgpO1xuXG4gICAgICAgIC5wLWJ1dHRvbi1pY29uLWxlZnQsXG4gICAgICAgIC5wLWJ1dHRvbi1pY29uLXJpZ2h0LFxuICAgICAgICAucC1pY29uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1idXR0b24tc20tZm9udC1zaXplKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1idXR0b24taWNvbi1vbmx5IHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1zbS1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG5cbiAgICAgICAgICAgICYucm91bmRlZC1idXR0b24ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24tc20taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1idXR0b24tbGcge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYnV0dG9uLWxnLWZvbnQtc2l6ZSk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYnV0dG9uLWxnLXBhZGRpbmcteSkgdmFyKC0tcC1idXR0b24tbGctcGFkZGluZy14KTtcblxuICAgICAgICAucC1idXR0b24taWNvbi1sZWZ0LFxuICAgICAgICAucC1idXR0b24taWNvbi1yaWdodCxcbiAgICAgICAgLnAtaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYnV0dG9uLWxnLWZvbnQtc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtYnV0dG9uLWljb24tb25seSB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24tbGctaWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuXG4gICAgICAgICAgICAmLnJvdW5kZWQtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYnV0dG9uLWxnLWljb24tb25seS13aWR0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBwOmxpbmtCdXR0b246IHRoZSBwYWRkaW5nIHNpdHMgb24gdGhlIGlubmVyIGxpbmsgKHNlZSBhYm92ZSksIGFsc28gZm9yIHRoZSBzaXplcyBhbmQgaWNvbiBvbmx5ICovXG4gICAgJi5wLWxpbmtidXR0b24ge1xuICAgICAgICAmLnAtYnV0dG9uLXNtLFxuICAgICAgICAmLnAtYnV0dG9uLWxnIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtYnV0dG9uLXNtID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWJ1dHRvbi1zbS1wYWRkaW5nLXkpIHZhcigtLXAtYnV0dG9uLXNtLXBhZGRpbmcteCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtYnV0dG9uLWxnID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWJ1dHRvbi1sZy1wYWRkaW5nLXkpIHZhcigtLXAtYnV0dG9uLWxnLXBhZGRpbmcteCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtYnV0dG9uLWljb24tb25seSA+IGEge1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgIGdhcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWJhZGdlIHtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1iYWRnZS1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1iYWRnZS1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtYnV0dG9uLWJhZGdlLXNpemUpO1xuICAgIH1cbn1cblxuLyogbGlua3MgKi9cbi5wLWNvbW1hbmRsaW5rLFxuLnAtbGluayB7XG4gICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLWxpbmstY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYm9yZGVyLXJhZGl1cy14cyk7XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLWxpbmstaG92ZXItY29sb3IpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1saW5rLWFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxufVxuXG4vKiBwOmNvbW1hbmRMaW5rIGlubGluZSBhamF4IHN0YXR1czogdGhlIHdpZGdldCBhZGRzIHAtc3RhdGUtbG9hZGluZyAoKyBwLXN0YXRlLWRpc2FibGVkKSB3aGlsZSBpdHMgcmVxdWVzdCBydW5zLFxuICAgYSBzcGlubmVyIGZvbGxvd3MgdGhlIHRleHQgKHRoZSBpbmxpbmUgYWpheCBzdGF0dXMgdG9rZW5zLCBhamF4c3RhdHVzL2FqYXhzdGF0dXMuY3NzKSAqL1xuLnAtY29tbWFuZGxpbmsucC1zdGF0ZS1sb2FkaW5nIHtcbiAgICBjdXJzb3I6IHByb2dyZXNzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcXDIwMDNcIjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1idXR0b24tbGluay1sb2FkaW5nLWljb24tZ2FwKTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgICAgIG1hc2s6IHZhcigtLXAtYnV0dG9uLWxpbmstbG9hZGluZy1pY29uKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDtcbiAgICAgICAgYW5pbWF0aW9uOiBwLXNwaW4gdmFyKC0tcC1hamF4c3RhdHVzLWxvYWRpbmctaWNvbi1hbmltYXRpb24tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG59XG4iLCAiLypcbiAqIENhcmQ6IHA6Y2FyZCAoaGVhZGVyIGZhY2V0L2ltYWdlLCB0aXRsZSwgc3VidGl0bGUsIGNvbnRlbnQsIGZvb3RlcilcbiAqL1xuXG4ucC1jYXJkLWhlYWRlciBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucC1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1jYXJkLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWNhcmQtY29sb3IpO1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtY2FyZC1zaGFkb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY2FyZC1ib3JkZXItcmFkaXVzKTtcblxuICAgIC8qIGhlYWRlciAoaW1hZ2UpOiBjbGlwcGVkIHRvIHRoZSByb3VuZGVkIHRvcCBjb3JuZXJzIG9mIHRoZSBjYXJkICovXG4gICAgLnAtY2FyZC1oZWFkZXIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWNhcmQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLWNhcmQtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtY2FyZC1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLWNhcmQtYm9keS1nYXApO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWNhcmQtYm9keS1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAucC1jYXJkLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2FyZC10aXRsZS1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jYXJkLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAucC1jYXJkLXN1YnRpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jYXJkLXN1YnRpdGxlLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNhcmQtc3VidGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtY2FyZC1zdWJ0aXRsZS1mb250LXdlaWdodCk7XG4gICAgfVxuXG4gICAgLyogdGl0bGUgKyBzdWJ0aXRsZSBmb3JtIHRoZSBQcmltZVVJWCBjYXB0aW9uOiB0aGV5IHNpdCBjbG9zZXIgdG9nZXRoZXIgKi9cbiAgICAucC1jYXJkLXRpdGxlICsgLnAtY2FyZC1zdWJ0aXRsZSB7XG4gICAgICAgIC8qIG5vIHRva2VuOiByZXBsYWNlcyB0aGUgYm9keSBnYXAgd2l0aCB0aGUgY2FwdGlvbiBnYXAgKi9cbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1wLWNhcmQtY2FwdGlvbi1nYXApIC0gdmFyKC0tcC1jYXJkLWJvZHktZ2FwKSk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBDYXJvdXNlbDogcDpjYXJvdXNlbFxuICpcbiAqIFByZXYvbmV4dCBidXR0b25zIGFyZSBzdHlsZWQgbGlrZSBhIHJvdW5kZWQgc2Vjb25kYXJ5IHRleHQgYnV0dG9uIChhcyBQcmltZVVJWCBkb2VzKSwgaW5kaWNhdG9ycyB1c2UgdGhlIGNhcm91c2VsIHRva2Vucy5cbiAqIEljb25zOiBwLWNhcm91c2VsLXByZXYtaWNvbiAvIHAtY2Fyb3VzZWwtbmV4dC1pY29uICh2ZXJ0aWNhbDogcC1jYXJvdXNlbC1wcmV2LXZlcnRpY2FsLWljb24gLyBwLWNhcm91c2VsLW5leHQtdmVydGljYWwtaWNvbikuXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1jYXJvdXNlbC1ob3Jpem9udGFsLCBwLWNhcm91c2VsLXZlcnRpY2FsXG4gKi9cbi5wLWNhcm91c2VsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAucC1jYXJvdXNlbC1jb250ZW50IHtcbiAgICAgICAgLnAtY2Fyb3VzZWwtcHJldixcbiAgICAgICAgLnAtY2Fyb3VzZWwtbmV4dCB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tcC1jYXJvdXNlbC1jb250ZW50LWdhcCk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1jYXJvdXNlbC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2Fyb3VzZWwtcHJldi1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtY2Fyb3VzZWwtcHJldi1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNhcm91c2VsLW5leHQtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWNhcm91c2VsLW5leHQtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jYXJvdXNlbC1wcmV2LXZlcnRpY2FsLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jYXJvdXNlbC1wcmV2LXZlcnRpY2FsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2Fyb3VzZWwtbmV4dC12ZXJ0aWNhbC1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtY2Fyb3VzZWwtbmV4dC12ZXJ0aWNhbC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNhcm91c2VsLXByZXY6aG92ZXIsXG4gICAgICAgIC5wLWNhcm91c2VsLW5leHQ6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2Fyb3VzZWwtcHJldjphY3RpdmUsXG4gICAgICAgIC5wLWNhcm91c2VsLW5leHQ6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNhcm91c2VsLXByZXY6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgLnAtY2Fyb3VzZWwtbmV4dDpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jYXJvdXNlbC1wcmV2LnAtc3RhdGUtZGlzYWJsZWQsXG4gICAgICAgIC5wLWNhcm91c2VsLW5leHQucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiB2YXIoLS1wLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc3BhY2luZyBiZXR3ZWVuIGluZGljYXRvcnMgY29tZXMgZnJvbSB0aGUgZ2FwIG9mIHRoZSBsaXN0ICovXG4gICAgLnAtY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtY2Fyb3VzZWwtaW5kaWNhdG9yLWxpc3QtcGFkZGluZyk7XG4gICAgICAgIGdhcDogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItbGlzdC1nYXApO1xuXG4gICAgICAgIC5wLWNhcm91c2VsLWluZGljYXRvciB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtY2Fyb3VzZWwtaW5kaWNhdG9yLXdpZHRoKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtY2Fyb3VzZWwtaW5kaWNhdG9yLWhlaWdodCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtY2Fyb3VzZWwtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1jYXJvdXNlbC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhcm91c2VsLWluZGljYXRvci1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtY2Fyb3VzZWwtaW5kaWNhdG9yLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtY2Fyb3VzZWwtaW5kaWNhdG9yLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtY2Fyb3VzZWwtaW5kaWNhdG9yLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWNhcm91c2VsLWluZGljYXRvci1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jYXJvdXNlbC1pbmRpY2F0b3ItYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29udHJhc3QtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1jYXJvdXNlbC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5wLWNhcm91c2VsLXByZXYsXG4ucC1jYXJvdXNlbC1uZXh0IHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wLWNhcm91c2VsLXByZXYucC1zdGF0ZS1kaXNhYmxlZCxcbi5wLWNhcm91c2VsLW5leHQucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5wLWNhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4ucC1jYXJvdXNlbC1pdGVtcy1jb250ZW50IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucC1jYXJvdXNlbC1pdGVtcy1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLnAtY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLnAtY2Fyb3VzZWwtaW5kaWNhdG9yID4gYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmLnAtbGluayB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG59XG5cbi5wLWNhcm91c2VsLXZlcnRpY2FsIHtcbiAgICAucC1jYXJvdXNlbC1jb250YWluZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5wLWNhcm91c2VsLWl0ZW1zLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG59XG5cbi8qIGtleWJvYXJkIHN1cHBvcnQ6IG9ubHkgdGhlIHZpc2libGUgaXRlbXMgYXJlIGZvY3VzYWJsZSAqL1xuLnAtaXRlbXMtaGlkZGVuIC5wLWNhcm91c2VsLWl0ZW0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICYucC1jYXJvdXNlbC1pdGVtLWFjdGl2ZSB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBDYXNjYWRlU2VsZWN0OiBwOmNhc2NhZGVTZWxlY3RcbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1zdGF0ZS1mb2N1cywgcC1zdGF0ZS1lcnJvciwgcC1zdGF0ZS1kaXNhYmxlZCwgcC1pbnB1dC1maWxsZWQgKG9uIGEgcGFyZW50KSxcbiAqICAgICAgICAgICAgICAgICAgICBwLWNhc2NhZGVzZWxlY3Qtc20sIHAtY2FzY2FkZXNlbGVjdC1sZyAoc3R5bGVDbGFzcylcbiAqIExhYmVsOiAucC1jYXNjYWRlc2VsZWN0LWxhYmVsICgrIHAtY2FzY2FkZXNlbGVjdC1sYWJlbC1wbGFjZWhvbGRlciB3aGlsZSBpdCBzaG93cyB0aGUgcGxhY2Vob2xkZXIpOyBpdCBpcyBhbHNvIGFcbiAqIC5wLWlucHV0ZmllbGQsIHNvIGl0cyBpbnB1dCBsb29rIChib3JkZXIsIGJhY2tncm91bmQsIGZvY3VzIHJpbmcpIGlzIHJlc2V0IGhlcmUuXG4gKiBJdGVtczogcC1zdGF0ZS1oaWdobGlnaHQgKGV4cGFuZGVkIC8gZm9jdXNlZCksIHAtc3RhdGUtYWN0aXZlIChzZWxlY3RlZCkuIEljb25zOiBwLWNhc2NhZGVzZWxlY3QtZHJvcGRvd24taWNvbixcbiAqIHAtY2FzY2FkZXNlbGVjdC1ncm91cC1pY29uLlxuICovXG4ucC1jYXNjYWRlc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtY2FzY2FkZXNlbGVjdC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtc2hhZG93KTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtY2FzY2FkZXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1jYXNjYWRlc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1jYXNjYWRlc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtY2FzY2FkZXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKS5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtY2FzY2FkZXNlbGVjdC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIGludmFsaWQ6IHRoZSBib3JkZXIgYWxzbyB3aW5zIG92ZXIgaG92ZXIgYW5kIGZvY3VzIChzYW1lIHNwZWNpZmljaXR5LCBsYXRlciksIHRoZSBmb2N1cyByaW5nIHN0YXlzICovXG4gICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICYucC1zdGF0ZS1lcnJvcjppcyg6aG92ZXIsIC5wLXN0YXRlLWZvY3VzKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLyogbGFiZWw6IHJlc2V0IHRoZSAucC1pbnB1dGZpZWxkIGxvb2sgaW4gZXZlcnkgc3RhdGUsIHRoZSB3cmFwcGVyIGRyYXdzIGJvcmRlciBhbmQgYmFja2dyb3VuZCAqL1xuICAgIC5wLWNhc2NhZGVzZWxlY3QtbGFiZWwucC1pbnB1dGZpZWxkLFxuICAgIC5wLWNhc2NhZGVzZWxlY3QtbGFiZWwucC1pbnB1dGZpZWxkOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIsXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1sYWJlbC5wLWlucHV0ZmllbGQ6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5wLWNhc2NhZGVzZWxlY3QtbGFiZWwucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtcGFkZGluZy14KTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1mb250LXdlaWdodCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtY29sb3IpO1xuICAgIH1cblxuICAgIC5wLWNhc2NhZGVzZWxlY3QtbGFiZWwucC1pbnB1dGZpZWxkLnAtY2FzY2FkZXNlbGVjdC1sYWJlbC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1lcnJvciAucC1jYXNjYWRlc2VsZWN0LWxhYmVsLnAtaW5wdXRmaWVsZC5wLWNhc2NhZGVzZWxlY3QtbGFiZWwtcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWludmFsaWQtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1jYXNjYWRlc2VsZWN0LWxhYmVsLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZGlzYWJsZWQtY29sb3IpO1xuICAgIH1cblxuICAgIC5wLWNhc2NhZGVzZWxlY3QtZHJvcGRvd24taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1kcm9wZG93bi1pY29uKTtcbiAgICB9XG5cbiAgICAucC1jYXNjYWRlc2VsZWN0LXRyaWdnZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1kcm9wZG93bi1jb2xvcik7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZHJvcGRvd24td2lkdGgpO1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAvKiBzaXplcyAoc3R5bGVDbGFzcyk6IHRoZSBzaXplIHRva2VucyByZXBsYWNlIHRoZSBiYXNlIG9uZXMsIHRoZSBpY29uIGZvbGxvd3MgKi9cbiAgICAmLnAtY2FzY2FkZXNlbGVjdC1zbSB7XG4gICAgICAgIC0tcC1jYXNjYWRlc2VsZWN0LWZvbnQtc2l6ZTogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LXNtLWZvbnQtc2l6ZSk7XG4gICAgICAgIC0tcC1jYXNjYWRlc2VsZWN0LXBhZGRpbmcteDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LXNtLXBhZGRpbmcteCk7XG4gICAgICAgIC0tcC1jYXNjYWRlc2VsZWN0LXBhZGRpbmcteTogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LXNtLXBhZGRpbmcteSk7XG4gICAgfVxuXG4gICAgJi5wLWNhc2NhZGVzZWxlY3QtbGcge1xuICAgICAgICAtLXAtY2FzY2FkZXNlbGVjdC1mb250LXNpemU6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1sZy1mb250LXNpemUpO1xuICAgICAgICAtLXAtY2FzY2FkZXNlbGVjdC1wYWRkaW5nLXg6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1sZy1wYWRkaW5nLXgpO1xuICAgICAgICAtLXAtY2FzY2FkZXNlbGVjdC1wYWRkaW5nLXk6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1sZy1wYWRkaW5nLXkpO1xuICAgIH1cblxuICAgICYucC1jYXNjYWRlc2VsZWN0LXNtIC5wLWNhc2NhZGVzZWxlY3QtdHJpZ2dlciAucC1jYXNjYWRlc2VsZWN0LXRyaWdnZXItaWNvbixcbiAgICAmLnAtY2FzY2FkZXNlbGVjdC1sZyAucC1jYXNjYWRlc2VsZWN0LXRyaWdnZXIgLnAtY2FzY2FkZXNlbGVjdC10cmlnZ2VyLWljb24ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1mb250LXNpemUpO1xuICAgIH1cbn1cblxuLnAtY2FzY2FkZXNlbGVjdC10cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5wLWNhc2NhZGVzZWxlY3QtbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB3aWR0aDogMSU7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKiBubyB2YWx1ZSBhbmQgbm8gcGxhY2Vob2xkZXI6IGFuIGVtcHR5IGJsb2NrIGhhcyBubyBsaW5lIGJveCwgdGhlIGZpZWxkIGtlZXBzIGl0cyBoZWlnaHQgKi9cbi5wLWNhc2NhZGVzZWxlY3QtbGFiZWw6ZW1wdHk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDIwMGJcIjtcbn1cblxuLyogb3ZlcmxheTogdGhlIHJvb3QgcGFuZWwgYW5kIGV2ZXJ5IChzdWIpbGlzdCBjYXJyeSBwLWNhc2NhZGVzZWxlY3QtcGFuZWwgKi9cbi5wLWNhc2NhZGVzZWxlY3QtcGFuZWwge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW92ZXJsYXktYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vdmVybGF5LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3ZlcmxheS1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vdmVybGF5LWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vdmVybGF5LXNoYWRvdyk7XG5cbiAgICAucC1jYXNjYWRlc2VsZWN0LWl0ZW1zIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWxpc3QtcGFkZGluZyk7XG4gICAgfVxufVxuXG4ucC1jYXNjYWRlc2VsZWN0LWl0ZW1zIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5wLWNhc2NhZGVzZWxlY3QtaXRlbSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5wLWNhc2NhZGVzZWxlY3QtaXRlbS1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAucC1jYXNjYWRlc2VsZWN0LWdyb3VwLWljb24ge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgIH1cbn1cblxuLnAtY2FzY2FkZXNlbGVjdC1wYW5lbCAucC1jYXNjYWRlc2VsZWN0LWl0ZW1zIC5wLWNhc2NhZGVzZWxlY3QtaXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24tZm9udC1zaXplKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1mb250LXdlaWdodCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICYgKyAucC1jYXNjYWRlc2VsZWN0LWl0ZW0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtbGlzdC1nYXApO1xuICAgIH1cblxuICAgIC5wLWNhc2NhZGVzZWxlY3QtaXRlbS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKC0xICogdmFyKC0tcC1mb2N1cy1yaW5nLXdpZHRoKSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHAtc3RhdGUtaGlnaGxpZ2h0ID0gdGhlIGFjdGl2ZSAoZXhwYW5kZWQpIGl0ZW0gKi9cbiAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLWZvY3VzLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICY6bm90KC5wLXN0YXRlLWhpZ2hsaWdodCk6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAvKiBwLXN0YXRlLWFjdGl2ZSA9IHRoZSBzZWxlY3RlZCBpdGVtICh0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCkgKi9cbiAgICAmLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQsXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtY2FzY2FkZXNlbGVjdC1ncm91cC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWdyb3VwLWljb24pO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24taWNvbi1zaXplKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1vcHRpb24taWNvbi1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWhpZ2hsaWdodCA+IC5wLWNhc2NhZGVzZWxlY3QtaXRlbS1jb250ZW50IC5wLWNhc2NhZGVzZWxlY3QtZ3JvdXAtaWNvbixcbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgPiAucC1jYXNjYWRlc2VsZWN0LWl0ZW0tY29udGVudCAucC1jYXNjYWRlc2VsZWN0LWdyb3VwLWljb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LW9wdGlvbi1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICB9XG59XG5cbi8qIHN1Ymxpc3RzIGFyZSBwb3NpdGlvbmVkIGJ5IHRoZSB3aWRnZXQgKGlubGluZSBsZWZ0IC8gdG9wKSAqL1xuLnAtY2FzY2FkZXNlbGVjdC1zdWJsaXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnAtY2FzY2FkZXNlbGVjdC1pdGVtLWFjdGl2ZSA+IC5wLWNhc2NhZGVzZWxlY3Qtc3VibGlzdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGVmdDogMTAwJTtcbiAgICB0b3A6IDA7XG59XG5cbi8qIGZpbGxlZCAqL1xuLnAtaW5wdXQtZmlsbGVkIC5wLWNhc2NhZGVzZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2FzY2FkZXNlbGVjdC1maWxsZWQtYmFja2dyb3VuZCk7XG5cbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNhc2NhZGVzZWxlY3QtZmlsbGVkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKS5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jYXNjYWRlc2VsZWN0LWZpbGxlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICB9XG59XG5cbi5wLWZsdWlkIC5wLWNhc2NhZGVzZWxlY3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAucC1jYXNjYWRlc2VsZWN0LWxhYmVsIHtcbiAgICAgICAgd2lkdGg6IDElO1xuICAgIH1cbn1cbiIsICIvKlxuICogQ2hpcDogcDpjaGlwXG4gKlxuICogTWFya3VwOiAucC1jaGlwID4gaW1nIHwgLnAtY2hpcC1pY29uLCAucC1jaGlwLXRleHQsIC5wLWNoaXAtcmVtb3ZlLWljb25cbiAqL1xuXG4ucC1jaGlwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcC1jaGlwLWdhcCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcC1jaGlwLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWNoaXAtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY2hpcC1ib3JkZXItcmFkaXVzKTtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1wLWNoaXAtcGFkZGluZy15KTtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1jaGlwLXBhZGRpbmcteCk7XG5cbiAgICAmOmhhcyg+IC5wLWNoaXAtcmVtb3ZlLWljb24pIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1wLWNoaXAtcGFkZGluZy15KTtcbiAgICB9XG5cbiAgICAmLnAtY2hpcC1pbWFnZSB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IGNhbGModmFyKC0tcC1jaGlwLXBhZGRpbmcteSkgLyAyKTtcbiAgICB9XG5cbiAgICAucC1jaGlwLXRleHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2hpcC1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jaGlwLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAvKiBpY29uIGJveGVzID0gaWNvbiBzaXplIChsaWtlIFByaW1lVUlYKSwgc28gYW4gaWNvbiBuZXZlciBtYWtlcyB0aGUgY2hpcCB0YWxsZXIgdGhhbiB0aGUgbGFiZWwgKi9cbiAgICAucC1jaGlwLWljb24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGlwLWljb24tY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2hpcC1pY29uLXNpemUpO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1jaGlwLWljb24tc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1jaGlwLWljb24tc2l6ZSk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWNoaXAtaW1hZ2Utd2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtY2hpcC1pbWFnZS1oZWlnaHQpO1xuICAgICAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IGNhbGMoLTEgKiB2YXIoLS1wLWNoaXAtcGFkZGluZy15KSkgMDtcbiAgICB9XG5cbiAgICAvKiByZW1vdmUgaWNvbjogLS1wLWNoaXAtcmVtb3ZlLWljb24gKGRlZmF1bHQ6IHRoZSBjbGVhciBpY29uIG9mIHRoZSBpY29uIHNldCwgYSBjaXJjbGVkIHgpICovXG4gICAgLnAtY2hpcC1yZW1vdmUtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1zaXplKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tc2l6ZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgdmFyKC0tcC1jaGlwLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtY2hpcC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhhcyg+IC5wLWNoaXAtcmVtb3ZlLWljb246Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wLWNoaXAtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBDaGlwczogcDpjaGlwcyAoUHJpbWVVSVg6IGlucHV0Y2hpcHMpXG4gKlxuICogVGhlIGNvbnRhaW5lciBpcyBhIC5wLWlucHV0ZmllbGQgKGZvcm1zL2lucHV0ZmllbGQuY3NzOiBob3ZlciwgZm9jdXMsIGVycm9yLCBkaXNhYmxlZCwgZmlsbGVkKSwgb25seSB0aGUgY2hpcHMgbGl2ZSBoZXJlLlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtc3RhdGUtaG92ZXIgLyBwLXN0YXRlLWZvY3VzIC8gcC1zdGF0ZS1lcnJvciAvIHAtc3RhdGUtZGlzYWJsZWQgKG9uIC5wLWNoaXBzLWNvbnRhaW5lciksXG4gKiAgICAgICAgICAgICAgICAgICAgcC1pbnB1dHdyYXBwZXItZm9jdXMgKG9uIC5wLWNoaXBzLCBmbG9hdCBsYWJlbClcbiAqL1xuLnAtY2hpcHMge1xuICAgIC8qIHRoZSBjb250YWluZXIgKC5wLWlucHV0ZmllbGQpIHJlYWRzIHRoZSBpbnB1dHRleHQgdG9rZW5zOiBwb2ludCB0aGVtIHRvIHRoZSBpbnB1dGNoaXBzIHRva2VucyAqL1xuICAgIC0tcC1pbnB1dHRleHQtYmFja2dyb3VuZDogdmFyKC0tcC1pbnB1dGNoaXBzLWJhY2tncm91bmQpO1xuICAgIC0tcC1pbnB1dHRleHQtZGlzYWJsZWQtYmFja2dyb3VuZDogdmFyKC0tcC1pbnB1dGNoaXBzLWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgIC0tcC1pbnB1dHRleHQtZmlsbGVkLWJhY2tncm91bmQ6IHZhcigtLXAtaW5wdXRjaGlwcy1maWxsZWQtYmFja2dyb3VuZCk7XG4gICAgLS1wLWlucHV0dGV4dC1maWxsZWQtZm9jdXMtYmFja2dyb3VuZDogdmFyKC0tcC1pbnB1dGNoaXBzLWZpbGxlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWJvcmRlci1jb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLWJvcmRlci1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1ob3Zlci1ib3JkZXItY29sb3I6IHZhcigtLXAtaW5wdXRjaGlwcy1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWlucHV0Y2hpcHMtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LWludmFsaWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWlucHV0Y2hpcHMtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtY29sb3I6IHZhcigtLXAtaW5wdXRjaGlwcy1jb2xvcik7XG4gICAgLS1wLWlucHV0dGV4dC1kaXNhYmxlZC1jb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLWRpc2FibGVkLWNvbG9yKTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1wLWlucHV0Y2hpcHMtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtc2hhZG93OiB2YXIoLS1wLWlucHV0Y2hpcHMtc2hhZG93KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteDogdmFyKC0tcC1pbnB1dGNoaXBzLXBhZGRpbmcteCk7XG4gICAgLS1wLWlucHV0dGV4dC1wYWRkaW5nLXk6IHZhcigtLXAtaW5wdXRjaGlwcy1wYWRkaW5nLXkpO1xuICAgIC0tcC1pbnB1dHRleHQtYm9yZGVyLXJhZGl1czogdmFyKC0tcC1pbnB1dGNoaXBzLWJvcmRlci1yYWRpdXMpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy13aWR0aDogdmFyKC0tcC1pbnB1dGNoaXBzLWZvY3VzLXJpbmctd2lkdGgpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1zdHlsZTogdmFyKC0tcC1pbnB1dGNoaXBzLWZvY3VzLXJpbmctc3R5bGUpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tcC1pbnB1dHRleHQtZm9jdXMtcmluZy1vZmZzZXQ6IHZhcigtLXAtaW5wdXRjaGlwcy1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgLS1wLWlucHV0dGV4dC1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1pbnB1dGNoaXBzLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAtLXAtaW5wdXR0ZXh0LXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtaW5wdXRjaGlwcy10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5wLWNoaXBzLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcC1pbnB1dGNoaXBzLXBhZGRpbmcteSkgLyAyKSB2YXIoLS1wLWlucHV0Y2hpcHMtcGFkZGluZy14KTtcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLXAtaW5wdXRjaGlwcy1wYWRkaW5nLXkpIC8gMik7XG5cbiAgICAgICAgLnAtY2hpcHMtdG9rZW4ge1xuICAgICAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1wLWlucHV0Y2hpcHMtcGFkZGluZy15KSAvIDIpIDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNoaXAtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLWNoaXAtY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1pbnB1dGNoaXBzLWNoaXAtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtaW5wdXRjaGlwcy10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1pbnB1dGNoaXBzLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAucC1jaGlwcy10b2tlbi1sYWJlbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1jaGlwLXBhZGRpbmcteCkgY2FsYyh2YXIoLS1wLWNoaXAtcGFkZGluZy14KSArIHZhcigtLXAtY2hpcC1nYXApICsgdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLXNpemUpKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2hpcC1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWNoaXAtbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1jaGlwcy1jaGlwLXJlbW92ZS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWlucHV0Y2hpcHMtY2hpcC1yZW1vdmUtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWNoaXBzLXRva2VuLWljb24ge1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLXAtY2hpcC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1wLWNoaXAtcmVtb3ZlLWljb24tc2l6ZSkgLyAyKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1zaXplKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jaGlwLXJlbW92ZS1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNoaXBzLWlucHV0LXRva2VuIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcC1pbnB1dGNoaXBzLXBhZGRpbmcteSkgLyAyKSAwO1xuXG4gICAgICAgICAgICAvKiBzYW1lIGxpbmUgaGVpZ2h0IGFzIGFuIGlucHV0OiBwYWRkaW5nLXkgLyAyIChjb250YWluZXIpICsgcGFkZGluZy15IC8gMiAoaGVyZSkgKyBsaW5lID0gaW5wdXQgaGVpZ2h0ICovXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWZvcm0tZmllbGQtZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1mb3JtLWZpZWxkLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1pbnB1dGNoaXBzLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWlucHV0Y2hpcHMtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWVycm9yIC5wLWNoaXBzLWlucHV0LXRva2VuIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1mb3JtLWZpZWxkLWludmFsaWQtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLWNoaXBzLWlucHV0LXRva2VuIGlucHV0IHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWlucHV0Y2hpcHMtZGlzYWJsZWQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1jaGlwcy1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgY3Vyc29yOiB0ZXh0O1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wLWNoaXBzLXRva2VuIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5wLWNoaXBzLXRva2VuLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnAtY2hpcHMtdG9rZW4taWNvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICB9XG59XG5cbi5wLWNoaXBzLWlucHV0LXRva2VuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8qIGZpbGxzIHRoZSByZXN0IG9mIHRoZSBsaW5lLCB3cmFwcyBvbmx5IGJlbG93IDRyZW0gKG5vdCBhdCB0aGUgaW50cmluc2ljIHdpZHRoIG9mIHRoZSBpbnB1dCkgKi9cbiAgICBmbGV4OiAxIDEgNHJlbTtcbiAgICBtaW4td2lkdGg6IDRyZW07XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ucC1mbHVpZCAucC1jaGlwcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcblxuICAgIC5wLWNoaXBzLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cbiIsICIvKlxuICogQ2hyb25vbGluZTogcDpjaHJvbm9saW5lIChQcmltZVVJWCB0aW1lbGluZSB0b2tlbnMpXG4gKlxuICogVGhlIGRlZmF1bHQgbWFya2VyIGlzIGEgcmluZyB3aXRoIGEgcHJpbWFyeSBkb3QgKDo6YmVmb3JlKSBsaWtlIHRoZSBQcmltZVVJWCB0aW1lbGluZTsgYSBjdXN0b20gbWFya2VyIGZhY2V0IGlzIG5vdCBzdHlsZWQuXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1jaHJvbm9saW5lLXZlcnRpY2FsLCBwLWNocm9ub2xpbmUtaG9yaXpvbnRhbCwgcC1jaHJvbm9saW5lLWxlZnQsIHAtY2hyb25vbGluZS1yaWdodCxcbiAqICAgICAgICAgICAgICAgICAgICBwLWNocm9ub2xpbmUtdG9wLCBwLWNocm9ub2xpbmUtYm90dG9tLCBwLWNocm9ub2xpbmUtYWx0ZXJuYXRlXG4gKi9cbi5wLWNocm9ub2xpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAucC1jaHJvbm9saW5lLWV2ZW50IHtcbiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LW1pbi1oZWlnaHQpO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtY2hyb25vbGluZS1ldmVudC1tYXJrZXIge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItc2l6ZSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItYmFja2dyb3VuZCk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LW1hcmtlci1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItY29udGVudC1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LW1hcmtlci1jb250ZW50LXNpemUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LW1hcmtlci1jb250ZW50LWJhY2tncm91bmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY2hyb25vbGluZS1ldmVudC1tYXJrZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWNocm9ub2xpbmUtZXZlbnQtbWFya2VyLWNvbnRlbnQtaW5zZXQtc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtY29ubmVjdG9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LWNvbm5lY3Rvci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLWNocm9ub2xpbmUtdmVydGljYWwge1xuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LW9wcG9zaXRlLFxuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LWNvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jaHJvbm9saW5lLXZlcnRpY2FsLWV2ZW50LWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LWNvbm5lY3RvciB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LWNvbm5lY3Rvci1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1jaHJvbm9saW5lLWhvcml6b250YWwge1xuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LW9wcG9zaXRlLFxuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LWNvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jaHJvbm9saW5lLWhvcml6b250YWwtZXZlbnQtY29udGVudC1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtY29ubmVjdG9yIHtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1jaHJvbm9saW5lLWV2ZW50LWNvbm5lY3Rvci1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogb3Bwb3NpdGUgYW5kIGNvbnRlbnQgYXJlIGFsaWduZWQgdG93YXJkcyB0aGUgbGluZSAqL1xuLnAtY2hyb25vbGluZS1sZWZ0IHtcbiAgICAucC1jaHJvbm9saW5lLWV2ZW50LW9wcG9zaXRlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogZW5kO1xuICAgIH1cblxuICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtY29udGVudCB7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cbn1cblxuLnAtY2hyb25vbGluZS1yaWdodCB7XG4gICAgLnAtY2hyb25vbGluZS1ldmVudCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAucC1jaHJvbm9saW5lLWV2ZW50LW9wcG9zaXRlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgLnAtY2hyb25vbGluZS1ldmVudC1jb250ZW50IHtcbiAgICAgICAgdGV4dC1hbGlnbjogZW5kO1xuICAgIH1cbn1cblxuLnAtY2hyb25vbGluZS12ZXJ0aWNhbC5wLWNocm9ub2xpbmUtYWx0ZXJuYXRlIC5wLWNocm9ub2xpbmUtZXZlbnQge1xuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAucC1jaHJvbm9saW5lLWV2ZW50LW9wcG9zaXRlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtY29udGVudCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgLnAtY2hyb25vbGluZS1ldmVudC1vcHBvc2l0ZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNocm9ub2xpbmUtZXZlbnQtY29udGVudCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBlbmQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLWNocm9ub2xpbmUtZXZlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucC1jaHJvbm9saW5lLWV2ZW50LW9wcG9zaXRlIHtcbiAgICBmbGV4OiAxO1xufVxuXG4ucC1jaHJvbm9saW5lLWV2ZW50LWNvbnRlbnQge1xuICAgIGZsZXg6IDE7XG59XG5cbi5wLWNocm9ub2xpbmUtZXZlbnQtc2VwYXJhdG9yIHtcbiAgICBmbGV4OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ucC1jaHJvbm9saW5lLWV2ZW50LW1hcmtlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbn1cblxuLnAtY2hyb25vbGluZS1ldmVudC1jb25uZWN0b3Ige1xuICAgIGZsZXgtZ3JvdzogMTtcbn1cblxuLnAtY2hyb25vbGluZS1ob3Jpem9udGFsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgLnAtY2hyb25vbGluZS1ldmVudCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZsZXg6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1jaHJvbm9saW5lLWV2ZW50LXNlcGFyYXRvciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgLnAtY2hyb25vbGluZS1ldmVudC1jb25uZWN0b3Ige1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmLnAtY2hyb25vbGluZS1hbHRlcm5hdGUgLnAtY2hyb25vbGluZS1ldmVudDpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgfVxufVxuXG4ucC1jaHJvbm9saW5lLWJvdHRvbSAucC1jaHJvbm9saW5lLWV2ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG59XG4iLCAiLypcbiAqIENvbHVtblRvZ2dsZXI6IHA6Y29sdW1uVG9nZ2xlciBvdmVybGF5IG9mIHA6ZGF0YVRhYmxlIC8gcDp0cmVlVGFibGUgKCsgcmVzcG9uc2l2ZSBjb2x1bW4gcHJpb3JpdGllcylcbiAqXG4gKiBNYXJrdXAgKGJ1aWx0IGJ5IHRoZSB3aWRnZXQpOiAucC1jb2x1bW50b2dnbGVyID4gdWwucC1jb2x1bW50b2dnbGVyLWl0ZW1zID4gbGkucC1jb2x1bW50b2dnbGVyLWFsbCAvIGxpLnAtY29sdW1udG9nZ2xlci1pdGVtXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYWNoIHdpdGggYSAucC1jaGtib3ggYW5kIGEgbGFiZWxcbiAqIFRva2VuczogdGhlIGNvbHVtbnRvZ2dsZXIgYmxvY2sgb2YgcHJlc2V0cy8qLmNzcyAobW9kZWxsZWQgb24gdGhlIFByaW1lVUlYIG11bHRpc2VsZWN0IG92ZXJsYXkpXG4gKi9cbi5wLWNvbHVtbnRvZ2dsZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1jb2x1bW50b2dnbGVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtY29sdW1udG9nZ2xlci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtY29sdW1udG9nZ2xlci1ib3JkZXItcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItc2hhZG93KTtcblxuICAgIC8qIHRoZSBvdmVybGF5IGNsb3NlcyBvbiBvdXRzaWRlIGNsaWNrIC8gZXNjYXBlICovXG4gICAgLnAtY29sdW1udG9nZ2xlci1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtY29sdW1udG9nZ2xlci1jbG9zZS1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1jb2x1bW50b2dnbGVyLWNsb3NlLWljb24pO1xuICAgIH1cblxuICAgIC5wLWNvbHVtbnRvZ2dsZXItaXRlbXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItbGlzdC1wYWRkaW5nKTtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItbGlzdC1nYXApO1xuICAgIH1cblxuICAgIC5wLWNvbHVtbnRvZ2dsZXItaXRlbSxcbiAgICAucC1jb2x1bW50b2dnbGVyLWFsbCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5wLWNvbHVtbnRvZ2dsZXItaXRlbSAucC1jaGtib3gsXG4gICAgLnAtY29sdW1udG9nZ2xlci1hbGwgLnAtY2hrYm94IHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAucC1jb2x1bW50b2dnbGVyLWl0ZW0gbGFiZWwsXG4gICAgLnAtY29sdW1udG9nZ2xlci1hbGwgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1jb2x1bW50b2dnbGVyLWl0ZW1zIHtcbiAgICAgICAgLnAtY29sdW1udG9nZ2xlci1pdGVtIHtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tcC1jb2x1bW50b2dnbGVyLW9wdGlvbi1nYXApO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jb2x1bW50b2dnbGVyLW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jb2x1bW50b2dnbGVyLW9wdGlvbi1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY29sdW1udG9nZ2xlci1vcHRpb24tZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItb3B0aW9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtY29sdW1udG9nZ2xlci10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6aGFzKC5wLWNoa2JveC1ib3gucC1zdGF0ZS1mb2N1cykge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY29sdW1udG9nZ2xlci1vcHRpb24tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtY29sdW1udG9nZ2xlci1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnAtY29sdW1udG9nZ2xlci1hbGwge1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItb3B0aW9uLWdhcCk7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItaGVhZGVyLXBhZGRpbmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1jb2x1bW50b2dnbGVyLWhlYWRlci1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1jb2x1bW50b2dnbGVyLWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1wLWNvbHVtbnRvZ2dsZXItaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBjb2x1bW4gcHJpb3JpdGllczogcHJpb3JpdHkgbiBpcyBzaG93biBmcm9tIDMyMHB4ICsgKG4gLSAxKSAqIDE2MHB4IG9uICovXG5AbWVkaWEgb25seSBhbGwge1xuICAgIC5wLWNvbHVtbnRvZ2dsZXIgLnAtY29sdW1udG9nZ2xlci1pdGVtLnAtY29sdW1uLXAtMSxcbiAgICAucC1jb2x1bW50b2dnbGVyIC5wLWNvbHVtbnRvZ2dsZXItaXRlbS5wLWNvbHVtbi1wLTIsXG4gICAgLnAtY29sdW1udG9nZ2xlciAucC1jb2x1bW50b2dnbGVyLWl0ZW0ucC1jb2x1bW4tcC0zLFxuICAgIC5wLWNvbHVtbnRvZ2dsZXIgLnAtY29sdW1udG9nZ2xlci1pdGVtLnAtY29sdW1uLXAtNCxcbiAgICAucC1jb2x1bW50b2dnbGVyIC5wLWNvbHVtbnRvZ2dsZXItaXRlbS5wLWNvbHVtbi1wLTUsXG4gICAgLnAtY29sdW1udG9nZ2xlciAucC1jb2x1bW50b2dnbGVyLWl0ZW0ucC1jb2x1bW4tcC02IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICB0aC5wLWhpZGRlbixcbiAgICB0ZC5wLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyMGVtKSB7XG4gICAgLnAtY29sdW1udG9nZ2xlciAucC1jb2x1bW50b2dnbGVyLWl0ZW0ucC1jb2x1bW4tcC0xIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAucC1jb2x1bW50b2dnbGVyIC5wLWNvbHVtbnRvZ2dsZXItaXRlbS5wLWNvbHVtbi1wLTIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wLWNvbHVtbnRvZ2dsZXIgLnAtY29sdW1udG9nZ2xlci1pdGVtLnAtY29sdW1uLXAtMyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLnAtY29sdW1udG9nZ2xlciAucC1jb2x1bW50b2dnbGVyLWl0ZW0ucC1jb2x1bW4tcC00IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAucC1jb2x1bW50b2dnbGVyIC5wLWNvbHVtbnRvZ2dsZXItaXRlbS5wLWNvbHVtbi1wLTUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzBlbSkge1xuICAgIC5wLWNvbHVtbnRvZ2dsZXIgLnAtY29sdW1udG9nZ2xlci1pdGVtLnAtY29sdW1uLXAtNiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBDb25maXJtUG9wdXA6IHA6Y29uZmlybVBvcHVwXG4gKlxuICogTWFya3VwOiAucC1jb25maXJtLXBvcHVwID4gLnAtY29uZmlybS1wb3B1cC1jb250ZW50ICg+IC5wLWNvbmZpcm0tcG9wdXAtaWNvbiwgLnAtY29uZmlybS1wb3B1cC1tZXNzYWdlKSwgLnAtY29uZmlybS1wb3B1cC1mb290ZXJcbiAqIFRoZSBhcnJvdyBpcyBkcmF3biB3aXRoIDo6YmVmb3JlIChib3JkZXIpIGFuZCA6OmFmdGVyIChiYWNrZ3JvdW5kKTsgLS1vdmVybGF5QXJyb3dMZWZ0IGlzIHNldCBieSB0aGUgUEYgSmF2YVNjcmlwdC5cbiAqIFN0YXRlczogcC1jb25maXJtLXBvcHVwLWZsaXBwZWQgKHNob3duIGFib3ZlIHRoZSB0YXJnZXQpXG4gKi9cblxuLnAtY29uZmlybS1wb3B1cCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tcC1jb25maXJtcG9wdXAtZ3V0dGVyKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1jb25maXJtcG9wdXAtY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtY29uZmlybXBvcHVwLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1jb25maXJtcG9wdXAtYm9yZGVyLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1jb25maXJtcG9wdXAtc2hhZG93KTtcblxuICAgICYucC1jb25maXJtLXBvcHVwLWZsaXBwZWQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1ndXR0ZXIpO1xuICAgIH1cblxuICAgIC5wLWNvbmZpcm0tcG9wdXAtY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGdhcDogdmFyKC0tcC1jb25maXJtcG9wdXAtY29udGVudC1nYXApO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1jb250ZW50LXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC5wLWNvbmZpcm0tcG9wdXAtaWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY29uZmlybXBvcHVwLWljb24tc2l6ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1pY29uLWNvbG9yKTtcbiAgICB9XG5cbiAgICAucC1jb25maXJtLXBvcHVwLW1lc3NhZ2Uge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1tZXNzYWdlLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1tZXNzYWdlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1tZXNzYWdlLWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAucC1jb25maXJtLXBvcHVwLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGVuZDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1jb25maXJtcG9wdXAtZm9vdGVyLXBhZGRpbmcpO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1jb25maXJtcG9wdXAtZm9vdGVyLWdhcCk7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBhcnJvdyAoZ2VvbWV0cnkgbGlrZSBQcmltZVVJWDogdGhlIGlubmVyIHRyaWFuZ2xlIGlzIDJweCBzbWFsbGVyIHRoYW4gdGhlIGd1dHRlcikgKi9cbiAgICAmOjphZnRlcixcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgIGxlZnQ6IGNhbGModmFyKC0tb3ZlcmxheUFycm93TGVmdCwgMHB4KSArIHZhcigtLXAtY29uZmlybXBvcHVwLWFycm93LW9mZnNldCkpO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogY2FsYyh2YXIoLS1wLWNvbmZpcm1wb3B1cC1ndXR0ZXIpIC0gMnB4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiAodmFyKC0tcC1jb25maXJtcG9wdXAtZ3V0dGVyKSAtIDJweCkpO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtY29uZmlybXBvcHVwLWd1dHRlcik7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tcC1jb25maXJtcG9wdXAtZ3V0dGVyKSk7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXAtY29uZmlybXBvcHVwLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLWNvbmZpcm0tcG9wdXAtZmxpcHBlZCB7XG4gICAgICAgICY6OmFmdGVyLFxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1wLWNvbmZpcm1wb3B1cC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXAtY29uZmlybXBvcHVwLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIENvbnRleHRNZW51OiBwOmNvbnRleHRNZW51XG4gKlxuICogUmVuZGVycyB0aGUgdGllcmVkIC5wLW1lbnUgbWFya3VwIChzdHlsZWQgYnkgbWVudS9tZW51LmJhc2UuY3NzKSBhcyBhbiBvdmVybGF5OyB0aGlzIGZpbGUgbWFwcyB0aGUgY29udGV4dG1lbnUgdG9rZW5zLlxuICovXG5cbi8qIHNldCBieSB0aGUgd2lkZ2V0IG9uIHRoZSB0YXJnZXQ6IGRpc2FibGVzIHRoZSBtb2JpbGUgYnJvd3NlciBjb250ZXh0IG1lbnUgKi9cbi5wLXRvdWNoLXNlbGVjdGlvbi1kaXNhYmxlZCB7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnAtbWVudS5wLWNvbnRleHRtZW51IHtcbiAgICAtLV9iZzogdmFyKC0tcC1jb250ZXh0bWVudS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNvbnRleHRtZW51LWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1wLWNvbnRleHRtZW51LWNvbG9yKTtcbiAgICAtLV9zaGFkb3c6IHZhcigtLXAtY29udGV4dG1lbnUtc2hhZG93KTtcbiAgICAtLV9saXN0LXBhZGRpbmc6IHZhcigtLXAtY29udGV4dG1lbnUtbGlzdC1wYWRkaW5nKTtcbiAgICAtLV9saXN0LWdhcDogdmFyKC0tcC1jb250ZXh0bWVudS1saXN0LWdhcCk7XG4gICAgLS1fdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC1jb250ZXh0bWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAtLV9pdGVtLWJvcmRlci1yYWRpdXM6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9pdGVtLXBhZGRpbmc6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1wYWRkaW5nKTtcbiAgICAtLV9pdGVtLWdhcDogdmFyKC0tcC1jb250ZXh0bWVudS1pdGVtLWdhcCk7XG4gICAgLS1faXRlbS1jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1pdGVtLWNvbG9yKTtcbiAgICAtLV9pdGVtLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAtLV9pdGVtLWZvY3VzLWNvbG9yOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0tZm9jdXMtY29sb3IpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1faXRlbS1hY3RpdmUtY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1pdGVtLWljb24tY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1mb2N1cy1jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1pdGVtLWljb24tZm9jdXMtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1hY3RpdmUtY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1pY29uLWFjdGl2ZS1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLXNpemU6IHZhcigtLXAtY29udGV4dG1lbnUtaXRlbS1pY29uLXNpemUpO1xuICAgIC0tX2l0ZW0tbGFiZWwtZm9udC1zaXplOiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0tbGFiZWwtZm9udC1zaXplKTtcbiAgICAtLV9pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0OiB2YXIoLS1wLWNvbnRleHRtZW51LWl0ZW0tbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1zdWJtZW51LWljb24tY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1zdWJtZW51LWljb24tZm9jdXMtY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1zaXplOiB2YXIoLS1wLWNvbnRleHRtZW51LXN1Ym1lbnUtaWNvbi1zaXplKTtcbiAgICAtLV9zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWNvbnRleHRtZW51LXN1Ym1lbnUtaWNvbi1hY3RpdmUtY29sb3IpO1xuICAgIC0tX3NlcGFyYXRvci1ib3JkZXItY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtc2VwYXJhdG9yLWJvcmRlci1jb2xvcik7XG4gICAgLS1fc3VibWVudS1sYWJlbC1iYWNrZ3JvdW5kOiB2YXIoLS1wLWNvbnRleHRtZW51LXN1Ym1lbnUtbGFiZWwtYmFja2dyb3VuZCk7XG4gICAgLS1fc3VibWVudS1sYWJlbC1jb2xvcjogdmFyKC0tcC1jb250ZXh0bWVudS1zdWJtZW51LWxhYmVsLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWxhYmVsLWZvbnQtc2l6ZTogdmFyKC0tcC1jb250ZXh0bWVudS1zdWJtZW51LWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgLS1fc3VibWVudS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1jb250ZXh0bWVudS1zdWJtZW51LWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAtLV9zdWJtZW51LWxhYmVsLXBhZGRpbmc6IHZhcigtLXAtY29udGV4dG1lbnUtc3VibWVudS1sYWJlbC1wYWRkaW5nKTtcbiAgICAtLV9zdWJtZW51LWJhY2tncm91bmQ6IHZhcigtLXAtY29udGV4dG1lbnUtYmFja2dyb3VuZCk7XG4gICAgLS1fc3VibWVudS1ib3JkZXItY29sb3I6IHZhcigtLXAtY29udGV4dG1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWJvcmRlci1yYWRpdXM6IHZhcigtLXAtY29udGV4dG1lbnUtYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1fc3VibWVudS1wYWRkaW5nOiB2YXIoLS1wLWNvbnRleHRtZW51LWxpc3QtcGFkZGluZyk7XG4gICAgLS1fc3VibWVudS1zaGFkb3c6IHZhcigtLXAtY29udGV4dG1lbnUtc2hhZG93KTtcbn1cbiIsICIvKlxuICogRGFzaGJvYXJkOiBwOmRhc2hib2FyZCAobGVnYWN5IGNvbHVtbnMgYW5kIHJlc3BvbnNpdmUgbW9kZSk7IHRoZSBwYW5lbHMgdGhlbXNlbHZlcyBhcmUgc3R5bGVkIGJ5IHBhbmVsLmNzcy5cbiAqXG4gKiBEcmFnIHN0YXRlczogLnAtc29ydGFibGUtcGxhY2Vob2xkZXIgKGxlZ2FjeSwgc29ydGFibGUpLCAucC1kYXNoYm9hcmQtYWN0aXZlIC8gLnAtZGFzaGJvYXJkLWhvdmVyXG4gKiAocmVzcG9uc2l2ZSwgZHJvcHBhYmxlIGNsYXNzZXMpLCAucC1zdGF0ZS1kaXNhYmxlZCAoZGlzYWJsZWQgZGFzaGJvYXJkKS5cbiAqL1xuXG4ucC1kYXNoYm9hcmQtY29sdW1uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAvKiBkcm9wIGFyZWEgYmVsb3cgdGhlIGxhc3QgcGFuZWwgKi9cbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG59XG5cbi5wLWRhc2hib2FyZC1jb2x1bW4gLnAtcGFuZWwtdGl0bGViYXIsXG4ucC1kYXNoYm9hcmQtcGFuZWwgLnAtcGFuZWwtdGl0bGViYXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cblxuLnAtZGFzaGJvYXJkIHtcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAucC1kYXNoYm9hcmQtY29sdW1uIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1wLWRhc2hib2FyZC1nYXApO1xuXG4gICAgICAgID4gLnAtcGFuZWwsXG4gICAgICAgID4gLnAtc29ydGFibGUtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcC1kYXNoYm9hcmQtZ2FwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1wYW5lbC10aXRsZWJhciB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAvKiBkcm9wIHBsYWNlaG9sZGVyIChsZWdhY3kpICovXG4gICAgLnAtc29ydGFibGUtcGxhY2Vob2xkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhc2hib2FyZC1wbGFjZWhvbGRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLXAtZGFzaGJvYXJkLXBsYWNlaG9sZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGFzaGJvYXJkLXBsYWNlaG9sZGVyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC8qIGRyb3AgdGFyZ2V0cyAocmVzcG9uc2l2ZSkgKi9cbiAgICAucC1kYXNoYm9hcmQtYWN0aXZlIHtcbiAgICAgICAgb3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1wLWRhc2hib2FyZC1kcm9wLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogY2FsYygtMSAqIHZhcigtLXAtZGFzaGJvYXJkLWRyb3Atb3V0bGluZS1vZmZzZXQpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXNoYm9hcmQtcGxhY2Vob2xkZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtZGFzaGJvYXJkLWhvdmVyIHtcbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLXAtZGFzaGJvYXJkLWRyb3AtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IGNhbGMoLTEgKiB2YXIoLS1wLWRhc2hib2FyZC1kcm9wLW91dGxpbmUtb2Zmc2V0KSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGFzaGJvYXJkLWRyb3AtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGFzaGJvYXJkLXBsYWNlaG9sZGVyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbn1cbiIsICIvKlxuICogRGF0YUdyaWQ6IHA6ZGF0YUdyaWRcbiAqXG4gKiBObyBvd24gUHJpbWVVSVggY29tcG9uZW50OiBzdHlsZWQgd2l0aCB0aGUgZGF0YXZpZXcgdG9rZW5zICgrIFByaW1lRmFjZXMgZGF0YXZpZXcgdG9rZW5zKS5cbiAqL1xuLnAtZGF0YWdyaWQge1xuICAgIC5wLWRhdGFncmlkLWhlYWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLWRhdGFncmlkLWZvb3RlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLWRhdGFncmlkLWNvbnRlbnQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtcGFkZGluZyk7XG5cbiAgICAgICAgJi5wLWRhdGFncmlkLWNvbnRlbnQtZW1wdHkge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1lbXB0eS1tZXNzYWdlLXBhZGRpbmcpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctZW1wdHktbWVzc2FnZS1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1wYWdpbmF0b3Ige1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFnaW5hdG9yLXBhZGRpbmcpO1xuXG4gICAgICAgICYucC1wYWdpbmF0b3ItdG9wIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtZGF0YXZpZXctcGFnaW5hdG9yLXRvcC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci10b3AtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtcGFnaW5hdG9yLWJvdHRvbSB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci1ib3R0b20tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1wYWdpbmF0b3ItYm90dG9tLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1kYXRhZ3JpZC1kYXRhIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnAtZGF0YWdyaWQtY29sdW1uIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWdyaWQtY29sdW1uLXBhZGRpbmcpO1xufVxuIiwgIi8qXG4gKiBEYXRhTGlzdDogcDpkYXRhTGlzdCAodW5vcmRlcmVkLCBvcmRlcmVkIGFuZCBkZWZpbml0aW9uIGxpc3QpXG4gKlxuICogTm8gb3duIFByaW1lVUlYIGNvbXBvbmVudDogc3R5bGVkIHdpdGggdGhlIGRhdGF2aWV3IHRva2VucyAoKyBQcmltZUZhY2VzIGRhdGF2aWV3IHRva2VucykuXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1kYXRhbGlzdC1ub2J1bGxldHMgKGl0ZW1UeXBlPVwibm9uZVwiKVxuICovXG4ucC1kYXRhbGlzdCB7XG4gICAgLnAtZGF0YWxpc3QtaGVhZGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtZGF0YWxpc3QtZm9vdGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1mb250LXdlaWdodCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtZGF0YWxpc3QtY29udGVudCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctY29udGVudC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAucC1kYXRhbGlzdC1ub2J1bGxldHMge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtZGF0YWxpc3QtZW1wdHktbWVzc2FnZSB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctZW1wdHktbWVzc2FnZS1wYWRkaW5nKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctZW1wdHktbWVzc2FnZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtcGFnaW5hdG9yIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYWdpbmF0b3ItcGFkZGluZyk7XG5cbiAgICAgICAgJi5wLXBhZ2luYXRvci10b3Age1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1kYXRhdmlldy1wYWdpbmF0b3ItdG9wLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctcGFnaW5hdG9yLXRvcC1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1wYWdpbmF0b3ItYm90dG9tIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtZGF0YXZpZXctcGFnaW5hdG9yLWJvdHRvbS1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci1ib3R0b20tYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIERhdGFTY3JvbGxlcjogcDpkYXRhU2Nyb2xsZXIgKGRvY3VtZW50IGFuZCBpbmxpbmUgbW9kZSwgbG9hZGVyIGZhY2V0LCB2aXJ0dWFsIHNjcm9sbClcbiAqXG4gKiBObyBvd24gUHJpbWVVSVggY29tcG9uZW50OiBzdHlsZWQgd2l0aCB0aGUgZGF0YXZpZXcgdG9rZW5zICgrIFByaW1lRmFjZXMgZGF0YXZpZXcgdG9rZW5zKS5cbiAqIFRoZSBkZWZhdWx0IGxvYWRpbmcgaW5kaWNhdG9yIChkaXYucC1kYXRhc2Nyb2xsZXItbG9hZGluZy1kZWZhdWx0LnAtaWNvbi5wLWxvYWRpbmctaWNvbi5wLWRhdGFzY3JvbGxlci1sb2FkaW5nLWljb25cbiAqIHdpdGhvdXQgbG9hZGluZyBmYWNldCkgaXMgdGhlIC0tcC1kYXRhdmlldy1sb2FkaW5nLWljb24gc3Bpbm5lciAocC1zcGluIGtleWZyYW1lcyBvZiBhamF4c3RhdHVzL2FqYXhzdGF0dXMuY3NzKS5cbiAqL1xuXG4ucC1kYXRhc2Nyb2xsZXIge1xuICAgIC5wLWRhdGFzY3JvbGxlci1oZWFkZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAucC1kYXRhc2Nyb2xsZXItY29udGVudCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctY29udGVudC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctY29udGVudC1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAucC1kYXRhc2Nyb2xsZXItbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5wLWRhdGFzY3JvbGxlci1pdGVtIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1pdGVtLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogbG9hZGVkIGl0ZW1zIGZhZGUgYW5kIHNsaWRlIGluIChiYXNlL2NvbW1vbi5jc3MpOyBub3Qgd2l0aCB2aXJ0dWFsIHNjcm9sbGluZywgaXQgcmVwbGFjZXMgdGhlIGl0ZW1zIHdoaWxlIHNjcm9sbGluZyAqL1xuICAgIC5wLWRhdGFzY3JvbGxlci1jb250ZW50ID4gLnAtZGF0YXNjcm9sbGVyLWxpc3QgPiAucC1kYXRhc2Nyb2xsZXItaXRlbSB7XG4gICAgICAgIC0tX2VudGVyLW9mZnNldDogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWVudGVyLW9mZnNldCk7XG4gICAgICAgIGFuaW1hdGlvbjogcC1lbnRlciB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtZW50ZXItZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmctZW50ZXIpO1xuICAgIH1cblxuICAgIC5wLWRhdGFzY3JvbGxlci12aXJ0dWFsc2Nyb2xsLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLnAtZGF0YXNjcm9sbGVyLWxpc3Qge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGxvYWRlciBmYWNldCAoZS5nLiBhIFwibW9yZVwiIGJ1dHRvbikgKi9cbiAgICAucC1kYXRhc2Nyb2xsZXItbG9hZGVyOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXZpZXctbG9hZGVyLXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC5wLWRhdGFzY3JvbGxlci1sb2FkaW5nLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRhdGF2aWV3LWxvYWRpbmctaWNvbik7XG4gICAgfVxuXG4gICAgLnAtZGF0YXNjcm9sbGVyLWxvYWRpbmcgLnAtZGF0YXNjcm9sbGVyLWxvYWRpbmctZGVmYXVsdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1kYXRhdmlldy1sb2FkaW5nLWljb24tc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1kYXRhdmlldy1sb2FkaW5nLWljb24tc2l6ZSk7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZGF0YXZpZXctbG9hZGluZy1pY29uLXNpemUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdmlldy1sb2FkaW5nLWljb24tY29sb3IpO1xuICAgICAgICBhbmltYXRpb246IHAtc3BpbiB2YXIoLS1wLWRhdGF2aWV3LWxvYWRpbmctaWNvbi1hbmltYXRpb24tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG59XG5cbi5wLWRhdGFzY3JvbGxlci1pbmxpbmUgLnAtZGF0YXNjcm9sbGVyLWNvbnRlbnQge1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuIiwgIi8qXG4gKiBEYXRhVGFibGU6IHA6ZGF0YVRhYmxlICgrIHA6c3ViVGFibGUsIHA6aGVhZGVyUm93LCBwOnN1bW1hcnlSb3csIHA6cm93VG9nZ2xlciwgcDpyb3dFZGl0b3IsIHA6Y2VsbEVkaXRvcilcbiAqIFRoZSBwOmNvbHVtblRvZ2dsZXIgb3ZlcmxheSBsaXZlcyBpbiBjb2x1bW50b2dnbGVyLmNzcy5cbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1kYXRhdGFibGUtc3RyaXBlZCwgcC1kYXRhdGFibGUtZ3JpZGxpbmVzLCBwLWRhdGF0YWJsZS1zbSwgcC1kYXRhdGFibGUtbGcsXG4gKiAgICAgICAgICAgICAgICAgICAgcC1kYXRhdGFibGUtc3RpY2t5LCBwLWRhdGF0YWJsZS1yZWZsb3csIHAtZGF0YXRhYmxlLXNjcm9sbGFibGUsIHAtZGF0YXRhYmxlLXJlc2l6YWJsZSxcbiAqICAgICAgICAgICAgICAgICAgICBwLWRhdGF0YWJsZS1mcm96ZW5jb2x1bW4sIHAtZGF0YXRhYmxlLXJ0bCwgcC1maWx0ZXItdG9nZ2xlYWJsZSAoZmlsdGVycyBoaWRkZW4gdW50aWwgdG9nZ2xlRmlsdGVyKCkpXG4gKiBTdGF0ZXMgKHNldCBieSB0aGUgd2lkZ2V0KTogdGgucC1zdGF0ZS1ob3ZlciAvIHAtc3RhdGUtYWN0aXZlIChzb3J0ZWQpIC8gcC1zdGF0ZS1mb2N1cyxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5wLXN0YXRlLWhvdmVyIC8gcC1zdGF0ZS1oaWdobGlnaHQgKHNlbGVjdGVkKSwgdHIucC1kYXRhdGFibGUtb2RkIChzdHJpcGVkKSxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5wLXJvdy1lZGl0aW5nLCB0ZC5wLWNlbGwtZWRpdGluZ1xuICovXG4ucC1kYXRhdGFibGUge1xuICAgIC8qIGhlYWRlciAvIGZvb3RlciBmYWNldHMgKi9cbiAgICAucC1kYXRhdGFibGUtaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtZGF0YXRhYmxlLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItZm9udC13ZWlnaHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtY29udGVudC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtcGFnaW5hdG9yIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYWdpbmF0b3ItcGFkZGluZyk7XG5cbiAgICAgICAgJi5wLXBhZ2luYXRvci10b3Age1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcGFnaW5hdG9yLXRvcC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF0YWJsZS1wYWdpbmF0b3ItdG9wLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXBhZ2luYXRvci1ib3R0b20ge1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcGFnaW5hdG9yLWJvdHRvbS1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF0YWJsZS1wYWdpbmF0b3ItYm90dG9tLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB9XG5cbiAgICB0aGVhZCB0aCxcbiAgICB0Ym9keSB0ZCxcbiAgICB0Ym9keSB0aCxcbiAgICB0Zm9vdCB0ZCxcbiAgICB0Zm9vdCB0aCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgfVxuXG4gICAgLyogY29sdW1uIGhlYWRlcnMgKi9cbiAgICB0aGVhZCB0aCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAucC1jb2x1bW4tdGl0bGUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLWNvbHVtbi10aXRsZS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZGF0YXRhYmxlLWNvbHVtbi10aXRsZS1mb250LXNpemUpO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1nYXApO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXNvcnQtaWNvbi1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZGF0YXRhYmxlLXNvcnQtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAvKiB0aGUgc29ydCBvcmRlciBpcyB0aGUgc3RhdGUgY2xhc3Mgb2YgdGhlIGljb24gKHRoZSB3aWRnZXQgcmVhZHMgaXQsIGFyaWEtc29ydCBpcyBvbiBvbmUgY29sdW1uIG9ubHkpICovXG4gICAgICAgICAgICAmLnAtZGF0YXRhYmxlLXNvcnQtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdGFibGUtc29ydC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLWRhdGF0YWJsZS1zb3J0LWFzYy1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRhdGF0YWJsZS1zb3J0LWFzYy1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLWRhdGF0YWJsZS1zb3J0LWRlc2MtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdGFibGUtc29ydC1kZXNjLWljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnAtc29ydGFibGUtY29sdW1uLWJhZGdlIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYmFkZ2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWJhZGdlLXBhZGRpbmcpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJhZGdlLWhlaWdodCk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtYmFkZ2UtbWluLXdpZHRoKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLWJhZGdlLWhlaWdodCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1iYWRnZS1wcmltYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYmFkZ2UtcHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWdhcCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYmFkZ2UtZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWJhZGdlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc29ydGFibGUtY29sdW1uLnAtc3RhdGUtZm9jdXMsXG4gICAgICAgICYucC1zb3J0YWJsZS1jb2x1bW46Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtaG92ZXItY29sb3IpO1xuXG4gICAgICAgICAgICAucC1zb3J0YWJsZS1jb2x1bW4taWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXNvcnQtaWNvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzb3J0ZWQgY29sdW1uIChQcmltZVVJWCBoYXMgbm8gc2VwYXJhdGUgaG92ZXIgbG9vayBmb3IgaXQpICovXG4gICAgdGhlYWQgdGgucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAmLFxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc29ydGFibGUtY29sdW1uLWljb24ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXNvcnRhYmxlLWNvbHVtbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogbXVsdGlwbGUgc29ydCBudW1iZXIgYmFkZ2VzICovXG4gICAgLnAtc29ydGFibGUtY29sdW1uLWJhZGdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICYucC1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWNvbHVtbi1maWx0ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLWZpbHRlci1nYXApIGF1dG8gYXV0byBhdXRvO1xuICAgIH1cblxuICAgIC5wLWNvbHVtbi1maWx0ZXIgLnAtaW5wdXRmaWVsZCxcbiAgICAucC1jb2x1bW4tY3VzdG9tZmlsdGVyIC5wLWlucHV0ZmllbGQsXG4gICAgLnAtY29sdW1uLWN1c3RvbWZpbHRlciAucC1zZWxlY3RvbmVtZW51IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAucC1jb2x1bW4tY3VzdG9tZmlsdGVyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1wLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLWdhcCkgYXV0byBhdXRvIGF1dG87XG4gICAgfVxuXG4gICAgLyogcC1maWx0ZXItdG9nZ2xlYWJsZSAoc3R5bGVDbGFzcyk6IHRoZSBmaWx0ZXJzIGFyZSBoaWRkZW4gdW50aWwgdGhlIHdpZGdldCBzaG93cyB0aGVtIHdpdGggdG9nZ2xlRmlsdGVyKCkgKi9cbiAgICAmLnAtZmlsdGVyLXRvZ2dsZWFibGUgdGhlYWQgOmlzKC5wLWNvbHVtbi1maWx0ZXIsIC5wLWNvbHVtbi1jdXN0b21maWx0ZXIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBmb2N1c2FibGUgZm9yIHRoZSBrZXlib2FyZCByb3cgbmF2aWdhdGlvbjogcmluZyBpbnNpZGUgb24ga2V5Ym9hcmQgZm9jdXMsIHRoZSB0YWJsZSB3b3VsZCBjbGlwIGFuIG91dGVyIG9uZSAqL1xuICAgIHRib2R5LnAtZGF0YXRhYmxlLWRhdGEge1xuICAgICAgICBvdXRsaW5lOiAwO1xuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1kYXRhdGFibGUtcm93LWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtZGF0YXRhYmxlLXJvdy1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKC0xICogdmFyKC0tcC1kYXRhdGFibGUtcm93LWZvY3VzLXJpbmctd2lkdGgpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1kYXRhIHRyLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLyogcm93cyAqL1xuICAgIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctY29sb3IpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLXBhZGRpbmcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWRhdGF0YWJsZS1lbXB0eS1tZXNzYWdlID4gdGQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLWVtcHR5LW1lc3NhZ2UtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiB0ZC5wLWRhdGF0YWJsZS1zdWJ0YWJsZS1oZWFkZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtc3VidGFibGUtaGVhZGVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtc3VidGFibGUtaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1zdWJ0YWJsZS1oZWFkZXItY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLXN1YnRhYmxlLWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBmb290ZXIgZmFjZXQgb2YgcDpzdWJUYWJsZSAobm8gb3duIHRva2VuczogY29sdW1uIGZvb3RlciBsb29rKSAqL1xuICAgICAgICA+IHRkLnAtZGF0YXRhYmxlLXN1YnRhYmxlLWZvb3RlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItY2VsbC1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLWZvb3Rlci1mb250LXdlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtcm93LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctc2VsZWN0ZWQtY29sb3IpO1xuXG4gICAgICAgICAgICAucC1yb3ctdG9nZ2xlcixcbiAgICAgICAgICAgIC5wLXJvdy1lZGl0b3IgPiBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtcm93LXRvZ2dsZXIucC1pY29uOmhvdmVyLFxuICAgICAgICAgICAgLnAtcm93LWVkaXRvciA+IGE6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtYnV0dG9uLXNlbGVjdGVkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1zZWxlY3RlZC1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0ID4gdGQsXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQgPiB0aCxcbiAgICAgICAgJjpoYXMoKyB0ci5wLXN0YXRlLWhpZ2hsaWdodCkgPiB0ZCxcbiAgICAgICAgJjpoYXMoKyB0ci5wLXN0YXRlLWhpZ2hsaWdodCkgPiB0aCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtc2VsZWN0ZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1kYXRhdGFibGUtc2VsZWN0YWJsZSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgID4gLnAtZ3JvdXBlZC1jb2x1bW4ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LWNvbG9yKTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiByb3cgZ3JvdXBpbmc6IHA6aGVhZGVyUm93IC8gcDpzdW1tYXJ5Um93ICovXG4gICAgICAgICYucC1yb3dncm91cC1oZWFkZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtcm93LWdyb3VwLWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZ3JvdXAtaGVhZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZ3JvdXAtaGVhZGVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1kYXRhdGFibGUtc3VtbWFyeXJvdyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1zdW1tYXJ5LXJvdy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1zdW1tYXJ5LXJvdy1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtc3VtbWFyeS1yb3ctZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWRhdGF0YWJsZS1yb3dvcmRlcmluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1yb3ctdG9nZ2xlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvKiBpbi1jZWxsIGVkaXRpbmcgKi9cbiAgICAucC1jZWxsLWVkaXRvci1pbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtcm93LWVkaXRpbmcge1xuICAgICAgICAucC1jZWxsLWVkaXRvciAucC1jZWxsLWVkaXRvci1vdXRwdXQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNlbGwtZWRpdG9yIC5wLWNlbGwtZWRpdG9yLWlucHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LWVkaXRvciAucC1yb3ctZWRpdG9yLXBlbmNpbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LWVkaXRvciAucC1yb3ctZWRpdG9yLWNoZWNrLFxuICAgICAgICAucC1yb3ctZWRpdG9yIC5wLXJvdy1lZGl0b3ItY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1yb3ctZWRpdG9yIHtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yLXBlbmNpbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3ItY2hlY2ssXG4gICAgICAgIC5wLXJvdy1lZGl0b3ItY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1kYXRhIHRyLnAtcm93LWVkaXRpbmcgdGQucC1lZGl0YWJsZS1jb2x1bW4sXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgdHIucC1yb3ctZWRpdGluZyB0aC5wLWVkaXRhYmxlLWNvbHVtbixcbiAgICAucC1kYXRhdGFibGUtZGF0YSB0ZC5wLWNlbGwtZWRpdGluZyxcbiAgICAucC1kYXRhdGFibGUtZGF0YSB0aC5wLWNlbGwtZWRpdGluZyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvKiBhY3Rpb24gaWNvbnM6IHJvdyBlZGl0b3IgKGEucC1yb3ctZWRpdG9yLXBlbmNpbCAvIC1jaGVjayAvIC1jbG9zZSksIHJvdyB0b2dnbGVyLCByb3cgZ3JvdXAgdG9nZ2xlciAqL1xuICAgIC5wLXJvdy1lZGl0b3Ige1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyIC5wLXJvdy10b2dnbGVyLnAtaWNvbixcbiAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyIC5wLXJvd2dyb3VwLXRvZ2dsZXIgLnAtcm93Z3JvdXAtdG9nZ2xlci1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgLyogbm8gZGlzcGxheSBoZXJlOiBpdCB3b3VsZCB3aW4gb3ZlciB0aGUgcGVuY2lsIC8gY2hlY2sgLyBjbG9zZSBzd2l0Y2hpbmcgb2YgdGhlIGluLWNlbGwgZWRpdGluZyBydWxlcyAqL1xuICAgIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIgLnAtcm93LWVkaXRvciA+IGEsXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciAucC1yb3ctdG9nZ2xlci5wLWljb24sXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciAucC1yb3dncm91cC10b2dnbGVyIC5wLXJvd2dyb3VwLXRvZ2dsZXItaWNvbiB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tc2l6ZSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tY29sb3IpO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1kYXRhdGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtZGF0YXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWRhdGF0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyIHtcbiAgICAgICAgLyogdGV4dCB0b2dnbGVyIChleHBhbmRMYWJlbCAvIGNvbGxhcHNlTGFiZWwpICovXG4gICAgICAgIC5wLXJvdy10b2dnbGVyOm5vdCgucC1pY29uKSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgPiBhOmhvdmVyLFxuICAgICAgICAucC1yb3ctdG9nZ2xlci5wLWljb246aG92ZXIsXG4gICAgICAgIC5wLXJvd2dyb3VwLXRvZ2dsZXIgLnAtcm93Z3JvdXAtdG9nZ2xlci1pY29uOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBwLXJvdy1lZGl0b3Itb3V0bGluZToga2V5Ym9hcmQgZm9jdXMgb2YgYSByb3cgZWRpdG9yIGxpbmsgKHNldCBieSB0aGUgd2lkZ2V0KSAqL1xuICAgICAgICAucC1yb3ctZWRpdG9yID4gYTpmb2N1cy12aXNpYmxlLFxuICAgICAgICAucC1yb3ctZWRpdG9yID4gYS5wLXJvdy1lZGl0b3Itb3V0bGluZSxcbiAgICAgICAgLnAtcm93LXRvZ2dsZXI6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgLnAtcm93Z3JvdXAtdG9nZ2xlcjpmb2N1cy12aXNpYmxlIC5wLXJvd2dyb3VwLXRvZ2dsZXItaWNvbixcbiAgICAgICAgLnAtcm93Z3JvdXAtdG9nZ2xlciAucC1yb3dncm91cC10b2dnbGVyLWljb246Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3dncm91cC10b2dnbGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1nYXApO1xuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3Ige1xuICAgICAgICAgICAgPiBhLnAtcm93LWVkaXRvci1jaGVjayB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWdhcCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWRhdGF0YWJsZS1yb3ctZWRpdC1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZWRpdC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtZGF0YXRhYmxlLXJvdy1zYXZlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1zYXZlLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1kYXRhdGFibGUtcm93LWNhbmNlbC1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctY2FuY2VsLWljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogcm93IHRvZ2dsZXIgKHRoZSB0b2dnbGVyIGlzIHRoZSBpY29uKSAvIHJvdyBncm91cCB0b2dnbGVyOiB0aGUgc3RhdGUgaXMgYXJpYS1leHBhbmRlZCBvZiB0aGUgdG9nZ2xlciAqL1xuICAgICAgICAucC1kYXRhdGFibGUtcm93LXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXRhYmxlLXJvdy10b2dnbGUtZXhwYW5kZWQtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctdG9nZ2xlci5wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWljb25bYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdLFxuICAgICAgICAucC1yb3dncm91cC10b2dnbGVyW2FyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXSA+IC5wLWRhdGF0YWJsZS1yb3ctdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdGFibGUtcm93LXRvZ2dsZS1jb2xsYXBzZWQtaWNvbik7XG5cbiAgICAgICAgICAgICY6ZGlyKHJ0bCkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1yb3dncm91cC1oZWFkZXIge1xuICAgICAgICA+IHRkID4gYS5wLXJvd2dyb3VwLXRvZ2dsZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvd2dyb3VwLXRvZ2dsZXItaWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ci5wLWV4cGFuZGVkLXJvdy1jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtcm93LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LWNvbG9yKTtcbiAgICB9XG5cbiAgICAucC1jb2x1bW4tcmVzaXplciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWRhdGF0YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aCk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAucC1jb2x1bW4tcmVzaXplci1oZWxwZXIge1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1kYXRhdGFibGUtcmVzaXplLWluZGljYXRvci13aWR0aCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJlc2l6ZS1pbmRpY2F0b3ItY29sb3IpO1xuICAgIH1cblxuICAgIC8qIGNvbHVtbiBmb290ZXJzICovXG4gICAgdGZvb3QgdGQsXG4gICAgdGZvb3QgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItY2VsbC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1jZWxsLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLWZvb3Rlci1mb250LXdlaWdodCk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLWZvb3Rlci1mb250LXNpemUpO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuXG4gICAgLyogY29sdW1uIHJlb3JkZXIgaW5kaWNhdG9ycyAodGhlIHdpZGdldCBzaG93cyAvIHBvc2l0aW9ucyB0aGVtIHdpdGggaW5saW5lIHN0eWxlcykgKi9cbiAgICA+IC5wLWRhdGF0YWJsZS1jb2x1bW4tcmVvcmRlci10b3AtaWNvbixcbiAgICA+IC5wLWRhdGF0YWJsZS1jb2x1bW4tcmVvcmRlci1ib3R0b20taWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1kcm9wLXBvaW50LWNvbG9yKTtcbiAgICB9XG5cbiAgICA+IC5wLWRhdGF0YWJsZS1jb2x1bW4tcmVvcmRlci10b3AtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXRhYmxlLWNvbHVtbi1yZW9yZGVyLXRvcC1pY29uKTtcbiAgICAgICAgLyogbm90IHNob3duOiBqUXVlcnkgc2hvdygpIHdyaXRlcyBhbiBpbmxpbmUgZGlzcGxheSwgdmlzaWJpbGl0eSBrZWVwcyBpdCBoaWRkZW4gd2l0aG91dCAhaW1wb3J0YW50ICovXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICA+IC5wLWRhdGF0YWJsZS1jb2x1bW4tcmVvcmRlci1ib3R0b20taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGF0YXRhYmxlLWNvbHVtbi1yZW9yZGVyLWJvdHRvbS1pY29uKTtcbiAgICAgICAgLyogcHVzaCB0aGUgdXAgYXJyb3cgYmVsb3cgdGhlIGhlYWRlciAqL1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tcC1kYXRhdGFibGUtZHJvcC1wb2ludC1vZmZzZXQpO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWJvZHkge1xuICAgICAgICBtaW4taGVpZ2h0OiAwJTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1jZWxsLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS12aXJ0dWFsc2Nyb2xsLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnAtZGF0YXRhYmxlLXZpcnR1YWxzY3JvbGwtdGFibGUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAvKiBzZWxlY3Rpb24gY29sdW1uOiB0aGUgc2VsZWN0IGFsbCBjaGVja2JveCBmb2xsb3dzIHRoZSB0ZXh0LWFsaWduIG9mIHRoZSBjb2x1bW4gbGlrZSB0aGUgcm93IGNoZWNrYm94ZXMgKi9cbiAgICAucC1zZWxlY3Rpb24tY29sdW1uIC5wLWNoa2JveC1hbGwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1jaGVja2JveC13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1jaGVja2JveC1oZWlnaHQpO1xuICAgIH1cblxuICAgIC8qIGZyb3plbiBjb2x1bW5zICovXG4gICAgdGFibGUucC1kYXRhdGFibGUtZnMge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAucC1kYXRhdGFibGUtZnJvemVubGF5b3V0LWxlZnQsXG4gICAgLnAtZGF0YXRhYmxlLWZyb3plbmxheW91dC1yaWdodCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5wLWRhdGF0YWJsZS1mcm96ZW4tY29udGFpbmVyIHtcbiAgICAgICAgLyogdGhlIGZyb3plbiBjb250YWluZXIgY29tZXMgZmlyc3Q6IGl0cyBpbm5lciBlZGdlIG92ZXJsYXBzIHRoZSBib3JkZXIgb2YgdGhlIHNjcm9sbGFibGUgb25lIChhbHNvIGluIFJUTCkgKi9cbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0xcHg7XG5cbiAgICAgICAgLnAtcm93LXRvZ2dsZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0ycHg7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRhdGF0YWJsZS1zdHJpcGVkIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIucC1kYXRhdGFibGUtb2RkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtcm93LXN0cmlwZWQtYmFja2dyb3VuZCk7XG5cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctaG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNpemVzICovXG4gICAgJi5wLWRhdGF0YWJsZS1zbSB7XG4gICAgICAgIC5wLWRhdGF0YWJsZS1oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgPiB0ciA+IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciA+IHRkLFxuICAgICAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyID4gdGgge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1jZWxsLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZGF0YXRhYmxlLWZvb3RlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1mb290ZXItc20tcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtZGF0YXRhYmxlLWxnIHtcbiAgICAgICAgLnAtZGF0YXRhYmxlLWhlYWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItbGctcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCA+IHRyID4gdGgge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtbGctcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyID4gdGQsXG4gICAgICAgIC5wLWRhdGF0YWJsZS1kYXRhID4gdHIgPiB0aCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtbGctcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLWNlbGwtbGctcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1kYXRhdGFibGUtZm9vdGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWZvb3Rlci1sZy1wYWRkaW5nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1kYXRhdGFibGUtc20gLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUtdGhlYWRjbG9uZSA+IHRyID4gdGgsXG4gICAgJi5wLWRhdGF0YWJsZS1sZyAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS10aGVhZGNsb25lID4gdHIgPiB0aCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLnAtZGF0YXRhYmxlLWdyaWRsaW5lcyB7XG4gICAgICAgIC5wLWRhdGF0YWJsZS1oZWFkZXIge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDAgMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZGF0YXRhYmxlLWZvb3RlciB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMXB4IDFweCAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucC1wYWdpbmF0b3Ige1xuICAgICAgICAgICAgJi5wLXBhZ2luYXRvci10b3Age1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXBhZ2luYXRvci1ib3R0b20ge1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkID4gdHIgPiB0aCxcbiAgICAgICAgLnAtZGF0YXRhYmxlLWRhdGEgPiB0ciA+IHRkLFxuICAgICAgICAucC1kYXRhdGFibGUtZGF0YSA+IHRyID4gdGgsXG4gICAgICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLXRoZWFkY2xvbmUgPiB0ciA+IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwIG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtZGF0YXRhYmxlLXN0aWNreSB7XG4gICAgICAgICYucC1zdGlja3kge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1vdmVybGF5LXNlbGVjdC1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiB0YWJsZSB7XG4gICAgICAgICAgICA+IHRoZWFkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiB0Zm9vdCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtZm9vdGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLWRhdGF0YWJsZS10YWJsZXdyYXBwZXIge1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ucC1kYXRhdGFibGUtc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUtYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWhlYWRlcixcbi5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWZvb3RlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IDAgbm9uZTtcbn1cblxuLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUge1xuICAgIC5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLWhlYWRlcixcbiAgICAucC1kYXRhdGFibGUtc2Nyb2xsYWJsZS1mb290ZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUtaGVhZGVyIHRkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG59XG5cbi5wLWRhdGF0YWJsZS1zY3JvbGxhYmxlLXRoZWFkY2xvbmUge1xuICAgIGhlaWdodDogMDtcblxuICAgIHRyIHtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgICAgJi5wLXN0YXRlLWRlZmF1bHQge1xuICAgICAgICAgICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7IC8qICMxMjkwOCAqL1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3Bhbi5wLWNvbHVtbi10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtZGF0YXRhYmxlLXJlc2l6YWJsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDFweDsgLyogZml4IGZvciB3ZWJraXQgb3ZlcmZsb3cgKi9cbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIHRoZWFkIHRoLFxuICAgIHRib2R5IHRkLFxuICAgIHRib2R5IHRoLFxuICAgIHRmb290IHRkIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICB0aC5wLXJlc2l6YWJsZS1jb2x1bW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxufVxuXG4ucC1kYXRhdGFibGUtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLnAtZGF0YXRhYmxlLWZyb3plbi1jb250YWluZXIgLnAtZGF0YXRhYmxlLXNjcm9sbGFibGUtYm9keSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnAtZGF0YXRhYmxlLWZyb3plbmxheW91dC1yaWdodCAucC1kYXRhdGFibGUtZW1wdHktbWVzc2FnZSB0ZCB7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cbiAgICA+ICoge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuXG4vKiBrZXlib2FyZCBjZWxsIG5hdmlnYXRpb24gKGNlbGxOYXZpZ2F0aW9uPVwidHJ1ZVwiKSAqL1xuLnAtZGF0YXRhYmxlLWRhdGEgdGRbcm9sZT1cImdyaWRjZWxsXCJdOmZvY3VzLFxuLnAtZGF0YXRhYmxlLWRhdGEgdGhbcm9sZT1cInJvd2hlYWRlclwiXTpmb2N1cyxcbi5wLWRhdGF0YWJsZS1kYXRhIHRkW3JvbGU9XCJncmlkXCJdIFt0YWJpbmRleD1cIjBcIl06Zm9jdXMge1xuICAgIG91dGxpbmU6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1kYXRhdGFibGUtcm93LWZvY3VzLXJpbmctY29sb3IpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1mb2N1cy1yaW5nLXNoYWRvdyk7XG59XG5cbi5wLWRhdGF0YWJsZS1yZWZsb3cge1xuICAgIC5wLWRhdGF0YWJsZS1kYXRhIHRkW3JvbGU9XCJncmlkY2VsbFwiXSAucC1jb2x1bW4tdGl0bGUsXG4gICAgLnAtZGF0YXRhYmxlLWRhdGEgdGhbcm9sZT1cInJvd2hlYWRlclwiXSAucC1jb2x1bW4tdGl0bGUsXG4gICAgLnAtZXhwYW5kZWQtcm93LWNvbnRlbnQgdGQgLnAtY29sdW1uLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucC1yZWZsb3ctbGFiZWwsXG4gICAgLnAtcmVmbG93LWRyb3Bkb3duIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcC1kYXRhdGFibGUtcmVmbG93LWdhcCk7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogc29ydCBkcm9wZG93biAobmF0aXZlIHNlbGVjdCkgKi9cbiAgICAucC1yZWZsb3ctZHJvcGRvd24ge1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXNlbGVjdC1mb250LXNpemUpO1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1wLXNlbGVjdC1wYWRkaW5nLXkpO1xuICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1zZWxlY3QtcGFkZGluZy14KTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtc2VsZWN0LWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zZWxlY3QtYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtc2VsZWN0LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2VsZWN0LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtc2VsZWN0LWZvY3VzLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5wLWRhdGF0YWJsZS1yZWZsb3cgdGhlYWQgdGgsXG4gICAgLnAtZGF0YXRhYmxlLXJlZmxvdyB0Zm9vdCB0ZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoga2VlcCBjb2x1bW4gZmlsdGVycyB1c2FibGUgaW4gcmVmbG93IG1vZGU6IHN0YWNrIHRoZSBmaWx0ZXJhYmxlIGhlYWRlciBjZWxscyBpbnN0ZWFkIG9mIGhpZGluZyB0aGUgd2hvbGUgdGhlYWQgKi9cbiAgICAucC1kYXRhdGFibGUtcmVmbG93IHtcbiAgICAgICAgdGhlYWQgdGgucC1maWx0ZXItY29sdW1uIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiBpbmxpbmUtc3RhcnQ7XG4gICAgICAgICAgICBjbGVhcjogaW5saW5lLXN0YXJ0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG5cbiAgICAgICAgICAgIC5wLWNvbHVtbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXRhYmxlLXJlZmxvdy10aXRsZS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tcC1kYXRhdGFibGUtcmVmbG93LWdhcCkgMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1zb3J0YWJsZS1jb2x1bW4taWNvbixcbiAgICAgICAgICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1iYWRnZSxcbiAgICAgICAgICAgIC5wLWNvbHVtbi1yZXNpemVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1jb2x1bW4tZmlsdGVyLFxuICAgICAgICAgICAgLnAtY29sdW1uLWN1c3RvbWZpbHRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYucC1maWx0ZXItdG9nZ2xlYWJsZSB0aGVhZCB0aC5wLWZpbHRlci1jb2x1bW4gOmlzKC5wLWNvbHVtbi1maWx0ZXIsIC5wLWNvbHVtbi1jdXN0b21maWx0ZXIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1kYXRhdGFibGUtZGF0YSB7XG4gICAgICAgICAgICB0ZFtyb2xlPVwiZ3JpZGNlbGxcIl06bm90KC5wLWhpZGRlbiksXG4gICAgICAgICAgICB0aFtyb2xlPVwicm93aGVhZGVyXCJdOm5vdCgucC1oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIGNsZWFyOiBpbmxpbmUtc3RhcnQ7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGlubGluZS1zdGFydDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC13aWRnZXQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyLnAtd2lkZ2V0LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwIG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwIG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRkW3JvbGU9XCJncmlkY2VsbFwiXSAucC1jb2x1bW4tdGl0bGUsXG4gICAgICAgICAgICB0aFtyb2xlPVwicm93aGVhZGVyXCJdIC5wLWNvbHVtbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF0YWJsZS1yZWZsb3ctdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1kYXRhdGFibGUtcmVmbG93LWdhcCk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzNSU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtYm9yZGVyLWNvbG9yKTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwIG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMCBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5wLWV4cGFuZGVkLXJvdy1jb250ZW50ID4gdGQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnAtcmVmbG93LWxhYmVsLFxuICAgICAgICAucC1yZWZsb3ctZHJvcGRvd24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcmVmbG93LWRyb3Bkb3duIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtZGF0YXRhYmxlLXJlZmxvdy1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIucC1kYXRhdGFibGUtZW1wdHktbWVzc2FnZSA+IHRkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIERhdGFWaWV3OiBwOmRhdGFWaWV3IChsaXN0IGFuZCBncmlkIGxheW91dCksIFByaW1lVUlYIGRhdGF2aWV3IHRva2VucyArIFByaW1lRmFjZXMgZGF0YXZpZXcgdG9rZW5zXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtZGF0YXZpZXctbGlzdCwgcC1kYXRhdmlldy1ncmlkLCBwLWRhdGF2aWV3LWxheW91dC1vcHRpb25zIChsYXlvdXQgc3dpdGNoLCBzdHlsZWQgbGlrZSBhIHNlbGVjdCBidXR0b24pXG4gKi9cbi5wLWRhdGF2aWV3IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1ib3JkZXItd2lkdGgpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXZpZXctYm9yZGVyLXJhZGl1cyk7XG4gICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1wYWRkaW5nKTtcblxuICAgIC5wLXBhZ2luYXRvciB7XG4gICAgICAgICYucC1wYWdpbmF0b3ItdG9wIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtZGF0YXZpZXctcGFnaW5hdG9yLXRvcC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci10b3AtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtcGFnaW5hdG9yLWJvdHRvbSB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LXBhZ2luYXRvci1ib3R0b20tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1wYWdpbmF0b3ItYm90dG9tLWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtZGF0YXZpZXctaGVhZGVyIHtcbiAgICAgICAgLyogY29udGFpbnMgdGhlIGZsb2F0ZWQgbGF5b3V0IG9wdGlvbnMgKi9cbiAgICAgICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtZGF0YXZpZXctaGVhZGVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1oZWFkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRhdGF2aWV3LWhlYWRlci1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAucC1kYXRhdmlldy1sYXlvdXQtb3B0aW9ucyB7XG4gICAgICAgICAgICBmbG9hdDogaW5saW5lLWVuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWRhdGF2aWV3LWZvb3RlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1mb290ZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF2aWV3LWZvb3Rlci1mb250LXdlaWdodCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGF0YXZpZXctZm9vdGVyLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLWRhdGF2aWV3LWNvbnRlbnQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1kYXRhdmlldy1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtcGFkZGluZyk7XG5cbiAgICAgICAgLyogdGhlIHdpZGdldCByZXBsYWNlcyB0aGUgaXRlbXMgb24gYSBsYXlvdXQgc3dpdGNoIGFuZCBvbiBwYWdpbmc6IHRoZSBuZXcgb25lcyBmYWRlIGFuZCBzbGlkZSBpbiAoYmFzZS9jb21tb24uY3NzKSAqL1xuICAgICAgICA+ICoge1xuICAgICAgICAgICAgLS1fZW50ZXItb2Zmc2V0OiB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtZW50ZXItb2Zmc2V0KTtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogcC1lbnRlciB2YXIoLS1wLWRhdGF2aWV3LWNvbnRlbnQtZW50ZXItZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmctZW50ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRhdGF2aWV3LWxpc3QgLnAtZGF0YXZpZXctcm93IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdmlldy1pdGVtLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRhdGF2aWV3LWdyaWQgLnAtZGF0YXZpZXctY29sdW1uIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdmlldy1ncmlkLWNvbHVtbi1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAvKiBsYXlvdXQgc3dpdGNoOiBhIHNlbGVjdCBidXR0b24gKFByaW1lVUlYIHNlbGVjdGJ1dHRvbiA9IHRvZ2dsZWJ1dHRvbiB0b2tlbnMpICovXG4gICAgLnAtZGF0YXZpZXctbGF5b3V0LW9wdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10b2dnbGVidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b2dnbGVidXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLXBhZGRpbmcpO1xuXG4gICAgICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b2dnbGVidXR0b24tY29udGVudC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdG9nZ2xlYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtdG9nZ2xlYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtdG9nZ2xlYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAucC1idXR0b24tdGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtZGF0YXZpZXctbGlzdC1sYXlvdXQtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdmlldy1saXN0LWxheW91dC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtZGF0YXZpZXctZ3JpZC1sYXlvdXQtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kYXRhdmlldy1ncmlkLWxheW91dC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogdGhlIGJ1dHRvbiBpdHNlbGYgaXMgdGhlIHBpbGwsIHRoZSA6OmJlZm9yZSBwaWxsIG9mIHNlbGVjdG9uZWJ1dHRvbi5jc3Mgd291bGQgY292ZXIgdGhlIGljb24gKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogYmVhdHMgdGhlIG91dGVyIGNvcm5lciByYWRpdXMgb2YgZ3JvdXBlZCBidXR0b25zIChzZWxlY3RvbmVidXR0b24uY3NzKSAqL1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b2dnbGVidXR0b24tY29udGVudC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtYWN0aXZlKTpob3ZlcixcbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3Zlcjpub3QoLnAtc3RhdGUtYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWljb24taG92ZXItY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiB0aGUgOmhvdmVyIHZhcmlhbnQgYmVhdHMgdGhlIGNoZWNrZWQgaG92ZXIgb2Ygc2VsZWN0b25lYnV0dG9uLmNzcyAqL1xuICAgICAgICAgICAgJi5wLXN0YXRlLWFjdGl2ZSxcbiAgICAgICAgICAgICYucC1zdGF0ZS1hY3RpdmU6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVidXR0b24tY29udGVudC1jaGVja2VkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1pY29uLWNoZWNrZWQtY29sb3IpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtY2hlY2tlZC1zaGFkb3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtZm9jdXMsXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLWRhdGF2aWV3LWxpc3QgLnAtZGF0YXZpZXctbGlzdC1jb250YWluZXIge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLnAtZmx1aWQgLnAtZGF0YXZpZXctbGF5b3V0LW9wdGlvbnMucC1idXR0b25zZXQge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuIiwgIi8qXG4gKiBEaWFsb2c6IHA6ZGlhbG9nLCBwOmNvbmZpcm1EaWFsb2csIFByaW1lRmFjZXMuc2hvd01lc3NhZ2VJbkRpYWxvZyAocC1tZXNzYWdlLWRpYWxvZyksIERpYWxvZyBGcmFtZXdvcmtcbiAqXG4gKiBNYXJrdXA6IC5wLWRpYWxvZyAoZml4ZWQgZnVsbC12aWV3cG9ydCBjb250YWluZXIpID4gLnAtZGlhbG9nLWJveCA+IC5wLWRpYWxvZy10aXRsZWJhciwgLnAtZGlhbG9nLWNvbnRlbnQsIC5wLWRpYWxvZy1mb290ZXJcbiAqIFN0YXRlczogcC1kaWFsb2ctYWJzb2x1dGUsIHAtZGlhbG9nLWZpdHZpZXdwb3J0LCBwLW92ZXJmbG93LWhpZGRlbiwgcC1yZXNpemFibGUsIHAtZGlhbG9nLXJ0bCxcbiAqICAgICAgICAgcC1kaWFsb2ctbWF4aW1pemVkLCBwLWRpYWxvZy1taW5pbWl6ZWQgKGRvY2tlZCBjbG9uZSksIHAtY29uZmlybS1kaWFsb2csIHAtbWVzc2FnZS1kaWFsb2dcbiAqL1xuYm9keS5wLWRpYWxvZy1vcGVuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLWRpYWxvZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIC8qIG5vIHRva2VuOiB2aWV3cG9ydCBndXR0ZXIgYXJvdW5kIHRoZSBkaWFsb2cgYm94LCByZXVzZXMgdGhlIG1vZGFsIHBhZGRpbmcgKi9cbiAgICBwYWRkaW5nOiB2YXIoLS1wLW92ZXJsYXktbW9kYWwtcGFkZGluZyk7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3V0bGluZTogMDtcbiAgICAvKiBub24gbW9kYWw6IHRoZSBjb250YWluZXIgY292ZXJzIHRoZSB2aWV3cG9ydCwgb25seSB0aGUgYm94IHRha2VzIHRoZSBwb2ludGVyLCBzbyB0aGUgcGFnZSBhcm91bmQgdGhlIGRpYWxvZyBzdGF5c1xuICAgICAgIHVzYWJsZSAoc2Nyb2xsaW5nIG92ZXIgdGhlIGJveCBzdGlsbCBzY3JvbGxzIHRoZSBjb250YWluZXIpOyBhIG1vZGFsIGRpYWxvZyBrZWVwcyBpdCBmb3IgaXRzIHNjcm9sbGJhciAqL1xuICAgICY6bm90KFthcmlhLW1vZGFsPVwidHJ1ZVwiXSkge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmLnAtZGlhbG9nLWFic29sdXRlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgIC8qIGRpYWxvZyBmcmFtZXdvcms6IGhpZGRlbiBieSB2aXNpYmlsaXR5IHVudGlsIHNob3duICovXG4gICAgJi5wLW92ZXJsYXktaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLXRpdGxlYmFyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5wLWRpYWxvZy1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG5cbiAgICAucC1kaWFsb2ctYm94IC5wLWRpYWxvZy1jb250ZW50LnAtZGYtY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLnAtcmVzaXphYmxlLXNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogOXB4O1xuICAgICAgICBoZWlnaHQ6IDlweDtcbiAgICAgICAgcmlnaHQ6IC01cHg7XG4gICAgICAgIGJvdHRvbTogLTVweDtcbiAgICB9XG5cbiAgICAucC1kaWFsb2ctdGl0bGViYXItY2xvc2UsXG4gICAgLnAtZGlhbG9nLXRpdGxlYmFyLW1pbmltaXplLFxuICAgIC5wLWRpYWxvZy10aXRsZWJhci1tYXhpbWl6ZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmLnAtb3ZlcmZsb3ctaGlkZGVuLFxuICAgICYucC1kaWFsb2ctYWJzb2x1dGUsXG4gICAgJi5wLWRpYWxvZy1maXR2aWV3cG9ydCB7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmLnAtZGlhbG9nLWFic29sdXRlIC5wLWRpYWxvZy1ib3gge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLWJveCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGlhbG9nLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kaWFsb2ctY29sb3IpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRpYWxvZy1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWRpYWxvZy1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1kaWFsb2ctc2hhZG93KTtcblxuICAgICAgICAvKiBoZWFkZXI6IGZsZXggcm93IGxpa2UgUHJpbWVVSVg7IHRoZSBpY29ucyBhcmUgcmVuZGVyZWQgY2xvc2UsIG1heGltaXplLCBtaW5pbWl6ZSwgYWN0aW9ucyBhbmQgYXJlIHJlb3JkZXJlZCAqL1xuICAgICAgICAucC1kaWFsb2ctdGl0bGViYXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGlhbG9nLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRpYWxvZy10aXRsZS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRpYWxvZy1oZWFkZXItcGFkZGluZyk7XG5cbiAgICAgICAgICAgIC5wLWRpYWxvZy10aXRsZSB7XG4gICAgICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWRpYWxvZy10aXRsZS1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRpYWxvZy10aXRsZS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWRpYWxvZy1hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtZGlhbG9nLWhlYWRlci1nYXApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IC5wLWRpYWxvZy10aXRsZWJhci1taW5pbWl6ZSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gLnAtZGlhbG9nLXRpdGxlYmFyLW1heGltaXplIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAucC1kaWFsb2ctdGl0bGViYXItY2xvc2Uge1xuICAgICAgICAgICAgICAgIG9yZGVyOiA0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBoZWFkZXIgaWNvbnM6IHJvdW5kZWQgdGV4dCBzZWNvbmRhcnkgaWNvbi1vbmx5IGJ1dHRvbiBsaWtlIFByaW1lVUlYICovXG4gICAgICAgICAgICAucC1kaWFsb2ctdGl0bGViYXItaWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYnV0dG9uLWljb24tb25seS13aWR0aCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtZGlhbG9nLWhlYWRlci1nYXApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWRpYWxvZy10aXRsZWJhci1pY29uOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1kaWFsb2ctdGl0bGViYXItaWNvbjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtZGlhbG9nLXRpdGxlYmFyLWljb246Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWRpYWxvZy1jbG9zZS1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kaWFsb2ctY2xvc2UtaWNvbik7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLW1pbmltaXplLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRpYWxvZy1taW5pbWl6ZS1pY29uKTtcbiAgICB9XG5cbiAgICAucC1kaWFsb2ctbWF4aW1pemUtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGlhbG9nLW1heGltaXplLWljb24pO1xuICAgIH1cblxuICAgIC8qIHRoZSBkb2NrZWQgY2xvbmUgc2hvd3MgdGhlIHJlc3RvcmUgaWNvbiBvZiBtaW5pbWl6ZSwgdGhlIG1heGltaXplZCBkaWFsb2cgdGhlIHJlc3RvcmUgaWNvbiBvZiBtYXhpbWl6ZSAob25seSBpdHNcbiAgICAgICBvd24gdGl0bGViYXIsIG5vdCB0aGUgb25lIG9mIGEgZGlhbG9nIG5lc3RlZCBpbiBpdHMgY29udGVudCkgKi9cbiAgICAmLnAtZGlhbG9nLW1pbmltaXplZCAucC1kaWFsb2ctbWluaW1pemUtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtZGlhbG9nLXVubWluaW1pemUtaWNvbik7XG4gICAgfVxuXG4gICAgJi5wLWRpYWxvZy1tYXhpbWl6ZWQgPiAucC1kaWFsb2ctYm94ID4gLnAtZGlhbG9nLXRpdGxlYmFyIC5wLWRpYWxvZy1tYXhpbWl6ZS1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kaWFsb2ctdW5tYXhpbWl6ZS1pY29uKTtcbiAgICB9XG5cbiAgICAucC1kaWFsb2ctYm94IHtcbiAgICAgICAgLnAtZGlhbG9nLWNvbnRlbnQge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kaWFsb2ctY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRpYWxvZy1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogZm9vdGVyIChwOmRpYWxvZyBmb290ZXIgZmFjZXQsIHA6Y29uZmlybURpYWxvZyBidXR0b24gcGFuZSkgKi9cbiAgICAgICAgLnAtZGlhbG9nLWZvb3RlciB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGlhbG9nLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kaWFsb2ctZm9vdGVyLXBhZGRpbmcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogZW5kO1xuXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLWRpYWxvZy1mb290ZXItZ2FwKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIG1heGltaXplZDogdGhlIHdpZGdldCBzaXplcyB0aGUgY29udGFpbmVyIHRvIHRoZSB3aW5kb3csIHRoZSBib3ggZm9sbG93cyBpdCAoIWltcG9ydGFudCBiZWF0cyB0aGUgaW5saW5lIHNpemUpICovXG4gICAgJi5wLWRpYWxvZy1tYXhpbWl6ZWQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIC5wLWRpYWxvZy1ib3gge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogbWluaW1pemVkOiBhIGNsb25lIG9mIHRoZSBkaWFsb2cgKHRpdGxlIGJhciBvbmx5KSBkb2NrZWQgaW50byAucC1kaWFsb2ctZG9ja2luZy16b25lICovXG4gICAgJi5wLWRpYWxvZy1taW5pbWl6ZWQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICAgICAucC1kaWFsb2ctYm94IHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogY29uZmlybSBkaWFsb2cgYW5kIG1lc3NhZ2UgZGlhbG9nICovXG4gICAgJi5wLWNvbmZpcm0tZGlhbG9nIC5wLWRpYWxvZy1ib3ggLnAtZGlhbG9nLWNvbnRlbnQsXG4gICAgJi5wLW1lc3NhZ2UtZGlhbG9nIC5wLWRpYWxvZy1ib3ggLnAtZGlhbG9nLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXAtY29uZmlybWRpYWxvZy1jb250ZW50LWdhcCk7XG4gICAgfVxuXG4gICAgJi5wLWNvbmZpcm0tZGlhbG9nIC5wLWRpYWxvZy1ib3ggLnAtZGlhbG9nLWNvbnRlbnQgPiBzcGFuLFxuICAgICYucC1tZXNzYWdlLWRpYWxvZyAucC1kaWFsb2ctYm94IC5wLWRpYWxvZy1jb250ZW50ID4gc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1jb25maXJtZGlhbG9nLW1lc3NhZ2UtY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY29uZmlybWRpYWxvZy1tZXNzYWdlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWNvbmZpcm1kaWFsb2ctbWVzc2FnZS1mb250LXdlaWdodCk7XG4gICAgfVxuXG4gICAgJi5wLWNvbmZpcm0tZGlhbG9nIC5wLWRpYWxvZy1ib3ggLnAtZGlhbG9nLWNvbnRlbnQgPiBzcGFuLnAtY29uZmlybS1kaWFsb2ctc2V2ZXJpdHksXG4gICAgJi5wLW1lc3NhZ2UtZGlhbG9nIC5wLWRpYWxvZy1ib3ggLnAtZGlhbG9nLWNvbnRlbnQgPiBzcGFuLnAtZGlhbG9nLW1lc3NhZ2Uge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWNvbmZpcm1kaWFsb2ctaWNvbi1jb2xvcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1jb25maXJtZGlhbG9nLWljb24tc2l6ZSk7XG4gICAgfVxuXG4gICAgLyogc2V2ZXJpdHkgaWNvbjogcDpjb25maXJtRGlhbG9nIHNldmVyaXR5LCBtZXNzYWdlIGRpYWxvZyBzZXZlcml0eSAqL1xuICAgIC5wLWRpYWxvZy13YXJuLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRpYWxvZy13YXJuLWljb24pO1xuICAgIH1cblxuICAgIC5wLWRpYWxvZy1pbmZvLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRpYWxvZy1pbmZvLWljb24pO1xuICAgIH1cblxuICAgIC5wLWRpYWxvZy1lcnJvci1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1kaWFsb2ctZXJyb3ItaWNvbik7XG4gICAgfVxuXG4gICAgLnAtZGlhbG9nLWZhdGFsLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWRpYWxvZy1mYXRhbC1pY29uKTtcbiAgICB9XG59XG5cbi5wLWRyYWdnYWJsZSAucC1kaWFsb2ctdGl0bGViYXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cblxuLnAtZGlhbG9nLWRvY2tpbmctem9uZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IHZhcigtLXAtZGlhbG9nLWhlYWRlci1nYXApO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtZGlhbG9nLWhlYWRlci1nYXApO1xufVxuXG4vKiB0cmFuc2ZlciBlZmZlY3Qgd2hpbGUgbWluaW1pemluZyAqL1xuLnAtZGlhbG9nLW1pbmltaXppbmcge1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZGlhbG9nLWJvcmRlci1yYWRpdXMpO1xufVxuXG4ucC1kaWFsb2ctbWFzayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucC1kaWFsb2ctcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbn1cbiIsICIvKlxuICogRGl2aWRlcjogcDpkaXZpZGVyIChsYXlvdXQgaG9yaXpvbnRhbCB8IHZlcnRpY2FsLCB0eXBlIHNvbGlkIHwgZGFzaGVkIHwgZG90dGVkLCBhbGlnbiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCB0b3AgfCBib3R0b20pXG4gKi9cblxuLnAtZGl2aWRlci1ob3Jpem9udGFsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgICYucC1kaXZpZGVyLWxlZnQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgJi5wLWRpdmlkZXItcmlnaHQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICYucC1kaXZpZGVyLWNlbnRlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLnAtZGl2aWRlci1jb250ZW50IHtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4ucC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICAmLnAtZGl2aWRlci10b3Age1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAmLnAtZGl2aWRlci1jZW50ZXIge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICYucC1kaXZpZGVyLWJvdHRvbSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG59XG5cbi5wLWRpdmlkZXIge1xuICAgICYucC1kaXZpZGVyLXNvbGlkIHtcbiAgICAgICAgJi5wLWRpdmlkZXItaG9yaXpvbnRhbDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWRpdmlkZXItdmVydGljYWw6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtZGl2aWRlci1kYXNoZWQge1xuICAgICAgICAmLnAtZGl2aWRlci1ob3Jpem9udGFsOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWRpdmlkZXItdmVydGljYWw6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogZGFzaGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRpdmlkZXItZG90dGVkIHtcbiAgICAgICAgJi5wLWRpdmlkZXItaG9yaXpvbnRhbDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1kaXZpZGVyLXZlcnRpY2FsOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IGRvdHRlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWRpdmlkZXItY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXAtZGl2aWRlci1jb250ZW50LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1kaXZpZGVyLWNvbnRlbnQtY29sb3IpO1xuICAgIH1cblxuICAgICYucC1kaXZpZGVyLWhvcml6b250YWwge1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtZGl2aWRlci1ob3Jpem9udGFsLW1hcmdpbik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGl2aWRlci1ob3Jpem9udGFsLXBhZGRpbmcpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1wLWRpdmlkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWRpdmlkZXItY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRpdmlkZXItaG9yaXpvbnRhbC1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLWRpdmlkZXItdmVydGljYWwge1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtZGl2aWRlci12ZXJ0aWNhbC1tYXJnaW4pO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRpdmlkZXItdmVydGljYWwtcGFkZGluZyk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tcC1kaXZpZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1kaXZpZGVyLWNvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kaXZpZGVyLXZlcnRpY2FsLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIEZpZWxkc2V0OiBwOmZpZWxkc2V0XG4gKlxuICogU3RhdGVzOiBwLWZpZWxkc2V0LXRvZ2dsZWFibGUsIHAtc3RhdGUtaG92ZXIgb24gdGhlIGxlZ2VuZCAoc2V0IGJ5IHRoZSB3aWRnZXQpXG4gKi9cblxuLyogdGhlIHRvZ2dsZWFibGUgbGVnZW5kIGlzIGZvY3VzYWJsZSAodGFiaW5kZXgpOyBrZXlib2FyZCBmb2N1cyByaW5nIGJlbG93ICovXG4ucC1maWVsZHNldC10b2dnbGVhYmxlIC5wLWZpZWxkc2V0LWxlZ2VuZCB7XG4gICAgb3V0bGluZTogMDtcbn1cblxuLnAtZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLWZpZWxkc2V0LXBhZGRpbmcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZmllbGRzZXQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtZmllbGRzZXQtY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtZmllbGRzZXQtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWZpZWxkc2V0LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLnAtZmllbGRzZXQtbGVnZW5kIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1nYXApO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1wYWRkaW5nKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1maWVsZHNldC1sZWdlbmQtZm9udC13ZWlnaHQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1maWVsZHNldC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1maWVsZHNldC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1maWVsZHNldC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWZpZWxkc2V0LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIH1cblxuICAgICYucC1maWVsZHNldC10b2dnbGVhYmxlIC5wLWZpZWxkc2V0LWxlZ2VuZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1maWVsZHNldC1sZWdlbmQge1xuICAgICAgICAucC1maWVsZHNldC10b2dnbGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWZpZWxkc2V0LXRvZ2dsZS1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXAtZmllbGRzZXQtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1maWVsZHNldC10b2dnbGUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWZpZWxkc2V0LXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdIC5wLWZpZWxkc2V0LXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtZmllbGRzZXQtdG9nZ2xlLWNvbGxhcHNlZC1pY29uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWZpZWxkc2V0LWxlZ2VuZC5wLXN0YXRlLWhvdmVyLFxuICAgICYucC1maWVsZHNldC10b2dnbGVhYmxlIC5wLWZpZWxkc2V0LWxlZ2VuZDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1maWVsZHNldC1sZWdlbmQtaG92ZXItY29sb3IpO1xuICAgIH1cblxuICAgIC5wLWZpZWxkc2V0LWxlZ2VuZC5wLXN0YXRlLWhvdmVyIC5wLWZpZWxkc2V0LXRvZ2dsZXIsXG4gICAgJi5wLWZpZWxkc2V0LXRvZ2dsZWFibGUgLnAtZmllbGRzZXQtbGVnZW5kOmhvdmVyIC5wLWZpZWxkc2V0LXRvZ2dsZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1maWVsZHNldC10b2dnbGUtaWNvbi1ob3Zlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLyoga2V5Ym9hcmQgb25seSAodGhlIHdpZGdldCBhbHNvIHNldHMgcC1zdGF0ZS1mb2N1cyBvbiBtb3VzZSBmb2N1cykgKi9cbiAgICAucC1maWVsZHNldC1sZWdlbmQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtZmllbGRzZXQtbGVnZW5kLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1maWVsZHNldC1sZWdlbmQtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWZpZWxkc2V0LWxlZ2VuZC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLnAtZmllbGRzZXQtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZmllbGRzZXQtY29udGVudC1wYWRkaW5nKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIEdyb3dsOiBwOmdyb3dsIChQcmltZVVJWCB0b2FzdClcbiAqXG4gKiBNYXJrdXA6IC5wLWdyb3dsID4gLnAtZ3Jvd2wtaXRlbS1jb250YWluZXIucC1ncm93bC08c2V2ZXJpdHk+ID4gLnAtZ3Jvd2wtaXRlbVxuICogICAgICAgICA+IC5wLWdyb3dsLWljb24tY2xvc2UucC1ncm93bC1jbG9zZS1pY29uICsgc3Bhbi5wLWdyb3dsLWltYWdlLnAtZ3Jvd2wtPHNldmVyaXR5Pi1pY29uICsgLnAtZ3Jvd2wtbWVzc2FnZSAoPiAucC1ncm93bC10aXRsZSArIHApXG4gKiBTZXZlcml0eSBjbGFzc2VzIG9ubHkgc3dpdGNoIHRoZSBwcml2YXRlIC0tXyogdmFyaWFibGVzOiBwLWdyb3dsLWluZm8gfCAtc3VjY2VzcyB8IC13YXJuIHwgLWVycm9yIHwgLWZhdGFsXG4gKiBTdGF0ZXM6IHAtZ3Jvd2wtc3RpY2t5LiBQRiBvbmx5IHRva2VucyAob2Zmc2V0LCBnYXAsIGZhdGFsKTogdGhlIGdyb3dsIGJsb2NrIG9mIHByZXNldHMvKi5jc3NcbiAqIFZhcmlhbnRzOiBwLWdyb3dsLW91dGxpbmVkIHwgcC1ncm93bC1zaW1wbGUsIG9uIHRoZSAucC1ncm93bCBjb250YWluZXIgb3IgYW55IGFuY2VzdG9yLiBwOmdyb3dsIGhhcyBubyBzdHlsZUNsYXNzXG4gKiBhbmQgYXBwZW5kcyBpdHMgY29udGFpbmVyIHRvIHRoZSBib2R5LCBzbyB0b2RheTogb24gdGhlIGJvZHkgKGFsbCBncm93bHMpIG9yIGFkZGVkIHRvIHRoZSB3aWRnZXQgY29udGFpbmVyXG4gKiAoUEYoJ2dyb3dsJykuanEuYWRkQ2xhc3MoJ3AtZ3Jvd2wtb3V0bGluZWQnKSk7IGEgc3R5bGVDbGFzcyAvIHZhcmlhbnQgYXR0cmlidXRlIGluIHRoZSBjb3JlIHdvdWxkIHNldCBpdCB0aGVyZS5cbiAqL1xuXG4ucC1ncm93bCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogdmFyKC0tcC1ncm93bC1vZmZzZXQpO1xuICAgIHJpZ2h0OiB2YXIoLS1wLWdyb3dsLW9mZnNldCk7XG4gICAgd2lkdGg6IHZhcigtLXAtdG9hc3Qtd2lkdGgpO1xuICAgIG1heC13aWR0aDogY2FsYygxMDBkdncgLSAyICogdmFyKC0tcC1ncm93bC1vZmZzZXQpKTtcblxuICAgIC5wLWdyb3dsLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtdG9hc3QtaW5mby1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvYXN0LWluZm8tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtdG9hc3QtaW5mby1jb2xvcik7XG4gICAgICAgIC0tX2RldGFpbC1jb2xvcjogdmFyKC0tcC10b2FzdC1pbmZvLWRldGFpbC1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC10b2FzdC1pbmZvLXNoYWRvdyk7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLXRvYXN0LWluZm8tY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLXRvYXN0LWluZm8tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC10b2FzdC1pbmZvLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLXRvYXN0LWluZm8tb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3QtaW5mby1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtdG9hc3QtaW5mby1zaW1wbGUtY29sb3IpO1xuXG4gICAgICAgIG1hcmdpbjogMCAwIHZhcigtLXAtZ3Jvd2wtZ2FwKSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fYmcpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdG9hc3QtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1fYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgY29sb3I6IHZhcigtLV9jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9hc3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9zaGFkb3cpO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIodmFyKC0tcC10b2FzdC1ibHVyKSk7XG5cbiAgICAgICAgJi5wLWdyb3dsLXN1Y2Nlc3Mge1xuICAgICAgICAgICAgLS1fYmc6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC10b2FzdC1zdWNjZXNzLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC10b2FzdC1zdWNjZXNzLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2RldGFpbC1jb2xvcjogdmFyKC0tcC10b2FzdC1zdWNjZXNzLWRldGFpbC1jb2xvcik7XG4gICAgICAgICAgICAtLV9zaGFkb3c6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1zaGFkb3cpO1xuICAgICAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLXRvYXN0LXN1Y2Nlc3MtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3Qtc3VjY2Vzcy1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLXRvYXN0LXN1Y2Nlc3Mtc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1ncm93bC13YXJuIHtcbiAgICAgICAgICAgIC0tX2JnOiB2YXIoLS1wLXRvYXN0LXdhcm4tYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3Qtd2Fybi1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtdG9hc3Qtd2Fybi1jb2xvcik7XG4gICAgICAgICAgICAtLV9kZXRhaWwtY29sb3I6IHZhcigtLXAtdG9hc3Qtd2Fybi1kZXRhaWwtY29sb3IpO1xuICAgICAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLXRvYXN0LXdhcm4tc2hhZG93KTtcbiAgICAgICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLXRvYXN0LXdhcm4tY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC10b2FzdC13YXJuLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLXRvYXN0LXdhcm4tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLXRvYXN0LXdhcm4tb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvYXN0LXdhcm4tb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC10b2FzdC13YXJuLXNpbXBsZS1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtZ3Jvd2wtZXJyb3Ige1xuICAgICAgICAgICAgLS1fYmc6IHZhcigtLXAtdG9hc3QtZXJyb3ItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3QtZXJyb3ItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLXRvYXN0LWVycm9yLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2RldGFpbC1jb2xvcjogdmFyKC0tcC10b2FzdC1lcnJvci1kZXRhaWwtY29sb3IpO1xuICAgICAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLXRvYXN0LWVycm9yLXNoYWRvdyk7XG4gICAgICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC10b2FzdC1lcnJvci1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLXRvYXN0LWVycm9yLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLXRvYXN0LWVycm9yLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC10b2FzdC1lcnJvci1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtdG9hc3QtZXJyb3Itb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC10b2FzdC1lcnJvci1zaW1wbGUtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLWdyb3dsLWZhdGFsIHtcbiAgICAgICAgICAgIC0tX2JnOiB2YXIoLS1wLWdyb3dsLWZhdGFsLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWdyb3dsLWZhdGFsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1ncm93bC1mYXRhbC1jb2xvcik7XG4gICAgICAgICAgICAtLV9kZXRhaWwtY29sb3I6IHZhcigtLXAtZ3Jvd2wtZmF0YWwtZGV0YWlsLWNvbG9yKTtcbiAgICAgICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1ncm93bC1mYXRhbC1zaGFkb3cpO1xuICAgICAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtZ3Jvd2wtZmF0YWwtY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1ncm93bC1mYXRhbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1ncm93bC1mYXRhbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtZ3Jvd2wtZmF0YWwtb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWdyb3dsLWZhdGFsLW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtZ3Jvd2wtZmF0YWwtc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWdyb3dsLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLXRvYXN0LWNvbnRlbnQtZ2FwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdG9hc3QtY29udGVudC1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGNsb3NlIGljb24gKHNob3duIG9uIGhvdmVyIGJ5IHRoZSB3aWRnZXQpICovXG4gICAgICAgIC5wLWdyb3dsLWljb24tY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIHRoZSBpbmxpbmUgZGlzcGxheTpub25lIG9mIHRoZSB3aWRnZXQgc3RpbGwgaGlkZXMgaXQgKi9cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1wLXRvYXN0LWNvbnRlbnQtZ2FwKSAvIDIpO1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYyh2YXIoLS1wLXRvYXN0LWNvbnRlbnQtZ2FwKSAvIDIpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtdG9hc3QtY2xvc2UtYnV0dG9uLXdpZHRoKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10b2FzdC1jbG9zZS1idXR0b24taGVpZ2h0KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10b2FzdC1jbG9zZS1pY29uLXNpemUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b2FzdC1jbG9zZS1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX2NvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRvYXN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRvYXN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC10b2FzdC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXRvYXN0LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fY2xvc2UtaG92ZXItYmcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdG9hc3QtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdG9hc3QtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10b2FzdC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucC1ncm93bC1jbG9zZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdG9hc3QtY2xvc2UtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzZXZlcml0eSBpY29uICovXG4gICAgICAgIC5wLWdyb3dsLWltYWdlIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtdG9hc3QtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10b2FzdC1pY29uLXNpemUpO1xuICAgICAgICAgICAgLyogY2VudGVyZWQgb24gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHRpdGxlICh0aGUgY29udGVudCBpcyB0b3AgYWxpZ25lZCBmb3IgbXVsdGkgbGluZSB0ZXh0cykgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogY2FsYygodmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSAqIHZhcigtLXAtdG9hc3Qtc3VtbWFyeS1mb250LXNpemUpIC0gdmFyKC0tcC10b2FzdC1pY29uLXNpemUpKSAvIDIpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRvYXN0LWljb24tc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZ3Jvd2wtaW5mby1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdG9hc3QtaW5mby1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWdyb3dsLXN1Y2Nlc3MtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRvYXN0LXN1Y2Nlc3MtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1ncm93bC13YXJuLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10b2FzdC13YXJuLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZ3Jvd2wtZXJyb3ItaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRvYXN0LWVycm9yLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtZ3Jvd2wtZmF0YWwtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRvYXN0LWZhdGFsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGV4dHMgKi9cbiAgICAgICAgLnAtZ3Jvd2wtbWVzc2FnZSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIC8qIHRoZSBjbG9zZSBpY29uIGlzIHBvc2l0aW9uZWQgb3ZlciB0aGUgY29udGVudDoga2VlcCBsb25nIHRleHRzIGNsZWFyIG9mIGl0ICovXG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXAtdG9hc3QtY2xvc2UtYnV0dG9uLXdpZHRoKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLXRvYXN0LXRleHQtZ2FwKTtcbiAgICAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1ncm93bC10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtdG9hc3Qtc3VtbWFyeS1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdG9hc3Qtc3VtbWFyeS1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWdyb3dsLW1lc3NhZ2UgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtdG9hc3QtZGV0YWlsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10b2FzdC1kZXRhaWwtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLV9kZXRhaWwtY29sb3IpO1xuICAgICAgICAgICAgdGV4dC13cmFwOiBwcmV0dHk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qXG4gKiBWYXJpYW50cy4gOmlzKCkgZ2l2ZXMgKDAsMywwKSB3aGV0aGVyIHRoZSBjbGFzcyBpcyBvbiB0aGUgY29udGFpbmVyIGl0c2VsZiBvciBvbiBhbiBhbmNlc3Rvciwgc28gdGhlIHZhcmlhbnQgd2luc1xuICogb3ZlciB0aGUgc2V2ZXJpdHkgcnVsZXMgKHNhbWUgc3BlY2lmaWNpdHksIGxhdGVyKSwgd2hpY2ggc3dpdGNoIHRoZSBzYW1lIHByaXZhdGUgdmFyaWFibGVzLlxuICogb3V0bGluZWQ6IG92ZXJsYXkgc3VyZmFjZSwgY29sb3JlZCBib3JkZXIsIHN1bW1hcnkgYW5kIGljb24gKGxpa2UgcC1tZXNzYWdlLW91dGxpbmVkKS5cbiAqIHNpbXBsZTogbm8gYm9yZGVyIGFuZCBubyBzZXZlcml0eSB0aW50LCBjb2xvcmVkIHN1bW1hcnkgYW5kIGljb24uIFRoZSBvdmVybGF5IGJhY2tncm91bmQgYW5kIHNoYWRvdyBzdGF5OiB0aGUgZ3Jvd2xcbiAqIGZsb2F0cyBvdmVyIGFyYml0cmFyeSBjb250ZW50IGFuZCB3b3VsZCBiZSB1bnJlYWRhYmxlIChhbmQgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBpdCkgd2l0aG91dCB0aGVtLlxuICovXG46aXMoLnAtZ3Jvd2wtb3V0bGluZWQucC1ncm93bCwgLnAtZ3Jvd2wtb3V0bGluZWQgLnAtZ3Jvd2wpIC5wLWdyb3dsLWl0ZW0tY29udGFpbmVyIHtcbiAgICAtLV9iZzogdmFyKC0tcC10b2FzdC1vdXRsaW5lZC1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLV9vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1fb3V0bGluZWQtY29sb3IpO1xuICAgIC0tX2RldGFpbC1jb2xvcjogdmFyKC0tcC10b2FzdC1vdXRsaW5lZC1kZXRhaWwtY29sb3IpO1xuICAgIC0tX3NoYWRvdzogdmFyKC0tcC10b2FzdC1vdXRsaW5lZC1zaGFkb3cpO1xuICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLXRvYXN0LW91dGxpbmVkLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblxuICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10b2FzdC1vdXRsaW5lZC1ib3JkZXItd2lkdGgpO1xufVxuXG46aXMoLnAtZ3Jvd2wtc2ltcGxlLnAtZ3Jvd2wsIC5wLWdyb3dsLXNpbXBsZSAucC1ncm93bCkgLnAtZ3Jvd2wtaXRlbS1jb250YWluZXIge1xuICAgIC0tX2JnOiB2YXIoLS1wLXRvYXN0LXNpbXBsZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC0tX2NvbG9yOiB2YXIoLS1fc2ltcGxlLWNvbG9yKTtcbiAgICAtLV9kZXRhaWwtY29sb3I6IHZhcigtLXAtdG9hc3Qtc2ltcGxlLWRldGFpbC1jb2xvcik7XG4gICAgLS1fc2hhZG93OiB2YXIoLS1wLXRvYXN0LXNpbXBsZS1zaGFkb3cpO1xuICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLXRvYXN0LXNpbXBsZS1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG59XG5cbi5wLWdyb3dsLWl0ZW0tY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLWdyb3dsLWl0ZW0gcCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5wLWdyb3dsLWljb24tY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wLWdyb3dsLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbiIsICIvKlxuICogSW5wbGFjZTogcDppbnBsYWNlXG4gKlxuICogU3RhdGVzIG9mIC5wLWlucGxhY2UtZGlzcGxheTogcC1zdGF0ZS1oaWdobGlnaHQgKGhvdmVyLCBzZXQgYnkgdGhlIHdpZGdldCksIHAtc3RhdGUtZm9jdXNcbiAqIEVkaXRvciBtb2RlOiAucC1pbnBsYWNlLWNvbnRlbnQgZm9sbG93ZWQgYnkgdGhlIHNhdmUgLyBjYW5jZWwgYnV0dG9ucyAoLnAtaW5wbGFjZS1lZGl0b3IpXG4gKi9cblxuLnAtaW5wbGFjZSB7XG4gICAgJi5wLWlucGxhY2UtcGFzc3dvcmQgLnAtbWFza2VkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFwyMDIyXFwyMDIyXFwyMDIyXFwyMDIyXFwyMDIyXFwyMDIyJztcbiAgICB9XG5cbiAgICAvKiBhIGRpc2FibGVkIGlucGxhY2UgcmVuZGVycyAucC1pbnBsYWNlLWRpc3BsYXktZGlzYWJsZWQgaW5zdGVhZCBvZiAucC1pbnBsYWNlLWRpc3BsYXkgKi9cbiAgICAucC1pbnBsYWNlLWRpc3BsYXksXG4gICAgLnAtaW5wbGFjZS1kaXNwbGF5LWRpc2FibGVkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1pbnBsYWNlLXBhZGRpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWlucGxhY2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtaW5wbGFjZS1kaXNwbGF5IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWlucGxhY2UtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtaW5wbGFjZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1pbnBsYWNlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtaW5wbGFjZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtaW5wbGFjZS1kaXNwbGF5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtaW5wbGFjZS1kaXNwbGF5LWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWlucGxhY2UtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1pbnBsYWNlLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtaW5wbGFjZS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWlucGxhY2UtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1pbnBsYWNlLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLWlucGxhY2UtZGlzcGxheS1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgb3BhY2l0eTogdmFyKC0tcC1kaXNhYmxlZC1vcGFjaXR5KTtcbiAgICB9XG5cbiAgICAucC1pbnBsYWNlLXNhdmUtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtaW5wbGFjZS1zYXZlLWljb24pO1xuICAgIH1cblxuICAgIC5wLWlucGxhY2UtY2FuY2VsLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWlucGxhY2UtY2FuY2VsLWljb24pO1xuICAgIH1cblxuICAgIC5wLWlucGxhY2UtZWRpdG9yIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1pbnBsYWNlLWVkaXRvci1nYXApO1xuICAgIH1cblxuICAgIC5wLWlucGxhY2UtY2FuY2VsIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1pbnBsYWNlLWVkaXRvci1idXR0b24tZ2FwKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIE1lZ2FNZW51OiBwOm1lZ2FNZW51ICgucC1tZWdhbWVudSwgLnAtbWVnYW1lbnUtdmVydGljYWwpXG4gKlxuICogVGhlIG1lZ2FtZW51IGFsc28gY2FycmllcyAucC1tZW51YmFyOiB0aGUgY29tbW9uIC5wLW1lbnUgYW5kIC5wLW1lbnViYXIgcnVsZXMgYXJlIGluIG1lbnUvbWVudS5iYXNlLmNzc1xuICogKGJ1bmRsZWQgYmVmb3JlIHRoaXMgZmlsZSwgc28gdGhlIG1lZ2FtZW51IHRva2VucyBiZWxvdyBvdmVycmlkZSB0aGUgbWVudWJhciBvbmVzKS5cbiAqIFN1Ym1lbnUgb3ZlcmxheTogLnAtbWVudS1jaGlsZCA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkIChjb2x1bW4pID4gdWwucC1tZW51LWxpc3QgPiBsaS5wLXdpZGdldC1oZWFkZXIgPiBzcGFuLlxuICovXG4ucC1tZWdhbWVudSB7XG4gICAgPiAucC1tZW51LWxpc3QgPiAucC1tZW51aXRlbS1zZWxlY3RlZCA+IC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDAuMTI1ZW07XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5wLXdpZGdldC1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLyogUHJpbWVVSVggbWluLXdpZHRoIDEyLjVyZW0gKG9ubHkgd2l0aG91dCBhbiBpbmxpbmUgd2lkdGgsIHNlZSBtZW51L21lbnUuYmFzZS5jc3MpICovXG4ucC1tZWdhbWVudS12ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgJjpub3QoW3N0eWxlKj1cIndpZHRoXCJdKSB7XG4gICAgICAgIG1pbi13aWR0aDogMTIuNXJlbTtcbiAgICB9XG5cbiAgICAucC1tZW51LXBhcmVudCB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5wLW1lbnUucC1tZWdhbWVudSB7XG4gICAgLS1fYmc6IHZhcigtLXAtbWVnYW1lbnUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lZ2FtZW51LWJvcmRlci1jb2xvcik7XG4gICAgLS1fYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZWdhbWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1tZWdhbWVudS1jb2xvcik7XG4gICAgLS1fbGlzdC1wYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LXN1Ym1lbnUtcGFkZGluZyk7XG4gICAgLS1fbGlzdC1nYXA6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1nYXApO1xuICAgIC0tX3RyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtbWVnYW1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgLS1faXRlbS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1faXRlbS1wYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tcGFkZGluZyk7XG4gICAgLS1faXRlbS1nYXA6IHZhcigtLXAtbWVnYW1lbnUtaXRlbS1nYXApO1xuICAgIC0tX2l0ZW0tY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtaXRlbS1jb2xvcik7XG4gICAgLS1faXRlbS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgLS1faXRlbS1mb2N1cy1jb2xvcjogdmFyKC0tcC1tZWdhbWVudS1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtaXRlbS1pY29uLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtaXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0taWNvbi1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1zaXplOiB2YXIoLS1wLW1lZ2FtZW51LWl0ZW0taWNvbi1zaXplKTtcbiAgICAtLV9pdGVtLWxhYmVsLWZvbnQtc2l6ZTogdmFyKC0tcC1tZWdhbWVudS1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgLS1faXRlbS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1tZWdhbWVudS1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAtLV9zdWJtZW51LWljb24tY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1pY29uLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tZm9jdXMtY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tc2l6ZTogdmFyKC0tcC1tZWdhbWVudS1zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgLS1fc3VibWVudS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC1tZWdhbWVudS1zdWJtZW51LWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9zZXBhcmF0b3ItYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lZ2FtZW51LXNlcGFyYXRvci1ib3JkZXItY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtYmFja2dyb3VuZDogdmFyKC0tcC1tZWdhbWVudS1zdWJtZW51LWxhYmVsLWJhY2tncm91bmQpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1sYWJlbC1jb2xvcik7XG4gICAgLS1fc3VibWVudS1sYWJlbC1mb250LXNpemU6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1sYWJlbC1mb250LXNpemUpO1xuICAgIC0tX3N1Ym1lbnUtbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVnYW1lbnUtc3VibWVudS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgLS1fc3VibWVudS1sYWJlbC1wYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LXN1Ym1lbnUtbGFiZWwtcGFkZGluZyk7XG4gICAgLS1fc3VibWVudS1iYWNrZ3JvdW5kOiB2YXIoLS1wLW1lZ2FtZW51LW92ZXJsYXktYmFja2dyb3VuZCk7XG4gICAgLS1fc3VibWVudS1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtb3ZlcmxheS1ib3JkZXItY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZWdhbWVudS1vdmVybGF5LWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX3N1Ym1lbnUtcGFkZGluZzogdmFyKC0tcC1tZWdhbWVudS1vdmVybGF5LXBhZGRpbmcpO1xuICAgIC0tX3N1Ym1lbnUtc2hhZG93OiB2YXIoLS1wLW1lZ2FtZW51LW92ZXJsYXktc2hhZG93KTtcbiAgICAtLV9wYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LWhvcml6b250YWwtb3JpZW50YXRpb24tcGFkZGluZyk7XG4gICAgLS1fZ2FwOiB2YXIoLS1wLW1lZ2FtZW51LWhvcml6b250YWwtb3JpZW50YXRpb24tZ2FwKTtcbiAgICAtLV9iYXNlLWl0ZW0tcGFkZGluZzogdmFyKC0tcC1tZWdhbWVudS1iYXNlLWl0ZW0tcGFkZGluZyk7XG4gICAgLS1fYmFzZS1pdGVtLWJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVnYW1lbnUtYmFzZS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLnAtd2lkZ2V0LWhlYWRlciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9zdWJtZW51LWxhYmVsLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtY29sb3IpO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLV9zdWJtZW51LWxhYmVsLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLV9zdWJtZW51LWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tX3RyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgfVxuXG4gICAgLyogY29sdW1ucyAqL1xuICAgIC5wLW1lbnUtY2hpbGQgLnAtbWVudS1saXN0IHtcbiAgICAgICAgbWluLXdpZHRoOiAxMi41cmVtO1xuICAgIH1cblxuICAgIC8qIHJvb3QgbGlzdDogbm8gb3duIHBhZGRpbmcsIHRoZSBjb250YWluZXIgaGFzIHRoZSBvcmllbnRhdGlvbiBwYWRkaW5nICgtLV9saXN0LXBhZGRpbmcgaXMgZm9yIHRoZSBjb2x1bW5zKSAqL1xuICAgID4gLnAtbWVudS1saXN0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvKiBvdmVybGF5OiBQcmltZVVJWCBvdmVybGF5IGNvbG9yLCB0aGUgY29sdW1ucyBhcmUgc2VwYXJhdGVkIGJ5IHRoZSBvdmVybGF5IGdhcCAocGFkZGluZyBvZiBlYWNoIGNvbHVtbikgKi9cbiAgICAucC1tZW51LWNoaWxkIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbWVnYW1lbnUtb3ZlcmxheS1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtbWVudS1saXN0ID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LW92ZXJsYXktZ2FwKTtcbiAgICB9XG5cbiAgICAvKiBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgc3VibWVudXMgb2YgYSBjb2x1bW4gKGFuIGhyLCBzZWUgTWVnYU1lbnVSZW5kZXJlciNlbmNvZGVTdWJtZW51U2VwYXJhdG9yKSAqL1xuICAgIHRkID4gaHIucC1kaXZpZGVyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1fbGlzdC1nYXApIDA7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBib3JkZXItYmxvY2stc3RhcnQ6IDFweCBzb2xpZCB2YXIoLS1fc2VwYXJhdG9yLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtbWVudS1saXN0IC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1faXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAmLnAtbWVnYW1lbnUtdmVydGljYWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fYmcpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLW1lZ2FtZW51LXZlcnRpY2FsLW9yaWVudGF0aW9uLXBhZGRpbmcpO1xuXG4gICAgICAgIC8qIHJvb3QgbGlzdDogY29sdW1uIGluc3RlYWQgb2YgdGhlIG1lbnViYXIgcm93ICovXG4gICAgICAgID4gLnAtbWVudS1saXN0IHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLW1lZ2FtZW51LXZlcnRpY2FsLW9yaWVudGF0aW9uLWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5wLW1lbnUtbGlzdCAucC1tZW51aXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgPiAucC1tZW51aXRlbS1saW5rIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1faXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG5vIGF1dG8gbWFyZ2luIG9mIHRoZSBtZW51YmFyIGZhY2V0cyBpbiB0aGUgY29sdW1uIChpdCB3b3VsZCByaWdodC1hbGlnbiB0aGVtKSAqL1xuICAgICAgICA+IC5wLW1lbnUtbGlzdCA+IDppcygucC1tZW51YmFyLW9wdGlvbnMsIC5wLW1lbnViYXItZW5kKSB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBNZW51OiBwOm1lbnVcbiAqXG4gKiBUaGUgY29tbW9uIC5wLW1lbnUgbWFya3VwIGlzIHN0eWxlZCBieSBtZW51L21lbnUuYmFzZS5jc3MsIHRoaXMgZmlsZSBvbmx5IGhhcyB0aGUgdG9nZ2xlYWJsZSBwOm1lbnVcbiAqICgucC1tZW51LXRvZ2dsZWFibGUpOiBsaS5wLXdpZGdldC1oZWFkZXJbYXJpYS1leHBhbmRlZF0gPiBoMyA+IFsucC1tZW51LXRvZ2dsZS1pY29uXSBbLnAtc3VibWVudS1pY29uXSBsYWJlbC5cbiAqL1xuLnAtbWVudS5wLW1lbnUtdG9nZ2xlYWJsZSB7XG4gICAgbGkucC13aWRnZXQtaGVhZGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtbWVudS1saXN0IC5wLXdpZGdldC1oZWFkZXIge1xuICAgICAgICAucC1tZW51LXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVudS10b2dnbGUtY29sbGFwc2VkLWljb24pO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWljb24tY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1fc3VibWVudS1pY29uLXNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSAucC1tZW51LXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVudS10b2dnbGUtZXhwYW5kZWQtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGUgY29sbGFwc2VkIGljb24gcG9pbnRzIHRvIHRoZSBzdGFydCAqL1xuICAgICAgICAmOm5vdChbYXJpYS1leHBhbmRlZD1cInRydWVcIl0pIC5wLW1lbnUtdG9nZ2xlLWljb246ZGlyKHJ0bCkge1xuICAgICAgICAgICAgc2NhbGU6IC0xIDE7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zdWJtZW51LWljb24ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLV9pdGVtLWljb24tY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1faXRlbS1pY29uLXNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIC5wLW1lbnUtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1fc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtc3VibWVudS1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX2l0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIE1lc3NhZ2U6IHA6bWVzc2FnZSAoaW5saW5lIG1lc3NhZ2Ugb2YgYSBzaW5nbGUgY29tcG9uZW50KSwgc2hhcmVkIGJ5IHA6c3RhdGljTWVzc2FnZSAoc2VlIHN0YXRpY21lc3NhZ2UuY3NzKVxuICpcbiAqIE1hcmt1cCBwOm1lc3NhZ2U6ICAgICAgIC5wLW1lc3NhZ2UucC1tZXNzYWdlLTxzZXZlcml0eT4gPiBkaXYgPiBzcGFuLnAtbWVzc2FnZS08c2V2ZXJpdHk+LWljb24ucC1tZXNzYWdlLTxzZXZlcml0eT4taWNvblxuICogICAgICAgICAgICAgICAgICAgICAgICAgKyBzcGFuLnAtbWVzc2FnZS08c2V2ZXJpdHk+LXN1bW1hcnkgKyBzcGFuLnAtbWVzc2FnZS08c2V2ZXJpdHk+LWRldGFpbFxuICogTWFya3VwIHA6c3RhdGljTWVzc2FnZTogLnAtbWVzc2FnZS5wLXN0YXRpY21lc3NhZ2UucC1tZXNzYWdlLTxzZXZlcml0eT4gPiAoYS5wLW1lc3NhZ2VzLWNsb3NlKSArIHNwYW4uaWNvbiArIHN1bW1hcnkgKyBkZXRhaWxcbiAqIFNldmVyaXR5IGNsYXNzZXMgb25seSBzd2l0Y2ggdGhlIHByaXZhdGUgLS1fKiB2YXJpYWJsZXM6IHAtbWVzc2FnZS1pbmZvIHwgLXN1Y2Nlc3MgfCAtd2FybiB8IC1lcnJvciB8IC1mYXRhbCxcbiAqIHAtbWVzc2FnZS1zZWNvbmRhcnkgfCAtY29udHJhc3QgKHA6c3RhdGljTWVzc2FnZSBzZXZlcml0eSBvbmx5KSwgcC1tZXNzYWdlLWljb24tb25seSAoZGlzcGxheT1cImljb25cIikuXG4gKiBWYXJpYW50cyAoc3R5bGVDbGFzcywgYWxzbyBvbiBwOm1lc3NhZ2VzLCBzZWUgbWVzc2FnZXMuY3NzKTogcC1tZXNzYWdlLW91dGxpbmVkIHwgcC1tZXNzYWdlLXNpbXBsZSxcbiAqIHNpemVzIHAtbWVzc2FnZS1zbSB8IHAtbWVzc2FnZS1sZy5cbiAqIFBGIG9ubHkgdG9rZW5zIChmYXRhbCwgc2Vjb25kYXJ5L2NvbnRyYXN0IGljb24sIHN1bW1hcnkvZGV0YWlsKTogdGhlIG1lc3NhZ2UgYmxvY2sgb2YgcHJlc2V0cy8qLmNzc1xuICovXG5cbi5wLW1lc3NhZ2Uge1xuICAgIC0tX2JnOiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWJvcmRlci1jb2xvcik7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWNvbG9yKTtcbiAgICAtLV9zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1pbmZvLXNoYWRvdyk7XG4gICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLW91dGxpbmVkLWNvbG9yKTtcbiAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1zaW1wbGUtY29sb3IpO1xuICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWluZm8tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIC0tX2JvcmRlci13aWR0aDogdmFyKC0tcC1tZXNzYWdlLWJvcmRlci13aWR0aCk7XG4gICAgLS1fcGFkZGluZzogdmFyKC0tcC1tZXNzYWdlLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgLS1fZm9udC1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtdGV4dC1mb250LXNpemUpO1xuICAgIC0tX2ljb24tc2l6ZTogdmFyKC0tcC1tZXNzYWdlLWljb24tc2l6ZSk7XG4gICAgLS1fY2xvc2UtaWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbi1zaXplKTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVzc2FnZS1ib3JkZXItcmFkaXVzKTtcbiAgICBmb250LXNpemU6IHZhcigtLV9mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLW1lc3NhZ2UtdGV4dC1mb250LXdlaWdodCk7XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLW1lc3NhZ2UtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgIC8qIGEgbmV3IG1lc3NhZ2UgKGluc2VydGVkIGJ5IGFuIGFqYXggdXBkYXRlIG9yIHRoZSBjbGllbnQgc2lkZSB2YWxpZGF0aW9uKSBmYWRlcyBpbiwgYmFzZS9jb21tb24uY3NzICovXG4gICAgJjpub3QoLnAtc3RhdGljbWVzc2FnZSkge1xuICAgICAgICAtLV9lbnRlci1vZmZzZXQ6IHZhcigtLXAtbWVzc2FnZS1lbnRlci1vZmZzZXQpO1xuICAgICAgICBhbmltYXRpb246IHAtZW50ZXIgdmFyKC0tcC1tZXNzYWdlLWVudGVyLWR1cmF0aW9uKSB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nLWVudGVyKTtcbiAgICB9XG5cbiAgICAvKiBhbiBlbXB0eSBwOm1lc3NhZ2UgKG5vIG1lc3NhZ2UpIGhhcyBubyBzZXZlcml0eSBjbGFzcyBhbmQgc3RheXMgaW52aXNpYmxlICovXG4gICAgJi5wLW1lc3NhZ2UtaW5mbyxcbiAgICAmLnAtbWVzc2FnZS1zdWNjZXNzLFxuICAgICYucC1tZXNzYWdlLXdhcm4sXG4gICAgJi5wLW1lc3NhZ2UtZXJyb3IsXG4gICAgJi5wLW1lc3NhZ2UtZmF0YWwsXG4gICAgJi5wLW1lc3NhZ2Utc2Vjb25kYXJ5LFxuICAgICYucC1tZXNzYWdlLWNvbnRyYXN0IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tX3BhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fYmcpO1xuICAgICAgICBib3JkZXI6IHZhcigtLV9ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLV9ib3JkZXItY29sb3IpO1xuICAgICAgICBjb2xvcjogdmFyKC0tX2NvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tX3NoYWRvdyk7XG4gICAgfVxuXG4gICAgJi5wLW1lc3NhZ2Utc3VjY2VzcyB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3MtY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgIC0tX291dGxpbmVkLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3Mtb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3MtY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgICYucC1tZXNzYWdlLXdhcm4ge1xuICAgICAgICAtLV9iZzogdmFyKC0tcC1tZXNzYWdlLXdhcm4tYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXdhcm4tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS13YXJuLWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1zaGFkb3cpO1xuICAgICAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXdhcm4tb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS13YXJuLW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXdhcm4tc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtbWVzc2FnZS13YXJuLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXdhcm4tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1tZXNzYWdlLXdhcm4tY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICB9XG5cbiAgICAmLnAtbWVzc2FnZS1lcnJvciB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1zaGFkb3cpO1xuICAgICAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWVycm9yLW91dGxpbmVkLWNvbG9yKTtcbiAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3Itb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3Itc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICB9XG5cbiAgICAmLnAtbWVzc2FnZS1mYXRhbCB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1zaGFkb3cpO1xuICAgICAgICAtLV9vdXRsaW5lZC1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLW91dGxpbmVkLWNvbG9yKTtcbiAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtaG92ZXItYmc6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICB9XG5cbiAgICAvKiBwOnN0YXRpY01lc3NhZ2Ugb25seSAoc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIiAvIFwiY29udHJhc3RcIiksIHA6bWVzc2FnZSBnZXRzIGl0cyBzZXZlcml0eSBmcm9tIHRoZSBGYWNlc01lc3NhZ2UgKi9cbiAgICAmLnAtbWVzc2FnZS1zZWNvbmRhcnkge1xuICAgICAgICAtLV9iZzogdmFyKC0tcC1tZXNzYWdlLXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LW91dGxpbmVkLWNvbG9yKTtcbiAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc2Vjb25kYXJ5LW91dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX3NpbXBsZS1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXNlY29uZGFyeS1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLXNlY29uZGFyeS1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zZWNvbmRhcnktY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLXNoYWRvdzogdmFyKC0tcC1tZXNzYWdlLXNlY29uZGFyeS1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgICYucC1tZXNzYWdlLWNvbnRyYXN0IHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1jb250cmFzdC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtY29udHJhc3QtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1jb250cmFzdC1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWNvbnRyYXN0LXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtY29udHJhc3Qtb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1jb250cmFzdC1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1jb250cmFzdC1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLWNvbnRyYXN0LWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWNvbnRyYXN0LWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1jb250cmFzdC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIHNpemVzIChzdHlsZUNsYXNzKSAqL1xuICAgICYucC1tZXNzYWdlLXNtIHtcbiAgICAgICAgLS1fcGFkZGluZzogdmFyKC0tcC1tZXNzYWdlLWNvbnRlbnQtc20tcGFkZGluZyk7XG4gICAgICAgIC0tX2ZvbnQtc2l6ZTogdmFyKC0tcC1tZXNzYWdlLXRleHQtc20tZm9udC1zaXplKTtcbiAgICAgICAgLS1faWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtaWNvbi1zbS1zaXplKTtcbiAgICAgICAgLS1fY2xvc2UtaWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbi1zbS1zaXplKTtcbiAgICB9XG5cbiAgICAmLnAtbWVzc2FnZS1sZyB7XG4gICAgICAgIC0tX3BhZGRpbmc6IHZhcigtLXAtbWVzc2FnZS1jb250ZW50LWxnLXBhZGRpbmcpO1xuICAgICAgICAtLV9mb250LXNpemU6IHZhcigtLXAtbWVzc2FnZS10ZXh0LWxnLWZvbnQtc2l6ZSk7XG4gICAgICAgIC0tX2ljb24tc2l6ZTogdmFyKC0tcC1tZXNzYWdlLWljb24tbGctc2l6ZSk7XG4gICAgICAgIC0tX2Nsb3NlLWljb24tc2l6ZTogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWljb24tbGctc2l6ZSk7XG4gICAgfVxuXG4gICAgLyogdmFyaWFudHMgKHN0eWxlQ2xhc3MpOiBhZnRlciB0aGUgc2V2ZXJpdGllcyBhbmQgc2l6ZXMsIHRoZXkgb25seSBzd2l0Y2ggdGhlIHByaXZhdGUgdmFyaWFibGVzICovXG4gICAgJi5wLW1lc3NhZ2Utb3V0bGluZWQge1xuICAgICAgICAtLV9iZzogdHJhbnNwYXJlbnQ7XG4gICAgICAgIC0tX2JvcmRlci13aWR0aDogdmFyKC0tcC1tZXNzYWdlLW91dGxpbmVkLWJvcmRlci13aWR0aCk7XG4gICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tX291dGxpbmVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1fb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5wLW1lc3NhZ2Utc2ltcGxlIHtcbiAgICAgICAgLS1fYmc6IHRyYW5zcGFyZW50O1xuICAgICAgICAtLV9ib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1fc2ltcGxlLWNvbG9yKTtcbiAgICAgICAgLS1fc2hhZG93OiBub25lO1xuICAgICAgICAtLV9wYWRkaW5nOiB2YXIoLS1wLW1lc3NhZ2Utc2ltcGxlLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLyogY29udGVudCByb3c6IGljb24sIHN1bW1hcnksIGRldGFpbCAqL1xuICAgID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLW1lc3NhZ2UtY29udGVudC1nYXApO1xuICAgICAgICAvKiBrZWVwcyB0aGUgdGV4dCBsaW5lIGhlaWdodCAoPSBpbnB1dCBoZWlnaHQpIHdoZW4gb25seSB0aGUgaWNvbiBpcyBzaG93biAqL1xuICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCkgKiAxZW0pO1xuICAgIH1cblxuICAgIC8qIGljb25zICovXG4gICAgLnAtbWVzc2FnZS1pbmZvLWljb24sXG4gICAgLnAtbWVzc2FnZS1zdWNjZXNzLWljb24sXG4gICAgLnAtbWVzc2FnZS13YXJuLWljb24sXG4gICAgLnAtbWVzc2FnZS1lcnJvci1pY29uLFxuICAgIC5wLW1lc3NhZ2UtZmF0YWwtaWNvbixcbiAgICAucC1tZXNzYWdlLXNlY29uZGFyeS1pY29uLFxuICAgIC5wLW1lc3NhZ2UtY29udHJhc3QtaWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tX2NvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1faWNvbi1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZS1pbmZvLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1pY29uKTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlLXN1Y2Nlc3MtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWljb24pO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2Utd2Fybi1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLXdhcm4taWNvbik7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZS1lcnJvci1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWljb24pO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2UtZmF0YWwtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1pY29uKTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlLXNlY29uZGFyeS1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLXNlY29uZGFyeS1pY29uKTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlLWNvbnRyYXN0LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lc3NhZ2UtY29udHJhc3QtaWNvbik7XG4gICAgfVxuXG4gICAgLyogdGV4dHMgKi9cbiAgICAucC1tZXNzYWdlLWluZm8tc3VtbWFyeSxcbiAgICAucC1tZXNzYWdlLXN1Y2Nlc3Mtc3VtbWFyeSxcbiAgICAucC1tZXNzYWdlLXdhcm4tc3VtbWFyeSxcbiAgICAucC1tZXNzYWdlLWVycm9yLXN1bW1hcnksXG4gICAgLnAtbWVzc2FnZS1mYXRhbC1zdW1tYXJ5LFxuICAgIC5wLW1lc3NhZ2Utc2Vjb25kYXJ5LXN1bW1hcnksXG4gICAgLnAtbWVzc2FnZS1jb250cmFzdC1zdW1tYXJ5IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVzc2FnZS1zdW1tYXJ5LWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlLWluZm8tZGV0YWlsLFxuICAgIC5wLW1lc3NhZ2Utc3VjY2Vzcy1kZXRhaWwsXG4gICAgLnAtbWVzc2FnZS13YXJuLWRldGFpbCxcbiAgICAucC1tZXNzYWdlLWVycm9yLWRldGFpbCxcbiAgICAucC1tZXNzYWdlLWZhdGFsLWRldGFpbCxcbiAgICAucC1tZXNzYWdlLXNlY29uZGFyeS1kZXRhaWwsXG4gICAgLnAtbWVzc2FnZS1jb250cmFzdC1kZXRhaWwge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1tZXNzYWdlLWRldGFpbC1mb250LXdlaWdodCk7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHRleHQtd3JhcDogcHJldHR5O1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2UtaW5mby1zdW1tYXJ5OmVtcHR5LFxuICAgIC5wLW1lc3NhZ2Utc3VjY2Vzcy1zdW1tYXJ5OmVtcHR5LFxuICAgIC5wLW1lc3NhZ2Utd2Fybi1zdW1tYXJ5OmVtcHR5LFxuICAgIC5wLW1lc3NhZ2UtZXJyb3Itc3VtbWFyeTplbXB0eSxcbiAgICAucC1tZXNzYWdlLWZhdGFsLXN1bW1hcnk6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS1zZWNvbmRhcnktc3VtbWFyeTplbXB0eSxcbiAgICAucC1tZXNzYWdlLWNvbnRyYXN0LXN1bW1hcnk6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS1pbmZvLWRldGFpbDplbXB0eSxcbiAgICAucC1tZXNzYWdlLXN1Y2Nlc3MtZGV0YWlsOmVtcHR5LFxuICAgIC5wLW1lc3NhZ2Utd2Fybi1kZXRhaWw6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS1lcnJvci1kZXRhaWw6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS1mYXRhbC1kZXRhaWw6ZW1wdHksXG4gICAgLnAtbWVzc2FnZS1zZWNvbmRhcnktZGV0YWlsOmVtcHR5LFxuICAgIC5wLW1lc3NhZ2UtY29udHJhc3QtZGV0YWlsOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnAtaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qIGlubGluZSBwOm1lc3NhZ2UgbmV4dCB0byBpdHMgaW5wdXQ7IHA6c3RhdGljTWVzc2FnZSBpcyBhIGJsb2NrIG9mIGl0cyBvd24gKi9cbi5wLXdpZGdldCArIC5wLW1lc3NhZ2U6bm90KC5wLXN0YXRpY21lc3NhZ2UpIHtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLW1lc3NhZ2UtY29udGVudC1nYXApO1xufVxuIiwgIi8qXG4gKiBNZXNzYWdlczogcDptZXNzYWdlc1xuICpcbiAqIE1hcmt1cDogLnAtbWVzc2FnZXMoLnAtbWVzc2FnZXMtbm9pY29uKSA+IGRpdi5wLW1lc3NhZ2VzLTxzZXZlcml0eT4gPiBhLnAtbWVzc2FnZXMtY2xvc2UgKD4gLnAtbWVzc2FnZXMtY2xvc2UtaWNvbilcbiAqICAgICAgICAgKyBzcGFuLnAtbWVzc2FnZXMtPHNldmVyaXR5Pi1pY29uLnAtbWVzc2FnZS08c2V2ZXJpdHk+LWljb24gKyB1bCA+IGxpID4gc3Bhbi5wLW1lc3NhZ2VzLTxzZXZlcml0eT4tc3VtbWFyeSArIHNwYW4ucC1tZXNzYWdlcy08c2V2ZXJpdHk+LWRldGFpbFxuICogU2V2ZXJpdHkgY2xhc3NlcyBvbmx5IHN3aXRjaCB0aGUgcHJpdmF0ZSAtLV8qIHZhcmlhYmxlczogcC1tZXNzYWdlcy1pbmZvIHwgLXN1Y2Nlc3MgfCAtd2FybiB8IC1lcnJvciB8IC1mYXRhbFxuICogVmFyaWFudHMgLyBzaXplcyAoc3R5bGVDbGFzcyBvbiAucC1tZXNzYWdlcywgZm9yIGFsbCBpdHMgbWVzc2FnZXMpOiBwLW1lc3NhZ2Utb3V0bGluZWQgfCAtc2ltcGxlIHwgLXNtIHwgLWxnXG4gKiAodGhlIHNhbWUgY2xhc3NlcyBhcyBwOm1lc3NhZ2UpLiBUaGUgZGVmYXVsdCBpcyB0aGUgbGFyZ2UgcGFkZGluZyAvIGljb24gKGJsb2NrIG1lc3NhZ2VzKSwgcC1tZXNzYWdlLWxnIGFsc29cbiAqIGVubGFyZ2VzIHRoZSB0ZXh0IGFuZCB0aGUgY2xvc2UgaWNvbiwgcC1tZXNzYWdlLXNtIG1ha2VzIGV2ZXJ5dGhpbmcgc21hbGwuXG4gKiBQRiBvbmx5IHRva2VuczogdGhlIG1lc3NhZ2VzIGJsb2NrIG9mIHByZXNldHMvKi5jc3MgKHNwYWNpbmcpLCB0aGUgbWVzc2FnZSBibG9jayBvZiBwcmVzZXRzLyouY3NzIChmYXRhbCwgc3VtbWFyeS9kZXRhaWwpXG4gKi9cblxuLnAtbWVzc2FnZXMge1xuICAgIC0tX3BhZGRpbmc6IHZhcigtLXAtbWVzc2FnZS1jb250ZW50LWxnLXBhZGRpbmcpO1xuICAgIC0tX2ZvbnQtc2l6ZTogdmFyKC0tcC1tZXNzYWdlLXRleHQtZm9udC1zaXplKTtcbiAgICAtLV9pY29uLXNpemU6IHZhcigtLXAtbWVzc2FnZS1pY29uLWxnLXNpemUpO1xuICAgIC0tX2Nsb3NlLWljb24tc2l6ZTogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWljb24tc2l6ZSk7XG5cbiAgICBmb250LXNpemU6IHZhcigtLV9mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLW1lc3NhZ2UtdGV4dC1mb250LXdlaWdodCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVzc2FnZS1ib3JkZXItcmFkaXVzKTtcblxuICAgID4gZGl2IHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWluZm8tc2hhZG93KTtcbiAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLW91dGxpbmVkLWNvbG9yKTtcbiAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLXNpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2UtaW5mby1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1pbmZvLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIC0tX2JvcmRlci13aWR0aDogdmFyKC0tcC1tZXNzYWdlLWJvcmRlci13aWR0aCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogdmFyKC0tcC1tZXNzYWdlLWNvbnRlbnQtZ2FwKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tX3BhZGRpbmcpO1xuICAgICAgICBtYXJnaW46IHZhcigtLXAtbWVzc2FnZXMtZ2FwKSAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLW1lc3NhZ2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAvKiBhIG5ldyBtZXNzYWdlIChpbnNlcnRlZCBieSBhbiBhamF4IHVwZGF0ZSBvciB0aGUgY2xpZW50IHNpZGUgdmFsaWRhdGlvbikgZmFkZXMgaW4sIGJhc2UvY29tbW9uLmNzcyAqL1xuICAgICAgICAtLV9lbnRlci1vZmZzZXQ6IHZhcigtLXAtbWVzc2FnZS1lbnRlci1vZmZzZXQpO1xuICAgICAgICBhbmltYXRpb246IHAtZW50ZXIgdmFyKC0tcC1tZXNzYWdlLWVudGVyLWR1cmF0aW9uKSB2YXIoLS1wLXRyYW5zaXRpb24tZWFzaW5nLWVudGVyKTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlcy1pbmZvLFxuICAgIC5wLW1lc3NhZ2VzLXN1Y2Nlc3MsXG4gICAgLnAtbWVzc2FnZXMtd2FybixcbiAgICAucC1tZXNzYWdlcy1lcnJvcixcbiAgICAucC1tZXNzYWdlcy1mYXRhbCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9iZyk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tX2JvcmRlci13aWR0aCkgc29saWQgdmFyKC0tX2JvcmRlci1jb2xvcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1fc2hhZG93KTtcbiAgICB9XG5cbiAgICAucC1tZXNzYWdlcy1zdWNjZXNzIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWJvcmRlci1jb2xvcik7XG4gICAgICAgIC0tX2NvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLXN1Y2Nlc3Mtc2hhZG93KTtcbiAgICAgICAgLS1fb3V0bGluZWQtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLW91dGxpbmVkLWNvbG9yKTtcbiAgICAgICAgLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLXNpbXBsZS1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWhvdmVyLWJnOiB2YXIoLS1wLW1lc3NhZ2Utc3VjY2Vzcy1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZXMtd2FybiB7XG4gICAgICAgIC0tX2JnOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXdhcm4tY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS13YXJuLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgIC0tX291dGxpbmVkLWJvcmRlci1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLXdhcm4tb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fc2ltcGxlLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLXdhcm4tY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9jbG9zZS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLW1lc3NhZ2Utd2Fybi1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2VzLWVycm9yIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWVycm9yLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3Itb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWVycm9yLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1lcnJvci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2VzLWZhdGFsIHtcbiAgICAgICAgLS1fYmc6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLXNoYWRvdyk7XG4gICAgICAgIC0tX291dGxpbmVkLWNvbG9yOiB2YXIoLS1wLW1lc3NhZ2UtZmF0YWwtb3V0bGluZWQtY29sb3IpO1xuICAgICAgICAtLV9vdXRsaW5lZC1ib3JkZXItY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1vdXRsaW5lZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9zaW1wbGUtY29sb3I6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9jbG9zZS1ob3Zlci1iZzogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWNsb3NlLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tcC1tZXNzYWdlLWZhdGFsLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgLS1fY2xvc2UtZm9jdXMtcmluZy1zaGFkb3c6IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIHNpemVzIChzdHlsZUNsYXNzKSAqL1xuICAgICYucC1tZXNzYWdlLXNtIHtcbiAgICAgICAgLS1fcGFkZGluZzogdmFyKC0tcC1tZXNzYWdlLWNvbnRlbnQtc20tcGFkZGluZyk7XG4gICAgICAgIC0tX2ZvbnQtc2l6ZTogdmFyKC0tcC1tZXNzYWdlLXRleHQtc20tZm9udC1zaXplKTtcbiAgICAgICAgLS1faWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtaWNvbi1zbS1zaXplKTtcbiAgICAgICAgLS1fY2xvc2UtaWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbi1zbS1zaXplKTtcbiAgICB9XG5cbiAgICAmLnAtbWVzc2FnZS1sZyB7XG4gICAgICAgIC0tX2ZvbnQtc2l6ZTogdmFyKC0tcC1tZXNzYWdlLXRleHQtbGctZm9udC1zaXplKTtcbiAgICAgICAgLS1fY2xvc2UtaWNvbi1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbi1sZy1zaXplKTtcbiAgICB9XG5cbiAgICAvKiB2YXJpYW50cyAoc3R5bGVDbGFzcyksIGFmdGVyIHRoZSBzaXplczogLnAtbWVzc2FnZXMucC1tZXNzYWdlLSogPiBkaXYgd2lucyBvdmVyIHRoZSBzZXZlcml0eSBydWxlcyAqL1xuICAgICYucC1tZXNzYWdlLXNpbXBsZSB7XG4gICAgICAgIC0tX3BhZGRpbmc6IHZhcigtLXAtbWVzc2FnZS1zaW1wbGUtY29udGVudC1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAmLnAtbWVzc2FnZS1vdXRsaW5lZCA+IGRpdiB7XG4gICAgICAgIC0tX2JnOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLS1fYm9yZGVyLXdpZHRoOiB2YXIoLS1wLW1lc3NhZ2Utb3V0bGluZWQtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1fb3V0bGluZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLV9vdXRsaW5lZC1jb2xvcik7XG4gICAgICAgIC0tX3NoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmLnAtbWVzc2FnZS1zaW1wbGUgPiBkaXYge1xuICAgICAgICAtLV9iZzogdHJhbnNwYXJlbnQ7XG4gICAgICAgIC0tX2JvcmRlci13aWR0aDogMDtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLV9zaW1wbGUtY29sb3IpO1xuICAgICAgICAtLV9zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1wLW1lc3NhZ2VzLXRleHQtZ2FwKTtcblxuICAgICAgICAgICAgKyBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcC1tZXNzYWdlLWNvbnRlbnQtZ2FwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW1lc3NhZ2VzLWluZm8tc3VtbWFyeSxcbiAgICAgICAgLnAtbWVzc2FnZXMtc3VjY2Vzcy1zdW1tYXJ5LFxuICAgICAgICAucC1tZXNzYWdlcy13YXJuLXN1bW1hcnksXG4gICAgICAgIC5wLW1lc3NhZ2VzLWVycm9yLXN1bW1hcnksXG4gICAgICAgIC5wLW1lc3NhZ2VzLWZhdGFsLXN1bW1hcnkge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbWVzc2FnZS1zdW1tYXJ5LWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW1lc3NhZ2VzLWluZm8tZGV0YWlsLFxuICAgICAgICAucC1tZXNzYWdlcy1zdWNjZXNzLWRldGFpbCxcbiAgICAgICAgLnAtbWVzc2FnZXMtd2Fybi1kZXRhaWwsXG4gICAgICAgIC5wLW1lc3NhZ2VzLWVycm9yLWRldGFpbCxcbiAgICAgICAgLnAtbWVzc2FnZXMtZmF0YWwtZGV0YWlsIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLW1lc3NhZ2UtZGV0YWlsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICB0ZXh0LXdyYXA6IHByZXR0eTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNldmVyaXR5IGljb25zICovXG4gICAgLnAtbWVzc2FnZXMtaW5mby1pY29uLFxuICAgIC5wLW1lc3NhZ2VzLXN1Y2Nlc3MtaWNvbixcbiAgICAucC1tZXNzYWdlcy13YXJuLWljb24sXG4gICAgLnAtbWVzc2FnZXMtZXJyb3ItaWNvbixcbiAgICAucC1tZXNzYWdlcy1mYXRhbC1pY29uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tX2ljb24tc2l6ZSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAvKiBjZW50ZXJlZCBvbiB0aGUgZmlyc3QgdGV4dCBsaW5lICh0aGUgY29udGVudCBpcyB0b3AgYWxpZ25lZCBmb3IgbXVsdGkgbGluZSBtZXNzYWdlcykgKi9cbiAgICAgICAgbWFyZ2luOiBjYWxjKCh2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpICogdmFyKC0tX2ZvbnQtc2l6ZSkgLSB2YXIoLS1faWNvbi1zaXplKSkgLyAyKSAwIDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2VzLWluZm8taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS1pbmZvLWljb24pO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2VzLXN1Y2Nlc3MtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS1zdWNjZXNzLWljb24pO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2VzLXdhcm4taWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS13YXJuLWljb24pO1xuICAgIH1cblxuICAgIC5wLW1lc3NhZ2VzLWVycm9yLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lc3NhZ2UtZXJyb3ItaWNvbik7XG4gICAgfVxuXG4gICAgLnAtbWVzc2FnZXMtZmF0YWwtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtbWVzc2FnZS1mYXRhbC1pY29uKTtcbiAgICB9XG5cbiAgICAvKiBjbG9zZSBidXR0b246IHJlbmRlcmVkIGZpcnN0LCBzaG93biBsYXN0ICovXG4gICAgLnAtbWVzc2FnZXMtY2xvc2Uge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24td2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24taGVpZ2h0KTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tX2NvbG9yKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLW1lc3NhZ2UtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX2Nsb3NlLWhvdmVyLWJnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW1lc3NhZ2VzLWNsb3NlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWljb24pO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1fY2xvc2UtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBNdWx0aVNlbGVjdExpc3Rib3g6IHA6bXVsdGlTZWxlY3RMaXN0Ym94IChQcmltZUZhY2VzIG9ubHksIHRva2VucyBpbiB0aGUgbXVsdGlzZWxlY3RsaXN0Ym94IGJsb2NrIG9mIHByZXNldHMvKi5jc3MsIGl0ZW1zIHVzZSBsaXN0Ym94IHRva2VucylcbiAqXG4gKiBFdmVyeSBsZXZlbCBpcyBhIGxpc3QgY29udGFpbmVyIHdpdGggYW4gb3B0aW9uYWwgaGVhZGVyIChzaG93SGVhZGVycyk7IHRoZSBsaXN0IGl0c2VsZiBpcyBhIC5wLWlucHV0ZmllbGQsXG4gKiBpdHMgaW5wdXQgbG9vayBpcyByZXNldC4gSXRlbXMgd2l0aCBjaGlsZHJlbiBzaG93IGEgY2hldnJvbi5cbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXN0YXRlLWRpc2FibGVkIChvbiB0aGUgcm9vdCksIGl0ZW1zOiBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWhpZ2hsaWdodCAoc2VsZWN0ZWQpXG4gKi9cbi5wLW11bHRpc2VsZWN0bGlzdGJveCB7XG4gICAgLyogY29udGFpbnMgdGhlIGZsb2F0ZWQgbGlzdHMgKi9cbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG5cbiAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtbGlzdGNvbnRhaW5lciB7XG4gICAgICAgIGZsb2F0OiBpbmxpbmUtc3RhcnQ7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1wLW11bHRpc2VsZWN0bGlzdGJveC1saXN0LW1pbi13aWR0aCk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtbXVsdGlzZWxlY3RsaXN0Ym94LWdhcCk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtbGlzdGJveC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtbGlzdGJveC1zaGFkb3cpO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtaGVhZGVyLXBhZGRpbmcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtaGVhZGVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3RsaXN0Ym94LWhlYWRlci1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtbXVsdGlzZWxlY3RsaXN0Ym94LWhlYWRlci1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbXVsdGlzZWxlY3RsaXN0Ym94LWhlYWRlci1mb250LXdlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtbGlzdCxcbiAgICAgICAgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWxpc3Q6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlcixcbiAgICAgICAgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWxpc3Q6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpmb2N1cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbGlzdGJveC1saXN0LXBhZGRpbmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtbGlzdCAucC1tdWx0aXNlbGVjdGxpc3Rib3gtaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtZ2FwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tcGFkZGluZyk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgJiArIC5wLW11bHRpc2VsZWN0bGlzdGJveC1pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLWxpc3Rib3gtbGlzdC1nYXApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1oZWFkZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnAtbXVsdGlzZWxlY3RsaXN0Ym94LWl0ZW0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuXG4gICAgICAgIC8qIGl0ZW1zIHdpdGggY2hpbGRyZW46IHBpLWNoZXZyb24tcmlnaHQgKHBpLWNoZXZyb24tbGVmdCBpbiBydGwpIGF0IHRoZSBlbmQgKi9cbiAgICAgICAgJjpoYXMoPiB1bCk6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDAzXCI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICAgICAgbWFzazogdmFyKC0tcC1tdWx0aXNlbGVjdGxpc3Rib3gtc3VibWVudS1pY29uKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLWljb24tc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0bGlzdGJveC1pdGVtLWljb24tY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoPiB1bCk6ZGlyKHJ0bCk6OmFmdGVyIHtcbiAgICAgICAgICAgIHNjYWxlOiAtMSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodDpoYXMoPiB1bCk6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1tdWx0aXNlbGVjdGxpc3Rib3gtbGlzdGNvbnRhaW5lciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LWRpc2FibGVkLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW11bHRpc2VsZWN0bGlzdGJveC1saXN0Y29udGFpbmVyIC5wLW11bHRpc2VsZWN0bGlzdGJveC1saXN0IC5wLW11bHRpc2VsZWN0bGlzdGJveC1pdGVtIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtZGlzYWJsZWQtY29sb3IpO1xuXG4gICAgICAgICAgICAvKiBhIHNlbGVjdGVkIGl0ZW0ga2VlcHMgaXRzIHNlbGVjdGVkIGNvbG9ycyAodGhlIGRpc2FibGVkIGNvbG9yIHdvdWxkIGJlIHVucmVhZGFibGUgb24gdGhlIHNlbGVjdGVkIGJhY2tncm91bmQpICovXG4gICAgICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIE5vdGlmaWNhdGlvbkJhcjogcDpub3RpZmljYXRpb25CYXIgKHBvc2l0aW9uIHRvcCB8IGJvdHRvbSwgc2V0IGlubGluZSBieSB0aGUgd2lkZ2V0KVxuICpcbiAqIEEgcGFnZSB3aWRlIG5ldXRyYWwgY29udGVudCBiYXIgKFByaW1lRmFjZXMgdG9rZW5zKTsgYW4gZWxlbWVudCB3aXRoIHRoZSBjbGFzcyBwLW5vdGlmaWNhdGlvbmJhci1jbG9zZSBpbnNpZGVcbiAqIHRoZSBiYXIgaXMgc3R5bGVkIGxpa2UgdGhlIG1lc3NhZ2UgY2xvc2UgYnV0dG9uLlxuICovXG5cbi5wLW5vdGlmaWNhdGlvbmJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1wYWRkaW5nKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY29sb3IpO1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGJvcmRlci1ibG9jazogMXB4IHNvbGlkIHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItc2hhZG93KTtcblxuICAgIC5wLW5vdGlmaWNhdGlvbmJhci1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdG9wOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24tb2Zmc2V0KTtcbiAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLW9mZnNldCk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24td2lkdGgpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWNsb3NlLWJ1dHRvbi1oZWlnaHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1ub3RpZmljYXRpb25iYXItdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWNsb3NlLWJ1dHRvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLW5vdGlmaWNhdGlvbmJhci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1ub3RpZmljYXRpb25iYXItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtbm90aWZpY2F0aW9uYmFyLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAucGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbi1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtbm90aWZpY2F0aW9uYmFyLWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwgIi8qXG4gKiBPcmRlckxpc3Q6IHA6b3JkZXJMaXN0IChQcmltZVVJWCBvcmRlcmxpc3QgKyBsaXN0Ym94IHRva2VucywgY2FwdGlvbiB1c2VzIHRoZSBwYW5lbCBoZWFkZXIgdG9rZW5zKVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLW9yZGVybGlzdC1jb250cm9scy1yaWdodCwgdWktZ3JpZC1yZXNwb25zaXZlLCBwLXN0YXRlLWRpc2FibGVkXG4gKi9cbi5wLW9yZGVybGlzdCB7XG4gICAgZGlzcGxheTogdGFibGU7XG5cbiAgICAvKiB0aGUgY2FwdGlvbiBiYWNrZ3JvdW5kIGlzIGxheWVyZWQgb3ZlciB0aGUgbGlzdCBiYWNrZ3JvdW5kLCBhcyBpdCBpcyB0cmFuc3BhcmVudCBpbiBzb21lIHByZXNldHMgKi9cbiAgICAucC1vcmRlcmxpc3QtY2FwdGlvbiB7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tcC1vcmRlcmxpc3QtY2FwdGlvbi1iYWNrZ3JvdW5kKSwgdmFyKC0tcC1vcmRlcmxpc3QtY2FwdGlvbi1iYWNrZ3JvdW5kKSksIHZhcigtLXAtbGlzdGJveC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1vcmRlcmxpc3QtY2FwdGlvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwIG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLW9yZGVybGlzdC1jYXB0aW9uLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1vcmRlcmxpc3QtY2FwdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtb3JkZXJsaXN0LWNhcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtYm9yZGVyLXJhZGl1cykgdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpIDAgMDtcbiAgICB9XG5cbiAgICAucC1vcmRlcmxpc3QtbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWxpc3Rib3gtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LWNvbG9yKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1saXN0Ym94LWxpc3QtcGFkZGluZyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtbGlzdGJveC1zaGFkb3cpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpIHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAucC1vcmRlcmxpc3QtaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXBhZGRpbmcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdGJveC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LWl0ZW0gKyAucC1vcmRlcmxpc3QtaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLWxpc3Rib3gtbGlzdC1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LWl0ZW06bm90KC5wLXN0YXRlLWhpZ2hsaWdodCk6aG92ZXIsXG4gICAgICAgIC5wLW9yZGVybGlzdC1pdGVtLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW9yZGVybGlzdC1pdGVtLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb250LXdlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtaXRlbS5wLXN0YXRlLWhpZ2hsaWdodC5wLXNvcnRhYmxlLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3aXRob3V0IGEgY2FwdGlvbiB0aGUgbGlzdCBoYXMgYWxsIGNvcm5lcnMgcm91bmRlZCAqL1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbGlzdGJveC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGZsZXg6IHRoZSAoaGlkZGVuKSBsYWJlbCBvZiB0aGUgaWNvbiBvbmx5IGJ1dHRvbnMgaXMgYSBibG9jayBhbmQgd291bGQgYWRkIGEgc2Vjb25kIGxpbmUgb3RoZXJ3aXNlICovXG4gICAgLnAtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAucC1vcmRlcmxpc3QtaXRlbSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIH1cblxuICAgIC5wLW9yZGVybGlzdC1jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1wLW9yZGVybGlzdC1jb250cm9scy1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LW1vdmUtdXAtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW9yZGVybGlzdC1tb3ZlLXVwLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LW1vdmUtdG9wLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1vcmRlcmxpc3QtbW92ZS10b3AtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1vcmRlcmxpc3QtbW92ZS1kb3duLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1vcmRlcmxpc3QtbW92ZS1kb3duLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LW1vdmUtYm90dG9tLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1vcmRlcmxpc3QtbW92ZS1ib3R0b20taWNvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudWktZyA+IGRpdiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJi5wLW9yZGVybGlzdC1jb250cm9scyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1wLW9yZGVybGlzdC1nYXApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLW9yZGVybGlzdC1jb250cm9scy1yaWdodCAudWktZyA+IGRpdi5wLW9yZGVybGlzdC1jb250cm9scyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1wLW9yZGVybGlzdC1nYXApO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIC5wLW9yZGVybGlzdC1pdGVtLFxuICAgICAgICAucC1idXR0b24ge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LWxpc3Qge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtZGlzYWJsZWQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogcmVzcG9uc2l2ZTogYSBibG9jayB3aXRoIGZ1bGwgd2lkdGggbGlzdHMgYW5kIGNvbnRyb2xzICovXG4gICAgJi51aS1ncmlkLXJlc3BvbnNpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LWxpc3QsXG4gICAgICAgIC5wLW9yZGVybGlzdC1jYXB0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3JkZXJsaXN0LWNvbnRyb2xzIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLypcbiAqIG5hcnJvdyB2aWV3cG9ydDogY29udHJvbHMgaW4gYSByb3cgYWJvdmUgLyBiZWxvdyB0aGUgbGlzdCwgdGhlIHVpLWctMTIgdWktbWQtMiAvIHVpLW1kLTEwIGNvbHVtbnMgZnVsbCB3aWR0aFxuICovXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAucC1vcmRlcmxpc3QudWktZ3JpZC1yZXNwb25zaXZlIC51aS1nID4gZGl2IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi5wLW9yZGVybGlzdC1jb250cm9scyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAgICAgLnAtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXAtb3JkZXJsaXN0LWNvbnRyb2xzLWdhcCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtb3JkZXJsaXN0LWNvbnRyb2xzLWdhcCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogT3V0cHV0TGFiZWw6IHA6b3V0cHV0TGFiZWwgKFByaW1lVUlYOiBsYWJlbClcbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1zdGF0ZS1lcnJvciAoaW52YWxpZCB0YXJnZXQpLCBwLW91dHB1dGxhYmVsLXJ0bCwgcC1zdGF0ZS1kaXNhYmxlZFxuICogQ2hpbGRyZW46IC5wLW91dHB1dGxhYmVsLWxhYmVsICh0ZXh0KSwgLnAtb3V0cHV0bGFiZWwtcmZpIChyZXF1aXJlZCBmaWVsZCBpbmRpY2F0b3IgXCIqXCIpXG4gKi9cbi5wLW91dHB1dGxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tcC1sYWJlbC10ZXh0LWNvbG9yKTtcbiAgICBmb250LXNpemU6IHZhcigtLXAtbGFiZWwtZm9udC1zaXplKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tcC1sYWJlbC1mb250LXdlaWdodCk7XG5cbiAgICAucC1vdXRwdXRsYWJlbC1sYWJlbCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWVycm9yIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGFiZWwtaW52YWxpZC1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogdmFyKC0tcC1sYWJlbC1kaXNhYmxlZC1vcGFjaXR5KTtcbiAgICB9XG5cbiAgICAucC1vdXRwdXRsYWJlbC1yZmkge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tcC1sYWJlbC1yZXF1aXJlZC1pbmRpY2F0b3ItZ2FwKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGFiZWwtcmVxdWlyZWQtaW5kaWNhdG9yLWNvbG9yKTtcbiAgICB9XG59XG5cbi5wLW91dHB1dGxhYmVsLXJ0bCAucC1vdXRwdXRsYWJlbC1yZmkge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tcC1sYWJlbC1yZXF1aXJlZC1pbmRpY2F0b3ItZ2FwKTtcbn1cbiIsICIvKlxuICogT3V0cHV0UGFuZWw6IHA6b3V0cHV0UGFuZWwgKGxheW91dCBibG9jayB8IGlubGluZSwgZGVmZXJyZWQgbG9hZGluZylcbiAqXG4gKiBXaGlsZSBhIGRlZmVycmVkIHBhbmVsIGxvYWRzIGl0IGNvbnRhaW5zIDxpIGNsYXNzPVwicC1vdXRwdXRwYW5lbC1sb2FkaW5nIHAtaWNvbiBwLWxvYWRpbmctaWNvbiBwLW91dHB1dHBhbmVsLWxvYWRpbmctaWNvblwiPixcbiAqIGNlbnRlcmVkIGhlcmUgKFByaW1lRmFjZXMgdG9rZW5zKS4gVGhlIHJvdGF0aW9uIGlzIHRoZSBwLXNwaW4gYW5pbWF0aW9uIChhamF4c3RhdHVzL2FqYXhzdGF0dXMuY3NzKS5cbiAqL1xuXG5kaXYucC1vdXRwdXRwYW5lbDpoYXMoPiAucC1vdXRwdXRwYW5lbC1sb2FkaW5nKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IHZhcigtLXAtb3V0cHV0cGFuZWwtbG9hZGluZy1wYWRkaW5nKTtcbn1cblxuLnAtb3V0cHV0cGFuZWwgLnAtb3V0cHV0cGFuZWwtbG9hZGluZyB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLW91dHB1dHBhbmVsLWxvYWRpbmctaWNvbi1zaXplKTtcbiAgICBjb2xvcjogdmFyKC0tcC1vdXRwdXRwYW5lbC1sb2FkaW5nLWljb24tY29sb3IpO1xuICAgIGFuaW1hdGlvbjogcC1zcGluIHZhcigtLXAtb3V0cHV0cGFuZWwtbG9hZGluZy1pY29uLWFuaW1hdGlvbi1kdXJhdGlvbikgbGluZWFyIGluZmluaXRlO1xufVxuXG4ucC1vdXRwdXRwYW5lbC1sb2FkaW5nLWljb24ge1xuICAgIC0tX2ljb246IHZhcigtLXAtb3V0cHV0cGFuZWwtbG9hZGluZy1pY29uKTtcbn1cbiIsICIvKlxuICogT3ZlcmxheVBhbmVsOiBwOm92ZXJsYXlQYW5lbCAoUHJpbWVVSVggcG9wb3ZlcilcbiAqXG4gKiBNYXJrdXA6IC5wLW92ZXJsYXlwYW5lbCA+IC5wLW92ZXJsYXlwYW5lbC1jb250ZW50LCBvcHRpb25hbCBhLnAtb3ZlcmxheXBhbmVsLWNsb3NlIChzaG93Q2xvc2VJY29uKVxuICogQ2xvc2UgaWNvbiB0b2tlbnM6IHRoZSBvdmVybGF5cGFuZWwgYmxvY2sgb2YgcHJlc2V0cy8qLmNzc1xuICovXG5cbi5wLW92ZXJsYXlwYW5lbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcG9wb3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1wb3BvdmVyLWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXBvcG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBvcG92ZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1wb3BvdmVyLXNoYWRvdyk7XG5cbiAgICAucC1vdmVybGF5cGFuZWwtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcG9wb3Zlci1jb250ZW50LXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC5wLW92ZXJsYXlwYW5lbC1jbG9zZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYygtMSAqIHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi1zaXplKSAvIDIpO1xuICAgICAgICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tc2l6ZSkgLyAyKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBjb2xvciB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpXG4gICAgICAgICAgICAgICAgdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtb3ZlcmxheXBhbmVsLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLW92ZXJsYXlwYW5lbC1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtb3ZlcmxheXBhbmVsLWNsb3NlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1vdmVybGF5cGFuZWwtY2xvc2UtaWNvbik7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogUGFuZWw6IHA6cGFuZWwgKGFsc28gdXNlZCBpbnNpZGUgcDpkYXNoYm9hcmQpXG4gKlxuICogTGlrZSB0aGUgUHJpbWVVSVggcGFuZWwgdGhlIGJvcmRlciwgcmFkaXVzIGFuZCBiYWNrZ3JvdW5kIHNpdCBvbiB0aGUgcm9vdDsgaGVhZGVyLCBjb250ZW50IGFuZCBmb290ZXIgb25seVxuICogYWRkIHRoZWlyIHBhZGRpbmdzICh0aGUgY29udGVudC9mb290ZXIgdG9rZW5zIGhhdmUgbm8gdG9wIHBhZGRpbmcsIHRoZXkgZm9sbG93IHRoZSBoZWFkZXIpLlxuICogSGVhZGVyIGljb25zIChjbG9zZXIsIHRvZ2dsZXIsIG9wdGlvbnMgbWVudSkgYXJlIHRleHQvc2Vjb25kYXJ5IHJvdW5kZWQgaWNvbiBidXR0b25zIGxpa2UgaW4gUHJpbWVVSVguXG4gKiBTdGF0ZXM6IHAtcGFuZWwtY29sbGFwc2VkLCBwLXBhbmVsLWNvbGxhcHNlZC1oLCBwLXBhbmVsLXRpdGxlYmFyLXRvZ2dsZWFibGVcbiAqL1xuXG4ucC1wYW5lbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYW5lbC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1wYW5lbC1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1wYW5lbC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcGFuZWwtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAucC1wYW5lbC10aXRsZWJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFuZWwtaGVhZGVyLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhbmVsLWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWwtaGVhZGVyLWNvbG9yKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtcGFuZWwtdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtcGFuZWwtaGVhZGVyLWJvcmRlci13aWR0aCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1wYW5lbC1oZWFkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1wYW5lbC1oZWFkZXItYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgLyogaGVhZGVyIHdpdGggaWNvbiBidXR0b25zOiBzbWFsbGVyIHBhZGRpbmcgc28gdGhlIGhlYWRlciBrZWVwcyBpdHMgaGVpZ2h0IChQcmltZVVJWCAucC1wYW5lbC10b2dnbGVhYmxlKSAqL1xuICAgICAgICAmOmhhcyg+IC5wLXBhbmVsLXRpdGxlYmFyLWljb24pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFuZWwtdG9nZ2xlYWJsZS1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1wYW5lbC10aXRsZWJhci10b2dnbGVhYmxlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXBhbmVsLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXBhbmVsLXRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXBhbmVsLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICAgIH1cblxuICAgIC5wLXBhbmVsLXRpdGxlYmFyIHtcbiAgICAgICAgLyoga2VlcCB0aGUgdmlzdWFsIG9yZGVyIG9mIHRoZSBmb3JtZXIgcmlnaHQgZmxvYXRzOiBhY3Rpb25zLCBtZW51LCB0b2dnbGVyLCBjbG9zZXIgKi9cbiAgICAgICAgPiAucC1wYW5lbC1hY3Rpb25zIHtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAucC1wYW5lbC10aXRsZWJhci1pY29uIHtcbiAgICAgICAgICAgICZbaWQkPVwiX21lbnVcIl0ge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmW2lkJD1cIl90b2dnbGVyXCJdIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJltpZCQ9XCJfY2xvc2VyXCJdIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogNDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBhbmVsLXRpdGxlYmFyLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1pY29uLW9ubHktd2lkdGgpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXRleHQtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tdGV4dC1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXBhbmVsLWNsb3NlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGFuZWwtY2xvc2UtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXBhbmVsLXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhbmVsLXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwiZmFsc2VcIl0gLnAtcGFuZWwtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGFuZWwtdG9nZ2xlLWNvbGxhcHNlZC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtcGFuZWwtbWVudS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhbmVsLW1lbnUtaWNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1wYW5lbC10aXRsZWJhci1pY29uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXBhbmVsLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBhbmVsLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgfVxuXG4gICAgLyogbm8gaGVhZGVyOiB0aGUgY29udGVudCB0b2tlbiBoYXMgbm8gdG9wIHBhZGRpbmcsIHVzZSB0aGUgaGVhZGVyIHNwYWNpbmcgaW5zdGVhZCAqL1xuICAgID4gLnAtcGFuZWwtY29udGVudDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1wLXBhbmVsLWhlYWRlci1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAucC1wYW5lbC1mb290ZXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFuZWwtZm9vdGVyLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAvKiBjb2xsYXBzZWQ6IHRoZSBoZWFkZXIgaXMgdGhlIG9ubHkgdmlzaWJsZSBwYXJ0IGFuZCBjbG9zZXMgdGhlIHJvdW5kZWQgYm94XG4gICAgICAgKHJlbmRlcmVkIGNvbGxhcHNlZCA9IHRoZSBjb250ZW50IGhhcyBhbiBpbmxpbmUgZGlzcGxheTpub25lLCBwLXBhbmVsLWNvbGxhcHNlZCBpcyBvbmx5IHNldCBieSB0aGUgd2lkZ2V0KSAqL1xuICAgICYucC1wYW5lbC1jb2xsYXBzZWQgLnAtcGFuZWwtdGl0bGViYXIsXG4gICAgJjpub3QoOmhhcyg+IC5wLXBhbmVsLWZvb3RlcikpOmhhcyg+IC5wLXBhbmVsLWNvbnRlbnRbc3R5bGUqPVwiZGlzcGxheTpub25lXCJdKSA+IC5wLXBhbmVsLXRpdGxlYmFyIHtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtcGFuZWwtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1wYW5lbC1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAvKiBjb2xsYXBzZWQgaG9yaXpvbnRhbGx5IChzbGlkIHRvIHRoZSBsZWZ0KTogb25seSB0aGUgdG9nZ2xlciBpcyBsZWZ0ICovXG4gICAgJi5wLXBhbmVsLWNvbGxhcHNlZC1oIHtcbiAgICAgICAgd2lkdGg6IDQycHg7XG5cbiAgICAgICAgLnAtcGFuZWwtdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBhbmVsLXRpdGxlYmFyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIFBhbmVsR3JpZDogcDpwYW5lbEdyaWQgKGxheW91dCB0YWJ1bGFyIHwgZ3JpZCB8IGZsZXggfCB0YWlsd2luZClcbiAqXG4gKiBQcmltZUZhY2VzIHRva2VucyAodGhlIHBhbmVsZ3JpZCBibG9jayBvZiBwcmVzZXRzLyouY3NzKSB0aGF0IGRlZmF1bHQgdG8gdGhlIFByaW1lVUlYIGRhdGF0YWJsZSBjZWxsIHRva2Vucy5cbiAqIHRhYnVsYXI6IHRhYmxlID4gdGhlYWQucC1wYW5lbGdyaWQtaGVhZGVyIC8gdGJvZHkgLyB0Zm9vdC5wLXBhbmVsZ3JpZC1mb290ZXIgd2l0aCB0ZC5wLXBhbmVsZ3JpZC1jZWxsXG4gKiAgICAgICAgICAoaGVhZGVyIGFuZCBmb290ZXIgY2VsbHMgYWxzbyBjYXJyeSBwLXdpZGdldC1oZWFkZXIpXG4gKiBncmlkL2ZsZXgvdGFpbHdpbmQ6IGRpdi5wLXBhbmVsZ3JpZC1oZWFkZXIucC13aWRnZXQtaGVhZGVyLCBkaXYucC1wYW5lbGdyaWQtY29udGVudCwgZGl2LnAtcGFuZWxncmlkLWZvb3Rlci5wLXdpZGdldC1oZWFkZXJcbiAqIFN0YXRlczogcC1ub2JvcmRlciwgcC1wYW5lbGdyaWQtYmxhbmssIHAtcGFuZWxncmlkLW5vcGFkIChjZWxsKVxuICovXG5cbi5wLXBhbmVsZ3JpZCB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICAgIC5wLXBhbmVsZ3JpZC1oZWFkZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnAtcGFuZWxncmlkLWZvb3RlciB7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIC8qIHRhYnVsYXIgY2VsbHMgKi9cbiAgICAucC1wYW5lbGdyaWQtY2VsbCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtcGFuZWxncmlkLWNlbGwtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcGFuZWxncmlkLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsZ3JpZC1jZWxsLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1wYW5lbGdyaWQtY2VsbC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgIC5wLXBhbmVsZ3JpZC1jZWxsLnAtd2lkZ2V0LWhlYWRlcixcbiAgICA+IGRpdi5wLXBhbmVsZ3JpZC1oZWFkZXIsXG4gICAgPiBkaXYucC1wYW5lbGdyaWQtZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYW5lbGdyaWQtaGVhZGVyLWNlbGwtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcGFuZWxncmlkLWhlYWRlci1jZWxsLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbGdyaWQtaGVhZGVyLWNlbGwtY29sb3IpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXBhbmVsZ3JpZC1oZWFkZXItY2VsbC1ib3JkZXItY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtcGFuZWxncmlkLWhlYWRlci1jZWxsLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXBhbmVsZ3JpZC1oZWFkZXItY2VsbC1mb250LXdlaWdodCk7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgICAvKiBncmlkIC8gZmxleCAvIHRhaWx3aW5kIGxheW91dHM6IHRoZSBjb250ZW50IGlzIG9uZSBib3JkZXJlZCBib3gsIGhlYWRlciBhbmQgZm9vdGVyIGFyZSBhdHRhY2hlZCB0byBpdCAqL1xuICAgICAgICAmLnAtcGFuZWxncmlkLWNvbnRlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYW5lbGdyaWQtY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsZ3JpZC1jZWxsLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtcGFuZWxncmlkLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1wYW5lbGdyaWQtaGVhZGVyICsgZGl2LnAtcGFuZWxncmlkLWNvbnRlbnQsXG4gICAgICAgICYucC1wYW5lbGdyaWQtY29udGVudCArIGRpdi5wLXBhbmVsZ3JpZC1mb290ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMCBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLW5vYm9yZGVyIC5wLXdpZGdldC1jb250ZW50LFxuICAgICYucC1ub2JvcmRlciAucC13aWRnZXQtaGVhZGVyLFxuICAgICYucC1ub2JvcmRlciAucC1wYW5lbGdyaWQtY2VsbCxcbiAgICAmLnAtbm9ib3JkZXIgLnAtcGFuZWxncmlkLWNlbGwucC13aWRnZXQtaGVhZGVyLFxuICAgICYucC1ub2JvcmRlciA+IGRpdi5wLXBhbmVsZ3JpZC1oZWFkZXIsXG4gICAgJi5wLW5vYm9yZGVyID4gZGl2LnAtcGFuZWxncmlkLWNvbnRlbnQsXG4gICAgJi5wLW5vYm9yZGVyID4gZGl2LnAtcGFuZWxncmlkLWZvb3RlcixcbiAgICAuZ3JpZCAucC1wYW5lbGdyaWQtY2VsbCxcbiAgICAucC1ncmlkIC5wLXBhbmVsZ3JpZC1jZWxsLFxuICAgIC51aS1ncmlkLXJlc3BvbnNpdmUgLnAtcGFuZWxncmlkLWNlbGwge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICB9XG5cbiAgICAmLnAtcGFuZWxncmlkLWJsYW5rIC5wLXBhbmVsZ3JpZC1jb250ZW50LnAtd2lkZ2V0LWNvbnRlbnQsXG4gICAgJi5wLXBhbmVsZ3JpZC1ibGFuayAucC1wYW5lbGdyaWQtaGVhZGVyLnAtd2lkZ2V0LWhlYWRlcixcbiAgICAmLnAtcGFuZWxncmlkLWJsYW5rIC5wLXBhbmVsZ3JpZC1mb290ZXIucC13aWRnZXQtaGVhZGVyLFxuICAgICYucC1wYW5lbGdyaWQtYmxhbmsgLnAtcGFuZWxncmlkLWhlYWRlciA+IHRyLnAtd2lkZ2V0LWhlYWRlcixcbiAgICAmLnAtcGFuZWxncmlkLWJsYW5rIC5wLXBhbmVsZ3JpZC1mb290ZXIgPiB0ci5wLXdpZGdldC1oZWFkZXIsXG4gICAgJi5wLXBhbmVsZ3JpZC1ibGFuayB0Ym9keSA+IHRyLnAtd2lkZ2V0LWNvbnRlbnQsXG4gICAgJi5wLXBhbmVsZ3JpZC1ibGFuayB0Ym9keSA+IHRyLnAtd2lkZ2V0LWNvbnRlbnQgPiB0ZC5wLXBhbmVsZ3JpZC1jZWxsLFxuICAgICYucC1wYW5lbGdyaWQtYmxhbmsgLnAtcGFuZWxncmlkLWNlbGwsXG4gICAgJi5wLXBhbmVsZ3JpZC1ibGFuayA+IGRpdi5wLXBhbmVsZ3JpZC1oZWFkZXIsXG4gICAgJi5wLXBhbmVsZ3JpZC1ibGFuayA+IGRpdi5wLXBhbmVsZ3JpZC1jb250ZW50LFxuICAgICYucC1wYW5lbGdyaWQtYmxhbmsgPiBkaXYucC1wYW5lbGdyaWQtZm9vdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgfVxuXG4gICAgLnAtcGFuZWxncmlkLWNlbGwucC1wYW5lbGdyaWQtbm9wYWQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cblxuLyogcmVzcG9uc2l2ZSAobGVnYWN5IHVpLWdyaWQpICovXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAucC1wYW5lbGdyaWQge1xuICAgICAgICAudWktZ3JpZC1yZXNwb25zaXZlIC51aS1ncmlkLXJvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcC1wYW5lbGdyaWQtY2VsbC1ib3JkZXItY29sb3IpO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwIG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtbm9ib3JkZXIgLnVpLWdyaWQtcmVzcG9uc2l2ZSAudWktZ3JpZC1yb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiLypcbiAqIFBhbmVsTWVudTogcDpwYW5lbE1lbnVcbiAqXG4gKiBNYXJrdXA6IC5wLXBhbmVsbWVudSA+IC5wLXBhbmVsbWVudS1wYW5lbFxuICogICAgICAgICAgID4gaDMucC1wYW5lbG1lbnUtaGVhZGVyIChwLXN0YXRlLWFjdGl2ZSB3aGVuIGV4cGFuZGVkLCBwLXN0YXRlLWhvdmVyLCBwLW1lbnVpdGVtLW91dGxpbmUgd2hlbiBmb2N1c2VkKVxuICogICAgICAgICAgICAgPiBzcGFuLnAtcGFuZWxtZW51LWhlYWRlci1pY29uICh0b2dnbGUpICsgc3Bhbi5wLXN1Ym1lbnUtaWNvbiAoc3VibWVudSBpY29uLCBvcHRpb25hbCkgKyBhIChsYWJlbClcbiAqICAgICAgICAgICArIC5wLXBhbmVsbWVudS1jb250ZW50IChwLWhpZGRlbiB3aGVuIGNvbGxhcHNlZCkgPiB1bC5wLW1lbnUtbGlzdFxuICogICAgICAgICAgICAgPiBsaS5wLW1lbnVpdGVtID4gYS5wLW1lbnVpdGVtLWxpbmsgKHAtc3RhdGUtaG92ZXIpID4gc3Bhbi5wLW1lbnVpdGVtLWljb24gKyBzcGFuLnAtbWVudWl0ZW0tdGV4dFxuICogICAgICAgICAgICAgICAocC1tZW51aXRlbS1vdXRsaW5lIG9uIHRoZSB0ZXh0ID0ga2V5Ym9hcmQgLyBjbGljayBmb2N1cylcbiAqICAgICAgICAgICAgID4gbGkucC1tZW51LXBhcmVudCA+IGEucC1tZW51aXRlbS1saW5rID4gLnAtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbiAodG9nZ2xlKSArIHNwYW4ucC1zdWJtZW51LWljb25cbiAqICAgICAgICAgICAgICAgKyBzcGFuLnAtbWVudWl0ZW0tdGV4dFthcmlhLWV4cGFuZGVkXVxuICogICAgICAgICAgICAgICArIHVsLnAtbWVudS1saXN0IChwLWhpZGRlbiB3aGVuIGNvbGxhcHNlZClcbiAqIExpa2UgUHJpbWVVSVg6IHNlcGFyYXRlIGJvcmRlcmVkIHBhbmVscyB3aXRoIGEgZ2FwLCB0aGUgaGVhZGVycyBsb29rIGxpa2UgaXRlbXMuXG4gKi9cbi5wLXBhbmVsbWVudSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tcC1wYW5lbG1lbnUtZ2FwKTtcblxuICAgIC5wLXBhbmVsbWVudS1wYW5lbCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYW5lbG1lbnUtcGFuZWwtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1wYW5lbG1lbnUtcGFuZWwtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYW5lbG1lbnUtcGFuZWwtcGFkZGluZyk7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtcGFuZWxtZW51LXBhbmVsLWZpcnN0LWJvcmRlci13aWR0aCk7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1maXJzdC10b3AtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1wYW5lbG1lbnUtcGFuZWwtZmlyc3QtdG9wLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC1wYW5lbG1lbnUtcGFuZWwtbGFzdC1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtcGFuZWxtZW51LXBhbmVsLWxhc3QtYm90dG9tLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLXBhbmVsbWVudS1wYW5lbC1sYXN0LWJvdHRvbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXBhbmVsbWVudS1oZWFkZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYucC1zdGF0ZS1kaXNhYmxlZCxcbiAgICAgICAgJi5wLXN0YXRlLWRpc2FibGVkIGEge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogaGVhZGVyOiBsb29rcyBsaWtlIGFuIGl0ZW0gKi9cbiAgICBoMy5wLXBhbmVsbWVudS1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tZ2FwKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAvKiBhbHNvIGhpZGVzIHRoZSBwLW1lbnVpdGVtLW91dGxpbmUgdGhlIHdpZGdldCBzZXRzIG9uIGV2ZXJ5IGZvY3VzIChjbGljayB0b28pLCA6Zm9jdXMtdmlzaWJsZSBtYXJrcyBrZXlib2FyZCBmb2N1cyAqL1xuICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1wYW5lbG1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtcGFuZWxtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLXBhbmVsbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXBhbmVsbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA6aXMoLnAtbWVudWl0ZW0taWNvbiwgLnAtc3VibWVudS1pY29uKSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1pY29uLXNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdG9nZ2xlIGljb24gKi9cbiAgICAgICAgLnAtcGFuZWxtZW51LWhlYWRlci1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGFuZWxtZW51LWhlYWRlci1jb2xsYXBzZWQtaWNvbik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0taWNvbi1zaXplKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1zdWJtZW51LWljb24tY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWFjdGl2ZSAucC1wYW5lbG1lbnUtaGVhZGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1wYW5lbG1lbnUtaGVhZGVyLWV4cGFuZGVkLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGhlIGNvbGxhcHNlZCBpY29uIHBvaW50cyB0byB0aGUgc3RhcnQgKi9cbiAgICAgICAgJjpub3QoLnAtc3RhdGUtYWN0aXZlKSAucC1wYW5lbG1lbnUtaGVhZGVyLWljb246ZGlyKHJ0bCkge1xuICAgICAgICAgICAgc2NhbGU6IC0xIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUsXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpoYXMoPiBhOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgOmlzKC5wLW1lbnVpdGVtLWljb24sIC5wLXN1Ym1lbnUtaWNvbiksXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciA6aXMoLnAtbWVudWl0ZW0taWNvbiwgLnAtc3VibWVudS1pY29uKSxcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUgOmlzKC5wLW1lbnVpdGVtLWljb24sIC5wLXN1Ym1lbnUtaWNvbiksXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpoYXMoPiBhOmZvY3VzLXZpc2libGUpIDppcygucC1tZW51aXRlbS1pY29uLCAucC1zdWJtZW51LWljb24pIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIC5wLXBhbmVsbWVudS1oZWFkZXItaWNvbixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIC5wLXBhbmVsbWVudS1oZWFkZXItaWNvbixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUgLnAtcGFuZWxtZW51LWhlYWRlci1pY29uLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aGFzKD4gYTpmb2N1cy12aXNpYmxlKSAucC1wYW5lbG1lbnUtaGVhZGVyLWljb24ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1wYW5lbG1lbnUtY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICB9XG5cbiAgICAucC1tZW51LWxpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLnAtbWVudS1saXN0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tcC1wYW5lbG1lbnUtc3VibWVudS1pbmRlbnQpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtbWVudWl0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnAtcGFuZWxtZW51LWNvbnRlbnQgLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1nYXApO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLXBhZGRpbmcpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtcGFuZWxtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXBhbmVsbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1wYW5lbG1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1wYW5lbG1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgPiBzcGFuOmlzKC5wLW1lbnVpdGVtLWljb24sIC5wLXN1Ym1lbnUtaWNvbikge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0taWNvbi1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0taWNvbi1zaXplKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHN1Ym1lbnUgdG9nZ2xlIGljb24sIHRoZSBzdGF0ZSBpcyB0aGUgYXJpYS1leHBhbmRlZCBvZiB0aGUgbGFiZWwgKHRoZSBmb2N1c2VkIGVsZW1lbnQpICovXG4gICAgICAgID4gLnAtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhbmVsbWVudS1zdWJtZW51LWNvbGxhcHNlZC1pY29uKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1pY29uLXNpemUpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbi1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyg+IC5wLW1lbnVpdGVtLXRleHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl0pID4gLnAtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhbmVsbWVudS1zdWJtZW51LWV4cGFuZGVkLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmhhcyg+IC5wLW1lbnVpdGVtLXRleHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl0pKSA+IC5wLXBhbmVsbWVudS1zdWJtZW51LWljb246ZGlyKHJ0bCkge1xuICAgICAgICAgICAgc2NhbGU6IC0xIDE7XG4gICAgICAgIH1cblxuICAgICAgICAucC1tZW51aXRlbS10ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tbGFiZWwtZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaG92ZXIgYW5kIGZvY3VzZWQgaXRlbSAodGhlIHdpZGdldCBwdXRzIHAtbWVudWl0ZW0tb3V0bGluZSBvbiB0aGUgdGV4dCBvZiB0aGUgZm9jdXNlZCBpdGVtKSAqL1xuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJjpoYXMoPiAucC1tZW51aXRlbS1vdXRsaW5lKSxcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wYW5lbG1lbnUtaXRlbS1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1pdGVtLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW1lbnVpdGVtLXRleHQucC1tZW51aXRlbS1vdXRsaW5lIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciBzcGFuOmlzKC5wLW1lbnVpdGVtLWljb24sIC5wLXN1Ym1lbnUtaWNvbiksXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciBzcGFuOmlzKC5wLW1lbnVpdGVtLWljb24sIC5wLXN1Ym1lbnUtaWNvbiksXG4gICAgICAgICY6aGFzKD4gLnAtbWVudWl0ZW0tb3V0bGluZSkgc3BhbjppcygucC1tZW51aXRlbS1pY29uLCAucC1zdWJtZW51LWljb24pLFxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZSBzcGFuOmlzKC5wLW1lbnVpdGVtLWljb24sIC5wLXN1Ym1lbnUtaWNvbikge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgc3Bhbi5wLXBhbmVsbWVudS1pY29uLFxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIgc3Bhbi5wLXBhbmVsbWVudS1pY29uLFxuICAgICAgICAmOmhhcyg+IC5wLW1lbnVpdGVtLW91dGxpbmUpIHNwYW4ucC1wYW5lbG1lbnUtaWNvbixcbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUgc3Bhbi5wLXBhbmVsbWVudS1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhbmVsbWVudS1zdWJtZW51LWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIC5wLW1lbnVpdGVtLXRleHQsXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciAucC1tZW51aXRlbS10ZXh0LFxuICAgICAgICAmOmhhcyg+IC5wLW1lbnVpdGVtLW91dGxpbmUpIC5wLW1lbnVpdGVtLXRleHQsXG4gICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpmb2N1cy12aXNpYmxlIC5wLW1lbnVpdGVtLXRleHQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtcGFuZWxtZW51LWl0ZW0tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBQYXNzd29yZDogcDpwYXNzd29yZCAodG9nZ2xlIG1hc2sgaWNvbiBhbmQgdGhlIGZlZWRiYWNrIG92ZXJsYXkgLyBpbmxpbmUgcGFuZWwpXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtcGFzc3dvcmQtbWFza2VkLCBwLXBhc3N3b3JkLXVubWFza2VkICh0b2dnbGVNYXNrIHdyYXBwZXIsIGFsc28gLnAtaW5wdXQtaWNvbi1yaWdodCAvIC1sZWZ0KSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXBhc3N3b3JkLXBhbmVsLW92ZXJsYXksIHAtcGFzc3dvcmQtcGFuZWwtaW5saW5lXG4gKi9cbi5wLXBhc3N3b3JkLXBhbmVsLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnAtcGFzc3dvcmQtbWFza2VkLnAtcGFzc3dvcmQsXG4ucC1wYXNzd29yZC11bm1hc2tlZC5wLXBhc3N3b3JkIHtcbiAgICA+IGlucHV0OjotbXMtcmV2ZWFsLFxuICAgID4gaW5wdXQ6Oi1tcy1jbGVhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ucC1wYXNzd29yZCB7XG4gICAgLnAtcGFzc3dvcmQtaWNvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLyogdGhlIHNpemUgb2YgdGhlIGZpZWxkIHRleHQsIG5vdCAtLXAtaWNvbi1zaXplIG9mIC5wLWljb24gKi9cbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1wYXNzd29yZC1pY29uLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1ib3JkZXItcmFkaXVzLXhzKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1wYXNzd29yZC10b2dnbGUtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtcGFzc3dvcmQtc2hvdy1pY29uKTtcbiAgICB9XG5cbiAgICAmLnAtcGFzc3dvcmQtdW5tYXNrZWQgLnAtcGFzc3dvcmQtdG9nZ2xlLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBhc3N3b3JkLWhpZGUtaWNvbik7XG4gICAgfVxufVxuXG4ucC1wYXNzd29yZC1wYW5lbCB7XG4gICAgLyogLnAtd2lkZ2V0IGFkZGVkIGZvciBzcGVjaWZpY2l0eSwgdGhlIHBhbmVsIGFsc28gY2FycmllcyBwLXN0YXRlLWhpZ2hsaWdodCAqL1xuICAgICYucC13aWRnZXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXBhc3N3b3JkLW92ZXJsYXktYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBhc3N3b3JkLW92ZXJsYXktY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBhc3N3b3JkLW92ZXJsYXktcGFkZGluZyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtcGFzc3dvcmQtb3ZlcmxheS1ib3JkZXItY29sb3IpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAvKiBsYXlvdXQgdmFsdWUsIG5vIHRva2VuOiBrZWVwcyB0aGUgb3ZlcmxheSByZWFkYWJsZSBmb3Igc2hvcnQgaW5wdXRzICovXG4gICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtcGFzc3dvcmQtb3ZlcmxheS1zaGFkb3cpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXBhc3N3b3JkLW92ZXJsYXktYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgJi5wLXBhc3N3b3JkLXBhbmVsLWlubGluZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXAtcGFzc3dvcmQtY29udGVudC1nYXApO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogU3RyZW5ndGggbWV0ZXI6IHRoZSB3aWRnZXQgb25seSBzZXRzIGFuIGlubGluZSBiYWNrZ3JvdW5kLXBvc2l0aW9uICgwIDAgPSBlbXB0eSwgMCAtMTBweCA9IHdlYWssIDAgLTIwcHggPSBtZWRpdW0sXG4gICAgICogMCAtMzBweCA9IHN0cm9uZyksIG9yaWdpbmFsbHkgZm9yIGEgc3ByaXRlIGltYWdlLiBFYWNoIHN0cmVuZ3RoIGlzIGEgYmFja2dyb3VuZCBsYXllciB3aG9zZSBjb2xvcmVkIDEwcHggYmFuZFxuICAgICAqIGJlY29tZXMgdmlzaWJsZSBhdCBpdHMgb2Zmc2V0OyB0aGUgbGF5ZXIgd2lkdGggc2hvd3MgdGhlIHN0cmVuZ3RoICgxLzMsIDIvMywgZnVsbCkuXG4gICAgICogVGhlIDEwcHggYmFuZCBoZWlnaHQgaXMgZml4ZWQgYnkgdGhlIHdpZGdldCBvZmZzZXRzLCBzbyB0aGUgbWV0ZXIgaXMgbmV2ZXIgdGFsbGVyIHRoYW4gdGhhdC5cbiAgICAgKi9cbiAgICAucC1wYXNzd29yZC1tZXRlciB7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1wYXNzd29yZC1tZXRlci1oZWlnaHQpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcGFzc3dvcmQtbWV0ZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXAtcGFzc3dvcmQtbWV0ZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAxMHB4LCB2YXIoLS1wLXBhc3N3b3JkLXN0cmVuZ3RoLXdlYWstYmFja2dyb3VuZCkgMTBweCxcbiAgICAgICAgICAgICAgICB2YXIoLS1wLXBhc3N3b3JkLXN0cmVuZ3RoLXdlYWstYmFja2dyb3VuZCkgMjBweCwgdHJhbnNwYXJlbnQgMjBweCksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAyMHB4LCB2YXIoLS1wLXBhc3N3b3JkLXN0cmVuZ3RoLW1lZGl1bS1iYWNrZ3JvdW5kKSAyMHB4LFxuICAgICAgICAgICAgICAgIHZhcigtLXAtcGFzc3dvcmQtc3RyZW5ndGgtbWVkaXVtLWJhY2tncm91bmQpIDMwcHgsIHRyYW5zcGFyZW50IDMwcHgpLFxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQgMzBweCwgdmFyKC0tcC1wYXNzd29yZC1zdHJlbmd0aC1zdHJvbmctYmFja2dyb3VuZCkgMzBweCk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzMuMzMzJSA0MHB4LCA2Ni42NjYlIDQwcHgsIDEwMCUgNDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB9XG5cbiAgICAucC1wYXNzd29yZC1pbmZvIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcC1wYXNzd29yZC1jb250ZW50LWdhcCk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1wYXNzd29yZC1tZXRlci10ZXh0LWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXBhc3N3b3JkLW1ldGVyLXRleHQtZm9udC13ZWlnaHQpO1xuICAgIH1cbn1cblxuLnAtZmx1aWQgLnAtcGFzc3dvcmQsXG4ucC1mbHVpZCAucC1wYXNzd29yZCBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCAiLypcbiAqIFBpY2tMaXN0OiBwOnBpY2tMaXN0IChQcmltZVVJWCBwaWNrbGlzdCArIGxpc3Rib3ggdG9rZW5zLCBjYXB0aW9uIHVzZXMgdGhlIHBhbmVsIGhlYWRlciB0b2tlbnMpXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtcGlja2xpc3QtdmVydGljYWwsIHAtcGlja2xpc3QtcmVzcG9uc2l2ZSwgcC1waWNrbGlzdC1vdXRsaW5lIChrZXlib2FyZCBmb2N1c2VkIGl0ZW0pLCBwLXN0YXRlLWRpc2FibGVkXG4gKi9cbi5wLXBpY2tsaXN0IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcblxuICAgID4gZGl2IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuXG4gICAgLnAtcGlja2xpc3QtYnV0dG9ucyB7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tcC1waWNrbGlzdC1nYXApO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1wLXBpY2tsaXN0LWNvbnRyb2xzLWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1tb3ZlLXVwLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLXVwLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS10b3AtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtdG9wLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS1kb3duLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLWRvd24taWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1tb3ZlLWJvdHRvbS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS1ib3R0b20taWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1tb3ZlLXRvLXRhcmdldC1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS10by10YXJnZXQtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1tb3ZlLWFsbC10by10YXJnZXQtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtYWxsLXRvLXRhcmdldC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LW1vdmUtdG8tc291cmNlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLXRvLXNvdXJjZS1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LW1vdmUtYWxsLXRvLXNvdXJjZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS1hbGwtdG8tc291cmNlLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiOiB0aGUgYnV0dG9ucyBiZXR3ZWVuIHRoZSBsaXN0cyBwb2ludCBkb3duIC8gdXAgKi9cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS10by10YXJnZXQtdmVydGljYWwtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtdG8tdGFyZ2V0LXZlcnRpY2FsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbW92ZS1hbGwtdG8tdGFyZ2V0LXZlcnRpY2FsLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLWFsbC10by10YXJnZXQtdmVydGljYWwtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1tb3ZlLXRvLXNvdXJjZS12ZXJ0aWNhbC1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS10by1zb3VyY2UtdmVydGljYWwtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1waWNrbGlzdC1tb3ZlLWFsbC10by1zb3VyY2UtdmVydGljYWwtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtYWxsLXRvLXNvdXJjZS12ZXJ0aWNhbC1pY29uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGZsZXg6IHRoZSAoaGlkZGVuKSBsYWJlbCBvZiB0aGUgaWNvbiBvbmx5IGJ1dHRvbnMgaXMgYSBibG9jayBhbmQgd291bGQgYWRkIGEgc2Vjb25kIGxpbmUgb3RoZXJ3aXNlICovXG4gICAgLnAtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAucC1idXR0b24tdGV4dC1pY29uLWxlZnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvKiB0aGUgY2FwdGlvbiBiYWNrZ3JvdW5kIGlzIGxheWVyZWQgb3ZlciB0aGUgbGlzdCBiYWNrZ3JvdW5kLCBhcyBpdCBpcyB0cmFuc3BhcmVudCBpbiBzb21lIHByZXNldHMgKi9cbiAgICAucC1waWNrbGlzdC1jYXB0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tcC1waWNrbGlzdC1jYXB0aW9uLWJhY2tncm91bmQpLCB2YXIoLS1wLXBpY2tsaXN0LWNhcHRpb24tYmFja2dyb3VuZCkpLCB2YXIoLS1wLWxpc3Rib3gtYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtcGlja2xpc3QtY2FwdGlvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwIG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXBpY2tsaXN0LWNhcHRpb24tY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBpY2tsaXN0LWNhcHRpb24tcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXBpY2tsaXN0LWNhcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtYm9yZGVyLXJhZGl1cykgdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpIDAgMDtcbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIH1cblxuICAgIC5wLXBpY2tsaXN0LWZpbHRlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC8qIHNlYXJjaCBpY29uIGluc2lkZSB0aGUgZmlsdGVyIGlucHV0LCBhdCB0aGUgc3RhcnQgKi9cbiAgICAucC1waWNrbGlzdC1maWx0ZXItY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgLnAtcGlja2xpc3QtZmlsdGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteSk7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1pbnB1dHRleHQtcGFkZGluZy14KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKDIgKiB2YXIoLS1wLWlucHV0dGV4dC1wYWRkaW5nLXgpICsgdmFyKC0tcC1pY29uLXNpemUpKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXAtcGlja2xpc3QtY29udHJvbHMtZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LWZpbHRlci1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtZmlsdGVyLWljb24pO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1wLWlucHV0dGV4dC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1pY29uLXNpemUpIC8gMiAtIHZhcigtLXAtcGlja2xpc3QtY29udHJvbHMtZ2FwKSAvIDIpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZm9ybS1maWVsZC1pY29uLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXBpY2tsaXN0LWxpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1saXN0Ym94LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbGlzdGJveC1saXN0LXBhZGRpbmcpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLWxpc3Rib3gtc2hhZG93KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1waWNrbGlzdC1jYXB0aW9uICsgLnAtcGlja2xpc3QtbGlzdCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC5wLXBpY2tsaXN0LWl0ZW0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtcGlja2xpc3QtbGlzdCAucC1waWNrbGlzdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdGJveC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtbGlzdGJveC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgKyAucC1waWNrbGlzdC1pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXAtbGlzdGJveC1saXN0LWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgucC1zdGF0ZS1oaWdobGlnaHQsIC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlcixcbiAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb250LXdlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0LnAtc29ydGFibGUtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGtleWJvYXJkIGZvY3VzICovXG4gICAgICAgICYucC1waWNrbGlzdC1vdXRsaW5lIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IGNhbGMoLTEgKiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2hrYm94IHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLWxpc3Rib3gtY2hlY2ttYXJrLWd1dHRlci1lbmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXBpY2tsaXN0LXZlcnRpY2FsIHtcbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtYnV0dG9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBpY2tsaXN0LWNvbnRyb2xzLWdhcCkgMDtcblxuICAgICAgICAgICAgLnAtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtcGlja2xpc3QtY29udHJvbHMtZ2FwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qXG4gICAgICogcmVzcG9uc2l2ZTogdGhlIHBpY2tMaXN0IGlzIGEgZ3JpZCB3aXRoIHRoZSBjb2x1bW4gd2lkdGhzXG4gICAgICogdGhlIHRhYmxlIGhhZCAobGlzdHMgNDUlIC8gYnV0dG9ucyAxMCU7IGxpc3RzIDM1JSBuZXh0IHRvIHJlb3JkZXIgY29udHJvbHMsIHdoaWNoIHNoYXJlIHRoZSByZXN0IGxpa2UgYXV0byB0YWJsZVxuICAgICAqIGNvbHVtbnMpLCBhbmQgYSBibG9jayBpbiB0aGUgdmVydGljYWwgbGF5b3V0IChpdHMgdGFibGUgcm93cyB3ZXJlIGZ1bGwgd2lkdGggYWxyZWFkeSkuIFNhbWUgbGF5b3V0IGFzIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICAmLnAtcGlja2xpc3QtcmVzcG9uc2l2ZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXBpY2tsaXN0LWJ1dHRvbnMgYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGlja2xpc3QtbGlzdCB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1waWNrbGlzdC1yZXNwb25zaXZlOm5vdCgucC1waWNrbGlzdC12ZXJ0aWNhbCkge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ1JSAxMCUgNDUlO1xuXG4gICAgICAgICY6aGFzKD4gLnAtcGlja2xpc3Qtc291cmNlLWNvbnRyb2xzKSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMzUlIDEwJSA0NSU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyg+IC5wLXBpY2tsaXN0LXRhcmdldC1jb250cm9scykge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0NSUgMTAlIDM1JSBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoPiAucC1waWNrbGlzdC1zb3VyY2UtY29udHJvbHMpOmhhcyg+IC5wLXBpY2tsaXN0LXRhcmdldC1jb250cm9scykge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDM1JSAxMCUgMzUlIGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGJ1dHRvbnMgY2VudGVyZWQgb24gdGhlIHJvdyBoZWlnaHQsIGxpa2UgaW4gdGhlIG1pZGRsZSBhbGlnbmVkIHRhYmxlIGNlbGwgKi9cbiAgICAgICAgPiAucC1waWNrbGlzdC1idXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtcGlja2xpc3QtcmVzcG9uc2l2ZS5wLXBpY2tsaXN0LXZlcnRpY2FsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0YWJsZSByb3dzIGhhdmUgbm8gcGFkZGluZzoga2VlcCB0aGUgdGFibGUgbGF5b3V0ICg6d2hlcmUsIHNvIHRoZSBuYXJyb3cgbGF5b3V0IGJlbG93IHN0aWxsIHNldHMgaXQpICovXG4gICAgICAgID4gOndoZXJlKC5wLXBpY2tsaXN0LWJ1dHRvbnMpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXBpY2tsaXN0LWxpc3QucC1waWNrbGlzdC1zb3VyY2UsXG4ucC1waWNrbGlzdC1saXN0LnAtcGlja2xpc3QtdGFyZ2V0IHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4ucC1waWNrbGlzdC1vdXRsaW5lIHtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4vKiBuYXJyb3cgdmlld3BvcnQ6IGxpc3RzIGFuZCBidXR0b25zIHN0YWNrZWQgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5wLXBpY2tsaXN0LnAtcGlja2xpc3QtcmVzcG9uc2l2ZSB7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIH1cblxuICAgICAgICA+IGRpdi5wLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGUgYnV0dG9ucyBhcmUgaW4gYSByb3cgYmV0d2VlbiB0aGUgbGlzdHM6IHRoZSBhcnJvd3MgcG9pbnQgZG93biAvIHVwICovXG4gICAgICAgIC5wLXBpY2tsaXN0LWJ1dHRvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1waWNrbGlzdC1jb250cm9scy1nYXApIDA7XG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wLXBpY2tsaXN0LWNvbnRyb2xzLWdhcCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtcGlja2xpc3QtY29udHJvbHMtZ2FwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1idXR0b24gLnAtcGlja2xpc3QtbW92ZS10by10YXJnZXQtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLXRvLXRhcmdldC12ZXJ0aWNhbC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtYnV0dG9uIC5wLXBpY2tsaXN0LW1vdmUtYWxsLXRvLXRhcmdldC1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXBpY2tsaXN0LW1vdmUtYWxsLXRvLXRhcmdldC12ZXJ0aWNhbC1pY29uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtYnV0dG9uIC5wLXBpY2tsaXN0LW1vdmUtdG8tc291cmNlLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtcGlja2xpc3QtbW92ZS10by1zb3VyY2UtdmVydGljYWwtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLWJ1dHRvbiAucC1waWNrbGlzdC1tb3ZlLWFsbC10by1zb3VyY2UtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1waWNrbGlzdC1tb3ZlLWFsbC10by1zb3VyY2UtdmVydGljYWwtaWNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIHRoZSBsaXN0cyBhcmUgZm9jdXNhYmxlIChrZXlib2FyZCBzZWxlY3Rpb24pICovXG4ucC1waWNrbGlzdCAucC1waWNrbGlzdC1saXN0OmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IHZhcigtLXAtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKC0xICogdmFyKC0tcC1mb2N1cy1yaW5nLXdpZHRoKSk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1mb2N1cy1yaW5nLXNoYWRvdyk7XG59XG4iLCAiLypcbiAqIFByb2dyZXNzQmFyOiBwOnByb2dyZXNzQmFyIChkZXRlcm1pbmF0ZSAvIGluZGV0ZXJtaW5hdGUpXG4gKlxuICogTWFya3VwOiAucC1wcm9ncmVzc2JhciA+IC5wLXByb2dyZXNzYmFyLXZhbHVlID4gLnAtcHJvZ3Jlc3NiYXItbGFiZWxcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXByb2dyZXNzYmFyLWRldGVybWluYXRlIHwgLWluZGV0ZXJtaW5hdGUsIHAtcHJvZ3Jlc3NiYXItc3VjY2VzcyB8IC1pbmZvIHwgLXdhcm5pbmcgfCAtZGFuZ2VyXG4gKi9cbi5wLXByb2dyZXNzYmFyIHtcbiAgICAtLV92YWx1ZS1iZzogdmFyKC0tcC1wcm9ncmVzc2Jhci12YWx1ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9sYWJlbC1jb2xvcjogdmFyKC0tcC1wcm9ncmVzc2Jhci1sYWJlbC1jb2xvcik7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGhlaWdodDogdmFyKC0tcC1wcm9ncmVzc2Jhci1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtcHJvZ3Jlc3NiYXItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1wcm9ncmVzc2Jhci1ib3JkZXItcmFkaXVzKTtcblxuICAgIC5wLXByb2dyZXNzYmFyLXZhbHVlIHtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV92YWx1ZS1iZyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcHJvZ3Jlc3NiYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgLnAtcHJvZ3Jlc3NiYXItbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tX2xhYmVsLWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXByb2dyZXNzYmFyLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXByb2dyZXNzYmFyLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtcHJvZ3Jlc3NiYXItaGVpZ2h0KTtcbiAgICAgICAgLyogdGhlIHBlcmNlbnRhZ2UgZG9lcyBub3QganVtcCB3aGlsZSBpdCBjb3VudHMgdXAgKi9cbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICB9XG5cbiAgICAmLnAtcHJvZ3Jlc3NiYXItc3VjY2VzcyB7XG4gICAgICAgIC0tX3ZhbHVlLWJnOiB2YXIoLS1wLXByb2dyZXNzYmFyLXN1Y2Nlc3MtdmFsdWUtYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2xhYmVsLWNvbG9yOiB2YXIoLS1wLXByb2dyZXNzYmFyLXN1Y2Nlc3MtbGFiZWwtY29sb3IpO1xuICAgIH1cblxuICAgICYucC1wcm9ncmVzc2Jhci1pbmZvIHtcbiAgICAgICAgLS1fdmFsdWUtYmc6IHZhcigtLXAtcHJvZ3Jlc3NiYXItaW5mby12YWx1ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fbGFiZWwtY29sb3I6IHZhcigtLXAtcHJvZ3Jlc3NiYXItaW5mby1sYWJlbC1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXByb2dyZXNzYmFyLXdhcm5pbmcge1xuICAgICAgICAtLV92YWx1ZS1iZzogdmFyKC0tcC1wcm9ncmVzc2Jhci13YXJuLXZhbHVlLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9sYWJlbC1jb2xvcjogdmFyKC0tcC1wcm9ncmVzc2Jhci13YXJuLWxhYmVsLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtcHJvZ3Jlc3NiYXItZGFuZ2VyIHtcbiAgICAgICAgLS1fdmFsdWUtYmc6IHZhcigtLXAtcHJvZ3Jlc3NiYXItZGFuZ2VyLXZhbHVlLWJhY2tncm91bmQpO1xuICAgICAgICAtLV9sYWJlbC1jb2xvcjogdmFyKC0tcC1wcm9ncmVzc2Jhci1kYW5nZXItbGFiZWwtY29sb3IpO1xuICAgIH1cbn1cblxuLypcbiAqIGluc2lkZSBhIHNlbGVjdGlvbiAoc2VsZWN0ZWQgcm93IC8gaXRlbSwgaGlnaGxpZ2h0IGJhY2tncm91bmQpOiB0aGUgdmFsdWUgY2FuIGhhdmUgdGhlIGNvbG9yIG9mIHRoZSBzZWxlY3Rpb25cbiAqIChOb3JhOiBwcmltYXJ5KSwgc28gdGhlIGJhciB0YWtlcyB0aGUgc2VsZWN0aW9uIHRleHQgY29sb3Igb24gYSB0cmFuc2x1Y2VudCB0cmFjayBvZiBpdFxuICovXG4ucC1zdGF0ZS1oaWdobGlnaHQgLnAtcHJvZ3Jlc3NiYXIge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wLWhpZ2hsaWdodC1jb2xvciksIHRyYW5zcGFyZW50IDcwJSk7XG5cbiAgICAmOm5vdCgucC1wcm9ncmVzc2Jhci1zdWNjZXNzLCAucC1wcm9ncmVzc2Jhci1pbmZvLCAucC1wcm9ncmVzc2Jhci13YXJuaW5nLCAucC1wcm9ncmVzc2Jhci1kYW5nZXIpIHtcbiAgICAgICAgLS1fdmFsdWUtYmc6IHZhcigtLXAtaGlnaGxpZ2h0LWNvbG9yKTtcbiAgICAgICAgLS1fbGFiZWwtY29sb3I6IHZhcigtLXAtaGlnaGxpZ2h0LWJhY2tncm91bmQpO1xuICAgIH1cbn1cblxuLnAtcHJvZ3Jlc3NiYXItZGV0ZXJtaW5hdGUge1xuICAgIC8qIHdpZHRoIGlzIGFuaW1hdGVkIGJ5IHRoZSB3aWRnZXQgKGpRdWVyeSksIHNvIG5vIENTUyB0cmFuc2l0aW9uIGhlcmUgKi9cbiAgICAucC1wcm9ncmVzc2Jhci12YWx1ZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnAtcHJvZ3Jlc3NiYXItbGFiZWwge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG5cbi8qXG4gKiB0aGUgYmFycyBzcGFuIHRoZSB0cmFjayBhbmQgbW92ZSAvIGdyb3cgYnkgdHJhbnNmb3JtICh0cmFuc2xhdGVYID0gbGVmdCBlZGdlLCBzY2FsZVggPSB3aWR0aCwgYm90aCBpbiAlIG9mIHRoZVxuICogdHJhY2spOiB1bmxpa2UgbGVmdCAvIHJpZ2h0IHRoaXMgcnVucyBvbiB0aGUgY29tcG9zaXRvciwgd2l0aG91dCBzdHlsZSwgbGF5b3V0IGFuZCBwYWludCBpbiBldmVyeSBmcmFtZVxuICovXG4ucC1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlIC5wLXByb2dyZXNzYmFyLXZhbHVlIHtcbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAgICAgICAvKiBubyBiYXIgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICh0aGUgZGVsYXkgb2YgOjphZnRlcikgKi9cbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYW5pbWF0aW9uOiBwLXByb2dyZXNzYmFyLWluZGV0ZXJtaW5hdGUtYW5pbSAyLjFzIGN1YmljLWJlemllcigwLjY1LCAwLjgxNSwgMC43MzUsIDAuMzk1KSBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGFuaW1hdGlvbjogcC1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlLWFuaW0tc2hvcnQgMi4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDEuMTVzO1xuICAgIH1cblxuICAgIC8qIHJlZHVjZWQgbW90aW9uOiB0aGUgYmFycyB3b3VsZCBzdG9wIG91dHNpZGUgb2YgdGhlIHRyYWNrIChvbmUgaXRlcmF0aW9uLCBzZWUgYmFzZS9kb2N1bWVudC5jc3MpOyBhIGZ1bGwsIGxpZ2h0ZXJcbiAgICAgICBiYXIgc2hvd3MgdGhhdCBzb21ldGhpbmcgaXMgZ29pbmcgb24gKi9cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogbGVmdCAtMzUlIC0+IDEwMCUsIHdpZHRoIDM1JSAtPiA5MCUgKi9cbkBrZXlmcmFtZXMgcC1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlLWFuaW0ge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNSUpIHNjYWxlWCgwLjM1KTtcbiAgICB9XG4gICAgNjAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHNjYWxlWCgwLjkpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHNjYWxlWCgwLjkpO1xuICAgIH1cbn1cblxuLyogbGVmdCAtMjAwJSAtPiAxMDclLCB3aWR0aCAyMDAlIC0+IDElICovXG5Aa2V5ZnJhbWVzIHAtcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZS1hbmltLXNob3J0IHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwJSkgc2NhbGVYKDIpO1xuICAgIH1cbiAgICA2MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA3JSkgc2NhbGVYKDAuMDEpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNyUpIHNjYWxlWCgwLjAxKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFJhdGluZzogcDpyYXRpbmdcbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC1zdGF0ZS1lcnJvciAvIHAtc3RhdGUtZGlzYWJsZWQgLyByZWFkb25seSAob24gLnAtcmF0aW5nKSwgcC1zdGF0ZS1mb2N1cyAob24gc3RhciAvIGNhbmNlbCksXG4gKiAgICAgICAgICAgICAgICAgICAgcC1yYXRpbmctc3Rhci1vbiwgcC1yYXRpbmctY2FuY2VsLWhvdmVyLCBwLXN0YXRlLWhpZ2hsaWdodCAob24gYSBwYXJlbnQsIGUuZy4gYSBzZWxlY3RlZCByb3cpXG4gKiBJY29uczogLS1wLXJhdGluZy1vZmYtaWNvbiAvIC0tcC1yYXRpbmctb24taWNvbiAvIC0tcC1yYXRpbmctY2FuY2VsLWljb24uXG4gKi9cbi5wLXJhdGluZy1zdGFyLFxuLnAtcmF0aW5nLWNhbmNlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLnAtcmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcC1yYXRpbmctZ2FwKTtcblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1yYXRpbmctc3RhcixcbiAgICAmLnAtc3RhdGUtcmVhZG9ubHkgLnAtcmF0aW5nLXN0YXIsXG4gICAgJi5wLXN0YXRlLXJlYWRvbmx5IC5wLXJhdGluZy1jYW5jZWwsXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLXJhdGluZy1jYW5jZWwge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLnAtcmF0aW5nLWNhbmNlbCxcbiAgICAucC1yYXRpbmctc3RhciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgdmFyKC0tcC1yYXRpbmctdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1yYXRpbmctdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtcmF0aW5nLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtcmF0aW5nLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtcmF0aW5nLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtcmF0aW5nLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtcmF0aW5nLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1yYXRpbmctaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXJhdGluZy1pY29uLXNpemUpO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtcmF0aW5nLWljb24tc2l6ZSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1wLXJhdGluZy10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXJhdGluZy1jYW5jZWwgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXJhdGluZy1jYW5jZWwtaWNvbi1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtcmF0aW5nLWNhbmNlbC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1yYXRpbmctY2FuY2VsLWljb24pO1xuICAgIH1cblxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkLCAucC1zdGF0ZS1yZWFkb25seSkgLnAtcmF0aW5nLWNhbmNlbC5wLXJhdGluZy1jYW5jZWwtaG92ZXIgYSxcbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCwgLnAtc3RhdGUtcmVhZG9ubHkpIC5wLXJhdGluZy1jYW5jZWwgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXJhdGluZy1jYW5jZWwtaWNvbi1ob3Zlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogc3RhciBpY29uczogb2ZmIC8gb24gKHAtcmF0aW5nLXN0YXItb24pICovXG4gICAgLnAtcmF0aW5nLXN0YXIgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXJhdGluZy1pY29uLWNvbG9yKTtcbiAgICB9XG5cbiAgICAucC1yYXRpbmctaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtcmF0aW5nLW9mZi1pY29uKTtcbiAgICB9XG5cbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCwgLnAtc3RhdGUtcmVhZG9ubHkpIC5wLXJhdGluZy1zdGFyIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1yYXRpbmctaWNvbi1ob3Zlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtcmF0aW5nLXN0YXItb24gYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXJhdGluZy1pY29uLWFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtcmF0aW5nLXN0YXItb24gLnAtcmF0aW5nLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXJhdGluZy1vbi1pY29uKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZXJyb3IgLnAtcmF0aW5nLXN0YXIgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXJhdGluZy1pbnZhbGlkLWljb24tY29sb3IpO1xuICAgIH1cbn1cblxuLnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXJhdGluZy1zdGFyIGEsXG4ucC1zdGF0ZS1oaWdobGlnaHQgLnAtcmF0aW5nLXN0YXItb24gYSB7XG4gICAgY29sb3I6IHZhcigtLXAtaGlnaGxpZ2h0LWNvbG9yKTtcbn1cbiIsICIvKlxuICogU2Nyb2xsVG9wOiBwOnNjcm9sbFRvcCAocmVuZGVycyBhLnAtc2Nyb2xsdG9wICgucC1zY3JvbGx0b3Atc3RpY2t5IGZvciB0YXJnZXQ9XCJwYXJlbnRcIikgPiBzcGFuLnAtc2Nyb2xsdG9wLWljb24pXG4gKlxuICogUHJpbWVVSVggcmVuZGVycyBTY3JvbGxUb3AgYXMgYSByb3VuZGVkIHByaW1hcnkgaWNvbi1vbmx5IGJ1dHRvbiBhbmQgaGFzIG5vIG93biB0b2tlbnMsIHNvIHRoZSBidXR0b24gdG9rZW5zIGFyZSB1c2VkLlxuICogSWNvbjogc3Bhbi5wLWljb24ucC11cC1pY29uLnAtc2Nyb2xsdG9wLWljb24sIHRoZSB0b2tlbiAtLXAtc2Nyb2xsdG9wLWljb24gKFByaW1lRmFjZXMgb25seSkuXG4gKi9cbi5wLXNjcm9sbHRvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMjBweDtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLWxnLWljb24tb25seS13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1wLWJ1dHRvbi1sZy1pY29uLW9ubHktd2lkdGgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWJ1dHRvbi1wcmltYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1idXR0b24tcmFpc2VkLXNoYWRvdyk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktaG92ZXItY29sb3IpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktYWN0aXZlLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tcHJpbWFyeS1hY3RpdmUtY29sb3IpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLXByaW1hcnktYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1idXR0b24tcHJpbWFyeS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICB9XG5cbiAgICAucC1zY3JvbGx0b3AtaWNvbiB7XG4gICAgICAgIC0tX2ljb246IHZhcigtLXAtc2Nyb2xsdG9wLWljb24pO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYnV0dG9uLWxnLWZvbnQtc2l6ZSk7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qIGluc2lkZSBhbiBlbGVtZW50ICh0YXJnZXQ9XCJwYXJlbnRcIik6IG5vcm1hbCBidXR0b24gc2l6ZSAqL1xuICAgICYucC1zY3JvbGx0b3Atc3RpY2t5IHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLWljb24tb25seS13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcblxuICAgICAgICAucC1zY3JvbGx0b3AtaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtaWNvbi1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtc2Nyb2xsdG9wLXN0aWNreSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xufVxuIiwgIi8qXG4gKiBTZWxlY3RCb29sZWFuQ2hlY2tib3ggLyBUcmlTdGF0ZUNoZWNrYm94OiB0aGUgcm9vdCBpcyBhIC5wLWNoa2JveCwgc3R5bGVkIGluIGZvcm1zL2NoZWNrYm94LmNzc1xuICovXG4ucC1mbHVpZCAucC1zZWxlY3Rib29sZWFuY2hlY2tib3gge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuIiwgIi8qXG4gKiBTZWxlY3RDaGVja2JveE1lbnU6IHA6c2VsZWN0Q2hlY2tib3hNZW51IChQcmltZVVJWDogbXVsdGlzZWxlY3QpXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtc3RhdGUtaG92ZXIsIHAtc3RhdGUtZm9jdXMsIHAtc3RhdGUtZXJyb3IsIHAtc3RhdGUtZGlzYWJsZWQsIHAtaW5wdXQtZmlsbGVkIChvbiBhIHBhcmVudCksXG4gKiAgICAgICAgICAgICAgICAgICAgcC1zZWxlY3RjaGVja2JveG1lbnUtbXVsdGlwbGUgKGNoaXBzIG1vZGUpLCAucC1mbHVpZCAob24gYSBwYXJlbnQpLFxuICogICAgICAgICAgICAgICAgICAgIHAtc2VsZWN0Y2hlY2tib3htZW51LXNtLCBwLXNlbGVjdGNoZWNrYm94bWVudS1sZyAoc3R5bGVDbGFzcylcbiAqIFBhbmVsIGl0ZW1zOiBwLXN0YXRlLWhvdmVyIChtb3VzZSBhbmQga2V5Ym9hcmQpLCBwLXN0YXRlLWhpZ2hsaWdodCAoc2VsZWN0ZWQpXG4gKiBWYXJpYW50czogZmlsdGVyLCB0b2dnbGUgYWxsIGNoZWNrYm94LCBjbG9zZSBpY29uLCBncm91cHMsIHRhYmxlIHdpdGggY29sdW1ucyAocDpjb2x1bW4gY2hpbGRyZW4pXG4gKi9cbi5wLXNlbGVjdGNoZWNrYm94bWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1tdWx0aXNlbGVjdC1ib3JkZXItY29sb3IpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLW11bHRpc2VsZWN0LWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtbXVsdGlzZWxlY3Qtc2hhZG93KTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbXVsdGlzZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbXVsdGlzZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLW11bHRpc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtbXVsdGlzZWxlY3QtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1tdWx0aXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgLyoga2VlcHMgdGhlIGxpbmUgaGVpZ2h0IHdoZW4gdGhlIGxhYmVsIGlzIGVtcHR5ICovXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwicFwiO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWxhYmVsLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy15KSB2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteCk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1kcm9wZG93bi13aWR0aCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tdWx0aXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3QtY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLW11bHRpc2VsZWN0LWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1tdWx0aXNlbGVjdC1mb250LXdlaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtdHJpZ2dlciB7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGluc2V0LWlubGluZS1lbmQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1tdWx0aXNlbGVjdC1kcm9wZG93bi13aWR0aCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1kcm9wZG93bi1jb2xvcik7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLW11bHRpc2VsZWN0LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtbXVsdGlzZWxlY3QtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWRyb3Bkb3duLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1tdWx0aXNlbGVjdC1kcm9wZG93bi1pY29uKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LWRyb3Bkb3duLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1zZWxlY3RjaGVja2JveG1lbnUtdHJpZ2dlcixcbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtc2VsZWN0Y2hlY2tib3htZW51LWxhYmVsIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3QtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3QtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcC1tdWx0aXNlbGVjdC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLW11bHRpc2VsZWN0LWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtbXVsdGlzZWxlY3QtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLW11bHRpc2VsZWN0LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1tdWx0aXNlbGVjdC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLyogaW52YWxpZDogdGhlIGJvcmRlciBhbHNvIHdpbnMgb3ZlciBob3ZlciBhbmQgZm9jdXMgKHNhbWUgc3BlY2lmaWNpdHksIGxhdGVyKSwgdGhlIGZvY3VzIHJpbmcgc3RheXMgKi9cbiAgICAmLnAtc3RhdGUtZXJyb3IsXG4gICAgJi5wLXN0YXRlLWVycm9yOmlzKDpob3ZlciwgLnAtc3RhdGUtZm9jdXMpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXG4gICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzaXplcyAoc3R5bGVDbGFzcyk6IHRoZSBzaXplIHRva2VucyByZXBsYWNlIHRoZSBiYXNlIG9uZXMgKGxhYmVsIGFuZCBjaGlwcyBtb2RlIGZvbGxvdyksIHRoZSBpY29uIGZvbGxvd3MgKi9cbiAgICAmLnAtc2VsZWN0Y2hlY2tib3htZW51LXNtIHtcbiAgICAgICAgLS1wLW11bHRpc2VsZWN0LWZvbnQtc2l6ZTogdmFyKC0tcC1tdWx0aXNlbGVjdC1zbS1mb250LXNpemUpO1xuICAgICAgICAtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy14OiB2YXIoLS1wLW11bHRpc2VsZWN0LXNtLXBhZGRpbmcteCk7XG4gICAgICAgIC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXk6IHZhcigtLXAtbXVsdGlzZWxlY3Qtc20tcGFkZGluZy15KTtcbiAgICB9XG5cbiAgICAmLnAtc2VsZWN0Y2hlY2tib3htZW51LWxnIHtcbiAgICAgICAgLS1wLW11bHRpc2VsZWN0LWZvbnQtc2l6ZTogdmFyKC0tcC1tdWx0aXNlbGVjdC1sZy1mb250LXNpemUpO1xuICAgICAgICAtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy14OiB2YXIoLS1wLW11bHRpc2VsZWN0LWxnLXBhZGRpbmcteCk7XG4gICAgICAgIC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXk6IHZhcigtLXAtbXVsdGlzZWxlY3QtbGctcGFkZGluZy15KTtcbiAgICB9XG5cbiAgICAmLnAtc2VsZWN0Y2hlY2tib3htZW51LXNtIC5wLXNlbGVjdGNoZWNrYm94bWVudS10cmlnZ2VyIC5wLXNlbGVjdGNoZWNrYm94bWVudS1kcm9wZG93bi1pY29uLFxuICAgICYucC1zZWxlY3RjaGVja2JveG1lbnUtbGcgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRyaWdnZXIgLnAtc2VsZWN0Y2hlY2tib3htZW51LWRyb3Bkb3duLWljb24ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtbXVsdGlzZWxlY3QtZm9udC1zaXplKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIGNoaXBzIG1vZGU6IHRoZSBjb250YWluZXIgaXMgYWxzbyBhIC5wLWlucHV0ZmllbGQsIGRyb3AgdGhlIGZpZWxkIGNocm9tZSBvZiBmb3Jtcy9pbnB1dGZpZWxkLmNzcy5cbiAgICAgKiBBIGZsZXggcm93IG9mIGNoaXBzLCBhdCBsZWFzdCBhcyBoaWdoIGFzIHRoZSBsYWJlbCBvZiB0aGUgbm9uLWNoaXBzIG1vZGUsIHNvIHRoZSBjb21wb25lbnQga2VlcHMgdGhlIGlucHV0XG4gICAgICogaGVpZ2h0IChjaGlwcyBhcmUgc21hbGxlciB0aGFuIGEgdGV4dCBsaW5lIGluIEF1cmEpLlxuICAgICAqL1xuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1tdWx0aXBsZS1jb250YWluZXIucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICByb3ctZ2FwOiBjYWxjKHZhcigtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy15KSAvIDIpO1xuICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKDIgKiB2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteSkgKyB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpICogdmFyKC0tcC1tdWx0aXNlbGVjdC1mb250LXNpemUpKTtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteSkgLyAyKSBjYWxjKHZhcigtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy14KSAvIDIpO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXAtbXVsdGlzZWxlY3QtZHJvcGRvd24td2lkdGgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICB9XG5cbiAgICAvKiBlbXB0eSBsYWJlbCBvZiB0aGUgY2hpcHMgbW9kZSAobGkgYWRkZWQgYnkgdGhlIHdpZGdldCB3aGVuIG5vdGhpbmcgaXMgc2VsZWN0ZWQpICovXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LW11bHRpcGxlLWNvbnRhaW5lciAucC1zZWxlY3RjaGVja2JveG1lbnUtZW1wdHlsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZXJyb3IgLnAtc2VsZWN0Y2hlY2tib3htZW51LW11bHRpcGxlLWNvbnRhaW5lciAucC1zZWxlY3RjaGVja2JveG1lbnUtZW1wdHlsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LWludmFsaWQtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIH1cblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1tdWx0aXBsZS1jb250YWluZXIgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRva2VuIHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteSkgLyAyKTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGNhbGModmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXkpIC8gMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtY2hpcC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtY2hpcC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbXVsdGlzZWxlY3QtY2hpcC1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtdG9rZW4tbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiBjYWxjKHZhcigtLXAtaWNvbi1zaXplKSAvIDIpIGNhbGMoMiAqIHZhcigtLXAtaWNvbi1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2hpcC1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtY2hpcC1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtY2hpcC1yZW1vdmUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW11bHRpc2VsZWN0LWNoaXAtcmVtb3ZlLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRva2VuLWljb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1jb2xvcik7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtY2hpcC1yZW1vdmUtaWNvbi1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtc2VsZWN0Y2hlY2tib3htZW51LW11bHRpcGxlLWNvbnRhaW5lciB7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuXG4gICAgJjplbXB0eTo6YWZ0ZXIge1xuICAgICAgICAvKiB0aGUgcmVuZGVyZXIgd3JpdGVzIHRoZSBlbXB0eSBsYWJlbCB0byBkYXRhLWxhYmVsICovXG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3QtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIH1cbn1cblxuLnAtc2VsZWN0Y2hlY2tib3htZW51LXRva2VuIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnAtc2VsZWN0Y2hlY2tib3htZW51LXRva2VuLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnAtc2VsZWN0Y2hlY2tib3htZW51LXRva2VuLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLXAtaWNvbi1zaXplKSAvIDIpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogZmlsbGVkIHZhcmlhbnQgKi9cbi5wLWlucHV0LWZpbGxlZCAucC1zZWxlY3RjaGVja2JveG1lbnUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbXVsdGlzZWxlY3QtZmlsbGVkLWJhY2tncm91bmQpO1xuXG4gICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbXVsdGlzZWxlY3QtZmlsbGVkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbXVsdGlzZWxlY3QtZmlsbGVkLWZvY3VzLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbXVsdGlzZWxlY3QtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgLyoga2VlcCB0aGUgZmlsbGVkIGJhY2tncm91bmRzIG9mIGZvcm1zL2lucHV0ZmllbGQuY3NzIG9mZiB0aGUgaW5uZXIgY2hpcHMgY29udGFpbmVyICovXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LW11bHRpcGxlLWNvbnRhaW5lci5wLWlucHV0ZmllbGQsXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LW11bHRpcGxlLWNvbnRhaW5lci5wLWlucHV0ZmllbGQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5wLWZsdWlkIC5wLXNlbGVjdGNoZWNrYm94bWVudSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIHBhbmVsICovXG4ucC1zZWxlY3RjaGVja2JveG1lbnUtcGFuZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vdmVybGF5LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LW92ZXJsYXktY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtbXVsdGlzZWxlY3Qtb3ZlcmxheS1ib3JkZXItY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3ZlcmxheS1zaGFkb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3ZlcmxheS1ib3JkZXItcmFkaXVzKTtcblxuICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1pdGVtcy13cmFwcGVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtaXRlbSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbGlzdCB7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtbGlzdC1pdGVtIHtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LXRhYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBmaXJzdCBjb2x1bW4gaG9sZHMgdGhlIGNoZWNrYm94OiBzaHJpbmsgaXQgdG8gaXRzIGNvbnRlbnQgKi9cbiAgICAgICAgdGg6Zmlyc3Qtb2YtdHlwZSxcbiAgICAgICAgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICB3aWR0aDogMSU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbXVsdGlzZWxlY3QtbGlzdC1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1vdmVybGF5LWNvbG9yKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5wLWNoa2JveCB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1maWx0ZXItY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ2FwKTtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAwO1xuXG4gICAgICAgICAgICAucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtbXVsdGlzZWxlY3QtcGFkZGluZy14KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYygyICogdmFyKC0tcC1tdWx0aXNlbGVjdC1wYWRkaW5nLXgpICsgdmFyKC0tcC1pY29uLXNpemUpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWZpbHRlci1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW11bHRpc2VsZWN0LWZpbHRlci1pY29uKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1wLW11bHRpc2VsZWN0LXBhZGRpbmcteCk7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtaWNvbi1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBjbG9zZSBhY3Rpb24gaWNvbjsgbm8gYWN0aW9uIGljb24gdG9rZW5zLCB0aGUgdGV4dC1wbGFpbiBidXR0b24gdG9rZW5zIGdpdmUgdGhlIHNhbWUgbG9vayAqL1xuICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lOiBhdXRvIDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXBsYWluLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXBsYWluLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJ1dHRvbi10ZXh0LXBsYWluLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXNlbGVjdGNoZWNrYm94bWVudS1jbG9zZS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW11bHRpc2VsZWN0LWNsb3NlLWljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWl0ZW1zIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1tdWx0aXNlbGVjdC1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICYucC1zZWxlY3RjaGVja2JveG1lbnUtbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tcC1tdWx0aXNlbGVjdC1saXN0LWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc2VsZWN0Y2hlY2tib3htZW51LXRhYmxlID4gdGhlYWQgdHIgdGgge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLWRhdGF0YWJsZS1jb2x1bW4tdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zZWxlY3RjaGVja2JveG1lbnUtaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZm9udC1zaXplKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1mb250LXdlaWdodCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbXVsdGlzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtY2hrYm94IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1nYXApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXNlbGVjdGNoZWNrYm94bWVudS1yb3cge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1kYXRhdGFibGUtcm93LWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc2VsZWN0Y2hlY2tib3htZW51LXJvdyA+IHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtcGFkZGluZyk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXNlbGVjdGNoZWNrYm94bWVudS1yb3c6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWl0ZW0tZ3JvdXAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ3JvdXAtcGFkZGluZyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1ncm91cC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1ncm91cC1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ3JvdXAtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLW11bHRpc2VsZWN0LW9wdGlvbi1ncm91cC1mb250LXNpemUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1zZWxlY3RjaGVja2JveG1lbnUtaGVhZGVyIHtcbiAgICAucC1jaGtib3gge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0Y2hlY2tib3htZW51LWZpbHRlci1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxufVxuXG4ucC1zZWxlY3RjaGVja2JveG1lbnUtZm9vdGVyIHtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tcC1tdWx0aXNlbGVjdC1saXN0LWhlYWRlci1wYWRkaW5nKTtcbn1cbiIsICIvKlxuICogU2VsZWN0TWFueUNoZWNrYm94OiBwOnNlbGVjdE1hbnlDaGVja2JveCAobGF5b3V0cyBsaW5lRGlyZWN0aW9uLCBwYWdlRGlyZWN0aW9uLCBncmlkLCByZXNwb25zaXZlLCBjdXN0b20pXG4gKlxuICogVGhlIGJveGVzIGFyZSBzdHlsZWQgaW4gZm9ybXMvY2hlY2tib3guY3NzOyB0aGlzIGZpbGUgb25seSBsYXlzIG91dCB0aGUgb3B0aW9ucywgbGFiZWxzIGFuZCBncm91cCBoZWFkZXJzXG4gKiAob3B0aW9ucyBhcmUgc2VwYXJhdGVkIGJ5IHRoZSBsYWJlbCBlbmQgbWFyZ2luKS5cbiAqIE1hcmt1cDogLnAtc2VsZWN0bWFueWNoZWNrYm94LnVpLWdyaWQtcmVzcG9uc2l2ZSA+IC51aS1nIChvciAuZ3JpZCkgPiAudWktZy0qID4gLnAtY2hrYm94ICsgbGFiZWxcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBsYXlvdXQtbGluZS1kaXJlY3Rpb24sIHAtc2VsZWN0bWFueWNoZWNrYm94LXJlc3BvbnNpdmUtZ3JvdXAsIHAtc3RhdGUtZGlzYWJsZWQgKG9uIGFuIG9wdGlvbiBsYWJlbClcbiAqL1xuLnAtc2VsZWN0bWFueWNoZWNrYm94IHtcbiAgICAmLmxheW91dC1saW5lLWRpcmVjdGlvbi51aS1ncmlkLXJlc3BvbnNpdmUgPiBkaXYsXG4gICAgJi5sYXlvdXQtbGluZS1kaXJlY3Rpb24udWktZ3JpZC1yZXNwb25zaXZlID4gZGl2IGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgICYudWktZ3JpZC1yZXNwb25zaXZlID4gZGl2ID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi51aS1ncmlkLXJlc3BvbnNpdmUgPiBkaXYgbGFiZWwge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgJi51aS1ncmlkLXJlc3BvbnNpdmUgLnVpLWcgPiBkaXYge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXNlbGVjdG1hbnljaGVja2JveC1jZWxsLXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC51aS1nLTEsXG4gICAgLnVpLWctMixcbiAgICAudWktZy0zLFxuICAgIC51aS1nLTQsXG4gICAgLnVpLWctNSxcbiAgICAudWktZy02LFxuICAgIC51aS1nLTcsXG4gICAgLnVpLWctOCxcbiAgICAudWktZy05LFxuICAgIC51aS1nLTEwLFxuICAgIC51aS1nLTExLFxuICAgIC51aS1nLTEyIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAvKiB0aGUgZ2FwIGlzIHBhZGRpbmcgb2YgdGhlIGxhYmVsOiBhIGNsaWNrIGJldHdlZW4gYm94IGFuZCBsYWJlbCB0b2dnbGVzIHRvbyAqL1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tcC1jaGVja2JveC1sYWJlbC1nYXApO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1zZWxlY3RtYW55Y2hlY2tib3gtZ2FwKTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1jaGtib3ggLnAtY2hrYm94LWJveCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5wLXNlbGVjdG1hbnljaGVja2JveC1pdGVtLWdyb3VwIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtc2VsZWN0bWFueWNoZWNrYm94LWdyb3VwLWNvbG9yKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtc2VsZWN0bWFueWNoZWNrYm94LWdyb3VwLWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RtYW55Y2hlY2tib3gtcmVzcG9uc2l2ZS1ncm91cCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtc2VsZWN0bWFueWNoZWNrYm94LWdyb3VwLXBhZGRpbmcpO1xuICAgIH1cbn1cbiIsICIvKlxuICogU2VsZWN0T25lQnV0dG9uIC8gU2VsZWN0TWFueUJ1dHRvbiAvIFNlbGVjdEJvb2xlYW5CdXR0b24gKFByaW1lVUlYOiBzZWxlY3RidXR0b24gKyB0b2dnbGVidXR0b24pXG4gKlxuICogRXZlcnkgb3B0aW9uIGlzIGEgLnAtYnV0dG9uIChidXR0b24uY3NzKSByZXN0eWxlZCBhcyBhIHRvZ2dsZSBidXR0b24uIExpa2UgUHJpbWVVSVggdGhlIGNoZWNrZWQgc3RhdGUgY2FuIHNob3cgYW5cbiAqIGlubmVyIFwicGlsbFwiICh0b2dnbGVidXR0b24gY29udGVudCB0b2tlbnMsIGUuZy4gQXVyYSk7IGl0IGlzIGRyYXduIGJ5IDo6YmVmb3JlIHNvIGljb24gYW5kIGxhYmVsIGJvdGggc2l0IG9uIGl0LlxuICogU3VwcG9ydGVkIGNsYXNzZXMgb24gdGhlIG9wdGlvbiAvIGJvb2xlYW4gYnV0dG9uOiBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWZvY3VzLCBwLXN0YXRlLWFjdGl2ZSAoY2hlY2tlZCksXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC1zdGF0ZS1kaXNhYmxlZCwgcC1zdGF0ZS1lcnJvciwgcC1idXR0b24tc20sIHAtYnV0dG9uLWxnXG4gKiBPbiB0aGUgZ3JvdXA6IHAtc3RhdGUtZXJyb3IgKGludmFsaWQpLCBwLXN0YXRlLWRpc2FibGVkLCAucC1mbHVpZCBwYXJlbnRcbiAqL1xuLnAtc2VsZWN0b25lYnV0dG9uLFxuLnAtc2VsZWN0bWFueWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgLyogdGhlIGdyb3VwIHdyYXBzIGl0cyBvcHRpb25zLCBhbHNvIGFzIGEgc3RyZXRjaGVkIGZsZXggLyBncmlkIGl0ZW0gKHRoZSBpbnZhbGlkIG91dGxpbmUgaXMgZHJhd24gb24gdGhlIGdyb3VwKSAqL1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zZWxlY3RidXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAmLnAtc3RhdGUtZXJyb3Ige1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tcC1zZWxlY3RidXR0b24taW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgICB9XG5cbiAgICAucC1idXR0b24ucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59XG5cbi8qIGFsbCBhbHRlcm5hdGl2ZXMgaGF2ZSB0aGUgc2FtZSBzcGVjaWZpY2l0eSAoMCwyLDApLCBzbyBuZXN0aW5nIHVuZGVyIHRoaXMgbGlzdCBrZWVwcyB0aGUgZmxhdCBzcGVjaWZpY2l0eSAqL1xuLnAtc2VsZWN0b25lYnV0dG9uID4gLnAtYnV0dG9uLFxuLnAtc2VsZWN0bWFueWJ1dHRvbiA+IC5wLWJ1dHRvbixcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24ge1xuICAgIC0tX2JnOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbiAgICAtLV9ob3Zlci1iZzogdmFyKC0tcC10b2dnbGVidXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jaGVja2VkLWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlcjogdmFyKC0tcC10b2dnbGVidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ob3Zlci1ib3JkZXI6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC10b2dnbGVidXR0b24tY2hlY2tlZC1ib3JkZXItY29sb3IpO1xuICAgIC0tX2NvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb2xvcik7XG4gICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAtLV9hY3RpdmUtY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNoZWNrZWQtY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIC0tX2ZvY3VzLXJpbmctc2hhZG93OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgLS1fbGFiZWwtc2hhZG93OiB2YXIoLS1wLWJ1dHRvbi1vdXRsaW5lZC1sYWJlbC1zaGFkb3cpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGdhcDogdmFyKC0tcC10b2dnbGVidXR0b24tZ2FwKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1wYWRkaW5nKTtcbiAgICBmb250LXNpemU6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvbnQtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvbnQtd2VpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24tY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtdG9nZ2xlYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b2dnbGVidXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10b2dnbGVidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgIC8qIGlubmVyIHBpbGwgb2YgdGhlIGNoZWNrZWQgc3RhdGUgKi9cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC10b2dnbGVidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC10b2dnbGVidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgfVxuXG4gICAgLyogaG92ZXIgKHVuY2hlY2tlZCBvbmx5KSAqL1xuICAgICYucC1zdGF0ZS1ob3Zlcjpub3QoLnAtc3RhdGUtYWN0aXZlLCAucC1zdGF0ZS1kaXNhYmxlZCksXG4gICAgJjpub3QoLnAtc3RhdGUtYWN0aXZlLCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24taG92ZXItY29sb3IpO1xuICAgIH1cblxuICAgIC8qIGNoZWNrZWQgKGFsc28gd2hpbGUgaG92ZXJlZCkgKi9cbiAgICAmLnAtc3RhdGUtYWN0aXZlLFxuICAgICYucC1zdGF0ZS1hY3RpdmU6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNoZWNrZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24tY2hlY2tlZC1ib3JkZXItY29sb3IpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24tY2hlY2tlZC1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWFjdGl2ZTo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVidXR0b24tY29udGVudC1jaGVja2VkLWJhY2tncm91bmQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb250ZW50LWNoZWNrZWQtc2hhZG93KTtcbiAgICB9XG5cbiAgICAvKiBmb2N1cyAqL1xuICAgICYucC1zdGF0ZS1mb2N1cyxcbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10b2dnbGVidXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cbn1cblxuLyogbGFiZWwgYW5kIGljb24gc2l0IG9uIHRoZSBwaWxsIChwb3NpdGlvbjogcmVsYXRpdmUsIGFib3ZlIHRoZSA6OmJlZm9yZSkgKi9cbi5wLXNlbGVjdG9uZWJ1dHRvbiA+IC5wLWJ1dHRvbiA+IC5wLWJ1dHRvbi10ZXh0LFxuLnAtc2VsZWN0bWFueWJ1dHRvbiA+IC5wLWJ1dHRvbiA+IC5wLWJ1dHRvbi10ZXh0LFxuLnAtYnV0dG9uLnAtc2VsZWN0Ym9vbGVhbmJ1dHRvbiA+IC5wLWJ1dHRvbi10ZXh0LFxuLnAtc2VsZWN0b25lYnV0dG9uID4gLnAtYnV0dG9uID4gLnAtYnV0dG9uLWljb24tbGVmdCxcbi5wLXNlbGVjdG1hbnlidXR0b24gPiAucC1idXR0b24gPiAucC1idXR0b24taWNvbi1sZWZ0LFxuLnAtYnV0dG9uLnAtc2VsZWN0Ym9vbGVhbmJ1dHRvbiA+IC5wLWJ1dHRvbi1pY29uLWxlZnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb250ZW50LXBhZGRpbmcpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1mb250LXdlaWdodCk7XG4gICAgY3Vyc29yOiBpbmhlcml0O1xufVxuXG4ucC1zZWxlY3RvbmVidXR0b24gPiAucC1idXR0b24sXG4ucC1zZWxlY3RtYW55YnV0dG9uID4gLnAtYnV0dG9uLFxuLnAtYnV0dG9uLnAtc2VsZWN0Ym9vbGVhbmJ1dHRvbiB7XG4gICAgLyogaWNvbiArIGxhYmVsOiB0aGUgcGlsbCBwYWRkaW5nIGdvZXMgYXJvdW5kIGJvdGgsIHRoZSBnYXAgc2l0cyBiZXR3ZWVuIHRoZW0gKi9cbiAgICA+IC5wLWJ1dHRvbi1pY29uLWxlZnQge1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1pY29uLWNvbG9yKTtcbiAgICB9XG5cbiAgICA+IC5wLWJ1dHRvbi1pY29uLWxlZnQgKyAucC1idXR0b24tdGV4dCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgIH1cblxuICAgICYucC1idXR0b24taWNvbi1vbmx5IHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgPiAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBpY29uIG9ubHk6IHRoZSBsYWJlbCBpcyBrZXB0IGhpZGRlbiBieSBidXR0b24uY3NzLCBpdCBtdXN0IG5vdCBhZGQgd2lkdGggKi9cbiAgICAgICAgPiAucC1idXR0b24tdGV4dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLnAtc3RhdGUtYWN0aXZlLCAucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIgPiAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWljb24taG92ZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1hY3RpdmUgPiAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWljb24tY2hlY2tlZC1jb2xvcik7XG4gICAgfVxufVxuXG4vKiBpbnZhbGlkOiB0aGUgYm9yZGVyIGFsc28gd2lucyBvdmVyIGhvdmVyIGFuZCBjaGVja2VkIGhvdmVyIChzYW1lIHNwZWNpZmljaXR5LCBsYXRlcikgKi9cbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24ucC1zdGF0ZS1lcnJvcixcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24ucC1zdGF0ZS1lcnJvcjppcyg6aG92ZXIsIC5wLXN0YXRlLWhvdmVyKSxcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24ucC1zdGF0ZS1lcnJvci5wLXN0YXRlLWFjdGl2ZTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG59XG5cbi8qIGRpc2FibGVkICovXG4ucC1zZWxlY3RvbmVidXR0b24gPiAucC1idXR0b24sXG4ucC1zZWxlY3RtYW55YnV0dG9uID4gLnAtYnV0dG9uLFxuLnAtYnV0dG9uLnAtc2VsZWN0Ym9vbGVhbmJ1dHRvbiB7XG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVidXR0b24tZGlzYWJsZWQtY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxufVxuXG4ucC1zZWxlY3RvbmVidXR0b24gPiAucC1idXR0b24ucC1zdGF0ZS1kaXNhYmxlZCA+IC5wLWJ1dHRvbi1pY29uLWxlZnQsXG4ucC1zZWxlY3RtYW55YnV0dG9uID4gLnAtYnV0dG9uLnAtc3RhdGUtZGlzYWJsZWQgPiAucC1idXR0b24taWNvbi1sZWZ0LFxuLnAtYnV0dG9uLnAtc2VsZWN0Ym9vbGVhbmJ1dHRvbi5wLXN0YXRlLWRpc2FibGVkID4gLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWljb24tZGlzYWJsZWQtY29sb3IpO1xufVxuXG4vKiBzaXplcyAqL1xuLnAtc2VsZWN0b25lYnV0dG9uID4gLnAtYnV0dG9uLFxuLnAtc2VsZWN0bWFueWJ1dHRvbiA+IC5wLWJ1dHRvbixcbi5wLWJ1dHRvbi5wLXNlbGVjdGJvb2xlYW5idXR0b24ge1xuICAgICYucC1idXR0b24tc20ge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1zbS1wYWRkaW5nKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1zbS1mb250LXNpemUpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBpbnNldDogdmFyKC0tcC10b2dnbGVidXR0b24tc20tcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5wLWJ1dHRvbi10ZXh0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWNvbnRlbnQtc20tcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtYnV0dG9uLWxnIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC10b2dnbGVidXR0b24tbGctcGFkZGluZyk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10b2dnbGVidXR0b24tbGctZm9udC1zaXplKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgaW5zZXQ6IHZhcigtLXAtdG9nZ2xlYnV0dG9uLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAucC1idXR0b24tdGV4dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRvZ2dsZWJ1dHRvbi1jb250ZW50LWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBncm91cGVkOiBvbmx5IHRoZSBvdXRlciBjb3JuZXJzIGFyZSByb3VuZGVkLCBuZWlnaGJvdXJzIHNoYXJlIG9uZSBib3JkZXIgKi9cbi5wLXNlbGVjdG9uZWJ1dHRvbixcbi5wLXNlbGVjdG1hbnlidXR0b24ge1xuICAgID4gLnAtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLWlubGluZS1zdGFydC13aWR0aDogMDtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXAtc2VsZWN0YnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtc2VsZWN0YnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdGJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1zZWxlY3RidXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIGZsdWlkICovXG4ucC1mbHVpZCAucC1zZWxlY3RvbmVidXR0b24sXG4ucC1mbHVpZCAucC1zZWxlY3RtYW55YnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiAucC1idXR0b24ge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4vKiBmbHVpZCBvbiBzbWFsbCBzY3JlZW5zOiB0aGUgb3B0aW9ucyBzdGFjayB2ZXJ0aWNhbGx5LCBvbmx5IHRoZSBvdXRlciBjb3JuZXJzIGFyZSByb3VuZGVkLCBuZWlnaGJvdXJzIHNoYXJlIG9uZSBib3JkZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5wLWZsdWlkIC5wLXNlbGVjdG9uZWJ1dHRvbixcbiAgICAucC1mbHVpZCAucC1zZWxlY3RtYW55YnV0dG9uIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICA+IC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGJvcmRlci1ibG9jay1zdGFydC13aWR0aDogMDtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1zZWxlY3RidXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtc2VsZWN0YnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdGJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgICAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLXAtc2VsZWN0YnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBTZWxlY3RPbmVMaXN0Ym94IC8gU2VsZWN0TWFueU1lbnU6IHA6c2VsZWN0T25lTGlzdGJveCwgcDpzZWxlY3RNYW55TWVudSAoUHJpbWVVSVg6IGxpc3Rib3gpXG4gKlxuICogVGhlIGNvbnRhaW5lciBpcyBhbHNvIGEgLnAtaW5wdXRmaWVsZCwgc28gaXQgb3ZlcnJpZGVzIHRoZSBmaWVsZCBsb29rIG9mIGZvcm1zL2lucHV0ZmllbGQuY3NzLlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtc3RhdGUtZXJyb3IsIHAtc3RhdGUtZGlzYWJsZWQsIHAtaW5wdXQtZmlsbGVkIChvbiBhIHBhcmVudCksIC5wLWZsdWlkIChvbiBhIHBhcmVudCksXG4gKiAgICAgICAgICAgICAgICAgICAgcC1saXN0Ym94LXN0cmlwZWQsIHAtbGlzdGJveC1jaGVja21hcmsgKHN0eWxlQ2xhc3MpXG4gKiBJdGVtczogcC1zdGF0ZS1ob3ZlciwgcC1zdGF0ZS1oaWdobGlnaHQgKHNlbGVjdGVkKSwgcC1saXN0Ym94LW91dGxpbmUgKGtleWJvYXJkIGZvY3VzKVxuICogVmFyaWFudHM6IGZpbHRlciwgc2hvd0NoZWNrYm94IChwOnNlbGVjdE1hbnlNZW51KSwgY3VzdG9tIGNvbnRlbnQgKHRhYmxlIHdpdGggcDpjb2x1bW4gY2hpbGRyZW4pXG4gKi9cbi5wLXNlbGVjdG9uZWxpc3Rib3gsXG4ucC1zZWxlY3RtYW55bWVudSB7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICAvKiBsYXlvdXQgdmFsdWUsIG5vIHRva2VuOiBhIG1pbmltdW0gd2lkdGggZm9yIGVtcHR5IGxpc3RzICovXG4gICAgbWluLXdpZHRoOiAxMnJlbTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1saXN0Ym94LWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXAtbGlzdGJveC1zaGFkb3cpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWxpc3Rib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1saXN0Ym94LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtbGlzdGJveC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgIC8qIGludmFsaWQ6IGFsc28gd2lucyBvdmVyIHRoZSBob3ZlciAvIGZvY3VzIGJvcmRlciBvZiBmb3Jtcy9pbnB1dGZpZWxkLmNzcyAoc2FtZSBzcGVjaWZpY2l0eSwgbGF0ZXIpICovXG4gICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICYucC1zdGF0ZS1lcnJvcjppcyg6aG92ZXIsIDpmb2N1cywgLnAtc3RhdGUtaG92ZXIsIC5wLXN0YXRlLWZvY3VzKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1saXN0Ym94LWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtZGlzYWJsZWQtY29sb3IpO1xuXG4gICAgICAgIC5wLXNlbGVjdGxpc3Rib3gtbGlzdGNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc2VsZWN0bGlzdGJveC1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtZGlzYWJsZWQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogZmlsdGVyIGhlYWRlciAqL1xuICAgIC5wLXNlbGVjdGxpc3Rib3gtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbGlzdGJveC1saXN0LWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tcC1saXN0Ym94LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgIC5wLXNlbGVjdGxpc3Rib3gtZmlsdGVyLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy15KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKDIgKiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KSArIHZhcigtLXAtaWNvbi1zaXplKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAgKiBObyBpbnNldHM6IHRoZSBhYnNvbHV0ZSBpY29uIHN0YXlzIGF0IGl0cyBzdGF0aWMgcG9zaXRpb24sIGkuZS4gYXQgdGhlIHN0YXJ0IG9mIHRoZSBjb250YWluZXIncyBjb250ZW50IGJveFxuICAgICAgICAgKiBhbmQgdmVydGljYWxseSBjZW50ZXJlZCBieSB0aGUgZmxleCBjb250YWluZXIsIHNvIHRoZSBoZWFkZXIgcGFkZGluZyBkb2VzIG5vdCBuZWVkIHRvIGJlIGtub3duLlxuICAgICAgICAgKi9cbiAgICAgICAgLnAtc2VsZWN0bGlzdGJveC1maWx0ZXItaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWxpc3Rib3gtZmlsdGVyLWljb24pO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1mb3JtLWZpZWxkLWljb24tY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogbGlzdCAqL1xuICAgIC5wLXNlbGVjdGxpc3Rib3gtbGlzdGNvbnRhaW5lciB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWxpc3Rib3gtbGlzdC1wYWRkaW5nKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuXG4gICAgICAgIHVsLnAtc2VsZWN0bGlzdGJveC1saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLWxpc3Rib3gtbGlzdC1nYXApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0bGlzdGJveC1saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgdGFibGUucC1zZWxlY3RsaXN0Ym94LWxpc3Qge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RsaXN0Ym94LWl0ZW0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0bGlzdGJveC1saXN0Y29udGFpbmVyIC5wLXNlbGVjdGxpc3Rib3gtbGlzdCAucC1zZWxlY3RsaXN0Ym94LWl0ZW0ge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9udC13ZWlnaHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvY3VzLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodC5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBubyBsaXN0Ym94IHRva2VuIGZvciB0aGUgY2hlY2tib3ggZ2FwLCB0aGUgbXVsdGlzZWxlY3Qgb3B0aW9uIGdhcCBpcyB1c2VkICovXG4gICAgICAgIC5wLWNoa2JveCB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC1tdWx0aXNlbGVjdC1vcHRpb24tZ2FwKTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWJvZHktY2VsbC1wYWRkaW5nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHN0cmlwZWQgKHN0eWxlQ2xhc3M9XCJwLWxpc3Rib3gtc3RyaXBlZFwiKTogZXZlcnkgc2Vjb25kIG9wdGlvbiwgdGhlIHN0YXRlcyBrZWVwIHRoZWlyIG93biBiYWNrZ3JvdW5kICovXG4gICAgJi5wLWxpc3Rib3gtc3RyaXBlZCAucC1zZWxlY3RsaXN0Ym94LWxpc3Rjb250YWluZXIgLnAtc2VsZWN0bGlzdGJveC1saXN0XG4gICAgICAgIC5wLXNlbGVjdGxpc3Rib3gtaXRlbTpudGgtY2hpbGQoZXZlbiBvZiAucC1zZWxlY3RsaXN0Ym94LWl0ZW0pOm5vdCgucC1zdGF0ZS1ob3ZlciwgLnAtc3RhdGUtaGlnaGxpZ2h0LCAucC1saXN0Ym94LW91dGxpbmUpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zdHJpcGVkLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogY2hlY2ttYXJrIChzdHlsZUNsYXNzPVwicC1saXN0Ym94LWNoZWNrbWFya1wiKTogYSBjaGVjayBpbiBmcm9udCBvZiB0aGUgc2VsZWN0ZWQgb3B0aW9uKHMpLCB0aGUgb3RoZXJzIGtlZXAgdGhlXG4gICAgICogc3BhY2Ugb2YgdGhlIGljb24gKFByaW1lVUlYIGJsYW5rIGljb24pOyB0aGUgc2VsZWN0ZWQgYmFja2dyb3VuZCBzdGF5cy4gTGlzdCBpdGVtcyBvbmx5LCBub3QgdGhlIHRhYmxlIG9mXG4gICAgICogcDpjb2x1bW4gY2hpbGRyZW4uXG4gICAgICovXG4gICAgJi5wLWxpc3Rib3gtY2hlY2ttYXJrIC5wLXNlbGVjdGxpc3Rib3gtbGlzdGNvbnRhaW5lciAucC1zZWxlY3RsaXN0Ym94LWxpc3QgbGkucC1zZWxlY3RsaXN0Ym94LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlxcMjAwM1wiO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtaWNvbi1zaXplKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1saXN0Ym94LWNoZWNrbWFyay1ndXR0ZXItc3RhcnQpO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtbGlzdGJveC1jaGVja21hcmstZ3V0dGVyLWVuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LWNoZWNrbWFyay1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgICAgICAgICBtYXNrOiB2YXIoLS1wLWxpc3Rib3gtY2hlY2ttYXJrLWljb24pIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGtleWJvYXJkIGZvY3VzICovXG4gICAgLnAtc2VsZWN0bGlzdGJveC1saXN0Y29udGFpbmVyIC5wLXNlbGVjdGxpc3Rib3gtbGlzdCAucC1saXN0Ym94LW91dGxpbmUge1xuICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLWZvY3VzLWNvbG9yKTtcblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBhbiBvcHRpb24gcmVhY2hlZCB3aXRoIHRhYiAodGFiaW5kZXggb24gdGhlIGl0ZW0pICovXG4gICAgLnAtc2VsZWN0bGlzdGJveC1saXN0Y29udGFpbmVyIC5wLXNlbGVjdGxpc3Rib3gtbGlzdCAucC1zZWxlY3RsaXN0Ym94LWl0ZW06Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtbGlzdGJveC1vcHRpb24tZm9jdXMtY29sb3IpO1xuXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtc2VsZWN0bWFueW1lbnUgLnAtc2VsZWN0bGlzdGJveC1jaGtib3gge1xuICAgIHdpZHRoOiB2YXIoLS1wLWNoZWNrYm94LXdpZHRoKTtcbn1cblxuLnAtc2VsZWN0bGlzdGJveC1maWx0ZXIucC1pbnB1dGZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ucC1zZWxlY3RsaXN0Ym94LWZpbHRlci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5wLXNlbGVjdGxpc3Rib3gtZmlsdGVyLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxufVxuXG4ucC1saXN0Ym94LW91dGxpbmUge1xuICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4vKiBmaWxsZWQgdmFyaWFudDogYSBsaXN0Ym94IGtlZXBzIGl0cyBvd24gYmFja2dyb3VuZCAqL1xuLnAtaW5wdXQtZmlsbGVkIC5wLXNlbGVjdG9uZWxpc3Rib3gucC1pbnB1dGZpZWxkLFxuLnAtaW5wdXQtZmlsbGVkIC5wLXNlbGVjdG1hbnltZW51LnAtaW5wdXRmaWVsZCxcbi5wLWlucHV0LWZpbGxlZCAucC1zZWxlY3RvbmVsaXN0Ym94LnAtaW5wdXRmaWVsZDpob3Zlcixcbi5wLWlucHV0LWZpbGxlZCAucC1zZWxlY3RtYW55bWVudS5wLWlucHV0ZmllbGQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtbGlzdGJveC1iYWNrZ3JvdW5kKTtcbn1cblxuLnAtZmx1aWQgLnAtc2VsZWN0b25lbGlzdGJveCxcbi5wLWZsdWlkIC5wLXNlbGVjdG1hbnltZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbn1cbiIsICIvKlxuICogU2VsZWN0T25lTWVudTogcDpzZWxlY3RPbmVNZW51IChQcmltZVVJWDogc2VsZWN0KVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXN0YXRlLWhvdmVyLCBwLXN0YXRlLWZvY3VzLCBwLXN0YXRlLWVycm9yLCBwLXN0YXRlLWRpc2FibGVkLCBwLXN0YXRlLWxvYWRpbmcsXG4gKiAgICAgICAgICAgICAgICAgICAgcC1zZWxlY3RvbmVtZW51LXJ0bCwgcC1pbnB1dC1maWxsZWQgKG9uIGEgcGFyZW50KSwgLnAtZmx1aWQgKG9uIGEgcGFyZW50KSxcbiAqICAgICAgICAgICAgICAgICAgICBwLXNlbGVjdG9uZW1lbnUtc20sIHAtc2VsZWN0b25lbWVudS1sZyAoc3R5bGVDbGFzcylcbiAqIFBhbmVsOiBwLXNlbGVjdC1jaGVja21hcmsgKHBhbmVsU3R5bGVDbGFzcywgYSBjaGVjayBpbiBmcm9udCBvZiB0aGUgc2VsZWN0ZWQgaXRlbSlcbiAqIFBhbmVsIGl0ZW1zOiBwLXN0YXRlLWhvdmVyIChtb3VzZSBhbmQga2V5Ym9hcmQpLCBwLXN0YXRlLWZvY3VzIChrZXlib2FyZCB3aXRoIHNlbGVjdE9uRm9jdXM9XCJmYWxzZVwiKSxcbiAqICAgICAgICAgICAgICBwLXN0YXRlLWhpZ2hsaWdodCAoc2VsZWN0ZWQpXG4gKiBWYXJpYW50czogZWRpdGFibGUgKGlucHV0IGxhYmVsKSwgZmlsdGVyLCBncm91cHMsIGN1c3RvbSBjb250ZW50ICh0YWJsZSB3aXRoIGNvbHVtbnMpLCBmb290ZXIgZmFjZXRcbiAqL1xuLnAtc2VsZWN0b25lbWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtc2VsZWN0LWJvcmRlci1jb2xvcik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1zZWxlY3QtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zZWxlY3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1zZWxlY3Qtc2hhZG93KTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXNlbGVjdC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtc2VsZWN0LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgLnAtc2VsZWN0b25lbWVudS1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIC8qIHRoZSBsYWJlbCBpcyBhbHNvIGEgLnAtaW5wdXRmaWVsZDogZHJvcCB0aGUgZmllbGQgY2hyb21lIG9mIGZvcm1zL2lucHV0ZmllbGQuY3NzLCB0aGUgY29udGFpbmVyIGNhcnJpZXMgaXQgKi9cbiAgICAucC1zZWxlY3RvbmVtZW51LWxhYmVsLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3QtY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtc2VsZWN0LWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXNlbGVjdC1mb250LXdlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXAtc2VsZWN0LWRyb3Bkb3duLXdpZHRoKTtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWxhYmVsLnAtc2VsZWN0b25lbWVudS1sYWJlbC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWVycm9yIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1zZWxlY3RvbmVtZW51LWxhYmVsLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtc2VsZWN0LWludmFsaWQtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC1zZWxlY3RvbmVtZW51LXRyaWdnZXIsXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgbGFiZWwucC1zZWxlY3RvbmVtZW51LWxhYmVsIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIGlucHV0LnAtc2VsZWN0b25lbWVudS1sYWJlbCB7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LXRyaWdnZXIge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtc2VsZWN0LWRyb3Bkb3duLXdpZHRoKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1kcm9wZG93bi1jb2xvcik7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLXNlbGVjdC1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAucC1zZWxlY3RvbmVtZW51LWRyb3Bkb3duLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zZWxlY3QtZHJvcGRvd24taWNvbik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3QtZHJvcGRvd24tY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogbG9hZGluZyAoZHluYW1pYyk6IHRoZSBzcGlubmVyIGlzIHByZXBlbmRlZCB0byB0aGUgdHJpZ2dlciBhbmQgc2hvd24gaW4gZnJvbnQgb2YgaXQgKi9cbiAgICAucC1pY29uLWxvYWRpbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tcC1pY29uLXNpemUpIC8gMik7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1kcm9wZG93bi1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWhvdmVyLFxuICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiB0aGUgd2lkZ2V0IHNldHMgcC1zdGF0ZS1mb2N1czsgYW4gZWRpdGFibGUgbGFiZWwgZm9jdXNlZCB3aXRoIHRhYiBkb2VzIG5vdCBnZXQgaXQgKi9cbiAgICAmLnAtc3RhdGUtZm9jdXMsXG4gICAgJjpoYXMoPiAucC1zZWxlY3RvbmVtZW51LWxhYmVsOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXNlbGVjdC1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXNlbGVjdC1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtc2VsZWN0LWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1zZWxlY3QtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgIH1cblxuICAgIC8qIGludmFsaWQ6IHRoZSBib3JkZXIgYWxzbyB3aW5zIG92ZXIgaG92ZXIgYW5kIGZvY3VzIChzYW1lIHNwZWNpZmljaXR5LCBsYXRlciksIHRoZSBmb2N1cyByaW5nIHN0YXlzICovXG4gICAgJi5wLXN0YXRlLWVycm9yLFxuICAgICYucC1zdGF0ZS1lcnJvcjppcyg6aG92ZXIsIC5wLXN0YXRlLWZvY3VzLCA6Zm9jdXMtd2l0aGluKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1zZWxlY3QtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXG4gICAgICAgIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1kaXNhYmxlZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzaXplcyAoc3R5bGVDbGFzcyk6IHRoZSBzaXplIHRva2VucyByZXBsYWNlIHRoZSBiYXNlIG9uZXMgKGxhYmVsLCBmbHVpZCBhbmQgZWRpdGFibGUgZm9sbG93KSwgdGhlIGljb24gZm9sbG93cyAqL1xuICAgICYucC1zZWxlY3RvbmVtZW51LXNtIHtcbiAgICAgICAgLS1wLXNlbGVjdC1mb250LXNpemU6IHZhcigtLXAtc2VsZWN0LXNtLWZvbnQtc2l6ZSk7XG4gICAgICAgIC0tcC1zZWxlY3QtcGFkZGluZy14OiB2YXIoLS1wLXNlbGVjdC1zbS1wYWRkaW5nLXgpO1xuICAgICAgICAtLXAtc2VsZWN0LXBhZGRpbmcteTogdmFyKC0tcC1zZWxlY3Qtc20tcGFkZGluZy15KTtcbiAgICB9XG5cbiAgICAmLnAtc2VsZWN0b25lbWVudS1sZyB7XG4gICAgICAgIC0tcC1zZWxlY3QtZm9udC1zaXplOiB2YXIoLS1wLXNlbGVjdC1sZy1mb250LXNpemUpO1xuICAgICAgICAtLXAtc2VsZWN0LXBhZGRpbmcteDogdmFyKC0tcC1zZWxlY3QtbGctcGFkZGluZy14KTtcbiAgICAgICAgLS1wLXNlbGVjdC1wYWRkaW5nLXk6IHZhcigtLXAtc2VsZWN0LWxnLXBhZGRpbmcteSk7XG4gICAgfVxuXG4gICAgJi5wLXNlbGVjdG9uZW1lbnUtc20gLnAtc2VsZWN0b25lbWVudS10cmlnZ2VyIC5wLXNlbGVjdG9uZW1lbnUtZHJvcGRvd24taWNvbixcbiAgICAmLnAtc2VsZWN0b25lbWVudS1sZyAucC1zZWxlY3RvbmVtZW51LXRyaWdnZXIgLnAtc2VsZWN0b25lbWVudS1kcm9wZG93bi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXNlbGVjdC1mb250LXNpemUpO1xuICAgIH1cbn1cblxuLnAtc2VsZWN0b25lbWVudS1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xufVxuXG4vKiBmaWxsZWQgdmFyaWFudCAqL1xuLnAtaW5wdXQtZmlsbGVkIC5wLXNlbGVjdG9uZW1lbnUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LWZpbGxlZC1iYWNrZ3JvdW5kKTtcblxuICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1maWxsZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWZvY3VzLFxuICAgICY6aGFzKD4gLnAtc2VsZWN0b25lbWVudS1sYWJlbDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LWZpbGxlZC1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAvKiBrZWVwIHRoZSBmaWxsZWQgYmFja2dyb3VuZHMgb2YgZm9ybXMvaW5wdXRmaWVsZC5jc3Mgb2ZmIHRoZSBpbm5lciBsYWJlbCAqL1xuICAgIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1pbnB1dGZpZWxkLFxuICAgIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1pbnB1dGZpZWxkOmhvdmVyLFxuICAgIC5wLXNlbGVjdG9uZW1lbnUtbGFiZWwucC1pbnB1dGZpZWxkOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4vKiBmbHVpZDogdGhlIGxhYmVsIGxlYXZlcyByb29tIGZvciB0aGUgdHJpZ2dlciBieSBpdHMgd2lkdGggaW5zdGVhZCBvZiBpdHMgZW5kIHBhZGRpbmcgKi9cbi5wLWZsdWlkIC5wLXNlbGVjdG9uZW1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnAtc2VsZWN0b25lbWVudS1sYWJlbC5wLWlucHV0ZmllbGQge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tcC1zZWxlY3QtZHJvcGRvd24td2lkdGgpKTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteCk7XG4gICAgfVxufVxuXG4vKiBwYW5lbCAqL1xuLnAtc2VsZWN0b25lbWVudS1wYW5lbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1vdmVybGF5LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1vdmVybGF5LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXNlbGVjdC1vdmVybGF5LWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcC1zZWxlY3Qtb3ZlcmxheS1zaGFkb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2VsZWN0LW92ZXJsYXktYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAmLnAtc2VsZWN0b25lbWVudS1wYW5lbC1ydGwge1xuICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWl0ZW1zLXdyYXBwZXIge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWZpbHRlci1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXNlbGVjdC1saXN0LWhlYWRlci1wYWRkaW5nKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3Qtb3ZlcmxheS1jb2xvcik7XG5cbiAgICAgICAgLnAtc2VsZWN0b25lbWVudS1maWx0ZXIucC1pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1zZWxlY3QtcGFkZGluZy15KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLXNlbGVjdC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoMiAqIHZhcigtLXAtc2VsZWN0LXBhZGRpbmcteCkgKyB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLypcbiAgICAgICAgICogTm8gaW5zZXRzOiB0aGUgYWJzb2x1dGUgaWNvbiBzdGF5cyBhdCBpdHMgc3RhdGljIHBvc2l0aW9uLCBpLmUuIGF0IHRoZSBzdGFydCBvZiB0aGUgY29udGFpbmVyJ3MgY29udGVudCBib3hcbiAgICAgICAgICogYW5kIHZlcnRpY2FsbHkgY2VudGVyZWQgYnkgdGhlIGZsZXggY29udGFpbmVyLCBzbyB0aGUgaGVhZGVyIHBhZGRpbmcgZG9lcyBub3QgbmVlZCB0byBiZSBrbm93bi5cbiAgICAgICAgICovXG4gICAgICAgIC5wLXNlbGVjdG9uZW1lbnUtZmlsdGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zZWxlY3QtZmlsdGVyLWljb24pO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC1zZWxlY3QtcGFkZGluZy14KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtaWNvbi1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWl0ZW0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLyogdGhlIHNlcnZlciByZW5kZXJzIHVsLnAtc2VsZWN0b25lbWVudS1pdGVtcy5wLXNlbGVjdG9uZW1lbnUtbGlzdCwgdGhlIHdpZGdldCAoZHluYW1pYyAvIGdyb3VwZWQgb3B0aW9ucylcbiAgICAgICBkaXYucC1zZWxlY3RvbmVtZW51LWl0ZW1zID4gdWwucC1zZWxlY3RvbmVtZW51LWxpc3Q7IHRoZSBpdGVtcyBwYWRkaW5nIGJlbG93IHdpbnMgd2hlbiBib3RoIGFyZSBvbmUgZWxlbWVudCAqL1xuICAgIC5wLXNlbGVjdG9uZW1lbnUtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tcC1zZWxlY3QtbGlzdC1nYXApO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0b25lbWVudS1saXN0LWl0ZW0ge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0b25lbWVudS10YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zZWxlY3RvbmVtZW51LWl0ZW1zIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1zZWxlY3QtbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmLnAtc2VsZWN0b25lbWVudS10YWJsZSA+IHRoZWFkIHRyIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtaGVhZGVyLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1oZWFkZXItY2VsbC1jb2xvcik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1kYXRhdGFibGUtY29sdW1uLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtZGF0YXRhYmxlLWhlYWRlci1jZWxsLXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc2VsZWN0b25lbWVudS1pdGVtcyAucC1zZWxlY3RvbmVtZW51LWl0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1wYWRkaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1zZWxlY3Qtb3B0aW9uLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1saXN0LW9wdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWxpc3Qtb3B0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtbGlzdC1vcHRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgJi5wLXNlbGVjdG9uZW1lbnUtcm93IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZGF0YXRhYmxlLXJvdy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1yb3ctY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXNlbGVjdG9uZW1lbnUtcm93ID4gdGQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC1kYXRhdGFibGUtYm9keS1jZWxsLXBhZGRpbmcpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWRhdGF0YWJsZS1ib2R5LWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zZWxlY3RvbmVtZW51LXJvdzpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJi5wLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1mb2N1cy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0LnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQucC1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXNlbGVjdG9uZW1lbnUtaXRlbXMgLnAtc2VsZWN0b25lbWVudS1pdGVtLWdyb3VwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tZ3JvdXAtcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1ncm91cC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1ncm91cC1jb2xvcik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXNlbGVjdC1vcHRpb24tZ3JvdXAtZm9udC13ZWlnaHQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtc2VsZWN0LW9wdGlvbi1ncm91cC1mb250LXNpemUpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogY2hlY2ttYXJrIG1vZGUgKHBhbmVsU3R5bGVDbGFzcz1cInAtc2VsZWN0LWNoZWNrbWFya1wiKTogYSBjaGVjayBpbiBmcm9udCBvZiB0aGUgc2VsZWN0ZWQgb3B0aW9uLCB0aGUgb3RoZXJzIGtlZXBcbiAgICAgKiB0aGUgc3BhY2Ugb2YgdGhlIGljb24gKFByaW1lVUlYIGJsYW5rIGljb24pLiBMaXN0IGl0ZW1zIG9ubHksIG5vdCB0aGUgdGFibGUgb2YgcDpjb2x1bW4gY2hpbGRyZW4uXG4gICAgICovXG4gICAgJi5wLXNlbGVjdC1jaGVja21hcmsgLnAtc2VsZWN0b25lbWVudS1pdGVtcyBsaS5wLXNlbGVjdG9uZW1lbnUtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDAzXCI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pY29uLXNpemUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1wLXNlbGVjdC1jaGVja21hcmstZ3V0dGVyLXN0YXJ0KTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXNlbGVjdC1jaGVja21hcmstZ3V0dGVyLWVuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zZWxlY3QtY2hlY2ttYXJrLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgICAgICAgIG1hc2s6IHZhcigtLXAtc2VsZWN0LWNoZWNrbWFyay1pY29uKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQ6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXNlbGVjdG9uZW1lbnUtZm9vdGVyIHtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tcC1zZWxlY3QtbGlzdC1oZWFkZXItcGFkZGluZyk7XG59XG4iLCAiLypcbiAqIFNlbGVjdE9uZVJhZGlvOiBwOnNlbGVjdE9uZVJhZGlvIChsYXlvdXRzIGxpbmVEaXJlY3Rpb24sIHBhZ2VEaXJlY3Rpb24sIGdyaWQsIHJlc3BvbnNpdmUpLCBwOnJhZGlvQnV0dG9uIChjdXN0b20gbGF5b3V0KVxuICogVGhlIHJhZGlvIGJveCBpdHNlbGYgKC5wLXJhZGlvYnV0dG9uKSBpcyBpbiBmb3Jtcy9yYWRpb2J1dHRvbi5jc3MuXG4gKlxuICogTWFya3VwOiAucC1zZWxlY3RvbmVyYWRpby51aS1ncmlkLXJlc3BvbnNpdmUgPiAudWktZyAob3IgLmdyaWQpID4gLnVpLWctKiA+IC5wLXJhZGlvYnV0dG9uICsgbGFiZWxcbiAqIFN1cHBvcnRlZCBjbGFzc2VzIG9uIC5wLXNlbGVjdG9uZXJhZGlvOiBwLXN0YXRlLXJlYWRvbmx5LCBsYXlvdXQtbGluZS1kaXJlY3Rpb25cbiAqL1xuLnAtc2VsZWN0b25lcmFkaW8ge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtc2VsZWN0b25lcmFkaW8tZ2FwKTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgLyogdGhlIGdhcCBpcyBwYWRkaW5nIG9mIHRoZSBsYWJlbDogYSBjbGljayBiZXR3ZWVuIGJveCBhbmQgbGFiZWwgc2VsZWN0cyB0b28gKi9cbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtcmFkaW9idXR0b24tbGFiZWwtZ2FwKTtcbiAgICB9XG5cbiAgICBsYWJlbC5wLXN0YXRlLWRpc2FibGVkLFxuICAgICYucC1zdGF0ZS1yZWFkb25seSBsYWJlbCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmLnVpLWdyaWQtcmVzcG9uc2l2ZSB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2ID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYudWktZ3JpZC1yZXNwb25zaXZlIC51aS1nID4gZGl2IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC1zZWxlY3RvbmVyYWRpby1jZWxsLXBhZGRpbmcpO1xuICAgIH1cblxuICAgICYubGF5b3V0LWxpbmUtZGlyZWN0aW9uIHtcbiAgICAgICAgPiBkaXYsXG4gICAgICAgID4gZGl2IGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogcmVhZG9ubHk6IG5vIGhvdmVyIGZlZWRiYWNrICh3aW5zIG92ZXIgdGhlIHN0YXRlcyBvZiBmb3Jtcy9yYWRpb2J1dHRvbi5jc3MgYnkgc3BlY2lmaWNpdHkpOyBhbiBpbnZhbGlkIGJveCBrZWVwcyBpdHNcbiAgIGludmFsaWQgYm9yZGVyICovXG4ucC1zZWxlY3RvbmVyYWRpby5wLXN0YXRlLXJlYWRvbmx5IC5wLXJhZGlvYnV0dG9uIC5wLXJhZGlvYnV0dG9uLWJveCB7XG4gICAgJjpub3QoLnAtc3RhdGUtZXJyb3IpOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWFjdGl2ZTpub3QoLnAtc3RhdGUtZXJyb3IpOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJhZGlvYnV0dG9uLWNoZWNrZWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1yYWRpb2J1dHRvbi1jaGVja2VkLWJhY2tncm91bmQpO1xuXG4gICAgICAgIC5wLXJhZGlvYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1yYWRpb2J1dHRvbi1pY29uLWNoZWNrZWQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBTaWRlYmFyOiBwOnNpZGViYXIgKFByaW1lVUlYIGRyYXdlcilcbiAqXG4gKiBNYXJrdXA6IC5wLXNpZGViYXIucC1zaWRlYmFyLXtsZWZ0fHJpZ2h0fHRvcHxib3R0b219ID4gYS5wLXNpZGViYXItY2xvc2UsIC5wLXNpZGViYXItY29udGVudFxuICogU3RhdGVzOiBwLXNpZGViYXItYWN0aXZlIChvcGVuZWQpLCBwLXNpZGViYXItZnVsbCAoZnVsbFNjcmVlbilcbiAqIFNpemVzOiBwLXNpZGViYXItc20gfCAtbWQgfCAtbGcgdmlhIHN0eWxlQ2xhc3MgKHRoZSBjb21wb25lbnQgaGFzIG5vIHNpemUgYXR0cmlidXRlKVxuICogUEYgb25seSB0b2tlbnM6IHRoZSBzaWRlYmFyIGJsb2NrIG9mIHByZXNldHMvKi5jc3NcbiAqL1xuXG4ucC1zaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1wLXNpZGViYXItdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZyksIHZpc2liaWxpdHkgdmFyKC0tcC1zaWRlYmFyLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZHJhd2VyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWRyYXdlci1jb2xvcik7XG4gICAgcGFkZGluZzogdmFyKC0tcC1kcmF3ZXItaGVhZGVyLXBhZGRpbmcpO1xuICAgIGJvcmRlcjogMCBzb2xpZCB2YXIoLS1wLWRyYXdlci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgIC8qIGxpa2UgUHJpbWVVSVg6IG9ubHkgdGhlIGVkZ2UgZmFjaW5nIHRoZSBwYWdlIGhhcyBhIGJvcmRlciAocGh5c2ljYWw6IHRoZSBwb3NpdGlvbiBpcyBwaHlzaWNhbCB0b28pICovXG4gICAgJi5wLXNpZGViYXItbGVmdCB7XG4gICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAgIH1cblxuICAgICYucC1zaWRlYmFyLXJpZ2h0IHtcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICAmLnAtc2lkZWJhci10b3Age1xuICAgICAgICBib3JkZXItYmxvY2stZW5kLXdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJi5wLXNpZGViYXItYm90dG9tIHtcbiAgICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJi5wLXNpZGViYXItZnVsbCB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIH1cblxuICAgICYucC1zaWRlYmFyLWFjdGl2ZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtZHJhd2VyLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLnAtc2lkZWJhci1jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICB9XG5cbiAgICAvKiBjbG9zZSBpY29uOiByb3VuZGVkIHRleHQgc2Vjb25kYXJ5IGljb24tb25seSBidXR0b24gbGlrZSB0aGUgUHJpbWVVSVggZHJhd2VyIGhlYWRlciAqL1xuICAgIC5wLXNpZGViYXItY2xvc2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tc2l6ZSk7XG4gICAgICAgIGZsb2F0OiBpbmxpbmUtZW5kO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tY29sb3IpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgY29sb3IgdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zdHlsZSlcbiAgICAgICAgICAgICAgICB2YXIoLS1wLXNpZGViYXItY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtc2lkZWJhci1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zaWRlYmFyLWNsb3NlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zaWRlYmFyLWNsb3NlLWljb24pO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXNpZGViYXItbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDIwZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5cbi5wLXNpZGViYXItcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMjBlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuXG4ucC1zaWRlYmFyLXRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG5cbi5wLXNpZGViYXItYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xufVxuXG4ucC1zaWRlYmFyLWZ1bGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcztcbn1cblxuLnAtc2lkZWJhci1sZWZ0LnAtc2lkZWJhci1hY3RpdmUsXG4ucC1zaWRlYmFyLXJpZ2h0LnAtc2lkZWJhci1hY3RpdmUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4ucC1zaWRlYmFyLWxlZnQucC1zaWRlYmFyLXNtLFxuLnAtc2lkZWJhci1yaWdodC5wLXNpZGViYXItc20ge1xuICAgIHdpZHRoOiAyMGVtO1xufVxuXG4ucC1zaWRlYmFyLWxlZnQucC1zaWRlYmFyLW1kLFxuLnAtc2lkZWJhci1yaWdodC5wLXNpZGViYXItbWQge1xuICAgIHdpZHRoOiA0MGVtO1xufVxuXG4ucC1zaWRlYmFyLWxlZnQucC1zaWRlYmFyLWxnLFxuLnAtc2lkZWJhci1yaWdodC5wLXNpZGViYXItbGcge1xuICAgIHdpZHRoOiA2MGVtO1xufVxuXG4ucC1zaWRlYmFyLXRvcC5wLXNpZGViYXItYWN0aXZlLFxuLnAtc2lkZWJhci1ib3R0b20ucC1zaWRlYmFyLWFjdGl2ZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5wLXNpZGViYXItdG9wLnAtc2lkZWJhci1zbSxcbi5wLXNpZGViYXItYm90dG9tLnAtc2lkZWJhci1zbSB7XG4gICAgaGVpZ2h0OiAxMGVtO1xufVxuXG4ucC1zaWRlYmFyLXRvcC5wLXNpZGViYXItbWQsXG4ucC1zaWRlYmFyLWJvdHRvbS5wLXNpZGViYXItbWQge1xuICAgIGhlaWdodDogMjBlbTtcbn1cblxuLnAtc2lkZWJhci10b3AucC1zaWRlYmFyLWxnLFxuLnAtc2lkZWJhci1ib3R0b20ucC1zaWRlYmFyLWxnIHtcbiAgICBoZWlnaHQ6IDMwZW07XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAucC1zaWRlYmFyLWxlZnQucC1zaWRlYmFyLWxnLFxuICAgIC5wLXNpZGViYXItbGVmdC5wLXNpZGViYXItbWQsXG4gICAgLnAtc2lkZWJhci1yaWdodC5wLXNpZGViYXItbGcsXG4gICAgLnAtc2lkZWJhci1yaWdodC5wLXNpZGViYXItbWQge1xuICAgICAgICB3aWR0aDogMjBlbTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFNrZWxldG9uOiBwOnNrZWxldG9uXG4gKlxuICogU3VwcG9ydGVkIGNsYXNzZXM6IHAtc2tlbGV0b24tY2lyY2xlLCBwLXNrZWxldG9uLWFuaW1hdGlvbi1ub25lXG4gKi9cblxuLnAtc2tlbGV0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXAtc2tlbGV0b24tYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1za2VsZXRvbi1ib3JkZXItcmFkaXVzKTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBhbmltYXRpb246IHAtc2tlbGV0b24tYW5pbWF0aW9uIDEuMnMgaW5maW5pdGU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCB2YXIoLS1wLXNrZWxldG9uLWFuaW1hdGlvbi1iYWNrZ3JvdW5kKSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgICY6ZGlyKHJ0bCk6YWZ0ZXIge1xuICAgICAgICBhbmltYXRpb24tbmFtZTogcC1za2VsZXRvbi1hbmltYXRpb24tcnRsO1xuICAgIH1cblxuICAgICYucC1za2VsZXRvbi1hbmltYXRpb24tbm9uZTphZnRlciB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmLnAtc2tlbGV0b24tY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBwLXNrZWxldG9uLWFuaW1hdGlvbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBwLXNrZWxldG9uLWFuaW1hdGlvbi1ydGwge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFNsaWRlTWVudTogcDpzbGlkZU1lbnVcbiAqXG4gKiBUaGUgY29tbW9uIC5wLW1lbnUgbWFya3VwIGlzIHN0eWxlZCBieSBtZW51L21lbnUuYmFzZS5jc3MsIHRoaXMgZmlsZSBoYXMgdGhlIHNsaWRpbmcgd3JhcHBlciwgdGhlIFwiYmFja1wiIGhlYWRlclxuICogKC5wLXNsaWRlbWVudS1iYWNrd2FyZCkgYW5kIHRoZSBzbGlkZW1lbnUgdG9rZW5zIChQcmltZUZhY2VzIG9ubHksIHRoZSBzbGlkZW1lbnUgYmxvY2sgb2YgcHJlc2V0cy8qLmNzcykuXG4gKi9cblxuLypcbiAqIFRoZSBsaXN0cyBhcmUgYWJzb2x1dGVseSBwb3NpdGlvbmVkIChjYXJvdXNlbCksIHNvIHRoZSBjb250YWluZXIgaGFzIG5vIGNvbnRlbnQgd2lkdGg6IGl0IG5lZWRzIGEgZml4ZWQgd2lkdGhcbiAqIChtZW51L21lbnUuYmFzZS5jc3Mgb25seSBnaXZlcyB0aGUgb3RoZXIgbWVudXMgd2lkdGg6IGZpdC1jb250ZW50ICsgbWluLXdpZHRoKS4gc3R5bGU9XCJ3aWR0aDogLi4uXCIgc3RpbGwgd2lucy5cbiAqL1xuLnAtc2xpZGVtZW51IHtcbiAgICB3aWR0aDogMTIuNXJlbTtcblxuICAgIC5wLXNsaWRlbWVudS13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5wLXNsaWRlbWVudS1jb250ZW50IHtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnAtbWVudS1saXN0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgLnAtbWVudS1wYXJlbnQge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cblxuICAgIC5wLW1lbnUtY2hpbGQge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICB9XG59XG5cbi5wLXNsaWRlbWVudS1iYWNrd2FyZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnAtbWVudS5wLXNsaWRlbWVudSB7XG4gICAgLS1fYmc6IHZhcigtLXAtc2xpZGVtZW51LWJhY2tncm91bmQpO1xuICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNsaWRlbWVudS1ib3JkZXItcmFkaXVzKTtcbiAgICAtLV9jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtY29sb3IpO1xuICAgIC0tX3NoYWRvdzogdmFyKC0tcC1zbGlkZW1lbnUtc2hhZG93KTtcbiAgICAtLV9saXN0LXBhZGRpbmc6IHZhcigtLXAtc2xpZGVtZW51LWxpc3QtcGFkZGluZyk7XG4gICAgLS1fbGlzdC1nYXA6IHZhcigtLXAtc2xpZGVtZW51LWxpc3QtZ2FwKTtcbiAgICAtLV90cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wLXNsaWRlbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAtLV9pdGVtLWJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2xpZGVtZW51LWl0ZW0tYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1faXRlbS1wYWRkaW5nOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLXBhZGRpbmcpO1xuICAgIC0tX2l0ZW0tZ2FwOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWdhcCk7XG4gICAgLS1faXRlbS1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1jb2xvcik7XG4gICAgLS1faXRlbS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWZvY3VzLWJhY2tncm91bmQpO1xuICAgIC0tX2l0ZW0tZm9jdXMtY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LWl0ZW0tZm9jdXMtY29sb3IpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLXAtc2xpZGVtZW51LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWFjdGl2ZS1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLWNvbG9yOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWljb24tY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1mb2N1cy1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tc2l6ZTogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1pY29uLXNpemUpO1xuICAgIC0tX2l0ZW0tbGFiZWwtZm9udC1zaXplOiB2YXIoLS1wLXNsaWRlbWVudS1pdGVtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgLS1faXRlbS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1zbGlkZW1lbnUtaXRlbS1sYWJlbC1mb250LXdlaWdodCk7XG4gICAgLS1fc3VibWVudS1pY29uLWNvbG9yOiB2YXIoLS1wLXNsaWRlbWVudS1zdWJtZW51LWljb24tY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtc3VibWVudS1pY29uLWZvY3VzLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWljb24tc2l6ZTogdmFyKC0tcC1zbGlkZW1lbnUtc3VibWVudS1pY29uLXNpemUpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1hY3RpdmUtY29sb3I6IHZhcigtLXAtc2xpZGVtZW51LWl0ZW0taWNvbi1hY3RpdmUtY29sb3IpO1xuICAgIC8qIHRoZSBcImJhY2tcIiBoZWFkZXIgKi9cbiAgICAtLV9zdWJtZW51LWxhYmVsLWJhY2tncm91bmQ6IHZhcigtLXAtc2xpZGVtZW51LWJhY2stYmFja2dyb3VuZCk7XG4gICAgLS1fc3VibWVudS1sYWJlbC1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtYmFjay1jb2xvcik7XG4gICAgLS1fc3VibWVudS1sYWJlbC1mb250LXdlaWdodDogdmFyKC0tcC1zbGlkZW1lbnUtYmFjay1mb250LXdlaWdodCk7XG4gICAgLS1fc3VibWVudS1iYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlbWVudS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9zdWJtZW51LWJvcmRlci1jb2xvcjogdmFyKC0tcC1zbGlkZW1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2xpZGVtZW51LWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX3N1Ym1lbnUtcGFkZGluZzogdmFyKC0tcC1zbGlkZW1lbnUtbGlzdC1wYWRkaW5nKTtcbiAgICAtLV9zdWJtZW51LXNoYWRvdzogdmFyKC0tcC1zbGlkZW1lbnUtc2hhZG93KTtcblxuICAgIC5wLXNsaWRlbWVudS1iYWNrd2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fc3VibWVudS1sYWJlbC1jb2xvcik7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtYmFja2dyb3VuZCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtbGFiZWwtY29sb3IpO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tX2l0ZW0tcGFkZGluZyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1faXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tX3RyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1fdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgIC5wLW1lbnVpdGVtLXRleHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1fc3VibWVudS1sYWJlbC1jb2xvcik7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLV9zdWJtZW51LWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtc2xpZGVtZW51LWJhY2staWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zbGlkZW1lbnUtYmFjay1pY29uKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tX3N1Ym1lbnUtaWNvbi1zaXplKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tX3N1Ym1lbnUtaWNvbi1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciAucC1zbGlkZW1lbnUtYmFjay1pY29uLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIC5wLXNsaWRlbWVudS1iYWNrLWljb24sXG4gICAgICAgICAgICAmLnAtc3RhdGUtZm9jdXMgLnAtc2xpZGVtZW51LWJhY2staWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLV9zdWJtZW51LWljb24tZm9jdXMtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtbWVudS1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgIH1cbn1cbiIsICIvKlxuICogU2xpZGVyOiBwOnNsaWRlclxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXNsaWRlci1ob3Jpem9udGFsLCBwLXNsaWRlci12ZXJ0aWNhbCwgcC1zdGF0ZS1kaXNhYmxlZCwgcC1zbGlkZXItYW5pbWF0ZSAod2hpbGUgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgaGFuZGxlIG1vdmVzIHRvIGEgY2xpY2tlZCAvIHNldCB2YWx1ZSksIHJhbmdlICh0d28gaGFuZGxlcyArIC5wLXNsaWRlci1yYW5nZSksIHJhbmdlPVwibWluXCIgLyBcIm1heFwiXG4gKi9cbi5wLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQpO1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2xpZGVyLXRyYWNrLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgLnAtc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1zbGlkZXItaGFuZGxlLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtaGVpZ2h0KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zbGlkZXItaGFuZGxlLWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zbGlkZXItaGFuZGxlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXNsaWRlci10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1zbGlkZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1zbGlkZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1zbGlkZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc2xpZGVyLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgIC8qIGlubmVyIGtub2IgKi9cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtY29udGVudC13aWR0aCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS1jb250ZW50LWhlaWdodCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtY29udGVudC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC1zbGlkZXItaGFuZGxlLWNvbnRlbnQtc2hhZG93KTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1zbGlkZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjdXJzb3I6IGdyYWJiaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXNsaWRlci1oYW5kbGUtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC1zbGlkZXItaGFuZGxlLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLXNsaWRlci1oYW5kbGUge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpIC5wLXNsaWRlci1oYW5kbGU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpIC5wLXNsaWRlci1oYW5kbGU6aG92ZXI6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc2xpZGVyLWhhbmRsZS1jb250ZW50LWhvdmVyLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICYucC1zbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1zbGlkZXItdHJhY2stc2l6ZSk7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG5cbiAgICAgICAgLnAtc2xpZGVyLXJhbmdlIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNsaWRlci1yYW5nZS1taW4ge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNsaWRlci1yYW5nZS1tYXgge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1wLXNsaWRlci10cmFjay1zaXplKSAvIDIgLSB2YXIoLS1wLXNsaWRlci1oYW5kbGUtaGVpZ2h0KSAvIDIpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtd2lkdGgpIC8gMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtc2xpZGVyLXZlcnRpY2FsIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXAtc2xpZGVyLXRyYWNrLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICB0b3VjaC1hY3Rpb246IHBhbi14O1xuXG4gICAgICAgIC5wLXNsaWRlci1yYW5nZSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zbGlkZXItcmFuZ2UtbWluIHtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNsaWRlci1yYW5nZS1tYXgge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGhlIHZlcnRpY2FsIGhhbmRsZSBpcyBwb3NpdGlvbmVkIHdpdGggYm90dG9tLCBzbyB0aGUgY2VudGVyaW5nIG9mZnNldCBnb2VzIHRvIG1hcmdpbi1ib3R0b20gKi9cbiAgICAgICAgLnAtc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXAtc2xpZGVyLXRyYWNrLXNpemUpIC8gMiAtIHZhcigtLXAtc2xpZGVyLWhhbmRsZS13aWR0aCkgLyAyKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGMoLTEgKiB2YXIoLS1wLXNsaWRlci1oYW5kbGUtaGVpZ2h0KSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc2xpZGVyLXJhbmdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNsaWRlci1yYW5nZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1zbGlkZXItdHJhY2stYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxufVxuXG4vKiBtb3ZlcyB0aGUgaGFuZGxlIC8gcmFuZ2UgdG8gYSBjbGlja2VkIG9yIHNldCB2YWx1ZTsga2VlcHMgdGhlIHRyYW5zaXRpb25zIG9mIHRoZSBoYW5kbGUgc3RhdGVzICovXG4ucC1zbGlkZXIucC1zbGlkZXItYW5pbWF0ZSB7XG4gICAgLnAtc2xpZGVyLWhhbmRsZSxcbiAgICAucC1zbGlkZXItcmFuZ2Uge1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0LCBib3R0b20sIHdpZHRoLCBoZWlnaHQsIGJhY2tncm91bmQsIGNvbG9yLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3csIG91dGxpbmUtY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtc2xpZGVyLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIH1cbn1cblxuLyogcDpzbGlkZXIgYmVsb3cgaXRzIGRpc3BsYXkgaW5wdXQ7IG5vIHRva2VuIGZvciB0aGUgb2xkIGlubGluZSBzcGFjaW5nICovXG4ucC1pbnB1dHRleHQgKyAucC1zbGlkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXkpO1xufVxuIiwgIi8qXG4gKiBTcGVlZERpYWw6IHA6c3BlZWREaWFsXG4gKlxuICogTWFya3VwOiBkaXZbaWRdID4gLnAtc3BlZWRkaWFsICgucC1zcGVlZGRpYWwtbGluZWFyfGNpcmNsZXxzZW1pLWNpcmNsZXxxdWFydGVyLWNpcmNsZSwgLnAtc3BlZWRkaWFsLWRpcmVjdGlvbi0qLFxuICogICAgICAgICAucC1zcGVlZGRpYWwtb3BlbmVkLCAucC1kaXNhYmxlZClcbiAqICAgICAgICAgPiBidXR0b24ucC1zcGVlZGRpYWwtYnV0dG9uLnAtYnV0dG9uLnAtYnV0dG9uLWljb24tb25seS5yb3VuZGVkLWJ1dHRvbiAoLnAtc3BlZWRkaWFsLXJvdGF0ZSwgLnAtc3BlZWRkaWFsLWR1YWwtaWNvbilcbiAqICAgICAgICAgKyB1bC5wLXNwZWVkZGlhbC1saXN0ID4gbGkucC1zcGVlZGRpYWwtaXRlbSA+IGEucC1zcGVlZGRpYWwtYWN0aW9uICg+IC5wLXNwZWVkZGlhbC1hY3Rpb24taWNvbiArIC5wLW1lbnVpdGVtLXRleHQpXG4gKiAgICAgICAgICsgZGl2LnAtc3BlZWRkaWFsLW1hc2sgKG9wdGlvbmFsLCAucC1zcGVlZGRpYWwtbWFzay12aXNpYmxlKVxuICogTGlrZSBQcmltZVVJWDogdGhlIG1haW4gYnV0dG9uIGlzIGEgcm91bmRlZCBidXR0b24gKGJ1dHRvbi5jc3MpLCB0aGUgYWN0aW9ucyBhcmUgc21hbGwgcm91bmRlZCBzZWNvbmRhcnkgYnV0dG9ucy5cbiAqIFRoZSBpdGVtIC8gbWFzayAvIHJvdGF0ZSBhbmltYXRpb25zIGtlZXAgdGhlaXIgZml4ZWQgdGltaW5ncywgbGlrZSBQcmltZVVJWC5cbiAqIE1haW4gYnV0dG9uIGljb246IHRoZSBzaG93SWNvbiAvIGhpZGVJY29uIG9mIHRoZSBhcHBsaWNhdGlvbiwgd2l0aG91dCBzaG93SWNvbiBzcGFuLnAtaWNvbi5wLXBsdXMtaWNvbi5wLXNwZWVkZGlhbC1zaG93LWljb25cbiAqICh0b2tlbiAtLXAtc3BlZWRkaWFsLXNob3ctaWNvbiwgcm90YXRlZCBieSBwLXNwZWVkZGlhbC1yb3RhdGUgd2hlbiBvcGVuZWQpLlxuICovXG4ucC1zcGVlZGRpYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAucC1zcGVlZGRpYWwtc2hvdy1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1zcGVlZGRpYWwtc2hvdy1pY29uKTtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtcm90YXRlIC5wLWJ1dHRvbi1pY29uLWxlZnQgKyAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB9XG5cbiAgICAvKiBkdWFsIGljb24gKHNob3dJY29uIC8gaGlkZUljb24pOiB0aGUgc2Vjb25kIGljb24gbGllcyBvbiB0b3Agb2YgdGhlIGZpcnN0IG9uZSAoY2VudGVyZWQgYnkgdGhlIGZsZXggYnV0dG9uKSAqL1xuICAgIC5wLXNwZWVkZGlhbC1idXR0b24gLnAtYnV0dG9uLWljb24tbGVmdCArIC5wLWJ1dHRvbi1pY29uLWxlZnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuXG4ucC1zcGVlZGRpYWwtbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdG9wIDBzIGxpbmVhciB2YXIoLS1wLXNwZWVkZGlhbC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnAtc3BlZWRkaWFsLWl0ZW0ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tcC1zcGVlZGRpYWwtdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZyksIG9wYWNpdHkgdmFyKC0tcC1zcGVlZGRpYWwtaXRlbS1mYWRlLWR1cmF0aW9uKTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4vKiB0aGUgbWFpbiBidXR0b24gKHJvdW5kZWQgaWNvbiBvbmx5LCBpbmNsLiBwLWJ1dHRvbi1zbSAvIC1sZyB2aWEgYnV0dG9uU3R5bGVDbGFzcykgaXMgc2l6ZWQgYnkgYnV0dG9uLmNzcyAqL1xuLnAtc3BlZWRkaWFsLWFjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogdmFyKC0tcC1idXR0b24tc20taWNvbi1vbmx5LXdpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLXAtYnV0dG9uLXNtLWljb24tb25seS13aWR0aCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLWJ1dHRvbi1zbS1mb250LXNpemUpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1zcGVlZGRpYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtc3BlZWRkaWFsLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC1zcGVlZGRpYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1zcGVlZGRpYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC1zcGVlZGRpYWwtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAucC1zcGVlZGRpYWwtYWN0aW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtYnV0dG9uLXNtLWZvbnQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLyogYWN0aW9ucyBhcmUgaWNvbiBvbmx5LCBhbiBlbXB0eSBsYWJlbCBtdXN0IG5vdCB0YWtlIHNwYWNlICovXG4gICAgLnAtbWVudWl0ZW0tdGV4dDplbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpub3QoLnAtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOm5vdCgucC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtY29sb3IpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxufVxuXG4vKiBkaXNhYmxlZDogdGhlIHdob2xlIHNwZWVkZGlhbCAoZGlzYWJsZWQ9XCJ0cnVlXCIpIG9yIGEgc2luZ2xlIGFjdGlvbiAobWVudWl0ZW0gZGlzYWJsZWQpICovXG4ucC1zcGVlZGRpYWwucC1kaXNhYmxlZCAucC1zcGVlZGRpYWwtYnV0dG9uLFxuLnAtc3BlZWRkaWFsLWFjdGlvbi5wLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiB2YXIoLS1wLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnAtc3BlZWRkaWFsLWJ1dHRvbi5wLXNwZWVkZGlhbC1yb3RhdGUgLnAtYnV0dG9uLWljb24tbGVmdCB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcC1zcGVlZGRpYWwtcm90YXRlLWR1cmF0aW9uKTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tcC10cmFuc2l0aW9uLWVhc2luZyk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtO1xufVxuXG4ucC1zcGVlZGRpYWwtbWFzayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXAtbWFzay1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1wLXNwZWVkZGlhbC1tYXNrLWhpZGUtZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmctZXhpdCk7XG59XG5cbi5wLXNwZWVkZGlhbC1tYXNrLXZpc2libGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1wLXNwZWVkZGlhbC1tYXNrLXNob3ctZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmctZW50ZXIpO1xufVxuXG4vKiBhZnRlciB0aGUgLnAtc3BlZWRkaWFsIHJ1bGVzOiB0aGUgb3BlbmVkIHN0YXRlIHdpbnMgb3ZlciB0aGVtICovXG4ucC1zcGVlZGRpYWwtb3BlbmVkIHtcbiAgICAmLnAtc3BlZWRkaWFsIHtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtbGlzdCB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cblxuICAgIC5wLXNwZWVkZGlhbC1pdGVtIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtcm90YXRlIC5wLWJ1dHRvbi1pY29uLWxlZnQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuXG4gICAgLnAtc3BlZWRkaWFsLWR1YWwtaWNvbiAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAucC1idXR0b24taWNvbi1sZWZ0ICsgLnAtYnV0dG9uLWljb24tbGVmdCxcbiAgICAucC1zcGVlZGRpYWwtYnV0dG9uIC5wLWJ1dHRvbi1pY29uLWxlZnQgKyAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtcm90YXRlLnAtc3BlZWRkaWFsLWR1YWwtaWNvbiAucC1idXR0b24taWNvbi1sZWZ0IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIH1cblxuICAgIC5wLXNwZWVkZGlhbC1yb3RhdGUgLnAtYnV0dG9uLWljb24tbGVmdCArIC5wLWJ1dHRvbi1pY29uLWxlZnQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG59XG5cbi8qIGRpcmVjdGlvbiAqL1xuLnAtc3BlZWRkaWFsLWRpcmVjdGlvbi11cCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cbiAgICAucC1zcGVlZGRpYWwtbGlzdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtaXRlbSB7XG4gICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1wLXNwZWVkZGlhbC1nYXApIC8gMikgMDtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXAtc3BlZWRkaWFsLWdhcCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXNwZWVkZGlhbC1kaXJlY3Rpb24tZG93biB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLnAtc3BlZWRkaWFsLWxpc3Qge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5wLXNwZWVkZGlhbC1pdGVtIHtcbiAgICAgICAgbWFyZ2luOiBjYWxjKHZhcigtLXAtc3BlZWRkaWFsLWdhcCkgLyAyKSAwO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcC1zcGVlZGRpYWwtZ2FwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtc3BlZWRkaWFsLWRpcmVjdGlvbi1sZWZ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAucC1zcGVlZGRpYWwtbGlzdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtaXRlbSB7XG4gICAgICAgIG1hcmdpbjogMCBjYWxjKHZhcigtLXAtc3BlZWRkaWFsLWdhcCkgLyAyKTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tcC1zcGVlZGRpYWwtZ2FwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtc3BlZWRkaWFsLWRpcmVjdGlvbi1yaWdodCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIC5wLXNwZWVkZGlhbC1saXN0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICAucC1zcGVlZGRpYWwtaXRlbSB7XG4gICAgICAgIG1hcmdpbjogMCBjYWxjKHZhcigtLXAtc3BlZWRkaWFsLWdhcCkgLyAyKTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1wLXNwZWVkZGlhbC1nYXApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBjaXJjbGUgdHlwZXM6IHRoZSB3aWRnZXQgcG9zaXRpb25zIHRoZSBpdGVtcywgYWZ0ZXIgdGhlIGRpcmVjdGlvbiBtYXJnaW5zICovXG4ucC1zcGVlZGRpYWwtY2lyY2xlLFxuLnAtc3BlZWRkaWFsLXNlbWktY2lyY2xlLFxuLnAtc3BlZWRkaWFsLXF1YXJ0ZXItY2lyY2xlIHtcbiAgICAucC1zcGVlZGRpYWwtaXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5wLXNwZWVkZGlhbC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cbiIsICIvKlxuICogU3Bpbm5lcjogcDpzcGlubmVyIChQcmltZVVJWDogaW5wdXRudW1iZXIpXG4gKlxuICogVGhlIGJ1dHRvbnMgYXJlIC5wLWJ1dHRvbiwgc28gb25seSB0aGUgcHJpdmF0ZSBidXR0b24gdmFyaWFibGVzIG9mIGJ1dHRvbi5jc3MgYXJlIHJlbWFwcGVkLFxuICogYWxsIGJ1dHRvbiBzdGF0ZXMga2VlcCB3b3JraW5nLlxuICogQnV0dG9uIGxheW91dHMgKGNsYXNzIG9uIC5wLXNwaW5uZXIpOiBwLXNwaW5uZXItc3RhY2tlZCAoZGVmYXVsdCksIHAtc3Bpbm5lci1ob3Jpem9udGFsICgtIGlucHV0ICspLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC1zcGlubmVyLWhvcml6b250YWwtYWZ0ZXIgKGlucHV0IC0gKyksIHAtc3Bpbm5lci12ZXJ0aWNhbCAoKyBhYm92ZSwgLSBiZWxvdylcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXNwaW5uZXItcnRsLCBwLXN0YXRlLWVycm9yIC8gcC1zdGF0ZS1kaXNhYmxlZCAob24gaW5wdXQgYW5kIGJ1dHRvbnMpLFxuICogICAgICAgICAgICAgICAgICAgIHRleHQtbGVmdCAvIHRleHQtY2VudGVyIC8gdGV4dC1yaWdodCAoaW5wdXQgYWxpZ25tZW50KVxuICovXG4ucC1zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8qIGRpc2FibGVkOiB0aGUgcm9vdCBjYXJyaWVzIHAtc3RhdGUtZGlzYWJsZWQgdG9vOyB0aGUgaW5wdXQgc2hvd3MgdGhlIGRpc2FibGVkIGZpZWxkIGxvb2sgKGxpa2UgcDppbnB1dFRleHQpLCBzb1xuICAgICAgIHRoZSByb290IGlzIG5vdCBmYWRlZCBvbiB0b3Agb2YgaXQsIG9ubHkgdGhlIGJ1dHRvbnMgKi9cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgID4gLnAtc3Bpbm5lci1idXR0b24ge1xuICAgICAgICAgICAgb3BhY2l0eTogdmFyKC0tcC1kaXNhYmxlZC1vcGFjaXR5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXNwaW5uZXItaW5wdXQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG5cbiAgICAgICAgJltkaXI9XCJydGxcIl0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYudGV4dC1sZWZ0IC5wLXNwaW5uZXItaW5wdXQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgICYudGV4dC1jZW50ZXIgLnAtc3Bpbm5lci1pbnB1dCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLnRleHQtcmlnaHQgLnAtc3Bpbm5lci1pbnB1dCB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIC5wLXNwaW5uZXItYnV0dG9uIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLnAtc3Bpbm5lci11cCB7XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAucC1zcGlubmVyLWRvd24ge1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgLnAtc3Bpbm5lci1idXR0b24ucC1idXR0b24ge1xuICAgICAgICAtLV9iZzogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2hvdmVyLWJnOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgLS1fYWN0aXZlLWJnOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgIC0tX2JvcmRlcjogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1fY29sb3I6IHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItY29sb3I6IHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgLS1fYWN0aXZlLWNvbG9yOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1hY3RpdmUtY29sb3IpO1xuXG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi13aWR0aCk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC1pbnB1dG51bWJlci10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC1pbnB1dG51bWJlci10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLWlucHV0bnVtYmVyLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtaW5wdXRudW1iZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgLnAtYnV0dG9uLXRleHQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1pY29uLXNpemUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBpbnZhbGlkOiB0aGUgYnV0dG9ucyBmb2xsb3cgdGhlIGlucHV0IGJvcmRlciAqL1xuICAgICAgICAmLnAtc3RhdGUtZXJyb3Ige1xuICAgICAgICAgICAgLS1fYm9yZGVyOiB2YXIoLS1wLWZvcm0tZmllbGQtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWZvcm0tZmllbGQtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgLS1fYWN0aXZlLWJvcmRlcjogdmFyKC0tcC1mb3JtLWZpZWxkLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXNwaW5uZXItaW5jcmVtZW50LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWlucHV0bnVtYmVyLWluY3JlbWVudC1pY29uKTtcbiAgICB9XG5cbiAgICAucC1zcGlubmVyLWRlY3JlbWVudC1pY29uIHtcbiAgICAgICAgLS1faWNvbjogdmFyKC0tcC1pbnB1dG51bWJlci1kZWNyZW1lbnQtaWNvbik7XG4gICAgfVxuXG4gICAgLyogaG9yaXpvbnRhbCAvIHZlcnRpY2FsOiBwbHVzIC8gbWludXM7IG5vIGlucHV0bnVtYmVyIHRva2VucyBmb3IgdGhlbSwgdGhlIGdlbmVyaWMgaWNvbiB0b2tlbnMgKi9cbiAgICAmOmlzKC5wLXNwaW5uZXItaG9yaXpvbnRhbCwgLnAtc3Bpbm5lci1ob3Jpem9udGFsLWFmdGVyLCAucC1zcGlubmVyLXZlcnRpY2FsKSB7XG4gICAgICAgIC5wLXNwaW5uZXItaW5jcmVtZW50LWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC1pY29uLXBsdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1kZWNyZW1lbnQtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLWljb24tbWludXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc3RhY2tlZCAoZGVmYXVsdCk6IHRoZSBidXR0b25zIHNpdCBpbnNpZGUgdGhlIGlucHV0IGJvcmRlciBsaWtlIHRoZSBQcmltZVVJWCBzdGFja2VkIGlucHV0bnVtYmVyICovXG4gICAgJi5wLXNwaW5uZXItc3RhY2tlZCB7XG4gICAgICAgIC5wLXNwaW5uZXItaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLXdpZHRoKSArIHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtYnV0dG9uIHtcbiAgICAgICAgICAgIC0tX2JvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAtLV9ob3Zlci1ib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgLS1fYWN0aXZlLWJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMXB4KTtcbiAgICAgICAgICAgIHJpZ2h0OiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItdXAge1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYyh2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSAtIDFweCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItZG93biB7XG4gICAgICAgICAgICBib3R0b206IDFweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBjYWxjKHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIC0gMXB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1zcGlubmVyLXN0YWNrZWQucC1zcGlubmVyLXJ0bCB7XG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtYnV0dG9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLXVwIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyh2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSAtIDFweCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItZG93biB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgLSAxcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogaG9yaXpvbnRhbDogWy1dIGlucHV0IFsrXSwgdGhlIGJ1dHRvbnMgY292ZXIgdGhlIGlucHV0IGVkZ2VzIGFuZCBkcmF3IHRoZSBvdXRlciBjb3JuZXJzICovXG4gICAgJi5wLXNwaW5uZXItaG9yaXpvbnRhbCAucC1zcGlubmVyLWlucHV0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi13aWR0aCkgKyB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KSk7XG4gICAgfVxuXG4gICAgJi5wLXNwaW5uZXItaG9yaXpvbnRhbCAucC1zcGlubmVyLWJ1dHRvbi5wLWJ1dHRvbixcbiAgICAmLnAtc3Bpbm5lci1ob3Jpem9udGFsLWFmdGVyIC5wLXNwaW5uZXItYnV0dG9uLnAtYnV0dG9uIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAmLnAtc3Bpbm5lci1ob3Jpem9udGFsIHtcbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLXVwIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci1kb3duIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIDAgMCB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucC1zcGlubmVyLWhvcml6b250YWwucC1zcGlubmVyLXJ0bCB7XG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci11cCB7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSAwIDAgdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItZG93biB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBob3Jpem9udGFsLWFmdGVyOiBpbnB1dCBbLV1bK10gKi9cbiAgICAmLnAtc3Bpbm5lci1ob3Jpem9udGFsLWFmdGVyIHtcbiAgICAgICAgLnAtc3Bpbm5lci1pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IGNhbGModmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24td2lkdGgpICogMiArIHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci11cCB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci1kb3duIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLXdpZHRoKSAtIDFweCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXNwaW5uZXItaG9yaXpvbnRhbC1hZnRlci5wLXNwaW5uZXItcnRsIHtcbiAgICAgICAgLnAtc3Bpbm5lci1pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24td2lkdGgpICogMiArIHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtc3Bpbm5lci11cCB7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi1ib3JkZXItcmFkaXVzKSAwIDAgdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItZG93biB7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24td2lkdGgpIC0gMXB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHZlcnRpY2FsOiBbK10gYWJvdmUsIFstXSBiZWxvdywgZnVsbCB3aWR0aCAqL1xuICAgICYucC1zcGlubmVyLXZlcnRpY2FsIHtcbiAgICAgICAgLnAtc3Bpbm5lci1pbnB1dCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiBjYWxjKHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLXdpZHRoKSArIHZhcigtLXAtZm9ybS1maWVsZC1wYWRkaW5nLXkpKTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXNwaW5uZXItYnV0dG9uLnAtYnV0dG9uIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLWlucHV0bnVtYmVyLWJ1dHRvbi13aWR0aCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGlubmVyLWJ1dHRvbi5wLXNwaW5uZXItdXAge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgdmFyKC0tcC1pbnB1dG51bWJlci1idXR0b24tYm9yZGVyLXJhZGl1cykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc3Bpbm5lci1idXR0b24ucC1zcGlubmVyLWRvd24ge1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpIHZhcigtLXAtaW5wdXRudW1iZXItYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc2l6ZXM6IHRoZSBpbnB1dCBjYXJyaWVzIHAtaW5wdXR0ZXh0LXNtIC8gLWxnIChmb3Jtcy9pbnB1dGZpZWxkLmNzcyksIHRoZSBpY29ucyBmb2xsb3cgKi9cbiAgICAmOmhhcyg+IC5wLWlucHV0dGV4dC1zbSkgLnAtc3Bpbm5lci1idXR0b24gLnAtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1mb3JtLWZpZWxkLXNtLWZvbnQtc2l6ZSk7XG4gICAgfVxuXG4gICAgJjpoYXMoPiAucC1pbnB1dHRleHQtbGcpIC5wLXNwaW5uZXItYnV0dG9uIC5wLWljb24ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtZm9ybS1maWVsZC1sZy1mb250LXNpemUpO1xuICAgIH1cbn1cblxuLnAtZmx1aWQgLnAtc3Bpbm5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAucC1zcGlubmVyLWlucHV0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4vKiBjbGllbnQgc2lkZSB2YWxpZGF0aW9uIG1hcmtzIHRoZSB3cmFwcGVyICh0aGUgc2VydmVyIG1hcmtzIGlucHV0IGFuZCBidXR0b25zKSAqL1xuLnAtc3Bpbm5lci5wLXN0YXRlLWVycm9yIHtcbiAgICAucC1zcGlubmVyLWlucHV0LFxuICAgIC5wLXNwaW5uZXItaW5wdXQ6aXMoOmhvdmVyLCA6Zm9jdXMsIC5wLXN0YXRlLWhvdmVyLCAucC1zdGF0ZS1mb2N1cykge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtaW5wdXR0ZXh0LWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAucC1zcGlubmVyLWJ1dHRvbiB7XG4gICAgICAgIC0tX2JvcmRlcjogdmFyKC0tcC1mb3JtLWZpZWxkLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgLS1faG92ZXItYm9yZGVyOiB2YXIoLS1wLWZvcm0tZmllbGQtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgICAgICAtLV9hY3RpdmUtYm9yZGVyOiB2YXIoLS1wLWZvcm0tZmllbGQtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuICAgIH1cbn1cbiIsICIvKlxuICogU3BsaXRCdXR0b246IHA6c3BsaXRCdXR0b25cbiAqXG4gKiBNYXJrdXA6IGRpdi5wLXNwbGl0YnV0dG9uID4gYnV0dG9uLnAtYnV0dG9uIChkZWZhdWx0IGNvbW1hbmQpICsgYnV0dG9uLnAtc3BsaXRidXR0b24tbWVudWJ1dHRvblxuICogICAgICAgICBvdmVybGF5OiAucC1tZW51LnAtc3BsaXRidXR0b25tZW51IChzdHlsZWQgYnkgbWVudS9tZW51LmJhc2UuY3NzKSA+IC5wLXNwbGl0YnV0dG9ubWVudS1maWx0ZXItY29udGFpbmVyIChvcHRpb25hbClcbiAqICAgICAgICAgKyAucC1zcGxpdGJ1dHRvbm1lbnUtbGlzdC13cmFwcGVyID4gdWwucC1tZW51LWxpc3RcbiAqIFRoZSBidXR0b25zIHRoZW1zZWx2ZXMgYXJlIHN0eWxlZCBieSBidXR0b24uY3NzIChzZXZlcml0aWVzLCBvdXRsaW5lZCwgZmxhdCwgcmFpc2VkLCBzaXplcyBhcmUgcHV0IG9uIHRoZVxuICogLnAtc3BsaXRidXR0b24gYW5kIG1hcHBlZCB0byBib3RoIGJ1dHRvbnMgdGhlcmUpLCB0aGlzIGZpbGUgb25seSBqb2lucyB0aGVtLlxuICovXG4ucC1zcGxpdGJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc3BsaXRidXR0b24tYm9yZGVyLXJhZGl1cyk7XG5cbiAgICA+IC5wLWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAvKiBkZWZhdWx0IGJ1dHRvbjogam9pbmVkIHRvIHRoZSBtZW51IGJ1dHRvbiBvbiBpdHMgZW5kIHNpZGUgKi9cbiAgICAgICAgJjpoYXMoKyAucC1zcGxpdGJ1dHRvbi1tZW51YnV0dG9uKSB7XG4gICAgICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1pbmxpbmUtZW5kLXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1idXR0b24ucC1zcGxpdGJ1dHRvbi1tZW51YnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IDA7XG5cbiAgICAgICAgLnAtc3BsaXRidXR0b24tZHJvcGRvd24taWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXNwbGl0YnV0dG9uLWRyb3Bkb3duLWljb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogcmFpc2VkOiBvbmUgc2hhZG93IGFyb3VuZCB0aGUgd2hvbGUgZ3JvdXAgaW5zdGVhZCBvZiBvbmUgcGVyIGJ1dHRvbiAoYnV0dG9uLmNzcyBzZXRzIGl0IG9uIGJvdGgpICovXG4gICAgJi5wLWJ1dHRvbi1yYWlzZWQge1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXNwbGl0YnV0dG9uLXJhaXNlZC1zaGFkb3cpO1xuXG4gICAgICAgID4gLnAtYnV0dG9uOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucm91bmRlZC1idXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXNwbGl0YnV0dG9uLXJvdW5kZWQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgPiAucC1idXR0b246Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tcC1zcGxpdGJ1dHRvbi1yb3VuZGVkLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXAtc3BsaXRidXR0b24tcm91bmRlZC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWJ1dHRvbi5wLXNwbGl0YnV0dG9uLW1lbnVidXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtc3BsaXRidXR0b24tcm91bmRlZC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tcC1zcGxpdGJ1dHRvbi1yb3VuZGVkLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogbWVudSBub3QgYXBwZW5kZWQgdG8gdGhlIGJvZHkgKi9cbiAgICAucC1zcGxpdGJ1dHRvbm1lbnUge1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ucC1zcGxpdGJ1dHRvbm1lbnUge1xuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgLnAtc3BsaXRidXR0b25tZW51LWZpbHRlci1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtbGlzdC1oZWFkZXItcGFkZGluZyk7XG4gICAgICAgIC8qIGlubGluZSBwYWRkaW5nIGZpeGVkIHRvIG9uZSB0b2tlbiBzbyB0aGUgc2VhcmNoIGljb24gcG9zaXRpb24gY2FuIGJlIGRlcml2ZWQgZnJvbSBpdCAqL1xuICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDAgbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1tZW51LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1tZW51LWNvbG9yKTtcblxuICAgICAgICAucC1zcGxpdGJ1dHRvbm1lbnUtZmlsdGVyLnAtaW5wdXRmaWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy15KSB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKDIgKiB2YXIoLS1wLWZvcm0tZmllbGQtcGFkZGluZy14KSArIHZhcigtLXAtaWNvbi1zaXplKSk7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zcGxpdGJ1dHRvbi1maWx0ZXItaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXNwbGl0YnV0dG9uLWZpbHRlci1pY29uKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogY2FsYygyICogdmFyKC0tcC1mb3JtLWZpZWxkLXBhZGRpbmcteCkpO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXAtaWNvbi1zaXplKSAvIC0yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWZvcm0tZmllbGQtaWNvbi1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zcGxpdGJ1dHRvbm1lbnUtZmlsdGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnAtc3BsaXRidXR0b25tZW51LWxpc3Qtd3JhcHBlciB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cblxuICAgIC5wLWRpdmlkZXItaG9yaXpvbnRhbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLnAtZmx1aWQge1xuICAgIC5wLXNwbGl0YnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLnAtYnV0dG9uIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICYucC1zcGxpdGJ1dHRvbi1tZW51YnV0dG9uIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24taWNvbi1vbmx5LXdpZHRoKTtcblxuICAgICAgICAgICAgICAgICYucC1idXR0b24tc20ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tcC1idXR0b24tc20taWNvbi1vbmx5LXdpZHRoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnAtYnV0dG9uLWxnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtYnV0dG9uLWxnLWljb24tb25seS13aWR0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8qXG4gKiBTcGxpdHRlcjogcDpzcGxpdHRlciAobGF5b3V0IGhvcml6b250YWwgfCB2ZXJ0aWNhbCwgbmVzdGVkIHNwbGl0dGVycylcbiAqXG4gKiBUaGUgZ3V0dGVyIHNpemUgaXMgc2V0IGlubGluZSBieSB0aGUgd2lkZ2V0IChndXR0ZXJTaXplKTsgLnAtc3BsaXR0ZXItZ3V0dGVyLXJlc2l6aW5nIC8gLnAtc3BsaXR0ZXItcmVzaXppbmdcbiAqIGFyZSBzZXQgd2hpbGUgZHJhZ2dpbmcuXG4gKi9cblxuLnAtc3BsaXR0ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1zcGxpdHRlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1zcGxpdHRlci1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC1zcGxpdHRlci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYm9yZGVyLXJhZGl1cy1tZCk7XG5cbiAgICAucC1zcGxpdHRlci1ndXR0ZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc3BsaXR0ZXItZ3V0dGVyLWJhY2tncm91bmQpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtc3BsaXR0ZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgLnAtc3BsaXR0ZXItZ3V0dGVyLWhhbmRsZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc3BsaXR0ZXItaGFuZGxlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtc3BsaXR0ZXItdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC1zcGxpdHRlci10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtc3BsaXR0ZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlID4gLnAtc3BsaXR0ZXItZ3V0dGVyLWhhbmRsZSxcbiAgICAgICAgLnAtc3BsaXR0ZXItZ3V0dGVyLWhhbmRsZTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtc3BsaXR0ZXItaGFuZGxlLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtc3BsaXR0ZXItaGFuZGxlLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtc3BsaXR0ZXItaGFuZGxlLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtc3BsaXR0ZXItaGFuZGxlLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc3BsaXR0ZXItaGFuZGxlLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXNwbGl0dGVyLWd1dHRlci1yZXNpemluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc3BsaXR0ZXItZ3V0dGVyLXJlc2l6aW5nLWJhY2tncm91bmQpO1xuICAgIH1cbn1cblxuLnAtc3BsaXR0ZXItcGFuZWwge1xuICAgIGZsZXgtZ3JvdzogMTtcbn1cblxuLnAtc3BsaXR0ZXItcGFuZWwtbmVzdGVkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vKiBuZXN0ZWQgc3BsaXR0ZXJzIGhhdmUgbm8gb3duIGZyYW1lICovXG4ucC1zcGxpdHRlci1wYW5lbCAucC1zcGxpdHRlciB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5wLXNwbGl0dGVyLWd1dHRlciB7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnAtc3BsaXR0ZXItaG9yaXpvbnRhbCB7XG4gICAgJi5wLXNwbGl0dGVyLXJlc2l6aW5nIHtcbiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICA+IC5wLXNwbGl0dGVyLWd1dHRlciB7XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcblxuICAgICAgICA+IC5wLXNwbGl0dGVyLWd1dHRlci1oYW5kbGUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtc3BsaXR0ZXItaGFuZGxlLXNpemUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1zcGxpdHRlci12ZXJ0aWNhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICYucC1zcGxpdHRlci1yZXNpemluZyB7XG4gICAgICAgIGN1cnNvcjogcm93LXJlc2l6ZTtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgPiAucC1zcGxpdHRlci1ndXR0ZXIge1xuICAgICAgICBjdXJzb3I6IHJvdy1yZXNpemU7XG5cbiAgICAgICAgPiAucC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlIHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1wLXNwbGl0dGVyLWhhbmRsZS1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogU3BvdGxpZ2h0OiBwOnNwb3RsaWdodFxuICogTWFya3VwOiBmb3VyIGRpdi5wLXdpZGdldC1vdmVybGF5LnAtc3BvdGxpZ2h0LnAtc3BvdGxpZ2h0LSh0b3B8Ym90dG9tfGxlZnR8cmlnaHQpIGFwcGVuZGVkIHRvIGJvZHksXG4gKiBwb3NpdGlvbmVkIGFyb3VuZCB0aGUgdGFyZ2V0IGJ5IHRoZSB3aWRnZXQgKGlubGluZSB0b3AvbGVmdC93aWR0aC9oZWlnaHQvei1pbmRleCkuXG4gKiBQcmltZUZhY2VzIG9ubHkgdG9rZW5zOiB0aGUgc3BvdGxpZ2h0IGJsb2NrIG9mIHByZXNldHMvKi5jc3MuXG4gKi9cbi5wLXNwb3RsaWdodC5wLXdpZGdldC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1zcG90bGlnaHQtbWFzay1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC1zcG90bGlnaHQtbWFzay1jb2xvcik7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXNwb3RsaWdodC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbn1cbiIsICIvKlxuICogU3RhdGljTWVzc2FnZTogcDpzdGF0aWNNZXNzYWdlXG4gKlxuICogTWFya3VwOiAucC1tZXNzYWdlLnAtc3RhdGljbWVzc2FnZS5wLW1lc3NhZ2UtPHNldmVyaXR5PigucC1tZXNzYWdlLWljb24tb25seSlcbiAqICAgICAgICAgPiBhLnAtbWVzc2FnZXMtY2xvc2UgKGNsb3NhYmxlKSArIHNwYW4ucC1tZXNzYWdlLTxzZXZlcml0eT4taWNvbi5wLW1lc3NhZ2UtPHNldmVyaXR5Pi1pY29uIChvciB0aGUgY3VzdG9tIGljb24gY2xhc3NlcylcbiAqICAgICAgICAgKyBzcGFuLnAtbWVzc2FnZS08c2V2ZXJpdHk+LXN1bW1hcnkgKyBzcGFuLnAtbWVzc2FnZS08c2V2ZXJpdHk+LWRldGFpbFxuICogU2V2ZXJpdGllczogaW5mbyB8IHN1Y2Nlc3MgfCB3YXJuIHwgZXJyb3IgfCBmYXRhbCB8IHNlY29uZGFyeSB8IGNvbnRyYXN0IChwYXNzZWQgdGhyb3VnaCBhcyBwLW1lc3NhZ2UtPHNldmVyaXR5PiksXG4gKiB2YXJpYW50cyAvIHNpemVzIChzdHlsZUNsYXNzKTogcC1tZXNzYWdlLW91dGxpbmVkIHwgLXNpbXBsZSB8IC1zbSB8IC1sZyAobWVzc2FnZS5jc3MpLlxuICogQ29sb3JzLCBpY29ucyBhbmQgdGV4dHMgY29tZSBmcm9tIG1lc3NhZ2UuY3NzIChpdCBzaGFyZXMgdGhlIHAtbWVzc2FnZS0qIGNsYXNzZXMpOyB0aGlzIGZpbGUgYWRkcyB0aGUgYmxvY2sgbGF5b3V0XG4gKiBhbmQgdGhlIGNsb3NlIGJ1dHRvbi4gVG9rZW5zOiBQcmltZVVJWCBtZXNzYWdlICsgdGhlIG1lc3NhZ2UgYmxvY2sgb2YgcHJlc2V0cy8qLmNzc1xuICovXG5cbi5wLXN0YXRpY21lc3NhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5wLW1lc3NhZ2VzLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRvcDogLS43NXJlbTtcbiAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogLS43NXJlbTtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbi5wLW1lc3NhZ2UucC1zdGF0aWNtZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1wLW1lc3NhZ2UtY29udGVudC1nYXApO1xuXG4gICAgJi5wLW1lc3NhZ2UtaWNvbi1vbmx5IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgLyogY3VzdG9tIGljb24gKGljb24gYXR0cmlidXRlLCBlLmcuIFwicGkgcGktc3RhclwiKSAqL1xuICAgID4gLnBpIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLV9pY29uLXNpemUpO1xuICAgIH1cblxuICAgIC8qIGNsb3NlIGJ1dHRvbjogYSByb3VuZCBiYWRnZSBvbiB0aGUgdG9wIGVuZCBjb3JuZXIsIGNhcnJ5aW5nIHRoZSBtZXNzYWdlIGNvbG9ycyAqL1xuICAgIC5wLW1lc3NhZ2VzLWNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXI6IHZhcigtLXAtbWVzc2FnZS1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLV9ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLV9iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1fY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1fc2hhZG93KTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLW1lc3NhZ2UtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC1tZXNzYWdlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtbWVzc2FnZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1fY2xvc2UtaG92ZXItYmcpLCB2YXIoLS1fY2xvc2UtaG92ZXItYmcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tX2Nsb3NlLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtbWVzc2FnZS1jbG9zZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tX2Nsb3NlLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLW1lc3NhZ2UtY2xvc2UtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLW1lc3NhZ2UtY2xvc2UtaWNvbik7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tX2Nsb3NlLWljb24tc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBvdXRsaW5lZCAvIHNpbXBsZSBoYXZlIG5vIGJhY2tncm91bmQsIGEgYmFkZ2Ugb24gdGhlIGNvcm5lciB3b3VsZCBiZSBzZWUtdGhyb3VnaDogaW5saW5lIGJ1dHRvbiBhdCB0aGUgZW5kXG4gICAgICAgKGxpa2UgcDptZXNzYWdlcyksIGJhY2tncm91bmQgLyBzaGFkb3cgYXJlIGFscmVhZHkgdHJhbnNwYXJlbnQgLyBub25lIHRocm91Z2ggdGhlIHByaXZhdGUgdmFyaWFibGVzICovXG4gICAgJi5wLW1lc3NhZ2Utb3V0bGluZWQgLnAtbWVzc2FnZXMtY2xvc2UsXG4gICAgJi5wLW1lc3NhZ2Utc2ltcGxlIC5wLW1lc3NhZ2VzLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgICAgICB3aWR0aDogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi1oZWlnaHQpO1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1tZXNzYWdlLWNsb3NlLWJ1dHRvbi1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG59XG4iLCAiLypcbiAqIFN0ZXBzOiBwOnN0ZXBzXG4gKlxuICogTWFya3VwOiAucC1zdGVwcyAoLnAtc3RlcHMtcmVhZG9ubHkpID4gdWwgPiBsaS5wLXN0ZXBzLWl0ZW1cbiAqICAgICAgICAgKHAtc3RhdGUtaGlnaGxpZ2h0ID0gY3VycmVudCBzdGVwLCBwLXN0YXRlLWRpc2FibGVkID0gbm90IHJlYWNoYWJsZSwgcC1zdGVwcy1pdGVtLWV4ZWN1dGFibGUgPSBjbGlja2FibGUpXG4gKiAgICAgICAgID4gYS5wLW1lbnVpdGVtLWxpbmsgPiBzcGFuLnAtc3RlcHMtbnVtYmVyIChudW1iZXIgb3Igc3Bhbi5wLXN0ZXBzLW51bWJlci1pY29uKSArIHNwYW4ucC1zdGVwcy10aXRsZVxuICogTGlrZSBQcmltZVVJWDogYSBzZXBhcmF0b3IgbGluZSBydW5zIHRocm91Z2ggdGhlIG1pZGRsZSBvZiB0aGUgbnVtYmVycywgdGhlIGxhYmVsIGlzIGJlbG93IHRoZSBudW1iZXIuXG4gKi9cbi5wLXN0ZXBzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5wLXN0ZXBzLWl0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLyogbGlrZSBQcmltZVVJWDogaW5hY3RpdmUgKC5wLXN0YXRlLWRpc2FibGVkKSBzdGVwcyBhcmUgbm90IGRpbW1lZCwgdGhlIG11dGVkIG51bWJlci9sYWJlbCBjb2xvcnMgbWFyayB0aGVtICovXG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgLyogc2VwYXJhdG9yIHRocm91Z2ggdGhlIG1pZGRsZSBvZiB0aGUgbnVtYmVycyAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgLyogMnB4IGxpbmUgYW5kIDJweCBudW1iZXIgYm9yZGVyIGxpa2UgUHJpbWVVSVgsIGNlbnRlcmVkIG9uIHRoZSBudW1iZXIgKi9cbiAgICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1wLXN0ZXBzLXNlcGFyYXRvci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdG9wOiBjYWxjKHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItc2l6ZSkgLyAyIC0gMXB4KTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cblxuICAgICAgICAmOm9ubHktY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtbWVudWl0ZW0tbGluayB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbGluay1nYXApO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgLyogc2hhcGUgb2YgdGhlIGZvY3VzIHJpbmcgb25seTogbm8gb3ZlcmZsb3cgY2xpcHBpbmcsIHRoZSByb3VuZGVkIGNvcm5lcnMgd291bGQgY3V0IHRoZSB0aXRsZSAodGhlIHRpdGxlXG4gICAgICAgICAgICAgICBjbGlwcyBpdHNlbGYgd2l0aCBhbiBlbGxpcHNpcykgKi9cbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtc3RlcHMtaXRlbS1saW5rLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yIHZhcigtLXAtc3RlcHMtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcC1zdGVwcy10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbGluay1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXN0ZXBzLWl0ZW0tbGluay1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXN0ZXBzLWl0ZW0tbGluay1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC1zdGVwcy1pdGVtLWxpbmstZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc3RlcHMtaXRlbS1saW5rLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtc3RlcHMtbnVtYmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItY29sb3IpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItc2hhZG93KTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLXAtc3RlcHMtaXRlbS1udW1iZXItc2l6ZSk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLXNpemUpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLXNpemUpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgICAgICAgICAgLnAtc3RlcHMtbnVtYmVyLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtaWNvbi1zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC1zdGVwcy10aXRsZSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zdGVwcy1pdGVtLWxhYmVsLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC1zdGVwcy1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgLnAtc3RlcHMtbnVtYmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXN0ZXBzLWl0ZW0tbnVtYmVyLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1hY3RpdmUtY29sb3IpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1zdGVwcy1pdGVtLW51bWJlci1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogbm8gc2VwYXJhdGUgYWN0aXZlIGZvbnQtd2VpZ2h0IHRva2VuLCB0aGUgYWN0aXZlIGxhYmVsIG9ubHkgY2hhbmdlcyBpdHMgY29sb3IgKi9cbiAgICAgICAgICAgIC5wLXN0ZXBzLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC1zdGVwcy1pdGVtLWxhYmVsLWFjdGl2ZS1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC1zdGVwcy1pdGVtLnAtc3RhdGUtaGlnaGxpZ2h0Om5vdCgucC1zdGVwcy1pdGVtLWV4ZWN1dGFibGUpIC5wLW1lbnVpdGVtLWxpbmssXG4gICAgLnAtc3RlcHMtaXRlbS5wLXN0YXRlLWRpc2FibGVkIC5wLW1lbnVpdGVtLWxpbmsge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLnAtc3RlcHMtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgLnAtc3RlcHMtaXRlbSAucC1zdGVwcy10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC1zdGVwczpub3QoLnAtc3RlcHMtcmVhZG9ubHkpIC5wLXN0ZXBzLWl0ZW0ucC1zdGVwcy1pdGVtLWV4ZWN1dGFibGUgLnAtbWVudWl0ZW0tbGluayB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwgIi8qXG4gKiBUYWJNZW51OiBwOnRhYk1lbnVcbiAqXG4gKiBNYXJrdXA6IC5wLXRhYm1lbnUgPiB1bC5wLXRhYm1lbnUtbmF2ID4gbGkucC10YWJtZW51aXRlbSAocC1zdGF0ZS1hY3RpdmUsIHAtc3RhdGUtaG92ZXIsIHAtbWVudWl0ZW0tb3V0bGluZSA9IGtleWJvYXJkIGZvY3VzKSA+IGFcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXRhYnMtYm90dG9tLCBwLXRhYnMtbGVmdCwgcC10YWJzLXJpZ2h0XG4gKiBNZW51aXRlbSBiYWRnZXMgYXJlIHJlbmRlcmVkIGFzIGxpLnAtb3ZlcmxheS1iYWRnZSA+IC5wLWJhZGdlIChiYWRnZS9iYWRnZS5jc3MpLCB0aGUgbmF2IGtlZXBzIHJvb20gYWJvdmUgdGhlIGl0ZW1zIGZvciB0aGVtLlxuICovXG5cbi5wLXRhYm1lbnUge1xuICAgIC5wLXRhYm1lbnUtbmF2IHtcbiAgICAgICAgLyogbm8gdG9rZW46IHJvb20gYWJvdmUgdGhlIGl0ZW1zIGZvciBhIG1lbnVpdGVtIGJhZGdlLCBoYWxmIG9mIHRoZSBiYWRnZSBoZWlnaHQgKi9cbiAgICAgICAgbWFyZ2luOiBjYWxjKHZhcigtLXAtYmFkZ2UtaGVpZ2h0KSAvIC0yKSAwIDAgMDtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1wLWJhZGdlLWhlaWdodCkgLyAyKSAwIDAgMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJtZW51LXRhYmxpc3QtYmFja2dyb3VuZCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLXRhYm1lbnUtdGFibGlzdC1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtdGFibGlzdC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdGFibWVudWl0ZW0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJtZW51LWl0ZW0tYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJtZW51LWl0ZW0tY29sb3IpO1xuICAgICAgICAgICAgLyogbm8gaXRlbSBtYXJnaW4gdG9rZW46IHRoZSB0YWJsaXN0IGxpbmUgaXMgdGhlIG5hdiA6OmJlZm9yZSAoaW5zaWRlIHRoZSBzY3JvbGxpbmcgbmF2KSwgdGhlIGl0ZW1zIGFscmVhZHkgb3ZlcmxhcCBpdCAqL1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10YWJtZW51LWl0ZW0tYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10YWJtZW51LWl0ZW0tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC10YWJtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3JkZXItY29sb3IgdmFyKC0tcC10YWJtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIGNvbG9yIHZhcigtLXAtdGFibWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRhYm1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1wLXRhYm1lbnUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1jb2xvcik7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10YWJtZW51LWl0ZW0tcGFkZGluZyk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdGFibWVudS1pdGVtLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1nYXApO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC10YWJtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAgICAgLnAtbWVudWl0ZW0taWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC10YWJtZW51LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLnAtc3RhdGUtYWN0aXZlKTpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFibWVudS1pdGVtLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWFjdGl2ZSk6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciBhLFxuICAgICAgICAgICAgJi5wLXN0YXRlLWhvdmVyIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWFjdGl2ZSk6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciBhIC5wLW1lbnVpdGVtLWljb24sXG4gICAgICAgICAgICAmLnAtc3RhdGUtaG92ZXIgYSAucC1tZW51aXRlbS1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJtZW51LWl0ZW0taWNvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFibWVudS1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFibWVudS1pdGVtLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1hY3RpdmUtY29sb3IpO1xuXG4gICAgICAgICAgICAgICAgICAgIC5wLW1lbnVpdGVtLWljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFibWVudS1pdGVtLWljb24tYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogdGhlIHdpZGdldCBhZGRzIHAtbWVudWl0ZW0tb3V0bGluZSBvbiBldmVyeSBmb2N1cyBvZiB0aGUgaXRlbSwgYWxzbyBhZnRlciBhIGNsaWNrOiByaW5nIGZvciBrZXlib2FyZCBmb2N1cyBvbmx5ICovXG4gICAgICAgICAgICAmLnAtbWVudWl0ZW0tb3V0bGluZTpmb2N1cy12aXNpYmxlLFxuICAgICAgICAgICAgJjpoYXMoPiBhOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXRhYm1lbnUtaXRlbS1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXRhYm1lbnUtaXRlbS1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXRhYm1lbnUtaXRlbS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10YWJtZW51LWl0ZW0tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdGFibWVudS1pdGVtLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBib3R0b20gKG5vIHRva2VuOiB0aGUgYm9yZGVyIHdpZHRoIHRva2VucyBkZXNjcmliZSB0aGUgZWRnZXMgb2YgYSB0b3AgdGFibGlzdCwgdGhlIG90aGVyIG9yaWVudGF0aW9ucyBrZWVwIGEgMXB4IGxpbmUpICovXG4ucC10YWJtZW51LnAtdGFicy1ib3R0b20gLnAtdGFibWVudS1uYXYge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4IDAgMCAwO1xuICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAucC10YWJtZW51aXRlbSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4IDAgMCAwO1xuICAgIH1cbn1cblxuLyogbGVmdCAqL1xuLnAtdGFibWVudS5wLXRhYnMtbGVmdCAucC10YWJtZW51LW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAxcHggMCAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAucC10YWJtZW51aXRlbSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAxcHggMCAwO1xuICAgIH1cbn1cblxuLyogcmlnaHQgKi9cbi5wLXRhYm1lbnUucC10YWJzLXJpZ2h0IC5wLXRhYm1lbnUtbmF2IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMCAxcHg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLnAtdGFibWVudWl0ZW0ge1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAwIDFweDtcbiAgICB9XG59XG5cbi8qIHRoZSBob3Zlci9hY3RpdmUgYm9yZGVyIGNvbG9ycyBtdXN0IHdpbiBvdmVyIHRoZSBvcmllbnRhdGlvbiBib3JkZXJzIGFib3ZlICovXG4ucC10YWJtZW51OmlzKC5wLXRhYnMtYm90dG9tLCAucC10YWJzLWxlZnQsIC5wLXRhYnMtcmlnaHQpIC5wLXRhYm1lbnUtbmF2IC5wLXRhYm1lbnVpdGVtIHtcbiAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFibWVudS1pdGVtLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10YWJtZW51LWl0ZW0tYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBUYWJWaWV3OiBwOnRhYlZpZXcgKC5wLXRhYnMpXG4gKlxuICogdWwucC10YWJzLW5hdiA9IFByaW1lVUlYIHRhYmxpc3QsIGxpLnAtdGFicy1oZWFkZXIgPSB0YWIsIC5wLXRhYnMtcGFuZWxzID0gdGFicGFuZWxzLlxuICogUEYgaGFzIG5vIGFjdGl2ZSBiYXIgZWxlbWVudCwgdGhlIGFjdGl2ZSBiYXIgaXMgdGhlIDo6YWZ0ZXIgb2YgdGhlIGFjdGl2ZSB0YWIgYW5kIGZvbGxvd3MgdGhlIG9yaWVudGF0aW9uLlxuICogVGhlIHRhYmxpc3QgaXMgYSBmbGV4IGNvbnRhaW5lciwgc28gdGhlIGxpLnAtdGFicy1hY3Rpb25zIChnbG9iYWwgYW5kIHBlciB0YWIpIGFyZSBmbGV4IGl0ZW1zIChvcmRlci9tYXJnaW4sIG5vIGZsb2F0cykuXG4gKiBTdGF0ZXM6IHAtdGFicy10b3AgfCAtYm90dG9tIHwgLWxlZnQgfCAtcmlnaHQsIHAtdGFicy1zY3JvbGxhYmxlLFxuICogICAgICAgICBwLXN0YXRlLWFjdGl2ZSwgcC1zdGF0ZS1ob3ZlciwgcC1zdGF0ZS1kaXNhYmxlZCwgcC1zdGF0ZS1lcnJvciBvbiBhIHRhYixcbiAqICAgICAgICAgcC10YWJzLXJ0bCwgcC10YWJzLW91dGxpbmUgKGtleWJvYXJkIGZvY3VzLCBzZXQgYnkgdGhlIHdpZGdldClcbiAqL1xuLnAtdGFicyB7XG4gICAgLyogY29udGFpbmluZyBibG9jayBvZiB0aGUgdmVydGljYWwgYWN0aW9ucyBhbmQgdGhlIHNjcm9sbGVyICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLyogdGFibGlzdCAqL1xuICAgIC5wLXRhYnMtbmF2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFicy10YWJsaXN0LWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFicy10YWJsaXN0LWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10YWJzLXRhYmxpc3QtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgICAgICAvKiBHaXRIdWIgIzEyMzM4IG1lbnUgaW5zaWRlIHRhYnMgKi9cbiAgICAgICAgICAgIC5wLW1lbnUtbGlzdCB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXRhYnMtc2VsZWN0ZWQgYSxcbiAgICAgICAgICAgICYucC1zdGF0ZS1kaXNhYmxlZCBhIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gLnAtdGFicy1jbG9zZS1pY29uIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHRhYiAqL1xuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1wLXRhYnMtdGFiLWdhcCk7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1wLXRhYnMtdGFiLW1hcmdpbik7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10YWJzLXRhYi1wYWRkaW5nKTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXAtdGFicy10YWItZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10YWJzLXRhYi1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJzLXRhYi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJzLXRhYi1jb2xvcik7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdGFicy10YWItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFicy10YWItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC10YWJzLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3JkZXItY29sb3IgdmFyKC0tcC10YWJzLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgICAgICBjb2xvciB2YXIoLS1wLXRhYnMtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC10YWJzLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtdGFicy10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRhYnMtdGFiLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tcC10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyIC5wLXRhYnMtY2xvc2UtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10YWJzLWNsb3NlLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBhY3RpdmUgYmFyOiBob3Jpem9udGFsIGF0IHRoZSBib3R0b20gb2YgdGhlIHRhYiAodG9wIG9yaWVudGF0aW9uKSAqL1xuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmU6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiB2YXIoLS1wLXRhYnMtYWN0aXZlLWJhci1ib3R0b20pO1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10YWJzLWFjdGl2ZS1iYXItaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdGFicy10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyLnAtc3RhdGUtaG92ZXIsXG4gICAgICAgICAgICAmLnAtdGFicy1oZWFkZXI6bm90KC5wLXN0YXRlLWFjdGl2ZSwgLnAtc3RhdGUtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYnMtdGFiLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10YWJzLXRhYi1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYnMtdGFiLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyLnAtc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYnMtdGFiLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdGFicy10YWItYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFicy10YWItYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyLnAtc3RhdGUtYWN0aXZlOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJzLWFjdGl2ZS1iYXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIGludmFsaWQ6IFByaW1lRmFjZXMgdG9rZW5zICovXG4gICAgICAgICAgICAmLnAtdGFicy1oZWFkZXIucC1zdGF0ZS1lcnJvcixcbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlci5wLXN0YXRlLWVycm9yOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYnMtdGFiLWludmFsaWQtY29sb3IpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10YWJzLXRhYi1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIGFjdGl2ZTogdGhlIGludmFsaWQgdGV4dCBjb2xvciB3b3VsZCBzaXQgb24gdGhlIGFjdGl2ZSB0YWIgYmFja2dyb3VuZCAoTm9yYTogcHJpbWFyeSkgKi9cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlci5wLXN0YXRlLWVycm9yLnAtc3RhdGUtYWN0aXZlLFxuICAgICAgICAgICAgJi5wLXRhYnMtaGVhZGVyLnAtc3RhdGUtZXJyb3IucC1zdGF0ZS1hY3RpdmU6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFicy10YWItYWN0aXZlLWludmFsaWQtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtdGFicy1oZWFkZXIucC1zdGF0ZS1lcnJvci5wLXN0YXRlLWFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFicy1hY3RpdmUtYmFyLWludmFsaWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC10YWJzLWhlYWRlcjpub3QoLnAtc3RhdGUtZGlzYWJsZWQpOmhhcyg+IGE6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC10YWJzLXRhYi1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXRhYnMtdGFiLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdGFicy10YWItZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdGFicy10YWItZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdGFicy10YWItZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBhY3Rpb25zIGZhY2V0ICovXG4gICAgICAgICAgICAmLnAtdGFicy1hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpLnAtdGFicy1hY3Rpb25zW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8qIGZvb3RlciBmYWNldCAqL1xuICAgIC5wLXRhYnMtZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC10YWJzLXRhYnBhbmVsLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhYnMtdGFicGFuZWwtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhYnMtdGFicGFuZWwtY29sb3IpO1xuICAgIH1cblxuICAgIC8qIHRhYnBhbmVscyAqL1xuICAgIC5wLXRhYnMtcGFuZWxzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJzLXRhYnBhbmVsLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJzLXRhYnBhbmVsLWNvbG9yKTtcblxuICAgICAgICAucC10YWJzLXBhbmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdGFicy10YWJwYW5lbC1wYWRkaW5nKTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdGFicy10YWJwYW5lbC1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXRhYnMtdGFicGFuZWwtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10YWJzLXRhYnBhbmVsLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRhYnMtdGFicGFuZWwtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdGFicy10YWJwYW5lbC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC10YWJzLXBhbmVsIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cblxuICAgIC8qIHRvcCAvIGJvdHRvbSAqL1xuICAgICYucC10YWJzLXRvcCA+IC5wLXRhYnMtbmF2LFxuICAgICYucC10YWJzLWJvdHRvbSA+IC5wLXRhYnMtbmF2IHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgICYucC10YWJzLWJvdHRvbSB7XG4gICAgICAgIC8qIGJvdHRvbTogdGhlIHRhYmxpc3QgYm9yZGVyIGFuZCB0aGUgYWN0aXZlIGJhciBtb3ZlIHRvIHRoZSB0b3AgZWRnZSAqL1xuICAgICAgICA+IC5wLXRhYnMtbmF2LFxuICAgICAgICA+IC5wLXRhYnMtbmF2c2Nyb2xsZXIgPiAucC10YWJzLW5hdiB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgICAgICAvKiBubyB0b2tlbjogdGhlIHRhYmxpc3QgYm9yZGVyIHRva2VuIG9ubHkgZGVzY3JpYmVzIHRoZSBib3R0b20gZWRnZSBvZiBhIHRvcCB0YWJsaXN0ICovXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcC10YWJzLXRhYmxpc3QtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLnAtdGFicy1uYXYgPiBsaS5wLXRhYnMtaGVhZGVyOjphZnRlcixcbiAgICAgICAgPiAucC10YWJzLW5hdnNjcm9sbGVyID4gLnAtdGFicy1uYXYgPiBsaS5wLXRhYnMtaGVhZGVyOjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IHZhcigtLXAtdGFicy1hY3RpdmUtYmFyLWJvdHRvbSk7XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBsZWZ0IC8gcmlnaHQ6IHZlcnRpY2FsIHRhYmxpc3QgKi9cbiAgICAmLnAtdGFicy1sZWZ0ID4gLnAtdGFicy1uYXYsXG4gICAgJi5wLXRhYnMtcmlnaHQgPiAucC10YWJzLW5hdiB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICB9XG5cbiAgICAmLnAtdGFicy1sZWZ0ID4gLnAtdGFicy1uYXYgbGksXG4gICAgJi5wLXRhYnMtcmlnaHQgPiAucC10YWJzLW5hdiBsaSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgJi5wLXRhYnMtbGVmdCA+IC5wLXRhYnMtbmF2IGxpIGEsXG4gICAgJi5wLXRhYnMtcmlnaHQgPiAucC10YWJzLW5hdiBsaSBhIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICB9XG5cbiAgICAmLnAtdGFicy1sZWZ0ID4gLnAtdGFicy1uYXYgPiBsaS5wLXRhYnMtaGVhZGVyLFxuICAgICYucC10YWJzLXJpZ2h0ID4gLnAtdGFicy1uYXYgPiBsaS5wLXRhYnMtaGVhZGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5wLXRhYnMtbGVmdCA+IC5wLXRhYnMtcGFuZWxzLFxuICAgICYucC10YWJzLXJpZ2h0ID4gLnAtdGFicy1wYW5lbHMge1xuICAgICAgICB3aWR0aDogNzUlO1xuICAgIH1cblxuICAgICYucC10YWJzLWxlZnQgLnAtdGFicy1hY3Rpb25zLFxuICAgICYucC10YWJzLXJpZ2h0IC5wLXRhYnMtYWN0aW9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYucC10YWJzLWxlZnQgPiAucC10YWJzLW5hdiB7XG4gICAgICAgIC8qIG5vIHRva2VuOiBzZWUgYm90dG9tIG9yaWVudGF0aW9uICovXG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLXAtdGFicy10YWJsaXN0LWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXRhYnMtcmlnaHQge1xuICAgICAgICA+IC5wLXRhYnMtbmF2IHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIC8qIG5vIHRva2VuOiBzZWUgYm90dG9tIG9yaWVudGF0aW9uICovXG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLXAtdGFicy10YWJsaXN0LWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5wLXRhYnMtcGFuZWxzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXRhYnMtbGVmdCA+IC5wLXRhYnMtbmF2ID4gbGkucC10YWJzLWhlYWRlcjo6YWZ0ZXIsXG4gICAgJi5wLXRhYnMtcmlnaHQgPiAucC10YWJzLW5hdiA+IGxpLnAtdGFicy1oZWFkZXI6OmFmdGVyIHtcbiAgICAgICAgaW5zZXQtYmxvY2s6IDA7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXRhYnMtYWN0aXZlLWJhci1oZWlnaHQpO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5wLXRhYnMtbGVmdCA+IC5wLXRhYnMtbmF2ID4gbGkucC10YWJzLWhlYWRlcjo6YWZ0ZXIge1xuICAgICAgICBpbnNldC1pbmxpbmU6IGF1dG8gdmFyKC0tcC10YWJzLWFjdGl2ZS1iYXItYm90dG9tKTtcbiAgICB9XG5cbiAgICAmLnAtdGFicy1yaWdodCA+IC5wLXRhYnMtbmF2ID4gbGkucC10YWJzLWhlYWRlcjo6YWZ0ZXIge1xuICAgICAgICBpbnNldC1pbmxpbmU6IHZhcigtLXAtdGFicy1hY3RpdmUtYmFyLWJvdHRvbSkgYXV0bztcbiAgICB9XG5cbiAgICAvKiBzY3JvbGxhYmxlOiBuYXYgYnV0dG9ucyAqL1xuICAgIC5wLXRhYnMtbmF2c2Nyb2xsZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcC10YWJzLW5hdi1idXR0b24td2lkdGgpO1xuXG4gICAgICAgICYucC10YWJzLW5hdnNjcm9sbGVyLWJ0bi1oaWRkZW4ge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdGFicy1uYXZzY3JvbGxlci1idG4ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC10YWJzLW5hdi1idXR0b24td2lkdGgpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJzLW5hdi1idXR0b24tYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWJzLW5hdi1idXR0b24tY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRhYnMtbmF2LWJ1dHRvbi1zaGFkb3cpO1xuICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1wLXRhYnMtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC10YWJzLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC10YWJzLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmLnAtdGFicy1uYXZzY3JvbGxlci1idG4tbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wLXRhYnMtbmF2c2Nyb2xsZXItYnRuLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtdGFicy1wcmV2LWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdGFicy1wcmV2LWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucC10YWJzLW5leHQtaWNvbiB7XG4gICAgICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10YWJzLW5leHQtaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1zdGF0ZS1ob3ZlcixcbiAgICAgICAgICAgICY6bm90KC5wLXN0YXRlLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWJzLW5hdi1idXR0b24tYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFicy1uYXYtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdGFicy1uYXYtYnV0dG9uLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdGFicy1uYXYtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdGFicy1uYXYtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRhYnMtbmF2LWJ1dHRvbi1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10YWJzLW5hdi1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtdGFicy1uYXZzY3JvbGxlci1idG4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC10YWJzLW5hdnNjcm9sbGVyLnAtdGFicy1uYXZzY3JvbGxlci1idG4taGlkZGVuIC5wLXRhYnMtbmF2c2Nyb2xsZXItYnRuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qIHZlcnRpY2FsIHRhYmxpc3Q6IHRoZSBuYXYgZmxvYXRzIG5leHQgdG8gdGhlIHBhbmVscyAqL1xuLnAtdGFicy1sZWZ0OjphZnRlcixcbi5wLXRhYnMtcmlnaHQ6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIi5cIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ucC10YWJzLWxlZnQge1xuICAgID4gLnAtdGFicy1uYXYge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICA+IC5wLXRhYnMtcGFuZWxzIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5cbi5wLXRhYnMtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLnAtdGFicy1zY3JvbGxhYmxlID4gLnAtdGFicy1uYXZzY3JvbGxlciA+IC5wLXRhYnMtbmF2IHtcbiAgICB3aWR0aDogNTAwMHB4O1xufVxuXG4ucC10YWJzLW91dGxpbmUge1xuICAgIHotaW5kZXg6IDE7XG59XG4iLCAiLypcbiAqIFRhZzogcDp0YWdcbiAqXG4gKiBNYXJrdXA6IHNwYW4ucC10YWcgPiBzcGFuLnAtdGFnLWljb24/LCBzcGFuLnAtdGFnLXZhbHVlXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC10YWctc3VjY2VzcyB8IC1pbmZvIHwgLXdhcm5pbmcgfCAtZGFuZ2VyIHwgLXNlY29uZGFyeSB8IC1oZWxwLCBwLXRhZy1yb3VuZGVkLCBwLXRhZy1vdXRsaW5lZCxcbiAqICAgICAgICAgICAgICAgICAgICBwLXRhZy1jb250cmFzdCAoc3R5bGVDbGFzcyBvbmx5LCB0aGUgc2V2ZXJpdHkgYXR0cmlidXRlIGRvZXMgbm90IGtub3cgaXQpXG4gKi9cblxuLnAtdGFnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcC10YWctZ2FwKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZy1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1wcmltYXJ5LWNvbG9yKTtcbiAgICBmb250LXNpemU6IHZhcigtLXAtdGFnLWZvbnQtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdGFnLWZvbnQtd2VpZ2h0KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLXRhZy1wYWRkaW5nKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRhZy1ib3JkZXItcmFkaXVzKTtcblxuICAgIC5wLXRhZy1pY29uLFxuICAgIC5wLXRhZy12YWx1ZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO1xuICAgIH1cblxuICAgIC8qIHRhZyB1c2VkIGFzIHBsYWluIHN0eWxlQ2xhc3MgKGUuZy4gPHNwYW4gY2xhc3M9XCJwLXRhZ1wiPikgKi9cbiAgICAmOm5vdCgucC13aWRnZXQpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgICYucC10YWctc3VjY2VzcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFnLXN1Y2Nlc3MtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1zdWNjZXNzLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtdGFnLWluZm8ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZy1pbmZvLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctaW5mby1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXRhZy13YXJuaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWctd2Fybi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLXdhcm4tY29sb3IpO1xuICAgIH1cblxuICAgICYucC10YWctZGFuZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWctZGFuZ2VyLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctZGFuZ2VyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLnAtdGFnLXNlY29uZGFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdGFnLXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLXNlY29uZGFyeS1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXRhZy1oZWxwIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWctaGVscC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLWhlbHAtY29sb3IpO1xuICAgIH1cblxuICAgICYucC10YWctY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZy1jb250cmFzdC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLWNvbnRyYXN0LWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiBvdXRsaW5lZCAob3V0bGluZWQ9XCJ0cnVlXCIpOiB0aGUgYm9yZGVyIGlzIGFuIGluc2V0IHNoYWRvdywgc28gb3V0bGluZWQgYW5kIGZpbGxlZCB0YWdzIGhhdmUgdGhlIHNhbWUgc2l6ZSAqL1xuICAgICYucC10YWctb3V0bGluZWQge1xuICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLXByaW1hcnktYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWctb3V0bGluZWQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1wcmltYXJ5LWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgdmFyKC0tcC10YWctb3V0bGluZWQtYm9yZGVyLXdpZHRoKSB2YXIoLS1fYm9yZGVyLWNvbG9yKTtcblxuICAgICAgICAmLnAtdGFnLXN1Y2Nlc3Mge1xuICAgICAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1zdWNjZXNzLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtc3VjY2Vzcy1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtdGFnLWluZm8ge1xuICAgICAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1pbmZvLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtaW5mby1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtdGFnLXdhcm5pbmcge1xuICAgICAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC13YXJuLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtd2Fybi1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtdGFnLWRhbmdlciB7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLWRhbmdlci1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLWRhbmdlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtdGFnLXNlY29uZGFyeSB7XG4gICAgICAgICAgICAtLV9ib3JkZXItY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnLW91dGxpbmVkLXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtdGFnLWhlbHAge1xuICAgICAgICAgICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1oZWxwLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtaGVscC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtdGFnLWNvbnRyYXN0IHtcbiAgICAgICAgICAgIC0tX2JvcmRlci1jb2xvcjogdmFyKC0tcC10YWctb3V0bGluZWQtY29udHJhc3QtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRhZy1vdXRsaW5lZC1jb250cmFzdC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtdGFnLXJvdW5kZWQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRhZy1yb3VuZGVkLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC5wLXRhZy1pY29uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXAtdGFnLWljb24tc2l6ZSk7XG4gICAgfVxuXG4gICAgLyogaW5saW5lLWJsb2NrIHZhcmlhbnQgaGFzIG5vIGZsZXggZ2FwICovXG4gICAgJjpub3QoLnAtd2lkZ2V0KSAucC10YWctaWNvbiB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXRhZy1nYXApO1xuICAgIH1cbn1cbiIsICIvKlxuICogVGFnQ2xvdWQ6IHA6dGFnQ2xvdWQgKFByaW1lRmFjZXMgdGFnY2xvdWQgdG9rZW5zOiBjb250ZW50IHRva2VucyBmb3IgdGhlIGNvbnRhaW5lciwgdGFnIHRva2VucyBmb3IgdGhlIGxpbmtzKVxuICpcbiAqIFN1cHBvcnRlZCBjbGFzc2VzOiBwLXRhZ2Nsb3VkLXN0cmVuZ3RoLTEgLi4gcC10YWdjbG91ZC1zdHJlbmd0aC01XG4gKi9cblxuLnAtdGFnY2xvdWQge1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXRhZ2Nsb3VkLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC10YWdjbG91ZC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tcC10YWdjbG91ZC1jb2xvcik7XG4gICAgcGFkZGluZzogdmFyKC0tcC10YWdjbG91ZC1wYWRkaW5nKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRhZ2Nsb3VkLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLXRhZ2Nsb3VkLWdhcCk7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBsaSBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdGFnY2xvdWQtaXRlbS1wYWRkaW5nKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdGFnY2xvdWQtaXRlbS1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdGFnY2xvdWQtaXRlbS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tcC10YWdjbG91ZC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10YWdjbG91ZC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC10YWdjbG91ZC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXRhZ2Nsb3VkLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRhZ2Nsb3VkLWl0ZW0taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10YWdjbG91ZC1pdGVtLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXRhZ2Nsb3VkLWl0ZW0tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10YWdjbG91ZC1pdGVtLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdGFnY2xvdWQtaXRlbS1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRhZ2Nsb3VkLWl0ZW0tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10YWdjbG91ZC1pdGVtLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtdGFnY2xvdWQtc3RyZW5ndGgtMSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLXRhZ2Nsb3VkLXN0cmVuZ3RoLTEtZm9udC1zaXplKTtcbn1cblxuLnAtdGFnY2xvdWQtc3RyZW5ndGgtMiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLXRhZ2Nsb3VkLXN0cmVuZ3RoLTItZm9udC1zaXplKTtcbn1cblxuLnAtdGFnY2xvdWQtc3RyZW5ndGgtMyB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLXRhZ2Nsb3VkLXN0cmVuZ3RoLTMtZm9udC1zaXplKTtcbn1cblxuLnAtdGFnY2xvdWQtc3RyZW5ndGgtNCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLXRhZ2Nsb3VkLXN0cmVuZ3RoLTQtZm9udC1zaXplKTtcbn1cblxuLnAtdGFnY2xvdWQtc3RyZW5ndGgtNSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wLXRhZ2Nsb3VkLXN0cmVuZ3RoLTUtZm9udC1zaXplKTtcbn1cbiIsICIvKlxuICogVGllcmVkTWVudTogcDp0aWVyZWRNZW51XG4gKlxuICogVGhlIHRpZXJlZCBtYXJrdXAgKC5wLW1lbnUtcGFyZW50ID4gLnAtbWVudS1jaGlsZCBvdmVybGF5IHN1Ym1lbnVzLCBpdGVtIGhvdmVyIC8gYWN0aXZlIHN0YXRlcykgaXMgc2hhcmVkIHdpdGhcbiAqIHA6bWVudWJhciwgcDptZWdhTWVudSBhbmQgcDpjb250ZXh0TWVudSBhbmQgc3R5bGVkIGJ5IG1lbnUvbWVudS5iYXNlLmNzczsgdGhpcyBmaWxlIG9ubHkgbWFwcyB0aGUgdGllcmVkbWVudSB0b2tlbnMuXG4gKi9cblxuLnAtbWVudS5wLXRpZXJlZG1lbnUge1xuICAgIC0tX2JnOiB2YXIoLS1wLXRpZXJlZG1lbnUtYmFja2dyb3VuZCk7XG4gICAgLS1fYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRpZXJlZG1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9ib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRpZXJlZG1lbnUtYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1fY29sb3I6IHZhcigtLXAtdGllcmVkbWVudS1jb2xvcik7XG4gICAgLS1fc2hhZG93OiB2YXIoLS1wLXRpZXJlZG1lbnUtc2hhZG93KTtcbiAgICAtLV9saXN0LXBhZGRpbmc6IHZhcigtLXAtdGllcmVkbWVudS1saXN0LXBhZGRpbmcpO1xuICAgIC0tX2xpc3QtZ2FwOiB2YXIoLS1wLXRpZXJlZG1lbnUtbGlzdC1nYXApO1xuICAgIC0tX3RyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtdGllcmVkbWVudS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAtLV9pdGVtLWJvcmRlci1yYWRpdXM6IHZhcigtLXAtdGllcmVkbWVudS1pdGVtLWJvcmRlci1yYWRpdXMpO1xuICAgIC0tX2l0ZW0tcGFkZGluZzogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tcGFkZGluZyk7XG4gICAgLS1faXRlbS1nYXA6IHZhcigtLXAtdGllcmVkbWVudS1pdGVtLWdhcCk7XG4gICAgLS1faXRlbS1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tY29sb3IpO1xuICAgIC0tX2l0ZW0tZm9jdXMtYmFja2dyb3VuZDogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tZm9jdXMtYmFja2dyb3VuZCk7XG4gICAgLS1faXRlbS1mb2N1cy1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tZm9jdXMtY29sb3IpO1xuICAgIC0tX2l0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLXAtdGllcmVkbWVudS1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9pdGVtLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgICAtLV9pdGVtLWljb24tY29sb3I6IHZhcigtLXAtdGllcmVkbWVudS1pdGVtLWljb24tY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1mb2N1cy1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0taWNvbi1mb2N1cy1jb2xvcik7XG4gICAgLS1faXRlbS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LWl0ZW0taWNvbi1hY3RpdmUtY29sb3IpO1xuICAgIC0tX2l0ZW0taWNvbi1zaXplOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1pY29uLXNpemUpO1xuICAgIC0tX2l0ZW0tbGFiZWwtZm9udC1zaXplOiB2YXIoLS1wLXRpZXJlZG1lbnUtaXRlbS1sYWJlbC1mb250LXNpemUpO1xuICAgIC0tX2l0ZW0tbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLXAtdGllcmVkbWVudS1pdGVtLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAtLV9zdWJtZW51LWljb24tY29sb3I6IHZhcigtLXAtdGllcmVkbWVudS1zdWJtZW51LWljb24tY29sb3IpO1xuICAgIC0tX3N1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LXN1Ym1lbnUtaWNvbi1mb2N1cy1jb2xvcik7XG4gICAgLS1fc3VibWVudS1pY29uLXNpemU6IHZhcigtLXAtdGllcmVkbWVudS1zdWJtZW51LWljb24tc2l6ZSk7XG4gICAgLS1fc3VibWVudS1pY29uLWFjdGl2ZS1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LXN1Ym1lbnUtaWNvbi1hY3RpdmUtY29sb3IpO1xuICAgIC0tX3NlcGFyYXRvci1ib3JkZXItY29sb3I6IHZhcigtLXAtdGllcmVkbWVudS1zZXBhcmF0b3ItYm9yZGVyLWNvbG9yKTtcbiAgICAtLV9zdWJtZW51LWJhY2tncm91bmQ6IHZhcigtLXAtdGllcmVkbWVudS1iYWNrZ3JvdW5kKTtcbiAgICAtLV9zdWJtZW51LWJvcmRlci1jb2xvcjogdmFyKC0tcC10aWVyZWRtZW51LWJvcmRlci1jb2xvcik7XG4gICAgLS1fc3VibWVudS1ib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRpZXJlZG1lbnUtYm9yZGVyLXJhZGl1cyk7XG4gICAgLS1fc3VibWVudS1wYWRkaW5nOiB2YXIoLS1wLXRpZXJlZG1lbnUtbGlzdC1wYWRkaW5nKTtcbiAgICAtLV9zdWJtZW51LXNoYWRvdzogdmFyKC0tcC10aWVyZWRtZW51LXNoYWRvdyk7XG59XG4iLCAiLypcbiAqIFRvZ2dsZVN3aXRjaDogcDp0b2dnbGVTd2l0Y2hcbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC10b2dnbGVzd2l0Y2gtY2hlY2tlZCwgcC10b2dnbGVzd2l0Y2gtZm9jdXMsIHAtc3RhdGUtZGlzYWJsZWQsIHAtc3RhdGUtcmVhZG9ubHksXG4gKiAgICAgICAgICAgICAgICAgICAgcC10b2dnbGVzd2l0Y2gtZHVhbC1pY29uIChvbkljb24gKyBvZmZJY29uKSwgcC1zdGF0ZS1lcnJvciAob24gLnAtdG9nZ2xlc3dpdGNoLXNsaWRlciksXG4gKiAgICAgICAgICAgICAgICAgICAgcC10b2dnbGVzd2l0Y2gtc20sIHAtdG9nZ2xlc3dpdGNoLWxnIChzdHlsZUNsYXNzIG9mIHA6dG9nZ2xlU3dpdGNoIG9yIGFueSBwYXJlbnQ6IHNtYWxsIC8gbGFyZ2Ugc3dpdGNoKVxuICpcbiAqIFJUTCAoZGlyPVwicnRsXCIgb24gdGhlIHN3aXRjaCBvciBhbiBhbmNlc3Rvcik6IHRoZSBoYW5kbGUgc3RhcnRzIG9uIHRoZSByaWdodCBhbmQgc2xpZGVzIHRvIHRoZSBsZWZ0LCB0aGUgZHVhbCBpY29uc1xuICogcm9sbCB0aGUgb3RoZXIgd2F5LlxuICovXG4ucC10b2dnbGVzd2l0Y2gtaGFuZGxlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBvbkljb24gLyBvZmZJY29uOiBib3RoIGljb25zIGFyZSBzdGFja2VkIGluIHRoZSBoYW5kbGUsIHRoZSBpbmFjdGl2ZSBvbmUgaXMgcm90YXRlZCBvdXQgKi9cbi5wLXRvZ2dsZXN3aXRjaC1kdWFsLWljb24ge1xuICAgIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXAtdG9nZ2xlc3dpdGNoLXNsaWRlLWR1cmF0aW9uKTtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmcpO1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cbiAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXRvZ2dsZXN3aXRjaC1jaGVja2VkIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHNwYW4ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblxuICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogUlRMOiB0aGUgaGFuZGxlIHJvbGxzIHRvIHRoZSBsZWZ0LCBzbyB0aGUgaWNvbnMgcm90YXRlIHRoZSBvdGhlciB3YXkgKi9cbiAgICAmOmRpcihydGwpIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHNwYW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cbiAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQ6ZGlyKHJ0bCkgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIgc3BhbiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuXG4gICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wLXRvZ2dsZXN3aXRjaCB7XG4gICAgLyogdGhlIHNpemUgY2xhc3NlcyBzZXQgLS1fdG9nZ2xlc3dpdGNoLSogKGEgc2l6ZSB0b2tlbiBtdXN0IG5vdCBiZSByZWRlY2xhcmVkIGZyb20gaXRzZWxmIG9uIHRoZSBzYW1lIGVsZW1lbnQpICovXG4gICAgLS1fd2lkdGg6IHZhcigtLV90b2dnbGVzd2l0Y2gtd2lkdGgsIHZhcigtLXAtdG9nZ2xlc3dpdGNoLXdpZHRoKSk7XG4gICAgLS1faGVpZ2h0OiB2YXIoLS1fdG9nZ2xlc3dpdGNoLWhlaWdodCwgdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGVpZ2h0KSk7XG4gICAgLS1fZ2FwOiB2YXIoLS1fdG9nZ2xlc3dpdGNoLWdhcCwgdmFyKC0tcC10b2dnbGVzd2l0Y2gtZ2FwKSk7XG4gICAgLS1faGFuZGxlLXNpemU6IHZhcigtLV90b2dnbGVzd2l0Y2gtaGFuZGxlLXNpemUsIHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1zaXplKSk7XG4gICAgLS1faGFuZGxlLWljb24tc2l6ZTogdmFyKC0tX3RvZ2dsZXN3aXRjaC1oYW5kbGUtaWNvbi1zaXplLCB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtaWNvbi1zaXplKSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogdmFyKC0tX3dpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLV9oZWlnaHQpO1xuXG4gICAgLnAtdG9nZ2xlc3dpdGNoLXNsaWRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXI6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcC10b2dnbGVzd2l0Y2gtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10b2dnbGVzd2l0Y2gtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLXNoYWRvdyk7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdG9nZ2xlc3dpdGNoLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRvZ2dsZXN3aXRjaC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1wLXRvZ2dsZXN3aXRjaC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRvZ2dsZXN3aXRjaC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tcC10b2dnbGVzd2l0Y2gtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgfVxuXG4gICAgLyogdGhlIGhhbmRsZSBzaXRzIGluc2lkZSB0aGUgc2xpZGVyIGJvcmRlciwgc28gdGhlIGJvcmRlciB3aWR0aCBpcyBzdWJ0cmFjdGVkIGZyb20gdGhlIGdhcCAqL1xuICAgIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWNvbG9yKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLV9oYW5kbGUtc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tX2hhbmRsZS1zaXplKTtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLV9nYXApIC0gdmFyKC0tcC10b2dnbGVzd2l0Y2gtYm9yZGVyLXdpZHRoKSk7XG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1faGFuZGxlLXNpemUpIC8gMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLXNoYWRvdyk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tX2hhbmRsZS1pY29uLXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tX2hhbmRsZS1zaXplKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRvZ2dsZXN3aXRjaC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10b2dnbGVzd2l0Y2gtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICB0cmFuc2Zvcm0gdmFyKC0tcC10b2dnbGVzd2l0Y2gtc2xpZGUtZHVyYXRpb24pIHZhcigtLXAtdHJhbnNpdGlvbi1lYXNpbmcpLCBib3gtc2hhZG93IHZhcigtLXAtdG9nZ2xlc3dpdGNoLXNsaWRlLWR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICAucC10b2dnbGVzd2l0Y2gtaGFuZGxlciBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1faGFuZGxlLWljb24tc2l6ZSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1faGFuZGxlLXNpemUpO1xuICAgIH1cblxuICAgIC8qIGNoZWNrZWQgKi9cbiAgICAmLnAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQge1xuICAgICAgICAucC10b2dnbGVzd2l0Y2gtc2xpZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1jaGVja2VkLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1jaGVja2VkLWNvbG9yKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKHZhcigtLV93aWR0aCkgLSB2YXIoLS1faGFuZGxlLXNpemUpIC0gMiAqIHZhcigtLV9nYXApKSk7XG5cbiAgICAgICAgICAgICY6ZGlyKHJ0bCkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC0xICogKHZhcigtLV93aWR0aCkgLSB2YXIoLS1faGFuZGxlLXNpemUpIC0gMiAqIHZhcigtLV9nYXApKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogaG92ZXIgKi9cbiAgICAmOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCwgLnAtc3RhdGUtcmVhZG9ubHkpOmhvdmVyIHtcbiAgICAgICAgLnAtdG9nZ2xlc3dpdGNoLXNsaWRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtaG92ZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXRvZ2dsZXN3aXRjaC1jaGVja2VkOm5vdCgucC1zdGF0ZS1kaXNhYmxlZCwgLnAtc3RhdGUtcmVhZG9ubHkpOmhvdmVyIHtcbiAgICAgICAgLnAtdG9nZ2xlc3dpdGNoLXNsaWRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1jaGVja2VkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1jaGVja2VkLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10b2dnbGVzd2l0Y2gtaGFuZGxlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtY2hlY2tlZC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtY2hlY2tlZC1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBmb2N1cyAqL1xuICAgICYucC10b2dnbGVzd2l0Y2gtZm9jdXMgLnAtdG9nZ2xlc3dpdGNoLXNsaWRlciB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdG9nZ2xlc3dpdGNoLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdG9nZ2xlc3dpdGNoLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLyogaW52YWxpZDogdGhlIGJvcmRlciBhbHNvIHdpbnMgb3ZlciB0aGUgKGNoZWNrZWQpIGhvdmVyIGJvcmRlciAoc2FtZSBzcGVjaWZpY2l0eSwgbGF0ZXIpICovXG4gICAgLnAtdG9nZ2xlc3dpdGNoLXNsaWRlci5wLXN0YXRlLWVycm9yLFxuICAgICY6aG92ZXIgLnAtdG9nZ2xlc3dpdGNoLXNsaWRlci5wLXN0YXRlLWVycm9yLFxuICAgICYucC10b2dnbGVzd2l0Y2gtY2hlY2tlZDpob3ZlciAucC10b2dnbGVzd2l0Y2gtc2xpZGVyLnAtc3RhdGUtZXJyb3Ige1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiBkaXNhYmxlZDogYSBmbGF0IGRpc2FibGVkIGxvb2sgKG9wYWNpdHkgMSwgdGhlIHNhbWUgdG9rZW5zIGZvciBvbiBhbmQgb2ZmOiBBdXJhLCBMYXJhLCBOb3JhLCBNZXRhbCkgb3IgdGhlXG4gICAgICAgb24gLyBvZmYgbG9vayBkaW1tZWQgKEdsYXNzLCBsaWtlIGlPUykgKi9cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1kaXNhYmxlZC1vcGFjaXR5KTtcblxuICAgICAgICAucC10b2dnbGVzd2l0Y2gtc2xpZGVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdG9nZ2xlc3dpdGNoLWhhbmRsZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWRpc2FibGVkLWJhY2tncm91bmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXRvZ2dsZXN3aXRjaC1jaGVja2VkIHtcbiAgICAgICAgICAgIC5wLXRvZ2dsZXN3aXRjaC1zbGlkZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWNoZWNrZWQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXRvZ2dsZXN3aXRjaC1oYW5kbGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtY2hlY2tlZC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHJlYWRvbmx5ICovXG4gICAgJi5wLXN0YXRlLXJlYWRvbmx5IC5wLXRvZ2dsZXN3aXRjaC1zbGlkZXIge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxufVxuXG4vKiBzaXplczogdGhlIHNpemUgdG9rZW5zIHJlcGxhY2UgdGhlIGJhc2Ugb25lcyAob24gdGhlIHN3aXRjaCBvciBvbiBhbnkgcGFyZW50KSwgdGhyb3VnaCB0aGUgcHJpdmF0ZSAtLV90b2dnbGVzd2l0Y2gtKiAqL1xuLnAtdG9nZ2xlc3dpdGNoLXNtIHtcbiAgICAtLV90b2dnbGVzd2l0Y2gtd2lkdGg6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLXNtLXdpZHRoKTtcbiAgICAtLV90b2dnbGVzd2l0Y2gtaGVpZ2h0OiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1zbS1oZWlnaHQpO1xuICAgIC0tX3RvZ2dsZXN3aXRjaC1nYXA6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLXNtLWdhcCk7XG4gICAgLS1fdG9nZ2xlc3dpdGNoLWhhbmRsZS1zaXplOiB2YXIoLS1wLXRvZ2dsZXN3aXRjaC1oYW5kbGUtc20tc2l6ZSk7XG4gICAgLS1fdG9nZ2xlc3dpdGNoLWhhbmRsZS1pY29uLXNpemU6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1zbS1pY29uLXNpemUpO1xufVxuXG4ucC10b2dnbGVzd2l0Y2gtbGcge1xuICAgIC0tX3RvZ2dsZXN3aXRjaC13aWR0aDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtbGctd2lkdGgpO1xuICAgIC0tX3RvZ2dsZXN3aXRjaC1oZWlnaHQ6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWxnLWhlaWdodCk7XG4gICAgLS1fdG9nZ2xlc3dpdGNoLWdhcDogdmFyKC0tcC10b2dnbGVzd2l0Y2gtbGctZ2FwKTtcbiAgICAtLV90b2dnbGVzd2l0Y2gtaGFuZGxlLXNpemU6IHZhcigtLXAtdG9nZ2xlc3dpdGNoLWhhbmRsZS1sZy1zaXplKTtcbiAgICAtLV90b2dnbGVzd2l0Y2gtaGFuZGxlLWljb24tc2l6ZTogdmFyKC0tcC10b2dnbGVzd2l0Y2gtaGFuZGxlLWxnLWljb24tc2l6ZSk7XG59XG4iLCAiLypcbiAqIFRvb2xiYXI6IHA6dG9vbGJhciAocDp0b29sYmFyR3JvdXAgYWxpZ249XCJsZWZ0XCIgfCBcInJpZ2h0XCIpXG4gKi9cblxuLnAtdG9vbGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiB2YXIoLS1wLXRvb2xiYXItZ2FwKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1wLXRvb2xiYXItcGFkZGluZyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC10b29sYmFyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXRvb2xiYXItY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtdG9vbGJhci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdG9vbGJhci1ib3JkZXItcmFkaXVzKTtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcblxuICAgIC5wLXRvb2xiYXItZ3JvdXAtbGVmdCxcbiAgICAucC10b29sYmFyLWdyb3VwLXJpZ2h0IHtcbiAgICAgICAgZ2FwOiB2YXIoLS1wLXRvb2xiYXItZ2FwKTtcbiAgICB9XG5cbiAgICAvKiBhIGdyb3VwIGFsb25lIG9uIHRoZSByaWdodCBzaWRlIHN0YXlzIG9uIHRoZSByaWdodCAqL1xuICAgIC5wLXRvb2xiYXItZ3JvdXAtcmlnaHQge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgIH1cbn1cblxuLnAtdG9vbGJhci1ncm91cC1sZWZ0LFxuLnAtdG9vbGJhci1ncm91cC1yaWdodCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbiIsICIvKlxuICogVG9vbHRpcDogcDp0b29sdGlwIChhbHNvIHRoZSBnbG9iYWwgdG9vbHRpcCAucC10b29sdGlwLWdsb2JhbCBhbmQgcDptZXNzYWdlIGRpc3BsYXk9XCJ0b29sdGlwXCIpXG4gKlxuICogTWFya3VwOiAucC10b29sdGlwLnAtdG9vbHRpcC17dG9wfHJpZ2h0fGJvdHRvbXxsZWZ0fSA+IC5wLXRvb2x0aXAtYXJyb3csIC5wLXRvb2x0aXAtdGV4dFxuICovXG5cbi5wLXRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1heC13aWR0aDogdmFyKC0tcC10b29sdGlwLW1heC13aWR0aCk7XG5cbiAgICAmLnAtdG9vbHRpcC1yaWdodCxcbiAgICAmLnAtdG9vbHRpcC1sZWZ0IHtcbiAgICAgICAgcGFkZGluZzogMCB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKTtcbiAgICB9XG5cbiAgICAmLnAtdG9vbHRpcC10b3AsXG4gICAgJi5wLXRvb2x0aXAtYm90dG9tIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC10b29sdGlwLWd1dHRlcikgMDtcbiAgICB9XG5cbiAgICAucC10b29sdGlwLXRleHQge1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRvb2x0aXAtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRvb2x0aXAtcGFkZGluZyk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdG9vbHRpcC1zaGFkb3cpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10b29sdGlwLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRvb2x0aXAtZm9udC13ZWlnaHQpO1xuXG4gICAgICAgIC8qIHA6dG9vbHRpcCB3aXRoIGNvbnRlbnQ6IGltYWdlcyBmaXQgaW50byB0aGUgYm94IChtYXggd2lkdGggb2YgdGhlIHRvb2x0aXApICovXG4gICAgICAgIGltZyxcbiAgICAgICAgc3ZnLFxuICAgICAgICB2aWRlbyxcbiAgICAgICAgY2FudmFzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wLXRvb2x0aXAtcmlnaHQgLnAtdG9vbHRpcC1hcnJvdyB7XG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10b29sdGlwLWd1dHRlcikgdmFyKC0tcC10b29sdGlwLWd1dHRlcikgdmFyKC0tcC10b29sdGlwLWd1dHRlcikgMDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXRvb2x0aXAtbGVmdCAucC10b29sdGlwLWFycm93IHtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSAwIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpIHZhcigtLXAtdG9vbHRpcC1ndXR0ZXIpO1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tcC10b29sdGlwLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICYucC10b29sdGlwLXRvcCAucC10b29sdGlwLWFycm93IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcC10b29sdGlwLWd1dHRlcikgdmFyKC0tcC10b29sdGlwLWd1dHRlcikgMCB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKTtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcC10b29sdGlwLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgICYucC10b29sdGlwLWJvdHRvbSAucC10b29sdGlwLWFycm93IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKSB2YXIoLS1wLXRvb2x0aXAtZ3V0dGVyKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tcC10b29sdGlwLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC8qIGludmFsaWQ6IHRoZSB3aWRnZXQgbWFya3MgdGV4dCBhbmQgYXJyb3cgd2hlbiB0aGUgdGFyZ2V0IGlzIHAtc3RhdGUtZXJyb3IgKHA6bWVzc2FnZSBkaXNwbGF5PVwidG9vbHRpcFwiKSAqL1xuICAgIC5wLXRvb2x0aXAtdGV4dC5wLXN0YXRlLWVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10b29sdGlwLWludmFsaWQtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtaW52YWxpZC1jb2xvcik7XG4gICAgfVxuXG4gICAgJi5wLXRvb2x0aXAtcmlnaHQgLnAtdG9vbHRpcC1hcnJvdy5wLXN0YXRlLWVycm9yIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtaW52YWxpZC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmLnAtdG9vbHRpcC1sZWZ0IC5wLXRvb2x0aXAtYXJyb3cucC1zdGF0ZS1lcnJvciB7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1wLXRvb2x0aXAtaW52YWxpZC1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAmLnAtdG9vbHRpcC10b3AgLnAtdG9vbHRpcC1hcnJvdy5wLXN0YXRlLWVycm9yIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcC10b29sdGlwLWludmFsaWQtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgJi5wLXRvb2x0aXAtYm90dG9tIC5wLXRvb2x0aXAtYXJyb3cucC1zdGF0ZS1lcnJvciB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXAtdG9vbHRpcC1pbnZhbGlkLWJhY2tncm91bmQpO1xuICAgIH1cbn1cblxuLnAtdG9vbHRpcC1hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi5wLXRvb2x0aXAtcmlnaHQgLnAtdG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbn1cblxuLnAtdG9vbHRpcC1sZWZ0IC5wLXRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4ucC10b29sdGlwLXRvcCAucC10b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xufVxuXG4ucC10b29sdGlwLWJvdHRvbSAucC10b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xufVxuIiwgIi8qXG4gKiBUcmVlOiBwOnRyZWUgKHZlcnRpY2FsIGFuZCBob3Jpem9udGFsKSwgUHJpbWVVSVggdHJlZSB0b2tlbnNcbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC10cmVlLWhvcml6b250YWwsIHAtdHJlZS1ydGwsIHAtdHJlZS1zZWxlY3RhYmxlLCBwLXN0YXRlLWhvdmVyIC8gcC1zdGF0ZS1oaWdobGlnaHQgKG5vZGUgY29udGVudCksXG4gKiAgICAgICAgICAgICAgICAgICAgcC10cmVlbm9kZS1vdXRsaW5lIChrZXlib2FyZCBmb2N1cyksIHAtdHJlZS1kcm9wcG9pbnQsIHAtdHJlZS1kcmFnaGVscGVyLCBwLXRyZWUtY2hlY2tib3gtYWxsLCBwLW5vYm9yZGVyXG4gKlxuICogVGhlIGNvbm5lY3RvciBsaW5lcyBvZiB0aGUgaG9yaXpvbnRhbCB0cmVlIGFyZSBncmFkaWVudHM7IHRoZSBob3Jpem9udGFsIHRyZWUgdXNlcyBsb2dpY2FsIHByb3BlcnRpZXMsIHNvIGl0IG1pcnJvcnNcbiAqIGluIFJUTCAocC10cmVlLXJ0bCBvciBkaXI9XCJydGxcIiBvbiBhbiBhbmNlc3RvcikuXG4gKi9cbi5wLXRyZWUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXRyZWUtYm9yZGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXAtdHJlZS1jb2xvcik7XG4gICAgcGFkZGluZzogdmFyKC0tcC10cmVlLXBhZGRpbmcpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdHJlZS1ib3JkZXItcmFkaXVzKTtcblxuICAgIC5wLXRyZWVub2RlIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlIG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAucC10cmVlLXRvZ2dsZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAucC10cmVlbm9kZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLnAtdHJlZS1zZWxlY3RhYmxlIC5wLXRyZWVub2RlLWNvbnRlbnQsXG4gICAgLnAtdHJlZW5vZGUtY29udGVudC5wLXRyZWUtc2VsZWN0YWJsZSxcbiAgICAucC10cmVlbm9kZS1jb250ZW50LnAtdHJlZS1zZWxlY3RhYmxlIC5wLXRyZWVub2RlLWxhYmVsIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWxlYWYtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAucC1jaGtib3gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLnAtY2hrYm94LWJveCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucC10cmVlbm9kZS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYucC1ub2JvcmRlciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtdHJlZS10b2dnbGVyLFxuICAgICYucC1zdGF0ZS1kaXNhYmxlZCAucC10cmVlLXNlbGVjdGFibGUgLnAtdHJlZW5vZGUtY29udGVudCxcbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtdHJlZW5vZGUtY29udGVudC5wLXRyZWUtc2VsZWN0YWJsZSxcbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtdHJlZW5vZGUtY29udGVudC5wLXRyZWUtc2VsZWN0YWJsZSAucC10cmVlbm9kZS1sYWJlbCxcbiAgICAmLnAtc3RhdGUtZGlzYWJsZWQgLnAtdHJlZS1zZWxlY3RhYmxlIC5wLXRyZWVub2RlLWljb24sXG4gICAgJi5wLXN0YXRlLWRpc2FibGVkIC5wLWNoa2JveC1ib3gge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtY29udGVudCAucC1jaGtib3gucC1zZWxlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGUgLnAtY2hrYm94LnAtc2VsZWN0aW9uLFxuICAgICYucC10cmVlLWNoZWNrYm94LWFsbCAucC10cmVlbm9kZS1jb250ZW50IC5wLWNoa2JveC5wLXNlbGVjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAmLnAtdHJlZS1ydGwge1xuICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICB9XG5cbiAgICAucC10cmVlLXNjcm9sbGVydG9wLFxuICAgIC5wLXRyZWUtc2Nyb2xsZXJib3R0b20ge1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgLnAtdHJlZS1zY3JvbGxlcnRvcCB7XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAucC10cmVlLXNjcm9sbGVyYm90dG9tIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC8qIHZlcnRpY2FsIHRyZWUgKi9cbiAgICAucC10cmVlLWNvbnRhaW5lciB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLnAtdHJlZW5vZGUge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVlLWdhcCkgMCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50ICoge1xuICAgICAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWUtbm9kZS1wYWRkaW5nKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRyZWUtbm9kZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRyZWUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXRyZWUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50IC5wLXRyZWUtdG9nZ2xlciB7XG4gICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tcC10cmVlLW5vZGUtZ2FwKSAwIDA7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLXRyZWUtbm9kZS10b2dnbGUtYnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRyZWUtbm9kZS10b2dnbGUtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10cmVlLXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3IgdmFyKC0tcC10cmVlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQgLnAtdHJlZS10b2dnbGVyOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50IC5wLXRyZWUtdG9nZ2xlcjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1wLXRyZWUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10cmVlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGUgc3RhdGUgaXMgYXJpYS1leHBhbmRlZCBvZiB0aGUgbm9kZSAobGkpICovXG4gICAgICAgIC5wLXRyZWUtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10cmVlLXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlW2FyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXSA+IC5wLXRyZWVub2RlLWNvbnRlbnQgPiAucC10cmVlLXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZS10b2dnbGUtY29sbGFwc2VkLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudCAucC10cmVlbm9kZS1sZWFmLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tc2l6ZSk7XG4gICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tcC10cmVlLW5vZGUtZ2FwKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50IC5wLXRyZWVub2RlLWljb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLXAtdHJlZS1ub2RlLWdhcCkgMCAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZS1ub2RlLWljb24tY29sb3IpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC10cmVlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtY2hpbGRyZW4ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIHZhcigtLXAtdHJlZS1pbmRlbnQpO1xuICAgIH1cblxuICAgICYucC10cmVlLXJ0bCAucC10cmVlbm9kZS1jaGlsZHJlbiB7XG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tcC10cmVlLWluZGVudCkgMCAwO1xuICAgIH1cblxuICAgIC5wLXRyZWUtY29udGFpbmVyIHtcbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudCAucC10cmVlbm9kZS1sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXRyZWUtbm9kZS1sYWJlbC1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdHJlZS1ub2RlLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtdHJlZS1ub2RlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudCAucC1jaGtib3gge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1wLXRyZWUtbm9kZS1nYXApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQgLnAtY2hrYm94IC5wLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVlLW5vZGUtc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudC5wLXN0YXRlLWhpZ2hsaWdodCAucC10cmVlbm9kZS1sYWJlbCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVlLW5vZGUtbGFiZWwtc2VsZWN0ZWQtZm9udC13ZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudC5wLXN0YXRlLWhpZ2hsaWdodCAucC10cmVlLXRvZ2dsZXIsXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC1zdGF0ZS1oaWdobGlnaHQgLnAtdHJlZW5vZGUtaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtaWNvbi1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50LnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXRyZWUtdG9nZ2xlcjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtbm9kZS10b2dnbGUtYnV0dG9uLXNlbGVjdGVkLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZS1ub2RlLXRvZ2dsZS1idXR0b24tc2VsZWN0ZWQtaG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudC5wLXN0YXRlLWhpZ2hsaWdodCAucC10cmVlbm9kZS1pY29uOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1pY29uLXNlbGVjdGVkLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGU6bm90KC5wLXN0YXRlLWhpZ2hsaWdodCk6aG92ZXIsXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGU6bm90KC5wLXN0YXRlLWhpZ2hsaWdodCkucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtbm9kZS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZSAucC10cmVlbm9kZS1jb250ZW50LnAtdHJlZS1zZWxlY3RhYmxlOm5vdCgucC1zdGF0ZS1oaWdobGlnaHQpOmhvdmVyIC5wLXRyZWVub2RlLWljb24sXG4gICAgICAgIC5wLXRyZWVub2RlIC5wLXRyZWVub2RlLWNvbnRlbnQucC10cmVlLXNlbGVjdGFibGU6bm90KC5wLXN0YXRlLWhpZ2hsaWdodCkucC1zdGF0ZS1ob3ZlciAucC10cmVlbm9kZS1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1pY29uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWUtZHJvcHBvaW50LnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVlLWRyb3Bwb2ludC1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlLW91dGxpbmUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10cmVlLW5vZGUtZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtdHJlZS1kcm9wcG9pbnQge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXAtdHJlZS1kcm9wcG9pbnQtaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmLnAtdHJlZS1ydGwgLnAtdHJlZS1jb250YWluZXIgLnAtdHJlZW5vZGUgLnAtdHJlZW5vZGUtY29udGVudCB7XG4gICAgICAgIC5wLXRyZWUtdG9nZ2xlciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tcC10cmVlLW5vZGUtZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlLWxlYWYtaWNvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwIHZhcigtLXAtdHJlZS1ub2RlLWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlbm9kZS1pY29uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgdmFyKC0tcC10cmVlLW5vZGUtZ2FwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWNoa2JveCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tcC10cmVlLW5vZGUtZ2FwKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiB0aGUgY29sbGFwc2VkIGljb24gcG9pbnRzIHRvIHRoZSBzdGFydCAqL1xuICAgICY6aXMoLnAtdHJlZS1ydGwsIDpkaXIocnRsKSkgLnAtdHJlZS1jb250YWluZXIgLnAtdHJlZW5vZGVbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdID4gLnAtdHJlZW5vZGUtY29udGVudCA+IC5wLXRyZWUtdG9nZ2xlLWljb24ge1xuICAgICAgICBzY2FsZTogLTEgMTtcbiAgICB9XG5cbiAgICAvKiBmaWx0ZXI6IHNlYXJjaCBpY29uIGluc2lkZSB0aGUgaW5wdXQsIGF0IHRoZSBzdGFydCAqL1xuICAgIC5wLXRyZWUtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tcC10cmVlLWZpbHRlci1tYXJnaW4pO1xuXG4gICAgICAgIC5wLXRyZWUtZmlsdGVyLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10cmVlLWZpbHRlci1pY29uKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogdmFyKC0tcC1pbnB1dHRleHQtcGFkZGluZy14KTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXAtaWNvbi1zaXplKSAvIDIpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtZm9ybS1maWVsZC1pY29uLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLWlucHV0ZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tcC1pbnB1dHRleHQtcGFkZGluZy15KTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1wLWlucHV0dGV4dC1wYWRkaW5nLXgpO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoMiAqIHZhcigtLXAtaW5wdXR0ZXh0LXBhZGRpbmcteCkgKyB2YXIoLS1wLWljb24tc2l6ZSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucC10cmVlLWRyb3Bwb2ludCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlIG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5wLXRyZWUtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLXRyZWUtZmlsdGVyLnAtaW5wdXRmaWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogaG9yaXpvbnRhbCB0cmVlOiB0ZC5wLXRyZWVub2RlID4gZGl2LnAtdHJlZW5vZGUtY29udGVudCArIHRkLnAtdHJlZW5vZGUtY2hpbGRyZW4tY29udGFpbmVyICovXG4ucC10cmVlLWhvcml6b250YWwge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLnAtdHJlZW5vZGUtY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLXBhcmVudCAucC10cmVlbm9kZS1jb250ZW50IHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG5cbi5wLXRyZWUucC10cmVlLWhvcml6b250YWwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgdGFibGUsXG4gICAgdHIsXG4gICAgdGQge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgdGFibGUge1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyogdGhlIGhvcml6b250YWwgbGluZSB0aHJvdWdoIGEgbm9kZSwgbWFza2VkIGJ5IDo6YmVmb3JlIGJldHdlZW4gdGhlIGNvbm5lY3RvcnMgKi9cbiAgICAucC10cmVlbm9kZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1wLXRyZWUtY29ubmVjdG9yLWNvbG9yKSwgdmFyKC0tcC10cmVlLWNvbm5lY3Rvci1jb2xvcikpIHJlcGVhdC14IGxlZnQgY2VudGVyIC8gMTAwJSAxcHg7XG4gICAgICAgIHBhZGRpbmc6IDVweCA0MHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUucC10cmVlbm9kZS1sZWFmLFxuICAgIC5wLXRyZWVub2RlLnAtdHJlZW5vZGUtY29sbGFwc2VkIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWNoaWxkcmVuIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWNvbm5lY3RvciB7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgLnAtdHJlZW5vZGUtY29ubmVjdG9yLXRhYmxlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlLWNvbm5lY3Rvci1saW5lIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLXAtdHJlZS1jb25uZWN0b3ItY29sb3IpLCB2YXIoLS1wLXRyZWUtY29ubmVjdG9yLWNvbG9yKSkgcmVwZWF0LXkgbGVmdCB0b3AgLyAxcHggMTAwJTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICAucC10cmVlbm9kZS1jb250ZW50IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtdHJlZS1ub2RlLWxhYmVsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10cmVlLWhvcml6b250YWwtbm9kZS1ib3JkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtaG9yaXpvbnRhbC1ub2RlLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWUtaG9yaXpvbnRhbC1ub2RlLXBhZGRpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRyZWUtbm9kZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRyZWUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIGNvbG9yIHZhcigtLXAtdHJlZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVlLW5vZGUtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLW5vZGUtaG92ZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWUtbm9kZS1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVlLXRvZ2dsZXIge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtdHJlZS1ub2RlLWdhcCk7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZS1ob3Jpem9udGFsLXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZS1ob3Jpem9udGFsLXRvZ2dsZS1leHBhbmRlZC1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWVub2RlLWljb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXRyZWUtbm9kZS1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZW5vZGUtbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jaGtib3gge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1wLXRyZWUtbm9kZS1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtY2hrYm94IC5wLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVlLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHRoZSBzdGF0ZSBpcyB0aGUgcC10cmVlbm9kZS1jb2xsYXBzZWQgY2xhc3Mgb2YgdGhlIG5vZGUgKHRkKSAqL1xuICAgIC5wLXRyZWVub2RlLWNvbGxhcHNlZCA+IC5wLXRyZWVub2RlLWNvbnRlbnQgPiAucC10cmVlLWhvcml6b250YWwtdG9nZ2xlLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWUtaG9yaXpvbnRhbC10b2dnbGUtY29sbGFwc2VkLWljb24pO1xuICAgIH1cblxuICAgIC5wLXRyZWVub2RlOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wLXRyZWUtYmFja2dyb3VuZCk7XG4gICAgfVxufVxuXG4ucC10cmVlLWhvcml6b250YWwgLnAtdHJlZW5vZGUge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5wLXRyZWVub2RlLWNvbGxhcHNlZDo6YmVmb3JlLFxuICAgICYucC10cmVlbm9kZS1sZWFmOjpiZWZvcmUge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgfVxufVxuXG4ucC10cmVlLWRyYWdoZWxwZXIsXG4ucC10cmVlLWRyYWdoZWxwZXIucC1zdGF0ZS1oaWdobGlnaHQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZS1kcmFnaGVscGVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLXRyZWUtbm9kZS1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10cmVlLWRyYWdoZWxwZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRyZWUtbm9kZS1ib3JkZXItcmFkaXVzKTtcbn1cblxuLnAtZmx1aWQgLnAtdHJlZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCAiLypcbiAqIFRyZWVUYWJsZTogcDp0cmVlVGFibGVcbiAqXG4gKiBTdXBwb3J0ZWQgY2xhc3NlczogcC10cmVldGFibGUtZ3JpZGxpbmVzLCBwLXRyZWV0YWJsZS1zbSwgcC10cmVldGFibGUtbGcsIHAtdHJlZXRhYmxlLXNjcm9sbGFibGUsXG4gKiAgICAgICAgICAgICAgICAgICAgcC10cmVldGFibGUtcmVzaXphYmxlLCBwLXRyZWV0YWJsZS1yZWZsb3csIHAtdHJlZXRhYmxlLWNoZWNrYm94LWFsbFxuICogU3RhdGVzIChzZXQgYnkgdGhlIHdpZGdldCk6IHRoLnAtc3RhdGUtaG92ZXIgLyBwLXN0YXRlLWFjdGl2ZSAoc29ydGVkKSAvIHAtc3RhdGUtZm9jdXMsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIucC1zdGF0ZS1ob3ZlciAvIHAtc3RhdGUtaGlnaGxpZ2h0IChzZWxlY3RlZCkgLyBwLXRyZWV0YWJsZS1wYXJ0aWFsc2VsZWN0ZWQgLyBwLXJvdy1lZGl0aW5nLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkLnAtY2VsbC1lZGl0aW5nXG4gKi9cbi5wLXRyZWV0YWJsZSB7XG4gICAgLyogaGVhZGVyIC8gZm9vdGVyIGZhY2V0cyAqL1xuICAgIC5wLXRyZWV0YWJsZS1oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY29sb3IpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgLnAtdHJlZXRhYmxlLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItcGFkZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItZm9udC13ZWlnaHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAucC1wYWdpbmF0b3Ige1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXBhZ2luYXRvci1wYWRkaW5nKTtcblxuICAgICAgICAmLnAtcGFnaW5hdG9yLXRvcCB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1wYWdpbmF0b3ItdG9wLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdHJlZXRhYmxlLXBhZ2luYXRvci10b3AtYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtcGFnaW5hdG9yLWJvdHRvbSB7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1wYWdpbmF0b3ItYm90dG9tLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXAtdHJlZXRhYmxlLXBhZ2luYXRvci1ib3R0b20tYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIH1cblxuICAgIHRoZWFkIHRoLFxuICAgIHRib2R5IHRkLFxuICAgIHRmb290IHRkIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG5cbiAgICAvKiBjb2x1bW4gaGVhZGVycyAqL1xuICAgIHRoZWFkIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLXBhZGRpbmcpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtdHJlZXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgIC5wLWNvbHVtbi10aXRsZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVldGFibGUtY29sdW1uLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10cmVldGFibGUtY29sdW1uLXRpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtc29ydGFibGUtY29sdW1uLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWdhcCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtc29ydC1pY29uLWNvbG9yKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10cmVldGFibGUtc29ydC1pY29uLXNpemUpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG5cbiAgICAgICAgICAgIC8qIHRoZSBzb3J0IG9yZGVyIGlzIHRoZSBzdGF0ZSBjbGFzcyBvZiB0aGUgaWNvbiAodGhlIHdpZGdldCByZWFkcyBpdCwgYXJpYS1zb3J0IGlzIG9uIG9uZSBjb2x1bW4gb25seSkgKi9cbiAgICAgICAgICAgICYucC10cmVldGFibGUtc29ydC1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWV0YWJsZS1zb3J0LWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtdHJlZXRhYmxlLXNvcnQtYXNjLWljb24ge1xuICAgICAgICAgICAgICAgIC0tX2ljb246IHZhcigtLXAtdHJlZXRhYmxlLXNvcnQtYXNjLWljb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtdHJlZXRhYmxlLXNvcnQtZGVzYy1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWV0YWJsZS1zb3J0LWRlc2MtaWNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucC1zb3J0YWJsZS1jb2x1bW4tYmFkZ2Uge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1iYWRnZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtYmFkZ2UtcGFkZGluZyk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXAtYmFkZ2UtaGVpZ2h0KTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogdmFyKC0tcC1iYWRnZS1taW4td2lkdGgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXAtYmFkZ2UtaGVpZ2h0KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLWJhZGdlLXByaW1hcnktY29sb3IpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1iYWRnZS1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtZ2FwKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC1iYWRnZS1mb250LXNpemUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXAtYmFkZ2UtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zb3J0YWJsZS1jb2x1bW4ucC1zdGF0ZS1mb2N1cyxcbiAgICAgICAgJi5wLXNvcnRhYmxlLWNvbHVtbjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWZvY3VzLXJpbmctd2lkdGgpIHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1ob3Zlci1jb2xvcik7XG5cbiAgICAgICAgICAgIC5wLXNvcnRhYmxlLWNvbHVtbi1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtc29ydC1pY29uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNvcnRlZCBjb2x1bW4gKFByaW1lVUlYIGhhcyBubyBzZXBhcmF0ZSBob3ZlciBsb29rIGZvciBpdCkgKi9cbiAgICB0aGVhZCB0aC5wLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgICYsXG4gICAgICAgICYucC1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItY2VsbC1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1zb3J0YWJsZS1jb2x1bW4taWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtc29ydGFibGUtY29sdW1uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBtdWx0aXBsZSBzb3J0IG51bWJlciBiYWRnZXMgKi9cbiAgICAucC1zb3J0YWJsZS1jb2x1bW4tYmFkZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgJi5wLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtY29sdW1uLWZpbHRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1wLXRyZWV0YWJsZS1jb2x1bW4tZmlsdGVyLWdhcCkgYXV0byBhdXRvIGF1dG87XG4gICAgfVxuXG4gICAgLyogdGhlIGRlZmF1bHQgZmlsdGVyIGlzIHRoZSBpbnB1dCBpdHNlbGY7IGNvbXBvbmVudHMgb2YgYSBmaWx0ZXIgZmFjZXQgZmlsbCB0aGUgY29sdW1uIGxpa2UgaW4gcDpkYXRhVGFibGUgKi9cbiAgICAucC1jb2x1bW4tY3VzdG9tZmlsdGVyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1wLXRyZWV0YWJsZS1jb2x1bW4tZmlsdGVyLWdhcCkgYXV0byBhdXRvIGF1dG87XG5cbiAgICAgICAgLnAtaW5wdXRmaWVsZCxcbiAgICAgICAgLnAtc2VsZWN0b25lbWVudSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXRyZWV0YWJsZS1kYXRhIHRyLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLyogcm93cyAqL1xuICAgIC5wLXRyZWV0YWJsZS1kYXRhID4gdHIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctY29sb3IpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksIG91dGxpbmUtY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLXAtdHJlZXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgID4gdGQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLXBhZGRpbmcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctZm9jdXMtcmluZy1zdHlsZSkgdmFyKC0tcC10cmVldGFibGUtcm93LWZvY3VzLXJpbmctY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1mb2N1cy1yaW5nLW9mZnNldCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXRyZWV0YWJsZS1lbXB0eS1tZXNzYWdlID4gdGQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLWVtcHR5LW1lc3NhZ2UtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogbm9kZSB0b2dnbGVyIChhY3Rpb24gaWNvbikgKi9cbiAgICAgICAgPiB0ZCAucC10cmVldGFibGUtdG9nZ2xlciB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLWdhcCk7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tc2l6ZSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXAtdHJlZXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBjb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yIHZhcigtLXAtdHJlZXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pLCBib3gtc2hhZG93IHZhcigtLXAtdHJlZXRhYmxlLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1zaGFkb3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtdHJlZXRhYmxlLXRvZ2dsZS1pY29uIHtcbiAgICAgICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWV0YWJsZS10b2dnbGUtZXhwYW5kZWQtaWNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGUgc3RhdGUgaXMgYXJpYS1leHBhbmRlZCBvZiB0aGUgcm93ICovXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdID4gdGQgPiAucC10cmVldGFibGUtdG9nZ2xlLWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10cmVldGFibGUtdG9nZ2xlLWNvbGxhcHNlZC1pY29uKTtcblxuICAgICAgICAgICAgJjpkaXIocnRsKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gdGQgLnAtY2hrYm94LnAtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLWdhcCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVldGFibGUtcm93LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctc2VsZWN0ZWQtY29sb3IpO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICAgICAucC10cmVldGFibGUtdG9nZ2xlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wLXRyZWV0YWJsZS10b2dnbGVyOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tc2VsZWN0ZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zZWxlY3RlZC1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0ID4gdGQsXG4gICAgICAgICY6aGFzKCsgdHIucC1zdGF0ZS1oaWdobGlnaHQpID4gdGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLXNlbGVjdGVkLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC10cmVldGFibGUtdG9nZ2xlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5wLXRyZWV0YWJsZS1pbmRlbnQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLWluZGVudCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcC10cmVldGFibGUtbm9kZS1pbmRlbnQpO1xuICAgIH1cblxuICAgIC5wLWNoa2JveC5wLXNlbGVjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnAtdHJlZXRhYmxlLXNlbGVjdGFibGUtbm9kZSAucC1jaGtib3gucC1zZWxlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG5cbiAgICAmLnAtdHJlZXRhYmxlLWNoZWNrYm94LWFsbCAucC1jaGtib3gucC1zZWxlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG5cbiAgICAvKiBpbi1jZWxsIGVkaXRpbmcgKi9cbiAgICAucC1lZGl0YWJsZS1jb2x1bW4gLnAtY2VsbC1lZGl0b3Ige1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLnAtY2VsbC1lZGl0b3ItaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wLXJvdy1lZGl0aW5nIHtcbiAgICAgICAgLnAtY2VsbC1lZGl0b3IgLnAtY2VsbC1lZGl0b3Itb3V0cHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucC1jZWxsLWVkaXRvciAucC1jZWxsLWVkaXRvci1pbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtcm93LWVkaXRvci1wZW5jaWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtcm93LWVkaXRvci1jaGVjayxcbiAgICAgICAgLnAtcm93LWVkaXRvciAucC1yb3ctZWRpdG9yLWNsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnAtcm93LWVkaXRvciB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LWVkaXRvci1wZW5jaWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yLWNoZWNrLFxuICAgICAgICAucC1yb3ctZWRpdG9yLWNsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC10cmVldGFibGUtZGF0YSB0ci5wLXJvdy1lZGl0aW5nIHRkLnAtZWRpdGFibGUtY29sdW1uLFxuICAgIC5wLXRyZWV0YWJsZS1kYXRhIHRkLnAtY2VsbC1lZGl0aW5nIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC8qIHJvdyBlZGl0b3I6IGEucC1yb3ctZWRpdG9yLXBlbmNpbCAvIC1jaGVjayAvIC1jbG9zZSA+IHNwYW4ucC1pY29uIChhY3Rpb24gaWNvbnMpICovXG4gICAgLnAtcm93LWVkaXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucC10cmVldGFibGUtZGF0YSA+IHRyIHtcbiAgICAgICAgLnAtcm93LWVkaXRvciAucC1pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC10cmVldGFibGUtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgb3V0bGluZS1jb2xvciB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1wLXRyZWV0YWJsZS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtaWNvbjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yIC5wLWljb246Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgLnAtcm93LWVkaXRvciBhOmZvY3VzLXZpc2libGUgLnAtaWNvbiB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy13aWR0aCkgdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctc3R5bGUpIHZhcigtLXAtdHJlZXRhYmxlLW5vZGUtdG9nZ2xlLWJ1dHRvbi1mb2N1cy1yaW5nLWNvbG9yKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tZm9jdXMtcmluZy1vZmZzZXQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLWZvY3VzLXJpbmctc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgYTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtdHJlZXRhYmxlLXJvdy1lZGl0LWljb24ge1xuICAgICAgICAgICAgLS1faWNvbjogdmFyKC0tcC10cmVldGFibGUtcm93LWVkaXQtaWNvbik7XG4gICAgICAgIH1cblxuICAgICAgICAucC1yb3ctZWRpdG9yIC5wLXJvdy1lZGl0b3ItY2hlY2sge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXAtdHJlZXRhYmxlLWJvZHktY2VsbC1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcm93LWVkaXRvciAucC10cmVldGFibGUtcm93LXNhdmUtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctc2F2ZS1pY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXJvdy1lZGl0b3IgLnAtdHJlZXRhYmxlLXJvdy1jYW5jZWwtaWNvbiB7XG4gICAgICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXRyZWV0YWJsZS1yb3ctY2FuY2VsLWljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wLXN0YXRlLWhpZ2hsaWdodCAucC1yb3ctZWRpdG9yIC5wLWljb24ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtdHJlZXRhYmxlLXJvdy1zZWxlY3RlZC1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IC5wLXJvdy1lZGl0b3IgLnAtaWNvbjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1ub2RlLXRvZ2dsZS1idXR0b24tc2VsZWN0ZWQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcC10cmVldGFibGUtbm9kZS10b2dnbGUtYnV0dG9uLXNlbGVjdGVkLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIGNvbHVtbiBmb290ZXJzICovXG4gICAgdGZvb3QgdGQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItY2VsbC1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC10cmVldGFibGUtZm9vdGVyLWNlbGwtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItY2VsbC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1jZWxsLXBhZGRpbmcpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVldGFibGUtY29sdW1uLWZvb3Rlci1mb250LXdlaWdodCk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcC10cmVldGFibGUtY29sdW1uLWZvb3Rlci1mb250LXNpemUpO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuXG4gICAgJi5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlIHtcbiAgICAgICAgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtdGhlYWRjbG9uZSB0ciB0aCA+ICoge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLWhlYWRlci1jZWxsLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1jZWxsLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC5wLWNvbHVtbi1yZXNpemVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGluc2V0LWlubGluZS1lbmQ6IDA7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXRyZWV0YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aCk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC5wLWNvbHVtbi1yZXNpemVyLWhlbHBlciB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wLXRyZWV0YWJsZS1yZXNpemUtaW5kaWNhdG9yLXdpZHRoKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC10cmVldGFibGUtcmVzaXplLWluZGljYXRvci1jb2xvcik7XG4gICAgfVxuXG4gICAgLyogc2l6ZXMgKi9cbiAgICAmLnAtdHJlZXRhYmxlLXNtIHtcbiAgICAgICAgLnAtdHJlZXRhYmxlLWhlYWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItc20tcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCA+IHRyID4gdGgge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtc20tcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVldGFibGUtZGF0YSA+IHRyID4gdGQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1jZWxsLXNtLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZXRhYmxlLWZvb3RlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItc20tcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtdHJlZXRhYmxlLWxnIHtcbiAgICAgICAgLnAtdHJlZXRhYmxlLWhlYWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1oZWFkZXItbGctcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCA+IHRyID4gdGgge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtaGVhZGVyLWNlbGwtbGctcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVldGFibGUtZGF0YSA+IHRyID4gdGQge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcC10cmVldGFibGUtYm9keS1jZWxsLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXAtdHJlZXRhYmxlLWZvb3Rlci1jZWxsLWxnLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZXRhYmxlLWZvb3RlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXRyZWV0YWJsZS1mb290ZXItbGctcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnAtdHJlZXRhYmxlLXNtIC5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLXRoZWFkY2xvbmUgPiB0ciA+IHRoLFxuICAgICYucC10cmVldGFibGUtbGcgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtdGhlYWRjbG9uZSA+IHRyID4gdGgge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi5wLXRyZWV0YWJsZS1ncmlkbGluZXMge1xuICAgICAgICAucC10cmVldGFibGUtaGVhZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wLXRyZWV0YWJsZS1mb290ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHggMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtcGFnaW5hdG9yIHtcbiAgICAgICAgICAgICYucC1wYWdpbmF0b3ItdG9wIHtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMCAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC1wYWdpbmF0b3ItYm90dG9tIHtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMXB4IDFweCAxcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgICAgIC5wLXRyZWV0YWJsZS1kYXRhID4gdHIgPiB0ZCxcbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtdGhlYWRjbG9uZSA+IHRyID4gdGgge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAgbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDAgbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWhlYWRlcixcbi5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLWZvb3RlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IDAgbm9uZTtcbn1cblxuLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtaGVhZGVyLFxuLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUgLnAtdHJlZXRhYmxlLXNjcm9sbGFibGUtZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wLXRyZWV0YWJsZS1zY3JvbGxhYmxlLXRoZWFkY2xvbmUge1xuICAgIGhlaWdodDogMDtcblxuICAgIHRyIHtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgICAgJi5wLXN0YXRlLWRlZmF1bHQge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgb3V0bGluZTogMCBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnAtdHJlZXRhYmxlLXJlc2l6YWJsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDFweDsgLyogZml4IGZvciB3ZWJraXQgb3ZlcmZsb3cgKi9cbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIHRoLnAtcmVzaXphYmxlLWNvbHVtbiB7XG4gICAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG59XG5cbi5wLXRyZWV0YWJsZS1yZWZsb3cge1xuICAgIC5wLXRyZWV0YWJsZS1kYXRhIHRkIC5wLWNvbHVtbi10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAucC10cmVldGFibGUtcmVmbG93IHRoZWFkIHRoLFxuICAgIC5wLXRyZWV0YWJsZS1yZWZsb3cgdGZvb3QgdGQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8qIGtlZXAgY29sdW1uIGZpbHRlcnMgdXNhYmxlIGluIHJlZmxvdyBtb2RlOiBzdGFjayB0aGUgZmlsdGVyYWJsZSBoZWFkZXIgY2VsbHMgaW5zdGVhZCBvZiBoaWRpbmcgdGhlIHdob2xlIHRoZWFkICovXG4gICAgLnAtdHJlZXRhYmxlLXJlZmxvdyB7XG4gICAgICAgIHRoZWFkIHRoLnAtZmlsdGVyLWNvbHVtbiB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogaW5saW5lLXN0YXJ0O1xuICAgICAgICAgICAgY2xlYXI6IGlubGluZS1zdGFydDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuXG4gICAgICAgICAgICAucC1jb2x1bW4tdGl0bGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wLXRyZWV0YWJsZS1yZWZsb3ctdGl0bGUtZm9udC13ZWlnaHQpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIHZhcigtLXAtdHJlZXRhYmxlLXJlZmxvdy1nYXApIDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtc29ydGFibGUtY29sdW1uLWljb24sXG4gICAgICAgICAgICAucC1zb3J0YWJsZS1jb2x1bW4tYmFkZ2UsXG4gICAgICAgICAgICAucC1jb2x1bW4tcmVzaXplciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnAtY29sdW1uLWZpbHRlcixcbiAgICAgICAgICAgIC5wLWNvbHVtbi1jdXN0b21maWx0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucC10cmVldGFibGUtZGF0YSB7XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBmbG9hdDogaW5saW5lLXN0YXJ0O1xuICAgICAgICAgICAgICAgIGNsZWFyOiBpbmxpbmUtc3RhcnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucC13aWRnZXQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyLnAtd2lkZ2V0LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwIG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwIG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRkIC5wLWNvbHVtbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tcC10cmVldGFibGUtcmVmbG93LWdhcCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC10cmVldGFibGUtcmVmbG93LXRpdGxlLWZvbnQtd2VpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICIvKlxuICogV2l6YXJkOiBwOndpemFyZFxuICpcbiAqIHVsLnAtd2l6YXJkLXN0ZXAtdGl0bGVzIChzaG93U3RlcFN0YXR1cykgaXMgYSBzZWdtZW50ZWQgYmFyLCB0aGUgY3VycmVudCBzdGVwIGlzIGxpLnAtc3RhdGUtaGlnaGxpZ2h0LlxuICogVGhlIG5hdmJhciBob2xkcyB0d28gUEYgYnV0dG9ucyAoLnAtd2l6YXJkLW5hdi1iYWNrIGxlZnQsIC5wLXdpemFyZC1uYXYtbmV4dCByaWdodCwgc3R5bGVkIGJ5IGJ1dHRvbi5jc3MpLlxuICogUHJpbWVGYWNlcyB0b2tlbnMsIHNlZSB0aGUgd2l6YXJkIGJsb2NrIG9mIHByZXNldHMvKi5jc3MuXG4gKi9cbi5wLXdpemFyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tcC13aXphcmQtZ2FwKTtcblxuICAgIC5wLXdpemFyZC1zdGVwLXRpdGxlcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgICAgICAgLnAtd2l6YXJkLXN0ZXAtdGl0bGUge1xuICAgICAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXdpemFyZC1zdGVwLXBhZGRpbmcpO1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wLXdpemFyZC1zdGVwLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcC13aXphcmQtc3RlcC1mb250LXdlaWdodCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXdpemFyZC1zdGVwLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXAtd2l6YXJkLXN0ZXAtY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcC13aXphcmQtc3RlcC1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLXdpemFyZC10cmFuc2l0aW9uLWR1cmF0aW9uKSwgY29sb3IgdmFyKC0tcC13aXphcmQtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXAtd2l6YXJkLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLXdpemFyZC1zdGVwLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1wLXdpemFyZC1zdGVwLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1pbmxpbmUtZW5kLXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXAtd2l6YXJkLXN0ZXAtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1wLXdpemFyZC1zdGVwLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnAtc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXdpemFyZC1zdGVwLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcC13aXphcmQtc3RlcC1hY3RpdmUtY29sb3IpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC13aXphcmQtc3RlcC1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXdpemFyZC1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wLXdpemFyZC1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXdpemFyZC1jb250ZW50LWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC13aXphcmQtY29udGVudC1jb2xvcik7XG4gICAgfVxuXG4gICAgLnAtd2l6YXJkLW5hdmJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcC13aXphcmQtZ2FwKTtcblxuICAgICAgICAucC13aXphcmQtbmF2LW5leHQge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wLXdpemFyZC1iYWNrLWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXdpemFyZC1iYWNrLWljb24pO1xuICAgIH1cblxuICAgIC5wLXdpemFyZC1uZXh0LWljb24ge1xuICAgICAgICAtLV9pY29uOiB2YXIoLS1wLXdpemFyZC1uZXh0LWljb24pO1xuICAgIH1cblxuICAgIC8qIFJUTDogdGhlIGJhY2sgYnV0dG9uIGlzIGF0IHRoZSByaWdodCwgdGhlIG5leHQgYnV0dG9uIGF0IHRoZSBsZWZ0ICovXG4gICAgLnAtd2l6YXJkLWJhY2staWNvbjpkaXIocnRsKSxcbiAgICAucC13aXphcmQtbmV4dC1pY29uOmRpcihydGwpIHtcbiAgICAgICAgc2NhbGU6IC0xIDE7XG4gICAgfVxufVxuIiwgIi8qXG4gKiBIaWRkZW46IHAtaGlkZGVuIChzZXQgYnkgdGhlIHdpZGdldHMgb24gZWxlbWVudHMgdGhleSBzaG93IGxhdGVyLCBlLmcuIHdpdGggZmFkZUluKCkpIGFuZFxuICogcC1vdmVybGF5LWhpZGRlbiAob3ZlcmxheXMgdGhhdCBhcmUgcmVuZGVyZWQgYnV0IG5vdCBzaG93biB5ZXQsIGUuZy4gbWVhc3VyZWQgb3IgbG9hZGVkIGJ5IHRoZSBkaWFsb2cgZnJhbWV3b3JrKS5cbiAqIEluIHRoZSBiZWhhdmlvcnMgbGF5ZXIsIHNvIHRoZXkgYmVhdCBldmVyeSBkaXNwbGF5IC8gdmlzaWJpbGl0eSBvZiB0aGUgY29tcG9uZW50IENTUyByZWdhcmRsZXNzIG9mIHNwZWNpZmljaXR5XG4gKiAod2l0aG91dCAhaW1wb3J0YW50LCBzbyBhcHBsaWNhdGlvbiBDU1Mgc3RpbGwgd2lucyk7IGlubGluZSBzdHlsZXMgb2YgalF1ZXJ5IHNob3coKSAvIGZhZGVJbigpIHdpbiBhcyB3ZWxsLlxuICovXG4ucC1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIGFsc28gZXZlcnkgY2hpbGQgdGhhdCBzZXRzIGEgdmlzaWJpbGl0eSBvZiBpdHMgb3duICovXG4ucC1vdmVybGF5LWhpZGRlbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgKiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4iLCAiLypcbiAqIERyYWcgYW5kIGRyb3A6IHA6ZHJhZ2dhYmxlLCBwOmRyb3BwYWJsZTsgdG91Y2gtYWN0aW9uIGNvbWVzIGZyb20gYmFzZS9pbnRlcmFjdGlvbnMuY3NzLlxuICogQ2xhc3NlcyBzZXQgYnkgdGhlIGludGVyYWN0aW9uczogcC1kcmFnZ2FibGUsIHAtZHJhZ2dhYmxlLWhhbmRsZSwgcC1kcmFnZ2FibGUtZHJhZ2dpbmcgKGVsZW1lbnQgb3IgaGVscGVyIHdoaWxlIGRyYWdnaW5nKSxcbiAqIHAtZHJvcHBhYmxlLCBwLWRyb3BwYWJsZS1hY3RpdmUgKGFuIGFjY2VwdGFibGUgZHJhZ2dhYmxlIGlzIGRyYWdnZWQpLCBwLWRyb3BwYWJsZS1ob3ZlciAoaXQgaXMgb3ZlciB0aGUgZHJvcHBhYmxlKS5cbiAqIGFjdGl2ZVN0eWxlQ2xhc3MgLyBob3ZlclN0eWxlQ2xhc3Mgb2YgcDpkcm9wcGFibGUgYXJlIGFkZGVkIG9uIHRvcCAoZS5nLiBwLXN0YXRlLWhpZ2hsaWdodCkuXG4gKiBQcmltZUZhY2VzIG9ubHkgdG9rZW5zOiB0aGUgZHJhZ2Ryb3AgYmxvY2sgb2YgcHJlc2V0cy8qLmNzcy5cbiAqL1xuLnAtZHJhZ2dhYmxlLWRyYWdnaW5nIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLWRyYWdkcm9wLWRyYWdnaW5nLXNoYWRvdyk7XG59XG5cbi5wLWRyb3BwYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1wLWRyYWdkcm9wLXRyYW5zaXRpb24tZHVyYXRpb24pLCBvdXRsaW5lLWNvbG9yIHZhcigtLXAtZHJhZ2Ryb3AtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG59XG5cbi5wLWRyb3BwYWJsZS1hY3RpdmUge1xuICAgIG91dGxpbmU6IHZhcigtLXAtZHJhZ2Ryb3AtZHJvcHBhYmxlLWFjdGl2ZS1vdXRsaW5lLXdpZHRoKSBkYXNoZWQgdmFyKC0tcC1kcmFnZHJvcC1kcm9wcGFibGUtYWN0aXZlLW91dGxpbmUtY29sb3IpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1wLWRyYWdkcm9wLWRyb3BwYWJsZS1hY3RpdmUtb3V0bGluZS1vZmZzZXQpO1xufVxuXG4ucC1kcm9wcGFibGUtaG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXAtZHJhZ2Ryb3AtZHJvcHBhYmxlLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1wLWRyYWdkcm9wLWRyb3BwYWJsZS1ob3Zlci1jb2xvcik7XG59XG4iLCAiLypcbiAqIFJlc2l6YWJsZTogcDpyZXNpemFibGU7IGhhbmRsZSBzdHJ1Y3R1cmUgKHNpemUsIGN1cnNvcikgY29tZXMgZnJvbSBiYXNlL2ludGVyYWN0aW9ucy5jc3MuXG4gKiBIYW5kbGVzOiBkaXYucC1yZXNpemFibGUtaGFuZGxlLnAtcmVzaXphYmxlLShufHN8ZXx3fG5lfG53fHNlfHN3KSwgdGhlIHNlIGhhbmRsZSBzaG93cyB0aGUgZ3JpcC5cbiAqIEhlbHBlcnM6IHAtcmVzaXphYmxlLWdob3N0IChnaG9zdD1cInRydWVcIiksIGRpdi5wLXJlc2l6YWJsZS1wcm94eSAoYW5pbWF0ZT1cInRydWVcIikuXG4gKiBQcmltZUZhY2VzIG9ubHkgdG9rZW5zOiB0aGUgcmVzaXphYmxlIGJsb2NrIG9mIHByZXNldHMvKi5jc3MuXG4gKi9cblxuLyogZGlhZ29uYWwgZ3JpcCBkcmF3biB3aXRoIGdyYWRpZW50cywgaW5zaWRlIHRoZSAocm91bmRlZCkgY29ybmVyOyB0aGUgZWRnZSBoYW5kbGVzIHN0YXkgb3V0c2lkZSB0byB3aWRlbiB0aGUgaGl0IGFyZWEgKi9cbi5wLXJlc2l6YWJsZS1zZSB7XG4gICAgcmlnaHQ6IHZhcigtLXAtcmVzaXphYmxlLWhhbmRsZS1pbnNldCk7XG4gICAgYm90dG9tOiB2YXIoLS1wLXJlc2l6YWJsZS1oYW5kbGUtaW5zZXQpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50IDAgNTUlLCB2YXIoLS1wLXJlc2l6YWJsZS1oYW5kbGUtY29sb3IpIDU1JSA2MyUsXG4gICAgICAgIHRyYW5zcGFyZW50IDYzJSA3NSUsIHZhcigtLXAtcmVzaXphYmxlLWhhbmRsZS1jb2xvcikgNzUlIDgzJSxcbiAgICAgICAgdHJhbnNwYXJlbnQgODMlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCA1NSUsIHZhcigtLXAtcmVzaXphYmxlLWhhbmRsZS1ob3Zlci1jb2xvcikgNTUlIDYzJSxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDYzJSA3NSUsIHZhcigtLXAtcmVzaXphYmxlLWhhbmRsZS1ob3Zlci1jb2xvcikgNzUlIDgzJSxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDgzJSk7XG4gICAgfVxufVxuXG4ucC1yZXNpemFibGUtZ2hvc3Qge1xuICAgIG9wYWNpdHk6IHZhcigtLXAtcmVzaXphYmxlLWdob3N0LW9wYWNpdHkpO1xufVxuXG4ucC1yZXNpemFibGUtcHJveHksXG4ucC1yZXNpemFibGUtaGVscGVyIHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tcC1yZXNpemFibGUtaGVscGVyLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcC1yZXNpemFibGUtaGVscGVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtcmVzaXphYmxlLWhlbHBlci1ib3JkZXItcmFkaXVzKTtcbn1cbiIsICIvKlxuICogU3RpY2t5OiBwOnN0aWNreVxuICogVGhlIHdpZGdldCBzZXRzIHBvc2l0aW9uIGZpeGVkICsgdG9wL3dpZHRoL3otaW5kZXggaW5saW5lIGFuZCBhZGRzIHAtc3RpY2t5IHRvIHRoZSB0YXJnZXQgd2hpbGUgcGlubmVkO1xuICogZGl2LnAtc3RpY2t5LWdob3N0IGtlZXBzIHRoZSBvcmlnaW5hbCBzcGFjZSBpbiB0aGUgZmxvdy5cbiAqIFByaW1lRmFjZXMgb25seSB0b2tlbnM6IHRoZSBzdGlja3kgYmxvY2sgb2YgcHJlc2V0cy8qLmNzcy5cbiAqL1xuLnAtc3RpY2t5IHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1wLXN0aWNreS1zaGFkb3cpO1xufVxuXG4ucC1zdGlja3ktZ2hvc3Qge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7OztBQXlEQTtBQUNJO0FBQ0ksb0JBQWdCO0FBQ2hCLG9CQUFnQjtBQUNoQixvQkFBZ0I7QUFDaEIsNEJBQXdCO0FBQ3hCLG1CQUFlO0FBQ2Ysb0JBQWdCO0FBQ2hCLHdCQUFvQjtBQUNwQix1QkFBbUI7QUFDbkIsdUJBQW1CO0FBQ25CLGlCQUFhO0FBQ2IsbUJBQWU7QUFDZixtQkFBZTtBQUNmLG1CQUFlO0FBQ2Ysb0JBQWdCO0FBQ2hCLG1CQUFlO0FBQ2Ysa0JBQWM7QUFDZCxxQkFBaUI7QUFDakIsdUJBQW1CO0FBQ25CLHlCQUFxQjtBQUNyQix5QkFBcUI7QUFDckIsMEJBQXNCO0FBQ3RCLG1CQUFlO0FBQ2YsdUJBQW1CO0FBQ25CLHdCQUFvQjtBQUNwQixxQkFBaUI7QUFDakIsbUJBQWU7QUFDZixvQkFBZ0I7QUFDaEIsbUJBQWU7QUFDZixxQkFBaUI7QUFDakIsbUJBQWU7QUFDZixtQkFBZTtBQUNmLHNCQUFrQjtBQUNsQixtQkFBZTtBQUNmLHVCQUFtQjtBQUNuQix1QkFBbUI7QUFDbkIsc0JBQWtCO0FBQ2xCLG1CQUFlO0FBQ2YsbUJBQWU7QUFDZixzQkFBa0I7QUFDbEIsdUJBQW1CO0FBQ25CLG1CQUFlO0FBQ2YsMEJBQXNCO0FBQ3RCLG1CQUFlO0FBQ2Ysc0JBQWtCO0FBQ2xCLG1CQUFlO0FBQ2Ysb0JBQWdCO0FBQ2hCLG9CQUFnQjtBQUNoQixzQkFBa0I7QUFDdEI7QUFDSjs7O0FDNUdBO0FBTUEsR0FBQztBQUNHLGtCQUFjO0FBQ2xCO0FBQ0EsR0FBQztBQUNHLGNBQVU7QUFDZDtBQUNBLEdBQUM7QUFDRyxjQUFVO0FBQ1YsYUFBUztBQUNULGtCQUFjO0FBQ2xCO0FBQ0EsR0FBQyxxQkFBcUIsQ0FMckI7QUFNRyxhQUFTO0FBQ2I7QUFDQSxHQUFDO0FBQ0csWUFBUTtBQUNSLFlBQVE7QUFDUixXQUFPO0FBQ1AsU0FBSztBQUNMLFVBQU07QUFDVjtBQUNBLEdBQUM7QUFDRyxZQUFRO0FBQ1IsWUFBUTtBQUNSLFdBQU87QUFDUCxZQUFRO0FBQ1IsVUFBTTtBQUNWO0FBQ0EsR0FBQztBQUNHLFlBQVE7QUFDUixXQUFPO0FBQ1AsV0FBTztBQUNQLFNBQUs7QUFDTCxZQUFRO0FBQ1o7QUFDQSxHQUFDO0FBQ0csWUFBUTtBQUNSLFdBQU87QUFDUCxVQUFNO0FBQ04sU0FBSztBQUNMLFlBQVE7QUFDWjtBQUNBLEdBQUM7QUFDRyxZQUFRO0FBQ1IsV0FBTztBQUNQLFlBQVE7QUFDUixXQUFPO0FBQ1AsWUFBUTtBQUNaO0FBQ0EsR0FBQztBQUNHLFlBQVE7QUFDUixXQUFPO0FBQ1AsWUFBUTtBQUNSLFVBQU07QUFDTixZQUFRO0FBQ1o7QUFDQSxHQUFDO0FBQ0csWUFBUTtBQUNSLFdBQU87QUFDUCxZQUFRO0FBQ1IsVUFBTTtBQUNOLFNBQUs7QUFDVDtBQUNBLEdBQUM7QUFDRyxZQUFRO0FBQ1IsV0FBTztBQUNQLFlBQVE7QUFDUixXQUFPO0FBQ1AsU0FBSztBQUNUO0FBQ0EsR0FBQztBQUNHLGtCQUFjO0FBQ2xCO0FBR0EsR0FBQztBQUFBLEVBQ0QsQ0FBQztBQUNHLG9CQUFnQjtBQUNwQjtBQUNBLEdBSkM7QUFLRyxZQUFRLElBQUksT0FBTyxJQUFJLGlCQUFpQixFQUFFO0FBQzlDO0FBQUE7OztBQ3ZGQTtBQU9BO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDSSxnQkFBWTtBQUNoQjtBQUVBLEdBQUM7QUFDRyxpQkFBYSxJQUFJO0FBQ2pCLGVBQVcsSUFBSTtBQUNmLGlCQUFhLElBQUk7QUFDakIsaUJBQWEsSUFBSTtBQUNqQixxQkFBaUI7QUFJakIsV0FBTyxDQVRWLFVBU3FCO0FBQ2QsaUJBQVc7QUFDZjtBQUNKO0FBRUEsU0FBTyxDQUFDO0FBQ0osZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxrQkFBYyxJQUFJO0FBQ3RCO0FBRUEsU0FBTyxDQUFDO0FBQ0osZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxrQkFBYyxJQUFJO0FBQ2xCLGlCQUFhLElBQUk7QUFDckI7QUFFQSxTQUFPLENBQUM7QUFDSixnQkFBWSxJQUFJO0FBQ2hCLFdBQU8sSUFBSTtBQUNmO0FBRUEsU0FBTyxDQUFDO0FBQ0osZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDZjtBQUVBLFNBQU8sQ0FBQztBQUNKLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ2Y7QUFFQSxTQUFPLENBTEMsa0JBS2tCLEdBQUcsQ0FWckIsZUFVcUM7QUFDekMsV0FBTztBQUNYO0FBR0EsU0FBTyxDQUFDO0FBQ0osV0FBTyxJQUFJO0FBQ1gsa0JBQWMsSUFBSTtBQUN0QjtBQUVBLFNBQU8sQ0FBQztBQUNKLFdBQU8sSUFBSTtBQUNmO0FBRUEsR0FBQztBQUNHLGFBQVMsSUFBSTtBQUNiLFlBQVE7QUFDUixvQkFBZ0I7QUFFaEIsS0FMSDtBQU1PLGVBQVM7QUFDYjtBQUNKO0FBRUEsU0FBTyxDQUFDO0FBQ0osaUJBQWE7QUFDakI7QUFFQSxTQUFPLENBQUM7QUFDSixhQUFTLElBQUk7QUFDYixpQkFBYSxJQUFJO0FBQ3JCO0FBR0EsR0FBQztBQUFBLEVBQ0QsQ0FBQztBQUFBLEVBQ0QsQ0FBQztBQUFBLEVBQ0QsQ0FBQztBQUFBLEVBQ0QsQ0FBQztBQUFBLEVBQ0QsQ0FBQztBQUNHLGVBQVcsSUFBSTtBQUNuQjtBQVFBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsaUJBQWE7QUFDYixlQUFXLElBQUk7QUFDZixnQkFBWTtBQUNaLGlCQUFhO0FBQ2IsaUJBQWE7QUFDYixvQkFBZ0I7QUFHaEIsS0FBQztBQUNHLGVBQVM7QUFDVCxrQkFBWTtBQUNaLDJCQUFxQjtBQUNyQixZQUFNLElBQUksT0FBTyxFQUFFLGdCQUFnQixXQUFXLEVBQUUsY0FBYyxPQUFPLEVBQUUsUUFBUTtBQUNuRjtBQUNKO0FBRUEsR0FBQztBQUNHLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ2Y7QUFNQSxTQUFPLFFBQ1AsS0FBSyxLQUFLLENBQUMsZ0JBQWtCLENBQUMsWUFBYyxDQUFDLGdCQUFrQixDQUFDLGFBQWUsQ0FBQyxhQUFlLENBQUMsYUFBZSxDQUFDLGNBQzVHLENBeEhILFVBd0hjLENBQUM7QUFDWixXQUFPLElBQUk7QUFDWCxnQkFBWSxJQUFJO0FBQ2hCLGFBQVMsSUFBSSwwQkFBMEIsSUFBSTtBQUMzQyxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG1CQUFlLElBQUk7QUFDbkIsYUFBUyxFQUFFO0FBQ1gsaUJBQWE7QUFDYixlQUFXLElBQUk7QUFDZixnQkFBWSxJQUFJO0FBQ2hCO0FBQUEsTUFBWSxXQUFXLElBQUksbUNBQW1DO0FBQUEsTUFBRSxNQUFNLElBQUksbUNBQW1DO0FBQUEsTUFDekcsYUFBYSxJQUFJLG1DQUFtQztBQUFBLE1BQUUsY0FBYyxJQUFJLG1DQUFtQztBQUFBLE1BQzNHLFdBQVcsSUFBSTtBQUN2QjtBQUVBLFNBQU8sTUFBTSxRQUNiLEtBQUssS0FBSyxDQUFDLGdCQUFrQixDQUFDLFlBQWMsQ0FBQyxnQkFBa0IsQ0FBQyxhQUFlLENBQUMsYUFBZSxDQUFDLGFBQWUsQ0FBQyxjQUM1RyxDQXpJSCxVQXlJYyxDQWpCQyxhQWlCYTtBQUN6QixrQkFBYyxJQUFJO0FBQ3RCO0FBRUEsU0FBTyxNQUFNLFFBQ2IsS0FBSyxLQUFLLENBQUMsZ0JBQWtCLENBQUMsWUFBYyxDQUFDLGdCQUFrQixDQUFDLGFBQWUsQ0FBQyxhQUFlLENBQUMsYUFBZSxDQUFDLGNBQzVHLENBL0lILFVBK0ljLENBdkJDLGFBdUJhO0FBQ3pCLGtCQUFjLElBQUk7QUFDbEIsYUFBUyxJQUFJLGlDQUFpQyxJQUFJLGlDQUFpQyxJQUFJO0FBQ3ZGLG9CQUFnQixJQUFJO0FBQ3BCLGdCQUFZLElBQUk7QUFDcEI7QUFPQSxhQUFXO0FBQ1A7QUFDSSxlQUFTO0FBQ1QsaUJBQVcsRUFBRSxJQUFJLGVBQWUsRUFBRTtBQUN0QztBQUNKO0FBRUEsYUFBVztBQUNQO0FBQ0ksZUFBUztBQUNiO0FBRUE7QUFDSSxlQUFTO0FBQ2I7QUFDSjtBQUFBOzs7QUN2TEE7QUFHQSxHQUFDO0FBQ0csZ0JBQVk7QUFDaEI7QUFFQSxHQUFDO0FBQ0csY0FBVTtBQUNkO0FBRUEsR0FBQztBQUNHLFlBQVE7QUFDUixhQUFTO0FBQ1QsWUFBUTtBQUNSLGFBQVM7QUFDVCxxQkFBaUI7QUFDakIsZUFBVztBQUNYLGdCQUFZO0FBQ2hCO0FBRUEsR0FBQztBQUNHLGFBQVM7QUFDYjtBQUdBLFNBQU87QUFDSCxNQUFFLENBQUM7QUFBQSxJQUNILEVBQUUsQ0FEQztBQUFBLElBRUgsRUFBRSxDQUFDO0FBQUEsSUFDSCxFQUFFLENBREM7QUFBQSxJQUVILEVBQUUsQ0FBQztBQUFBLElBQ0gsRUFBRSxDQURDO0FBQUEsSUFFSCxFQUFFLENBQUM7QUFBQSxJQUNILEVBQUUsQ0FEQztBQUFBLElBRUgsRUFBRSxDQUFDO0FBQUEsSUFDSCxFQUFFLENBREM7QUFBQSxJQUVILEVBQUUsQ0FBQztBQUFBLElBQ0gsRUFBRSxDQURDO0FBRUMsZUFBUztBQUNiO0FBQ0o7QUFFQSxTQUFPLFlBQVcsV0FBWTtBQUMxQixNQUFFLENBUEM7QUFBQSxJQVFILEVBQUUsQ0FSQztBQVNDLGVBQVM7QUFDYjtBQUNKO0FBRUEsU0FBTyxZQUFXLFdBQVk7QUFDMUIsTUFBRSxDQWhCQztBQUFBLElBaUJILEVBQUUsQ0FqQkM7QUFrQkMsZUFBUztBQUNiO0FBQ0o7QUFFQSxTQUFPLFlBQVcsV0FBWTtBQUMxQixNQUFFLENBekJDO0FBQUEsSUEwQkgsRUFBRSxDQTFCQztBQTJCQyxlQUFTO0FBQ2I7QUFDSjtBQUVBLFNBQU8sWUFBVyxXQUFZO0FBQzFCLE1BQUUsQ0FsQ0M7QUFBQSxJQW1DSCxFQUFFLENBbkNDO0FBb0NDLGVBQVM7QUFDYjtBQUNKO0FBRUEsU0FBTyxZQUFXLFdBQVk7QUFDMUIsTUFBRSxDQTNDQztBQUFBLElBNENILEVBQUUsQ0E1Q0M7QUE2Q0MsZUFBUztBQUNiO0FBQ0o7QUFFQSxTQUFPLFlBQVcsV0FBWTtBQUMxQixNQUFFLENBcERDO0FBQUEsSUFxREgsRUFBRSxDQXJEQztBQXNEQyxlQUFTO0FBQ2I7QUFDSjtBQUdBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsZUFBVyxPQUFPO0FBQ3RCO0FBRUEsR0FBQztBQUNHLGFBQVM7QUFDVCxlQUFXLE9BQU87QUFDbEIsZ0JBQVksVUFBVSxJQUFJLDRCQUE0QixJQUFJLDRCQUE0QixFQUNsRixRQUFRLElBQUksNEJBQTRCLElBQUk7QUFDcEQ7QUFFQSxHQUFDO0FBQ0csZUFBVztBQUNmO0FBRUEsR0FBQztBQUNHLGFBQVM7QUFDYjtBQUVBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsZ0JBQVksUUFBUSxJQUFJLDRCQUE0QixJQUFJO0FBQzVEO0FBQUE7OztBQzdHQTtBQUdBO0FBRUksa0JBQWMsSUFBSTtBQUN0QjtBQUVBO0FBQ0ksZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDZjtBQUdBLFNBQU8sQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxpQ0FBaUMsQ0FBQyxpQkFDdkYsQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUI7QUFDN0MsYUFBUztBQUNULGNBQVU7QUFDVixXQUFPLEtBQUssSUFBSSxFQUFFO0FBQ3RCO0FBRUEsU0FBTyxDQU5GLG9CQU11QixDQU5GO0FBT3RCLGNBQVU7QUFDZDtBQUVBLFVBQU8sd0JBQXlCO0FBQzVCO0FBQUEsSUFDQSxDQUFDO0FBQ0csK0JBQXlCO0FBQzdCO0FBSUE7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUNJLDBCQUFvQjtBQUNwQixpQ0FBMkI7QUFDM0IsMkJBQXFCO0FBQ3JCLHVCQUFpQjtBQUNyQjtBQUNKO0FBR0EsVUFBTyw4QkFBK0I7QUFDbEM7QUFBQSxJQUNBLENBQUM7QUFDRyxtQ0FBNkI7QUFDN0Isc0NBQWdDO0FBQ2hDLGtDQUE0QjtBQUM1QixnQ0FBMEI7QUFDMUIsc0JBQWdCO0FBQ3BCO0FBQ0o7QUFPQSxPQUFLLENBQUM7QUFBQSxFQUNOLEtBQUssQ0FBQyx1QkFBeUIsQ0FBQztBQUM1QixnQ0FBNEI7QUFDNUIseUNBQXFDO0FBQ3JDLHdDQUFvQztBQUN4QztBQU1BO0FBQ0ksZ0JBQVksSUFBSTtBQUNwQjtBQUVBLFNBQU87QUFFSDtBQUNJLG9CQUFjO0FBQ2xCO0FBRUE7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUNJLGtCQUFZO0FBQ1osbUJBQWE7QUFDakI7QUFPQSxLQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csa0NBQTRCO0FBQzVCLDBCQUFvQjtBQUN4QjtBQUdBLEtBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUMsMEJBQTBCLENBRjFCO0FBR0csY0FBUTtBQUNSLGtCQUFZO0FBQ1osZ0JBQVU7QUFDZDtBQUVBO0FBQUEsSUFDQSxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csb0JBQWM7QUFDbEI7QUFJQSxLQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csZUFBUztBQUNiO0FBR0EsS0FBQztBQUNHLGdCQUFVO0FBQ1YsYUFBTztBQUNYO0FBQ0o7QUFBQTs7O0FDakpBO0FBTUEsR0FBQztBQUNHLFdBQU87QUFDUCxhQUFTO0FBQ1QsWUFBUTtBQUVSLEtBQUM7QUFBQSxJQUNELENBQUM7QUFDRyxlQUFTO0FBQ1QsZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLGFBQU87QUFDWDtBQUVBLEtBQUM7QUFDRyxlQUFTO0FBQ1QsYUFBTztBQUNYO0FBQ0o7QUFFQSxHQU5LO0FBT0QsS0FBQztBQUNHLGFBQU87QUFDUCxlQUFTO0FBQ1QsZUFBUztBQUNiO0FBQ0o7QUFFQSxHQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQ0csV0FBTztBQUNYO0FBRUEsR0FBQztBQUNHLGFBQVM7QUFDYjtBQUVBLEdBbkJDO0FBb0JHLFdBQU87QUFDWDtBQUVBLEdBdEJDO0FBdUJHLFdBQU87QUFDWDtBQUVBLEdBekJDO0FBMEJHLFdBQU87QUFDWDtBQUVBLEdBNUJDO0FBNkJHLFdBQU87QUFDWDtBQUVBLEdBL0JDO0FBZ0NHLFdBQU87QUFDWDtBQUVBLEdBbENDO0FBbUNHLFdBQU87QUFDWDtBQUVBLEdBckNDO0FBc0NHLFdBQU87QUFDWDtBQUVBLEdBeENDO0FBeUNHLFdBQU87QUFDWDtBQUVBLEdBM0NDO0FBNENHLFdBQU87QUFDWDtBQUVBLEdBOUNDO0FBK0NHLFdBQU87QUFDWDtBQUVBLEdBakRDO0FBa0RHLFdBQU87QUFDWDtBQUVBLEdBcERDO0FBcURHLFdBQU87QUFDWDtBQUVBLFVBQU8sV0FBWTtBQUNmLEtBQUM7QUFDRyxhQUFPO0FBQ1g7QUFDSjtBQUVBLFVBQU8sV0FBWTtBQUNmLEtBTkM7QUFPRyxhQUFPO0FBQ1g7QUFDSjtBQUVBLFVBQU8sV0FBWTtBQUNmLEtBWkM7QUFhRyxhQUFPO0FBQ1g7QUFDSjtBQUVBLFVBQU8sV0FBWTtBQUNmLEtBbEJDO0FBbUJHLGFBQU87QUFDWDtBQUNKO0FBR0EsVUFBTyxXQUFZO0FBQ2YsS0FBQztBQUNHLE9BNUdIO0FBNkdPLGlCQUFTO0FBQ2I7QUFFQSxPQWxHUDtBQUFBLE1BbUdPLENBbEdQO0FBQUEsTUFtR08sQ0FsR1A7QUFBQSxNQW1HTyxDQWxHUDtBQUFBLE1BbUdPLENBbEdQO0FBQUEsTUFtR08sQ0FsR1A7QUFBQSxNQW1HTyxDQWxHUDtBQUFBLE1BbUdPLENBbEdQO0FBQUEsTUFtR08sQ0FsR1A7QUFBQSxNQW1HTyxDQWxHUDtBQUFBLE1BbUdPLENBbEdQO0FBQUEsTUFtR08sQ0FsR1A7QUFtR1csZUFBTztBQUNQLGVBQU87QUFDWDtBQUNKO0FBQ0o7QUFFQSxHQWpKQyxPQWlKTyxDQUFDLFlBQVksRUFBRSxDQWxJbEIsWUFrSStCLEVBQUU7QUFDbEMsYUFBUyxNQUFNO0FBQ25CO0FBR0EsR0FBQztBQUNHLGFBQVM7QUFDVCxlQUFXO0FBRVgsS0FBQztBQUNHLGFBQU87QUFDUCxlQUFTO0FBQ1QsZUFBUztBQUNiO0FBQ0o7QUFFQSxHQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQ0csV0FBTztBQUNQLGFBQVM7QUFDYjtBQUVBLEdBQUM7QUFDRyxhQUFTO0FBQ2I7QUFFQSxHQXBCQztBQXFCRyxXQUFPO0FBQ1g7QUFFQSxHQXZCQztBQXdCRyxXQUFPO0FBQ1g7QUFFQSxHQTFCQztBQTJCRyxXQUFPO0FBQ1g7QUFFQSxHQTdCQztBQThCRyxXQUFPO0FBQ1g7QUFFQSxHQWhDQztBQWlDRyxXQUFPO0FBQ1g7QUFFQSxHQW5DQztBQW9DRyxXQUFPO0FBQ1g7QUFFQSxHQXRDQztBQXVDRyxXQUFPO0FBQ1g7QUFFQSxHQXpDQztBQTBDRyxXQUFPO0FBQ1g7QUFFQSxHQTVDQztBQTZDRyxXQUFPO0FBQ1g7QUFFQSxHQS9DQztBQWdERyxXQUFPO0FBQ1g7QUFFQSxHQWxEQztBQW1ERyxXQUFPO0FBQ1g7QUFFQSxHQXJEQztBQXNERyxXQUFPO0FBQ1g7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDakI7QUFFQSxTQUFPLFlBQVcsV0FBWTtBQUMxQixLQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLGVBQVM7QUFDYjtBQUVBLEtBbkJDO0FBb0JHLGFBQU87QUFDWDtBQUVBLEtBdEJDO0FBdUJHLGFBQU87QUFDWDtBQUVBLEtBekJDO0FBMEJHLGFBQU87QUFDWDtBQUVBLEtBNUJDO0FBNkJHLGFBQU87QUFDWDtBQUVBLEtBL0JDO0FBZ0NHLGFBQU87QUFDWDtBQUVBLEtBbENDO0FBbUNHLGFBQU87QUFDWDtBQUVBLEtBckNDO0FBc0NHLGFBQU87QUFDWDtBQUVBLEtBeENDO0FBeUNHLGFBQU87QUFDWDtBQUVBLEtBM0NDO0FBNENHLGFBQU87QUFDWDtBQUVBLEtBOUNDO0FBK0NHLGFBQU87QUFDWDtBQUVBLEtBakRDO0FBa0RHLGFBQU87QUFDWDtBQUVBLEtBcERDO0FBcURHLGFBQU87QUFDWDtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUNKO0FBRUEsU0FBTyxZQUFXLFdBQVk7QUFDMUIsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLGVBQVM7QUFDYjtBQUVBLEtBQUM7QUFDRyxlQUFTO0FBQ2I7QUFFQSxLQW5CQztBQW9CRyxhQUFPO0FBQ1g7QUFFQSxLQXRCQztBQXVCRyxhQUFPO0FBQ1g7QUFFQSxLQXpCQztBQTBCRyxhQUFPO0FBQ1g7QUFFQSxLQTVCQztBQTZCRyxhQUFPO0FBQ1g7QUFFQSxLQS9CQztBQWdDRyxhQUFPO0FBQ1g7QUFFQSxLQWxDQztBQW1DRyxhQUFPO0FBQ1g7QUFFQSxLQXJDQztBQXNDRyxhQUFPO0FBQ1g7QUFFQSxLQXhDQztBQXlDRyxhQUFPO0FBQ1g7QUFFQSxLQTNDQztBQTRDRyxhQUFPO0FBQ1g7QUFFQSxLQTlDQztBQStDRyxhQUFPO0FBQ1g7QUFFQSxLQWpEQztBQWtERyxhQUFPO0FBQ1g7QUFFQSxLQXBEQztBQXFERyxhQUFPO0FBQ1g7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csbUJBQWE7QUFDakI7QUFDSjtBQUVBLFNBQU8sWUFBVyxXQUFZO0FBQzFCLEtBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFDRyxlQUFTO0FBQ2I7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNiO0FBRUEsS0FuQkM7QUFvQkcsYUFBTztBQUNYO0FBRUEsS0F0QkM7QUF1QkcsYUFBTztBQUNYO0FBRUEsS0F6QkM7QUEwQkcsYUFBTztBQUNYO0FBRUEsS0E1QkM7QUE2QkcsYUFBTztBQUNYO0FBRUEsS0EvQkM7QUFnQ0csYUFBTztBQUNYO0FBRUEsS0FsQ0M7QUFtQ0csYUFBTztBQUNYO0FBRUEsS0FyQ0M7QUFzQ0csYUFBTztBQUNYO0FBRUEsS0F4Q0M7QUF5Q0csYUFBTztBQUNYO0FBRUEsS0EzQ0M7QUE0Q0csYUFBTztBQUNYO0FBRUEsS0E5Q0M7QUErQ0csYUFBTztBQUNYO0FBRUEsS0FqREM7QUFrREcsYUFBTztBQUNYO0FBRUEsS0FwREM7QUFxREcsYUFBTztBQUNYO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2pCO0FBQ0o7QUFFQSxTQUFPLFlBQVcsV0FBWTtBQUMxQixLQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLGVBQVM7QUFDYjtBQUVBLEtBbkJDO0FBb0JHLGFBQU87QUFDWDtBQUVBLEtBdEJDO0FBdUJHLGFBQU87QUFDWDtBQUVBLEtBekJDO0FBMEJHLGFBQU87QUFDWDtBQUVBLEtBNUJDO0FBNkJHLGFBQU87QUFDWDtBQUVBLEtBL0JDO0FBZ0NHLGFBQU87QUFDWDtBQUVBLEtBbENDO0FBbUNHLGFBQU87QUFDWDtBQUVBLEtBckNDO0FBc0NHLGFBQU87QUFDWDtBQUVBLEtBeENDO0FBeUNHLGFBQU87QUFDWDtBQUVBLEtBM0NDO0FBNENHLGFBQU87QUFDWDtBQUVBLEtBOUNDO0FBK0NHLGFBQU87QUFDWDtBQUVBLEtBakRDO0FBa0RHLGFBQU87QUFDWDtBQUVBLEtBcERDO0FBcURHLGFBQU87QUFDWDtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNqQjtBQUNKO0FBRUEsR0FBQztBQUNHLGFBQVM7QUFDYjtBQUFBOzs7QUNyd0JBO0FBT0EsR0FBQztBQUNHLFlBQVE7QUFDUixVQUFNLEtBQUssRUFBRSxFQUFFLEVBQUU7QUFDakIsWUFBUTtBQUNSLFlBQVE7QUFDUixjQUFVO0FBQ1YsYUFBUztBQUNULGNBQVU7QUFDVixXQUFPO0FBQ1g7QUFHQSxTQUFPLENBQUM7QUFDSixhQUFTO0FBQ1Qsb0JBQWdCO0FBRWhCLE1BQUUsQ0FBQztBQUNDLGlCQUFXO0FBQ2Y7QUFDSjtBQUFBOzs7QUMxQkE7QUFVQSxTQUVJLENBQUMsc0JBQXNCLENBQUMsK0JBQStCLENBQUMsb0NBQ3hELENBQUMsZ0NBQWdDLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMscUJBRS9FLENBQUMsK0JBQStCLENBQUMsb0NBQW9DLENBQUMsaUJBQWlCLENBQUMsa0JBQ3hGLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLFlBQVksUUFBUSxDQUFDLGNBRXpELENBQUMsMEJBQTBCLENBQUMsNkJBQTZCLENBQUMsNkJBQzFELENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLENBQUMsb0JBRWpELENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQztBQUV2RixxQkFBaUIsSUFBSTtBQUNyQixxQkFBaUIsSUFBSSwyQkFBMkIsSUFBSTtBQUN4RDtBQUFBOzs7QUN6QkE7QUFhQSxTQUFPLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLHVCQUNyRSxDQUFDLDRCQUE0QixDQUFDLHNCQUM5QixDQUFDLDhCQUE4QixFQUFFLENBQUMsdUJBQ2xDLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFDM0YsQ0FBQztBQUNELHFCQUFpQixJQUFJO0FBQ3pCO0FBVUEsU0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVO0FBQzdCLGFBQVM7QUFDVCxjQUFVO0FBQ1YsV0FBTztBQUNQLG1CQUFlO0FBQ2Ysb0JBQWdCO0FBQ3BCO0FBR0EsU0FBTyxDQVRDLGFBU2E7QUFDakIsYUFBUztBQUNULHFCQUFpQixJQUFJO0FBQ3pCO0FBR0EsU0FBTyxDQWZnQjtBQWdCbkIsY0FBVTtBQUNkO0FBRUEsU0FBTyxDQW5CZ0IsV0FtQkosRUFBRTtBQUNqQixjQUFVO0FBQ2Q7QUFFQSxTQUFPLENBdkJnQixVQXVCTDtBQUNkLHFCQUFpQixJQUFJO0FBQ3pCO0FBRUEsU0FBTyxDQUFDO0FBQ0oscUJBQWlCLElBQUk7QUFDekI7QUFHQSxTQUFPLENBQUMsa0JBQWtCLENBQUM7QUFDdkIscUJBQWlCLElBQUk7QUFDekI7QUFBQTs7O0FDL0RBO0FBUUEsR0FBQztBQUNHLGFBQVM7QUFDVCxpQkFBYTtBQUNiLHFCQUFpQjtBQUNqQixTQUFLLElBQUk7QUFDVCxhQUFTLElBQUk7QUFDYixnQkFBWSxJQUFJO0FBQ2hCLFdBQU8sSUFBSTtBQUNYLGVBQVcsSUFBSTtBQUNmLGlCQUFhLElBQUk7QUFDakIsZUFBVyxJQUFJO0FBQ2YsWUFBUSxJQUFJO0FBQ1osaUJBQWEsSUFBSTtBQUNqQixtQkFBZSxJQUFJO0FBQ25CLGdCQUFZO0FBQ1osaUJBQWE7QUFHYixLQUFDLEtBQUssQ0FBQztBQUNILGVBQVM7QUFDVCxxQkFBZTtBQUNuQjtBQUdBLEtBQUMsQ0FBQztBQUNFLGVBQVM7QUFDYjtBQUdBLEtBQUM7QUFDRyxpQkFBVztBQUNYLG1CQUFhO0FBQ2IsY0FBUTtBQUNaO0FBRUEsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsQ0FBQztBQUNFLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQUFDLENBQUM7QUFDRSxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsQ0FBQztBQUNFLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQUFDLENBQUM7QUFDRSxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsQ0FBQztBQUNFLGlCQUFXLElBQUk7QUFDZixpQkFBVyxJQUFJO0FBQ2YsY0FBUSxJQUFJO0FBQ1osbUJBQWEsSUFBSTtBQUNyQjtBQUVBLEtBQUMsQ0FBQztBQUNFLGlCQUFXLElBQUk7QUFDZixpQkFBVyxJQUFJO0FBQ2YsY0FBUSxJQUFJO0FBQ1osbUJBQWEsSUFBSTtBQUNyQjtBQUVBLEtBQUMsQ0FBQztBQUNFLGlCQUFXLElBQUk7QUFDZixpQkFBVyxJQUFJO0FBQ2YsY0FBUSxJQUFJO0FBQ1osbUJBQWEsSUFBSTtBQUNyQjtBQUVBLEtBQUMsQ0FBQztBQUNFLGFBQU8sSUFBSTtBQUNYLGlCQUFXLElBQUk7QUFDZixjQUFRLElBQUk7QUFDWixxQkFBZTtBQUNmLGVBQVM7QUFDYjtBQUVBLEtBQUMsQ0FBQztBQUNFLGVBQVM7QUFDVCxxQkFBZTtBQUNuQjtBQUNKO0FBRUEsR0FBQztBQUNHLGNBQVU7QUFDVixhQUFTO0FBQ1QsWUFBUTtBQUVSLEtBOUdIO0FBK0dPLGdCQUFVO0FBQ1YsV0FBSztBQUNMLGFBQU87QUFDUCxpQkFBVyxVQUFVLEdBQUcsRUFBRTtBQUMxQix3QkFBa0IsS0FBSztBQUN2QixjQUFRO0FBQ1IsZUFBUztBQUVULGVBQVMsSUFBSSxnQ0FBZ0MsTUFBTSxJQUFJO0FBRXZELE9BQUMsS0FBSztBQUNGLGVBQU87QUFDUCxjQUFNO0FBQ04sbUJBQVcsVUFBVSxJQUFJLEVBQUU7QUFDM0IsMEJBQWtCLEVBQUU7QUFDeEI7QUFDSjtBQUNKO0FBQUE7OztBQ3hJQTtBQVdBLEdBQUM7QUFDRyxjQUFVO0FBQ1YsYUFBUztBQUNULGlCQUFhO0FBQ2Isb0JBQWdCO0FBQ2hCLFlBQVE7QUFDUixXQUFPO0FBQ1AsWUFBUTtBQUVSLEtBQUM7QUFDRyxlQUFTO0FBQ1QsY0FBUTtBQUNSLGdCQUFVO0FBQ1Ysa0JBQVk7QUFDWixhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsY0FBUSxJQUFJO0FBQ1osa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLHFCQUFlLElBQUk7QUFDbkIsa0JBQVksSUFBSTtBQUNoQixxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksaUNBQWlDO0FBQUEsUUFBRSxhQUFhLElBQUksaUNBQWlDO0FBQUEsUUFDNUcsV0FBVyxJQUFJLGlDQUFpQztBQUFBLFFBQUUsY0FBYyxJQUFJO0FBSXhFLE9BQUMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBbEIsaUJBQW9DO0FBQUEsTUFDN0UsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBREosbUJBQ3dCLENBREosa0JBQ3VCLENBRHZCLGlCQUN5QyxFQUFFO0FBQ2hGLHNCQUFjLElBQUk7QUFDdEI7QUFFQSxPQUFDLENBQUM7QUFDRSxzQkFBYyxJQUFJO0FBQ2xCLGlCQUFTLElBQUksK0JBQStCLElBQUksK0JBQStCLElBQUk7QUFDbkYsd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUMsQ0FBQztBQUNFLHNCQUFjLElBQUk7QUFDbEIsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFFWCxTQUFDLENBakJILGFBaUJpQixLQUFLLENBakJILG1CQWlCdUIsQ0FqQkgsa0JBaUJzQixDQWpCdEIsaUJBaUJ3QztBQUFBLFFBQzdFLENBQUMsS0FBSyxDQWpCSCxrQkFpQnNCLENBbEJSLG1CQWtCNEIsQ0FsQlIsa0JBa0IyQixDQWxCM0IsaUJBa0I2QyxFQUFFO0FBQ2hGLHdCQUFjLElBQUk7QUFDbEIsc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQUFDLENBbkJIO0FBb0JNLHdCQUFjLElBQUk7QUFDdEI7QUFDSjtBQUdBLE9BQUMsQ0FBQztBQUFBLE1BQ0YsQ0FBQyxDQURDLGFBQ2EsSUFBSSxRQUFRLENBL0J6QixlQStCeUMsQ0ExQnpDO0FBQUEsTUEyQkYsQ0FBQyxDQUZDLGFBRWEsQ0FwQmIsY0FvQjRCLElBQUksUUFBUSxDQWhDeEMsZUFnQ3dELENBM0J4RDtBQTRCRSxzQkFBYyxJQUFJO0FBQ3RCO0FBRUEsT0FBQyxDQW5DTTtBQW9DSCxpQkFBUztBQUNULG9CQUFZLElBQUk7QUFDaEIsc0JBQWMsSUFBSTtBQUNsQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUM7QUFDRyxrQkFBVTtBQUNWLGtCQUFVO0FBQ1YsY0FBTTtBQUNOLGFBQUs7QUFDTCxtQkFBVyxJQUFJO0FBQ2YscUJBQWE7QUFDYixxQkFBYSxLQUFLLEdBQUcsRUFBRSxJQUFJLHdCQUF3QixFQUFFO0FBQ3JELG9CQUFZLEtBQUssR0FBRyxFQUFFLElBQUksd0JBQXdCLEVBQUU7QUFFcEQsU0FBQyxDQUFDO0FBQ0UsbUJBQVMsSUFBSTtBQUNqQjtBQUVBLFNBQUMsQ0FBQztBQUNFLG1CQUFTLElBQUk7QUFDakI7QUFFQSxTQUFDLENBQUM7QUFDRSxtQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFDSjtBQUdBLEtBdkZDLFlBdUZZLENBcEVZO0FBQUEsSUFxRXpCLENBQUMsQ0FyRTRDLGlCQXFFMUIsQ0F4RmxCO0FBQUEsSUF5RkQsQ0F0RTZDLGlCQXNFM0IsRUFBRSxDQXpGbkI7QUEwRkcsY0FBUTtBQUNaO0FBRUEsS0FBQztBQUNHLGVBQVM7QUFDVCxzQkFBZ0I7QUFDaEIsY0FBUTtBQUNSLGNBQVE7QUFFUiw0QkFBc0IsSUFBSTtBQUMxQixlQUFTLEVBQUU7QUFDWCxlQUFTO0FBRVQsT0FBQyxDQXBGb0I7QUFxRmpCLGdCQUFRO0FBQ1o7QUFDSjtBQUNKO0FBR0EsR0FBQyxlQUFlLENBdkhmLFNBdUh5QixDQTlHckI7QUErR0QsZ0JBQVksSUFBSTtBQUdoQixLQUFDLENBL0ZLLGFBK0ZTLEtBQUssQ0EvRkssbUJBK0ZlLENBL0ZLLGtCQStGYyxDQS9GZCxpQkErRmdDO0FBQUEsSUFDN0UsQ0FBQyxLQUFLLENBL0ZLLGtCQStGYyxDQWhHQSxtQkFnR29CLENBaEdBLGtCQWdHbUIsQ0FoR25CLGlCQWdHcUMsRUFBRTtBQUNoRixrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQyxDQXhGSztBQXlGRixrQkFBWSxJQUFJO0FBRWhCLE9BQUMsQ0F2R0MsYUF1R2EsS0FBSyxDQXZHQyxtQkF1R21CLENBdkdDLGtCQXVHa0IsQ0F2R2xCLGlCQXVHb0M7QUFBQSxNQUM3RSxDQUFDLEtBQUssQ0F2R0Msa0JBdUdrQixDQXhHSixtQkF3R3dCLENBeEdKLGtCQXdHdUIsQ0F4R3ZCLGlCQXdHeUMsRUFBRTtBQUNoRixvQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFFQSxLQUFDLENBNUdVO0FBNkdQLGtCQUFZLElBQUk7QUFDcEI7QUFDSjtBQU1BLEdBQUM7QUFDRyx3QkFBb0IsSUFBSTtBQUN4Qix5QkFBcUIsSUFBSTtBQUN6Qiw0QkFBd0IsSUFBSTtBQUNoQztBQUVBLEdBQUM7QUFDRyx3QkFBb0IsSUFBSTtBQUN4Qix5QkFBcUIsSUFBSTtBQUN6Qiw0QkFBd0IsSUFBSTtBQUNoQztBQU9BLEdBQUMsa0JBQWtCLENBbktsQixTQW1LNEIsQ0ExSnhCLFlBMEpxQyxDQTNIaEMsY0EySCtDLENBM0gvQztBQTRITixrQkFBYyxJQUFJO0FBQ3RCO0FBQUE7OztBQ2hMQTtBQVdBLGFBQVc7QUFDUDtBQUVBO0FBQ0o7QUFFQSxPQUFLO0FBQ0Qsb0JBQWdCO0FBQ2hCLHdCQUFvQjtBQUNwQix5QkFBcUI7QUFDekI7QUFHQSxHQUFDO0FBQ0csWUFBUTtBQUNSLFVBQU0sS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUMxQixlQUFXLE1BQU07QUFDakIsWUFBUTtBQUNSLFlBQVE7QUFDUixjQUFVO0FBQ1YsYUFBUztBQUNULGNBQVU7QUFDVixXQUFPO0FBQ1AsZUFBVztBQUNmO0FBRUEsT0FBSztBQUFBLEVBQ0wsUUFBUTtBQUNKLFdBQU8sSUFBSTtBQUNYLGFBQVM7QUFDYjtBQUVBLEdBQUM7QUFDRyxpQkFBYTtBQUNiLGVBQVcsSUFBSTtBQUNmLGlCQUFhLElBQUk7QUFDakIsaUJBQWEsSUFBSTtBQUNqQixZQUFRO0FBQ1IsbUJBQWUsSUFBSTtBQUNuQixvQkFBZ0IsSUFBSTtBQUNwQixXQUFPLElBQUk7QUFDWCxnQkFBWSxJQUFJO0FBQ2hCLFlBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsbUJBQWUsSUFBSTtBQUNuQixnQkFBWSxJQUFJO0FBQ2hCLGFBQVMsRUFBRTtBQUNYLG1CQUFlO0FBQ2YsZ0JBQVk7QUFDWjtBQUFBLE1BQVksV0FBVyxJQUFJLGtDQUFrQztBQUFBLE1BQUUsTUFBTSxJQUFJLGtDQUFrQztBQUFBLE1BQ3ZHLGFBQWEsSUFBSSxrQ0FBa0M7QUFBQSxNQUFFLGNBQWMsSUFBSSxrQ0FBa0M7QUFBQSxNQUN6RyxXQUFXLElBQUk7QUFFbkIsS0FBQztBQUNHLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxLQUFLLFdBQVcsQ0FBQyxpQkFBaUI7QUFBQSxJQUNuQyxDQUFDLENBQUM7QUFDRSxvQkFBYyxJQUFJO0FBQ3RCO0FBRUEsS0FBQyxLQUFLLFdBQVcsQ0FMQyxpQkFLaUI7QUFBQSxJQUNuQyxDQUFDLENBQUM7QUFDRSxvQkFBYyxJQUFJO0FBQ2xCLGVBQVMsSUFBSSxnQ0FBZ0MsSUFBSSxnQ0FBZ0MsSUFBSTtBQUNyRixzQkFBZ0IsSUFBSTtBQUNwQixrQkFBWSxJQUFJO0FBQ3BCO0FBR0EsS0FBQyxDQUFDO0FBQUEsSUFDRixDQUFDLENBREMsYUFDYSxJQUFJLFFBQVEsUUFBUSxDQWRqQyxlQWNpRCxDQVRqRDtBQVVFLG9CQUFjLElBQUk7QUFDdEI7QUFFQSxLQUFDLENBTEM7QUFNRSxPQUFDO0FBQ0csZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUdBLEtBQUMsZUFBZTtBQUFBLElBQ2hCLENBQUMsQ0FEQTtBQUVHLGtCQUFZLElBQUk7QUFFaEIsT0FBQyxLQUFLLFdBQVcsQ0E5QkgsaUJBOEJxQjtBQUFBLE1BQ25DLENBQUMsQ0E5Qkg7QUErQk0sb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUM7QUFBQSxNQUNELENBQUMsQ0E5Qkg7QUErQk0sb0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBR0EsS0FBQztBQUFBLElBQ0QsQ0FBQyxDQTNDaUI7QUE0Q2Qsa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxlQUFTO0FBQ2I7QUFFQSxLQUFDLENBQUM7QUFDRSxpQkFBVyxJQUFJO0FBQ2YscUJBQWUsSUFBSTtBQUNuQixzQkFBZ0IsSUFBSTtBQUN4QjtBQUVBLEtBQUMsQ0FBQztBQUNFLGlCQUFXLElBQUk7QUFDZixxQkFBZSxJQUFJO0FBQ25CLHNCQUFnQixJQUFJO0FBQ3hCO0FBQ0o7QUFNQSxHQUFDO0FBQ0csNkJBQXlCLElBQUk7QUFDN0IsK0JBQTJCLElBQUk7QUFDL0IsOEJBQTBCLElBQUk7QUFDOUIsdUNBQW1DLElBQUk7QUFDdkMscUNBQWlDLElBQUk7QUFDckMsMkNBQXVDLElBQUk7QUFDM0MsMkNBQXVDLElBQUk7QUFDM0MsZ0NBQTRCLElBQUk7QUFDaEMsc0NBQWtDLElBQUk7QUFDdEMsc0NBQWtDLElBQUk7QUFDdEMsd0NBQW9DLElBQUk7QUFDeEMseUJBQXFCLElBQUk7QUFDekIsa0NBQThCLElBQUk7QUFDbEMscUNBQWlDLElBQUk7QUFDckMsNkNBQXlDLElBQUk7QUFDN0MsMEJBQXNCLElBQUk7QUFDMUIsNkJBQXlCLElBQUk7QUFDN0IsNkJBQXlCLElBQUk7QUFDN0IsaUNBQTZCLElBQUk7QUFDakMsb0NBQWdDLElBQUk7QUFDcEMsb0NBQWdDLElBQUk7QUFDcEMsb0NBQWdDLElBQUk7QUFDcEMscUNBQWlDLElBQUk7QUFDckMscUNBQWlDLElBQUk7QUFDckMsdUNBQW1DLElBQUk7QUFDdkMsZ0NBQTRCLElBQUk7QUFDaEMsZ0NBQTRCLElBQUk7QUFDaEMsZ0NBQTRCLElBQUk7QUFDaEMsZ0NBQTRCLElBQUk7QUFDaEMsZ0NBQTRCLElBQUk7QUFDaEMsZ0NBQTRCLElBQUk7QUFFaEMsb0JBQWdCO0FBQ3BCO0FBR0EsR0FBQztBQUNHLGNBQVU7QUFDVixZQUFRO0FBQ1o7QUFHQSxHQUFDLGNBQWMsRUFBRSxDQXJJaEI7QUFzSUcsMEJBQXNCO0FBQzFCO0FBR0EsR0FBQztBQUNHLEtBM0lIO0FBQUEsSUE0SUcsQ0FBQztBQUFBLElBQ0QsQ0FSSDtBQUFBLElBU0csQ0FwREg7QUFBQSxJQXFERyxDQUFDO0FBQ0csYUFBTztBQUNYO0FBRUEsS0FQQyxXQU9XLENBQUM7QUFBQSxJQUNiLENBcEpILFlBb0pnQixDQUFDO0FBQ1YsYUFBTztBQUNYO0FBQ0o7QUFHQSxHQUFDLFFBQVEsS0FBSyxDQXBIUjtBQUFBLEVBcUhOLENBQUMsTUFBTSxLQUFLLENBckhOO0FBc0hGLFdBQU8sSUFBSTtBQUNmO0FBRUEsR0FBQztBQUNHLGFBQVM7QUFDVCxjQUFVO0FBRVYsS0FBQztBQUNHLGVBQVM7QUFDVCxrQkFBWTtBQUNaLGlCQUFXO0FBQ1gsZ0JBQVU7QUFDVixxQkFBZTtBQUNmLG1CQUFhO0FBQ2pCO0FBRUEsTUFBRTtBQUNFLGdCQUFVO0FBQ1YsV0FBSztBQUNMLFlBQU0sSUFBSTtBQUNWLGtCQUFZO0FBQ1osbUJBQWE7QUFDYixtQkFBYTtBQUNiLHNCQUFnQjtBQUNoQixhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNqQiwyQkFBcUI7QUFDckIsa0NBQTRCLElBQUk7QUFDaEMsMkJBQXFCLElBQUk7QUFDN0I7QUFFQSxNQUFFLEtBQUssQ0FBQztBQUNKLFlBQU07QUFDTixhQUFPLElBQUk7QUFDZjtBQUVBLE1BQUUsU0FBUyxFQUFFO0FBQ1QsV0FBSyxJQUFJO0FBQ1Qsa0JBQVk7QUFDaEI7QUFFQSxNQUFFLEtBQUssT0FBTyxFQUFFO0FBQUEsSUFDaEIsRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFO0FBQUEsSUFDekIsRUFBRSxRQUFRLE9BQU8sRUFBRTtBQUFBLElBQ25CLEVBQUUsUUFBUSxDQUZGLGVBRWtCLEVBQUU7QUFBQSxJQUM1QixFQUFFLENBQUMscUJBQXFCLEVBQUU7QUFBQSxJQUMxQixFQUFFLENBQUMsb0JBQW9CLENBN0tyQixjQTZLb0MsRUFBRTtBQUFBLElBQ3hDLEVBQUUsT0FBTyxDQUROLG9CQUMyQixLQUFLLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLHNCQUF3QixFQUFFO0FBQUEsSUFDdkYsRUFBRSxDQUFDLHNCQUFzQixFQUFFO0FBQUEsSUFDM0IsRUFBRSxPQUFPLENBQUMsdUJBQXVCLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEtBQUssQ0FBQyxnQkFDeEUsQ0FKRCxvQkFJc0IsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRTtBQUFBLElBQ3pELEVBQUUsS0FBSyxrQkFBa0IsRUFBRTtBQUFBLElBQzNCLEVBQUUsUUFBUSxrQkFBa0IsRUFBRTtBQUMxQixXQUFLLElBQUk7QUFDVCxrQkFBWTtBQUNaLGlCQUFXLElBQUk7QUFDZixtQkFBYSxJQUFJO0FBQ3JCO0FBRUEsTUFBRSxLQUFLLENBakJDLGVBaUJlLEVBQUU7QUFBQSxJQUN6QixFQUFFLFFBQVEsQ0FsQkYsZUFrQmtCLEVBQUU7QUFBQSxJQUM1QixFQUFFLENBYkMsc0JBYXNCLEVBQUU7QUFBQSxJQUMzQixFQUFFLE9BQU8sQ0FiQyx1QkFhdUIsS0FBSyxDQWJDLHVCQWF1QixDQWJDLE9BYU8sS0FBSyxDQWJDLGdCQWN4RSxDQWpCRCxvQkFpQnNCLEtBQUssRUFBRSxDQWJDLFNBYVMsRUFBRSxXQUFXLEVBQUU7QUFDckQsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxNQUFFLEtBQUssT0FBTyxFQUFFO0FBQUEsSUFDaEIsRUFBRSxRQUFRLE9BQU8sRUFBRTtBQUFBLElBQ25CLEVBQUUsQ0F4QkMscUJBd0JxQixFQUFFO0FBQUEsSUFDMUIsRUFBRSxDQXhCQyxvQkF3Qm9CLENBck1yQixjQXFNb0MsRUFBRTtBQUFBLElBQ3hDLEVBQUUsT0FBTyxDQXpCTixvQkF5QjJCLEtBQUssRUFBRSxDQXhCQyxvQkF3Qm9CLEVBQUUsQ0FBQyxzQkFBd0IsRUFBRTtBQUFBLElBQ3ZGLEVBQUUsS0FBSyxrQkFBa0IsRUFBRTtBQUFBLElBQzNCLEVBQUUsUUFBUSxrQkFBa0IsRUFBRTtBQUMxQixhQUFPLElBQUk7QUFDZjtBQUVBLE1BQUUsQ0FwTUEsY0FvTWUsRUFBRTtBQUFBLElBQ25CLEVBQUUsQ0FyTUEsYUFxTWMsSUFBSSxRQUFRLENBakN6QixzQkFpQ2dELEVBQUU7QUFDakQsYUFBTyxJQUFJO0FBQ2Y7QUFNQSxLQUFDLENBQUM7QUFFRSxRQUFFLENBclBUO0FBQUEsTUFzUE8sRUFBRSxFQUFFLEVBQUUsQ0F0UGI7QUF1UFcsNkJBQXFCLElBQUk7QUFDekIsMkJBQW1CLElBQUk7QUFDM0I7QUFHQSxRQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQTVQcEU7QUE2UFcsNkJBQXFCLElBQUk7QUFDekIsMkJBQW1CLElBQUk7QUFDM0I7QUFHQSxRQUFFLENBcER5RCxRQW9EaEQsRUFBRSxDQUFDO0FBQ1YsNkJBQXFCLEtBQUssSUFBSSxxQ0FBcUMsRUFBRSxJQUFJLDBCQUEwQixFQUFFO0FBQ3JHLDJCQUFtQixLQUFLLElBQUksd0NBQXdDLEVBQUUsSUFBSSwwQkFBMEIsRUFBRTtBQUMxRztBQUVBLFFBQUUsQ0FYeUMsZUFXekIsRUFBRSxDQUFDO0FBQ2pCLDZCQUFxQixLQUFLLElBQUkscUNBQXFDLEVBQUUsSUFBSSw0QkFBNEIsRUFBRTtBQUN2RywyQkFBbUIsS0FBSyxJQUFJLHdDQUF3QyxFQUFFLElBQUksNEJBQTRCLEVBQUU7QUFDNUc7QUFHQSxRQUFFLENBbEVILHFCQWtFeUIsQ0FBQztBQUNyQiw2QkFBcUIsSUFBSTtBQUN6QiwyQkFBbUIsSUFBSTtBQUMzQjtBQUVBLFFBQUUsQ0F2RUgscUJBdUV5QixDQUFDLHVDQUF1QyxDQWxSdkU7QUFtUlcsb0JBQVksS0FBSyxJQUFJLHFDQUFxQyxFQUFFLElBQUksd0NBQzVELEVBQUUsSUFBSSw0QkFBNEIsRUFBRSxJQUFJO0FBQzVDLDZCQUFxQixLQUFLLElBQUkscUNBQXFDLEVBQUUsSUFBSSwyQkFBMkIsRUFBRTtBQUN0RywyQkFBbUIsS0FBSyxJQUFJLHdDQUF3QyxFQUFFLElBQUksMkJBQTJCLEVBQUU7QUFDM0c7QUFHQSxRQUFFLFNBQVMsRUFBRTtBQUNULGFBQUssSUFBSTtBQUNiO0FBRUEsUUFBRSxJQUFJLEtBQUssUUFBUSxLQUFLLENBdkZwQixnQkF1RnFDLFFBQVEsUUFBUSxRQUFRLENBdkY3RCxnQkF1RjhFLENBcEZuRixzQkFxRkssQ0FwRkwsb0JBb0YwQixDQWpRM0IsZUFrUU0sT0FBTyxDQXJGWixvQkFxRmlDLEtBQUssRUFBRSxDQXBGTCxvQkFvRjBCLEVBQUUsQ0FBQyx1QkFDM0QsQ0FwRkwsdUJBb0Y2QixLQUFLLG1CQUFtQixRQUFRLG1CQUN4RCxPQUFPLENBcEZMLHVCQW9GNkIsS0FBSyxDQXBGTCx1QkFvRjZCLENBcEZMLE9Bb0ZhLEtBQUssQ0FwRkwsZ0JBcUZoRSxDQXhGVCxvQkF3RjhCLEtBQUssRUFBRSxDQXBGUCxTQW9GaUIsRUFBRSxZQUFZLEVBQUU7QUFDMUQsYUFBSyxJQUFJO0FBQ1Qsb0JBQVk7QUFDaEI7QUFDSjtBQUdBLEtBQUMsQ0FBQztBQUNFLFFBQUUsSUFBSSxLQUFLLFFBQVEsS0FBSyxDQXBHcEIsZ0JBb0dxQyxRQUFRLFFBQVEsUUFBUSxDQXBHN0QsZ0JBb0c4RSxDQWpHbkYsc0JBa0dLLENBakdMLG9CQWlHMEIsQ0E5UTNCLGVBK1FNLE9BQU8sQ0FsR1osb0JBa0dpQyxLQUFLLEVBQUUsQ0FqR0wsb0JBaUcwQixFQUFFLENBQUMsdUJBQzNELENBakdMLHVCQWlHNkIsS0FBSyxtQkFBbUIsUUFBUSxtQkFDeEQsT0FBTyxDQWpHTCx1QkFpRzZCLEtBQUssQ0FqR0wsdUJBaUc2QixDQWpHTCxPQWlHYSxLQUFLLENBakdMLGdCQWtHaEUsQ0FyR1Qsb0JBcUc4QixLQUFLLEVBQUUsQ0FqR1AsU0FpR2lCLEVBQUUsWUFBWSxFQUFFO0FBQzFELGFBQUs7QUFFTCxvQkFBWTtBQUNaLG9CQUFZO0FBQ1osbUJBQVcsRUFBRTtBQUNiLGlCQUFTLElBQUk7QUFDYixvQkFBWSxJQUFJO0FBQ2hCLHVCQUFlLElBQUk7QUFDbkIsaUJBQVM7QUFDYjtBQUNKO0FBQ0o7QUFPQSxHQXZFbUQsY0F1RXBDLENBQUM7QUFBQSxFQUNoQixDQUFDLFVBQVUsQ0FBQztBQUNSLG1CQUFlLElBQUk7QUFFbkIsV0FBTztBQUNQLGVBQVc7QUFFWCxLQWhNSCxRQWdNWTtBQUNMLGFBQU87QUFDWDtBQUVBLEtBQUMsS0FBSyxFQUFFLENBOVVYLFlBOFV3QixLQUFLLFdBQVcsQ0F0VG5CLGlCQXNUcUMsSUFBSSxlQUFlLENBaFR4RTtBQWlURSxlQUFTLElBQUksZ0NBQWdDLElBQUksZ0NBQWdDLElBQUk7QUFDckYsc0JBQWdCLElBQUk7QUFDcEIsa0JBQVksSUFBSTtBQUVoQixRQUFFLENBblZUO0FBb1ZXLGlCQUFTLEVBQUU7QUFDWCxvQkFBWTtBQUNoQjtBQUNKO0FBQ0o7QUFHQSxHQUFDO0FBQUEsRUFDRCxDQUFDO0FBQ0csY0FBVTtBQUNWLGFBQVM7QUFFVCxXQUFPO0FBQ1AsZUFBVztBQUVYLEtBek5ILFFBeU5ZO0FBQ0wsZUFBUztBQUNULGFBQU87QUFDWDtBQUVBLE1BQUU7QUFDRSxnQkFBVTtBQUNWLFdBQUs7QUFDTCxrQkFBWSxLQUFLLEdBQUcsRUFBRSxJQUFJLGVBQWUsRUFBRTtBQUMzQyxtQkFBYTtBQUNiLGVBQVM7QUFDYjtBQUNKO0FBTUEsR0ExQkM7QUEyQkcsTUFBRSxDQUFDO0FBQ0MsWUFBTSxJQUFJO0FBQ1YsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxNQUFFLENBM1hMO0FBNFhPLG9CQUFjLEtBQUssSUFBSSwwQkFBMEIsRUFBRSxFQUFFLEVBQUUsSUFBSTtBQUMvRDtBQUNKO0FBRUEsR0FwQ0M7QUFxQ0csTUFBRSxDQUFDO0FBQ0MsYUFBTyxJQUFJO0FBQ1gsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxNQUFFLENBdFlMO0FBdVlPLHFCQUFlLEtBQUssSUFBSSwwQkFBMEIsRUFBRSxFQUFFLEVBQUUsSUFBSTtBQUNoRTtBQUNKO0FBQUE7OztBQ3BiQTtBQU1BLEdBQUM7QUFDRyxhQUFTO0FBQ1QsaUJBQWE7QUFDYixXQUFPO0FBRVAsS0FBQyxtQkFBbUIsRUFBRSxDQUFyQjtBQUNHLDJCQUFxQixFQUFFO0FBQzNCO0FBRUEsTUFBRSxDQUFDLFVBQVUsS0FBSyxDQUFDO0FBQ2YsNEJBQXNCO0FBQzFCO0FBR0EsTUFBRSxDQUFDLFdBQVcsS0FBSztBQUFBLElBQ25CLEVBQUUsQ0FBQyxlQUFlLEtBQUs7QUFBQSxJQUN2QixFQUFFLENBUEMsVUFPVSxLQUFLO0FBQUEsSUFDbEIsRUFBRSxDQVJDLFVBUVUsS0FBSyxjQUFjLEVBQUUsQ0FSZjtBQUFBLElBU25CLEVBQUUsQ0FBQyxhQUFhLEtBQUssY0FBYyxFQUFFLENBSmxDO0FBQUEsSUFLSCxFQUFFLENBQUMsV0FBVyxLQUFLO0FBQUEsSUFDbkIsRUFBRSxDQUFDLFVBQVUsS0FBSyxjQUFjLEVBQUUsQ0FYZjtBQUFBLElBWW5CLEVBQUUsQ0FBQyxPQUFPLEtBQUssY0FBYyxFQUFFLENBQUM7QUFBQSxJQUNoQyxFQUFFLENBQUMsZUFBZSxLQUFLO0FBQUEsSUFDdkIsRUFBRSxDQUFDLGlCQUFpQixLQUFLLGNBQWMsRUFBRSxDQUFDO0FBQUEsSUFDMUMsRUFBRSxDQUFDLGNBQWMsS0FBSyxjQUFjLEVBQUUsQ0FBQztBQUFBLElBQ3ZDLEVBQUUsQ0FBQyxTQUFTLEtBQUs7QUFBQSxJQUNqQixFQUFFLENBREMsU0FDUyxLQUFLLGNBQWMsRUFBRSxDQUFDO0FBQzlCLGlDQUEyQjtBQUMzQiwrQkFBeUI7QUFDekIsMkJBQXFCLEVBQUU7QUFDM0I7QUFFQSxNQUFFLENBbEJDLFdBa0JXLEtBQUs7QUFBQSxJQUNuQixFQUFFLENBbEJDLGVBa0JlLEtBQUs7QUFBQSxJQUN2QixFQUFFLENBekJDLFVBeUJVLEtBQUs7QUFBQSxJQUNsQixFQUFFLENBMUJDLFVBMEJVLEtBQUssYUFBYSxFQUFFLENBMUJkO0FBQUEsSUEyQm5CLEVBQUUsQ0FsQkMsYUFrQmEsS0FBSyxhQUFhLEVBQUUsQ0F0QmpDO0FBQUEsSUF1QkgsRUFBRSxDQWxCQyxXQWtCVyxLQUFLO0FBQUEsSUFDbkIsRUFBRSxDQWhCQyxlQWdCZSxLQUFLO0FBQUEsSUFDdkIsRUFBRSxDQW5CQyxVQW1CVSxLQUFLLGFBQWEsRUFBRSxDQTlCZDtBQUFBLElBK0JuQixFQUFFLENBbkJDLE9BbUJPLEtBQUssYUFBYSxFQUFFLENBbkJFO0FBQUEsSUFvQmhDLEVBQUUsQ0FsQkMsaUJBa0JpQixLQUFLLGFBQWEsRUFBRSxDQWxCRTtBQUFBLElBbUIxQyxFQUFFLENBbEJDLGNBa0JjLEtBQUssYUFBYSxFQUFFLENBbEJFO0FBQUEsSUFtQnZDLEVBQUUsQ0FsQkMsU0FrQlMsS0FBSztBQUFBLElBQ2pCLEVBQUUsQ0FuQkMsU0FtQlMsS0FBSyxhQUFhLEVBQUUsQ0FsQkU7QUFBQSxJQW1CbEMsRUFBRSxDQXBCQyxTQW9CUyxLQUFLLGFBQWEsRUFBRSxDQUFDO0FBQzdCLCtCQUF5QjtBQUN6Qiw2QkFBdUI7QUFDdkIseUJBQW1CLEVBQUU7QUFDekI7QUFJQSxNQUFFLENBN0JDLGNBNkJjLEtBQUssYUFBYSxFQUFFLENBQUMsdUJBQXVCLENBOUJuQjtBQUFBLElBK0IxQyxFQUFFLENBbENDLFVBa0NVLEtBQUssYUFBYSxFQUFFLENBL0JTLFFBK0JBLENBQUM7QUFBQSxJQUMzQyxFQUFFLENBOUJDLFNBOEJTLENBQUMsb0JBQW9CLEtBQUssYUFBYSxFQUFFLENBVnBCLGdCQVVxQyxDQUFDO0FBQ25FLCtCQUF5QjtBQUN6Qiw2QkFBdUI7QUFDM0I7QUFFQSxLQXJDMEM7QUFzQ3RDLHlCQUFtQjtBQUNuQixxQkFBZTtBQUNuQjtBQUdBLE1BQUUsQ0F6RGlCO0FBQUEsSUEwRG5CLEVBQUUsQ0FBQztBQUFBLElBQ0gsRUFBRSxDQWxEQztBQUFBLElBbURILEVBQUUsQ0E3Q0M7QUFBQSxJQThDSCxFQUFFLENBakRDO0FBQUEsSUFrREgsRUFBRSxDQTlDQztBQUFBLElBK0NILEVBQUUsQ0FBQztBQUNDLFlBQU0sRUFBRSxFQUFFO0FBQ1YsYUFBTztBQUNYO0FBRUEsTUFBRSxDQVZDLGVBVWUsRUFBRSxDQXBFRDtBQUFBLElBcUVuQixFQUFFLENBNURDLGNBNERjLEVBQUUsQ0FyRUE7QUFBQSxJQXNFbkIsRUFBRSxDQXZEQyxlQXVEZSxFQUFFLENBdEVEO0FBQUEsSUF1RW5CLEVBQUUsQ0FSQyxjQVFjLEVBQUUsQ0F2RUE7QUF3RWYsYUFBTztBQUNYO0FBRUEsTUFBRSxDQTdEd0M7QUFBQSxJQThEMUMsQ0FoRkM7QUFBQSxJQWlGRCxDQUFDO0FBQ0csWUFBTSxFQUFFLEVBQUU7QUFDZDtBQUVBLEtBQUMsUUFBUTtBQUNMLE9BcEVzQztBQXFFbEMsZUFBTztBQUNYO0FBRUEsT0F6Q3VDO0FBMENuQyxlQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsS0EvRkM7QUFBQSxJQWdHRCxDQWZDO0FBZ0JHLGtCQUFZO0FBQ1osb0JBQWM7QUFDZCxvQkFBYztBQUNkLGVBQVM7QUFDVCxtQkFBYTtBQUNiLHVCQUFpQjtBQUNqQixlQUFTLElBQUk7QUFDYixpQkFBVyxJQUFJO0FBQ2Ysa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxvQkFBYyxJQUFJO0FBQ2xCLGlCQUFXLElBQUk7QUFDZixtQkFBYSxJQUFJO0FBRWpCLE9BQUM7QUFDRyxtQ0FBMkIsSUFBSTtBQUMvQixpQ0FBeUIsSUFBSTtBQUNqQztBQUVBLE9BQUM7QUFDRyxpQ0FBeUIsSUFBSTtBQUM3QiwrQkFBdUIsSUFBSTtBQUMvQjtBQUNKO0FBRUEsTUFBRSxDQUFDO0FBQUEsSUFDSCxFQUFFLENBeERDLGNBd0RjLEVBQUUsQ0FEaEI7QUFFQyxxQkFBZTtBQUNuQjtBQUdBLE1BQUUsQ0FOQyxRQU1RO0FBQUEsSUFDWCxFQUFFLENBOURDLGFBOERhLGFBQWEsRUFBRSxDQVA1QjtBQVFDLGlDQUEyQixJQUFJO0FBQy9CLCtCQUF5QixJQUFJO0FBQ2pDO0FBRUEsTUFBRSxDQVpDLFFBWVE7QUFBQSxJQUNYLEVBQUUsQ0FwRUMsYUFvRWEsWUFBWSxFQUFFLENBYjNCO0FBY0MsK0JBQXlCLElBQUk7QUFDN0IsNkJBQXVCLElBQUk7QUFDL0I7QUFFQSxVQUFNO0FBQUEsSUFDTixLQUFLO0FBQUEsSUFDTCxRQUFRO0FBQ0osaUNBQTJCLElBQUk7QUFDL0IsK0JBQXlCLElBQUk7QUFDakM7QUFFQSxLQWhGRyxhQWdGVztBQUNWO0FBQUEsTUFDQTtBQUNJLGlDQUF5QjtBQUN6QixtQ0FBMkIsSUFBSTtBQUMvQixpQ0FBeUIsSUFBSTtBQUNqQztBQUNKO0FBRUEsVUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLElBQ0wsUUFBUTtBQUNKLCtCQUF5QixJQUFJO0FBQzdCLDZCQUF1QixJQUFJO0FBQy9CO0FBRUEsS0FoR0csYUFnR1c7QUFDVjtBQUFBLE1BQ0E7QUFDSSxtQ0FBMkI7QUFDM0IsaUNBQXlCLElBQUk7QUFDN0IsK0JBQXVCLElBQUk7QUFDL0I7QUFDSjtBQUVBLE1BQUUsQ0FsREMsUUFrRFEsQ0FBQztBQUFBLElBQ1osRUFBRSxDQW5EQyxRQW1EUTtBQUFBLElBQ1gsRUFBRSxDQTNHQyxjQTJHYyxFQUFFLENBcERoQixRQW9EeUIsQ0FGaEI7QUFBQSxJQUdaLEVBQUUsQ0E1R0MsY0E0R2MsRUFBRSxDQXJEaEIsUUFxRHlCO0FBQ3hCLGVBQVM7QUFDYjtBQUVBLE1BQUUsQ0F6REMsUUF5RFEsQ0FQQyxjQU9jLEVBQUU7QUFBQSxJQUM1QixFQUFFLENBMURDLFFBMERRLE9BQU8sRUFBRTtBQUFBLElBQ3BCLEVBQUUsQ0FsSEMsY0FrSGMsRUFBRSxDQTNEaEIsUUEyRHlCLENBVGhCLGNBUytCLEVBQUU7QUFBQSxJQUM3QyxFQUFFLENBbkhDLGNBbUhjLEVBQUUsQ0E1RGhCLFFBNER5QixPQUFPLEVBQUU7QUFDakMsZUFBUztBQUNiO0FBR0EsS0ExR0M7QUEyR0csZUFBUztBQUNULGdCQUFVO0FBRVYsT0FBQztBQUNHLGdCQUFRO0FBQ1Isd0JBQWdCO0FBQ2hCLGtCQUFVO0FBQ1YsYUFBSztBQUNMLDRCQUFvQjtBQUNwQixvQkFBWSxLQUFLLEdBQUcsRUFBRSxJQUFJLHFCQUFxQixFQUFFO0FBQ2pELDZCQUFxQixLQUFLLEdBQUcsRUFBRSxJQUFJLG9CQUFvQixFQUFFO0FBQzdEO0FBRUEsT0FBQztBQUNHLGdCQUFRO0FBQ1Isa0JBQVU7QUFDVixhQUFLO0FBQ0wsNEJBQW9CO0FBQ3BCLG9CQUFZLEtBQUssR0FBRyxFQUFFLElBQUksd0JBQXdCLEVBQUU7QUFDcEQsNkJBQXFCLEtBQUssR0FBRyxFQUFFLElBQUksdUJBQXVCLEVBQUU7QUFDaEU7QUFDSjtBQUNKO0FBQUE7OztBQzdOQTtBQWFBLEdBQUM7QUFDRyxXQUFPLElBQUk7QUFDWCxxQkFBaUIsSUFBSTtBQUNyQixzQkFBa0IsSUFBSTtBQUN0QixjQUFVLElBQUk7QUFDZCxlQUFXLElBQUk7QUFDZixxQkFBaUIsSUFBSTtBQUNyQixpQkFBYSxJQUFJO0FBQ2pCLDRCQUF3QixJQUFJO0FBQzVCLDJCQUF1QixJQUFJO0FBQzNCLHFCQUFpQixJQUFJO0FBQ3JCLGlCQUFhLElBQUk7QUFDakIsbUJBQWUsSUFBSTtBQUNuQiw4QkFBMEIsSUFBSTtBQUM5Qix5QkFBcUIsSUFBSTtBQUN6QiwrQkFBMkIsSUFBSTtBQUMvQiwwQkFBc0IsSUFBSTtBQUMxQix3QkFBb0IsSUFBSTtBQUN4Qiw4QkFBMEIsSUFBSTtBQUM5QiwrQkFBMkIsSUFBSTtBQUMvQix1QkFBbUIsSUFBSTtBQUN2Qiw2QkFBeUIsSUFBSTtBQUM3QiwrQkFBMkIsSUFBSTtBQUMvQiwyQkFBdUIsSUFBSTtBQUMzQixpQ0FBNkIsSUFBSTtBQUNqQywwQkFBc0IsSUFBSTtBQUMxQixrQ0FBOEIsSUFBSTtBQUNsQywrQkFBMkIsSUFBSTtBQUMvQixpQ0FBNkIsSUFBSTtBQUNqQyw0QkFBd0IsSUFBSTtBQUM1QixnQ0FBNEIsSUFBSTtBQUNoQyxrQ0FBOEIsSUFBSTtBQUNsQyw4QkFBMEIsSUFBSTtBQUU5QiwyQkFBdUIsSUFBSTtBQUMzQiw2QkFBeUIsSUFBSTtBQUM3Qiw4QkFBMEIsSUFBSTtBQUM5Qix3QkFBb0IsSUFBSTtBQUN4Qix1QkFBbUIsSUFBSTtBQUV2QixnQkFBWSxJQUFJO0FBQ2hCLFlBQVEsSUFBSTtBQUNaLDBCQUFzQixJQUFJO0FBQzFCLGdDQUE0QixJQUFJO0FBR2hDLFdBQU87QUFDUCxjQUFVO0FBQ1YsYUFBUyxFQUFFO0FBQ1gsYUFBUztBQUNULGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixtQkFBZSxJQUFJO0FBR25CLEtBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxDQUFDO0FBQ25CLGlCQUFXO0FBQ2Y7QUFHQSxLQUFDLENBQUM7QUFDRSxnQkFBVTtBQUNWLGVBQVM7QUFDVCxlQUFTO0FBQ1QsY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQyxDQUFDO0FBQ0Usa0JBQVk7QUFDaEI7QUFFQSxLQUFDLFlBQVksQ0FBQztBQUNWLGFBQU87QUFDWDtBQUVBLEtBQUM7QUFDRyxhQUFPO0FBQ1AsZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLGVBQVM7QUFDVCxtQkFBYTtBQUNiLGVBQVM7QUFDVCx1QkFBaUI7QUFDakIsY0FBUTtBQUNaO0FBRUEsS0FSQyxnQkFRZ0IsQ0FBQztBQUFBLElBQ2xCLENBQUM7QUFDRyxlQUFTO0FBQ2I7QUFFQSxLQXRCYztBQXVCVjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQ0ksaUJBQVM7QUFDVCxnQkFBUTtBQUNaO0FBQ0o7QUFFQSxLQUFDO0FBQ0csZ0JBQVU7QUFHVixPQUFDO0FBQ0csaUJBQVM7QUFDVCxlQUFPO0FBQ1Asa0JBQVU7QUFDVixnQkFBUTtBQUNSLGlCQUFTO0FBQ1QseUJBQWlCO0FBQ2pCLG1CQUFXO0FBQ1gsb0JBQVk7QUFFWixTQUFDLEtBQUssQ0FBQztBQUNILHFCQUFXO0FBQ2Y7QUFDSjtBQUNKO0FBRUEsS0F0REM7QUF1REcsa0JBQVk7QUFDWixlQUFTLElBQUk7QUFDYixjQUFRO0FBR1IsT0E1RFUsZ0JBNERPO0FBQ2IsaUJBQVM7QUFDVCxxQkFBYTtBQUNiLGFBQUssSUFBSTtBQUNiO0FBRUEsT0FsRVUsZ0JBa0VPLENBaERwQjtBQWlETyxrQkFBVTtBQUNWLGVBQU87QUFDUCxnQkFBUTtBQUNSLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFHQSxLQTNFQyxZQTJFWSxDQTNFQztBQTRFVixjQUFRO0FBQ1IsYUFBTztBQUNQLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsYUFBTztBQUNQLGNBQVEsRUFBRTtBQUNWLGVBQVMsSUFBSTtBQUNiLHFCQUFlO0FBQ2Ysa0JBQVksV0FBVyxJQUFJLHVCQUF1QixFQUFFLE1BQU0sSUFBSTtBQUU5RDtBQUNJLGlCQUFTO0FBQ1QsbUJBQVcsSUFBSTtBQUNmLHFCQUFhLElBQUk7QUFDakIsZUFBTyxJQUFJO0FBQ1gsZUFBTztBQUNYO0FBRUEsT0FBQyxDQUFDO0FBQ0Usb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFFWCxTQWhGUDtBQWlGVyxpQkFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUNKO0FBRUEsS0F4R0MsWUF3R1ksQ0FwR1o7QUFxR0csY0FBUTtBQUNSLGFBQU87QUFDUCxjQUFRLEVBQUU7QUFDVixhQUFPO0FBQ1AscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxXQUFXLElBQUksdUJBQXVCLEVBQUUsTUFBTSxJQUFJO0FBRzlELE9BeEdIO0FBeUdPLGlCQUFTLElBQUk7QUFDYixlQUFPO0FBQ1AsYUFBSyxJQUFJO0FBQ1QsZ0JBQVEsRUFBRTtBQUNWLGVBQU87QUFDUCxlQUFPLElBQUk7QUFDWCx1QkFBZSxJQUFJO0FBQ25CLHFCQUFhLElBQUk7QUFDakIsb0JBQVksV0FBVyxJQUFJLHVCQUF1QixFQUFFLE1BQU0sSUFBSTtBQUc5RCxTQTVHVTtBQTZHTixrQkFBUTtBQUNSLGlCQUFPO0FBQ1AsdUJBQWE7QUFDYixpQkFBTyxJQUFJO0FBQ1gscUJBQVcsSUFBSTtBQUNuQjtBQUVBLFNBQUM7QUFDRyxpQkFBTztBQUNQLGlCQUFPLElBQUk7QUFDWCxxQkFBVyxJQUFJO0FBQ2YsdUJBQWEsSUFBSTtBQUNyQjtBQUVBLFNBQUMsS0FBSyxDQUFDLGlCQUFpQjtBQUFBLFFBQ3hCLENBQUMsQ0EvQ0g7QUFBQSxRQWdERSxDQUFDLENBQUM7QUFBQSxRQUNGLENBQUM7QUFDRyxzQkFBWSxJQUFJO0FBQ3BCO0FBR0EsU0FBQztBQUNHLG1CQUFTLEVBQUU7QUFDZjtBQUVBLFNBQUMsS0FBSyxDQVpDLGlCQVlpQixPQUFPLENBdklyQjtBQUFBLFFBd0lWLENBQUMsQ0EzREgsY0EyRGtCLENBeElOO0FBQUEsUUF5SVYsQ0FBQyxDQVpDLGNBWWMsQ0F6SU47QUFBQSxRQTBJVixDQUFDLGVBQWUsQ0ExSU47QUEySU4saUJBQU8sSUFBSTtBQUNmO0FBRUEsU0FBQyxLQUFLLENBbkJDLGlCQW1CaUIsT0FBTyxDQTFCOUI7QUFBQSxRQTJCRCxDQUFDLENBbEVILGNBa0VrQixDQTNCZjtBQUFBLFFBNEJELENBQUMsQ0FuQkMsY0FtQmMsQ0E1QmY7QUFBQSxRQTZCRCxDQUFDLGVBQWUsQ0E3QmY7QUE4QkcsaUJBQU8sSUFBSTtBQUNmO0FBR0EsU0FBQztBQUFBLFFBQ0QsQ0FBQztBQUNHLGtCQUFRO0FBQ1IscUJBQVcsSUFBSTtBQUNmLGlCQUFPLElBQUk7QUFDZjtBQUVBLFNBUEM7QUFRRyxtQkFBUyxJQUFJO0FBR2IsV0FBQztBQUNHLGlDQUFxQjtBQUN6QjtBQUlBLFdBQUMsS0FBSztBQUFBLFVBQ04sQ0FBQyxZQUFZLE9BQU8sQ0FBQyxXQUFXO0FBQzVCLG1CQUFPLEdBQUc7QUFDZDtBQUNKO0FBRUEsU0F0QkM7QUF1QkcsbUJBQVMsSUFBSTtBQUNqQjtBQUVBLFNBQUMsS0FBSyxDQXREQyxpQkFzRGlCLE9BQU8sSUFBSSxDQTNCbEMscUJBMkJ3RCxDQTFCeEQ7QUFBQSxRQTJCRCxDQUFDLENBckdILGNBcUdrQixJQUFJLENBNUJuQixxQkE0QnlDLENBM0J6QztBQUFBLFFBNEJELENBQUMsQ0F0REMsY0FzRGMsSUFBSSxDQTdCbkIscUJBNkJ5QyxDQTVCekM7QUE2QkcsaUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFHQSxPQUFDLENBNUdDO0FBNkdFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBRVgsVUFBRSxDQXJNVDtBQXNNVyxpQkFBTyxJQUFJO0FBRVgsV0FoTU07QUFBQSxVQWlNTixDQUFDO0FBQ0csbUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFDSjtBQUdBLE9BQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQWhOekI7QUFpTk8sb0JBQVksSUFBSTtBQUVoQixTQXZGQztBQXdGRyxpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQS9NVTtBQWdOTixpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQTdEQztBQUFBLFFBOERELENBN0RDO0FBOERHLGlCQUFPLElBQUk7QUFDZjtBQUNKO0FBQ0o7QUFRQSxLQWpQQyxZQWlQWSxFQUFFLEtBQUs7QUFDaEIsa0JBQVksSUFBSTtBQUNwQjtBQUdBLEtBdFBDLFlBc1BZLENBaE5SO0FBaU5ELGtCQUFZLElBQUk7QUFDaEIsZUFBUyxJQUFJO0FBQ2IscUJBQWUsSUFBSTtBQUNuQixjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGtCQUFZLElBQUk7QUFDcEI7QUFHQSxLQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDaEIsZUFBUztBQUNULHNCQUFnQjtBQUNoQixjQUFRLElBQUksbUJBQW1CO0FBRS9CLE9BQUM7QUFDRywyQkFBbUIsSUFBSTtBQUMzQjtBQUNKO0FBRUEsS0FWQyxTQVVTLENBVkMsUUFVUSxDQUFDO0FBQ2hCLGNBQVE7QUFFUixPQUFDO0FBQ0csMEJBQWtCLElBQUk7QUFDMUI7QUFHQSxPQUFDLEtBQUs7QUFDRixvQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFRQSxLQUFDLENBbkdnQztBQW9HN0IsaUJBQVc7QUFFWCxPQS9SSCxZQStSZ0IsQ0EzUmhCLFdBMlI0QixDQXRSNUI7QUF1Uk8sd0JBQWdCO0FBQ2hCLHlCQUFpQjtBQUdqQixTQTdIQyxtQkE2SG1CO0FBQ2hCLCtCQUFxQjtBQUN6QjtBQUNKO0FBQ0o7QUFHQSxLQUFDLENBNVRNO0FBNlRILGFBQU8sSUFBSTtBQUNYLHVCQUFpQixJQUFJO0FBQ3JCLHdCQUFrQixJQUFJO0FBQ3RCLGdCQUFVLElBQUk7QUFFZCxtQkFBYSxJQUFJO0FBQ2pCLDhCQUF3QixJQUFJO0FBQzVCLDZCQUF1QixJQUFJO0FBQzNCLHVCQUFpQixJQUFJO0FBQ3JCLG1CQUFhLElBQUk7QUFDakIscUJBQWUsSUFBSTtBQUNuQixnQ0FBMEIsSUFBSTtBQUM5QiwyQkFBcUIsSUFBSTtBQUN6QixpQ0FBMkIsSUFBSTtBQUMvQiw0QkFBc0IsSUFBSTtBQUMxQiwwQkFBb0IsSUFBSTtBQUN4QixnQ0FBMEIsSUFBSTtBQUM5QixpQ0FBMkIsSUFBSTtBQUMvQix5QkFBbUIsSUFBSTtBQUN2QiwrQkFBeUIsSUFBSTtBQUM3QixpQ0FBMkIsSUFBSTtBQUMvQiw2QkFBdUIsSUFBSTtBQUMzQixtQ0FBNkIsSUFBSTtBQUNqQyw0QkFBc0IsSUFBSTtBQUMxQixvQ0FBOEIsSUFBSTtBQUNsQyxpQ0FBMkIsSUFBSTtBQUMvQiw2QkFBdUIsSUFBSTtBQUMzQiwrQkFBeUIsSUFBSTtBQUM3QixnQ0FBMEIsSUFBSTtBQUM5QiwwQkFBb0IsSUFBSTtBQUN4Qix5QkFBbUIsSUFBSTtBQUN2QixrQkFBWSxJQUFJO0FBQ2hCLGNBQVEsSUFBSTtBQUNaLDRCQUFzQixJQUFJO0FBQzFCLGtDQUE0QixJQUFJO0FBRWhDLGVBQVMsSUFBSTtBQUNiLGtCQUFZLElBQUk7QUFDaEIscUJBQWUsSUFBSTtBQU1uQixRQUFFLENBeFZMO0FBeVZPLGlCQUFTO0FBQ1QscUJBQWE7QUFDYixtQkFBVztBQUNYLGFBQUssSUFBSTtBQUNULGlCQUFTO0FBQ2I7QUFHQSxRQUFFLENBaldMLFlBaVdrQixFQUFFLENBN1ZwQjtBQThWTyxlQUFPO0FBQ1AsZ0JBQVE7QUFFUixVQUFFLENBNVZUO0FBNlZXLG1CQUFTLElBQUk7QUFDYix5QkFBZSxJQUFJO0FBQ3ZCO0FBR0EsU0FBQyxDQUFDO0FBQUEsUUFDRixDQUFDLENBQUM7QUFBQSxRQUNGLENBQUMsQ0FBQztBQUNFLG1CQUFTO0FBQ1QsdUJBQWE7QUFDakI7QUFFQSxTQUFDLENBTkM7QUFBQSxRQU9GLENBQUMsQ0FOQztBQU9FLCtCQUFxQjtBQUN6QjtBQUVBLFNBQUMsQ0FYQyxrQkFXa0IsRUFBRSxDQVZwQjtBQVdFLCtCQUFxQjtBQUN6QjtBQUNKO0FBQ0o7QUFDSjtBQUVBLEdBOVhLO0FBK1hELGNBQVU7QUFDZDtBQUdBLEdBcFpXO0FBcVpQLFdBQU87QUFFUCxLQWxZQztBQW1ZRyxhQUFPO0FBQ1g7QUFFQSxLQXBXSztBQXFXRCxXQUFLO0FBQ0wsWUFBTTtBQUNWO0FBRUEsS0EvWWM7QUFnWlYsYUFBTztBQUNYO0FBQ0o7QUFHQSxHQUFDO0FBQ0csYUFBUyxJQUFJLHNCQUFzQixJQUFJLHNCQUFzQixJQUFJO0FBQ2pFLG9CQUFnQixJQUFJO0FBQ3BCLGFBQVM7QUFDYjtBQUVBLEdBQUMsUUFBUSxDQXBlUjtBQXFlRyxXQUFPO0FBQ1g7QUFBQTs7O0FDbmZBO0FBUUEsR0FBQztBQUNHLGFBQVM7QUFDVCxlQUFXO0FBQ1gsaUJBQWE7QUFDYixxQkFBaUI7QUFDakIsU0FBSyxJQUFJO0FBQ1QsWUFBUTtBQUNSLGdCQUFZO0FBQ1osZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGtCQUFjO0FBQ2QsbUJBQWUsSUFBSTtBQUNuQixhQUFTLElBQUk7QUFDakI7QUFHQSxHQUFDO0FBQUEsRUFDRCxDQWxCQyxXQWtCVyxDQUFDLGdCQUFnQixDQUFDO0FBQUEsRUFDOUIsQ0FuQkMsV0FtQlcsQ0FEQyxnQkFDZ0IsQ0FBQztBQUFBLEVBQzlCLENBcEJDLFdBb0JXLENBQUMsbUJBQW1CLENBQUM7QUFBQSxFQUNqQyxDQXJCQyxXQXFCVyxDQURDLG1CQUNtQixDQUFDO0FBQzdCLGFBQVM7QUFDVCxlQUFXO0FBQ1gsaUJBQWE7QUFDYixTQUFLLElBQUk7QUFDVCxZQUFRO0FBQ1IsZ0JBQVk7QUFDWixlQUFXO0FBQ2Y7QUFHQSxHQWhDQyxXQWdDVyxDQWRDLGdCQWNnQixDQWRDLDRCQWM0QjtBQUFBLEVBQzFELENBakNDLFdBaUNXLENBZkMsZ0JBZWdCLENBZEMsNkJBYzZCO0FBQUEsRUFDM0QsQ0FsQ0MsV0FrQ1csQ0FkQyxtQkFjbUIsQ0FkQywrQkFjK0I7QUFBQSxFQUNoRSxDQW5DQyxXQW1DVyxDQWZDLG1CQWVtQixDQWRDLGdDQWNnQztBQUM3RCxlQUFXO0FBQ2Y7QUFFQSxHQXRCQztBQXVCRyxxQkFBaUI7QUFDckI7QUFFQSxHQTNDQztBQTRDRyxLQUFDLENBMUJRLGdCQTBCUyxDQXpCUTtBQUFBLElBMEIxQixDQUFDLENBekJRLG1CQXlCWSxDQXhCUTtBQXlCekIsdUJBQWlCO0FBQ3JCO0FBRUEsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLHVCQUFpQjtBQUNyQjtBQUVBLEtBVkM7QUFBQSxJQVdELENBVEM7QUFBQSxJQVVELENBVEM7QUFBQSxJQVVELENBVEM7QUFBQSxJQVVELENBVEM7QUFVRyxjQUFRO0FBQ1o7QUFHQSxLQWZDO0FBQUEsSUFnQkQsQ0FmQztBQUFBLElBZ0JELENBbkJDO0FBQUEsSUFvQkQsQ0FuQkM7QUFvQkcsa0JBQVk7QUFDWixtQkFBYTtBQUNiLGVBQVM7QUFDVCxtQkFBYTtBQUNiLHVCQUFpQjtBQUNqQixnQkFBVTtBQUNWLGdCQUFVO0FBQ1YsMkJBQXFCO0FBQ3JCLG1CQUFhO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsY0FBUSxJQUFJO0FBQ1osY0FBUTtBQUNSLGNBQVEsRUFBRTtBQUNWLGVBQVM7QUFDVCxxQkFBZSxJQUFJO0FBQ25CLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSxrQ0FBa0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxrQ0FBa0M7QUFBQSxRQUN2RyxjQUFjLElBQUksa0NBQWtDO0FBQUEsUUFBRSxXQUFXLElBQUk7QUFFekUsT0FBQyxDQUFDO0FBQUEsTUFDRixDQUFDLEtBQUssQ0FBQyxpQkFBaUI7QUFDcEIsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0FBQztBQUFBLE1BQ0YsQ0FBQztBQUNHLGlCQUFTLElBQUksMkNBQTJDLElBQUksMkNBQTJDLElBQUk7QUFDM0csd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUMsS0FBSztBQUNGLG1CQUFXLE9BQU87QUFDdEI7QUFDSjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFHQSxLQXpFQztBQTBFRyxlQUFTO0FBQ1QsY0FBUTtBQUNSLGVBQVM7QUFDVCxhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNqQiw0QkFBc0I7QUFDMUI7QUFHQSxLQXpGQztBQTBGRyxlQUFTO0FBQ1QsbUJBQWE7QUFDYixXQUFLLElBQUk7QUFDVCxjQUFRO0FBQ1IsZUFBUztBQUNiO0FBRUEsS0FqR0Msa0JBaUdrQixDQWxHbEI7QUFtR0csZUFBUztBQUNULG1CQUFhO0FBQ2IsdUJBQWlCO0FBQ2pCLGVBQVM7QUFDVCxjQUFRLEVBQUU7QUFDVixpQkFBVyxJQUFJO0FBQ2YsYUFBTztBQUNQLGNBQVEsSUFBSTtBQUNaLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBRVgsbUJBQWE7QUFDYixpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUVqQiw0QkFBc0I7QUFDdEIsY0FBUTtBQUNSLHFCQUFlLElBQUk7QUFDbkIsa0JBQVk7QUFDWixxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksa0NBQWtDO0FBQUEsUUFBRSxNQUFNLElBQUksa0NBQWtDO0FBQUEsUUFDdkcsY0FBYyxJQUFJLGtDQUFrQztBQUFBLFFBQUUsV0FBVyxJQUFJO0FBRXpFLE9BQUMsQ0E5RUM7QUFBQSxNQStFRixDQUFDLEtBQUssQ0E5RUMsa0JBOEVrQixDQUFDLGVBQWU7QUFBQSxNQUN6QyxDQUFDLEtBQUssQ0EvRUMsa0JBK0VrQixDQURDLGVBQ2U7QUFDckMsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0FOeUI7QUFPdEIsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0FwRkM7QUFBQSxNQXFGRixDQUFDO0FBQ0csaUJBQVMsSUFBSSwyQ0FBMkMsSUFBSSwyQ0FBMkMsSUFBSTtBQUMzRyx3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFHQSxLQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csZUFBUztBQUNULHNCQUFnQjtBQUNoQixjQUFRO0FBQ1IsbUJBQWE7QUFDYixpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNqQixtQkFBYSxJQUFJO0FBQ2pCLHFCQUFlLElBQUk7QUFDbkIsc0JBQWdCLElBQUk7QUFDcEIsYUFBTyxJQUFJO0FBQ1gsa0JBQVksSUFBSTtBQUNoQixjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLHFCQUFlLElBQUk7QUFDbkIsa0JBQVksSUFBSTtBQUNoQixjQUFRO0FBQ1IscUJBQWU7QUFDZjtBQUFBLFFBQVksV0FBVyxJQUFJLCtCQUErQjtBQUFBLFFBQUUsTUFBTSxJQUFJLCtCQUErQjtBQUFBLFFBQ2pHLGFBQWEsSUFBSSwrQkFBK0I7QUFBQSxRQUFFLGNBQWMsSUFBSSwrQkFBK0I7QUFBQSxRQUNuRyxXQUFXLElBQUk7QUFFbkIsT0FBQyxDQXpIQztBQUFBLE1BMEhGLENBQUMsS0FBSyxXQUFXLENBekhWLGlCQXlINEI7QUFDL0Isc0JBQWMsSUFBSTtBQUN0QjtBQUVBLE9BQUMsQ0F4SEM7QUFBQSxNQXlIRixDQUFDO0FBQ0csc0JBQWMsSUFBSTtBQUNsQixpQkFBUyxJQUFJLDZCQUE2QixJQUFJLDZCQUE2QixJQUFJO0FBQy9FLHdCQUFnQixJQUFJO0FBQ3BCLG9CQUFZLElBQUk7QUFDcEI7QUFFQSxPQUFDO0FBQUEsTUFDRCxDQUFDLENBdElNO0FBdUlILG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ1gsZ0JBQVE7QUFDWjtBQUVBO0FBQ0ksb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDWCxnQkFBUSxFQUFFO0FBQ1Ysb0JBQVk7QUFDaEI7QUFDSjtBQUVBLEtBQUM7QUFFRyxhQUFPLEtBQUssSUFBSSxjQUFjLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtBQUMzQyxjQUFRO0FBQ1Isa0JBQVk7QUFDWixzQkFBZ0I7QUFDcEI7QUFHQSxZQUFPLFdBQVk7QUFDZixPQTFNSDtBQTJNTyxpQkFBUztBQUNiO0FBQ0o7QUFDSjtBQUFBOzs7QUN4UUE7QUFRQSxHQUFDO0FBQ0csY0FBVTtBQUNWLGFBQVM7QUFDVCxvQkFBZ0I7QUFDaEIsWUFBUTtBQUNSLFdBQU8sSUFBSTtBQUNYLFlBQVEsSUFBSTtBQUNaLGlCQUFhO0FBRWIsS0FBQztBQUNHLGNBQVE7QUFDUixjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJO0FBQ1osa0JBQVk7QUFDWixnQkFBVTtBQUNWLHFCQUFlO0FBQ2Ysa0JBQVksSUFBSTtBQUNoQixxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksb0NBQW9DO0FBQUEsUUFBRSxNQUFNLElBQUksb0NBQW9DO0FBQUEsUUFDM0csYUFBYSxJQUFJLG9DQUFvQztBQUFBLFFBQUUsV0FBVyxJQUFJLG9DQUFvQztBQUFBLFFBQzFHLGNBQWMsSUFBSTtBQUV0QixPQUFDLENBQUM7QUFBQSxNQUNGLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtBQUNwQixzQkFBYyxJQUFJO0FBQ3RCO0FBRUEsT0FBQyxDQUFDO0FBQ0Usc0JBQWMsSUFBSTtBQUNsQixpQkFBUyxJQUFJLGtDQUFrQyxJQUFJLGtDQUFrQyxJQUFJO0FBQ3pGLHdCQUFnQixJQUFJO0FBQ3BCLG9CQUFZLElBQUk7QUFDcEI7QUFFQSxPQUFDLENBQUM7QUFDRSxzQkFBYyxJQUFJO0FBQ2xCLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBRVgsU0FBQyxDQWpCSDtBQUFBLFFBa0JFLENBQUMsS0FBSyxDQWpCSCxpQkFpQnFCO0FBQ3BCLHdCQUFjLElBQUk7QUFDbEIsc0JBQVksSUFBSTtBQUNwQjtBQUVBLFNBQUMsQ0FsQkg7QUFtQk0sd0JBQWMsSUFBSTtBQUN0QjtBQUVBLFNBQUM7QUFDRyxzQkFBWSxJQUFJO0FBQ3BCO0FBRUEsU0FBQyxDQS9CSCxjQStCa0IsQ0FKZjtBQUFBLFFBS0QsQ0FBQyxLQUFLLENBL0JILGlCQStCcUIsT0FBTyxDQUw5QjtBQU1HLHNCQUFZLElBQUk7QUFDcEI7QUFDSjtBQUtBLE9BQUMsQ0FBQztBQUFBLE1BQ0YsQ0FBQyxDQURDLGFBQ2EsSUFBSSxRQUFRLENBekN6QixlQXlDeUMsQ0FwQ3pDO0FBQUEsTUFxQ0YsQ0FBQyxDQUZDLGFBRWEsQ0E5QmIsY0E4QjRCLElBQUksUUFBUSxDQTFDeEMsZUEwQ3dELENBckN4RDtBQXNDRSxzQkFBYyxJQUFJO0FBQ3RCO0FBRUEsT0FBQyxDQTdDTTtBQThDSCxpQkFBUztBQUNULG9CQUFZLElBQUk7QUFDaEIsc0JBQWMsSUFBSTtBQUVsQixTQUFDLENBdkNILGVBdUNtQixDQXhCaEI7QUF5Qkcsc0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBRUEsT0E3Qks7QUE4QkQsZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsSUFBSTtBQUNaLHdCQUFnQjtBQUNoQixrQkFBVTtBQUNWLGFBQUs7QUFDTCxjQUFNO0FBQ04sb0JBQVksS0FBSyxHQUFHLEVBQUUsSUFBSSwyQkFBMkIsRUFBRTtBQUN2RCxxQkFBYSxLQUFLLEdBQUcsRUFBRSxJQUFJLDJCQUEyQixFQUFFO0FBQ3hELHVCQUFlO0FBQ2Ysb0JBQVk7QUFFWiw2QkFBcUI7QUFDckIsNkJBQXFCLElBQUk7QUFDN0I7QUFDSjtBQUNKO0FBR0EsR0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0ExRjlCO0FBMkZELFlBQVE7QUFDWjtBQUdBLEdBQUMsZUFBZSxDQXhHZixjQXdHOEIsQ0EvRjFCO0FBZ0dELGdCQUFZLElBQUk7QUFHaEIsS0FBQyxDQXBGSztBQUFBLElBcUZOLENBQUMsS0FBSyxDQXBGSyxpQkFvRmE7QUFDcEIsa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUMsQ0E3RUs7QUE4RUYsa0JBQVksSUFBSTtBQUVoQixPQUFDLENBNUZDO0FBQUEsTUE2RkYsQ0FBQyxLQUFLLENBNUZDLGlCQTRGaUI7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBRUEsS0FBQyxDQWpHVTtBQWtHUCxrQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFNQSxHQUFDO0FBQ0csMkJBQXVCLElBQUk7QUFDM0IsNEJBQXdCLElBQUk7QUFDNUIsK0JBQTJCLElBQUk7QUFDbkM7QUFFQSxHQUFDO0FBQ0csMkJBQXVCLElBQUk7QUFDM0IsNEJBQXdCLElBQUk7QUFDNUIsK0JBQTJCLElBQUk7QUFDbkM7QUFHQSxHQUFDLGtCQUFrQixDQWhKbEIsY0FnSmlDLENBdkk3QixpQkF1SStDLENBNUcxQyxjQTRHeUQsQ0E1R3pEO0FBNkdOLGtCQUFjLElBQUk7QUFDdEI7QUFBQTs7O0FDMUpBO0FBUUEsR0FBQztBQUNHLEtBQUM7QUFDRyxnQkFBVTtBQUNWLGNBQVE7QUFDUixlQUFTLElBQUk7QUFDYixpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNqQixhQUFPLElBQUk7QUFDWCxrQkFBWSxJQUFJO0FBQ2hCLG9CQUFjO0FBQ2Qsb0JBQWMsSUFBSTtBQUNsQixvQkFBYyxJQUFJO0FBQ2xCLHFCQUFlLElBQUk7QUFDbkIsY0FBUTtBQUNSLDJCQUFxQjtBQUNyQixtQkFBYTtBQUNiLGVBQVMsRUFBRTtBQUNYLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSxrQ0FBa0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxrQ0FBa0M7QUFBQSxRQUN2RyxjQUFjLElBQUksa0NBQWtDO0FBQUEsUUFBRSxXQUFXLElBQUk7QUFDN0U7QUFFQSxLQXJCQyxrQkFxQmtCLEtBQUssQ0FBQyxlQUFlO0FBQUEsSUFDeEMsQ0FBQyxtQkFBbUI7QUFDaEIsZUFBUztBQUNULGdCQUFVO0FBQ1YsYUFBTztBQUNQLHNCQUFnQjtBQUNoQixvQkFBYztBQUNkLG9CQUFjLElBQUk7QUFDbEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZTtBQUNuQjtBQUVBLEtBakNDLGtCQWlDa0I7QUFDZixvQkFBYyxJQUFJO0FBQ2xCLGlDQUEyQixJQUFJO0FBQy9CLCtCQUF5QixJQUFJO0FBQ2pDO0FBRUEsTUFBRSxDQXZDRCxrQkF1Q29CLEtBQUssS0FBSyxFQUFFLENBdkNoQztBQXdDRywrQkFBeUIsSUFBSTtBQUM3Qiw2QkFBdUIsSUFBSTtBQUMvQjtBQUVBLE1BQUUsQ0E1Q0Qsa0JBNENvQixDQXZCSSxjQXVCVyxLQUFLLEtBQUssRUFBRSxDQTVDL0M7QUE2Q0csK0JBQXlCLElBQUk7QUFDN0IsNkJBQXVCLElBQUk7QUFDL0I7QUFFQSxLQWpEQztBQWtERyxPQUFDLENBQUM7QUFBQSxNQUNGLENBQUMsS0FBSyxDQTlCZSxnQkE4QkUsQ0FBQyxpQkFBaUI7QUFDckMsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0FuQ29CO0FBb0NqQixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUVYLFNBQUMsS0FBSyxDQVRjLGlCQVNJO0FBQ3BCLHNCQUFZLElBQUk7QUFDaEIsaUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFFQSxPQUFDLEtBQUssQ0Fma0IsaUJBZUE7QUFDcEIsaUJBQVMsSUFBSSx1Q0FBdUMsSUFBSSx1Q0FBdUMsSUFBSTtBQUNuRyx3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBR0EsT0FBQyxDQUFDO0FBQUEsTUFDRixDQUFDLENBREMsYUFDYTtBQUFBLE1BQ2YsQ0FBQyxDQUZDLGFBRWEsQ0F0RE0sY0FzRFM7QUFDMUIsc0JBQWMsSUFBSTtBQUNsQixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxDQVJDLGFBUWE7QUFBQSxNQUNmLENBQUMsQ0FUQyxjQVNjLEVBQUUsQ0E1RHJCO0FBQUEsTUE2REcsQ0FBQyxDQVZDLGNBVWMsRUFBRSxDQTdEckIsbUJBNkR5QztBQUNsQyxzQkFBYyxJQUFJO0FBQ3RCO0FBR0EsUUFBRSxDQUFDO0FBQ0MsZUFBTztBQUNQLHFCQUFhLElBQUk7QUFDakIsZUFBTyxJQUFJO0FBQ1gsb0JBQVksTUFBTSxJQUFJO0FBQzFCO0FBRUEsT0FBQyxDQTdDQyxjQTZDYyxFQUFFLENBUGY7QUFBQSxNQVFILENBQUMsS0FBSyxDQTNFZSxnQkEyRUUsQ0E3Q0MsaUJBNkNpQixPQUFPLEVBQUUsQ0FSL0M7QUFTQyxlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0EvRW9CO0FBZ0ZqQixVQUFFLENBYkg7QUFjSyxpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQUFDLEtBQUssQ0F0RGMsaUJBc0RJLE9BQU8sRUFBRSxDQWpCbEM7QUFrQkssaUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFFQSxPQUFDLENBckNDLGNBcUNjLEVBQUUsQ0F0QmY7QUF1QkMsZUFBTztBQUNYO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQUFDLENBQUMsb0JBQXNCLENBSnZCO0FBS0csaUJBQVMsSUFBSTtBQUNqQjtBQUdBLE9BQUM7QUFDRyxpQkFBUztBQUNULHFCQUFhO0FBQ2IseUJBQWlCO0FBQ2pCLGVBQU8sSUFBSTtBQUNYLGdCQUFRLElBQUk7QUFDWixnQkFBUTtBQUVSLHNCQUFjLEtBQUssQ0FBQyxJQUFJLDRCQUE0QixFQUFFLElBQUksRUFBRSxJQUFJLDZCQUE2QixFQUFFO0FBQy9GLGlCQUFTO0FBQ1Qsb0JBQVk7QUFDWixlQUFPLElBQUk7QUFDWCxnQkFBUSxFQUFFO0FBQ1YsdUJBQWU7QUFDZixvQkFBWTtBQUNaLHlCQUFpQjtBQUNqQiw2QkFBcUI7QUFDckIscUJBQWE7QUFDYix1QkFBZTtBQUNmO0FBQUEsVUFBWSxXQUFXLElBQUksK0JBQStCO0FBQUEsVUFBRSxNQUFNLElBQUksK0JBQStCO0FBQUEsVUFDakcsY0FBYyxJQUFJLCtCQUErQjtBQUFBLFVBQUUsV0FBVyxJQUFJO0FBRXRFLFNBQUM7QUFDRyxzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDZjtBQUVBLFNBQUM7QUFDRyxzQkFBWSxJQUFJO0FBQ3BCO0FBRUEsU0FBQztBQUNHLG1CQUFTLElBQUksNkJBQTZCLElBQUksNkJBQTZCLElBQUk7QUFDL0UsMEJBQWdCLElBQUk7QUFDcEIsc0JBQVksSUFBSTtBQUNwQjtBQUVBLFNBQUM7QUFDRyxtQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFDSjtBQUVBLEtBM0NLO0FBNENELGFBQU87QUFDUCxjQUFRO0FBQ1o7QUFFQSxLQUFDO0FBQ0csYUFBTztBQUNYO0FBRUEsS0F6SkM7QUEwSkcsZ0JBQVU7QUFDVixjQUFRO0FBQ1IsZUFBUyxJQUFJO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxvQkFBYztBQUNkLG9CQUFjLElBQUk7QUFDbEIsb0JBQWMsSUFBSTtBQUNsQixnQkFBVTtBQUdWLE9BQUM7QUFDRyxpQ0FBeUIsSUFBSTtBQUM3QiwrQkFBdUIsSUFBSTtBQUMvQjtBQUNKO0FBR0EsS0FBQyxDQUFDO0FBQ0UsaUJBQVc7QUFFWCxPQXJNSCxtQkFxTXVCLEVBQUUsQ0E3R25CO0FBQUEsTUE4R0gsQ0EzRUM7QUFBQSxNQTRFRCxDQTVCSDtBQTZCTyxlQUFPO0FBQ1g7QUFDSjtBQUNKO0FBQUE7OztBQ3BOQTtBQW1CQSxhQUFXO0FBQ1A7QUFDSSxpQkFBVyxPQUFPO0FBQ3RCO0FBRUE7QUFDSSxpQkFBVyxPQUFPO0FBQ3RCO0FBQ0o7QUFFQSxhQUFXO0FBQ1A7QUFDSSwwQkFBb0I7QUFDeEI7QUFFQTtBQUNJLDBCQUFvQjtBQUN4QjtBQUNKO0FBRUEsR0FBQztBQUNHLGVBQVcsT0FBTyxJQUFJLGdEQUFnRCxPQUFPO0FBQ2pGO0FBRUEsR0FBQztBQUNHLGFBQVMsSUFBSTtBQUNqQjtBQUdBLEdBQUMsZ0JBQWdCLEtBQUssS0FBSyxFQUFFLENBQUM7QUFBQSxFQUM5QixDQURDLGlCQUNpQixFQUFFLENBQUM7QUFDakIsY0FBVTtBQUNWLFNBQUs7QUFDTCxrQkFBYztBQUNkLGFBQVM7QUFDVCxZQUFRLElBQUk7QUFDWixjQUFVO0FBQ1YsZUFBVztBQUNYLG9CQUFnQjtBQUNoQixnQkFBWSxJQUFJO0FBRWhCLEtBQUM7QUFDRyxlQUFTO0FBQ1QsZ0JBQVU7QUFDVixXQUFLO0FBQ0wsY0FBUTtBQUNSLDBCQUFvQjtBQUNwQixhQUFPO0FBQ1Asa0JBQVksSUFBSTtBQUNoQixpQkFBVyxzQkFBc0IsSUFBSSx1Q0FBdUMsT0FBTztBQUN2RjtBQUdBLE1BQUU7QUFDRSxlQUFTO0FBQ2I7QUFDSjtBQUFBOzs7QUMzRUE7QUFRQSxHQUFDO0FBRUcsOEJBQTBCLElBQUk7QUFDOUIsdUNBQW1DLElBQUk7QUFDdkMscUNBQWlDLElBQUk7QUFDckMsMkNBQXVDLElBQUk7QUFDM0MsMkNBQXVDLElBQUk7QUFDM0MsZ0NBQTRCLElBQUk7QUFDaEMsc0NBQWtDLElBQUk7QUFDdEMsc0NBQWtDLElBQUk7QUFDdEMsd0NBQW9DLElBQUk7QUFDeEMseUJBQXFCLElBQUk7QUFDekIsa0NBQThCLElBQUk7QUFDbEMscUNBQWlDLElBQUk7QUFDckMsNkNBQXlDLElBQUk7QUFDN0MsMEJBQXNCLElBQUk7QUFDMUIsNkJBQXlCLElBQUk7QUFDN0IsNkJBQXlCLElBQUk7QUFDN0IsaUNBQTZCLElBQUk7QUFDakMsb0NBQWdDLElBQUk7QUFDcEMsb0NBQWdDLElBQUk7QUFDcEMsb0NBQWdDLElBQUk7QUFDcEMscUNBQWlDLElBQUk7QUFDckMscUNBQWlDLElBQUk7QUFDckMsdUNBQW1DLElBQUk7QUFFdkMsV0FBTztBQUNQLFlBQVE7QUFDUixnQkFBWTtBQUNaLGNBQVU7QUFDVixhQUFTO0FBSVQsS0FBQyxDQUFDO0FBQ0UsZUFBUztBQUVULFFBQUUsQ0FBQztBQUNDLGlCQUFTLElBQUk7QUFDakI7QUFDSjtBQUdBLEtBQUMsQ0FBQztBQUNFLGVBQVM7QUFDVCxtQkFBYTtBQUNiLHNCQUFnQjtBQUNwQjtBQUVBLEtBQUMsb0JBQW9CLENBQUM7QUFDbEIscUJBQWUsSUFBSTtBQUNuQixzQkFBZ0IsSUFBSTtBQUNwQiwrQkFBeUI7QUFDekIsNkJBQXVCO0FBQzNCO0FBRUEsS0FuQk8sdUJBbUJpQixDQUFDO0FBQ3JCLGFBQU8sSUFBSTtBQUNYLG1CQUFhLElBQUk7QUFDakIsb0JBQWMsSUFBSTtBQUNsQixpQkFBVyxJQUFJO0FBQ2YsdUJBQWlCLElBQUk7QUFDckIsd0JBQWtCLElBQUk7QUFDdEIsZ0JBQVUsSUFBSTtBQUNkLHNCQUFnQixJQUFJO0FBQ3BCLHVCQUFpQixJQUFJO0FBQ3JCLDJCQUFxQixJQUFJO0FBQ3pCLDRCQUFzQixJQUFJO0FBRTFCLGdCQUFVO0FBQ1YsWUFBTSxFQUFFLEVBQUU7QUFDVixjQUFRO0FBQ1IsYUFBTyxJQUFJO0FBRVgscUJBQWU7QUFDZixjQUFRO0FBQ1IsaUNBQTJCO0FBQzNCLGlDQUEyQjtBQUMzQiwrQkFBeUI7QUFDekIsK0JBQXlCLElBQUk7QUFDN0IsNkJBQXVCLElBQUk7QUFDM0I7QUFBQSxRQUFZLFdBQVcsSUFBSSxxQ0FBcUM7QUFBQSxRQUFFLE1BQU0sSUFBSSxxQ0FBcUM7QUFBQSxRQUM3RyxhQUFhLElBQUkscUNBQXFDO0FBQUEsUUFBRSxjQUFjLElBQUkscUNBQXFDO0FBQUEsUUFDL0csV0FBVyxJQUFJO0FBRW5CLE9BQUM7QUFDRyxpQkFBUyxJQUFJLDRDQUE0QyxJQUFJLDRDQUE0QyxJQUFJO0FBQzdHLHdCQUFnQixJQUFJO0FBQ3hCO0FBQ0o7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLGdCQUFVO0FBQ1YsV0FBSztBQUNUO0FBRUEsS0FBQyxDQUFDLGdCQUFnQixDQUxqQjtBQU1HLHdCQUFrQixJQUFJO0FBQ3RCLGtCQUFZLEtBQUssR0FBRyxFQUFFLElBQUksZUFBZSxFQUFFO0FBQzNDLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQU5DLGVBTWUsQ0EvRGYsa0JBK0RrQyxDQVhuQztBQVlHLHdCQUFrQixLQUFLLElBQUksNEJBQTRCLEVBQUUsSUFBSTtBQUNqRTtBQUNKO0FBR0EsR0FoSEMsY0FnSGMsQ0FyRVQsaUJBcUUyQixLQUFLLEVBQUUsQ0FBQyxnQkFBZ0IsQ0EzRTlDLHVCQTJFc0UsQ0F4RHBEO0FBeUR6QixXQUFPLElBQUk7QUFDZjtBQUVBLEdBcEhDLGNBb0hjLENBekVULGlCQXlFMkIsS0FBSyxFQUFFLENBQUMsZ0JBQWdCLENBL0U5Qyx1QkErRXNFLENBNURwRDtBQTZEekIsV0FBTyxJQUFJO0FBQ2Y7QUFHQSxHQTlFTTtBQStFRixLQUFDLEtBQUssRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBOUIsWUFBMkMsUUFBUSxDQXJGckQsdUJBcUY2RSxDQWxFM0Q7QUFtRXJCLGlCQUFXLElBQUk7QUFDZix1QkFBaUIsSUFBSTtBQUNyQix3QkFBa0IsSUFBSTtBQUMxQjtBQUVBLEtBQUMsS0FBSyxFQUFFLENBTkMsWUFNWSxDQUFDLGVBQWUsRUFBRSxDQU45QixZQU0yQyxRQUFRLENBM0ZyRCx1QkEyRjZFLENBeEUzRDtBQXlFckIsaUJBQVcsSUFBSTtBQUNmLHVCQUFpQixJQUFJO0FBQ3JCLHdCQUFrQixJQUFJO0FBQzFCO0FBRUEsS0FBQyxLQUFLLEVBQUUsQ0FaQyxZQVlZLENBQUMsZUFBZSxDQWpHOUIsdUJBaUdzRCxDQTlFcEM7QUErRXJCLGlCQUFXLElBQUk7QUFDZix1QkFBaUIsSUFBSTtBQUNyQix3QkFBa0IsSUFBSTtBQUMxQjtBQUNKO0FBR0EsR0FBQztBQUNHLFdBQU87QUFDUCxZQUFRO0FBQ1IscUJBQWlCO0FBQ2pCLFlBQVE7QUFDUixnQkFBWTtBQUNaLGNBQVU7QUFFVixXQUFPO0FBQ1AsZUFBVztBQUNmO0FBR0EsR0EzSkMsY0EySmMsQ0FBQztBQUNaLGVBQVc7QUFDZjtBQUVBLEdBQUM7QUFDRyxZQUFRO0FBQ1IsY0FBVTtBQUNWLGlCQUFhO0FBQ2IsY0FBVTtBQUNkO0FBRUEsR0FBQztBQUFBLEVBQ0QsQ0FBQztBQUNHLGFBQVM7QUFDYjtBQUVBLEdBQUM7QUFDRyxjQUFVO0FBQ1YsU0FBSztBQUNMLFlBQVE7QUFDWjtBQUVBLEdBQUM7QUFDRyxxQkFBaUI7QUFFakI7QUFDSSxjQUFRLEVBQUU7QUFDVixhQUFPO0FBQ1AsZUFBUyxFQUFFO0FBQ1gsd0JBQWtCO0FBQ2xCLGtCQUFZO0FBQ2hCO0FBQ0o7QUFHQSxHQTlMQyxlQThMZSxDQWhEZjtBQWlERyxhQUFTO0FBQ1QsZUFBVztBQUNYLGlCQUFhO0FBQ2IsYUFBUyxLQUFLLElBQUksNEJBQTRCLEVBQUUsR0FBRyxJQUFJO0FBRXZELEtBQUMsQ0FBQztBQUNFLFlBQU0sRUFBRSxFQUFFO0FBQ1YsMEJBQW9CLElBQUk7QUFDeEIsK0JBQXlCO0FBQ3pCLDZCQUF1QjtBQUMzQjtBQUVBLEtBNUNIO0FBNkNPLGVBQVMsS0FBSyxJQUFJLDRCQUE0QixFQUFFLEdBQUc7QUFDbkQsY0FBUTtBQUNSLHlCQUFtQixLQUFLLElBQUksNEJBQTRCLEVBQUU7QUFDMUQsa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxlQUFTO0FBQ1Qsc0JBQWdCO0FBQ2hCLGFBQU87QUFDUCxxQkFBZSxJQUFJO0FBQ25CLGtCQUFZLFdBQVcsSUFBSSxxQ0FBcUMsRUFBRSxNQUFNLElBQUk7QUFFNUUsT0FqRFA7QUFrRFcsdUJBQWU7QUFDZix3QkFBZ0IsSUFBSSxvQkFBb0IsS0FBSyxJQUFJLG9CQUFvQixFQUFFLElBQUksY0FBYyxFQUFFLElBQUk7QUFDL0YsbUJBQVcsSUFBSTtBQUNmLHFCQUFhLElBQUk7QUFDckI7QUFFQSxPQXZEUDtBQXdEVyx3QkFBZ0IsSUFBSTtBQUN4QjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0EzRFA7QUE0RFcsa0JBQVU7QUFDViwwQkFBa0IsSUFBSTtBQUN0QixvQkFBWSxLQUFLLEdBQUcsRUFBRSxJQUFJLDJCQUEyQixFQUFFO0FBQ3ZELG1CQUFXLElBQUk7QUFDZixlQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsS0E5REg7QUErRE8sY0FBUTtBQUNSLGVBQVMsS0FBSyxJQUFJLDRCQUE0QixFQUFFLEdBQUc7QUFDbkQsZUFBUztBQUNULHNCQUFnQjtBQUNoQixhQUFPO0FBQ1AsWUFBTSxFQUFFLEVBQUU7QUFDVixpQkFBVztBQUdYO0FBQ0kscUJBQWE7QUFDYixtQkFBVyxJQUFJO0FBQ2YscUJBQWEsSUFBSTtBQUNqQixxQkFBYSxJQUFJO0FBQ2pCLGVBQU8sSUFBSTtBQUNYLG9CQUFZO0FBQ1osZUFBTztBQUNQLGlCQUFTO0FBQ1QsZ0JBQVE7QUFDWjtBQUVBLFdBQUs7QUFDRCxlQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsS0FBQyxDQXBJcUIsY0FvSU4sQ0F6Rm5CLDJCQXlGK0MsS0FBSztBQUM3QyxhQUFPLElBQUk7QUFDZjtBQUNKO0FBR0EsR0FBQztBQUNHLGNBQVU7QUFDVixjQUFVO0FBQ1YsYUFBUztBQUNULGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixtQkFBZSxJQUFJO0FBQ25CLGdCQUFZLElBQUk7QUFFaEIsS0FBQztBQUNHLGNBQVE7QUFDWjtBQUVBLEtBQUM7QUFDRyxjQUFRLEVBQUU7QUFDVixjQUFRO0FBQ1IsdUJBQWlCO0FBQ3JCO0FBRUEsS0FBQztBQUNHLGtCQUFZO0FBQ2hCO0FBRUEsS0FBQztBQUNHLGNBQVEsRUFBRTtBQUNWLGNBQVE7QUFDUixlQUFTLElBQUk7QUFDYixhQUFPLElBQUk7QUFDWCxxQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNiLGNBQVEsRUFBRTtBQUNWLGtCQUFZO0FBQ1osYUFBTztBQUVQLE9BNUJIO0FBNkJPLGdCQUFRLEVBQUU7QUFDVixnQkFBUTtBQUNSLGlCQUFTLElBQUk7QUFDYixlQUFPLElBQUk7QUFDWCxvQkFBWTtBQUNaLG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ2pCLHVCQUFlLElBQUk7QUFDbkI7QUFBQSxVQUFZLFdBQVcsSUFBSSxvQ0FBb0M7QUFBQSxVQUFFLE1BQU0sSUFBSSxvQ0FBb0M7QUFBQSxVQUMzRyxhQUFhLElBQUk7QUFDekI7QUFDSjtBQUVBLEtBcEJDLG9CQW9Cb0I7QUFDakIsZUFBUztBQUNiO0FBRUEsS0ExQ0Msb0JBMENvQixDQTlDcEIsb0JBOEN5QyxFQUFFLENBOUMzQztBQStDRyxrQkFBWSxJQUFJO0FBQ3BCO0FBR0EsS0FBQztBQUNHLHVCQUFpQjtBQUNqQixhQUFPO0FBRVA7QUFBQSxNQUNBO0FBQ0ksc0JBQWM7QUFDZCxzQkFBYyxJQUFJO0FBQ2xCLHNCQUFjLEVBQUUsRUFBRSxJQUFJO0FBQ3RCLGlCQUFTLElBQUk7QUFDYixvQkFBWTtBQUNoQjtBQUVBO0FBQ0ksb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDWCxxQkFBYSxJQUFJO0FBQ3JCO0FBQ0o7QUFFQSxLQWpEQyxxQkFpRHFCLENBdkVyQixtQkF1RXlDLENBQUM7QUFDdkMscUJBQWU7QUFFZixPQUFDLFlBQVksRUFBRTtBQUNYLDZCQUFxQjtBQUN6QjtBQUNKO0FBR0EsS0ExREMscUJBMERxQixDQWhGckIsbUJBZ0Z5QyxDQUFDO0FBQ3ZDLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQS9EQyxxQkErRHFCLENBQUM7QUFDbkIsZUFBUyxJQUFJO0FBQ2IsYUFBTyxJQUFJO0FBQ1gsaUJBQVcsSUFBSTtBQUNmLG1CQUFhLElBQUk7QUFDckI7QUFHQSxLQUFDO0FBQ0csbUJBQWEsSUFBSTtBQUNyQjtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1IsZUFBUyxJQUFJO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNyQjtBQUNKO0FBRUEsR0F2R0ssb0JBdUdnQixDQXRCTTtBQXVCdkIsZ0JBQVk7QUFDaEI7QUFFQSxHQWpHSztBQWtHRCxXQUFPO0FBQ1g7QUFHQSxHQUFDO0FBQ0csY0FBVTtBQUNWLGFBQVM7QUFFVCxLQUFDLENBQUM7QUFDRSxlQUFTLElBQUk7QUFDYixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFFQSxHQUFDO0FBQ0csYUFBUztBQUNiO0FBRUEsR0FBQztBQUNHLEtBamFIO0FBQUEsSUFrYUcsQ0FqWEM7QUFBQSxJQWtYRCxDQXJSSDtBQXNSTyxhQUFPO0FBQ1g7QUFFQSxLQXZhSCxjQXVha0IsQ0E1WGI7QUE2WEUsZUFBUztBQUNiO0FBRUEsS0EzYUgsZUEyYW1CLENBMVhmLG9CQTBYb0MsQ0ExWGY7QUFBQSxJQTJYdEIsQ0E5UkgsaUNBOFJxQyxDQXhPaEM7QUF5T0UsYUFBTztBQUNQLFlBQU0sRUFBRSxFQUFFO0FBQ2Q7QUFFQSxLQWpiSCxlQWlibUIsQ0E1WVQsdUJBNFlpQyxDQXpYZjtBQTBYckIsYUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUFBOzs7QUM1YkE7QUFNQSxHQUFDO0FBQ0csY0FBVTtBQUNWLGFBQVM7QUFDVCxpQkFBYTtBQUNiLHFCQUFpQjtBQUNqQixpQkFBYTtBQUNiLFdBQU8sSUFBSTtBQUNYLFlBQVEsSUFBSTtBQUNaLGVBQVcsSUFBSTtBQUNmLGlCQUFhLElBQUk7QUFDakIsc0JBQWtCLElBQUk7QUFDdEIsV0FBTyxJQUFJO0FBQ1gsbUJBQWUsSUFBSTtBQUduQixLQUFDLEtBQUssRUFBRTtBQUNKLHdCQUFrQjtBQUN0QjtBQUVBLE1BQUU7QUFDRSxnQkFBVTtBQUNkO0FBRUE7QUFDSSxhQUFPO0FBQ1AsY0FBUTtBQUNSLHFCQUFlO0FBQ25CO0FBRUEsS0FBQztBQUNHLGlCQUFXLElBQUk7QUFDbkI7QUFFQSxLQUFDLENBQUM7QUFBQSxJQUNGLENBQUMsQ0FEQyxnQkFDZ0I7QUFDZCxxQkFBZTtBQUNuQjtBQUVBLEtBQUMsQ0FBQztBQUNFLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSTtBQUNaLGlCQUFXLElBQUk7QUFFZixPQWRIO0FBZU8sbUJBQVcsSUFBSTtBQUNuQjtBQUNKO0FBRUEsS0FBQyxDQUFDO0FBQ0UsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJO0FBQ1osaUJBQVcsSUFBSTtBQUVmLE9BeEJIO0FBeUJPLG1CQUFXLElBQUk7QUFDbkI7QUFDSjtBQUdBLEtBQUMsQ0FBQztBQUNFLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQUFDO0FBQ0UsYUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsaUJBQWE7QUFDakI7QUFHQSxHQU5DLGVBTWUsQ0ExRWY7QUEyRUcsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUV0QixNQUFFLENBN0VMO0FBOEVPLDJCQUFxQixJQUFJO0FBQzdCO0FBRUEsS0FBQyxDQTNDQyxZQTJDWSxFQUFFLENBakZuQixRQWlGNEIsQ0EzQ3ZCO0FBNENFLDJCQUFxQixJQUFJO0FBQzdCO0FBRUEsS0FBQyxDQXJDQyxZQXFDWSxFQUFFLENBckZuQixRQXFGNEIsQ0FyQ3ZCO0FBc0NFLDJCQUFxQixJQUFJO0FBQzdCO0FBQ0o7QUFBQTs7O0FDOUZBO0FBWUEsR0FBQztBQUNHLGNBQVU7QUFDVixnQkFBWTtBQUNaLFNBQUs7QUFDTCxXQUFPO0FBQ1AsWUFBUTtBQUNSLFVBQU07QUFDTix5QkFBcUI7QUFDckIsaUJBQWE7QUFFYixLQUFDLENBQUM7QUFDRSxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLHFCQUFlLElBQUk7QUFDdkI7QUFFQSxLQUFDLENBTkMsZ0JBTWdCLENBQUM7QUFDZixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNmO0FBR0EsS0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLGlCQUFpQixLQUFLLFNBQVM7QUFDekMsZUFBUztBQUNULGdCQUFVO0FBQ1YsYUFBTztBQUNQLGFBQU87QUFDUCxjQUFRO0FBQ1IsY0FBUTtBQUNSLG1CQUFhO0FBQ2IsaUJBQVcsSUFBSTtBQUNmLGFBQU8sSUFBSTtBQUNYLGtCQUFZO0FBQ1osMkJBQXFCO0FBQ3JCLFlBQU0sSUFBSSwwQkFBMEIsT0FBTyxFQUFFLFFBQVE7QUFDckQsaUJBQVcsT0FBTyxJQUFJLDZDQUE2QyxPQUFPO0FBQzlFO0FBRUEsS0FBQyxDQXRCa0IsZUFzQkYsS0FBSyxLQUFLLEVBQUUsQ0FoQmYsaUJBZ0JpQyxLQUFLLFNBQVM7QUFDekQsYUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLEdBckJrQjtBQXNCZCxjQUFVO0FBQ1YsZ0JBQVk7QUFFWixLQUFDLENBQUM7QUFDRSxlQUFTLElBQUk7QUFDYixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFBQTs7O0FDbkVBO0FBU0EsR0FBQztBQUNHLFlBQVE7QUFDUixnQkFBWTtBQUNaLGdCQUFZLElBQUk7QUFDaEIsWUFBUSxJQUFJLDZCQUE2QixNQUFNLElBQUk7QUFDbkQsbUJBQWUsSUFBSTtBQUNuQixhQUFTLElBQUk7QUFFYixLQUFDO0FBQ0csZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLHVCQUFpQjtBQUNyQjtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1IsZUFBUztBQUNULHVCQUFpQjtBQUNqQixlQUFTO0FBQ1QsbUJBQWE7QUFDYixpQkFBVztBQUVYLFNBQUcsQ0FaTjtBQWFPLGlCQUFTO0FBQ1QscUJBQWE7QUFDYixhQUFLLElBQUk7QUFDVCxnQkFBUTtBQUNSLHVCQUFlLElBQUk7QUFDbkIsdUJBQWU7QUFDZixlQUFPLElBQUk7QUFDWDtBQUFBLFVBQVksV0FBVyxJQUFJLG1DQUFtQztBQUFBLFVBQUUsTUFBTSxJQUFJLG1DQUFtQztBQUFBLFVBQ3pHLGNBQWMsSUFBSSxtQ0FBbUM7QUFBQSxVQUFFLFdBQVcsSUFBSTtBQUUxRSxTQUFDO0FBQ0csbUJBQVMsSUFBSSxzQ0FBc0MsSUFBSSxzQ0FBc0MsSUFBSTtBQUNqRywwQkFBZ0IsSUFBSTtBQUNwQixzQkFBWSxJQUFJO0FBQ3BCO0FBRUEsU0FBQztBQUNHLGlCQUFPLElBQUk7QUFDWCxxQkFBVyxJQUFJO0FBQ2YsdUJBQWEsSUFBSTtBQUNqQixzQkFBWTtBQUNoQjtBQUVBLFNBQUM7QUFDRyxpQkFBTyxJQUFJO0FBQ1gscUJBQVcsSUFBSTtBQUNmLHNCQUFZO0FBQ2hCO0FBRUEsU0FBQyxLQUFLLENBQUMsaUJBQWlCLE9BQU8sQ0FiOUI7QUFjRyxpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQUFDLEtBQUssQ0FKQyxpQkFJaUIsT0FBTyxDQVY5QjtBQVdHLGlCQUFPLElBQUk7QUFDZjtBQUdBLFNBQUMsQ0FBQztBQUNFLGlCQUFPLElBQUk7QUFDWCxxQkFBVyxJQUFJO0FBQ2YsdUJBQWE7QUFFYixXQUFDLEtBQUssQ0FkSCxpQkFjcUI7QUFDcEIsbUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFDSjtBQUVBLFFBQUUsQ0FBQztBQUNDLDZCQUFxQjtBQUN6QjtBQUdBLFFBQUUsS0FBSyxDQUxKO0FBTUMsaUJBQVM7QUFDVCxxQkFBYTtBQUNqQjtBQUVBLFFBQUUsS0FBSyxDQVZKLHFCQVUwQjtBQUN6QixpQkFBUztBQUNULG9CQUFZO0FBQ1osNkJBQXFCO0FBQ3JCLGNBQU0sSUFBSSwrQkFBK0IsT0FBTyxFQUFFLFFBQVE7QUFDMUQsb0JBQVk7QUFDWixxQkFBYTtBQUNiLHNCQUFjO0FBQ2Qsd0JBQWdCO0FBQ2hCLGlCQUFTO0FBQ1QsZ0JBQVEsRUFBRSxJQUFJO0FBQ2QsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxRQUFFLEtBQUssQ0F4QkoscUJBd0IwQixLQUFLLElBQUk7QUFDbEMsZUFBTyxHQUFHO0FBQ2Q7QUFFQSxRQUFFLFlBQVk7QUFDVixpQkFBUztBQUNiO0FBR0EsUUFBRSxhQUFhLENBQUMsQ0E1Q1Y7QUE2Q0YsaUJBQVMsSUFBSTtBQUViO0FBQ0ksbUJBQVM7QUFDYjtBQUNKO0FBQ0o7QUFDSjtBQUVBLEdBdERjLHVCQXNEVSxDQTVFWDtBQTZFVCxhQUFTO0FBQ2I7QUFBQTs7O0FDaElBO0FBV0EsR0FBQztBQUNHLEtBQUM7QUFDRyxhQUFPO0FBQ1g7QUFHQSxLQUFDO0FBQ0csYUFBTztBQUNYO0FBQ0o7QUFFQSxHQVZLO0FBV0QsV0FBTyxJQUFJO0FBQ1gsaUJBQWEsSUFBSTtBQUNqQixrQkFBYyxJQUFJO0FBQ2xCLGVBQVcsSUFBSTtBQUNmLHFCQUFpQixJQUFJO0FBQ3JCLHNCQUFrQixJQUFJO0FBQ3RCLGNBQVUsSUFBSTtBQUNkLG9CQUFnQixJQUFJO0FBQ3BCLHFCQUFpQixJQUFJO0FBQ3JCLHlCQUFxQixJQUFJO0FBQ3pCLDBCQUFzQixJQUFJO0FBQzFCLDBCQUFzQixJQUFJO0FBQzFCLDJCQUF1QixJQUFJO0FBQzNCLHdCQUFvQixJQUFJO0FBQ3hCLHVCQUFtQixJQUFJO0FBQ3ZCLHNCQUFrQixJQUFJO0FBQ3RCLHVCQUFtQixJQUFJO0FBQ3ZCLG1CQUFlLElBQUk7QUFDbkIsZUFBVyxJQUFJO0FBQ2Ysc0JBQWtCLElBQUk7QUFDdEIscUJBQWlCLElBQUk7QUFFckIsZ0JBQVksSUFBSTtBQUdoQixxQkFBaUI7QUFDakIsZ0JBQVk7QUFDWixhQUFTO0FBQ1QsaUJBQWE7QUFDYixxQkFBaUI7QUFDakIsU0FBSyxJQUFJO0FBQ1QsY0FBVTtBQUNWLFlBQVE7QUFDUixhQUFTLElBQUksc0JBQXNCLElBQUk7QUFDdkMsb0JBQWdCO0FBQ2hCLGNBQVU7QUFDVixZQUFRO0FBQ1IseUJBQXFCO0FBQ3JCLGlCQUFhO0FBQ2IsZUFBVyxJQUFJO0FBQ2YsaUJBQWEsSUFBSTtBQUNqQixnQkFBWSxJQUFJLFdBQVcsRUFBRSxJQUFJO0FBQ2pDLFdBQU8sSUFBSTtBQUNYLFlBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsbUJBQWUsSUFBSTtBQUNuQixnQkFBWSxJQUFJO0FBQ2hCLG1CQUFlO0FBQ2Y7QUFBQSxNQUFZLFdBQVcsSUFBSSwrQkFBK0I7QUFBQSxNQUFFLE1BQU0sSUFBSSwrQkFBK0I7QUFBQSxNQUNqRyxhQUFhLElBQUksK0JBQStCO0FBQUEsTUFBRSxjQUFjLElBQUksK0JBQStCO0FBQUEsTUFDbkcsV0FBVyxJQUFJLCtCQUErQjtBQUFBLE1BQUUsVUFBVSxJQUFJO0FBRWxFLEtBQUM7QUFDRyxlQUFTO0FBQ1QsZUFBUztBQUNULG1CQUFhLElBQUk7QUFDakIsbUJBQWEsSUFBSTtBQUNqQixtQkFBYSxJQUFJO0FBQ3JCO0FBR0EsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLGdCQUFVO0FBQ1YsY0FBUTtBQUNSLG1CQUFhO0FBQ2pCO0FBRUEsS0FQQztBQVFHLGFBQU87QUFDWDtBQUdBLEtBQUMsQ0FBQztBQUNFLGFBQU8sSUFBSTtBQUNYLHNCQUFnQjtBQUNoQixXQUFLO0FBRUwsT0EzQkg7QUE0Qk8sb0JBQVk7QUFDWixlQUFPO0FBRVAsb0JBQVksS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUMzQixpQkFBUztBQUNULGtCQUFVO0FBQ1YscUJBQWE7QUFDakI7QUFFQSxPQUFDLENBQUM7QUFDRSx1QkFBZTtBQUNmLGdCQUFRLElBQUk7QUFDaEI7QUFDSjtBQUdBLEtBQUMsQ0FBQztBQUNFLGVBQVM7QUFFVCxRQUFFO0FBQ0UsaUJBQVM7QUFDVCxxQkFBYTtBQUNiLGFBQUssSUFBSTtBQUNULGlCQUFTLElBQUksc0JBQXNCLElBQUk7QUFDdkMsZUFBTztBQUNQLHlCQUFpQjtBQUNqQixpQkFBUyxFQUFFO0FBQ2Y7QUFDSjtBQUdBLEtBQUMsS0FBSyxXQUFXLENBQUMsaUJBQWlCO0FBQy9CLGtCQUFZLElBQUksV0FBVyxFQUFFLElBQUk7QUFDakMsb0JBQWMsSUFBSTtBQUNsQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsS0FBSyxXQUFXLENBTkMsaUJBTWlCO0FBQUEsSUFDbkMsQ0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSSxXQUFXLEVBQUUsSUFBSTtBQUNqQyxvQkFBYyxJQUFJO0FBQ2xCLGFBQU8sSUFBSTtBQUNmO0FBR0EsS0FBQyxLQUFLLFdBQVcsQ0FkQyxpQkFjaUI7QUFDL0Isa0JBQVksSUFBSTtBQUNoQixpQkFBVyxFQUFFLElBQUk7QUFDckI7QUFFQSxLQUFDO0FBQUEsSUFDRCxDQUFDLENBbkNDLFlBbUNZLEtBQUssRUFBRSxDQUFDO0FBQ2xCLGVBQVMsSUFBSSw2QkFBNkIsSUFBSSw2QkFBNkIsSUFBSTtBQUMvRSxzQkFBZ0IsSUFBSTtBQUNwQixrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQztBQUFBLElBQ0QsQ0FBQyxDQTNCaUI7QUE0QmQsY0FBUTtBQUNaO0FBR0EsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUdBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFNQSxLQUFDLENBQUMsZ0JBQWdCLElBQUksQ0EvRnJCLG9CQStGMEMsQ0E5RjFDLHFCQThGZ0UsQ0E3RmhFLE9BNkZ3RSxLQUFLLENBQUM7QUFDM0UsZUFBUztBQUNiO0FBQ0o7QUFPQSxHQUFDO0FBQ0csYUFBUztBQUNULG1CQUFlLElBQUk7QUFHbkIsS0FBQyxLQUFLLENBQUM7QUFDSCxrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0F6TEM7QUEwTEcsY0FBUTtBQUNSLHFCQUFlO0FBRWYsT0FBQyxLQUFLLHFCQUFxQixDQTdMOUI7QUE4TE8saUNBQXlCO0FBQzdCO0FBRUEsT0FBQyxnQkFBZ0IsQ0FqTXBCO0FBa01PLG1DQUEyQixJQUFJO0FBQy9CLGlDQUF5QixJQUFJO0FBQ2pDO0FBRUEsT0FBQyxxQkFBcUIsQ0F0TXpCO0FBdU1PLGlDQUF5QixJQUFJO0FBQzdCLCtCQUF1QixJQUFJO0FBQy9CO0FBRUEsT0FBQztBQUNHLGlCQUFTO0FBQ2I7QUFFQSxPQUFDLENBMUJFLGVBMEJjLEtBQUs7QUFDbEIsb0JBQVk7QUFDaEI7QUFDSjtBQUNKO0FBRUEsR0FoTkssWUFnTlEsQ0FyTlI7QUFzTkQsaUJBQWE7QUFDYixrQkFBYztBQUNsQjtBQUVBLFFBQU0sQ0ExTkQsUUEwTlU7QUFDWCxZQUFRO0FBQ1IsYUFBUztBQUNiO0FBR0EsR0FBQztBQUNHLGFBQVM7QUFDVCxjQUFVO0FBQ1YsYUFBUztBQUVULEtBck9DO0FBc09HLGNBQVE7QUFDWjtBQUNKO0FBR0EsR0EzT0ssUUEyT0ksQ0FBQztBQUFBLEVBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FabkIsYUFZaUMsQ0FEeEIsbUJBQzRDLEVBQUUsQ0E1T25EO0FBNk9ELFdBQU8sSUFBSTtBQUNYLGlCQUFhLElBQUk7QUFDakIsa0JBQWMsSUFBSTtBQUNsQixlQUFXLElBQUk7QUFDZixxQkFBaUIsSUFBSTtBQUNyQixzQkFBa0IsSUFBSTtBQUN0QixjQUFVLElBQUk7QUFDZCxvQkFBZ0IsSUFBSTtBQUNwQixxQkFBaUIsSUFBSTtBQUNyQix5QkFBcUIsSUFBSTtBQUN6QiwwQkFBc0IsSUFBSTtBQUMxQixxQkFBaUIsSUFBSTtBQUNyQiwwQkFBc0IsSUFBSTtBQUMxQiwyQkFBdUIsSUFBSTtBQUMzQix3QkFBb0IsSUFBSTtBQUN4Qix1QkFBbUIsSUFBSTtBQUN2QixzQkFBa0IsSUFBSTtBQUN0Qix1QkFBbUIsSUFBSTtBQUN2QixtQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsR0FsUUssUUFrUUksQ0FBQztBQUFBLEVBQ1YsSUFBSSxDQXZCQyxlQXVCZSxDQW5DbkIsYUFtQ2lDLENBRHhCLGNBQ3VDLEVBQUUsQ0FuUTlDO0FBb1FELFdBQU8sSUFBSTtBQUNYLGlCQUFhLElBQUk7QUFDakIsa0JBQWMsSUFBSTtBQUNsQixlQUFXLElBQUk7QUFDZixxQkFBaUIsSUFBSTtBQUNyQixzQkFBa0IsSUFBSTtBQUN0QixjQUFVLElBQUk7QUFDZCxvQkFBZ0IsSUFBSTtBQUNwQixxQkFBaUIsSUFBSTtBQUNyQix5QkFBcUIsSUFBSTtBQUN6QiwwQkFBc0IsSUFBSTtBQUMxQiwwQkFBc0IsSUFBSTtBQUMxQiwyQkFBdUIsSUFBSTtBQUMzQix3QkFBb0IsSUFBSTtBQUN4Qix1QkFBbUIsSUFBSTtBQUN2QixzQkFBa0IsSUFBSTtBQUN0Qix1QkFBbUIsSUFBSTtBQUN2QixtQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsR0F4UkssUUF3UkksQ0FBQztBQUFBLEVBQ1YsSUFBSSxDQTdDQyxlQTZDZSxDQXpEbkIsYUF5RGlDLENBRHhCLGlCQUMwQyxFQUFFLENBelJqRDtBQTBSRCxXQUFPLElBQUk7QUFDWCxpQkFBYSxJQUFJO0FBQ2pCLGtCQUFjLElBQUk7QUFDbEIsZUFBVyxJQUFJO0FBQ2YscUJBQWlCLElBQUk7QUFDckIsc0JBQWtCLElBQUk7QUFDdEIsY0FBVSxJQUFJO0FBQ2Qsb0JBQWdCLElBQUk7QUFDcEIscUJBQWlCLElBQUk7QUFDckIseUJBQXFCLElBQUk7QUFDekIsMEJBQXNCLElBQUk7QUFDMUIsMEJBQXNCLElBQUk7QUFDMUIsMkJBQXVCLElBQUk7QUFDM0Isd0JBQW9CLElBQUk7QUFDeEIsdUJBQW1CLElBQUk7QUFDdkIsc0JBQWtCLElBQUk7QUFDdEIsdUJBQW1CLElBQUk7QUFDdkIsbUJBQWUsSUFBSTtBQUN2QjtBQUVBLEdBOVNLLFFBOFNJLENBQUM7QUFBQSxFQUNWLElBQUksQ0FuRUMsZUFtRWUsQ0EvRW5CLGFBK0VpQyxDQUR4QixpQkFDMEMsRUFBRSxDQS9TakQ7QUFnVEQsV0FBTyxJQUFJO0FBQ1gsaUJBQWEsSUFBSTtBQUNqQixrQkFBYyxJQUFJO0FBQ2xCLGVBQVcsSUFBSTtBQUNmLHFCQUFpQixJQUFJO0FBQ3JCLHNCQUFrQixJQUFJO0FBQ3RCLGNBQVUsSUFBSTtBQUNkLG9CQUFnQixJQUFJO0FBQ3BCLHFCQUFpQixJQUFJO0FBQ3JCLHlCQUFxQixJQUFJO0FBQ3pCLDBCQUFzQixJQUFJO0FBQzFCLDBCQUFzQixJQUFJO0FBQzFCLDJCQUF1QixJQUFJO0FBQzNCLHdCQUFvQixJQUFJO0FBQ3hCLHVCQUFtQixJQUFJO0FBQ3ZCLHNCQUFrQixJQUFJO0FBQ3RCLHVCQUFtQixJQUFJO0FBQ3ZCLG1CQUFlLElBQUk7QUFDdkI7QUFFQSxHQXBVSyxRQW9VSSxDQUFDO0FBQUEsRUFDVixJQUFJLENBekZDLGVBeUZlLENBckduQixhQXFHaUMsQ0FEeEIsY0FDdUMsRUFBRSxDQXJVOUM7QUFzVUQsV0FBTyxJQUFJO0FBQ1gsaUJBQWEsSUFBSTtBQUNqQixrQkFBYyxJQUFJO0FBQ2xCLGVBQVcsSUFBSTtBQUNmLHFCQUFpQixJQUFJO0FBQ3JCLHNCQUFrQixJQUFJO0FBQ3RCLGNBQVUsSUFBSTtBQUNkLG9CQUFnQixJQUFJO0FBQ3BCLHFCQUFpQixJQUFJO0FBQ3JCLHlCQUFxQixJQUFJO0FBQ3pCLDBCQUFzQixJQUFJO0FBQzFCLDBCQUFzQixJQUFJO0FBQzFCLDJCQUF1QixJQUFJO0FBQzNCLHdCQUFvQixJQUFJO0FBQ3hCLHVCQUFtQixJQUFJO0FBQ3ZCLHNCQUFrQixJQUFJO0FBQ3RCLHVCQUFtQixJQUFJO0FBQ3ZCLG1CQUFlLElBQUk7QUFDdkI7QUFFQSxHQTFWSyxRQTBWSSxDQUFDO0FBQUEsRUFDVixJQUFJLENBL0dDLGVBK0dlLENBM0huQixhQTJIaUMsQ0FEeEIsZ0JBQ3lDLEVBQUUsQ0EzVmhEO0FBNFZELFdBQU8sSUFBSTtBQUNYLGlCQUFhLElBQUk7QUFDakIsa0JBQWMsSUFBSTtBQUNsQixlQUFXLElBQUk7QUFDZixxQkFBaUIsSUFBSTtBQUNyQixzQkFBa0IsSUFBSTtBQUN0QixjQUFVLElBQUk7QUFDZCxvQkFBZ0IsSUFBSTtBQUNwQixxQkFBaUIsSUFBSTtBQUNyQix5QkFBcUIsSUFBSTtBQUN6QiwwQkFBc0IsSUFBSTtBQUMxQiwwQkFBc0IsSUFBSTtBQUMxQiwyQkFBdUIsSUFBSTtBQUMzQix3QkFBb0IsSUFBSTtBQUN4Qix1QkFBbUIsSUFBSTtBQUN2QixzQkFBa0IsSUFBSTtBQUN0Qix1QkFBbUIsSUFBSTtBQUN2QixtQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsR0FoWEssUUFnWEksQ0FBQztBQUFBLEVBQ1YsSUFBSSxDQXJJQyxlQXFJZSxDQWpKbkIsYUFpSmlDLENBRHhCLGtCQUMyQyxFQUFFLENBalhsRDtBQWtYRCxXQUFPLElBQUk7QUFDWCxpQkFBYSxJQUFJO0FBQ2pCLGtCQUFjLElBQUk7QUFDbEIsZUFBVyxJQUFJO0FBQ2YscUJBQWlCLElBQUk7QUFDckIsc0JBQWtCLElBQUk7QUFDdEIsY0FBVSxJQUFJO0FBQ2Qsb0JBQWdCLElBQUk7QUFDcEIscUJBQWlCLElBQUk7QUFDckIseUJBQXFCLElBQUk7QUFDekIsMEJBQXNCLElBQUk7QUFDMUIsMEJBQXNCLElBQUk7QUFDMUIsMkJBQXVCLElBQUk7QUFDM0Isd0JBQW9CLElBQUk7QUFDeEIsdUJBQW1CLElBQUk7QUFDdkIsc0JBQWtCLElBQUk7QUFDdEIsdUJBQW1CLElBQUk7QUFDdkIsbUJBQWUsSUFBSTtBQUN2QjtBQUdBLEdBdllLLFFBdVlJLENBQUM7QUFBQSxFQUNWLElBQUksQ0E1SkMsZUE0SmUsQ0F4S25CLGFBd0tpQyxDQUR4QixlQUN3QyxFQUFFLENBeFkvQztBQXlZRCwwQkFBc0IsSUFBSTtBQUMxQiwyQkFBdUIsSUFBSTtBQUMzQix3QkFBb0IsSUFBSTtBQUN4Qix1QkFBbUIsSUFBSTtBQUN2QixzQkFBa0IsSUFBSTtBQUN0Qix1QkFBbUIsSUFBSTtBQUN2QixtQkFBZSxJQUFJO0FBQ3ZCO0FBR0EsR0FuWkssUUFtWkksQ0FBQztBQUFBLEVBQ1YsSUFBSSxDQXhLQyxlQXdLZSxDQXBMbkIsYUFvTGlDLENBRHhCLGtCQUMyQyxFQUFFLENBcFpsRDtBQXFaRCxXQUFPLElBQUk7QUFDWCxxQkFBaUIsSUFBSTtBQUNyQixpQkFBYSxJQUFJO0FBQ2pCLGtCQUFjLElBQUk7QUFDbEIsZUFBVyxJQUFJO0FBQ2YscUJBQWlCLElBQUk7QUFDckIsc0JBQWtCLElBQUk7QUFDdEIsY0FBVSxJQUFJO0FBQ2Qsb0JBQWdCLElBQUk7QUFDcEIscUJBQWlCLElBQUk7QUFDekI7QUFFQSxHQWphSyxRQWlhSSxDQUFDO0FBQUEsRUFDVixJQUFJLENBdExDLGVBc0xlLENBbE1uQixhQWtNaUMsQ0FEeEIsY0FDdUMsRUFBRSxDQWxhOUM7QUFtYUQsV0FBTztBQUNQLGlCQUFhLElBQUk7QUFDakIsa0JBQWMsSUFBSTtBQUNsQixlQUFXO0FBQ1gscUJBQWlCO0FBQ2pCLHNCQUFrQjtBQUNsQixlQUFXO0FBQ1gsc0JBQWtCO0FBQ2xCLGdCQUFZO0FBQ1oscUJBQWlCLElBQUk7QUFDckIsY0FBVSxJQUFJO0FBQ2Qsb0JBQWdCLElBQUk7QUFDcEIscUJBQWlCLElBQUk7QUFDekI7QUFFQSxHQWxiSyxRQWtiSSxDQTdQRTtBQUFBLEVBOFBYLElBQUksQ0F2TUMsZUF1TWUsQ0FuTm5CLGFBbU5pQyxDQTlQdkIsZ0JBOFB3QyxFQUFFLENBbmJoRDtBQW9iRCxlQUFXLElBQUk7QUFDZixzQkFBa0IsSUFBSTtBQUMxQjtBQUdBLEdBemJLO0FBMGJELEtBQUMsQ0F2Vks7QUF3VkYscUJBQWUsSUFBSTtBQUN2QjtBQUVBLEtBQUMsQ0FBQztBQUNFLGlCQUFXLElBQUk7QUFDZixlQUFTLElBQUkseUJBQXlCLElBQUk7QUFFMUMsT0EzWEg7QUFBQSxNQTRYRyxDQTNYSDtBQUFBLE1BNFhHLENBM1hIO0FBNFhPLG1CQUFXLElBQUk7QUFDbkI7QUFFQSxPQUFDLENBcFhIO0FBcVhNLGVBQU8sSUFBSTtBQUNYLHdCQUFnQjtBQUVoQixTQUFDLENBeldIO0FBMFdNLGtCQUFRLElBQUk7QUFDaEI7QUFDSjtBQUNKO0FBRUEsS0FBQyxDQUFDO0FBQ0UsaUJBQVcsSUFBSTtBQUNmLGVBQVMsSUFBSSx5QkFBeUIsSUFBSTtBQUUxQyxPQS9ZSDtBQUFBLE1BZ1pHLENBL1lIO0FBQUEsTUFnWkcsQ0EvWUg7QUFnWk8sbUJBQVcsSUFBSTtBQUNuQjtBQUVBLE9BQUMsQ0F4WUg7QUF5WU0sZUFBTyxJQUFJO0FBQ1gsd0JBQWdCO0FBRWhCLFNBQUMsQ0E3WEg7QUE4WE0sa0JBQVEsSUFBSTtBQUNoQjtBQUNKO0FBQ0o7QUFHQSxLQUFDLENBN1hDO0FBOFhFLE9BQUMsQ0ExQ0g7QUFBQSxNQTJDRSxDQUFDLENBdkJIO0FBd0JNLGlCQUFTO0FBQ2I7QUFFQSxPQUFDLENBL0NILFlBK0NnQixFQUFFO0FBQ1osaUJBQVMsSUFBSSx5QkFBeUIsSUFBSTtBQUM5QztBQUVBLE9BQUMsQ0EvQkgsWUErQmdCLEVBQUU7QUFDWixpQkFBUyxJQUFJLHlCQUF5QixJQUFJO0FBQzlDO0FBRUEsT0FBQyxDQWphSCxtQkFpYXVCLEVBQUU7QUFDbkIsY0FBTSxFQUFFLEVBQUU7QUFDVixvQkFBWTtBQUNaLHlCQUFpQjtBQUNqQix3QkFBZ0I7QUFDaEIsYUFBSztBQUNUO0FBQ0o7QUFFQSxLQUFDO0FBQ0csaUJBQVcsSUFBSTtBQUNmLGNBQVEsSUFBSTtBQUNaLG1CQUFhLElBQUk7QUFDckI7QUFDSjtBQUdBLEdBQUM7QUFBQSxFQUNELENBQUM7QUFDRyxXQUFPLElBQUk7QUFDWCxtQkFBZSxJQUFJO0FBQ25CLG1CQUFlO0FBQ2YsZ0JBQVksTUFBTSxJQUFJLCtCQUErQixFQUFFLGNBQWMsSUFBSTtBQUV6RSxLQUFDO0FBQ0csYUFBTyxJQUFJO0FBQ1gsdUJBQWlCO0FBQ3JCO0FBRUEsS0FBQztBQUNHLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSSxzQkFBc0IsSUFBSSxzQkFBc0IsSUFBSTtBQUNqRSxzQkFBZ0IsSUFBSTtBQUNwQixrQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFJQSxHQXpCQyxhQXlCYSxDQXpYUjtBQTBYRixZQUFRO0FBQ1IscUJBQWlCO0FBRWpCLEtBQUM7QUFDRyxlQUFTO0FBQ1QsZUFBUztBQUNULG1CQUFhO0FBQ2IsMkJBQXFCLElBQUk7QUFDekIsc0JBQWdCO0FBQ2hCLGtCQUFZO0FBQ1osMkJBQXFCO0FBQ3JCLFlBQU0sSUFBSSw4QkFBOEIsT0FBTyxFQUFFLFFBQVE7QUFDekQsaUJBQVcsT0FBTyxJQUFJLGdEQUFnRCxPQUFPO0FBQ2pGO0FBQ0o7QUFBQTs7O0FDMWpCQTtBQUlBLEdBQUMsY0FBYztBQUNYLGFBQVM7QUFDVCxXQUFPO0FBQ1g7QUFFQSxHQUFDO0FBQ0csYUFBUztBQUNULG9CQUFnQjtBQUNoQixnQkFBWSxJQUFJO0FBQ2hCLFdBQU8sSUFBSTtBQUNYLFlBQVEsRUFBRTtBQUNWLGdCQUFZLElBQUk7QUFDaEIsbUJBQWUsSUFBSTtBQUduQixLQWZIO0FBZ0JPLGdCQUFVO0FBQ1YsaUNBQTJCLElBQUk7QUFDL0IsK0JBQXlCLElBQUk7QUFDakM7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNULHNCQUFnQjtBQUNoQixXQUFLLElBQUk7QUFDVCxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDO0FBQ0csY0FBUTtBQUNSLGlCQUFXLElBQUk7QUFDZixtQkFBYSxJQUFJO0FBQ3JCO0FBRUEsS0FBQztBQUNHLGNBQVE7QUFDUixhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNyQjtBQUdBLEtBZEMsYUFjYSxFQUFFLENBUmY7QUFVRyxrQkFBWSxLQUFLLElBQUksc0JBQXNCLEVBQUUsSUFBSTtBQUNyRDtBQUNKO0FBQUE7OztBQ2xEQTtBQU9BLEdBQUM7QUFDRyxhQUFTO0FBQ1Qsb0JBQWdCO0FBRWhCLEtBQUM7QUFDRyxPQUFDO0FBQUEsTUFDRCxDQUFDO0FBQ0csZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsSUFBSTtBQUNaLGdCQUFRLElBQUk7QUFDWixpQkFBUztBQUNULG9CQUFZO0FBQ1osZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsRUFBRTtBQUNWLHVCQUFlO0FBQ2Ysb0JBQVk7QUFDWixxQkFBYSxJQUFJO0FBQ2pCLDZCQUFxQjtBQUNyQixxQkFBYTtBQUNiLHVCQUFlO0FBQ2Y7QUFBQSxVQUFZLFdBQVcsSUFBSSxpQ0FBaUM7QUFBQSxVQUFFLE1BQU0sSUFBSSxpQ0FBaUM7QUFBQSxVQUNyRyxjQUFjLElBQUksaUNBQWlDO0FBQUEsVUFBRSxXQUFXLElBQUk7QUFDNUU7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BbkNDLGVBbUNlO0FBQUEsTUFDaEIsQ0FuQ0MsZUFtQ2U7QUFDWixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNYLHlCQUFpQjtBQUNyQjtBQUVBLE9BMUNDLGVBMENlO0FBQUEsTUFDaEIsQ0ExQ0MsZUEwQ2U7QUFDWixvQkFBWSxJQUFJO0FBQ3BCO0FBRUEsT0EvQ0MsZUErQ2U7QUFBQSxNQUNoQixDQS9DQyxlQStDZTtBQUNaLGlCQUFTLElBQUksc0JBQXNCLElBQUksc0JBQXNCLElBQUk7QUFDakUsd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BdERDLGVBc0RlLENBQUM7QUFBQSxNQUNqQixDQXREQyxlQXNEZSxDQURDO0FBRWIsaUJBQVMsSUFBSTtBQUNqQjtBQUNKO0FBR0EsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNiLFdBQUssSUFBSTtBQUVULE9BQUM7QUFDRyxnQkFBUTtBQUVSO0FBQ0ksc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ1gsa0JBQVEsSUFBSTtBQUNaLGtCQUFRLEVBQUU7QUFDVix5QkFBZSxJQUFJO0FBQ25CLHlCQUFlO0FBQ2Y7QUFBQSxZQUFZLFdBQVcsSUFBSSxpQ0FBaUM7QUFBQSxZQUFFLE1BQU0sSUFBSSxpQ0FBaUM7QUFBQSxZQUNyRyxjQUFjLElBQUksaUNBQWlDO0FBQUEsWUFBRSxXQUFXLElBQUk7QUFDNUU7QUFFQSxjQUFNO0FBQ0Ysc0JBQVksSUFBSTtBQUNwQjtBQUVBLGNBQU07QUFDRixtQkFBUyxJQUFJLHlDQUF5QyxJQUFJLHlDQUF5QyxJQUFJO0FBQ3ZHLDBCQUFnQixJQUFJO0FBQ3BCLHNCQUFZLElBQUk7QUFDcEI7QUFFQSxTQUFDLENBQUMsa0JBQWtCO0FBQ2hCLHNCQUFZLElBQUk7QUFDaEIsaUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFDSjtBQUNKO0FBRUEsR0FsR0s7QUFtR0QsYUFBUztBQUNULG9CQUFnQjtBQUNoQixjQUFVO0FBQ2Q7QUFFQSxHQXZHUztBQUFBLEVBd0dULENBdkdTO0FBd0dMLGdCQUFZO0FBQ1osZUFBVztBQUNYLGlCQUFhO0FBQ2IsYUFBUztBQUNULHFCQUFpQjtBQUNqQixpQkFBYTtBQUNiLGNBQVU7QUFDVixjQUFVO0FBQ1YsWUFBUTtBQUNaO0FBRUEsR0FwSFMsZUFvSE8sQ0E5RFM7QUFBQSxFQStEekIsQ0FwSFMsZUFvSE8sQ0EvRFM7QUFnRXJCLG9CQUFnQjtBQUNwQjtBQUVBLEdBQUM7QUFDRyxhQUFTO0FBQ1Qsb0JBQWdCO0FBQ3BCO0FBRUEsR0FBQztBQUNHLGNBQVU7QUFDVixXQUFPO0FBQ1g7QUFFQSxHQUFDO0FBQ0csYUFBUztBQUNULG9CQUFnQjtBQUNwQjtBQUVBLEdBM0VLO0FBNEVELGFBQVM7QUFDVCxvQkFBZ0I7QUFDaEIscUJBQWlCO0FBQ2pCLGVBQVc7QUFDWCxZQUFRO0FBQ1IsZ0JBQVk7QUFDaEI7QUFFQSxHQWhGUyxxQkFnRmEsRUFBRTtBQUNwQixhQUFTO0FBQ1QsaUJBQWE7QUFDYixxQkFBaUI7QUFFakIsS0FBQyxDQUFDO0FBQ0Usa0JBQVk7QUFDWixjQUFRO0FBQ1IsZUFBUztBQUNULGNBQVE7QUFDUiwyQkFBcUI7QUFDckIsbUJBQWE7QUFDakI7QUFDSjtBQUVBLEdBQUM7QUFDRyxLQXhDSDtBQXlDTyxzQkFBZ0I7QUFDcEI7QUFFQSxLQWxDSDtBQW1DTyxzQkFBZ0I7QUFDaEIsY0FBUTtBQUNaO0FBQ0o7QUFHQSxHQUFDLGVBQWUsQ0FBQztBQUNiLGdCQUFZO0FBRVosS0FBQyxDQUFDO0FBQ0Usa0JBQVk7QUFDaEI7QUFDSjtBQUFBOzs7QUM5TEE7QUFVQSxHQUFDO0FBQ0csYUFBUztBQUNULFlBQVE7QUFDUixjQUFVO0FBQ1YseUJBQXFCO0FBQ3JCLGlCQUFhO0FBQ2IsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG1CQUFlLElBQUk7QUFDbkIsZ0JBQVksSUFBSTtBQUNoQixtQkFBZTtBQUNmO0FBQUEsTUFBWSxXQUFXLElBQUksc0NBQXNDO0FBQUEsTUFBRSxNQUFNLElBQUksc0NBQXNDO0FBQUEsTUFDL0csYUFBYSxJQUFJLHNDQUFzQztBQUFBLE1BQUUsY0FBYyxJQUFJLHNDQUFzQztBQUFBLE1BQ2pILFdBQVcsSUFBSTtBQUVuQixLQUFDLEtBQUssQ0FBQyxpQkFBaUI7QUFDcEIsb0JBQWMsSUFBSTtBQUN0QjtBQUVBLEtBQUMsS0FBSyxDQUpDLGlCQUlpQixDQUFDO0FBQ3JCLG9CQUFjLElBQUk7QUFDbEIsZUFBUyxJQUFJLG9DQUFvQyxJQUFJLG9DQUFvQyxJQUFJO0FBQzdGLHNCQUFnQixJQUFJO0FBQ3BCLGtCQUFZLElBQUk7QUFDcEI7QUFHQSxLQUFDLENBQUM7QUFBQSxJQUNGLENBQUMsQ0FEQyxhQUNhLElBQUksUUFBUSxDQVRGO0FBVXJCLG9CQUFjLElBQUk7QUFDdEI7QUFFQSxLQUFDLENBakJNO0FBa0JILGtCQUFZLElBQUk7QUFDaEIsZUFBUztBQUNiO0FBR0EsS0FBQyxxQkFBcUIsQ0FBQztBQUFBLElBQ3ZCLENBREMscUJBQ3FCLENBREMsWUFDWSxLQUFLLENBeEJqQyxpQkF3Qm1EO0FBQUEsSUFDMUQsQ0FGQyxxQkFFcUIsQ0FGQyxZQUVZLEtBQUssQ0F6QmpDLGlCQXlCbUQ7QUFDdEQsa0JBQVk7QUFDWixjQUFRLEVBQUU7QUFDVixxQkFBZTtBQUNmLGVBQVMsRUFBRTtBQUNYLGtCQUFZO0FBQ2hCO0FBRUEsS0FWQyxxQkFVcUIsQ0FWQztBQVduQixxQkFBZSxJQUFJO0FBQ25CLHNCQUFnQixJQUFJO0FBQ3BCLGlCQUFXLElBQUk7QUFDZixtQkFBYSxJQUFJO0FBQ2pCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FsQkMscUJBa0JxQixDQWxCQyxZQWtCWSxDQUFDO0FBQ2hDLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQWpDQyxjQWlDYyxDQXRCZixxQkFzQnFDLENBdEJmLFlBc0I0QixDQUpmO0FBS2hDLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQWpETSxpQkFpRFksQ0ExQmxCLHFCQTBCd0MsQ0ExQmxCO0FBMkJuQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDO0FBQ0csa0JBQVk7QUFDWixhQUFPLElBQUk7QUFDWCxhQUFPLElBQUk7QUFDWCwrQkFBeUIsSUFBSTtBQUM3Qiw2QkFBdUIsSUFBSTtBQUMvQjtBQUdBLEtBQUMsQ0FBQztBQUNFLG1DQUE2QixJQUFJO0FBQ2pDLG1DQUE2QixJQUFJO0FBQ2pDLG1DQUE2QixJQUFJO0FBQ3JDO0FBRUEsS0FBQyxDQUFDO0FBQ0UsbUNBQTZCLElBQUk7QUFDakMsbUNBQTZCLElBQUk7QUFDakMsbUNBQTZCLElBQUk7QUFDckM7QUFFQSxLQUFDLENBWkMsbUJBWW1CLENBckJwQix3QkFxQjZDLENBQUM7QUFBQSxJQUMvQyxDQUFDLENBUEMsbUJBT21CLENBdEJwQix3QkFzQjZDLENBREM7QUFFM0MsaUJBQVcsSUFBSTtBQUNuQjtBQUNKO0FBRUEsR0EzQks7QUE0QkQsYUFBUztBQUNULGlCQUFhO0FBQ2IscUJBQWlCO0FBQ2pCLGlCQUFhO0FBQ2pCO0FBRUEsR0FwRUs7QUFxRUQsYUFBUztBQUNULGlCQUFhO0FBQ2IsY0FBVTtBQUNWLFVBQU0sRUFBRSxFQUFFO0FBQ1YsV0FBTztBQUNQLG1CQUFlO0FBQ2YsWUFBUTtBQUNaO0FBR0EsR0EvRUsscUJBK0VpQixNQUFNO0FBQ3hCLGFBQVM7QUFDYjtBQUdBLEdBQUM7QUFDRyxlQUFXO0FBQ1gsY0FBVTtBQUNWLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixtQkFBZSxJQUFJO0FBQ25CLGdCQUFZLElBQUk7QUFFaEIsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUNKO0FBRUEsR0FMSztBQU1ELFlBQVE7QUFDUixhQUFTO0FBQ1QscUJBQWlCO0FBQ3JCO0FBRUEsR0FBQztBQUNHLFlBQVE7QUFDUixpQkFBYTtBQUNqQjtBQUVBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsaUJBQWE7QUFDYixjQUFVO0FBQ1YsY0FBVTtBQUVWLEtBQUM7QUFDRywyQkFBcUI7QUFDekI7QUFDSjtBQUVBLEdBcENDLHNCQW9Dc0IsQ0EzQmxCLHNCQTJCeUMsQ0FoQjdDO0FBaUJHLFlBQVE7QUFDUixZQUFRLEVBQUU7QUFDVixXQUFPLElBQUk7QUFDWCxnQkFBWTtBQUNaLGVBQVcsSUFBSTtBQUNmLGlCQUFhLElBQUk7QUFDakIsbUJBQWUsSUFBSTtBQUNuQjtBQUFBLE1BQVksV0FBVyxJQUFJLG9DQUFvQztBQUFBLE1BQUUsTUFBTSxJQUFJLG9DQUFvQztBQUFBLE1BQzNHLGFBQWEsSUFBSSxvQ0FBb0M7QUFBQSxNQUFFLFdBQVcsSUFBSSxvQ0FBb0M7QUFBQSxNQUMxRyxjQUFjLElBQUk7QUFFdEIsTUFBRSxFQUFFLENBNUJQO0FBNkJPLGtCQUFZLElBQUk7QUFDcEI7QUFFQSxLQTNCSDtBQTRCTyxlQUFTLElBQUk7QUFDYixxQkFBZSxJQUFJO0FBQ25CLHFCQUFlO0FBRWYsT0FBQztBQUNHLGlCQUFTLElBQUksc0JBQXNCLElBQUksc0JBQXNCLElBQUk7QUFDakUsd0JBQWdCLEtBQUssR0FBRyxFQUFFLElBQUk7QUFDOUIsb0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBR0EsS0FBQyxDQUFDO0FBQ0UsYUFBTyxJQUFJO0FBQ1gsa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUMsS0FBSyxDQUxKLGtCQUt1QixLQUFLLENBakx2QixpQkFpTHlDO0FBQzVDLGFBQU8sSUFBSTtBQUNYLGtCQUFZLElBQUk7QUFDcEI7QUFHQSxLQUFDLENBQUM7QUFDRSxhQUFPLElBQUk7QUFDWCxrQkFBWSxJQUFJO0FBRWhCLE9BQUMsQ0FmSDtBQUFBLE1BZ0JFLENBQUMsS0FBSyxDQTVMSCxpQkE0THFCO0FBQ3BCLGVBQU8sSUFBSTtBQUNYLG9CQUFZLElBQUk7QUFDcEI7QUFDSjtBQUVBLEtBeERDO0FBeURHLGVBQVMsSUFBSTtBQUNiLGlCQUFXLElBQUk7QUFDZixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsQ0E1QkMsa0JBNEJrQixFQUFFLENBcEV6Qiw2QkFvRXVELENBOURuRDtBQUFBLElBK0RELENBQUMsS0FBSyxDQXpNQyxpQkF5TWlCLE9BQU8sRUFBRSxDQXJFcEMsNkJBcUVrRSxDQS9EOUQ7QUFnRUcsYUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUdBLEdBQUM7QUFDRyxjQUFVO0FBQ1YsZUFBVztBQUNYLGFBQVM7QUFDVCxhQUFTO0FBQ2I7QUFFQSxHQUFDLDRCQUE0QixFQUFFLENBUDlCO0FBUUcsYUFBUztBQUNULFVBQU07QUFDTixTQUFLO0FBQ1Q7QUFHQSxHQUFDLGVBQWUsQ0E3T2Y7QUE4T0csZ0JBQVksSUFBSTtBQUVoQixLQUFDLEtBQUssQ0FoT0MsaUJBZ09pQjtBQUNwQixrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQyxLQUFLLENBcE9DLGlCQW9PaUIsQ0FoT0M7QUFpT3JCLGtCQUFZLElBQUk7QUFDcEI7QUFDSjtBQUVBLEdBQUMsUUFBUSxDQXpQUjtBQTBQRyxhQUFTO0FBRVQsS0FyTkM7QUFzTkcsYUFBTztBQUNYO0FBQ0o7QUFBQTs7O0FDelFBO0FBTUEsR0FBQztBQUNHLGFBQVM7QUFDVCxpQkFBYTtBQUNiLFNBQUssSUFBSTtBQUNULHNCQUFrQixJQUFJO0FBQ3RCLFdBQU8sSUFBSTtBQUNYLG1CQUFlLElBQUk7QUFDbkIsbUJBQWUsSUFBSTtBQUNuQixvQkFBZ0IsSUFBSTtBQUVwQixLQUFDLEtBQUssRUFBRSxDQUFDO0FBQ0wsMEJBQW9CLElBQUk7QUFDNUI7QUFFQSxLQUFDLENBQUM7QUFDRSxxQkFBZSxLQUFLLElBQUksb0JBQW9CLEVBQUU7QUFDbEQ7QUFFQSxLQUFDO0FBQ0csY0FBUTtBQUNSLG1CQUFhLElBQUk7QUFDakIsaUJBQVcsSUFBSTtBQUNmLG1CQUFhLElBQUk7QUFDckI7QUFHQSxLQUFDO0FBQ0csY0FBUTtBQUNSLG1CQUFhO0FBQ2IsYUFBTyxJQUFJO0FBQ1gsaUJBQVcsSUFBSTtBQUNmLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSTtBQUNaLG1CQUFhO0FBQ2pCO0FBRUE7QUFDSSxxQkFBZTtBQUNmLG1CQUFhO0FBQ2IsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJO0FBQ1osb0JBQWM7QUFDZCxxQkFBZSxLQUFLLEdBQUcsRUFBRSxJQUFJLHFCQUFxQjtBQUN0RDtBQUdBLEtBcENTO0FBcUNMLGVBQVMsSUFBSTtBQUNiLGNBQVE7QUFDUixtQkFBYTtBQUNiLGNBQVE7QUFDUixtQkFBYTtBQUNiLGFBQU8sSUFBSTtBQUNYLGlCQUFXLElBQUk7QUFDZixhQUFPLElBQUk7QUFDWCxjQUFRLElBQUk7QUFDWixxQkFBZTtBQUNmLHFCQUFlO0FBQ2Ysa0JBQVksY0FBYyxJQUFJLDZCQUE2QixFQUFFLFdBQVcsSUFBSTtBQUU1RSxPQUFDO0FBQ0csaUJBQVMsSUFBSSx1Q0FBdUMsSUFBSSx1Q0FBdUMsSUFBSTtBQUNuRyx3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFFQSxLQUFDLEtBQUssRUFBRSxDQXpEQyxrQkF5RGtCO0FBQ3ZCLHdCQUFrQixJQUFJO0FBQzFCO0FBQ0o7QUFBQTs7O0FDNUVBO0FBT0EsR0FBQztBQUVHLDhCQUEwQixJQUFJO0FBQzlCLHVDQUFtQyxJQUFJO0FBQ3ZDLHFDQUFpQyxJQUFJO0FBQ3JDLDJDQUF1QyxJQUFJO0FBQzNDLGdDQUE0QixJQUFJO0FBQ2hDLHNDQUFrQyxJQUFJO0FBQ3RDLHNDQUFrQyxJQUFJO0FBQ3RDLHdDQUFvQyxJQUFJO0FBQ3hDLHlCQUFxQixJQUFJO0FBQ3pCLGtDQUE4QixJQUFJO0FBQ2xDLHFDQUFpQyxJQUFJO0FBQ3JDLDBCQUFzQixJQUFJO0FBQzFCLDZCQUF5QixJQUFJO0FBQzdCLDZCQUF5QixJQUFJO0FBQzdCLGlDQUE2QixJQUFJO0FBQ2pDLG9DQUFnQyxJQUFJO0FBQ3BDLG9DQUFnQyxJQUFJO0FBQ3BDLG9DQUFnQyxJQUFJO0FBQ3BDLHFDQUFpQyxJQUFJO0FBQ3JDLHFDQUFpQyxJQUFJO0FBQ3JDLHVDQUFtQyxJQUFJO0FBRXZDLGdCQUFZO0FBQ1osWUFBUTtBQUNSLGFBQVM7QUFDVCxjQUFVO0FBRVYsS0FBQztBQUNHLGVBQVMsS0FBSyxJQUFJLDBCQUEwQixFQUFFLEdBQUcsSUFBSTtBQUNyRCxXQUFLLEtBQUssSUFBSSwwQkFBMEIsRUFBRTtBQUUxQyxPQUFDO0FBQ0csaUJBQVMsS0FBSyxJQUFJLDBCQUEwQixFQUFFLEdBQUc7QUFDakQsZ0JBQVE7QUFDUixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNYLHVCQUFlLElBQUk7QUFDbkIsb0JBQVksV0FBVyxJQUFJLG1DQUFtQyxFQUFFLE1BQU0sSUFBSTtBQUUxRSxTQUFDO0FBQ0cseUJBQWU7QUFDZiwwQkFBZ0IsSUFBSSxvQkFBb0IsS0FBSyxJQUFJLG9CQUFvQixFQUFFLElBQUksY0FBYyxFQUFFLElBQUk7QUFDL0YscUJBQVcsSUFBSTtBQUNmLHVCQUFhLElBQUk7QUFDckI7QUFFQSxTQUFDO0FBQ0csbUJBQVMsSUFBSTtBQUNqQjtBQUVBLFNBQUM7QUFDRyw0QkFBa0IsSUFBSTtBQUN0QixzQkFBWSxLQUFLLEdBQUcsRUFBRSxJQUFJLDJCQUEyQixFQUFFO0FBQ3ZELHFCQUFXLElBQUk7QUFDZixpQkFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLE9BQUM7QUFDRyxnQkFBUTtBQUNSLGlCQUFTLEtBQUssSUFBSSwwQkFBMEIsRUFBRSxHQUFHO0FBR2pEO0FBQ0ksdUJBQWE7QUFDYixxQkFBVyxJQUFJO0FBQ2YsdUJBQWEsSUFBSTtBQUNqQix1QkFBYSxJQUFJO0FBQ2pCLGlCQUFPLElBQUk7QUFDWCxzQkFBWTtBQUNoQjtBQUVBLGFBQUs7QUFDRCxpQkFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLE9BQUMsQ0FBQyxjQUFjLENBbkJmLG9CQW1Cb0MsS0FBSztBQUN0QyxlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0FBQyxpQkFBaUIsQ0F2QmxCLG9CQXVCdUM7QUFDcEMsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUNKO0FBRUEsR0E1REs7QUE2REQsYUFBUztBQUNULGVBQVc7QUFDWCxpQkFBYTtBQUNiLFdBQU87QUFDUCxZQUFRO0FBQ1IscUJBQWlCO0FBQ2pCLFlBQVE7QUFDUixnQkFBWTtBQUNaLGNBQVU7QUFDZDtBQUVBLEdBcEVTO0FBcUVMLFlBQVE7QUFDUixhQUFTO0FBQ1QsaUJBQWE7QUFDYixVQUFNLEVBQUUsRUFBRTtBQUNWLGNBQVU7QUFDVixjQUFVO0FBRVYsS0FwRVM7QUFxRUwsZUFBUztBQUNiO0FBRUEsS0E3RFM7QUE4REwsY0FBUTtBQUNSLGdCQUFVO0FBQ1YsV0FBSztBQUNUO0FBQ0o7QUFFQSxHQTVEUztBQTZETCxhQUFTO0FBQ1QsaUJBQWE7QUFFYixVQUFNLEVBQUUsRUFBRTtBQUNWLGVBQVc7QUFFWDtBQUNJLGlCQUFXO0FBQ1gsd0JBQWtCO0FBQ2xCLGNBQVEsRUFBRTtBQUNWLGVBQVMsRUFBRTtBQUNYLGVBQVM7QUFDVCxjQUFRO0FBQ1Isa0JBQVk7QUFDWixxQkFBZTtBQUNmLGFBQU87QUFDWDtBQUNKO0FBRUEsR0FBQyxRQUFRLENBNUlSO0FBNklHLGFBQVM7QUFDVCxVQUFNLEVBQUUsRUFBRTtBQUVWLEtBbkhDO0FBb0hHLGFBQU87QUFDWDtBQUNKO0FBQUE7OztBQzFKQTtBQU9BLEdBQUM7QUFDRyxhQUFTO0FBQ1QsZUFBVztBQUNYLG9CQUFnQjtBQUVoQixLQUFDO0FBQ0csa0JBQVksSUFBSTtBQUVoQixPQUFDO0FBQ0csb0JBQVk7QUFDaEI7QUFDSjtBQUVBLEtBQUM7QUFDRyxtQkFBYTtBQUNiLHVCQUFpQjtBQUNqQixnQkFBVTtBQUNWLG9CQUFjLElBQUk7QUFDbEIsb0JBQWM7QUFDZCxvQkFBYyxJQUFJO0FBQ2xCLHFCQUFlLElBQUk7QUFDbkIsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJO0FBQ1osa0JBQVksSUFBSTtBQUVoQixPQUFDO0FBQ0csaUJBQVM7QUFDVCx1QkFBZSxJQUFJO0FBQ25CLGVBQU8sSUFBSTtBQUNYLGdCQUFRLElBQUk7QUFDWixvQkFBWSxJQUFJO0FBQ3BCO0FBRUEsT0FBQztBQUNHLGlCQUFTO0FBQ1Qsa0JBQVU7QUFDVixlQUFPO0FBQ1AsZ0JBQVE7QUFDUix1QkFBZSxJQUFJO0FBQ25CLG9CQUFZLElBQUk7QUFDcEI7QUFDSjtBQUVBLEtBQUM7QUFDRyxrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQyxDQUFDO0FBQ0UsT0FBQztBQUFBLE1BQ0QsQ0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQVZIO0FBV08sZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLEtBQUMsQ0FBQztBQUNFLE9BWEM7QUFBQSxNQVlELENBWEM7QUFZRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FyQkg7QUFzQk8sZ0JBQVEsSUFBSTtBQUNoQjtBQUNKO0FBQ0o7QUFHQSxHQUFDO0FBQ0csS0F4Qks7QUF5QkQsa0JBQVk7QUFDaEI7QUFFQSxLQTNCSztBQTRCRCxrQkFBWTtBQUNoQjtBQUNKO0FBRUEsR0FBQztBQUNHLEtBN0VDO0FBOEVHLHNCQUFnQjtBQUNwQjtBQUVBLEtBdENLO0FBdUNELGtCQUFZO0FBQ2hCO0FBRUEsS0F6Q0s7QUEwQ0Qsa0JBQVk7QUFDaEI7QUFDSjtBQUVBLEdBaERNLHFCQWdEZ0IsQ0FBQyx1QkFBdUIsQ0ExRnpDO0FBMkZELEtBQUM7QUFDRyxzQkFBZ0I7QUFDcEI7QUFFQSxLQUFDO0FBQ0csT0FyREM7QUFzREcsb0JBQVk7QUFDaEI7QUFFQSxPQXhEQztBQXlERyxvQkFBWTtBQUNoQjtBQUNKO0FBRUEsS0FBQztBQUNHLE9BL0RDO0FBZ0VHLG9CQUFZO0FBQ2hCO0FBRUEsT0FsRUM7QUFtRUcsb0JBQVk7QUFDaEI7QUFDSjtBQUNKO0FBRUEsR0FwSEs7QUFxSEQsYUFBUztBQUNULGNBQVU7QUFDZDtBQUVBLEdBOUVTO0FBK0VMLFVBQU07QUFDVjtBQUVBLEdBakZTO0FBa0ZMLFVBQU07QUFDVjtBQUVBLEdBQUM7QUFDRyxVQUFNO0FBQ04sYUFBUztBQUNULGlCQUFhO0FBQ2Isb0JBQWdCO0FBQ3BCO0FBRUEsR0FoSUs7QUFpSUQsYUFBUztBQUNULGdCQUFZO0FBQ2hCO0FBRUEsR0F2R0s7QUF3R0QsZUFBVztBQUNmO0FBRUEsR0E1Rk07QUE2RkYsb0JBQWdCO0FBRWhCLEtBcEpDO0FBcUpHLHNCQUFnQjtBQUNoQixZQUFNO0FBRU4sT0FBQztBQUNHLGNBQU07QUFDVjtBQUNKO0FBRUEsS0E1Qkg7QUE2Qk8sc0JBQWdCO0FBQ3BCO0FBRUEsS0EzSEM7QUE0SEcsYUFBTztBQUNYO0FBRUEsS0FBQyxDQTNFa0IsdUJBMkVNLENBckt4QixrQkFxSzJDO0FBQ3hDLHNCQUFnQjtBQUNwQjtBQUNKO0FBRUEsR0FBQyxvQkFBb0IsQ0ExS2hCO0FBMktELG9CQUFnQjtBQUNwQjtBQUFBOzs7QUN4TEE7QUFPQSxHQUFDO0FBQ0csYUFBUztBQUNULGNBQVU7QUFDVixjQUFVO0FBQ1YsYUFBUztBQUNULGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixtQkFBZSxJQUFJO0FBQ25CLGdCQUFZLElBQUk7QUFHaEIsS0FBQztBQUNHLGVBQVM7QUFDYjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNULHNCQUFnQjtBQUNoQixjQUFRLEVBQUU7QUFDVixjQUFRO0FBQ1Isa0JBQVk7QUFDWixlQUFTLElBQUk7QUFDYixXQUFLLElBQUk7QUFDYjtBQUVBLEtBQUM7QUFBQSxJQUNELENBQUM7QUFDRyxjQUFRO0FBQ1IsY0FBUTtBQUNSLGtCQUFZO0FBQ1osbUJBQWE7QUFDYixlQUFTO0FBQ1QsbUJBQWE7QUFDYixnQkFBVTtBQUNkO0FBRUEsS0FYQyxxQkFXcUIsQ0FBQztBQUFBLElBQ3ZCLENBWEMsb0JBV29CLENBREU7QUFFbkIsZ0JBQVU7QUFDVixZQUFNLEVBQUUsRUFBRTtBQUNWLGNBQVE7QUFDWjtBQUVBLEtBbEJDLHFCQWtCcUI7QUFBQSxJQUN0QixDQWxCQyxvQkFrQm9CO0FBQ2pCLGVBQVM7QUFDVCxZQUFNLEVBQUUsRUFBRTtBQUNWLGVBQVM7QUFDVCxjQUFRO0FBQ1o7QUFFQSxLQXBDQztBQXFDRyxPQTNCSDtBQTRCTyxhQUFLLElBQUk7QUFDVCxpQkFBUyxJQUFJO0FBQ2IsZ0JBQVEsRUFBRTtBQUNWLG9CQUFZO0FBQ1osZUFBTyxJQUFJO0FBQ1gsbUJBQVcsSUFBSTtBQUNmLHFCQUFhO0FBQ2IsdUJBQWUsSUFBSTtBQUNuQixvQkFBWSxXQUFXLElBQUksc0NBQXNDLEVBQUUsTUFBTSxJQUFJO0FBRTdFLFNBQUM7QUFBQSxRQUNELENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztBQUNoQixzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsT0E1Q0g7QUE2Q08sYUFBSyxJQUFJO0FBQ1QsaUJBQVMsSUFBSTtBQUNiLG9CQUFZO0FBQ1osZUFBTyxJQUFJO0FBQ1gscUJBQWEsSUFBSTtBQUNqQixnQkFBUSxFQUFFO0FBQ1YsdUJBQWUsSUFBSSxNQUFNLElBQUk7QUFDN0IsdUJBQWU7QUFDbkI7QUFDSjtBQUNKO0FBR0EsU0FBTztBQUNILEtBMUZILGdCQTBGb0IsQ0E1RGhCLG9CQTREcUMsQ0FBQztBQUFBLElBQ3ZDLENBM0ZILGdCQTJGb0IsQ0E3RGhCLG9CQTZEcUMsQ0FBQztBQUFBLElBQ3ZDLENBNUZILGdCQTRGb0IsQ0E5RGhCLG9CQThEcUMsQ0FBQztBQUFBLElBQ3ZDLENBN0ZILGdCQTZGb0IsQ0EvRGhCLG9CQStEcUMsQ0FBQztBQUFBLElBQ3ZDLENBOUZILGdCQThGb0IsQ0FoRWhCLG9CQWdFcUMsQ0FBQztBQUFBLElBQ3ZDLENBL0ZILGdCQStGb0IsQ0FqRWhCLG9CQWlFcUMsQ0FBQztBQUNuQyxlQUFTO0FBQ2I7QUFFQSxNQUFFLENBQUM7QUFBQSxJQUNILEVBQUUsQ0FEQztBQUVDLGVBQVM7QUFDYjtBQUNKO0FBRUEsU0FBTyxZQUFXLFdBQVk7QUFDMUIsS0ExR0gsZ0JBMEdvQixDQTVFaEIsb0JBNEVxQyxDQWhCQztBQWlCbkMsZUFBUztBQUNiO0FBQ0o7QUFFQSxTQUFPLFlBQVcsV0FBWTtBQUMxQixLQWhISCxnQkFnSG9CLENBbEZoQixvQkFrRnFDLENBckJDO0FBc0JuQyxlQUFTO0FBQ2I7QUFDSjtBQUVBLFNBQU8sWUFBVyxXQUFZO0FBQzFCLEtBdEhILGdCQXNIb0IsQ0F4RmhCLG9CQXdGcUMsQ0ExQkM7QUEyQm5DLGVBQVM7QUFDYjtBQUNKO0FBRUEsU0FBTyxZQUFXLFdBQVk7QUFDMUIsS0E1SEgsZ0JBNEhvQixDQTlGaEIsb0JBOEZxQyxDQS9CQztBQWdDbkMsZUFBUztBQUNiO0FBQ0o7QUFFQSxTQUFPLFlBQVcsV0FBWTtBQUMxQixLQWxJSCxnQkFrSW9CLENBcEdoQixvQkFvR3FDLENBcENDO0FBcUNuQyxlQUFTO0FBQ2I7QUFDSjtBQUVBLFNBQU8sWUFBVyxXQUFZO0FBQzFCLEtBeElILGdCQXdJb0IsQ0ExR2hCLG9CQTBHcUMsQ0F6Q0M7QUEwQ25DLGVBQVM7QUFDYjtBQUNKO0FBQUE7OztBQ2xKQTtBQVFBLEdBQUM7QUFDRyxjQUFVO0FBQ1YsYUFBUztBQUNULGdCQUFZLElBQUk7QUFDaEIsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG1CQUFlLElBQUk7QUFDbkIsZ0JBQVksSUFBSTtBQUVoQixLQUFDLENBQUM7QUFDRSxrQkFBWTtBQUNaLHFCQUFlLElBQUk7QUFDdkI7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNULG1CQUFhO0FBQ2Isa0JBQVk7QUFDWixhQUFPO0FBQ1AsY0FBUSxFQUFFO0FBQ1YsV0FBSyxJQUFJO0FBQ1QsZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhO0FBQ2IsaUJBQVcsSUFBSTtBQUNmLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQztBQUNHLGNBQVE7QUFDUixhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNyQjtBQUVBLEtBQUM7QUFDRyxrQkFBWTtBQUNaLGFBQU87QUFDUCxjQUFRLEVBQUU7QUFDVixrQkFBWTtBQUNaLGVBQVMsSUFBSTtBQUViO0FBQ0ksZ0JBQVE7QUFDUiwyQkFBbUIsSUFBSTtBQUN2QixlQUFPO0FBRVAsU0FBQztBQUNHLGtCQUFRO0FBQ1o7QUFDSjtBQUNKO0FBR0EsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLGVBQVM7QUFDVCxnQkFBVTtBQUNWLGNBQVE7QUFDUixZQUFNLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUM5QyxhQUFPO0FBQ1AsY0FBUTtBQUNSLHNCQUFnQjtBQUNwQjtBQUVBLEtBQUM7QUFDRyxvQkFBYyxLQUFLLElBQUkseUJBQXlCLEVBQUU7QUFDbEQsbUJBQWEsS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLHlCQUF5QixFQUFFO0FBQ3ZELG9CQUFjO0FBQ2Qsb0JBQWM7QUFDZCwyQkFBcUIsSUFBSTtBQUM3QjtBQUVBLEtBQUM7QUFDRyxvQkFBYyxJQUFJO0FBQ2xCLG1CQUFhLEtBQUssR0FBRyxFQUFFLElBQUk7QUFDM0Isb0JBQWM7QUFDZCxvQkFBYztBQUNkLDJCQUFxQixJQUFJO0FBQzdCO0FBRUEsS0FBQyxDQTFFQztBQTJFRSxPQUFDO0FBQUEsTUFDRCxDQUFDO0FBQ0csZ0JBQVE7QUFDUixhQUFLO0FBQ1Q7QUFFQSxPQUFDO0FBQ0csNkJBQXFCO0FBQ3JCLDBCQUFrQixJQUFJO0FBQzFCO0FBRUEsT0FBQztBQUNHLDZCQUFxQjtBQUNyQiwwQkFBa0IsSUFBSTtBQUMxQjtBQUNKO0FBQ0o7QUFBQTs7O0FDN0dBO0FBT0EsR0FBQztBQUNHLDJCQUF1QjtBQUN2Qix5QkFBcUI7QUFDckIsaUJBQWE7QUFDYixpQ0FBNkI7QUFDakM7QUFFQSxHQUFDLE1BQU0sQ0FBQztBQUNKLFdBQU8sSUFBSTtBQUNYLHFCQUFpQixJQUFJO0FBQ3JCLHNCQUFrQixJQUFJO0FBQ3RCLGNBQVUsSUFBSTtBQUNkLGVBQVcsSUFBSTtBQUNmLHFCQUFpQixJQUFJO0FBQ3JCLGlCQUFhLElBQUk7QUFDakIsNEJBQXdCLElBQUk7QUFDNUIsMkJBQXVCLElBQUk7QUFDM0IscUJBQWlCLElBQUk7QUFDckIsaUJBQWEsSUFBSTtBQUNqQixtQkFBZSxJQUFJO0FBQ25CLDhCQUEwQixJQUFJO0FBQzlCLHlCQUFxQixJQUFJO0FBQ3pCLCtCQUEyQixJQUFJO0FBQy9CLDBCQUFzQixJQUFJO0FBQzFCLHdCQUFvQixJQUFJO0FBQ3hCLDhCQUEwQixJQUFJO0FBQzlCLCtCQUEyQixJQUFJO0FBQy9CLHVCQUFtQixJQUFJO0FBQ3ZCLDZCQUF5QixJQUFJO0FBQzdCLCtCQUEyQixJQUFJO0FBQy9CLDJCQUF1QixJQUFJO0FBQzNCLGlDQUE2QixJQUFJO0FBQ2pDLDBCQUFzQixJQUFJO0FBQzFCLGtDQUE4QixJQUFJO0FBQ2xDLCtCQUEyQixJQUFJO0FBQy9CLGlDQUE2QixJQUFJO0FBQ2pDLDRCQUF3QixJQUFJO0FBQzVCLGdDQUE0QixJQUFJO0FBQ2hDLGtDQUE4QixJQUFJO0FBQ2xDLDhCQUEwQixJQUFJO0FBQzlCLDJCQUF1QixJQUFJO0FBQzNCLDZCQUF5QixJQUFJO0FBQzdCLDhCQUEwQixJQUFJO0FBQzlCLHdCQUFvQixJQUFJO0FBQ3hCLHVCQUFtQixJQUFJO0FBQzNCO0FBQUE7OztBQ3BEQTtBQU9BLEdBQUM7QUFDRyxXQUFPO0FBRVAsb0JBQWdCO0FBQ3BCO0FBRUEsR0FOQyxtQkFNbUIsQ0FBQztBQUFBLEVBQ3JCLENBQUMsa0JBQWtCLENBREU7QUFFakIsWUFBUTtBQUNaO0FBRUEsR0FBQztBQUNHLEtBQUM7QUFDRyxlQUFTO0FBQ1QsZUFBUztBQUNULGFBQU87QUFDWDtBQUVBLEtBbEJIO0FBbUJPLDBCQUFvQixJQUFJO0FBRXhCLFFBQUUsQ0FBQztBQUFBLE1BQ0gsRUFBRSxDQUFDO0FBQ0MsdUJBQWUsSUFBSTtBQUN2QjtBQUNKO0FBRUEsS0FBQyxDQUFDLGlCQUFpQixDQXJCRjtBQXNCYixjQUFRO0FBQ1o7QUFHQSxLQVZPO0FBV0gsa0JBQVksSUFBSTtBQUNoQixjQUFRLElBQUksT0FBTyxJQUFJO0FBQ3ZCLHFCQUFlLElBQUk7QUFDdkI7QUFHQSxLQUFDO0FBQ0csZUFBUyxJQUFJLE9BQU8sSUFBSTtBQUN4QixzQkFBZ0IsS0FBSyxHQUFHLEVBQUUsSUFBSTtBQUM5QixxQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSSxNQUFNLElBQUk7QUFDdkIsc0JBQWdCLEtBQUssR0FBRyxFQUFFLElBQUk7QUFDOUIsa0JBQVksSUFBSTtBQUNoQixxQkFBZSxJQUFJO0FBQ3ZCO0FBQ0o7QUFBQTs7O0FDMURBO0FBS0EsR0FBQztBQUNHLEtBQUM7QUFDRyxrQkFBWTtBQUNaLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsZUFBUyxJQUFJO0FBQ2IsbUJBQWEsSUFBSTtBQUNqQixjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG9CQUFjLElBQUk7QUFDbEIscUJBQWUsSUFBSTtBQUN2QjtBQUVBLEtBQUM7QUFDRyxrQkFBWTtBQUNaLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsZUFBUyxJQUFJO0FBQ2IsbUJBQWEsSUFBSTtBQUNqQixjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG9CQUFjLElBQUk7QUFDbEIscUJBQWUsSUFBSTtBQUN2QjtBQUVBLEtBQUM7QUFDRyxjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG9CQUFjLElBQUk7QUFDbEIscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGVBQVMsSUFBSTtBQUViLE9BQUMsQ0FBQztBQUNFLGlCQUFTLElBQUk7QUFDYixlQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsS0FBQztBQUNHLGtCQUFZO0FBQ1osZUFBUyxJQUFJO0FBRWIsT0FBQyxDQUFDO0FBQ0Usc0JBQWM7QUFDZCxzQkFBYyxJQUFJO0FBQ2xCLHNCQUFjLElBQUk7QUFDbEIsdUJBQWU7QUFDbkI7QUFFQSxPQUFDLENBQUM7QUFDRSxzQkFBYztBQUNkLHNCQUFjLElBQUk7QUFDbEIsc0JBQWMsSUFBSTtBQUNsQix1QkFBZTtBQUNuQjtBQUNKO0FBQ0o7QUFFQSxHQUFDO0FBQ0csV0FBTztBQUNYO0FBRUEsR0FBQztBQUNHLGFBQVMsSUFBSTtBQUNqQjtBQUFBOzs7QUNwRUE7QUFNQSxHQUFDO0FBQ0csS0FBQztBQUNHLGtCQUFZO0FBQ1osa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxlQUFTLElBQUk7QUFDYixtQkFBYSxJQUFJO0FBQ2pCLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsS0FBQztBQUNHLGtCQUFZO0FBQ1osa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxlQUFTLElBQUk7QUFDYixtQkFBYSxJQUFJO0FBQ2pCLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsS0FBQztBQUNHLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZSxJQUFJO0FBQ25CLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLHVCQUFpQjtBQUNyQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDYixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFFYixPQUFDLENBQUM7QUFDRSxzQkFBYztBQUNkLHNCQUFjLElBQUk7QUFDbEIsc0JBQWMsSUFBSTtBQUNsQix1QkFBZTtBQUNuQjtBQUVBLE9BQUMsQ0FBQztBQUNFLHNCQUFjO0FBQ2Qsc0JBQWMsSUFBSTtBQUNsQixzQkFBYyxJQUFJO0FBQ2xCLHVCQUFlO0FBQ25CO0FBQ0o7QUFDSjtBQUFBOzs7QUNoRUE7QUFRQSxHQUFDO0FBQ0csS0FBQztBQUNHLGtCQUFZO0FBQ1osa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxlQUFTLElBQUk7QUFDYixtQkFBYSxJQUFJO0FBQ2pCLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsS0FBQztBQUNHLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZSxJQUFJO0FBQ25CLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLHVCQUFpQjtBQUNqQixjQUFRO0FBQ1IsZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsRUFBRSxFQUFFLElBQUk7QUFFdEIsT0FBQztBQUNHLDZCQUFxQjtBQUN6QjtBQUNKO0FBR0EsS0F6QkMsdUJBeUJ1QixFQUFFLENBaEJ6QixvQkFnQjhDLEVBQUUsQ0FWaEQ7QUFXRyx1QkFBaUIsSUFBSTtBQUNyQixpQkFBVyxRQUFRLElBQUkscUNBQXFDLElBQUk7QUFDcEU7QUFFQSxLQUFDO0FBQ0csZ0JBQVU7QUFFVixPQXhCSDtBQXlCTyxhQUFLO0FBQ0wsY0FBTTtBQUNOLGtCQUFVO0FBQ2Q7QUFDSjtBQUdBLEtBQUMscUJBQXFCLEtBQUs7QUFDdkIsZUFBUztBQUNULHVCQUFpQjtBQUNqQixtQkFBYTtBQUNiLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDLHVCQUF1QixDQUFDO0FBQ3JCLGVBQVM7QUFDVCxhQUFPLElBQUk7QUFDWCxjQUFRLElBQUk7QUFDWixjQUFRLEVBQUU7QUFDVixlQUFTO0FBQ1QsaUJBQVcsSUFBSTtBQUNmLGFBQU8sSUFBSTtBQUNYLGlCQUFXLE9BQU8sSUFBSSw4Q0FBOEMsT0FBTztBQUMvRTtBQUNKO0FBRUEsR0FBQyxzQkFBc0IsQ0FoRWxCO0FBaUVELGNBQVU7QUFDZDtBQUFBOzs7QUN0RkE7QUFXQSxHQUFDO0FBRUcsS0FBQztBQUNHLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixvQkFBYyxJQUFJO0FBQ2xCLGVBQVMsSUFBSTtBQUNiLG1CQUFhLElBQUk7QUFDakIsa0JBQVk7QUFDWixpQ0FBMkIsSUFBSTtBQUMvQiwrQkFBeUIsSUFBSTtBQUNqQztBQUVBLEtBQUM7QUFDRyxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsSUFBSTtBQUNsQixlQUFTLElBQUk7QUFDYixtQkFBYSxJQUFJO0FBQ2pCLGtCQUFZO0FBQ1osK0JBQXlCLElBQUk7QUFDN0IsNkJBQXVCLElBQUk7QUFDL0I7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBRWIsT0FBQyxDQUFDO0FBQ0Usc0JBQWM7QUFDZCxzQkFBYyxJQUFJO0FBQ2xCLHNCQUFjLElBQUk7QUFDbEIsdUJBQWU7QUFDbkI7QUFFQSxPQUFDLENBQUM7QUFDRSxzQkFBYztBQUNkLHNCQUFjLElBQUk7QUFDbEIsc0JBQWMsSUFBSTtBQUNsQix1QkFBZTtBQUNuQjtBQUNKO0FBRUE7QUFDSSxhQUFPO0FBQ1Asb0JBQWM7QUFDZCx1QkFBaUI7QUFDckI7QUFFQSxVQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQ0YsZ0JBQVU7QUFDVixvQkFBYztBQUNsQjtBQUdBLFVBQU07QUFDRixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGVBQVMsSUFBSTtBQUNiLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsRUFBRSxFQUFFLElBQUk7QUFDdEIsbUJBQWE7QUFDYixrQkFBWTtBQUNaLGtCQUFZO0FBQ1oscUJBQWU7QUFDZjtBQUFBLFFBQVksV0FBVyxJQUFJLGtDQUFrQztBQUFBLFFBQUUsTUFBTSxJQUFJLGtDQUFrQztBQUFBLFFBQ3ZHLGFBQWEsSUFBSSxrQ0FBa0M7QUFBQSxRQUFFLGNBQWMsSUFBSSxrQ0FBa0M7QUFBQSxRQUN6RyxXQUFXLElBQUk7QUFFbkIsT0FBQztBQUNHLHFCQUFhLElBQUk7QUFDakIsbUJBQVcsSUFBSTtBQUNmLHdCQUFnQjtBQUNwQjtBQUVBLE9BQUM7QUFDRyxpQkFBUztBQUNULHdCQUFnQjtBQUNoQixnQkFBUTtBQUNSLDZCQUFxQixJQUFJO0FBQ3pCLGVBQU8sSUFBSTtBQUNYLG1CQUFXLElBQUk7QUFDZixvQkFBWSxNQUFNLElBQUk7QUFHdEIsU0FBQyxDQUFDO0FBQ0UsbUJBQVMsSUFBSTtBQUNqQjtBQUVBLFNBQUMsQ0FBQztBQUNFLG1CQUFTLElBQUk7QUFDakI7QUFFQSxTQUFDLENBQUM7QUFDRSxtQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxPQUFDO0FBQ0csdUJBQWUsSUFBSTtBQUNuQixpQkFBUyxJQUFJO0FBQ2IsZ0JBQVEsSUFBSTtBQUNaLG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ2pCLGVBQU8sSUFBSTtBQUNYLG9CQUFZLElBQUk7QUFDaEIsNkJBQXFCLElBQUk7QUFDekIsbUJBQVcsSUFBSTtBQUNmLHFCQUFhLElBQUk7QUFDakIsb0JBQVk7QUFDWix3QkFBZ0I7QUFDcEI7QUFFQSxPQUFDLENBQUMsaUJBQWlCLENBQUM7QUFBQSxNQUNwQixDQUFDLENBREMsaUJBQ2lCO0FBQ2YsaUJBQVMsSUFBSSw0Q0FBNEMsSUFBSSw0Q0FBNEMsSUFBSTtBQUM3Ryx3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBRUEsT0FBQyxDQUFDO0FBQ0Usb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFFWCxTQWpESDtBQWtETyxpQkFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUNKO0FBR0EsVUFBTSxFQUFFLENBQUM7QUFDTDtBQUFBLE1BQ0EsQ0FBQyxDQWJDO0FBY0Usb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BL0RDO0FBZ0VHLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFFQSxLQTlCTTtBQStCRixjQUFRO0FBQ1IsMkJBQXFCO0FBQ3JCLG1CQUFhO0FBQ2pCO0FBR0EsS0FwREs7QUFxREQsZUFBUztBQUNULG1CQUFhO0FBQ2IsdUJBQWlCO0FBQ2pCLHNCQUFnQjtBQUVoQixPQUFDLENBQUM7QUFDRSxpQkFBUztBQUNiO0FBQ0o7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNULGtCQUFZO0FBQ1osYUFBTztBQUNQLGNBQVEsSUFBSSxpQ0FBaUMsS0FBSyxLQUFLO0FBQzNEO0FBRUEsS0FQQyxnQkFPZ0IsQ0FBQztBQUFBLElBQ2xCLENBQUMsc0JBQXNCLENBREw7QUFBQSxJQUVsQixDQURDLHNCQUNzQixDQUFDO0FBQ3BCLGFBQU87QUFDUCxpQkFBVztBQUNmO0FBRUEsS0FOQztBQU9HLGNBQVEsSUFBSSxpQ0FBaUMsS0FBSyxLQUFLO0FBQzNEO0FBR0EsS0FBQyxDQUFDLG9CQUFvQixNQUFNLElBQUksQ0FuQi9CLGlCQW1CaUQsQ0FYakQ7QUFZRyxlQUFTO0FBQ2I7QUFHQSxTQUFLLENBQUM7QUFDRixlQUFTO0FBRVQsT0FBQztBQUNHLGlCQUFTLElBQUksb0NBQW9DLElBQUksb0NBQW9DLElBQUk7QUFDN0Ysd0JBQWdCLEtBQUssR0FBRyxFQUFFLElBQUk7QUFDbEM7QUFDSjtBQUVBLE1BQUUsQ0FBQztBQUNDLGNBQVE7QUFDWjtBQUVBLEtBYk0saUJBYVksRUFBRSxDQTlFZDtBQStFRixjQUFRO0FBQ1o7QUFHQSxLQWxCTSxpQkFrQlksRUFBRTtBQUNoQixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSxrQ0FBa0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxrQ0FBa0M7QUFBQSxRQUN2RyxhQUFhLElBQUksa0NBQWtDO0FBQUEsUUFBRSxjQUFjLElBQUksa0NBQWtDO0FBQUEsUUFDekcsV0FBVyxJQUFJO0FBRW5CLFFBQUU7QUFBQSxNQUNGLEVBQUU7QUFDRSxpQkFBUyxJQUFJO0FBQ2IsZ0JBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsc0JBQWMsRUFBRSxFQUFFLElBQUk7QUFDdEIsbUJBQVcsSUFBSTtBQUNmLHFCQUFhLElBQUk7QUFDakIsb0JBQVk7QUFDaEI7QUFFQSxPQUFDLENBQUMsMEJBQTBCLEVBQUU7QUFDMUIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxRQUFFLEVBQUUsQ0FBQztBQUNELG9CQUFZLElBQUk7QUFDaEIsZ0JBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsc0JBQWMsRUFBRSxFQUFFLElBQUk7QUFDdEIsZUFBTyxJQUFJO0FBQ1gscUJBQWEsSUFBSTtBQUNyQjtBQUdBLFFBQUUsRUFBRSxDQUFDO0FBQ0Qsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDWCxxQkFBYSxJQUFJO0FBQ3JCO0FBRUEsT0FBQyxDQXhIQztBQXlIRSxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxDQW5ERjtBQW9ESyxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUVYLFNBQUM7QUFBQSxRQUNELENBQUMsYUFBYSxFQUFFO0FBQ1osaUJBQU8sSUFBSTtBQUNmO0FBRUEsU0FMQyxhQUthLENBQUMsTUFBTTtBQUFBLFFBQ3JCLENBTEMsYUFLYSxFQUFFLENBQUM7QUFDYixzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsT0FBQyxDQW5FRixrQkFtRXFCLEVBQUU7QUFBQSxNQUN0QixDQUFDLENBcEVGLGtCQW9FcUIsRUFBRTtBQUFBLE1BQ3RCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FyRVgsbUJBcUUrQixFQUFFO0FBQUEsTUFDaEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQXRFWCxtQkFzRStCLEVBQUU7QUFDNUIsNkJBQXFCLElBQUk7QUFDN0I7QUFFQSxPQUFDLENBQUM7QUFDRSxnQkFBUTtBQUVSLFVBQUUsQ0FBQztBQUNDLHNCQUFZLElBQUk7QUFDaEIsaUJBQU8sSUFBSTtBQUNYLGtCQUFRO0FBQ1o7QUFDSjtBQUdBLE9BQUMsQ0FBQztBQUNFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ1gscUJBQWEsSUFBSTtBQUNyQjtBQUVBLE9BQUMsQ0FBQztBQUNFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ1gscUJBQWEsSUFBSTtBQUNyQjtBQUVBLE9BQUMsQ0FBQztBQUNFLG9CQUFZLElBQUk7QUFDcEI7QUFDSjtBQUVBLEtBL0NTO0FBZ0RMLGNBQVE7QUFDWjtBQUdBLEtBQUM7QUFDRyxlQUFTO0FBQ2I7QUFFQSxLQUFDO0FBQ0csT0FBQyxjQUFjLENBQUM7QUFDWixpQkFBUztBQUNiO0FBRUEsT0FKQyxjQUljLENBVGxCO0FBVU8saUJBQVM7QUFDYjtBQUVBLE9BaEVLLGFBZ0VTLENBQUM7QUFDWCxpQkFBUztBQUNiO0FBRUEsT0FwRUssYUFvRVMsQ0FBQztBQUFBLE1BQ2YsQ0FyRUssYUFxRVMsQ0FBQztBQUNYLGlCQUFTO0FBQ2I7QUFDSjtBQUVBLEtBMUVTO0FBMkVMO0FBQ0ksZ0JBQVE7QUFDWjtBQUVBLE9BZmU7QUFnQlgsaUJBQVM7QUFDYjtBQUVBLE9BZmU7QUFBQSxNQWdCZixDQWZlO0FBZ0JYLGlCQUFTO0FBQ2I7QUFDSjtBQUVBLEtBMUpNLGlCQTBKWSxFQUFFLENBbENuQixjQWtDa0MsRUFBRSxDQUFDO0FBQUEsSUFDdEMsQ0EzSk0saUJBMkpZLEVBQUUsQ0FuQ25CLGNBbUNrQyxFQUFFLENBREM7QUFBQSxJQUV0QyxDQTVKTSxpQkE0SlksRUFBRSxDQUFDO0FBQUEsSUFDckIsQ0E3Sk0saUJBNkpZLEVBQUUsQ0FEQztBQUVqQixtQkFBYTtBQUNiLHNCQUFnQjtBQUNoQixrQkFBWTtBQUNaLHFCQUFlO0FBQ25CO0FBR0EsS0FwR1M7QUFxR0wsZUFBUztBQUNULG1CQUFhO0FBQ2Isc0JBQWdCO0FBQ3BCO0FBRUEsS0EzS00saUJBMktZLEVBQUUsR0FBRyxDQTNHZCxhQTJHNEIsQ0F0R2Q7QUFBQSxJQXVHdkIsQ0E1S00saUJBNEtZLEVBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDO0FBQ3hDLGVBQVM7QUFDYjtBQUdBLEtBakxNLGlCQWlMWSxFQUFFLEdBQUcsQ0FoSGQsYUFnSDRCLEVBQUU7QUFBQSxJQUN2QyxDQWxMTSxpQkFrTFksRUFBRSxHQUFHLENBbEhkLGFBa0g0QixDQTdHZDtBQUFBLElBOEd2QixDQW5MTSxpQkFtTFksRUFBRSxHQUFHLENBUEMsbUJBT21CLENBUEM7QUFReEMsbUJBQWE7QUFDYix1QkFBaUI7QUFDakIsc0JBQWdCO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSTtBQUNaLGtCQUFZO0FBQ1osYUFBTyxJQUFJO0FBQ1gsY0FBUSxFQUFFO0FBQ1YscUJBQWUsSUFBSTtBQUNuQixrQkFBWTtBQUNaLHVCQUFpQjtBQUNqQixlQUFTO0FBQ1QsMkJBQXFCO0FBQ3JCLG1CQUFhO0FBQ2IscUJBQWU7QUFDZjtBQUFBLFFBQVksV0FBVyxJQUFJLGtDQUFrQztBQUFBLFFBQUUsTUFBTSxJQUFJLGtDQUFrQztBQUFBLFFBQ3ZHLGNBQWMsSUFBSSxrQ0FBa0M7QUFBQSxRQUFFLFdBQVcsSUFBSTtBQUM3RTtBQUVBLEtBdk1NLGlCQXVNWSxFQUFFO0FBRWhCLE9BeklLLGFBeUlTLEtBQUssQ0FwSUE7QUFxSWYsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQTVJSyxhQTRJUyxFQUFFLENBQUM7QUFBQSxNQUNqQixDQTlJSyxhQThJUyxDQXpJSyxNQXlJRTtBQUFBLE1BQ3JCLENBbkNvQixtQkFtQ0EsQ0FuQ29CLHVCQW1DSTtBQUN4QyxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNYLHNCQUFjO0FBQ2xCO0FBR0EsT0FySkssYUFxSlMsRUFBRSxDQUFDO0FBQUEsTUFDakIsQ0F0SkssYUFzSlMsRUFBRSxDQUFDLENBQUM7QUFBQSxNQUNsQixDQXhKSyxhQXdKUztBQUFBLE1BQ2QsQ0E3Q29CLGtCQTZDRCxlQUFlLENBN0NNO0FBQUEsTUE4Q3hDLENBOUNvQixtQkE4Q0EsQ0E5Q29CLHVCQThDSTtBQUN4QyxpQkFBUyxJQUFJLGtEQUFrRCxJQUFJLGtEQUFrRCxJQUFJO0FBQ3pILHdCQUFnQixJQUFJO0FBQ3BCLG9CQUFZLElBQUk7QUFDcEI7QUFFQSxPQXBEb0I7QUFxRGhCLDJCQUFtQixJQUFJO0FBRXZCLFNBQUM7QUFDRyxtQkFBUyxFQUFFO0FBQ2Y7QUFDSjtBQUVBLE9BdktLO0FBd0tELFVBQUUsQ0FBQyxDQXBHUTtBQXFHUCw2QkFBbUIsSUFBSTtBQUMzQjtBQUVBLFNBQUM7QUFDRyxtQkFBUyxJQUFJO0FBQ2pCO0FBRUEsU0FBQztBQUNHLG1CQUFTLElBQUk7QUFDakI7QUFFQSxTQUFDO0FBQ0csbUJBQVMsSUFBSTtBQUNqQjtBQUNKO0FBR0EsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQS9MSyxhQStMUyxDQUpiLDJCQUl5QyxDQUFDO0FBQUEsTUFDM0MsQ0FwRm9CLGtCQW9GRCxDQUFDLHFCQUF1QixFQUFFLENBTDVDO0FBTUcsaUJBQVMsSUFBSTtBQUViLFNBQUMsS0FBSztBQUNGLHFCQUFXLE9BQU87QUFDdEI7QUFDSjtBQUNKO0FBRUEsS0EzS007QUE0S0YsUUFBRSxHQUFHLEVBQUUsQ0FBQyxDQTlGWTtBQStGaEIsaUJBQVM7QUFDVCx3QkFBZ0I7QUFDaEIsa0JBQVU7QUFDVixpQkFBUztBQUNiO0FBRUEsT0FyR3dDO0FBc0dwQyxrQkFBVTtBQUNWLGdCQUFRO0FBQ1o7QUFDSjtBQUVBLEtBdlJNLGlCQXVSWSxFQUFFLEVBQUUsQ0FBQztBQUNuQixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQztBQUNHLGdCQUFVO0FBQ1YsV0FBSztBQUNMLHdCQUFrQjtBQUNsQixjQUFRO0FBQ1IsYUFBTyxJQUFJO0FBQ1gsY0FBUTtBQUNSLGVBQVM7QUFDVCxjQUFRO0FBQ1IsY0FBUSxJQUFJLE1BQU07QUFDbEIsa0JBQVk7QUFDaEI7QUFFQSxLQUFDO0FBQ0csYUFBTyxJQUFJO0FBQ1gsZ0JBQVU7QUFDVixlQUFTO0FBQ1QsZUFBUztBQUNULGtCQUFZLElBQUk7QUFDcEI7QUFHQSxVQUFNO0FBQUEsSUFDTixNQUFNO0FBQ0Ysa0JBQVksSUFBSTtBQUNoQixjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG9CQUFjLEVBQUUsRUFBRSxJQUFJO0FBQ3RCLGFBQU8sSUFBSTtBQUNYLGVBQVMsSUFBSTtBQUNiLG1CQUFhLElBQUk7QUFDakIsaUJBQVcsSUFBSTtBQUNmLGtCQUFZO0FBQ1osa0JBQVk7QUFDaEI7QUFHQSxNQUFFLENBQUM7QUFBQSxJQUNILEVBQUUsQ0FBQztBQUNDLGFBQU8sSUFBSTtBQUNmO0FBRUEsTUFBRSxDQUxDO0FBTUMsZUFBUyxJQUFJO0FBRWIsa0JBQVk7QUFDaEI7QUFFQSxNQUFFLENBVkM7QUFXQyxlQUFTLElBQUk7QUFFYixtQkFBYSxJQUFJO0FBQ3JCO0FBRUEsS0FBQztBQUNHLGtCQUFZO0FBQ1osZUFBUyxFQUFFO0FBQ2Y7QUFFQSxLQUFDO0FBQ0csa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUM7QUFDRyxrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQztBQUNHLGdCQUFVO0FBQ2Q7QUFFQSxLQUFDO0FBQ0csV0FBSztBQUNMLFlBQU07QUFDTixnQkFBVTtBQUNkO0FBR0EsS0FBQyxtQkFBbUIsQ0FBQztBQUNqQixlQUFTO0FBQ1Qsc0JBQWdCO0FBQ2hCLGNBQVE7QUFDUixhQUFPLElBQUk7QUFDWCxjQUFRLElBQUk7QUFDaEI7QUFHQSxTQUFLLENBQUM7QUFDRixhQUFPO0FBQ1g7QUFFQSxLQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csZUFBUztBQUNULGNBQVEsRUFBRTtBQUNWLHNCQUFnQjtBQUNwQjtBQUVBLEtBQUM7QUFFRyx5QkFBbUI7QUFFbkIsT0FqVUs7QUFrVUQsb0JBQVk7QUFDWix1QkFBZTtBQUNuQjtBQUVBLE9BclVLO0FBc1VELG9CQUFZO0FBQ1osdUJBQWU7QUFDbkI7QUFDSjtBQUVBLEtBQUMsQ0FBQyxvQkFBb0IsQ0E1WWhCLGlCQTRZa0MsRUFBRSxFQUFFLENBQUM7QUFDekMsa0JBQVksSUFBSTtBQUVoQixPQUFDLENBaGRDO0FBaWRFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDLENBM1lGO0FBNFlLLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUdBLEtBQUMsQ0FBQztBQUNFLE9BeGxCSDtBQXlsQk8saUJBQVMsSUFBSTtBQUNqQjtBQUVBLFlBQU0sRUFBRSxHQUFHLEVBQUU7QUFDVCxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FwYUUsaUJBb2FnQixFQUFFLEdBQUcsRUFBRTtBQUFBLE1BQ3pCLENBcmFFLGlCQXFhZ0IsRUFBRSxHQUFHLEVBQUU7QUFDckIsaUJBQVMsSUFBSTtBQUNqQjtBQUVBLFlBQU0sRUFBRSxHQUFHLEVBQUU7QUFDVCxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0E3bEJIO0FBOGxCTyxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxLQUFDLENBQUM7QUFDRSxPQS9tQkg7QUFnbkJPLGlCQUFTLElBQUk7QUFDakI7QUFFQSxZQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ1QsaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BM2JFLGlCQTJiZ0IsRUFBRSxHQUFHLEVBQUU7QUFBQSxNQUN6QixDQTViRSxpQkE0YmdCLEVBQUUsR0FBRyxFQUFFO0FBQ3JCLGlCQUFTLElBQUk7QUFDakI7QUFFQSxZQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ1QsaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BcG5CSDtBQXFuQk8saUJBQVMsSUFBSTtBQUNqQjtBQUNKO0FBRUEsS0FBQyxDQTlDQyxlQThDZSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtBQUFBLElBQzNELENBQUMsQ0F4QkMsZUF3QmUsQ0FEQyxrQ0FDa0MsRUFBRSxHQUFHLEVBQUU7QUFDdkQsbUJBQWE7QUFDYixzQkFBZ0I7QUFDcEI7QUFFQSxLQUFDLENBQUM7QUFDRSxPQTVvQkg7QUE2b0JPLHNCQUFjLElBQUksSUFBSSxFQUFFO0FBQzVCO0FBRUEsT0Fwb0JIO0FBcW9CTyxzQkFBYyxFQUFFLElBQUksSUFBSTtBQUM1QjtBQUVBLE9BNW5CSDtBQTZuQk8sU0FBQyxDQTFuQkg7QUEybkJNLHdCQUFjLElBQUksSUFBSSxFQUFFO0FBQzVCO0FBRUEsU0FBQyxDQXZuQkg7QUF3bkJNLHdCQUFjLEVBQUUsSUFBSSxJQUFJO0FBQzVCO0FBQ0o7QUFFQSxZQUFNLEVBQUUsR0FBRyxFQUFFO0FBQUEsTUFDYixDQW5lRSxpQkFtZWdCLEVBQUUsR0FBRyxFQUFFO0FBQUEsTUFDekIsQ0FwZUUsaUJBb2VnQixFQUFFLEdBQUcsRUFBRTtBQUFBLE1BQ3pCLE1BQU0sRUFBRSxHQUFHLEVBQUU7QUFDVCxzQkFBYztBQUNsQjtBQUVBLE9BaENjLGtDQWdDcUIsRUFBRSxHQUFHLEVBQUU7QUFDdEMscUJBQWE7QUFDYix3QkFBZ0I7QUFDaEIsdUJBQWUsRUFBRTtBQUNqQixvQkFBWSxFQUFFO0FBQ2xCO0FBQ0o7QUFFQSxLQUFDLENBQUM7QUFDRSxPQUFDLENBQUM7QUFDRSxvQkFBWSxJQUFJO0FBQ3BCO0FBRUEsUUFBRTtBQUNFLFVBQUU7QUFDRSxzQkFBWSxJQUFJO0FBQ3BCO0FBRUEsVUFBRTtBQUNFLHNCQUFZLElBQUk7QUFDcEI7QUFDSjtBQUNKO0FBQ0o7QUFFQSxHQUFDO0FBQ0csY0FBVTtBQUNkO0FBRUEsR0FBQztBQUNHLGFBQVM7QUFDYjtBQUVBLEdBekxLO0FBMExELGNBQVU7QUFDZDtBQUVBLEdBeExLO0FBQUEsRUF5TEwsQ0FyTEs7QUFzTEQsY0FBVTtBQUNWLFlBQVEsRUFBRTtBQUNkO0FBRUEsR0FBQztBQUNHLEtBL0xDO0FBQUEsSUFnTUQsQ0E1TEM7QUE2TEcsZ0JBQVU7QUFDZDtBQUVBLEtBcE1DLDhCQW9NOEI7QUFDM0IsbUJBQWE7QUFDakI7QUFDSjtBQUVBLEdBdEZzQjtBQXVGbEIsWUFBUTtBQUVSO0FBQ0ksY0FBUTtBQUNaO0FBRUE7QUFDSSxPQUFDLENBQUM7QUFDRSxnQkFBUTtBQUNSLDZCQUFxQjtBQUNyQiwwQkFBa0I7QUFDbEIscUJBQWE7QUFDYix3QkFBZ0I7QUFDaEIsaUJBQVMsRUFBRTtBQUNmO0FBRUEsVUFBSSxDQXBxQkg7QUFxcUJHLGlCQUFTO0FBQ1QsZ0JBQVE7QUFDWjtBQUNKO0FBQ0o7QUFFQSxHQUFDO0FBQ0csb0JBQWdCO0FBQ2hCLGNBQVU7QUFFVixVQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQ0YsbUJBQWE7QUFDakI7QUFFQSxNQUFFLENBQUM7QUFDQyx1QkFBaUI7QUFDakIsZ0JBQVU7QUFDZDtBQUNKO0FBRUEsR0FBQztBQUNHLGVBQVc7QUFDZjtBQUVBLEdBL01LLDZCQStNeUIsQ0EzUHpCO0FBNFBELGNBQVU7QUFDZDtBQUVBLEdBek5LLCtCQXlOMkIsQ0E1aUJ0QiwwQkE0aUJpRDtBQUN2RCxpQkFBYTtBQUViLE1BQUU7QUFDRSxrQkFBWTtBQUNoQjtBQUNKO0FBR0EsR0F6bEJVLGlCQXlsQlEsRUFBRSxDQUFDLGNBQWdCO0FBQUEsRUFDckMsQ0ExbEJVLGlCQTBsQlEsRUFBRSxDQUFDLGVBQWlCO0FBQUEsRUFDdEMsQ0EzbEJVLGlCQTJsQlEsRUFBRSxDQUFDLFdBQWEsQ0FBQyxhQUFhO0FBQzVDLGFBQVMsSUFBSSxvQ0FBb0MsSUFBSSxvQ0FBb0MsSUFBSTtBQUM3RixvQkFBZ0IsSUFBSTtBQUNwQixnQkFBWSxJQUFJO0FBQ3BCO0FBRUEsR0FBQztBQUNHLEtBbG1CTSxpQkFrbUJZLEVBQUUsQ0FBQyxlQUFpQixDQXR0QmpDO0FBQUEsSUF1dEJMLENBbm1CTSxpQkFtbUJZLEVBQUUsQ0FBQyxnQkFBa0IsQ0F2dEJsQztBQUFBLElBd3RCTCxDQTdVdUIsdUJBNlVDLEdBQUcsQ0F4dEJ0QjtBQXl0QkQsZUFBUztBQUNiO0FBRUEsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLHFCQUFlLElBQUk7QUFDbkIsZUFBUztBQUNiO0FBR0EsS0FOQztBQU9HLG1CQUFhO0FBQ2IsaUJBQVcsSUFBSTtBQUNmLHFCQUFlLElBQUk7QUFDbkIsc0JBQWdCLElBQUk7QUFDcEIsYUFBTyxJQUFJO0FBQ1gsa0JBQVksSUFBSTtBQUNoQixjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLHFCQUFlLElBQUk7QUFDbkIscUJBQWU7QUFFZixPQUFDO0FBQ0csc0JBQWMsSUFBSTtBQUN0QjtBQUVBLE9BQUM7QUFDRyxzQkFBYyxJQUFJO0FBQ2xCLGlCQUFTLElBQUksNkJBQTZCLElBQUksNkJBQTZCLElBQUk7QUFDL0Usd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBQ0o7QUFFQSxVQUFPLFdBQVk7QUFDZixLQXZDSCxtQkF1Q3VCLE1BQU07QUFBQSxJQUMxQixDQXhDSCxtQkF3Q3VCLE1BQU07QUFDdEIsZUFBUztBQUNiO0FBR0EsS0E3Q0g7QUE4Q08sWUFBTSxFQUFFLENBQUM7QUFDTCxvQkFBWTtBQUNaLGlCQUFTO0FBQ1QsZUFBTztBQUNQLGVBQU87QUFDUCxlQUFPO0FBQ1AsZ0JBQVEsRUFBRTtBQUNWLG9CQUFZO0FBRVosU0E1d0JIO0FBNndCTyxtQkFBUztBQUNULHVCQUFhLElBQUk7QUFDakIsa0JBQVEsRUFBRSxFQUFFLElBQUksMEJBQTBCO0FBQzFDLG1CQUFTO0FBQ2I7QUFFQSxTQTd3Qkg7QUFBQSxRQTh3QkcsQ0F2dkJIO0FBQUEsUUF3dkJHLENBcllQO0FBc1lXLG1CQUFTO0FBQ2I7QUFFQSxTQTdyQlA7QUFBQSxRQThyQk8sQ0F0ckJQO0FBdXJCVyxtQkFBUztBQUNULHNCQUFZO0FBQ1osaUJBQU87QUFDUCxrQkFBUTtBQUNaO0FBQ0o7QUFFQSxPQUFDLENBbnJCSCxvQkFtckJ3QixNQUFNLEVBQUUsQ0EvQnJCLGdCQStCc0MsSUFBSSxDQXRzQnRELGlCQXNzQndFLENBOXJCeEU7QUErckJPLGlCQUFTO0FBQ2I7QUFFQSxPQWxyQkU7QUFtckJFLFVBQUUsQ0FBQyxjQUFnQixLQUFLLENBaHRCMUI7QUFBQSxRQWl0QkUsRUFBRSxDQUFDLGVBQWlCLEtBQUssQ0FqdEIzQjtBQWt0Qk0sc0JBQVk7QUFDWixpQkFBTztBQUNQLGlCQUFPO0FBQ1Asa0JBQVEsRUFBRTtBQUNWLG1CQUFTO0FBQ1Qsc0JBQVk7QUFDWixpQkFBTztBQUNYO0FBRUEsU0FBQyxDQUFDO0FBQ0Usa0JBQVEsRUFBRTtBQUNkO0FBRUEsVUFBRSxDQUpBO0FBS0UsdUJBQWEsRUFBRTtBQUNmLHdCQUFjLEVBQUU7QUFDcEI7QUFFQSxVQUFFLENBQUMsZUFBaUIsQ0EzekJ2QjtBQUFBLFFBNHpCRyxFQUFFLENBQUMsZ0JBQWtCLENBNXpCeEI7QUE2ekJPLG1CQUFTO0FBQ1QsdUJBQWEsSUFBSTtBQUNqQixrQkFBUTtBQUNSLDZCQUFtQixJQUFJO0FBQ3ZCLHFCQUFXO0FBQ1gscUJBQVc7QUFDWCxtQkFBUztBQUNiO0FBRUE7QUFDSSx5QkFBZSxJQUFJLE1BQU0sSUFBSTtBQUU3QixXQUFDO0FBQUEsVUFDRCxDQUFDLENBN3NCVjtBQThzQmEseUJBQWEsRUFBRTtBQUNmLDBCQUFjLEVBQUU7QUFDaEIsMkJBQWUsSUFBSSxNQUFNLElBQUk7QUFDakM7QUFFQSxXQUFDLENBcmNVLHVCQXFjYyxFQUFFO0FBQ3ZCLHFCQUFTO0FBQ1QsbUJBQU87QUFDWDtBQUNKO0FBQ0o7QUFFQSxPQTNISDtBQUFBLE1BNEhHLENBM0hIO0FBNEhPLGlCQUFTO0FBQ2I7QUFFQSxPQS9ISDtBQWdJTyw2QkFBcUIsSUFBSTtBQUM3QjtBQUVBLFFBQUUsQ0F4c0JBLDBCQXdzQjJCLEVBQUU7QUFDM0IsaUJBQVM7QUFDVCxnQkFBUSxFQUFFO0FBQ2Q7QUFDSjtBQUNKO0FBQUE7OztBQzE3QkE7QUFLQSxHQUFDO0FBQ0csY0FBVTtBQUNWLFlBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsa0JBQWMsSUFBSTtBQUNsQixtQkFBZSxJQUFJO0FBQ25CLGFBQVMsSUFBSTtBQUViLEtBQUM7QUFDRyxPQUFDLENBQUM7QUFDRSxzQkFBYztBQUNkLHNCQUFjLElBQUk7QUFDbEIsc0JBQWMsSUFBSTtBQUNsQix1QkFBZTtBQUNuQjtBQUVBLE9BQUMsQ0FBQztBQUNFLHNCQUFjO0FBQ2Qsc0JBQWMsSUFBSTtBQUNsQixzQkFBYyxJQUFJO0FBQ2xCLHVCQUFlO0FBQ25CO0FBQ0o7QUFFQSxLQUFDO0FBRUcsZUFBUztBQUNULGtCQUFZO0FBQ1osa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxlQUFTLElBQUk7QUFDYixtQkFBYSxJQUFJO0FBQ2pCLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZSxJQUFJO0FBRW5CLE9BQUM7QUFDRyxlQUFPO0FBQ1g7QUFDSjtBQUVBLEtBQUM7QUFDRyxrQkFBWTtBQUNaLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixvQkFBYyxJQUFJO0FBQ2xCLGVBQVMsSUFBSTtBQUNiLG1CQUFhLElBQUk7QUFDakIscUJBQWUsSUFBSTtBQUN2QjtBQUVBLEtBQUM7QUFDRyxjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG9CQUFjLElBQUk7QUFDbEIscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGVBQVMsSUFBSTtBQUdiLFFBQUU7QUFDRSx5QkFBaUIsSUFBSTtBQUNyQixtQkFBVyxRQUFRLElBQUkscUNBQXFDLElBQUk7QUFDcEU7QUFDSjtBQUVBLEtBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNmLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsb0JBQWMsRUFBRSxFQUFFLElBQUk7QUFFdEIsT0FBQztBQUNHLDZCQUFxQjtBQUN6QjtBQUNKO0FBRUEsS0FBQyxDQUFDLGdCQUFnQixDQUFDO0FBQ2YsZUFBUyxJQUFJO0FBQ2pCO0FBR0EsS0E3Q0s7QUE4Q0QsZUFBUztBQUNULFdBQUs7QUFDTCxrQkFBWSxJQUFJO0FBQ2hCLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIscUJBQWUsSUFBSTtBQUNuQixlQUFTLElBQUk7QUFFYixPQUFDO0FBQ0csZ0JBQVE7QUFDUixlQUFPO0FBQ1AsaUJBQVMsSUFBSTtBQUNiLG9CQUFZO0FBQ1osZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsRUFBRTtBQUNWLHVCQUFlLElBQUk7QUFDbkIsb0JBQVk7QUFDWjtBQUFBLFVBQVksV0FBVyxJQUFJLHFDQUFxQztBQUFBLFVBQUUsTUFBTSxJQUFJLHFDQUFxQztBQUFBLFVBQzdHLFdBQVcsSUFBSSxxQ0FBcUM7QUFBQSxVQUFFLGNBQWMsSUFBSTtBQUU1RSxTQUFDO0FBQ0csbUJBQVM7QUFDYjtBQUVBLFNBQUM7QUFDRyxtQkFBUyxJQUFJO0FBQ2pCO0FBRUEsU0FBQztBQUNHLG1CQUFTLElBQUk7QUFDakI7QUFHQSxTQUFDO0FBQ0csbUJBQVM7QUFDYjtBQUdBLFNBQUM7QUFBQSxRQUNELENBQUM7QUFDRyx5QkFBZSxJQUFJO0FBQ3ZCO0FBRUEsU0FBQyxLQUFLLENBQUMsZUFBZTtBQUFBLFFBQ3RCLENBQUMsQ0FBQyxhQUFhLEtBQUssQ0FEYjtBQUVILHNCQUFZO0FBQ1osaUJBQU8sSUFBSTtBQUNmO0FBR0EsU0FBQyxDQVBNO0FBQUEsUUFRUCxDQUFDLENBUk0sY0FRUyxLQUFLLENBQUMsaUJBQWlCO0FBQ25DLHNCQUFZLElBQUk7QUFDaEIsaUJBQU8sSUFBSTtBQUNYLHNCQUFZLElBQUk7QUFDcEI7QUFFQSxTQUFDLENBQUM7QUFBQSxRQUNGLENBQUM7QUFDRyxtQkFBUyxJQUFJLG1DQUFtQyxJQUFJLG1DQUFtQyxJQUFJO0FBQzNGLDBCQUFnQixJQUFJO0FBQ3hCO0FBQ0o7QUFDSjtBQUNKO0FBRUEsR0FoRk0sZ0JBZ0ZXLENBQUM7QUFDZCxxQkFBaUI7QUFDakIsWUFBUTtBQUNSLGFBQVM7QUFDYjtBQUVBLEdBQUMsUUFBUSxDQXJIQSx5QkFxSDBCLENBQUM7QUFDaEMsV0FBTztBQUNYO0FBQUE7OztBQy9KQTtBQU9BLE1BQUksQ0FBQztBQUNELGNBQVU7QUFDZDtBQUVBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsY0FBVTtBQUNWLFNBQUs7QUFDTCxVQUFNO0FBQ04sV0FBTztBQUNQLFlBQVE7QUFFUixhQUFTLElBQUk7QUFDYixnQkFBWTtBQUNaLGdCQUFZO0FBQ1osYUFBUztBQUdULEtBQUMsS0FBSyxDQUFDO0FBQ0gsc0JBQWdCO0FBQ3BCO0FBRUEsS0FBQyxDQUFDO0FBQ0UsZ0JBQVU7QUFDZDtBQUdBLEtBQUMsQ0FBQztBQUNFLGVBQVM7QUFDYjtBQUVBLEtBQUM7QUFDRyxnQkFBVTtBQUNkO0FBRUEsS0FBQztBQUNHLGdCQUFVO0FBQ1YsZ0JBQVU7QUFDZDtBQUVBLEtBQUMsYUFBYSxDQUxiLGdCQUs4QixDQUFDO0FBQzVCLGdCQUFVO0FBQ1YsZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLGdCQUFVO0FBQ1YsYUFBTztBQUNQLGNBQVE7QUFDUixhQUFPO0FBQ1AsY0FBUTtBQUNaO0FBRUEsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLGNBQVE7QUFDWjtBQUVBLEtBQUMsQ0FBQztBQUFBLElBQ0YsQ0FBQyxDQXRDQztBQUFBLElBdUNGLENBQUMsQ0FBQztBQUNFLGtCQUFZO0FBQ2hCO0FBRUEsS0FBQyxDQTNDQyxrQkEyQ2tCLENBekJuQjtBQTBCRyxnQkFBVTtBQUNkO0FBRUEsS0E3QkM7QUE4QkcsZ0JBQVU7QUFDVixlQUFTO0FBQ1Qsc0JBQWdCO0FBQ2hCLHNCQUFnQjtBQUNoQixpQkFBVztBQUNYLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixxQkFBZSxJQUFJO0FBQ25CLGtCQUFZLElBQUk7QUFHaEIsT0FuREg7QUFvRE8saUJBQVM7QUFDVCxxQkFBYTtBQUNiLHFCQUFhO0FBQ2Isb0JBQVk7QUFDWixlQUFPLElBQUk7QUFDWCxxQkFBYSxJQUFJO0FBQ2pCLGdCQUFRLEVBQUU7QUFDVix1QkFBZTtBQUNmLGlCQUFTLElBQUk7QUFFYixTQUFDO0FBQ0csZ0JBQU0sRUFBRSxFQUFFO0FBQ1YscUJBQVcsSUFBSTtBQUNmLHVCQUFhLElBQUk7QUFDakIscUJBQVc7QUFDWCxvQkFBVTtBQUNWLHlCQUFlO0FBQ25CO0FBRUEsU0FBQztBQUNHLGlCQUFPO0FBQ1AsbUJBQVM7QUFDVCx1QkFBYTtBQUNiLCtCQUFxQixJQUFJO0FBQzdCO0FBRUEsVUFBRSxDQXZEVDtBQXdEVyxpQkFBTztBQUNYO0FBRUEsVUFBRSxDQTFEVDtBQTJEVyxpQkFBTztBQUNYO0FBRUEsVUFBRSxDQWhFVDtBQWlFVyxpQkFBTztBQUNYO0FBR0EsU0FBQztBQUNHLG1CQUFTO0FBQ1QsdUJBQWE7QUFDYiwyQkFBaUI7QUFDakIsdUJBQWE7QUFDYixpQkFBTyxJQUFJO0FBQ1gsa0JBQVEsSUFBSTtBQUNaLGtCQUFRO0FBQ1IsK0JBQXFCLElBQUk7QUFDekIsbUJBQVM7QUFDVCxrQkFBUSxFQUFFO0FBQ1YseUJBQWU7QUFDZixzQkFBWTtBQUNaLGlCQUFPLElBQUk7QUFDWCwyQkFBaUI7QUFDakIsK0JBQXFCO0FBQ3JCLHVCQUFhO0FBQ2IseUJBQWU7QUFDZjtBQUFBLFlBQVksV0FBVyxJQUFJLCtCQUErQjtBQUFBLFlBQUUsTUFBTSxJQUFJLCtCQUErQjtBQUFBLFlBQ2pHLGNBQWMsSUFBSSwrQkFBK0I7QUFBQSxZQUFFLFdBQVcsSUFBSTtBQUMxRTtBQUVBLFNBdEJDLHNCQXNCc0I7QUFDbkIsc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQTNCQyxzQkEyQnNCO0FBQ25CLHNCQUFZLElBQUk7QUFDcEI7QUFFQSxTQS9CQyxzQkErQnNCO0FBQ25CLG1CQUFTLElBQUksNkJBQTZCLElBQUksNkJBQTZCLElBQUk7QUFDL0UsMEJBQWdCLElBQUk7QUFDcEIsc0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBQ0o7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFJQSxLQUFDLENBQUMsbUJBQW1CLENBVnBCO0FBV0csZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQyxDQUFDLG1CQUFtQixFQUFFLENBM0l0QixhQTJJb0MsRUFBRSxDQXBKdEMsa0JBb0p5RCxDQVZ6RDtBQVdHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBL0lDO0FBZ0pHLE9BckpIO0FBc0pPLG1CQUFXO0FBQ1gsb0JBQVk7QUFDWixlQUFPLElBQUk7QUFDWCxnQkFBUSxFQUFFO0FBQ1YsaUJBQVMsSUFBSTtBQUNqQjtBQUdBLE9BQUM7QUFDRyxxQkFBYTtBQUNiLG9CQUFZO0FBQ1osZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsRUFBRTtBQUNWLGlCQUFTLElBQUk7QUFDYixnQkFBUTtBQUNSLG9CQUFZO0FBRVo7QUFDSSxrQkFBUTtBQUNSLCtCQUFxQixJQUFJO0FBQ3pCLGlCQUFPO0FBQ1g7QUFDSjtBQUNKO0FBR0EsS0FBQyxDQWhDQztBQWlDRSxlQUFTO0FBRVQsT0E5S0g7QUErS08sZUFBTztBQUNQLGdCQUFRO0FBQ1IsYUFBSztBQUNMLGNBQU07QUFDTix1QkFBZTtBQUNuQjtBQUNKO0FBR0EsS0FBQyxDQWpEQztBQWtERSxlQUFTO0FBQ1QsZ0JBQVU7QUFFVixPQTVMSDtBQTZMTyxlQUFPO0FBQ1AsZ0JBQVE7QUFDUixhQUFLO0FBQ0wsY0FBTTtBQUNWO0FBQ0o7QUFHQSxLQUFDLENBQUMsaUJBQWlCLENBck1sQixhQXFNZ0MsQ0ExTWhDO0FBQUEsSUEyTUQsQ0FBQyxDQUFDLGlCQUFpQixDQXRNbEIsYUFzTWdDLENBM01oQztBQTRNRyxlQUFTO0FBQ1QsbUJBQWE7QUFDYixXQUFLLElBQUk7QUFDYjtBQUVBLEtBQUMsQ0FQQyxpQkFPaUIsQ0E1TWxCLGFBNE1nQyxDQWpOaEMsaUJBaU5rRCxFQUFFO0FBQUEsSUFDckQsQ0FBQyxDQVBDLGlCQU9pQixDQTdNbEIsYUE2TWdDLENBbE5oQyxpQkFrTmtELEVBQUU7QUFDakQsZUFBUztBQUNULGNBQVE7QUFDUixhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNyQjtBQUVBLEtBQUMsQ0FoQkMsaUJBZ0JpQixDQXJObEIsYUFxTmdDLENBMU5oQyxpQkEwTmtELEVBQUUsSUFBSSxDQUFDO0FBQUEsSUFDMUQsQ0FBQyxDQWhCQyxpQkFnQmlCLENBdE5sQixhQXNOZ0MsQ0EzTmhDLGlCQTJOa0QsRUFBRSxJQUFJLENBQUM7QUFDdEQsbUJBQWE7QUFDYixtQkFBYTtBQUNiLGFBQU8sSUFBSTtBQUNYLGlCQUFXLElBQUk7QUFDbkI7QUFHQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxHQUFDLFlBQVksQ0F4UFI7QUF5UEQsWUFBUTtBQUNaO0FBRUEsR0FBQztBQUNHLGNBQVU7QUFDVixZQUFRO0FBQ1IsVUFBTTtBQUNOLGFBQVM7QUFDVCxlQUFXO0FBQ1gsaUJBQWE7QUFDYixTQUFLLElBQUk7QUFDVCxhQUFTLElBQUk7QUFDakI7QUFHQSxHQUFDO0FBQ0csWUFBUSxJQUFJLE9BQU8sSUFBSTtBQUN2QixtQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsR0FBQztBQUNHLGNBQVU7QUFDVixTQUFLO0FBQ0wsV0FBTztBQUNQLFlBQVE7QUFDUixVQUFNO0FBQ04seUJBQXFCO0FBQ3JCLGlCQUFhO0FBQ2pCO0FBRUEsR0FBQztBQUNHLGVBQVc7QUFDZjtBQUFBOzs7QUMvVEE7QUFJQSxHQUFDO0FBQ0csYUFBUztBQUNULFdBQU87QUFDUCxjQUFVO0FBQ1YsaUJBQWE7QUFFYixLQUFDO0FBQ0csZ0JBQVU7QUFDVixlQUFTO0FBQ1QsV0FBSztBQUNMLFlBQU07QUFDTixhQUFPO0FBQ1AsZUFBUztBQUNiO0FBRUEsS0FBQyxDQUFDO0FBQ0UsdUJBQWlCO0FBQ3JCO0FBRUEsS0FBQyxDQUFDO0FBQ0UsdUJBQWlCO0FBQ3JCO0FBRUEsS0FBQyxDQUFDO0FBQ0UsdUJBQWlCO0FBQ3JCO0FBQ0o7QUFFQSxHQUFDO0FBQ0csYUFBUztBQUNiO0FBRUEsR0FBQztBQUNHLGdCQUFZO0FBQ1osYUFBUztBQUNULGNBQVU7QUFDVixxQkFBaUI7QUFFakIsS0FBQztBQUNHLGdCQUFVO0FBQ1YsZUFBUztBQUNULFdBQUs7QUFDTCxZQUFNO0FBQ04sY0FBUTtBQUNSLGVBQVM7QUFDYjtBQUVBLEtBQUMsQ0FBQztBQUNFLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQyxDQTVCQztBQTZCRSxtQkFBYTtBQUNqQjtBQUVBLEtBQUMsQ0FBQztBQUNFLG1CQUFhO0FBQ2pCO0FBQ0o7QUFFQSxHQUFDO0FBQ0csS0FBQyxDQUFDO0FBQ0UsT0FBQyxDQTlEUixvQkE4RDZCO0FBQ2xCLDBCQUFrQjtBQUN0QjtBQUVBLE9BQUMsQ0FsQ1Isa0JBa0MyQjtBQUNoQiwyQkFBbUI7QUFDdkI7QUFDSjtBQUVBLEtBQUMsQ0FBQztBQUNFLE9BQUMsQ0F4RVIsb0JBd0U2QjtBQUNsQiwwQkFBa0I7QUFDdEI7QUFFQSxPQUFDLENBNUNSLGtCQTRDMkI7QUFDaEIsMkJBQW1CO0FBQ3ZCO0FBQ0o7QUFFQSxLQUFDLENBQUM7QUFDRSxPQUFDLENBbEZSLG9CQWtGNkI7QUFDbEIsMEJBQWtCO0FBQ3RCO0FBRUEsT0FBQyxDQXREUixrQkFzRDJCO0FBQ2hCLDJCQUFtQjtBQUN2QjtBQUNKO0FBRUEsS0EvREg7QUFnRU8sd0JBQWtCLElBQUk7QUFDdEIsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQUFDLENBaEdKO0FBaUdPLGNBQVEsSUFBSTtBQUNaLGVBQVMsSUFBSTtBQUViLE9BQUM7QUFDRywwQkFBa0I7QUFDbEIsMEJBQWtCLElBQUk7QUFDMUI7QUFFQSxPQTdFUDtBQThFVyxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxLQUFDLENBOUVKO0FBK0VPLGNBQVEsSUFBSTtBQUNaLGVBQVMsSUFBSTtBQUViLE9BQUM7QUFDRywyQkFBbUI7QUFDbkIsMkJBQW1CLElBQUk7QUFDM0I7QUFFQSxPQTNGUDtBQTRGVyxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFDSjtBQUFBOzs7QUMvSEE7QUFPQSxHQUFDLHNCQUFzQixDQUFDO0FBQ3BCLGFBQVM7QUFDYjtBQUVBLEdBQUM7QUFDRyxZQUFRO0FBQ1IsYUFBUyxJQUFJO0FBQ2IsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG1CQUFlLElBQUk7QUFFbkIsS0Fab0I7QUFhaEIsZUFBUztBQUNULG1CQUFhO0FBQ2IsV0FBSyxJQUFJO0FBQ1QsZUFBUyxJQUFJO0FBQ2IsaUJBQVcsSUFBSTtBQUNmLG1CQUFhLElBQUk7QUFDakIsa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxvQkFBYztBQUNkLG9CQUFjLElBQUk7QUFDbEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZSxJQUFJO0FBQ25CLDJCQUFxQjtBQUNyQixtQkFBYTtBQUNiLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSxpQ0FBaUM7QUFBQSxRQUFFLE1BQU0sSUFBSSxpQ0FBaUM7QUFBQSxRQUNyRyxjQUFjLElBQUksaUNBQWlDO0FBQUEsUUFBRSxXQUFXLElBQUk7QUFDNUU7QUFFQSxLQUFDLENBaENKLHNCQWdDMkIsQ0FoQ0o7QUFpQ2hCLGNBQVE7QUFDWjtBQUVBLEtBcENvQjtBQXFDaEIsT0FBQztBQUNHLGVBQU8sSUFBSTtBQUNYLG9CQUFZLE1BQU0sSUFBSTtBQUMxQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQyxDQUFDLHFCQUF1QixDQUp4QjtBQUtHLGlCQUFTLElBQUk7QUFDakI7QUFDSjtBQUVBLEtBbkRvQixpQkFtREYsQ0FBQztBQUFBLElBQ25CLENBQUMsQ0FwREosc0JBb0QyQixDQXBESixpQkFvRHNCO0FBQ3RDLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQXpEb0IsaUJBeURGLENBTkMsY0FNYyxDQXBCNUI7QUFBQSxJQXFCTCxDQUFDLENBMURKLHNCQTBEMkIsQ0ExREosaUJBMERzQixPQUFPLENBckI1QztBQXNCRCxhQUFPLElBQUk7QUFDZjtBQUdBLEtBL0RvQixpQkErREY7QUFDZCxlQUFTLElBQUksc0NBQXNDLElBQUksc0NBQXNDLElBQUk7QUFDakcsc0JBQWdCLElBQUk7QUFDcEIsa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFDSjtBQUFBOzs7QUMvRUE7QUFZQSxHQUFDO0FBQ0csY0FBVTtBQUNWLFNBQUssSUFBSTtBQUNULFdBQU8sSUFBSTtBQUNYLFdBQU8sSUFBSTtBQUNYLGVBQVcsS0FBSyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUk7QUFFakMsS0FBQztBQUNHLGFBQU8sSUFBSTtBQUNYLHVCQUFpQixJQUFJO0FBQ3JCLGdCQUFVLElBQUk7QUFDZCx1QkFBaUIsSUFBSTtBQUNyQixpQkFBVyxJQUFJO0FBQ2YseUJBQW1CLElBQUk7QUFDdkIsaUNBQTJCLElBQUk7QUFDL0Isa0NBQTRCLElBQUk7QUFDaEMseUJBQW1CLElBQUk7QUFDdkIsZ0NBQTBCLElBQUk7QUFDOUIsdUJBQWlCLElBQUk7QUFFckIsY0FBUSxFQUFFLEVBQUUsSUFBSSxlQUFlO0FBQy9CLGtCQUFZLElBQUk7QUFDaEIsb0JBQWMsSUFBSTtBQUNsQixvQkFBYztBQUNkLG9CQUFjLElBQUk7QUFDbEIsYUFBTyxJQUFJO0FBQ1gscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxJQUFJO0FBQ2hCLHVCQUFpQixLQUFLLElBQUk7QUFFMUIsT0FBQyxDQUFDO0FBQ0UsZUFBTyxJQUFJO0FBQ1gseUJBQWlCLElBQUk7QUFDckIsa0JBQVUsSUFBSTtBQUNkLHlCQUFpQixJQUFJO0FBQ3JCLG1CQUFXLElBQUk7QUFDZiwyQkFBbUIsSUFBSTtBQUN2QixtQ0FBMkIsSUFBSTtBQUMvQixvQ0FBNEIsSUFBSTtBQUNoQywyQkFBbUIsSUFBSTtBQUN2QixrQ0FBMEIsSUFBSTtBQUM5Qix5QkFBaUIsSUFBSTtBQUN6QjtBQUVBLE9BQUMsQ0FBQztBQUNFLGVBQU8sSUFBSTtBQUNYLHlCQUFpQixJQUFJO0FBQ3JCLGtCQUFVLElBQUk7QUFDZCx5QkFBaUIsSUFBSTtBQUNyQixtQkFBVyxJQUFJO0FBQ2YsMkJBQW1CLElBQUk7QUFDdkIsbUNBQTJCLElBQUk7QUFDL0Isb0NBQTRCLElBQUk7QUFDaEMsMkJBQW1CLElBQUk7QUFDdkIsa0NBQTBCLElBQUk7QUFDOUIseUJBQWlCLElBQUk7QUFDekI7QUFFQSxPQUFDLENBQUM7QUFDRSxlQUFPLElBQUk7QUFDWCx5QkFBaUIsSUFBSTtBQUNyQixrQkFBVSxJQUFJO0FBQ2QseUJBQWlCLElBQUk7QUFDckIsbUJBQVcsSUFBSTtBQUNmLDJCQUFtQixJQUFJO0FBQ3ZCLG1DQUEyQixJQUFJO0FBQy9CLG9DQUE0QixJQUFJO0FBQ2hDLDJCQUFtQixJQUFJO0FBQ3ZCLGtDQUEwQixJQUFJO0FBQzlCLHlCQUFpQixJQUFJO0FBQ3pCO0FBRUEsT0FBQyxDQUFDO0FBQ0UsZUFBTyxJQUFJO0FBQ1gseUJBQWlCLElBQUk7QUFDckIsa0JBQVUsSUFBSTtBQUNkLHlCQUFpQixJQUFJO0FBQ3JCLG1CQUFXLElBQUk7QUFDZiwyQkFBbUIsSUFBSTtBQUN2QixtQ0FBMkIsSUFBSTtBQUMvQixvQ0FBNEIsSUFBSTtBQUNoQywyQkFBbUIsSUFBSTtBQUN2QixrQ0FBMEIsSUFBSTtBQUM5Qix5QkFBaUIsSUFBSTtBQUN6QjtBQUVBLE9BQUM7QUFDRyxpQkFBUztBQUNULHFCQUFhO0FBQ2IsYUFBSyxJQUFJO0FBQ1QsaUJBQVMsSUFBSTtBQUNqQjtBQUdBLE9BQUM7QUFDRyxpQkFBUztBQUNULGtCQUFVO0FBQ1YsYUFBSyxLQUFLLElBQUksdUJBQXVCLEVBQUU7QUFDdkMsMEJBQWtCLEtBQUssSUFBSSx1QkFBdUIsRUFBRTtBQUNwRCxxQkFBYTtBQUNiLHlCQUFpQjtBQUNqQixlQUFPLElBQUk7QUFDWCxnQkFBUSxJQUFJO0FBQ1osbUJBQVcsSUFBSTtBQUNmLHVCQUFlLElBQUk7QUFDbkIsZUFBTyxJQUFJO0FBQ1gsdUJBQWU7QUFDZjtBQUFBLFVBQVksV0FBVyxJQUFJLDhCQUE4QjtBQUFBLFVBQUUsTUFBTSxJQUFJLDhCQUE4QjtBQUFBLFVBQy9GLGNBQWMsSUFBSSw4QkFBOEI7QUFBQSxVQUFFLFdBQVcsSUFBSTtBQUVyRSxTQUFDO0FBQ0csc0JBQVksSUFBSTtBQUNwQjtBQUVBLFNBQUM7QUFDRyxtQkFBUyxJQUFJLHlDQUF5QyxJQUFJLHlDQUF5QyxJQUFJO0FBQ3ZHLDBCQUFnQixJQUFJO0FBQ3BCLHNCQUFZLElBQUk7QUFDcEI7QUFDSjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBR0EsT0FBQztBQUNHLHFCQUFhO0FBQ2IsZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsSUFBSTtBQUVaLGdCQUFRO0FBQ1IsNEJBQW9CLEtBQUssQ0FBQyxJQUFJLDRCQUE0QixFQUFFLElBQUksNkJBQTZCLEVBQUUsSUFBSSxzQkFBc0IsRUFBRTtBQUMzSCxtQkFBVyxJQUFJO0FBQ2YscUJBQWE7QUFDYixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFHQSxPQUFDO0FBQ0csY0FBTSxFQUFFLEVBQUU7QUFDVixtQkFBVztBQUVYLDRCQUFvQixJQUFJO0FBQ3hCLGlCQUFTO0FBQ1Qsd0JBQWdCO0FBQ2hCLGFBQUssSUFBSTtBQUNULHVCQUFlO0FBQ25CO0FBRUEsT0FBQztBQUNHLG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ2pCLHFCQUFhLElBQUk7QUFDckI7QUFFQSxPQWpCQyxnQkFpQmdCO0FBQ2IsbUJBQVcsSUFBSTtBQUNmLHFCQUFhLElBQUk7QUFDakIsZUFBTyxJQUFJO0FBQ1gsbUJBQVc7QUFDZjtBQUNKO0FBQ0o7QUFTQSxNQUFJLENBQUMsZ0JBQWdCLENBaE1wQixTQWdNOEIsQ0FBMUIsaUJBQTRDLENBaE1oRCxTQWdNMEQsQ0F6THREO0FBMExELFdBQU8sSUFBSTtBQUNYLHFCQUFpQixJQUFJO0FBQ3JCLGNBQVUsSUFBSTtBQUNkLHFCQUFpQixJQUFJO0FBQ3JCLGVBQVcsSUFBSTtBQUNmLHVCQUFtQixJQUFJO0FBRXZCLGtCQUFjLElBQUk7QUFDdEI7QUFFQSxNQUFJLENBQUMsY0FBYyxDQTNNbEIsU0EyTTRCLENBQXhCLGVBQXdDLENBM001QyxTQTJNc0QsQ0FwTWxEO0FBcU1ELFdBQU8sSUFBSTtBQUNYLHFCQUFpQjtBQUNqQixjQUFVLElBQUk7QUFDZCxxQkFBaUIsSUFBSTtBQUNyQixlQUFXLElBQUk7QUFDZix1QkFBbUIsSUFBSTtBQUMzQjtBQUVBLEdBN01LO0FBOE1ELGNBQVU7QUFDZDtBQUVBLEdBbElTLGFBa0lLO0FBQ1YsYUFBUztBQUNULFlBQVE7QUFDWjtBQUVBLEdBL0hTO0FBZ0lMLGNBQVU7QUFDVixZQUFRO0FBQ1o7QUFFQSxHQXhEUztBQXlETCxhQUFTO0FBQ2I7QUFBQTs7O0FDaFBBO0FBT0EsR0FBQztBQUNHLEtBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRO0FBQzFCLGVBQVM7QUFDYjtBQUdBLEtBQUM7QUFBQSxJQUNELENBQUM7QUFDRyxlQUFTO0FBQ1QsY0FBUSxFQUFFO0FBQ1YsZUFBUyxJQUFJO0FBQ2IscUJBQWUsSUFBSTtBQUN2QjtBQUVBLEtBUkM7QUFTRyxjQUFRO0FBQ1IscUJBQWU7QUFDZjtBQUFBLFFBQVksV0FBVyxJQUFJLGdDQUFnQztBQUFBLFFBQUUsTUFBTSxJQUFJLGdDQUFnQztBQUFBLFFBQ25HLGNBQWMsSUFBSSxnQ0FBZ0M7QUFBQSxRQUFFLFdBQVcsSUFBSTtBQUV2RSxPQUFDLENBQUM7QUFDRSxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxDQUFDO0FBQ0UsaUJBQVMsSUFBSSw4QkFBOEIsSUFBSSw4QkFBOEIsSUFBSTtBQUNqRix3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFFQSxLQXpCQztBQTBCRyxjQUFRO0FBQ1IsZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDO0FBQ0csMkJBQXFCLElBQUk7QUFDN0I7QUFFQSxLQUFDO0FBQ0csMkJBQXFCLElBQUk7QUFDN0I7QUFDSjtBQUFBOzs7QUMzREE7QUFPQSxHQUFDO0FBQ0csTUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLENBQUM7QUFDckMsdUJBQWlCO0FBQ2pCLDZCQUF1QjtBQUN2QixpQ0FBMkI7QUFDL0I7QUFFQTtBQUNJLHNCQUFnQjtBQUNwQjtBQUVBLEtBQUMsZ0JBQWdCO0FBQ2IsZUFBUztBQUNiO0FBQ0o7QUFHQSxHQUFDO0FBQ0csV0FBTztBQUVQLEtBQUMsS0FBSyxDQUFDO0FBQ0gsaUJBQVc7QUFDZjtBQUVBLEtBQUM7QUFDRyxhQUFPO0FBQ1AsYUFBTztBQUNYO0FBQ0o7QUFFQSxHQUFDLE1BQU0sQ0E5Qk47QUErQkcsV0FBTyxJQUFJO0FBQ1gscUJBQWlCLElBQUk7QUFDckIsc0JBQWtCLElBQUk7QUFDdEIsY0FBVSxJQUFJO0FBQ2QscUJBQWlCLElBQUk7QUFDckIsaUJBQWEsSUFBSTtBQUNqQiw0QkFBd0IsSUFBSTtBQUM1QiwyQkFBdUIsSUFBSTtBQUMzQixxQkFBaUIsSUFBSTtBQUNyQixpQkFBYSxJQUFJO0FBQ2pCLG1CQUFlLElBQUk7QUFDbkIsOEJBQTBCLElBQUk7QUFDOUIseUJBQXFCLElBQUk7QUFDekIsK0JBQTJCLElBQUk7QUFDL0IsMEJBQXNCLElBQUk7QUFDMUIsd0JBQW9CLElBQUk7QUFDeEIsOEJBQTBCLElBQUk7QUFDOUIsK0JBQTJCLElBQUk7QUFDL0IsdUJBQW1CLElBQUk7QUFDdkIsNkJBQXlCLElBQUk7QUFDN0IsK0JBQTJCLElBQUk7QUFDL0IsMkJBQXVCLElBQUk7QUFDM0IsaUNBQTZCLElBQUk7QUFDakMsMEJBQXNCLElBQUk7QUFDMUIsa0NBQThCLElBQUk7QUFDbEMsK0JBQTJCLElBQUk7QUFDL0IsaUNBQTZCLElBQUk7QUFDakMsNEJBQXdCLElBQUk7QUFDNUIsZ0NBQTRCLElBQUk7QUFDaEMsa0NBQThCLElBQUk7QUFDbEMsOEJBQTBCLElBQUk7QUFDOUIsMkJBQXVCLElBQUk7QUFDM0IsNkJBQXlCLElBQUk7QUFDN0IsOEJBQTBCLElBQUk7QUFDOUIsd0JBQW9CLElBQUk7QUFDeEIsdUJBQW1CLElBQUk7QUFDdkIsZ0JBQVksSUFBSTtBQUNoQixZQUFRLElBQUk7QUFDWiwwQkFBc0IsSUFBSTtBQUMxQixnQ0FBNEIsSUFBSTtBQUVoQyxLQTdEQztBQThERyxjQUFRO0FBQ1IsYUFBTztBQUNQLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsYUFBTztBQUNQLGNBQVEsRUFBRTtBQUNWLGVBQVMsSUFBSTtBQUNiLG1CQUFhLElBQUk7QUFDakIsaUJBQVcsSUFBSTtBQUNmLHFCQUFlO0FBQ2Ysa0JBQVksV0FBVyxJQUFJLHVCQUF1QixFQUFFLE1BQU0sSUFBSTtBQUNsRTtBQUdBLEtBQUMsYUFBYSxDQXRGWDtBQXVGQyxpQkFBVztBQUNmO0FBR0EsTUFBRSxDQTNGQztBQTRGQyxlQUFTO0FBQ2I7QUFHQSxLQVZDO0FBV0csYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQXBHRyxZQW9HVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ2hDLGVBQVMsSUFBSTtBQUNqQjtBQUdBLE9BQUcsRUFBRSxFQUFFLENBQUM7QUFDSixjQUFRLElBQUksYUFBYTtBQUN6QixjQUFRLEVBQUU7QUFDViwwQkFBb0IsSUFBSSxNQUFNLElBQUk7QUFDdEM7QUFFQSxLQS9HRyxZQStHVSxDQS9HNEI7QUFnSHJDLHFCQUFlLElBQUk7QUFDdkI7QUFFQSxLQUFDLENBbkdKO0FBb0dPLGtCQUFZLElBQUk7QUFDaEIsZUFBUyxJQUFJO0FBR2IsUUFBRSxDQXhISDtBQXlISyx3QkFBZ0I7QUFDaEIsbUJBQVc7QUFDWCxxQkFBYTtBQUNiLGFBQUssSUFBSTtBQUNiO0FBRUEsUUFBRSxDQS9ISCxZQStIZ0IsQ0FBQztBQUNaLGVBQU87QUFFUCxVQUFFLENBbEkrQjtBQW1JN0IseUJBQWUsSUFBSTtBQUN2QjtBQUNKO0FBR0EsUUFBRSxDQXhJSCxZQXdJZ0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUM7QUFDdEMsNkJBQXFCO0FBQ3pCO0FBQ0o7QUFDSjtBQUFBOzs7QUNwSkE7QUFNQSxHQUFDLE1BQU0sQ0FBQztBQUNKLE1BQUUsQ0FBQztBQUNDLGdCQUFVO0FBQ1Ysa0JBQVk7QUFDWixjQUFRO0FBQ1o7QUFFQSxLQUFDLFlBQVksQ0FOVjtBQU9DLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2IsZUFBTyxJQUFJO0FBQ1gsbUJBQVcsSUFBSTtBQUNuQjtBQUVBLE9BQUMsQ0FBQyxvQkFBc0IsQ0FOdkI7QUFPRyxpQkFBUyxJQUFJO0FBQ2pCO0FBR0EsT0FBQyxLQUFLLENBQUMscUJBQXVCLENBWDdCLGtCQVdnRCxLQUFLO0FBQ2xELGVBQU8sR0FBRztBQUNkO0FBRUEsT0FBQztBQUNHLGVBQU8sSUFBSTtBQUNYLG1CQUFXLElBQUk7QUFDbkI7QUFFQSxPQUFDLENBQUM7QUFDRSxTQXJCSDtBQXNCTyxpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQVZIO0FBV08saUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFDSjtBQUNKO0FBQUE7OztBQzVDQTtBQWFBLEdBQUM7QUFDRyxXQUFPLElBQUk7QUFDWCxxQkFBaUIsSUFBSTtBQUNyQixjQUFVLElBQUk7QUFDZCxlQUFXLElBQUk7QUFDZix1QkFBbUIsSUFBSTtBQUN2Qiw4QkFBMEIsSUFBSTtBQUM5QixxQkFBaUIsSUFBSTtBQUNyQix1QkFBbUIsSUFBSTtBQUN2QiwrQkFBMkIsSUFBSTtBQUMvQixnQ0FBNEIsSUFBSTtBQUNoQyxxQkFBaUIsSUFBSTtBQUNyQixnQkFBWSxJQUFJO0FBQ2hCLGtCQUFjLElBQUk7QUFDbEIsa0JBQWMsSUFBSTtBQUNsQix3QkFBb0IsSUFBSTtBQUV4QixhQUFTO0FBQ1Qsb0JBQWdCO0FBQ2hCLG1CQUFlLElBQUk7QUFDbkIsZUFBVyxJQUFJO0FBQ2YsaUJBQWEsSUFBSTtBQUNqQixtQkFBZTtBQUNmO0FBQUEsTUFBWSxXQUFXLElBQUksZ0NBQWdDO0FBQUEsTUFBRSxNQUFNLElBQUksZ0NBQWdDO0FBQUEsTUFDbkcsYUFBYSxJQUFJO0FBR3JCLEtBQUMsS0FBSyxDQUFDO0FBQ0gsdUJBQWlCLElBQUk7QUFDckIsaUJBQVcsUUFBUSxJQUFJLDRCQUE0QixJQUFJO0FBQzNEO0FBR0EsS0FBQyxDQUFDO0FBQUEsSUFDRixDQUFDLENBQUM7QUFBQSxJQUNGLENBQUMsQ0FBQztBQUFBLElBQ0YsQ0FBQyxDQUFDO0FBQUEsSUFDRixDQUFDLENBQUM7QUFBQSxJQUNGLENBQUMsQ0FBQztBQUFBLElBQ0YsQ0FBQyxDQUFDO0FBQ0UsZUFBUyxJQUFJO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixjQUFRLElBQUksaUJBQWlCLE1BQU0sSUFBSTtBQUN2QyxhQUFPLElBQUk7QUFDWCxrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQyxDQWJDO0FBY0UsYUFBTyxJQUFJO0FBQ1gsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXLElBQUk7QUFDZix5QkFBbUIsSUFBSTtBQUN2QixnQ0FBMEIsSUFBSTtBQUM5Qix1QkFBaUIsSUFBSTtBQUNyQix5QkFBbUIsSUFBSTtBQUN2QixpQ0FBMkIsSUFBSTtBQUMvQixrQ0FBNEIsSUFBSTtBQUNwQztBQUVBLEtBQUMsQ0F6QkM7QUEwQkUsYUFBTyxJQUFJO0FBQ1gsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXLElBQUk7QUFDZix5QkFBbUIsSUFBSTtBQUN2QixnQ0FBMEIsSUFBSTtBQUM5Qix1QkFBaUIsSUFBSTtBQUNyQix5QkFBbUIsSUFBSTtBQUN2QixpQ0FBMkIsSUFBSTtBQUMvQixrQ0FBNEIsSUFBSTtBQUNwQztBQUVBLEtBQUMsQ0FyQ0M7QUFzQ0UsYUFBTyxJQUFJO0FBQ1gsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXLElBQUk7QUFDZix5QkFBbUIsSUFBSTtBQUN2QixnQ0FBMEIsSUFBSTtBQUM5Qix1QkFBaUIsSUFBSTtBQUNyQix5QkFBbUIsSUFBSTtBQUN2QixpQ0FBMkIsSUFBSTtBQUMvQixrQ0FBNEIsSUFBSTtBQUNwQztBQUVBLEtBQUMsQ0FqREM7QUFrREUsYUFBTyxJQUFJO0FBQ1gsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXLElBQUk7QUFDZix5QkFBbUIsSUFBSTtBQUN2QixnQ0FBMEIsSUFBSTtBQUM5Qix1QkFBaUIsSUFBSTtBQUNyQix5QkFBbUIsSUFBSTtBQUN2QixpQ0FBMkIsSUFBSTtBQUMvQixrQ0FBNEIsSUFBSTtBQUNwQztBQUdBLEtBQUMsQ0E5REM7QUErREUsYUFBTyxJQUFJO0FBQ1gsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXLElBQUk7QUFDZix5QkFBbUIsSUFBSTtBQUN2QixnQ0FBMEIsSUFBSTtBQUM5Qix1QkFBaUIsSUFBSTtBQUNyQix5QkFBbUIsSUFBSTtBQUN2QixpQ0FBMkIsSUFBSTtBQUMvQixrQ0FBNEIsSUFBSTtBQUNwQztBQUVBLEtBQUMsQ0ExRUM7QUEyRUUsYUFBTyxJQUFJO0FBQ1gsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXLElBQUk7QUFDZix5QkFBbUIsSUFBSTtBQUN2QixnQ0FBMEIsSUFBSTtBQUM5Qix1QkFBaUIsSUFBSTtBQUNyQix5QkFBbUIsSUFBSTtBQUN2QixpQ0FBMkIsSUFBSTtBQUMvQixrQ0FBNEIsSUFBSTtBQUNwQztBQUdBLEtBQUMsQ0FBQztBQUNFLGtCQUFZLElBQUk7QUFDaEIsb0JBQWMsSUFBSTtBQUNsQixvQkFBYyxJQUFJO0FBQ2xCLDBCQUFvQixJQUFJO0FBQzVCO0FBRUEsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNoQixvQkFBYyxJQUFJO0FBQ2xCLG9CQUFjLElBQUk7QUFDbEIsMEJBQW9CLElBQUk7QUFDNUI7QUFHQSxLQUFDLENBQUM7QUFDRSxhQUFPO0FBQ1AsdUJBQWlCLElBQUk7QUFDckIsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXO0FBQ2Y7QUFFQSxLQUFDLENBQUM7QUFDRSxhQUFPO0FBQ1AsdUJBQWlCO0FBQ2pCLGdCQUFVLElBQUk7QUFDZCxpQkFBVztBQUNYLGtCQUFZLElBQUk7QUFDcEI7QUFHQSxNQUFFO0FBQ0UsZUFBUztBQUNULG1CQUFhO0FBQ2IsV0FBSyxJQUFJO0FBRVQsa0JBQVksS0FBSyxJQUFJLDRCQUE0QixFQUFFO0FBQ3ZEO0FBR0EsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLG1CQUFhO0FBQ2IsYUFBTyxJQUFJO0FBQ1gsaUJBQVcsSUFBSTtBQUNmLG1CQUFhO0FBQ2pCO0FBRUEsS0FiQztBQWNHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBaEJDO0FBaUJHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBbkJDO0FBb0JHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBdEJDO0FBdUJHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBekJDO0FBMEJHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBNUJDO0FBNkJHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBL0JDO0FBZ0NHLGVBQVMsSUFBSTtBQUNqQjtBQUdBLEtBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFDRyxtQkFBYSxJQUFJO0FBQ3JCO0FBRUEsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLG1CQUFhLElBQUk7QUFDakIscUJBQWU7QUFDZixpQkFBVztBQUNmO0FBRUEsS0F0QkMsc0JBc0JzQjtBQUFBLElBQ3ZCLENBdEJDLHlCQXNCeUI7QUFBQSxJQUMxQixDQXRCQyxzQkFzQnNCO0FBQUEsSUFDdkIsQ0F0QkMsdUJBc0J1QjtBQUFBLElBQ3hCLENBdEJDLHVCQXNCdUI7QUFBQSxJQUN4QixDQXRCQywyQkFzQjJCO0FBQUEsSUFDNUIsQ0F0QkMsMEJBc0IwQjtBQUFBLElBQzNCLENBbkJDLHFCQW1CcUI7QUFBQSxJQUN0QixDQW5CQyx3QkFtQndCO0FBQUEsSUFDekIsQ0FuQkMscUJBbUJxQjtBQUFBLElBQ3RCLENBbkJDLHNCQW1Cc0I7QUFBQSxJQUN2QixDQW5CQyxzQkFtQnNCO0FBQUEsSUFDdkIsQ0FuQkMsMEJBbUIwQjtBQUFBLElBQzNCLENBbkJDLHlCQW1CeUI7QUFDdEIsZUFBUztBQUNiO0FBRUEsS0FBQyxDQUFDO0FBQ0UsZUFBUztBQUNiO0FBQ0o7QUFHQSxHQUFDLFNBQVMsRUFBRSxDQS9QWCxTQStQcUIsS0FBSyxDQXBPaEI7QUFxT1AseUJBQXFCLElBQUk7QUFDN0I7QUFBQTs7O0FDOVFBO0FBWUEsR0FBQztBQUNHLGdCQUFZLElBQUk7QUFDaEIsa0JBQWMsSUFBSTtBQUNsQixrQkFBYyxJQUFJO0FBQ2xCLHdCQUFvQixJQUFJO0FBRXhCLGVBQVcsSUFBSTtBQUNmLGlCQUFhLElBQUk7QUFDakIsY0FBVTtBQUNWLG1CQUFlLElBQUk7QUFFbkIsTUFBRTtBQUNFLGFBQU8sSUFBSTtBQUNYLHVCQUFpQixJQUFJO0FBQ3JCLGdCQUFVLElBQUk7QUFDZCxpQkFBVyxJQUFJO0FBQ2YseUJBQW1CLElBQUk7QUFDdkIsZ0NBQTBCLElBQUk7QUFDOUIsdUJBQWlCLElBQUk7QUFDckIseUJBQW1CLElBQUk7QUFDdkIsaUNBQTJCLElBQUk7QUFDL0Isa0NBQTRCLElBQUk7QUFDaEMsdUJBQWlCLElBQUk7QUFFckIsZUFBUztBQUNULG1CQUFhO0FBQ2IsV0FBSyxJQUFJO0FBQ1QsZUFBUyxJQUFJO0FBQ2IsY0FBUSxJQUFJLGtCQUFrQjtBQUM5QixxQkFBZSxJQUFJO0FBQ25CLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSxnQ0FBZ0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxnQ0FBZ0M7QUFBQSxRQUNuRyxhQUFhLElBQUk7QUFHckIsdUJBQWlCLElBQUk7QUFDckIsaUJBQVcsUUFBUSxJQUFJLDRCQUE0QixJQUFJO0FBQzNEO0FBRUEsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLGtCQUFZLElBQUk7QUFDaEIsY0FBUSxJQUFJLGlCQUFpQixNQUFNLElBQUk7QUFDdkMsYUFBTyxJQUFJO0FBQ1gsa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBVkM7QUFXRyxhQUFPLElBQUk7QUFDWCx1QkFBaUIsSUFBSTtBQUNyQixnQkFBVSxJQUFJO0FBQ2QsaUJBQVcsSUFBSTtBQUNmLHlCQUFtQixJQUFJO0FBQ3ZCLGdDQUEwQixJQUFJO0FBQzlCLHVCQUFpQixJQUFJO0FBQ3JCLHlCQUFtQixJQUFJO0FBQ3ZCLGlDQUEyQixJQUFJO0FBQy9CLGtDQUE0QixJQUFJO0FBQ3BDO0FBRUEsS0F0QkM7QUF1QkcsYUFBTyxJQUFJO0FBQ1gsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXLElBQUk7QUFDZix5QkFBbUIsSUFBSTtBQUN2QixnQ0FBMEIsSUFBSTtBQUM5Qix1QkFBaUIsSUFBSTtBQUNyQix5QkFBbUIsSUFBSTtBQUN2QixpQ0FBMkIsSUFBSTtBQUMvQixrQ0FBNEIsSUFBSTtBQUNwQztBQUVBLEtBbENDO0FBbUNHLGFBQU8sSUFBSTtBQUNYLHVCQUFpQixJQUFJO0FBQ3JCLGdCQUFVLElBQUk7QUFDZCxpQkFBVyxJQUFJO0FBQ2YseUJBQW1CLElBQUk7QUFDdkIsZ0NBQTBCLElBQUk7QUFDOUIsdUJBQWlCLElBQUk7QUFDckIseUJBQW1CLElBQUk7QUFDdkIsaUNBQTJCLElBQUk7QUFDL0Isa0NBQTRCLElBQUk7QUFDcEM7QUFFQSxLQTlDQztBQStDRyxhQUFPLElBQUk7QUFDWCx1QkFBaUIsSUFBSTtBQUNyQixnQkFBVSxJQUFJO0FBQ2QsaUJBQVcsSUFBSTtBQUNmLHlCQUFtQixJQUFJO0FBQ3ZCLGdDQUEwQixJQUFJO0FBQzlCLHVCQUFpQixJQUFJO0FBQ3JCLHlCQUFtQixJQUFJO0FBQ3ZCLGlDQUEyQixJQUFJO0FBQy9CLGtDQUE0QixJQUFJO0FBQ3BDO0FBR0EsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNoQixvQkFBYyxJQUFJO0FBQ2xCLG9CQUFjLElBQUk7QUFDbEIsMEJBQW9CLElBQUk7QUFDNUI7QUFFQSxLQUFDLENBQUM7QUFDRSxvQkFBYyxJQUFJO0FBQ2xCLDBCQUFvQixJQUFJO0FBQzVCO0FBR0EsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUMsQ0FBQyxtQkFBbUIsRUFBRTtBQUNuQixhQUFPO0FBQ1AsdUJBQWlCLElBQUk7QUFDckIsdUJBQWlCLElBQUk7QUFDckIsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXO0FBQ2Y7QUFFQSxLQUFDLENBWkMsaUJBWWlCLEVBQUU7QUFDakIsYUFBTztBQUNQLHVCQUFpQjtBQUNqQixnQkFBVSxJQUFJO0FBQ2QsaUJBQVc7QUFDZjtBQUVBO0FBQ0ksWUFBTSxFQUFFLEVBQUU7QUFDVixpQkFBVztBQUNYLGNBQVE7QUFDUixlQUFTO0FBQ1QsdUJBQWlCO0FBRWpCLFFBQUU7QUFDRSxpQkFBUztBQUNULG1CQUFXO0FBQ1gscUJBQWE7QUFDYixvQkFBWSxJQUFJO0FBRWhCLFVBQUU7QUFDRSxzQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFFQSxPQUFDO0FBQUEsTUFDRCxDQUFDO0FBQUEsTUFDRCxDQUFDO0FBQUEsTUFDRCxDQUFDO0FBQUEsTUFDRCxDQUFDO0FBQ0cscUJBQWEsSUFBSTtBQUNyQjtBQUVBLE9BQUM7QUFBQSxNQUNELENBQUM7QUFBQSxNQUNELENBQUM7QUFBQSxNQUNELENBQUM7QUFBQSxNQUNELENBQUM7QUFDRyxxQkFBYSxJQUFJO0FBQ2pCLHVCQUFlO0FBQ2YsbUJBQVc7QUFDWCxtQkFBVztBQUNmO0FBQ0o7QUFHQSxLQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csbUJBQWE7QUFDYixpQkFBVyxJQUFJO0FBQ2YsbUJBQWE7QUFFYixjQUFRLEtBQUssQ0FBQyxJQUFJLDRCQUE0QixFQUFFLElBQUksY0FBYyxFQUFFLElBQUksZUFBZSxFQUFFLEdBQUcsRUFBRTtBQUM5RixhQUFPLElBQUk7QUFDZjtBQUVBLEtBYkM7QUFjRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQWhCQztBQWlCRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQW5CQztBQW9CRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQXRCQztBQXVCRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQXpCQztBQTBCRyxlQUFTLElBQUk7QUFDakI7QUFHQSxLQUFDO0FBQ0csYUFBTztBQUNQLGVBQVM7QUFDVCxtQkFBYTtBQUNiLG1CQUFhO0FBQ2IsdUJBQWlCO0FBQ2pCLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSTtBQUNaLGVBQVM7QUFDVCxjQUFRLEVBQUU7QUFDVixxQkFBZSxJQUFJO0FBQ25CLGtCQUFZO0FBQ1osYUFBTyxJQUFJO0FBQ1gsa0JBQVk7QUFDWix1QkFBaUI7QUFDakIsY0FBUTtBQUNSLDJCQUFxQjtBQUNyQixtQkFBYTtBQUNiLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSxnQ0FBZ0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxnQ0FBZ0M7QUFBQSxRQUNuRyxjQUFjLElBQUksZ0NBQWdDO0FBQUEsUUFBRSxXQUFXLElBQUk7QUFFdkUsT0FBQztBQUNHLG9CQUFZLElBQUk7QUFDcEI7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSSwyQ0FBMkMsSUFBSSwyQ0FBMkMsSUFBSTtBQUMzRyx3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDYixtQkFBVyxJQUFJO0FBQ2YsZUFBTztBQUNYO0FBQ0o7QUFDSjtBQUFBOzs7QUNsUUE7QUFPQSxHQUFDO0FBRUcsYUFBUztBQUVULEtBQUM7QUFDRyxhQUFPO0FBQ1AsZ0JBQVU7QUFDVixhQUFPO0FBQ1AsaUJBQVcsSUFBSTtBQUNmLGNBQVE7QUFDUix5QkFBbUIsSUFBSTtBQUN2QixlQUFTO0FBQ1Qsa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLHFCQUFlLElBQUk7QUFDbkIsa0JBQVksSUFBSTtBQUVoQixPQUFDO0FBQ0csMkJBQW1CO0FBQ3ZCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDYixnQkFBUTtBQUNSLGdCQUFRLEVBQUU7QUFDVix1QkFBZSxJQUFJLE1BQU0sSUFBSTtBQUM3QixtQ0FBMkIsSUFBSTtBQUMvQixpQ0FBeUIsSUFBSTtBQUM3QixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNYLG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ3JCO0FBRUEsT0FBQztBQUFBLE1BQ0QsQ0FEQyx5QkFDeUIsS0FBSyxDQUFDLGlCQUFpQjtBQUFBLE1BQ2pELENBRkMseUJBRXlCLEtBQUssQ0FEQyxpQkFDaUI7QUFDN0MsZUFBTztBQUNQLGlCQUFTLElBQUk7QUFDYixvQkFBWTtBQUNaLGVBQU87QUFDUCxnQkFBUSxFQUFFO0FBQ1YsdUJBQWU7QUFDZixpQkFBUyxFQUFFO0FBQ1gsb0JBQVk7QUFDaEI7QUFFQSxPQWJDLDBCQWEwQixDQUFDO0FBQ3hCLGlCQUFTO0FBQ1QscUJBQWE7QUFDYixhQUFLLElBQUk7QUFDVCxpQkFBUyxJQUFJO0FBQ2IsZ0JBQVE7QUFDUixvQkFBWTtBQUNaLGVBQU8sSUFBSTtBQUNYLG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ2pCLHVCQUFlLElBQUk7QUFDbkI7QUFBQSxVQUFZLFdBQVcsSUFBSSxvQ0FBb0M7QUFBQSxVQUFFLE1BQU0sSUFBSSxvQ0FBb0M7QUFBQSxVQUMzRyxhQUFhLElBQUk7QUFFckIsVUFBRSxFQUFFLENBZG9CO0FBZXBCLHNCQUFZLElBQUk7QUFDcEI7QUFFQSxTQUFDLENBQUM7QUFDRSxzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDZjtBQUVBLFNBQUMsQ0FBQztBQUNFLHNCQUFZLElBQUk7QUFDaEIsaUJBQU8sSUFBSTtBQUNYLHVCQUFhLElBQUk7QUFDckI7QUFDSjtBQUNKO0FBRUEsS0E1Q0s7QUE2Q0QsdUJBQWlCO0FBQ2pCLGNBQVE7QUFDWjtBQUVBLEtBOURLO0FBK0RELGtCQUFZO0FBQ2hCO0FBRUEsS0F4Q2dDO0FBeUM1QixjQUFRO0FBQ1IsbUJBQWE7QUFDYixjQUFRLEVBQUU7QUFHVixPQUFDLEtBQUssRUFBRSxHQUFHO0FBQ1AsaUJBQVM7QUFDVCxvQkFBWTtBQUNaLDZCQUFxQjtBQUNyQixjQUFNLElBQUkscUNBQXFDLE9BQU8sRUFBRSxRQUFRO0FBQ2hFLDZCQUFxQjtBQUNyQixvQkFBWTtBQUNaLHFCQUFhO0FBQ2IsbUJBQVcsSUFBSTtBQUNmLHFCQUFhO0FBQ2IsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssSUFBSTtBQUNoQixlQUFPLEdBQUc7QUFDZDtBQUVBLE9BQUMsQ0F4Q0ssaUJBd0NhLEtBQUssRUFBRSxHQUFHO0FBQ3pCLGVBQU87QUFDWDtBQUNKO0FBRUEsS0FBQyxDQWhGbUM7QUFpRmhDLGVBQVM7QUFFVCxPQXZFNEI7QUF3RXhCLGdCQUFRO0FBQ1o7QUFFQSxPQXZISDtBQXdITyxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0E1SEgsbUNBNEh1QyxDQTdGbkMsMEJBNkY4RCxDQWhGbkM7QUFpRnhCLGVBQU8sSUFBSTtBQUdYLFNBQUMsQ0E3REM7QUE4REUsaUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFDSjtBQUNKO0FBQUE7OztBQ2hKQTtBQU9BLEdBQUM7QUFDRyxhQUFTO0FBQ1QsY0FBVTtBQUNWLFVBQU07QUFDTixXQUFPO0FBQ1AsZ0JBQVk7QUFDWixhQUFTLElBQUk7QUFDYixnQkFBWSxJQUFJO0FBQ2hCLFdBQU8sSUFBSTtBQUNYLFlBQVEsRUFBRTtBQUNWLGtCQUFjLElBQUksTUFBTSxJQUFJO0FBQzVCLGdCQUFZLElBQUk7QUFFaEIsS0FBQztBQUNHLGVBQVM7QUFDVCxtQkFBYTtBQUNiLHVCQUFpQjtBQUNqQixXQUFLLElBQUk7QUFDVCx3QkFBa0IsSUFBSTtBQUN0QixhQUFPLElBQUk7QUFDWCxjQUFRLElBQUk7QUFDWixxQkFBZSxJQUFJO0FBQ25CLGtCQUFZO0FBQ1osYUFBTyxJQUFJO0FBQ1gsdUJBQWlCO0FBQ2pCLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSx3Q0FBd0M7QUFBQSxRQUFFLE1BQU0sSUFBSSx3Q0FBd0M7QUFBQSxRQUNuSCxjQUFjLElBQUksd0NBQXdDO0FBQUEsUUFBRSxXQUFXLElBQUk7QUFFL0UsT0FBQztBQUNHLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSSxtREFBbUQsSUFBSSxtREFBbUQsSUFBSTtBQUMzSCx3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBRUEsT0FBQztBQUNHLG1CQUFXLElBQUk7QUFDbkI7QUFDSjtBQUNKO0FBRUEsR0FqQ0s7QUFrQ0QsY0FBVTtBQUNWLFlBQVE7QUFDWjtBQUFBOzs7QUN4REE7QUFLQSxHQUFDO0FBQ0csYUFBUztBQUdULEtBQUM7QUFDRyxhQUFPO0FBQ1Asa0JBQVk7QUFDWixrQkFBWSxnQkFBZ0IsSUFBSSxpQ0FBaUMsRUFBRSxJQUFJLGtDQUFrQyxFQUFFLElBQUk7QUFDL0csY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixxQkFBZSxFQUFFO0FBQ2pCLGFBQU8sSUFBSTtBQUNYLGVBQVMsSUFBSTtBQUNiLG1CQUFhLElBQUk7QUFDakIscUJBQWUsSUFBSSwyQkFBMkIsSUFBSSwyQkFBMkIsRUFBRTtBQUNuRjtBQUVBLEtBQUM7QUFDRyx1QkFBaUI7QUFDakIsY0FBUTtBQUNSLGdCQUFVO0FBQ1YsY0FBUTtBQUNSLGFBQU87QUFDUCxjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsZUFBUyxJQUFJO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixxQkFBZSxFQUFFLEVBQUUsSUFBSSwyQkFBMkIsSUFBSTtBQUV0RCxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNiLGdCQUFRO0FBQ1IsZ0JBQVEsRUFBRTtBQUNWLGVBQU8sSUFBSTtBQUNYLG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ2pCLHVCQUFlLElBQUk7QUFDbkI7QUFBQSxVQUFZLFdBQVcsSUFBSSxnQ0FBZ0M7QUFBQSxVQUFFLE1BQU0sSUFBSSxnQ0FBZ0M7QUFBQSxVQUNuRyxhQUFhLElBQUksZ0NBQWdDO0FBQUEsVUFBRSxXQUFXLElBQUk7QUFDMUU7QUFFQSxPQVpDLGlCQVlpQixFQUFFLENBWm5CO0FBYUcsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BaEJDLGdCQWdCZ0IsS0FBSyxDQUFDLGtCQUFrQjtBQUFBLE1BQ3pDLENBakJDLGdCQWlCZ0IsQ0FBQztBQUNkLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQXRCQyxnQkFzQmdCLENBTk07QUFPbkIsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDWCxxQkFBYSxJQUFJO0FBQ3JCO0FBRUEsT0E1QkMsZ0JBNEJnQixDQVpNLGlCQVlZLENBQUM7QUFDaEMsb0JBQVksSUFBSTtBQUNwQjtBQUdBLE9BQUM7QUFDRyx1QkFBZSxJQUFJO0FBQ3ZCO0FBQ0o7QUFHQSxLQUFDO0FBQ0csZUFBUztBQUNiO0FBRUEsS0EzQ0s7QUE0Q0QsY0FBUTtBQUNaO0FBRUE7QUFDSSxhQUFPO0FBQ1AsdUJBQWlCO0FBQ3JCO0FBRUEsS0FBQztBQUNHLGVBQVM7QUFDVCxzQkFBZ0I7QUFDaEIsbUJBQWE7QUFDYix1QkFBaUI7QUFFakIsT0FuQkg7QUFvQk8sdUJBQWUsSUFBSTtBQUN2QjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxLQUFDLEtBQUssRUFBRTtBQUNKLGVBQVM7QUFFVCxPQUFDLENBOUJKO0FBK0JPLGlCQUFTO0FBQ1QsNEJBQW9CLElBQUk7QUFDNUI7QUFDSjtBQUVBLEtBQUMsQ0FBQywyQkFBMkIsQ0FUNUIsS0FTa0MsRUFBRSxHQUFHLENBcEN2QztBQXFDRyxlQUFTO0FBQ1QsNEJBQXNCLElBQUk7QUFDOUI7QUFFQSxLQUFDLENBQUM7QUFDRSxPQTlGQztBQUFBLE1BK0ZELENBeERIO0FBeURPLGdCQUFRO0FBQ1o7QUFFQSxPQWhISDtBQWlITyxrQkFBVTtBQUNWLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUdBLEtBQUMsQ0FBQztBQUNFLGVBQVM7QUFDVCxhQUFPO0FBRVAsT0E1SEg7QUFBQSxNQTZIRyxDQXpJSDtBQTBJTyxlQUFPO0FBQ1g7QUFFQSxPQWhFSCxxQkFnRXlCLENBN0V6QjtBQThFTyxlQUFPO0FBQ1g7QUFDSjtBQUNKO0FBS0EsVUFBTyxXQUFZO0FBQ2YsS0EzSkgsV0EySmUsQ0FuQlYsbUJBbUI4QixDQS9DL0IsS0ErQ3FDLEVBQUU7QUFDcEMsYUFBTztBQUVQLE9BQUMsQ0E3RUo7QUE4RU8sb0JBQVk7QUFDWixpQkFBUztBQUNULHdCQUFnQjtBQUVoQixTQS9GUDtBQWdHVyxtQkFBUztBQUNULGlCQUFPO0FBQ1Asc0JBQVksSUFBSTtBQUNoQiw2QkFBbUIsSUFBSTtBQUMzQjtBQUVBLFNBdEdQLFFBc0dnQjtBQUNMLDZCQUFtQjtBQUN2QjtBQUNKO0FBQ0o7QUFDSjtBQUFBOzs7QUNwTEE7QUFNQSxHQUFDO0FBQ0csV0FBTyxJQUFJO0FBQ1gsZUFBVyxJQUFJO0FBQ2YsaUJBQWEsSUFBSTtBQUVqQixLQUFDO0FBQ0csZ0JBQVU7QUFDZDtBQUVBLEtBQUMsQ0FBQztBQUNFLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQUFDO0FBQ0UsZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLG1CQUFhLElBQUk7QUFDakIsYUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLEdBQUMsa0JBQWtCLENBTmQ7QUFPRCxpQkFBYTtBQUNiLGtCQUFjLElBQUk7QUFDdEI7QUFBQTs7O0FDaENBO0FBT0EsS0FBRyxDQUFDLGFBQWEsS0FBSyxFQUFFLENBQUM7QUFDckIsYUFBUztBQUNULGlCQUFhO0FBQ2IscUJBQWlCO0FBQ2pCLGFBQVMsSUFBSTtBQUNqQjtBQUVBLEdBUEksY0FPVyxDQVBVO0FBUXJCLGVBQVcsSUFBSTtBQUNmLFdBQU8sSUFBSTtBQUNYLGVBQVcsT0FBTyxJQUFJLGlEQUFpRCxPQUFPO0FBQ2xGO0FBRUEsR0FBQztBQUNHLGFBQVMsSUFBSTtBQUNqQjtBQUFBOzs7QUN0QkE7QUFPQSxHQUFDO0FBQ0csY0FBVTtBQUNWLGFBQVM7QUFDVCxZQUFRO0FBQ1IsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG1CQUFlLElBQUk7QUFDbkIsZ0JBQVksSUFBSTtBQUVoQixLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLGdCQUFVO0FBQ1YsZUFBUztBQUNULG1CQUFhO0FBQ2IsdUJBQWlCO0FBQ2pCLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSTtBQUNaLHdCQUFrQixLQUFLLEdBQUcsRUFBRSxJQUFJLG9DQUFvQyxFQUFFO0FBQ3RFLFdBQUssS0FBSyxHQUFHLEVBQUUsSUFBSSxvQ0FBb0MsRUFBRTtBQUN6RCxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGNBQVEsRUFBRTtBQUNWLHFCQUFlO0FBQ2YsZUFBUztBQUNULHVCQUFpQjtBQUNqQixxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksa0RBQWtEO0FBQUEsUUFDekUsTUFBTSxJQUFJLGtEQUFrRDtBQUFBLFFBQzVELGNBQWMsSUFBSSxrREFBa0Q7QUFBQSxRQUNwRSxXQUFXLElBQUk7QUFFbkIsT0FBQztBQUFBLE1BQ0QsQ0FBQyxDQUFDO0FBQ0Usb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJLGdEQUFnRCxJQUFJLGdEQUM3RCxJQUFJO0FBQ1Isd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2IsZUFBTztBQUNYO0FBQ0o7QUFDSjtBQUFBOzs7QUM1REE7QUFTQSxHQUFDO0FBQ0csZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG1CQUFlLElBQUk7QUFFbkIsS0FBQztBQUNHLGVBQVM7QUFDVCxtQkFBYTtBQUNiLGVBQVMsSUFBSTtBQUNiLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsbUJBQWEsSUFBSTtBQUNqQixvQkFBYztBQUNkLG9CQUFjLElBQUk7QUFDbEIsb0JBQWMsSUFBSTtBQUNsQixxQkFBZSxJQUFJO0FBR25CLE9BQUMsS0FBSyxFQUFFLENBQUM7QUFDTCxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxLQUFDO0FBQ0csY0FBUTtBQUNaO0FBRUEsS0FBQztBQUNHLGNBQVE7QUFDUix5QkFBbUI7QUFDbkIsaUJBQVcsSUFBSTtBQUNmLG1CQUFhLElBQUk7QUFDakIsaUJBQVc7QUFDZjtBQUVBLEtBOUJDO0FBZ0NHLFFBQUUsQ0FBQztBQUNDLGVBQU87QUFDWDtBQUVBLFFBQUUsQ0F2Qk87QUF3QkwsU0FBQyxDQUFDO0FBQ0UsaUJBQU87QUFDWDtBQUVBLFNBQUMsQ0FBQztBQUNFLGlCQUFPO0FBQ1g7QUFFQSxTQUFDLENBQUM7QUFDRSxpQkFBTztBQUNYO0FBQ0o7QUFFQSxPQXJDUztBQXNDTCxpQkFBUztBQUNULHFCQUFhO0FBQ2IseUJBQWlCO0FBQ2pCLHFCQUFhO0FBQ2IsZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsSUFBSTtBQUNaLGdCQUFRO0FBQ1IsaUJBQVM7QUFDVCxvQkFBWTtBQUNaLGVBQU8sSUFBSTtBQUNYLGdCQUFRLEVBQUU7QUFDVix1QkFBZTtBQUNmLG9CQUFZO0FBQ1oseUJBQWlCO0FBQ2pCLDZCQUFxQjtBQUNyQixxQkFBYTtBQUNiLHVCQUFlO0FBQ2Y7QUFBQSxVQUFZLFdBQVcsSUFBSSwrQkFBK0I7QUFBQSxVQUFFLE1BQU0sSUFBSSwrQkFBK0I7QUFBQSxVQUNqRyxjQUFjLElBQUksK0JBQStCO0FBQUEsVUFBRSxXQUFXLElBQUk7QUFFdEUsU0FBQztBQUNHLHNCQUFZLElBQUk7QUFDaEIsaUJBQU8sSUFBSTtBQUNmO0FBRUEsU0FBQztBQUNHLHNCQUFZLElBQUk7QUFDcEI7QUFFQSxTQUFDO0FBQ0csbUJBQVMsSUFBSSw2QkFBNkIsSUFBSSw2QkFBNkIsSUFBSTtBQUMvRSwwQkFBZ0IsSUFBSTtBQUNwQixzQkFBWSxJQUFJO0FBQ3BCO0FBRUEsU0FBQztBQUNHLG1CQUFTLElBQUk7QUFDakI7QUFFQSxTQUFDO0FBQ0csbUJBQVMsSUFBSTtBQUNqQjtBQUVBLFNBQUMsQ0FBQyxxQkFBdUIsQ0FKeEI7QUFLRyxtQkFBUyxJQUFJO0FBQ2pCO0FBRUEsU0FBQztBQUNHLG1CQUFTLElBQUk7QUFDakI7QUFDSjtBQUNKO0FBRUEsS0EzRmE7QUE0RlQsY0FBUTtBQUNaO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNiLGtCQUFZO0FBQ1osYUFBTztBQUNQLGNBQVEsRUFBRTtBQUNkO0FBR0EsTUFBRSxDQVJELGVBUWlCO0FBQ2QsbUJBQWEsSUFBSTtBQUNyQjtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1IsZUFBUyxJQUFJO0FBQ2Isa0JBQVk7QUFDWixhQUFPO0FBQ1AsY0FBUSxFQUFFO0FBQ1Ysa0JBQVk7QUFDaEI7QUFJQSxLQUFDLENBQUMsa0JBQWtCLENBbkluQjtBQUFBLElBb0lELENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FaWixnQkFZNkIsS0FBSyxFQUFFLENBeEJwQyxlQXdCb0QsQ0FBQyx3QkFBd0IsRUFBRSxDQXBJL0U7QUFxSUcsK0JBQXlCLElBQUk7QUFDN0IsNkJBQXVCLElBQUk7QUFDL0I7QUFHQSxLQUFDLENBQUM7QUFDRSxhQUFPO0FBRVAsT0F2SEg7QUF3SE8saUJBQVM7QUFDYjtBQUVBLE9BakpIO0FBa0pPLGtCQUFVO0FBQ1YseUJBQWlCO0FBQ2pCLHdCQUFnQjtBQUNwQjtBQUNKO0FBQ0o7QUFBQTs7O0FDdEtBO0FBVUEsR0FBQztBQUNHLHFCQUFpQjtBQUVqQixLQUFDO0FBQ0csa0JBQVk7QUFDaEI7QUFFQSxLQUFDO0FBQ0csa0JBQVk7QUFDaEI7QUFHQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxjQUFRLElBQUksTUFBTSxJQUFJO0FBQzFCO0FBRUEsS0FQQyxnQkFPZ0IsQ0FBQztBQUFBLElBQ2xCLEVBQUUsR0FBRyxDQWpCSjtBQUFBLElBa0JELEVBQUUsR0FBRyxDQWRKO0FBZUcsZUFBUyxJQUFJO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGlCQUFXLElBQUk7QUFDZixtQkFBYSxJQUFJO0FBQ3JCO0FBRUEsTUFBRTtBQUVFLE9BQUMsQ0FBQztBQUNFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsSUFBSSxNQUFNLElBQUk7QUFDMUI7QUFFQSxPQUFDLENBbkNKLG1CQW1Dd0IsRUFBRSxHQUFHLENBTnhCO0FBQUEsTUFPRixDQUFDLENBUEMsb0JBT29CLEVBQUUsR0FBRyxDQWhDOUI7QUFpQ08sb0JBQVksRUFBRTtBQUNsQjtBQUNKO0FBRUEsS0FBQyxDQUFDLFdBQVcsQ0FBQztBQUFBLElBQ2QsQ0FBQyxDQURDLFdBQ1csQ0ExQks7QUFBQSxJQTJCbEIsQ0FBQyxDQUZDLFdBRVcsQ0FsQ1o7QUFBQSxJQW1DRCxDQUFDLENBSEMsV0FHVyxDQW5DWixnQkFtQzZCLENBNUJaO0FBQUEsSUE2QmxCLENBQUMsQ0FKQyxXQUlXLEVBQUUsR0FBRyxDQTdDakI7QUFBQSxJQThDRCxDQUFDLENBTEMsV0FLVyxFQUFFLEdBQUcsQ0FqQlo7QUFBQSxJQWtCTixDQUFDLENBTkMsV0FNVyxFQUFFLEdBQUcsQ0EzQ2pCO0FBQUEsSUE0Q0QsQ0FBQyxLQUFLLENBdkNMO0FBQUEsSUF3Q0QsQ0FBQyxPQUFPLENBeENQO0FBQUEsSUF5Q0QsQ0FBQyxtQkFBbUIsQ0F6Q25CO0FBMENHLGNBQVEsRUFBRTtBQUNkO0FBRUEsS0FBQyxDQUFDLGtCQUFrQixDQXpCZCxtQkF5QmtDLENBYjFCO0FBQUEsSUFjZCxDQUFDLENBREMsa0JBQ2tCLENBdkRuQixrQkF1RHNDLENBdkNyQjtBQUFBLElBd0NsQixDQUFDLENBRkMsa0JBRWtCLENBcERuQixrQkFvRHNDLENBeENyQjtBQUFBLElBeUNsQixDQUFDLENBSEMsa0JBR2tCLENBekRuQixtQkF5RHVDLEVBQUUsRUFBRSxDQXpDMUI7QUFBQSxJQTBDbEIsQ0FBQyxDQUpDLGtCQUlrQixDQXREbkIsbUJBc0R1QyxFQUFFLEVBQUUsQ0ExQzFCO0FBQUEsSUEyQ2xCLENBQUMsQ0FMQyxrQkFLa0IsTUFBTSxFQUFFLEVBQUUsQ0FsQmhCO0FBQUEsSUFtQmQsQ0FBQyxDQU5DLGtCQU1rQixNQUFNLEVBQUUsRUFBRSxDQW5CaEIsaUJBbUJrQyxFQUFFLEVBQUUsQ0FuRG5EO0FBQUEsSUFvREQsQ0FBQyxDQVBDLGtCQU9rQixDQXBEbkI7QUFBQSxJQXFERCxDQUFDLENBUkMsa0JBUWtCLEVBQUUsR0FBRyxDQTlEeEI7QUFBQSxJQStERCxDQUFDLENBVEMsa0JBU2tCLEVBQUUsR0FBRyxDQWxDbkI7QUFBQSxJQW1DTixDQUFDLENBVkMsa0JBVWtCLEVBQUUsR0FBRyxDQTVEeEI7QUE2REcsa0JBQVk7QUFDWixjQUFRLEVBQUU7QUFDZDtBQUVBLEtBNURDLGdCQTREZ0IsQ0FBQztBQUNkLGVBQVM7QUFDYjtBQUNKO0FBR0EsVUFBTyxXQUFZO0FBQ2YsS0EvRUg7QUFnRk8sT0EzQkgsbUJBMkJ1QixDQUFDO0FBQ2pCLG9CQUFZLElBQUksTUFBTSxJQUFJO0FBRTFCLFNBQUM7QUFDRyxzQkFBWSxFQUFFO0FBQ2xCO0FBQ0o7QUFFQSxPQUFDLENBNUNILFdBNENlLENBbkNoQixtQkFtQ29DLENBUlo7QUFTakIsZ0JBQVEsRUFBRTtBQUNkO0FBQ0o7QUFDSjtBQUFBOzs7QUN0R0E7QUFjQSxHQUFDO0FBQ0csV0FBTztBQUNQLGFBQVM7QUFDVCxvQkFBZ0I7QUFDaEIsU0FBSyxJQUFJO0FBRVQsS0FBQztBQUNHLGNBQVE7QUFDUixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLG9CQUFjO0FBQ2Qsb0JBQWMsSUFBSTtBQUNsQixvQkFBYyxJQUFJO0FBQ2xCLHFCQUFlLElBQUk7QUFDbkIsZUFBUyxJQUFJO0FBRWIsT0FBQztBQUNHLHNCQUFjLElBQUk7QUFDbEIsbUNBQTJCLElBQUk7QUFDL0IsaUNBQXlCLElBQUk7QUFDakM7QUFFQSxPQUFDO0FBQ0csc0JBQWMsSUFBSTtBQUNsQixpQ0FBeUIsSUFBSTtBQUM3QiwrQkFBdUIsSUFBSTtBQUMvQjtBQUNKO0FBRUEsS0FBQztBQUNHLGNBQVE7QUFDUixnQkFBVTtBQUNWLGNBQVE7QUFFUixPQUFDLENBQUM7QUFBQSxNQUNGLENBQUMsQ0FEQyxpQkFDaUI7QUFDZixnQkFBUTtBQUNaO0FBQ0o7QUFHQSxNQUFFLENBWkQ7QUFhRyxlQUFTO0FBQ1QsbUJBQWE7QUFDYixXQUFLLElBQUk7QUFDVCxlQUFTLElBQUk7QUFDYixrQkFBWTtBQUNaLGFBQU8sSUFBSTtBQUNYLGNBQVEsRUFBRTtBQUNWLHFCQUFlLElBQUk7QUFDbkIsaUJBQVcsSUFBSTtBQUNmLG1CQUFhLElBQUk7QUFDakIsMkJBQXFCO0FBQ3JCLG1CQUFhO0FBRWIsZUFBUyxFQUFFO0FBQ1g7QUFBQSxRQUFZLFdBQVcsSUFBSSxrQ0FBa0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxrQ0FBa0M7QUFBQSxRQUN2RyxjQUFjLElBQUksa0NBQWtDO0FBQUEsUUFBRSxXQUFXLElBQUk7QUFFekU7QUFDSSxpQkFBUztBQUNULGNBQU0sRUFBRSxFQUFFO0FBQ1YsaUJBQVM7QUFDVCxpQkFBUyxFQUFFO0FBQ1gsZUFBTztBQUNQLHlCQUFpQjtBQUNyQjtBQUVBLFVBQUksQ0FBQyxpQkFBaUIsQ0FBQztBQUNuQixlQUFPLElBQUk7QUFDWCxtQkFBVyxJQUFJO0FBQ25CO0FBR0EsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDYixtQkFBVyxJQUFJO0FBQ2YsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDLENBQUMsZUFBZSxDQU5oQjtBQU9HLGlCQUFTLElBQUk7QUFDakI7QUFHQSxPQUFDLEtBQUssQ0FMSixnQkFLcUIsQ0FYdEIsdUJBVzhDLEtBQUs7QUFDaEQsZUFBTyxHQUFHO0FBQ2Q7QUFFQSxPQUFDLEtBQUssQ0F2REosaUJBdURzQjtBQUFBLE1BQ3hCLENBQUMsQ0FBQztBQUFBLE1BQ0YsQ0FBQyxLQUFLLENBekRKLGlCQXlEc0I7QUFBQSxNQUN4QixDQUFDLEtBQUssQ0ExREosaUJBMERzQixLQUFLLEVBQUUsQ0FBQztBQUM1QixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxLQUFLLENBL0RKLGlCQStEc0IsT0FBTyxJQUFJLENBN0I5QixpQkE2QmdELENBN0I5QjtBQUFBLE1BOEJ2QixDQUFDLENBUkMsY0FRYyxJQUFJLENBOUJmLGlCQThCaUMsQ0E5QmY7QUFBQSxNQStCdkIsQ0FBQyxLQUFLLENBakVKLGlCQWlFc0IsZUFBZSxJQUFJLENBL0J0QyxpQkErQndELENBL0J0QztBQUFBLE1BZ0N2QixDQUFDLEtBQUssQ0FsRUosaUJBa0VzQixLQUFLLEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxDQWhDL0MsaUJBZ0NpRSxDQWhDL0M7QUFpQ25CLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxLQUFLLENBdEVKLGlCQXNFc0IsT0FBTyxDQTlCOUI7QUFBQSxNQStCRCxDQUFDLENBZkMsY0FlYyxDQS9CZjtBQUFBLE1BZ0NELENBQUMsS0FBSyxDQXhFSixpQkF3RXNCLGVBQWUsQ0FoQ3RDO0FBQUEsTUFpQ0QsQ0FBQyxLQUFLLENBekVKLGlCQXlFc0IsS0FBSyxFQUFFLENBQUMsZ0JBQWdCLENBakMvQztBQWtDRyxlQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsS0FBQztBQUNHLGdCQUFVO0FBQ1YsZ0JBQVU7QUFDVixlQUFTO0FBQ1QsZUFBUztBQUNULGNBQVE7QUFDUixrQkFBWTtBQUNaLGFBQU87QUFDUCxjQUFRLEVBQUU7QUFDZDtBQUVBLEtBQUM7QUFDRyxrQkFBWTtBQUNaLGVBQVM7QUFDVCxjQUFRO0FBRVIsT0FMSDtBQU1PLGlCQUFTO0FBQ1QsOEJBQXNCLElBQUk7QUFDMUIsZ0JBQVE7QUFDWjtBQUNKO0FBRUEsS0FBQztBQUNHLGNBQVE7QUFDUixlQUFTO0FBQ2I7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNULHVCQUFpQjtBQUNqQixjQUFRO0FBQ1IsZ0JBQVU7QUFDZDtBQUVBLEtBbkNDLG9CQW1Db0IsQ0FQcEI7QUFRRyxlQUFTO0FBQ1QsbUJBQWE7QUFDYixXQUFLLElBQUk7QUFDVCxlQUFTLElBQUk7QUFDYixhQUFPLElBQUk7QUFDWCxjQUFRLEVBQUU7QUFDVixxQkFBZSxJQUFJO0FBQ25CLG1CQUFhO0FBQ2IsMkJBQXFCO0FBQ3JCLG1CQUFhO0FBQ2IsZ0JBQVU7QUFDVixxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksa0NBQWtDO0FBQUEsUUFBRSxNQUFNLElBQUksa0NBQWtDO0FBQUEsUUFDdkcsY0FBYyxJQUFJLGtDQUFrQztBQUFBLFFBQUUsV0FBVyxJQUFJO0FBRXpFLFFBQUUsSUFBSSxJQUFJLENBL0ZMLGlCQStGdUIsQ0EvRkw7QUFnR25CLGVBQU8sSUFBSTtBQUNYLG1CQUFXLElBQUk7QUFDbkI7QUFHQSxRQUFFLENBQUM7QUFDQyxpQkFBUyxJQUFJO0FBQ2IsbUJBQVcsSUFBSTtBQUNmLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxLQUFLLEVBQUUsQ0FBQyxlQUFlLENBQUMscUJBQXVCLEVBQUUsQ0FOL0M7QUFPQyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQyxLQUFLLEtBQUssRUFBRSxDQUpKLGVBSW9CLENBQUMsc0JBQXdCLEVBQUUsQ0FWckQsd0JBVThFLEtBQUs7QUFDbEYsZUFBTyxHQUFHO0FBQ2Q7QUFFQSxPQVJTO0FBU0wsaUJBQVM7QUFDVCxtQkFBVyxJQUFJO0FBQ2YscUJBQWEsSUFBSTtBQUNyQjtBQUdBLE9BQUMsS0FBSyxDQTVKSixpQkE0SnNCO0FBQUEsTUFDeEIsQ0FBQyxDQXJHQztBQUFBLE1Bc0dGLENBQUMsS0FBSyxFQUFFLENBQUM7QUFBQSxNQUNULENBQUMsS0FBSyxDQS9KSixpQkErSnNCO0FBQ3BCLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQXZCUyxlQXVCTyxDQU5QO0FBT0wsaUJBQVMsRUFBRTtBQUNmO0FBRUEsT0FBQyxLQUFLLENBeEtKLGlCQXdLc0IsT0FBTyxJQUFJLElBQUksQ0F0SWxDLGlCQXNJb0QsQ0F0SWxDO0FBQUEsTUF1SXZCLENBQUMsQ0FqSEMsY0FpSGMsSUFBSSxJQUFJLENBdkluQixpQkF1SXFDLENBdkluQjtBQUFBLE1Bd0l2QixDQUFDLEtBQUssRUFBRSxDQVpDLG9CQVlvQixJQUFJLElBQUksQ0F4SWhDLGlCQXdJa0QsQ0F4SWhDO0FBQUEsTUF5SXZCLENBQUMsS0FBSyxDQTNLSixpQkEyS3NCLGVBQWUsSUFBSSxJQUFJLENBekkxQyxpQkF5STRELENBekkxQztBQTBJbkIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDLEtBQUssQ0EvS0osaUJBK0tzQixPQUFPLElBQUksQ0FBQztBQUFBLE1BQ3BDLENBQUMsQ0F4SEMsY0F3SGMsSUFBSSxDQURnQjtBQUFBLE1BRXBDLENBQUMsS0FBSyxFQUFFLENBbkJDLG9CQW1Cb0IsSUFBSSxDQUZHO0FBQUEsTUFHcEMsQ0FBQyxLQUFLLENBbExKLGlCQWtMc0IsZUFBZSxJQUFJLENBSFA7QUFJaEMsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDLEtBQUssQ0F0TEosaUJBc0xzQixPQUFPLENBekN0QjtBQUFBLE1BMENULENBQUMsQ0EvSEMsY0ErSGMsQ0ExQ1A7QUFBQSxNQTJDVCxDQUFDLEtBQUssRUFBRSxDQTFCQyxvQkEwQm9CLENBM0NwQjtBQUFBLE1BNENULENBQUMsS0FBSyxDQXpMSixpQkF5THNCLGVBQWUsQ0E1QzlCO0FBNkNMLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFDSjtBQUFBOzs7QUM3T0E7QUFNQSxHQUFDO0FBQ0csY0FBVTtBQUNkO0FBRUEsR0FBQyxpQkFBaUIsQ0FBQztBQUFBLEVBQ25CLENBQUMsbUJBQW1CLENBREQ7QUFFZixNQUFFLEtBQUs7QUFBQSxJQUNQLEVBQUUsS0FBSztBQUNILGVBQVM7QUFDYjtBQUNKO0FBRUEsR0FSbUI7QUFTZixLQUFDO0FBQ0csY0FBUTtBQUVSLGlCQUFXO0FBQ1gsYUFBTyxJQUFJO0FBQ1gscUJBQWUsSUFBSTtBQUNuQixxQkFBZTtBQUVmLE9BQUM7QUFDRyxpQkFBUyxJQUFJLHNCQUFzQixJQUFJLHNCQUFzQixJQUFJO0FBQ2pFLHdCQUFnQixJQUFJO0FBQ3BCLG9CQUFZLElBQUk7QUFDcEI7QUFDSjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDLENBM0JKLG9CQTJCeUIsQ0FKckI7QUFLRyxlQUFTLElBQUk7QUFDakI7QUFDSjtBQUVBLEdBQUM7QUFFRyxLQUFDLENBQUM7QUFDRSxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGVBQVMsSUFBSTtBQUNiLGNBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsY0FBUTtBQUNSLGFBQU87QUFFUCxpQkFBVztBQUNYLGtCQUFZLElBQUk7QUFDaEIscUJBQWUsSUFBSTtBQUN2QjtBQUVBLEtBQUMsQ0FBQztBQUNFLGtCQUFZLElBQUk7QUFDaEIsa0JBQVk7QUFDaEI7QUFRQSxLQUFDO0FBQ0csY0FBUSxJQUFJO0FBQ1osa0JBQVk7QUFDWixlQUFTO0FBQ1QsY0FBUTtBQUNSLGdCQUFVO0FBQ1YsaUJBQVc7QUFDWCxtQkFBYTtBQUNiLHFCQUFlLElBQUk7QUFDbkIsd0JBQWtCLElBQUk7QUFDdEI7QUFBQSxRQUNJO0FBQUEsVUFBZ0IsR0FBRyxNQUFNO0FBQUEsVUFBRSxZQUFZLElBQUk7QUFBQSxVQUFFLElBQUksdUNBQXVDLElBQUk7QUFBQSxVQUN4RixJQUFJLHVDQUF1QyxJQUFJO0FBQUEsVUFBRSxZQUFZLEtBQUs7QUFBQSxRQUN0RTtBQUFBLFVBQWdCLEdBQUcsTUFBTTtBQUFBLFVBQUUsWUFBWSxJQUFJO0FBQUEsVUFBRSxJQUFJLHlDQUF5QyxJQUFJO0FBQUEsVUFDMUYsSUFBSSx5Q0FBeUMsSUFBSTtBQUFBLFVBQUUsWUFBWSxLQUFLO0FBQUEsUUFDeEU7QUFBQSxVQUFnQixHQUFHLE1BQU07QUFBQSxVQUFFLFlBQVksSUFBSTtBQUFBLFVBQUUsSUFBSSx5Q0FBeUM7QUFDOUY7QUFBQSxRQUFpQixRQUFRLElBQUk7QUFBQSxRQUFFLFFBQVEsSUFBSTtBQUFBLFFBQUUsS0FBSztBQUNsRCx5QkFBbUI7QUFDdkI7QUFFQSxLQUFDO0FBQ0csa0JBQVksSUFBSTtBQUNoQixpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNyQjtBQUNKO0FBRUEsR0FBQyxRQUFRLENBdEZVO0FBQUEsRUF1Rm5CLENBREMsUUFDUSxDQXZGVSxXQXVGRTtBQUNqQixXQUFPO0FBQ1g7QUFBQTs7O0FDbkdBO0FBS0EsR0FBQztBQUNHLGFBQVM7QUFFVCxNQUFFO0FBQ0UsYUFBTztBQUNQLGVBQVM7QUFDVCxzQkFBZ0I7QUFDcEI7QUFFQSxLQUFDO0FBQ0csY0FBUTtBQUNSLHNCQUFnQjtBQUNoQixlQUFTLEVBQUUsSUFBSTtBQUVmO0FBQ0ksd0JBQWdCO0FBQ3BCO0FBRUEsT0FBQztBQUNHLHVCQUFlLElBQUk7QUFDdkI7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBR0EsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFDSjtBQUdBLEtBdkRLO0FBd0RELGVBQVM7QUFDYjtBQUVBLEtBQUM7QUFDRyxhQUFPO0FBQ1g7QUFHQSxLQUFDO0FBQ0csa0JBQVk7QUFDWixrQkFBWSxnQkFBZ0IsSUFBSSxnQ0FBZ0MsRUFBRSxJQUFJLGlDQUFpQyxFQUFFLElBQUk7QUFDN0csY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixxQkFBZSxFQUFFO0FBQ2pCLGFBQU8sSUFBSTtBQUNYLGVBQVMsSUFBSTtBQUNiLG1CQUFhLElBQUk7QUFDakIscUJBQWUsSUFBSSwyQkFBMkIsSUFBSSwyQkFBMkIsRUFBRTtBQUNuRjtBQUVBO0FBQ0ksYUFBTztBQUNQLHVCQUFpQjtBQUNyQjtBQUVBLEtBQUM7QUFDRyxhQUFPO0FBQ1Asa0JBQVk7QUFDaEI7QUFHQSxLQUFDO0FBQ0csZ0JBQVU7QUFDVixjQUFRO0FBQ1IsZUFBUztBQUVULE9BWEg7QUFZTyx1QkFBZSxJQUFJO0FBQ25CLHdCQUFnQixJQUFJO0FBQ3BCLDhCQUFzQixLQUFLLEVBQUUsRUFBRSxJQUFJLHlCQUF5QixFQUFFLElBQUk7QUFDbEUsdUJBQWUsSUFBSTtBQUN2QjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2Isa0JBQVU7QUFDViw0QkFBb0IsSUFBSTtBQUN4QixhQUFLO0FBQ0wsb0JBQVksS0FBSyxHQUFHLEVBQUUsSUFBSSxlQUFlLEVBQUUsRUFBRSxFQUFFLElBQUksMkJBQTJCLEVBQUU7QUFDaEYsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLEtBQUM7QUFDRyx1QkFBaUI7QUFDakIsY0FBUTtBQUNSLGdCQUFVO0FBQ1YsY0FBUTtBQUNSLGFBQU87QUFDUCxjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsZUFBUyxJQUFJO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixxQkFBZSxJQUFJO0FBRW5CO0FBQ0ksdUJBQWU7QUFDbkI7QUFDSjtBQUVBLEtBOURDLG1CQThEbUIsRUFBRSxDQWxCckI7QUFtQkcsOEJBQXdCO0FBQ3hCLCtCQUF5QjtBQUM3QjtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1o7QUFFQSxLQTNCQyxnQkEyQmdCLENBSmhCO0FBS0csZUFBUyxJQUFJO0FBQ2IsY0FBUSxFQUFFO0FBQ1YsY0FBUTtBQUNSLGFBQU8sSUFBSTtBQUNYLGlCQUFXLElBQUk7QUFDZixtQkFBYSxJQUFJO0FBQ2pCLHFCQUFlLElBQUk7QUFDbkI7QUFBQSxRQUFZLFdBQVcsSUFBSSxnQ0FBZ0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxnQ0FBZ0M7QUFBQSxRQUNuRyxhQUFhLElBQUksZ0NBQWdDO0FBQUEsUUFBRSxXQUFXLElBQUk7QUFFdEUsUUFBRSxDQWZMO0FBZ0JPLG9CQUFZLElBQUk7QUFDcEI7QUFFQSxPQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUI7QUFBQSxNQUM1QyxDQUFDLENBQUM7QUFDRSxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxDQU5NO0FBT0gsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDWCxxQkFBYSxJQUFJO0FBQ3JCO0FBRUEsT0FBQyxDQVpNLGlCQVlZLENBQUM7QUFDaEIsb0JBQVksSUFBSTtBQUNwQjtBQUdBLE9BQUMsQ0FBQztBQUNFLGlCQUFTLElBQUksc0JBQXNCLElBQUksc0JBQXNCLElBQUk7QUFDakUsd0JBQWdCLEtBQUssR0FBRyxFQUFFLElBQUk7QUFDOUIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUM7QUFDRywyQkFBbUIsSUFBSTtBQUMzQjtBQUNKO0FBRUEsS0FBQyxDQUFDO0FBQ0UsUUFBRTtBQUNFLGVBQU87QUFDUCxpQkFBUztBQUNULHdCQUFnQjtBQUNwQjtBQUVBLE9BbE1IO0FBbU1PLG9CQUFZO0FBQ1osZ0JBQVE7QUFDUixpQkFBUyxJQUFJLDJCQUEyQjtBQUV4QyxTQTlMSDtBQStMTyxtQkFBUztBQUNULGtCQUFRO0FBQ1IsNkJBQW1CLElBQUk7QUFDM0I7QUFDSjtBQUNKO0FBT0EsS0FBQyxDQUFDO0FBQ0UsYUFBTztBQUVQO0FBQ0ksb0JBQVk7QUFDaEI7QUFFQSxPQTNOSCxtQkEyTnVCO0FBQ2hCLGVBQU87QUFDWDtBQUVBLE9BMUdIO0FBMkdPLGVBQU87QUFDWDtBQUNKO0FBRUEsS0FBQyxDQWhCQyxxQkFnQnFCLEtBQUssQ0F6QzFCO0FBMENFLGVBQVM7QUFDVCw2QkFBdUIsSUFBSSxJQUFJO0FBRS9CLE9BQUMsS0FBSyxFQUFFLENBQUM7QUFDTCwrQkFBdUIsS0FBSyxJQUFJLElBQUk7QUFDeEM7QUFFQSxPQUFDLEtBQUssRUFBRSxDQUFDO0FBQ0wsK0JBQXVCLElBQUksSUFBSSxJQUFJO0FBQ3ZDO0FBRUEsT0FBQyxLQUFLLEVBQUUsQ0FSQywyQkFRMkIsS0FBSyxFQUFFLENBSmxDO0FBS0wsK0JBQXVCLEtBQUssSUFBSSxJQUFJLElBQUk7QUFDNUM7QUFFQSxRQUFFO0FBQ0UsaUJBQVM7QUFDYjtBQUdBLFFBQUUsQ0F6UEw7QUEwUE8saUJBQVM7QUFDVCx3QkFBZ0I7QUFDaEIseUJBQWlCO0FBQ2pCLGdCQUFRO0FBQ1o7QUFDSjtBQUVBLEtBQUMsQ0E3Q0MscUJBNkNxQixDQXRFckI7QUF1RUUsZUFBUztBQUVULFFBQUU7QUFDRSxpQkFBUztBQUNiO0FBR0EsUUFBRSxPQUFPLENBelFaO0FBMFFPLGlCQUFTO0FBQ2I7QUFDSjtBQUNKO0FBRUEsR0ExSkssZUEwSlcsQ0FBQztBQUFBLEVBQ2pCLENBM0pLLGVBMkpXLENBQUM7QUFDYixhQUFTO0FBQ2I7QUFFQSxHQXBHVTtBQXFHTixhQUFTO0FBQ2I7QUFHQSxVQUFPLFdBQVk7QUFDZixLQW5TSCxVQW1TYyxDQXRFVDtBQXVFRSxRQUFFO0FBQ0UscUJBQWEsRUFBRSxFQUFFO0FBQ3JCO0FBRUEsUUFBRSxHQUFHLENBQUM7QUFDRixpQkFBUztBQUNiO0FBR0EsT0FwU0g7QUFxU08sb0JBQVk7QUFDWixnQkFBUTtBQUNSLGlCQUFTLElBQUksMkJBQTJCO0FBRXhDO0FBQ0ksbUJBQVM7QUFDVCxpQkFBTztBQUNYO0FBRUEsU0FyU0g7QUFzU08sc0JBQVksSUFBSTtBQUNoQiw2QkFBbUIsSUFBSTtBQUMzQjtBQUVBLFNBMVNILFFBMFNZO0FBQ0wsNkJBQW1CO0FBQ3ZCO0FBRUEsU0E5U0gsU0E4U2EsQ0ExUmI7QUEyUk8sbUJBQVMsSUFBSTtBQUNqQjtBQUVBLFNBbFRILFNBa1RhLENBMVJiO0FBMlJPLG1CQUFTLElBQUk7QUFDakI7QUFFQSxTQXRUSCxTQXNUYSxDQTFSYjtBQTJSTyxtQkFBUyxJQUFJO0FBQ2pCO0FBRUEsU0ExVEgsU0EwVGEsQ0ExUmI7QUEyUk8sbUJBQVMsSUFBSTtBQUNqQjtBQUNKO0FBQ0o7QUFDSjtBQUdBLEdBcFZDLFdBb1ZXLENBdE5QLGVBc051QjtBQUN4QixhQUFTLElBQUksc0JBQXNCLElBQUksc0JBQXNCLElBQUk7QUFDakUsb0JBQWdCLEtBQUssR0FBRyxFQUFFLElBQUk7QUFDOUIsZ0JBQVksSUFBSTtBQUNwQjtBQUFBOzs7QUM3VkE7QUFNQSxHQUFDO0FBQ0csaUJBQWEsSUFBSTtBQUNqQixvQkFBZ0IsSUFBSTtBQUVwQixjQUFVO0FBQ1YsY0FBVTtBQUNWLGdCQUFZO0FBQ1osWUFBUSxJQUFJO0FBQ1osZ0JBQVksSUFBSTtBQUNoQixtQkFBZSxJQUFJO0FBRW5CLEtBQUM7QUFDRyxjQUFRLEVBQUU7QUFDVixrQkFBWSxJQUFJO0FBQ2hCLHFCQUFlLElBQUk7QUFDdkI7QUFFQSxLQUFDO0FBQ0csYUFBTyxJQUFJO0FBQ1gsaUJBQVcsSUFBSTtBQUNmLG1CQUFhLElBQUk7QUFDakIsbUJBQWEsSUFBSTtBQUVqQiw0QkFBc0I7QUFDMUI7QUFFQSxLQUFDLENBQUM7QUFDRSxtQkFBYSxJQUFJO0FBQ2pCLHNCQUFnQixJQUFJO0FBQ3hCO0FBRUEsS0FBQyxDQUFDO0FBQ0UsbUJBQWEsSUFBSTtBQUNqQixzQkFBZ0IsSUFBSTtBQUN4QjtBQUVBLEtBQUMsQ0FBQztBQUNFLG1CQUFhLElBQUk7QUFDakIsc0JBQWdCLElBQUk7QUFDeEI7QUFFQSxLQUFDLENBQUM7QUFDRSxtQkFBYSxJQUFJO0FBQ2pCLHNCQUFnQixJQUFJO0FBQ3hCO0FBQ0o7QUFNQSxHQUFDLGtCQUFrQixDQW5EbEI7QUFvREcsZ0JBQVksVUFBVSxHQUFHLElBQUksRUFBRSxJQUFJLG9CQUFvQixFQUFFLFlBQVk7QUFFckUsS0FBQyxLQUFLLENBNUJKLHVCQTRCNEIsQ0F2QjVCLG9CQXVCaUQsQ0FsQmpELHVCQWtCeUUsQ0FiekU7QUFjRSxtQkFBYSxJQUFJO0FBQ2pCLHNCQUFnQixJQUFJO0FBQ3hCO0FBQ0o7QUFFQSxHQUFDO0FBRUcsS0FuREM7QUFvREcsY0FBUTtBQUNSLGFBQU87QUFDUCxnQkFBVTtBQUNWLGVBQVM7QUFDVCxnQkFBVTtBQUNkO0FBRUEsS0FyREM7QUFzREcsa0JBQVk7QUFDWixjQUFRO0FBQ1IsYUFBTztBQUNQLGdCQUFVO0FBQ1YsZUFBUztBQUNULG1CQUFhO0FBQ2pCO0FBQ0o7QUFNQSxHQUFDLDRCQUE0QixDQXpFeEI7QUEwRUQsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLGVBQVM7QUFDVCxnQkFBVTtBQUNWLHdCQUFrQjtBQUNsQixXQUFLO0FBQ0wsWUFBTTtBQUNOLGNBQVE7QUFDUixhQUFPO0FBQ1Asd0JBQWtCLEtBQUs7QUFFdkIsaUJBQVcsT0FBTztBQUNsQixtQkFBYTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxpQkFBVyxpQ0FBaUMsS0FBSyxhQUFhLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU87QUFDN0Y7QUFFQSxLQUFDO0FBQ0csaUJBQVcsdUNBQXVDLEtBQUssYUFBYSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHO0FBQzFGLHVCQUFpQjtBQUNyQjtBQUlBLFlBQU8sd0JBQXlCO0FBQzVCLE9BQUM7QUFDRyxtQkFBVztBQUNYLG1CQUFXO0FBQ1gsaUJBQVM7QUFDYjtBQUVBLE9BQUM7QUFDRyxpQkFBUztBQUNiO0FBQ0o7QUFDSjtBQUdBLGFBeEJtQjtBQXlCZjtBQUNJLGlCQUFXLFdBQVcsTUFBTSxPQUFPO0FBQ3ZDO0FBQ0E7QUFDSSxpQkFBVyxXQUFXLE1BQU0sT0FBTztBQUN2QztBQUNBO0FBQ0ksaUJBQVcsV0FBVyxNQUFNLE9BQU87QUFDdkM7QUFDSjtBQUdBLGFBakNtQjtBQWtDZjtBQUNJLGlCQUFXLFdBQVcsT0FBTyxPQUFPO0FBQ3hDO0FBQ0E7QUFDSSxpQkFBVyxXQUFXLE1BQU0sT0FBTztBQUN2QztBQUNBO0FBQ0ksaUJBQVcsV0FBVyxNQUFNLE9BQU87QUFDdkM7QUFDSjtBQUFBOzs7QUMxSkE7QUFPQSxHQUFDO0FBQUEsRUFDRCxDQUFDO0FBQ0csYUFBUztBQUNULFlBQVE7QUFFUjtBQUNJLGVBQVM7QUFDVCx1QkFBaUI7QUFDckI7QUFDSjtBQUVBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsaUJBQWE7QUFDYixTQUFLLElBQUk7QUFFVCxLQUFDLENBQUMsaUJBQWlCLENBaEJ0QjtBQUFBLElBaUJHLENBQUMsQ0FBQyxpQkFBaUIsQ0FqQnRCO0FBQUEsSUFrQkcsQ0FBQyxDQURDLGlCQUNpQixDQWpCdEI7QUFBQSxJQWtCRyxDQUFDLENBSEMsaUJBR2lCLENBbEJ0QjtBQW1CTyxjQUFRO0FBQ1o7QUFFQSxLQXRCSDtBQUFBLElBdUJHLENBeEJIO0FBeUJPLHFCQUFlO0FBQ2YscUJBQWU7QUFDZixrQkFBWSxjQUFjLElBQUksK0JBQStCLEVBQUUsV0FBVyxJQUFJO0FBRTlFLE9BQUMsQ0FBQztBQUNFLGlCQUFTLElBQUksNkJBQTZCLElBQUksNkJBQTZCLElBQUk7QUFDL0Usd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBO0FBQ0ksb0JBQVk7QUFDWixxQkFBYTtBQUNiLG1CQUFXLElBQUk7QUFDZixxQkFBYTtBQUNiLGdCQUFRLElBQUk7QUFDWixlQUFPLElBQUk7QUFDWCxvQkFBWSxNQUFNLElBQUk7QUFDMUI7QUFDSjtBQUVBLEtBN0NILGdCQTZDb0I7QUFDYixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDLEtBQUssQ0F0Q0osa0JBc0N1QixDQXJDdkIsa0JBcUMwQyxDQXJEL0MsZUFxRCtELENBQUMsc0JBQXNCO0FBQUEsSUFDbkYsQ0FBQyxLQUFLLENBdkNKLGtCQXVDdUIsQ0F0Q3ZCLGtCQXNDMEMsQ0F0RC9DLGdCQXNEZ0UsQ0FBQztBQUMxRCxhQUFPLElBQUk7QUFDZjtBQUdBLEtBNURILGNBNERrQjtBQUNYLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUMsS0FBSyxDQXBESixrQkFvRHVCLENBbkR2QixrQkFtRDBDLENBcEUvQyxjQW9FOEQsQ0FBQztBQUN4RCxhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsaUJBQWlCO0FBQ2QsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQUpDLGlCQUlpQixDQVpqQjtBQWFHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUMsQ0FBQyxjQUFjLENBaEZuQixjQWdGa0M7QUFDM0IsYUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLEdBQUMsa0JBQWtCLENBckZsQixjQXFGaUM7QUFBQSxFQUNsQyxDQURDLGtCQUNrQixDQWRkLGlCQWNnQztBQUNqQyxXQUFPLElBQUk7QUFDZjtBQUFBOzs7QUMvRkE7QUFNQSxHQUFDO0FBQ0csY0FBVTtBQUNWLFlBQVE7QUFDUixzQkFBa0I7QUFDbEIsYUFBUztBQUNULGlCQUFhO0FBQ2IscUJBQWlCO0FBQ2pCLFlBQVE7QUFDUixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUk7QUFDWixtQkFBZTtBQUNmLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixnQkFBWSxJQUFJO0FBQ2hCLHFCQUFpQjtBQUNqQixtQkFBZTtBQUNmO0FBQUEsTUFBWSxXQUFXLElBQUksK0JBQStCO0FBQUEsTUFBRSxNQUFNLElBQUksK0JBQStCO0FBQUEsTUFDakcsYUFBYSxJQUFJLCtCQUErQjtBQUFBLE1BQUUsY0FBYyxJQUFJLCtCQUErQjtBQUFBLE1BQ25HLFdBQVcsSUFBSTtBQUVuQixLQUFDO0FBQ0csa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxvQkFBYyxJQUFJO0FBQ3RCO0FBRUEsS0FBQztBQUNHLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsb0JBQWMsSUFBSTtBQUN0QjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUksNkJBQTZCLElBQUksNkJBQTZCLElBQUk7QUFDL0Usc0JBQWdCLElBQUk7QUFDeEI7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2IsaUJBQVcsSUFBSTtBQUNmLGFBQU87QUFDWDtBQUdBLEtBQUMsQ0FBQztBQUNFLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSTtBQUVaLE9BWEg7QUFZTyxtQkFBVyxJQUFJO0FBQ25CO0FBQ0o7QUFDSjtBQUVBLEdBVk07QUFXRixjQUFVO0FBQ1YseUJBQXFCO0FBQ3pCO0FBQUE7OztBQ2hFQTtBQUdBLEdBQUMsUUFBUSxDQUFDO0FBQ04sV0FBTztBQUNYO0FBQUE7OztBQ0xBO0FBU0EsR0FBQztBQUNHLGFBQVM7QUFDVCxXQUFPO0FBQ1AsWUFBUTtBQUNSLG9CQUFnQjtBQUNoQixZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGNBQVU7QUFDVixnQkFBWSxJQUFJO0FBQ2hCLFdBQU8sSUFBSTtBQUNYLG1CQUFlLElBQUk7QUFDbkIsZ0JBQVksSUFBSTtBQUNoQixtQkFBZTtBQUNmO0FBQUEsTUFBWSxXQUFXLElBQUksb0NBQW9DO0FBQUEsTUFBRSxNQUFNLElBQUksb0NBQW9DO0FBQUEsTUFDM0csYUFBYSxJQUFJLG9DQUFvQztBQUFBLE1BQUUsY0FBYyxJQUFJLG9DQUFvQztBQUFBLE1BQzdHLFdBQVcsSUFBSTtBQUVuQixLQUFDO0FBQ0csZUFBUztBQUNULGFBQU87QUFDUCxjQUFRLEVBQUU7QUFDVixjQUFRO0FBQ1IsbUJBQWE7QUFDYixnQkFBVTtBQUNWLHFCQUFlO0FBR2YsT0FBQztBQUNHLGlCQUFTO0FBQ1QsaUJBQVM7QUFDVCxvQkFBWTtBQUNaLGtCQUFVO0FBQ1YsZUFBTztBQUNQLGNBQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN4QjtBQUNKO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSSwyQkFBMkIsSUFBSTtBQUM1QywwQkFBb0IsSUFBSTtBQUN4QixlQUFTO0FBQ1Qsa0JBQVk7QUFDWixxQkFBZSxJQUFJO0FBRW5CLE9BM0JIO0FBNEJPLGlCQUFTO0FBQ1Qsb0JBQVk7QUFDWixlQUFPLElBQUk7QUFDWCxtQkFBVyxJQUFJO0FBQ2YscUJBQWEsSUFBSTtBQUNyQjtBQUNKO0FBRUEsS0FBQztBQUNHLGNBQVEsRUFBRTtBQUNWLGNBQVE7QUFDUixjQUFRO0FBQ1IsZ0JBQVU7QUFDVixXQUFLO0FBQ0wsd0JBQWtCO0FBQ2xCLGVBQVM7QUFDVCxlQUFTO0FBQ1QsbUJBQWE7QUFDYix1QkFBaUI7QUFDakIsYUFBTyxJQUFJO0FBQ1gsa0JBQVk7QUFDWixhQUFPLElBQUk7QUFDWCwrQkFBeUIsSUFBSTtBQUM3Qiw2QkFBdUIsSUFBSTtBQUUzQixPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNiLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFFQSxLQUFDLENBQUMsaUJBQWlCLENBdkJsQjtBQUFBLElBd0JELENBQUMsQ0FEQyxpQkFDaUIsQ0E1RGxCO0FBNkRHLGNBQVE7QUFDWjtBQUVBLEtBQUMsQ0FBQztBQUFBLElBQ0YsQ0FBQyxLQUFLLENBTkosaUJBTXNCO0FBQ3BCLG9CQUFjLElBQUk7QUFDdEI7QUFFQSxLQUFDLENBQUM7QUFDRSxvQkFBYyxJQUFJO0FBQ2xCLGVBQVMsSUFBSSxrQ0FBa0MsSUFBSSxrQ0FBa0MsSUFBSTtBQUN6RixzQkFBZ0IsSUFBSTtBQUNwQixrQkFBWSxJQUFJO0FBQ3BCO0FBR0EsS0FBQyxDQUFDO0FBQUEsSUFDRixDQUFDLENBREMsYUFDYSxJQUFJLFFBQVEsQ0FUekI7QUFVRSxvQkFBYyxJQUFJO0FBQ3RCO0FBRUEsS0FBQyxDQXZCQztBQXdCRSxlQUFTO0FBQ1Qsa0JBQVksSUFBSTtBQUVoQixPQXRGSDtBQXVGTyxlQUFPLElBQUk7QUFDZjtBQUNKO0FBR0EsS0FBQyxDQUFDO0FBQ0UsaUNBQTJCLElBQUk7QUFDL0IsaUNBQTJCLElBQUk7QUFDL0IsaUNBQTJCLElBQUk7QUFDbkM7QUFFQSxLQUFDLENBQUM7QUFDRSxpQ0FBMkIsSUFBSTtBQUMvQixpQ0FBMkIsSUFBSTtBQUMvQixpQ0FBMkIsSUFBSTtBQUNuQztBQUVBLEtBQUMsQ0FaQyx3QkFZd0IsQ0FwRXpCLDZCQW9FdUQsQ0FuRG5EO0FBQUEsSUFvREwsQ0FBQyxDQVBDLHdCQU93QixDQXJFekIsNkJBcUV1RCxDQXBEbkQ7QUFxREQsaUJBQVcsSUFBSTtBQUNuQjtBQU9BLEtBQUMsdUNBQXVDLENBQUM7QUFDckMsZUFBUztBQUNULGlCQUFXO0FBQ1gsbUJBQWE7QUFDYixlQUFTLEtBQUssSUFBSSwyQkFBMkIsRUFBRTtBQUMvQyxrQkFBWSxLQUFLLEVBQUUsRUFBRSxJQUFJLDJCQUEyQixFQUFFLElBQUksNEJBQTRCLEVBQUUsSUFBSTtBQUM1RixlQUFTLEtBQUssSUFBSSwyQkFBMkIsRUFBRSxHQUFHLEtBQUssSUFBSSwyQkFBMkIsRUFBRTtBQUN4RiwwQkFBb0IsSUFBSTtBQUN4QixrQkFBWTtBQUNaLGNBQVEsRUFBRTtBQUNWLGtCQUFZO0FBQ1osZUFBUyxFQUFFO0FBQ2Y7QUFHQSxLQWZDLHdDQWV3QyxDQUFDO0FBQ3RDLGFBQU8sSUFBSTtBQUNYLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQyxDQXpEQyxjQXlEYyxDQXBCZix3Q0FvQndELENBTGY7QUFNdEMsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQXhCQyx3Q0F3QndDLENBQUM7QUFDdEMscUJBQWUsS0FBSyxJQUFJLDJCQUEyQixFQUFFO0FBQ3JELHNCQUFnQjtBQUNoQixjQUFRO0FBQ1IseUJBQW1CLEtBQUssSUFBSSwyQkFBMkIsRUFBRTtBQUN6RCxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLHFCQUFlLElBQUk7QUFFbkIsT0FBQztBQUNHLHVCQUFlO0FBQ2Ysd0JBQWdCLEtBQUssSUFBSSxlQUFlLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJO0FBQzFELG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ3JCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQUFDO0FBQ0csb0JBQVksS0FBSyxHQUFHLEVBQUUsSUFBSSxlQUFlLEVBQUU7QUFDM0Msa0JBQVU7QUFDVixlQUFPLElBQUk7QUFDWCxtQkFBVyxJQUFJO0FBQ25CO0FBQ0o7QUFDSjtBQUVBLEdBckRLO0FBc0RELFdBQU87QUFDUCxZQUFRO0FBQ1IscUJBQWlCO0FBQ2pCLFlBQVE7QUFDUixjQUFVO0FBQ1YsZUFBVztBQUVYLEtBQUMsTUFBTTtBQUVILGVBQVMsS0FBSztBQUNkLG1CQUFhO0FBQ2IsZUFBUztBQUNULGFBQU8sSUFBSTtBQUNmO0FBQ0o7QUFFQSxHQTlDOEM7QUErQzFDLFlBQVE7QUFDUixjQUFVO0FBQ1YsaUJBQWE7QUFDYixjQUFVO0FBQ2Q7QUFFQSxHQTVDUztBQTZDTCxhQUFTO0FBQ2I7QUFFQSxHQXJDUztBQXNDTCxjQUFVO0FBQ1YsU0FBSztBQUNMLHNCQUFrQixLQUFLLElBQUksZUFBZSxFQUFFO0FBQzVDLFlBQVE7QUFDWjtBQUdBLEdBQUMsZUFBZSxDQTNOZjtBQTRORyxnQkFBWSxJQUFJO0FBRWhCLEtBQUMsQ0E5SUM7QUFBQSxJQStJRixDQUFDLEtBQUssQ0FwSkosaUJBb0pzQjtBQUNwQixrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQyxDQTlJQztBQStJRSxrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQyxDQTVKQztBQTZKRSxrQkFBWSxJQUFJO0FBQ3BCO0FBR0EsS0ExR0MsdUNBMEd1QyxDQTFHQztBQUFBLElBMkd6QyxDQTNHQyx1Q0EyR3VDLENBM0dDLFlBMkdZO0FBQ2pELGtCQUFZO0FBQ2hCO0FBQ0o7QUFFQSxHQUFDLFFBQVEsQ0FsUFI7QUFtUEcsV0FBTztBQUNYO0FBR0EsR0FBQztBQUNHLGNBQVU7QUFDVixjQUFVO0FBQ1YsYUFBUztBQUNULGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixnQkFBWSxJQUFJO0FBQ2hCLG1CQUFlLElBQUk7QUFFbkIsS0FBQztBQUNHLGdCQUFVO0FBQ1YsZ0JBQVU7QUFDVixlQUFTO0FBQ2I7QUFFQSxLQUFDO0FBQ0csY0FBUTtBQUNaO0FBRUEsS0FBQztBQUNHLGNBQVEsRUFBRTtBQUNWLGNBQVE7QUFDUix1QkFBaUI7QUFDckI7QUFFQSxLQUFDO0FBQ0csY0FBUSxFQUFFO0FBQ1YsZUFBUztBQUNULG1CQUFhO0FBQ2IsZ0JBQVU7QUFDVixrQkFBWTtBQUNaLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQztBQUNHLHVCQUFpQjtBQUNqQixhQUFPO0FBRVA7QUFBQSxNQUNBO0FBQ0ksc0JBQWM7QUFDZCxzQkFBYztBQUNkLHNCQUFjLElBQUk7QUFDdEI7QUFHQSxRQUFFO0FBQUEsTUFDRixFQUFFO0FBQ0UsZUFBTztBQUNQLHFCQUFhO0FBQ2pCO0FBQ0o7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2IsY0FBUTtBQUNSLGNBQVEsRUFBRTtBQUNWLHFCQUFlO0FBQ2Ysa0JBQVk7QUFDWixhQUFPLElBQUk7QUFDWCxnQkFBVTtBQUNWLGVBQVM7QUFDVCxtQkFBYTtBQUViLE9BQUM7QUFDRywyQkFBbUIsSUFBSTtBQUMzQjtBQUVBLE9BQUM7QUFDRyxpQkFBUztBQUNULGdCQUFRO0FBQ1IsMkJBQW1CLElBQUk7QUFDdkIsY0FBTSxFQUFFLEVBQUU7QUFFVixTQWhNaUM7QUFpTTdCLGlCQUFPO0FBQ1AseUJBQWUsSUFBSTtBQUNuQiwwQkFBZ0IsSUFBSTtBQUNwQixnQ0FBc0IsS0FBSyxFQUFFLEVBQUUsSUFBSSwyQkFBMkIsRUFBRSxJQUFJO0FBQ3hFO0FBRUEsU0FBQztBQUNHLG1CQUFTLElBQUk7QUFDYixvQkFBVTtBQUNWLDhCQUFvQixJQUFJO0FBQ3hCLGVBQUs7QUFDTCxzQkFBWSxLQUFLLEdBQUcsRUFBRSxJQUFJLGVBQWUsRUFBRTtBQUMzQyxpQkFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUdBLE9BQUM7QUFDRyxpQkFBUztBQUNULHFCQUFhO0FBQ2IseUJBQWlCO0FBQ2pCLGVBQU8sSUFBSTtBQUNYLGdCQUFRLElBQUk7QUFDWixpQkFBUztBQUNULHVCQUFlLEtBQUs7QUFDcEIsb0JBQVk7QUFDWiw2QkFBcUI7QUFDckIscUJBQWE7QUFDYixvQkFBWTtBQUNaLGVBQU8sSUFBSTtBQUNYLGdCQUFRLEVBQUU7QUFDVix1QkFBZTtBQUNmLHVCQUFlO0FBQ2Y7QUFBQSxVQUFZLFdBQVcsSUFBSSwrQkFBK0I7QUFBQSxVQUFFLE1BQU0sSUFBSSwrQkFBK0I7QUFBQSxVQUNqRyxjQUFjLElBQUksK0JBQStCO0FBQUEsVUFBRSxXQUFXLElBQUk7QUFFdEUsU0FBQztBQUFBLFFBQ0QsQ0FBQyxDQXhSUDtBQXlSVSxzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDZjtBQUVBLFNBQUM7QUFDRyxtQkFBUyxJQUFJLHNCQUFzQixJQUFJLHNCQUFzQixJQUFJO0FBQ2pFLDBCQUFnQixJQUFJO0FBQ3BCLHNCQUFZLElBQUk7QUFDcEI7QUFFQSxTQUFDO0FBQ0csbUJBQVMsSUFBSTtBQUNqQjtBQUNKO0FBQ0o7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBRWIsT0FBQyxDQWpISjtBQWtITyxpQkFBUztBQUNULHdCQUFnQjtBQUNoQixhQUFLLElBQUk7QUFDYjtBQUVBLE9BQUMsQ0F4R0osMkJBd0dnQyxFQUFFLE1BQU0sR0FBRztBQUNwQyxvQkFBWSxJQUFJO0FBQ2hCLGdCQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGVBQU8sSUFBSTtBQUNYLHFCQUFhLElBQUk7QUFDakIsaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BbklIO0FBb0lPLGlCQUFTLElBQUk7QUFDYixnQkFBUTtBQUNSLGlCQUFTLEVBQUU7QUFDWCxvQkFBWTtBQUNaLGVBQU8sSUFBSTtBQUNYLG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ2pCLHVCQUFlLElBQUk7QUFDbkI7QUFBQSxVQUFZLFdBQVcsSUFBSSxvQ0FBb0M7QUFBQSxVQUFFLE1BQU0sSUFBSSxvQ0FBb0M7QUFBQSxVQUMzRyxhQUFhLElBQUksb0NBQW9DO0FBQUEsVUFBRSxXQUFXLElBQUksb0NBQW9DO0FBQUEsVUFDMUcsY0FBYyxJQUFJO0FBRXRCLFNBQUMsQ0F2VVA7QUF3VVUsc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQUFDLENBQUM7QUFDRSxzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDWCx1QkFBYSxJQUFJO0FBQ3JCO0FBRUEsU0FBQyxDQU5DLGlCQU1pQixDQWxWekI7QUFtVlUsc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQS9HSDtBQWdITyxvQkFBVTtBQUNWLDZCQUFtQixJQUFJO0FBQzNCO0FBRUEsVUFBRTtBQUNFLG1CQUFTO0FBQ1QsMEJBQWdCO0FBQ3BCO0FBRUEsU0FBQyxDQUFDO0FBQ0Usc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ1gsa0JBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIseUJBQWU7QUFDbkI7QUFFQSxTQUFDLENBUEMseUJBT3lCLEVBQUU7QUFDekIsbUJBQVMsSUFBSTtBQUNiLHdCQUFjLElBQUk7QUFDdEI7QUFFQSxTQUFDLENBWkMsd0JBWXdCO0FBQ3RCLDRCQUFrQjtBQUN0QjtBQUNKO0FBRUEsT0FBQztBQUNHLGdCQUFRO0FBQ1IsaUJBQVMsSUFBSTtBQUNiLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ1gscUJBQWEsSUFBSTtBQUNqQixtQkFBVyxJQUFJO0FBQ25CO0FBQ0o7QUFDSjtBQUVBLEdBaEtLO0FBaUtELEtBdEpLO0FBdUpELGNBQVE7QUFDWjtBQUVBLEtBdEpLO0FBdUpELGdCQUFVO0FBQ2Q7QUFDSjtBQUVBLEdBQUM7QUFDRyxZQUFRLEVBQUU7QUFDVixZQUFRO0FBQ1IsYUFBUyxJQUFJO0FBQ2pCO0FBQUE7OztBQ3BlQTtBQVFBLEdBQUM7QUFDRyxLQUFDLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLEVBQUU7QUFBQSxJQUM3QyxDQUFDLENBREMscUJBQ3FCLENBREMsbUJBQ21CLEVBQUUsSUFBSTtBQUM3QyxlQUFTO0FBQ2I7QUFFQSxLQUFDLENBTHVCLG1CQUtILEVBQUUsSUFBSSxFQUFFO0FBQ3pCLGVBQVM7QUFDVCxtQkFBYTtBQUNqQjtBQUVBLEtBQUMsQ0FWdUIsbUJBVUgsRUFBRSxJQUFJO0FBQ3ZCLGlCQUFXO0FBQ2Y7QUFFQSxLQUFDLENBZHVCLG1CQWNILENBQUMsS0FBSyxFQUFFO0FBQ3pCLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxJQUNELENBQUM7QUFDRyxhQUFPO0FBQ1g7QUFFQTtBQUNJLGVBQVM7QUFDVCxzQkFBZ0I7QUFDaEIsY0FBUTtBQUNSLGNBQVE7QUFFUiw0QkFBc0IsSUFBSTtBQUMxQix5QkFBbUIsSUFBSTtBQUN2QixlQUFTLEVBQUU7QUFDWCxlQUFTO0FBRVQsT0FBQyxDQUFDO0FBQ0UsZ0JBQVE7QUFDWjtBQUNKO0FBRUEsS0FBQyxTQUFTLENBQUM7QUFDUCxlQUFTO0FBQ2I7QUFFQSxLQUFDO0FBQ0csYUFBTyxJQUFJO0FBQ1gsbUJBQWEsSUFBSTtBQUNyQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFDSjtBQUFBOzs7QUN0RUE7QUFTQSxHQUFDO0FBQUEsRUFDRCxDQUFDO0FBQ0csYUFBUztBQUVULFdBQU87QUFDUCxlQUFXO0FBQ1gsb0JBQWdCO0FBQ2hCLHlCQUFxQjtBQUNyQixpQkFBYTtBQUNiLGFBQVM7QUFDVCxtQkFBZSxJQUFJO0FBQ25CLG1CQUFlO0FBRWYsS0FBQyxDQUFDO0FBQ0UsZUFBUyxJQUFJLE1BQU0sSUFBSTtBQUN2QixzQkFBZ0I7QUFDcEI7QUFFQSxLQUFDLFFBQVEsQ0FBQztBQUNOLGdCQUFVO0FBQ1YsZUFBUztBQUNiO0FBQ0o7QUFHQSxHQXpCQyxrQkF5QmtCLEVBQUUsQ0FQaEI7QUFBQSxFQVFMLENBekJDLG1CQXlCbUIsRUFBRSxDQVJqQjtBQUFBLEVBU0wsQ0FUSyxRQVNJLENBQUM7QUFDTixXQUFPLElBQUk7QUFDWCxpQkFBYSxJQUFJO0FBQ2pCLGtCQUFjLElBQUk7QUFDbEIsZUFBVyxJQUFJO0FBQ2YscUJBQWlCLElBQUk7QUFDckIsc0JBQWtCLElBQUk7QUFDdEIsY0FBVSxJQUFJO0FBQ2Qsb0JBQWdCLElBQUk7QUFDcEIscUJBQWlCLElBQUk7QUFDckIseUJBQXFCLElBQUk7QUFDekIsMEJBQXNCLElBQUk7QUFDMUIscUJBQWlCLElBQUk7QUFFckIsY0FBVTtBQUNWLFNBQUssSUFBSTtBQUNULGFBQVMsSUFBSTtBQUNiLGVBQVcsSUFBSTtBQUNmLGlCQUFhLElBQUk7QUFDakIsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG1CQUFlLElBQUk7QUFDbkIsbUJBQWU7QUFDZjtBQUFBLE1BQVksV0FBVyxJQUFJLHFDQUFxQztBQUFBLE1BQUUsTUFBTSxJQUFJLHFDQUFxQztBQUFBLE1BQzdHLGFBQWEsSUFBSSxxQ0FBcUM7QUFBQSxNQUFFLGNBQWMsSUFBSSxxQ0FBcUM7QUFBQSxNQUMvRyxXQUFXLElBQUk7QUFHbkIsS0FBQztBQUNHLGVBQVM7QUFDVCxnQkFBVTtBQUNWLGFBQU8sSUFBSTtBQUNYLGtCQUFZO0FBQ1oscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxXQUFXLElBQUkscUNBQXFDLEVBQUUsV0FBVyxJQUFJO0FBQ3JGO0FBR0EsS0FBQyxDQUFDLGFBQWEsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQUEsSUFDdEMsQ0FBQyxLQUFLLENBRGUsZ0JBQ0UsQ0FEZSxpQkFDRztBQUNyQyxrQkFBWSxJQUFJO0FBQ2hCLG9CQUFjLElBQUk7QUFDbEIsYUFBTyxJQUFJO0FBQ2Y7QUFHQSxLQUFDLENBUm9CO0FBQUEsSUFTckIsQ0FBQyxDQVRvQixjQVNMLEtBQUssQ0FUaUIsaUJBU0M7QUFDbkMsa0JBQVksSUFBSTtBQUNoQixvQkFBYyxJQUFJO0FBQ2xCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQWZvQixjQWVMO0FBQ1osa0JBQVksSUFBSTtBQUNoQixrQkFBWSxJQUFJO0FBQ3BCO0FBR0EsS0FBQyxDQXJFUztBQUFBLElBc0VWLENBQUM7QUFDRyxlQUFTLElBQUksbUNBQW1DLElBQUksbUNBQW1DLElBQUk7QUFDM0Ysc0JBQWdCLElBQUk7QUFDcEIsa0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBR0EsR0FoR0Msa0JBZ0drQixFQUFFLENBOUVoQixTQThFMEIsRUFBRSxDQUFDO0FBQUEsRUFDbEMsQ0FoR0MsbUJBZ0dtQixFQUFFLENBL0VqQixTQStFMkIsRUFBRSxDQURBO0FBQUEsRUFFbEMsQ0FoRkssUUFnRkksQ0F2RUMsc0JBdUVzQixFQUFFLENBRkE7QUFBQSxFQUdsQyxDQW5HQyxrQkFtR2tCLEVBQUUsQ0FqRmhCLFNBaUYwQixFQUFFLENBQUM7QUFBQSxFQUNsQyxDQW5HQyxtQkFtR21CLEVBQUUsQ0FsRmpCLFNBa0YyQixFQUFFLENBREE7QUFBQSxFQUVsQyxDQW5GSyxRQW1GSSxDQTFFQyxzQkEwRXNCLEVBQUUsQ0FGQTtBQUc5QixjQUFVO0FBQ1YsYUFBUyxJQUFJO0FBQ2IsaUJBQWEsSUFBSTtBQUNqQixZQUFRO0FBQ1o7QUFFQSxHQTVHQyxrQkE0R2tCLEVBQUUsQ0ExRmhCO0FBQUEsRUEyRkwsQ0E1R0MsbUJBNEdtQixFQUFFLENBM0ZqQjtBQUFBLEVBNEZMLENBNUZLLFFBNEZJLENBbkZDO0FBcUZOLE1BQUUsQ0FiNEI7QUFjMUIsMEJBQW9CO0FBQ3BCLGFBQU8sSUFBSTtBQUNmO0FBRUEsTUFBRSxDQWxCNEIsbUJBa0JSLEVBQUUsQ0FyQk07QUFzQjFCLDRCQUFzQjtBQUMxQjtBQUVBLEtBQUMsQ0FBQztBQUNFLGFBQU87QUFFUCxRQUFFLENBekJ3QjtBQTBCdEIsaUJBQVMsSUFBSTtBQUNqQjtBQUdBLFFBQUUsQ0FqQ3dCO0FBa0N0QixpQkFBUztBQUNiO0FBQ0o7QUFFQSxLQUFDLEtBQUssQ0FwRWUsZ0JBb0VFLENBcEVlLGlCQW9FRyxPQUFPLEVBQUUsQ0FuQ3BCO0FBb0MxQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsQ0F4RW9CLGVBd0VKLEVBQUUsQ0F2Q1c7QUF3QzFCLGFBQU8sSUFBSTtBQUNmO0FBQ0o7QUFHQSxHQTlISyxRQThISSxDQXJIQyxxQkFxSHFCLENBbkl6QjtBQUFBLEVBb0lOLENBL0hLLFFBK0hJLENBdEhDLHFCQXNIcUIsQ0FwSXpCLGFBb0l1QyxJQUFJLFFBQVEsQ0EvRW5EO0FBQUEsRUFnRk4sQ0FoSUssUUFnSUksQ0F2SEMscUJBdUhxQixDQXJJekIsYUFxSXVDLENBaEZwQixjQWdGbUM7QUFDeEQsa0JBQWMsSUFBSTtBQUN0QjtBQUdBLEdBdkpDLGtCQXVKa0IsRUFBRSxDQXJJaEI7QUFBQSxFQXNJTCxDQXZKQyxtQkF1Sm1CLEVBQUUsQ0F0SWpCO0FBQUEsRUF1SUwsQ0F2SUssUUF1SUksQ0E5SEM7QUErSE4sS0FBQyxDQXhGcUM7QUF5RmxDLGVBQVM7QUFDVCxjQUFRO0FBQ1Isa0JBQVksSUFBSTtBQUNoQixvQkFBYyxJQUFJO0FBQ2xCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQWhHcUMsZ0JBZ0dwQjtBQUNkLGtCQUFZO0FBQ1osa0JBQVk7QUFDaEI7QUFDSjtBQUVBLEdBeEtDLGtCQXdLa0IsRUFBRSxDQXRKaEIsUUFzSnlCLENBdEdZLGlCQXNHTSxFQUFFLENBckVoQjtBQUFBLEVBc0VsQyxDQXhLQyxtQkF3S21CLEVBQUUsQ0F2SmpCLFFBdUowQixDQXZHVyxpQkF1R08sRUFBRSxDQXRFakI7QUFBQSxFQXVFbEMsQ0F4SkssUUF3SkksQ0EvSUMscUJBK0lxQixDQXhHVyxpQkF3R08sRUFBRSxDQXZFakI7QUF3RTlCLFdBQU8sSUFBSTtBQUNmO0FBR0EsR0EvS0Msa0JBK0trQixFQUFFLENBN0poQjtBQUFBLEVBOEpMLENBL0tDLG1CQStLbUIsRUFBRSxDQTlKakI7QUFBQSxFQStKTCxDQS9KSyxRQStKSSxDQXRKQztBQXVKTixLQUFDLENBQUM7QUFDRSxlQUFTLElBQUk7QUFDYixpQkFBVyxJQUFJO0FBRWYsT0FBQztBQUNHLGVBQU8sSUFBSTtBQUNmO0FBRUEsUUFBRSxDQTFGd0I7QUEyRnRCLGlCQUFTLElBQUk7QUFDakI7QUFDSjtBQUVBLEtBQUMsQ0FBQztBQUNFLGVBQVMsSUFBSTtBQUNiLGlCQUFXLElBQUk7QUFFZixPQUFDO0FBQ0csZUFBTyxJQUFJO0FBQ2Y7QUFFQSxRQUFFLENBdkd3QjtBQXdHdEIsaUJBQVMsSUFBSTtBQUNqQjtBQUNKO0FBQ0o7QUFHQSxHQTlNQztBQUFBLEVBK01ELENBOU1DO0FBK01HLE1BQUUsQ0E5TEQ7QUErTEcsY0FBUTtBQUNSLHFCQUFlO0FBQ2Ysb0JBQWM7QUFDZCxpQ0FBMkI7QUFFM0IsT0FBQztBQUNHLG1DQUEyQjtBQUMzQixtQ0FBMkIsSUFBSTtBQUMvQixpQ0FBeUIsSUFBSTtBQUNqQztBQUVBLE9BQUM7QUFDRyxpQ0FBeUIsSUFBSTtBQUM3QiwrQkFBdUIsSUFBSTtBQUMvQjtBQUNKO0FBQ0o7QUFHQSxHQUFDLFFBQVEsQ0FwT1I7QUFBQSxFQXFPRCxDQURDLFFBQ1EsQ0FwT1I7QUFxT0csYUFBUztBQUNULFdBQU87QUFFUCxNQUFFLENBdk5EO0FBd05HLFlBQU0sRUFBRSxFQUFFO0FBQ1YsYUFBTztBQUNYO0FBQ0o7QUFHQSxVQUFPLFdBQVk7QUFDZixLQWJILFFBYVksQ0FqUFo7QUFBQSxJQWtQRyxDQWRILFFBY1ksQ0FqUFo7QUFrUE8sc0JBQWdCO0FBRWhCLFFBQUUsQ0FuT0w7QUFvT08sY0FBTSxFQUFFLEVBQUU7QUFDVixlQUFPO0FBQ1AsdUJBQWU7QUFDZixtQ0FBMkI7QUFDM0Isa0NBQTBCO0FBRTFCLFNBQUM7QUFDRyxvQ0FBMEI7QUFDMUIscUNBQTJCLElBQUk7QUFDL0IsbUNBQXlCLElBQUk7QUFDakM7QUFFQSxTQUFDO0FBQ0csbUNBQXlCLElBQUk7QUFDN0IsaUNBQXVCLElBQUk7QUFDL0I7QUFDSjtBQUNKO0FBQ0o7QUFBQTs7O0FDalJBO0FBU0EsR0FBQztBQUFBLEVBQ0QsQ0FBQztBQUNHLGFBQVM7QUFDVCxXQUFPO0FBRVAsZUFBVztBQUNYLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixtQkFBZSxJQUFJO0FBQ25CLGdCQUFZLElBQUk7QUFDaEI7QUFBQSxNQUFZLFdBQVcsSUFBSSxnQ0FBZ0M7QUFBQSxNQUFFLE1BQU0sSUFBSSxnQ0FBZ0M7QUFBQSxNQUNuRyxhQUFhLElBQUksZ0NBQWdDO0FBQUEsTUFBRSxXQUFXLElBQUksZ0NBQWdDO0FBQUEsTUFDbEcsY0FBYyxJQUFJO0FBR3RCLEtBQUMsQ0FBQztBQUFBLElBQ0YsQ0FBQyxDQURDLGFBQ2EsSUFBSSxRQUFRLFFBQVEsQ0FBQyxlQUFlLENBQUM7QUFDaEQsb0JBQWMsSUFBSTtBQUN0QjtBQUVBLEtBQUMsQ0FBQztBQUNFLGVBQVM7QUFDVCxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUVYLE9BQUM7QUFDRyxrQkFBVTtBQUNkO0FBRUEsT0FBQztBQUNHLGdCQUFRO0FBQ1IsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUdBLEtBQUM7QUFDRyxlQUFTO0FBQ1QsbUJBQWE7QUFDYixlQUFTLElBQUk7QUFDYixjQUFRO0FBQ1IscUJBQWUsRUFBRTtBQUNqQixrQkFBWTtBQUNaLGFBQU8sSUFBSTtBQUNYLGlDQUEyQixJQUFJO0FBQy9CLCtCQUF5QixJQUFJO0FBRTdCLE9BQUMsc0JBQXNCLENBQUM7QUFDcEIsdUJBQWUsSUFBSTtBQUNuQix3QkFBZ0IsSUFBSTtBQUNwQiw4QkFBc0IsS0FBSyxFQUFFLEVBQUUsSUFBSSwwQkFBMEIsRUFBRSxJQUFJO0FBQ3ZFO0FBTUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDYixnQkFBUTtBQUNSLDZCQUFxQixJQUFJO0FBQ3pCLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFHQSxLQXpDSztBQTBDRCxnQkFBVTtBQUNWLGVBQVMsSUFBSTtBQUNiLG1CQUFhLElBQUk7QUFDakIsY0FBUSxFQUFFO0FBRVYsUUFBRSxDQUFDO0FBQ0MsaUJBQVM7QUFDVCx3QkFBZ0I7QUFDaEIsYUFBSyxJQUFJO0FBQ2I7QUFDSjtBQUVBLEtBUE87QUFRSCx1QkFBaUI7QUFDakIsY0FBUTtBQUNSLGVBQVM7QUFDYjtBQUVBLFNBQUssQ0FiRTtBQWNILHVCQUFpQjtBQUNqQixhQUFPO0FBQ1g7QUFFQSxLQTdESztBQThERCxjQUFRO0FBQ1o7QUFFQSxLQXJFSyw4QkFxRTBCLENBdEJ4QixxQkFzQjhDLENBakVoRDtBQWtFRCxjQUFRLEVBQUU7QUFDVixjQUFRO0FBQ1IsZUFBUyxJQUFJO0FBQ2Isa0JBQVk7QUFDWixhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNqQixxQkFBZSxJQUFJO0FBQ25CO0FBQUEsUUFBWSxXQUFXLElBQUksb0NBQW9DO0FBQUEsUUFBRSxNQUFNLElBQUksb0NBQW9DO0FBQUEsUUFDM0csYUFBYSxJQUFJLG9DQUFvQztBQUFBLFFBQUUsV0FBVyxJQUFJLG9DQUFvQztBQUFBLFFBQzFHLGNBQWMsSUFBSTtBQUV0QixPQUFDLENBM0YrQjtBQTRGNUIsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0FBQztBQUNFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ1gscUJBQWEsSUFBSTtBQUNyQjtBQUVBLE9BQUMsQ0FOQyxpQkFNaUIsQ0F0R2E7QUF1RzVCLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFHQSxPQUFDO0FBQ0csMkJBQW1CLElBQUk7QUFDdkIsd0JBQWdCO0FBQ3BCO0FBRUEsUUFBRTtBQUNFLGlCQUFTLElBQUk7QUFDakI7QUFDSjtBQUdBLEtBQUMsQ0FBQyxrQkFBa0IsQ0E5R2YsOEJBOEc4QyxDQS9ENUMscUJBZ0VILENBM0dDLG9CQTJHb0IsbUJBQW1CLENBM0d2QyxxQkEyRzZELEtBQUssQ0F4SG5DLGVBd0htRCxDQXhCakYsbUJBd0JxRyxDQUFDO0FBQ3hHLGtCQUFZLElBQUk7QUFDcEI7QUFPQSxLQUFDLENBQUMsb0JBQW9CLENBeEhqQiw4QkF3SGdELENBekU5QyxxQkF5RW9FLEVBQUUsQ0FwSHhFO0FBcUhELGVBQVM7QUFDVCxtQkFBYTtBQUViLE9BQUM7QUFDRyxpQkFBUztBQUNULHFCQUFhO0FBQ2IsbUJBQVcsSUFBSTtBQUNmLHFCQUFhO0FBQ2IsNkJBQXFCLElBQUk7QUFDekIsMkJBQW1CLElBQUk7QUFDdkIsZUFBTyxJQUFJO0FBQ1gsb0JBQVk7QUFDWiw2QkFBcUI7QUFDckIsY0FBTSxJQUFJLDRCQUE0QixPQUFPLEVBQUUsUUFBUTtBQUMzRDtBQUVBLE9BQUMsQ0FsREMsaUJBa0RpQjtBQUNmLG9CQUFZO0FBQ2hCO0FBQ0o7QUFHQSxLQS9JSyw4QkErSTBCLENBaEd4QixxQkFnRzhDLENBaEN1RDtBQWlDeEcsZUFBUyxFQUFFO0FBQ1gsa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFFWCxPQUFDLENBN0RDO0FBOERFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUdBLEtBM0pLLDhCQTJKMEIsQ0E1R3hCLHFCQTRHOEMsQ0F2SmhELG9CQXVKcUU7QUFDdEUsZUFBUyxFQUFFO0FBQ1gsa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFFWCxPQUFDLENBekVDO0FBMEVFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUNKO0FBRUEsR0FoTUMsaUJBZ01pQixDQUFDO0FBQ2YsV0FBTyxJQUFJO0FBQ2Y7QUFFQSxHQXJKUyxzQkFxSmMsQ0FySlM7QUFzSjVCLFdBQU87QUFDUCxnQkFBWTtBQUNoQjtBQUVBLEdBcktLO0FBc0tELGNBQVU7QUFFVixLQW5KSztBQW9KRCxnQkFBVTtBQUNkO0FBQ0o7QUFFQSxHQXpFZ0g7QUEwRTVHLGFBQVMsRUFBRTtBQUNYLGFBQVM7QUFDYjtBQUdBLEdBQUMsZUFBZSxDQXhOZixrQkF3TmtDLENBeEtIO0FBQUEsRUF5S2hDLENBREMsZUFDZSxDQXhOZixnQkF3TmdDLENBektEO0FBQUEsRUEwS2hDLENBRkMsZUFFZSxDQTFOZixrQkEwTmtDLENBMUtILFlBMEtnQjtBQUFBLEVBQ2hELENBSEMsZUFHZSxDQTFOZixnQkEwTmdDLENBM0tELFlBMktjO0FBQzFDLGdCQUFZLElBQUk7QUFDcEI7QUFFQSxHQUFDLFFBQVEsQ0EvTlI7QUFBQSxFQWdPRCxDQURDLFFBQ1EsQ0EvTlI7QUFnT0csV0FBTztBQUNYO0FBQUE7OztBQzNPQTtBQVdBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsV0FBTztBQUNQLFlBQVE7QUFDUixvQkFBZ0I7QUFDaEIsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixjQUFVO0FBQ1YsYUFBUztBQUNULGdCQUFZLElBQUk7QUFDaEIsbUJBQWUsSUFBSTtBQUNuQixnQkFBWSxJQUFJO0FBQ2hCLG1CQUFlO0FBQ2Y7QUFBQSxNQUFZLFdBQVcsSUFBSSwrQkFBK0I7QUFBQSxNQUFFLE1BQU0sSUFBSSwrQkFBK0I7QUFBQSxNQUNqRyxhQUFhLElBQUksK0JBQStCO0FBQUEsTUFBRSxjQUFjLElBQUksK0JBQStCO0FBQUEsTUFDbkcsV0FBVyxJQUFJO0FBRW5CLEtBQUM7QUFDRyxlQUFTO0FBQ1QsYUFBTztBQUNQLG1CQUFhO0FBQ2IsZ0JBQVU7QUFDVixxQkFBZTtBQUNmLGtCQUFZO0FBQ2hCO0FBR0EsS0FWQyxxQkFVcUIsQ0FBQztBQUNuQixrQkFBWTtBQUNaLGNBQVEsRUFBRTtBQUNWLHFCQUFlO0FBQ2Ysa0JBQVk7QUFDWixlQUFTLEVBQUU7QUFDWCxhQUFPLElBQUk7QUFDWCxpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNqQixxQkFBZSxJQUFJO0FBQ25CLHNCQUFnQixJQUFJO0FBQ3BCLDBCQUFvQixJQUFJO0FBQzVCO0FBRUEsS0F4QkMscUJBd0JxQixDQUFDO0FBQ25CLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQUFDLGNBQWMsQ0E1QmYscUJBNEJxQyxDQUpmO0FBS25CLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQUFDLGlCQUFpQixDQUFDO0FBQUEsSUFDcEIsQ0FBQyxDQURDLGlCQUNpQixDQWpDbEI7QUFrQ0csY0FBUTtBQUNaO0FBRUEsU0FBSyxDQXJDSjtBQXNDRyxjQUFRO0FBQ1o7QUFFQSxTQUFLLENBekNKO0FBMENHLGNBQVE7QUFDWjtBQUVBLEtBYm9CO0FBY2hCLGNBQVEsRUFBRTtBQUNWLGNBQVE7QUFDUixjQUFRO0FBQ1IsZ0JBQVU7QUFDVixXQUFLO0FBQ0wsd0JBQWtCO0FBQ2xCLGVBQVM7QUFDVCxlQUFTO0FBQ1QsbUJBQWE7QUFDYix1QkFBaUI7QUFDakIsYUFBTyxJQUFJO0FBQ1gsa0JBQVk7QUFDWixhQUFPLElBQUk7QUFDWCwrQkFBeUIsSUFBSTtBQUM3Qiw2QkFBdUIsSUFBSTtBQUUzQixPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNiLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFHQSxLQUFDO0FBQ0csZ0JBQVU7QUFDVixXQUFLO0FBQ0wsd0JBQWtCO0FBQ2xCLGtCQUFZLEtBQUssR0FBRyxFQUFFLElBQUksZUFBZSxFQUFFO0FBQzNDLHFCQUFlO0FBQ2YsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQUFDLENBQUM7QUFBQSxJQUNGLENBQUMsS0FBSyxDQS9DSixpQkErQ3NCO0FBQ3BCLG9CQUFjLElBQUk7QUFDdEI7QUFHQSxLQUFDLENBQUM7QUFBQSxJQUNGLENBQUMsS0FBSyxFQUFFLENBckZQLHFCQXFGNkI7QUFDMUIsb0JBQWMsSUFBSTtBQUNsQixlQUFTLElBQUksNkJBQTZCLElBQUksNkJBQTZCLElBQUk7QUFDL0Usc0JBQWdCLElBQUk7QUFDcEIsa0JBQVksSUFBSTtBQUNwQjtBQUdBLEtBQUMsQ0FqRUM7QUFBQSxJQWtFRixDQUFDLENBbEVDLGFBa0VhLElBQUksUUFBUSxDQVZ6QixlQVV5QztBQUN2QyxvQkFBYyxJQUFJO0FBQ3RCO0FBRUEsS0FBQyxDQWxFQztBQW1FRSxlQUFTO0FBQ1Qsa0JBQVksSUFBSTtBQUVoQixPQXRHSCxxQkFzR3lCLENBNUZIO0FBNkZmLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFHQSxLQUFDLENBQUM7QUFDRSw0QkFBc0IsSUFBSTtBQUMxQiw0QkFBc0IsSUFBSTtBQUMxQiw0QkFBc0IsSUFBSTtBQUM5QjtBQUVBLEtBQUMsQ0FBQztBQUNFLDRCQUFzQixJQUFJO0FBQzFCLDRCQUFzQixJQUFJO0FBQzFCLDRCQUFzQixJQUFJO0FBQzlCO0FBRUEsS0FBQyxDQVpDLG1CQVltQixDQXhGRCx3QkF3RjBCLENBMUR6QztBQUFBLElBMkRMLENBQUMsQ0FQQyxtQkFPbUIsQ0F6RkQsd0JBeUYwQixDQTNEekM7QUE0REQsaUJBQVcsSUFBSTtBQUNuQjtBQUNKO0FBRUEsR0FBQztBQUNHLGVBQVc7QUFDZjtBQUdBLEdBQUMsZUFBZSxDQW5KZjtBQW9KRyxnQkFBWSxJQUFJO0FBRWhCLEtBQUMsQ0F4REM7QUFBQSxJQXlERixDQUFDLEtBQUssQ0F2R0osaUJBdUdzQjtBQUNwQixrQkFBWSxJQUFJO0FBQ3BCO0FBRUEsS0FBQyxDQXZEQztBQUFBLElBd0RGLENBQUMsS0FBSyxFQUFFLENBNUlQLHFCQTRJNkI7QUFDMUIsa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUMsQ0FoSEM7QUFpSEUsa0JBQVksSUFBSTtBQUNwQjtBQUdBLEtBckpDLHFCQXFKcUIsQ0EzSUM7QUFBQSxJQTRJdkIsQ0F0SkMscUJBc0pxQixDQTVJQyxZQTRJWTtBQUFBLElBQ25DLENBdkpDLHFCQXVKcUIsQ0E3SUMsWUE2SVk7QUFDL0Isa0JBQVk7QUFDaEI7QUFDSjtBQUdBLEdBQUMsUUFBUSxDQTdLUjtBQThLRyxXQUFPO0FBRVAsS0FoS0MscUJBZ0txQixDQXRKQztBQXVKbkIsYUFBTyxLQUFLLEtBQUssRUFBRSxJQUFJO0FBQ3ZCLHNCQUFnQixJQUFJO0FBQ3hCO0FBQ0o7QUFHQSxHQUFDO0FBQ0csY0FBVTtBQUNWLFlBQVE7QUFDUixnQkFBWSxJQUFJO0FBQ2hCLFdBQU8sSUFBSTtBQUNYLFlBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsZ0JBQVksSUFBSTtBQUNoQixtQkFBZSxJQUFJO0FBRW5CLEtBQUMsQ0FBQztBQUNFLGlCQUFXO0FBQ2Y7QUFFQSxLQUFDO0FBQ0csZ0JBQVU7QUFDZDtBQUVBLEtBQUM7QUFDRyxnQkFBVTtBQUNWLGFBQU87QUFDUCxlQUFTO0FBQ1QsbUJBQWE7QUFDYixlQUFTLElBQUk7QUFDYixjQUFRO0FBQ1IscUJBQWUsRUFBRTtBQUNqQixrQkFBWTtBQUNaLGFBQU8sSUFBSTtBQUVYLE9BQUMsc0JBQXNCLENBekxKO0FBMExmLGVBQU87QUFDUCx1QkFBZSxJQUFJO0FBQ25CLHdCQUFnQixJQUFJO0FBQ3BCLDhCQUFzQixLQUFLLEVBQUUsRUFBRSxJQUFJLHNCQUFzQixFQUFFLElBQUk7QUFDbkU7QUFNQSxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNiLGtCQUFVO0FBQ1YsZ0JBQVE7QUFDUiw2QkFBcUIsSUFBSTtBQUN6QixlQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsS0FBQztBQUNHLGNBQVE7QUFDWjtBQUlBLEtBQUM7QUFDRyxlQUFTO0FBQ1Qsc0JBQWdCO0FBQ2hCLFdBQUssSUFBSTtBQUNULGNBQVEsRUFBRTtBQUNWLGNBQVE7QUFDUixlQUFTO0FBQ1QsdUJBQWlCO0FBQ3JCO0FBRUEsS0FBQztBQUNHLGNBQVEsRUFBRTtBQUNWLGtCQUFZO0FBQ1osbUJBQWE7QUFDakI7QUFFQSxLQUFDO0FBQ0csdUJBQWlCO0FBQ2pCLGFBQU87QUFFUDtBQUNJLHNCQUFjO0FBQ2xCO0FBRUE7QUFBQSxNQUNBO0FBQ0ksc0JBQWM7QUFDZCxzQkFBYztBQUNsQjtBQUNKO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUViLE9BQUMsQ0FsQkosc0JBa0IyQixFQUFFLE1BQU0sR0FBRztBQUMvQixvQkFBWSxJQUFJO0FBQ2hCLGdCQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGVBQU8sSUFBSTtBQUNYLHFCQUFhLElBQUk7QUFDakIsaUJBQVMsSUFBSTtBQUNqQjtBQUNKO0FBRUEsS0FaQyxzQkFZc0IsQ0FqRHRCO0FBa0RHLGNBQVE7QUFDUixlQUFTLElBQUk7QUFDYixrQkFBWTtBQUNaLGFBQU8sSUFBSTtBQUNYLGlCQUFXLElBQUk7QUFDZixtQkFBYSxJQUFJO0FBQ2pCLGVBQVMsRUFBRTtBQUNYLHFCQUFlLElBQUk7QUFDbkI7QUFBQSxRQUFZLFdBQVcsSUFBSSxvQ0FBb0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxvQ0FBb0M7QUFBQSxRQUMzRyxhQUFhLElBQUksb0NBQW9DO0FBQUEsUUFBRSxXQUFXLElBQUksb0NBQW9DO0FBQUEsUUFDMUcsY0FBYyxJQUFJO0FBRXRCLE9BQUMsQ0FBQztBQUNFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsdUJBQWU7QUFDbkI7QUFFQSxPQUFDLENBUEMsb0JBT29CLEVBQUU7QUFDcEIsaUJBQVMsSUFBSTtBQUNiLHNCQUFjLElBQUk7QUFDdEI7QUFFQSxPQUFDLENBWkMsbUJBWW1CO0FBQ2pCLDBCQUFrQjtBQUN0QjtBQUVBLE9BQUMsQ0F2Tkg7QUFBQSxNQXdORSxDQUFDLENBbE5IO0FBbU5NLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDLENBQUM7QUFDRSxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNYLHFCQUFhLElBQUk7QUFDakIsa0JBQVU7QUFDZDtBQUVBLE9BQUMsQ0FQQyxpQkFPaUIsQ0FwT3JCO0FBQUEsTUFxT0UsQ0FBQyxDQVJDLGlCQVFpQixDQS9OckI7QUFnT00sb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsS0E3REMsc0JBNkRzQixDQUFDO0FBQ3BCLGNBQVE7QUFDUixlQUFTLElBQUk7QUFDYixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLG1CQUFhLElBQUk7QUFDakIsaUJBQVcsSUFBSTtBQUNuQjtBQU1BLEtBQUMsQ0FBQyxtQkFBbUIsQ0ExRXBCLHNCQTBFMkMsRUFBRSxDQS9HN0M7QUFnSEcsZUFBUztBQUNULG1CQUFhO0FBRWIsT0FBQztBQUNHLGlCQUFTO0FBQ1QscUJBQWE7QUFDYixtQkFBVyxJQUFJO0FBQ2YscUJBQWE7QUFDYiw2QkFBcUIsSUFBSTtBQUN6QiwyQkFBbUIsSUFBSTtBQUN2QixlQUFPLElBQUk7QUFDWCxvQkFBWTtBQUNaLDZCQUFxQjtBQUNyQixjQUFNLElBQUksMkJBQTJCLE9BQU8sRUFBRSxRQUFRO0FBQzFEO0FBRUEsT0FBQyxDQTVDQyxpQkE0Q2lCO0FBQ2Ysb0JBQVk7QUFDaEI7QUFDSjtBQUNKO0FBRUEsR0FBQztBQUNHLFlBQVEsRUFBRTtBQUNWLFlBQVE7QUFDUixhQUFTLElBQUk7QUFDakI7QUFBQTs7O0FDNVhBO0FBT0EsR0FBQztBQUNHO0FBQ0ksZUFBUztBQUNULHNCQUFnQjtBQUNoQixjQUFRO0FBQ1IsY0FBUTtBQUNSLHlCQUFtQixJQUFJO0FBQ3ZCLGVBQVM7QUFFVCw0QkFBc0IsSUFBSTtBQUM5QjtBQUVBLFNBQUssQ0FBQztBQUFBLElBQ04sQ0FBQyxDQUFDLGlCQUFpQjtBQUNmLGNBQVE7QUFDWjtBQUVBLEtBQUMsQ0FBQztBQUNFO0FBQ0ksaUJBQVM7QUFDYjtBQUVBLFFBQUUsSUFBSSxFQUFFO0FBQ0osaUJBQVM7QUFDVCxxQkFBYTtBQUNqQjtBQUNKO0FBRUEsS0FBQyxDQVhDLG1CQVdtQixDQUFDLEtBQUssRUFBRTtBQUN6QixlQUFTLElBQUk7QUFDakI7QUFFQSxLQUFDLENBQUM7QUFDRSxRQUFFO0FBQUEsTUFDRixFQUFFLElBQUk7QUFDRixpQkFBUztBQUNiO0FBQ0o7QUFDSjtBQUlBLEdBMUNDLGdCQTBDZ0IsQ0E3QlgsaUJBNkI2QixDQUFDLGNBQWMsQ0FBQztBQUMvQyxLQUFDLEtBQUssQ0FBQyxjQUFjO0FBQ2pCLG9CQUFjLElBQUk7QUFDdEI7QUFFQSxLQUFDLENBQUMsY0FBYyxLQUFLLENBSmQsY0FJNkI7QUFDaEMsb0JBQWMsSUFBSTtBQUN0QjtBQUVBLEtBQUMsQ0FKQyxjQUljO0FBQ1osa0JBQVksSUFBSTtBQUVoQixPQUFDO0FBQ0csb0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBQ0o7QUFBQTs7O0FDakVBO0FBU0EsR0FBQztBQUNHLGNBQVU7QUFDVixnQkFBWTtBQUNaLGdCQUFZLFVBQVUsSUFBSSxpQ0FBaUMsSUFBSSxzQkFBc0IsRUFBRSxXQUFXLElBQUk7QUFDdEcsYUFBUztBQUNULGdCQUFZO0FBQ1osZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxhQUFTLElBQUk7QUFDYixZQUFRLEVBQUUsTUFBTSxJQUFJO0FBQ3BCLG1CQUFlO0FBQ2YsZ0JBQVk7QUFHWixLQUFDLENBQUM7QUFDRSwwQkFBb0I7QUFDeEI7QUFFQSxLQUFDLENBQUM7QUFDRSx5QkFBbUI7QUFDdkI7QUFFQSxLQUFDLENBQUM7QUFDRSw4QkFBd0I7QUFDNUI7QUFFQSxLQUFDLENBQUM7QUFDRSxnQ0FBMEI7QUFDOUI7QUFFQSxLQUFDLENBQUM7QUFDRSxvQkFBYztBQUNsQjtBQUVBLEtBQUMsQ0FBQztBQUNFLGtCQUFZLElBQUk7QUFDcEI7QUFFQSxLQUFDO0FBQ0csa0JBQVk7QUFDWixhQUFPO0FBQ1AsY0FBUSxFQUFFO0FBQ2Q7QUFHQSxLQUFDO0FBQ0csZUFBUztBQUNULG1CQUFhO0FBQ2IsdUJBQWlCO0FBQ2pCLGFBQU8sSUFBSTtBQUNYLGNBQVEsSUFBSTtBQUNaLGFBQU87QUFDUCxlQUFTO0FBQ1QsY0FBUSxFQUFFO0FBQ1YscUJBQWU7QUFDZixrQkFBWTtBQUNaLGFBQU8sSUFBSTtBQUNYLHVCQUFpQjtBQUNqQiwyQkFBcUI7QUFDckIsbUJBQWE7QUFDYixxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksNkNBQTZDO0FBQUEsUUFDcEUsTUFBTSxJQUFJLDZDQUE2QztBQUFBLFFBQ3ZELGNBQWMsSUFBSSw2Q0FBNkM7QUFBQSxRQUMvRCxXQUFXLElBQUk7QUFFbkIsT0FBQztBQUNHLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDO0FBQ0csb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJLDJDQUEyQyxJQUFJLDJDQUN4RCxJQUFJO0FBQ1Isd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2IsZUFBTztBQUNYO0FBQ0o7QUFDSjtBQUVBLEdBM0VNO0FBNEVGLFNBQUs7QUFDTCxVQUFNO0FBQ04sV0FBTztBQUNQLFlBQVE7QUFDUixlQUFXLFdBQVc7QUFDMUI7QUFFQSxHQS9FTTtBQWdGRixTQUFLO0FBQ0wsV0FBTztBQUNQLFdBQU87QUFDUCxZQUFRO0FBQ1IsZUFBVyxXQUFXO0FBQzFCO0FBRUEsR0FuRk07QUFvRkYsU0FBSztBQUNMLFVBQU07QUFDTixXQUFPO0FBQ1AsWUFBUTtBQUNSLGVBQVcsV0FBVztBQUMxQjtBQUVBLEdBdkZNO0FBd0ZGLFlBQVE7QUFDUixVQUFNO0FBQ04sV0FBTztBQUNQLFlBQVE7QUFDUixlQUFXLFdBQVc7QUFDMUI7QUFFQSxHQTNGTTtBQTRGRixXQUFPO0FBQ1AsWUFBUTtBQUNSLFVBQU07QUFDTixnQkFBWSxVQUFVO0FBQzFCO0FBRUEsR0FsSE0sY0FrSFMsQ0E5RlQ7QUFBQSxFQStGTixDQS9HTSxlQStHVSxDQS9GVjtBQWdHRixnQkFBWTtBQUNaLGVBQVcsV0FBVztBQUMxQjtBQUVBLEdBeEhNLGNBd0hTLENBQUM7QUFBQSxFQUNoQixDQXJITSxlQXFIVSxDQURBO0FBRVosV0FBTztBQUNYO0FBRUEsR0E3SE0sY0E2SFMsQ0FBQztBQUFBLEVBQ2hCLENBMUhNLGVBMEhVLENBREE7QUFFWixXQUFPO0FBQ1g7QUFFQSxHQWxJTSxjQWtJUyxDQUFDO0FBQUEsRUFDaEIsQ0EvSE0sZUErSFUsQ0FEQTtBQUVaLFdBQU87QUFDWDtBQUVBLEdBL0hNLGFBK0hRLENBbkhSO0FBQUEsRUFvSE4sQ0E1SE0sZ0JBNEhXLENBcEhYO0FBcUhGLGdCQUFZO0FBQ1osZUFBVyxXQUFXO0FBQzFCO0FBRUEsR0FySU0sYUFxSVEsQ0FyQkU7QUFBQSxFQXNCaEIsQ0FsSU0sZ0JBa0lXLENBdEJEO0FBdUJaLFlBQVE7QUFDWjtBQUVBLEdBMUlNLGFBMElRLENBckJFO0FBQUEsRUFzQmhCLENBdklNLGdCQXVJVyxDQXRCRDtBQXVCWixZQUFRO0FBQ1o7QUFFQSxHQS9JTSxhQStJUSxDQXJCRTtBQUFBLEVBc0JoQixDQTVJTSxnQkE0SVcsQ0F0QkQ7QUF1QlosWUFBUTtBQUNaO0FBRUEsU0FBTyxZQUFXLFdBQVk7QUFDMUIsS0E3SkUsY0E2SmEsQ0EzQkg7QUFBQSxJQTRCWixDQTlKRSxjQThKYSxDQWpDSDtBQUFBLElBa0NaLENBM0pFLGVBMkpjLENBN0JKO0FBQUEsSUE4QlosQ0E1SkUsZUE0SmMsQ0FuQ0o7QUFvQ1IsYUFBTztBQUNYO0FBQ0o7QUFBQTs7O0FDMUxBO0FBTUEsR0FBQztBQUNHLGNBQVU7QUFDVixjQUFVO0FBQ1Ysc0JBQWtCLElBQUk7QUFDdEIsbUJBQWUsSUFBSTtBQUVuQixLQUFDO0FBQ0csZUFBUztBQUNULGlCQUFXLHFCQUFxQixLQUFLO0FBQ3JDLGNBQVE7QUFDUixZQUFNO0FBQ04sZ0JBQVU7QUFDVixhQUFPO0FBQ1AsV0FBSztBQUNMLGlCQUFXLFdBQVc7QUFDdEIsZUFBUztBQUNUO0FBQUEsUUFBWTtBQUFBLFVBQWdCLEtBQUs7QUFBQSxVQUFFLFdBQVc7QUFBQSxVQUFFLElBQUksa0NBQWtDO0FBQUEsVUFBRTtBQUM1RjtBQUVBLEtBQUMsS0FBSyxJQUFJO0FBQ04sc0JBQWdCO0FBQ3BCO0FBRUEsS0FBQyxDQUFDLHlCQUF5QjtBQUN2QixpQkFBVztBQUNmO0FBRUEsS0FBQyxDQUFDO0FBQ0UscUJBQWU7QUFDbkI7QUFDSjtBQUVBLGFBeEJtQjtBQXlCZjtBQUNJLGlCQUFXLFdBQVc7QUFDMUI7QUFDQTtBQUNJLGlCQUFXLFdBQVc7QUFDMUI7QUFDSjtBQUVBLGFBckJ3QjtBQXNCcEI7QUFDSSxpQkFBVyxXQUFXO0FBQzFCO0FBQ0E7QUFDSSxpQkFBVyxXQUFXO0FBQzFCO0FBQ0o7QUFBQTs7O0FDdERBO0FBV0EsR0FBQztBQUNHLFdBQU87QUFFUCxLQUFDO0FBQ0csZ0JBQVU7QUFDZDtBQUVBLEtBQUM7QUFDRyxrQkFBWTtBQUNaLGtCQUFZO0FBQ1osZ0JBQVU7QUFDZDtBQUVBLEtBQUM7QUFDRyxnQkFBVTtBQUNWLFdBQUs7QUFDVDtBQUVBLEtBQUM7QUFDRyxnQkFBVTtBQUNkO0FBRUEsS0FBQztBQUNHLGtCQUFZO0FBQ1osY0FBUSxFQUFFO0FBQ2Q7QUFDSjtBQUVBLEdBQUM7QUFDRyxjQUFVO0FBQ1YsWUFBUTtBQUNaO0FBRUEsR0FBQyxNQUFNLENBakNOO0FBa0NHLFdBQU8sSUFBSTtBQUNYLHFCQUFpQixJQUFJO0FBQ3JCLHNCQUFrQixJQUFJO0FBQ3RCLGNBQVUsSUFBSTtBQUNkLGVBQVcsSUFBSTtBQUNmLHFCQUFpQixJQUFJO0FBQ3JCLGlCQUFhLElBQUk7QUFDakIsNEJBQXdCLElBQUk7QUFDNUIsMkJBQXVCLElBQUk7QUFDM0IscUJBQWlCLElBQUk7QUFDckIsaUJBQWEsSUFBSTtBQUNqQixtQkFBZSxJQUFJO0FBQ25CLDhCQUEwQixJQUFJO0FBQzlCLHlCQUFxQixJQUFJO0FBQ3pCLCtCQUEyQixJQUFJO0FBQy9CLDBCQUFzQixJQUFJO0FBQzFCLHdCQUFvQixJQUFJO0FBQ3hCLDhCQUEwQixJQUFJO0FBQzlCLCtCQUEyQixJQUFJO0FBQy9CLHVCQUFtQixJQUFJO0FBQ3ZCLDZCQUF5QixJQUFJO0FBQzdCLCtCQUEyQixJQUFJO0FBQy9CLDJCQUF1QixJQUFJO0FBQzNCLGlDQUE2QixJQUFJO0FBQ2pDLDBCQUFzQixJQUFJO0FBQzFCLGtDQUE4QixJQUFJO0FBRWxDLGlDQUE2QixJQUFJO0FBQ2pDLDRCQUF3QixJQUFJO0FBQzVCLGtDQUE4QixJQUFJO0FBQ2xDLDJCQUF1QixJQUFJO0FBQzNCLDZCQUF5QixJQUFJO0FBQzdCLDhCQUEwQixJQUFJO0FBQzlCLHdCQUFvQixJQUFJO0FBQ3hCLHVCQUFtQixJQUFJO0FBRXZCLEtBMUNIO0FBMkNPLGVBQVM7QUFDVCxhQUFPLElBQUk7QUFDWCxhQUFPO0FBQ1AsY0FBUSxFQUFFO0FBQ1Ysa0JBQVksSUFBSTtBQUNoQixxQkFBZTtBQUNmLHFCQUFlO0FBRWYsT0FBQztBQUNHLGVBQU8sSUFBSTtBQUNYLGlCQUFTLElBQUk7QUFDYixlQUFPO0FBQ1AsZ0JBQVEsRUFBRTtBQUNWLGVBQU87QUFDUCx1QkFBZSxJQUFJO0FBQ25CLG9CQUFZLFdBQVcsSUFBSSx1QkFBdUIsRUFBRSxNQUFNLElBQUk7QUFFOUQsU0FBQztBQUNHLGlCQUFPLElBQUk7QUFDWCx1QkFBYSxJQUFJO0FBQ3JCO0FBRUEsU0FBQztBQUNHLG1CQUFTLElBQUk7QUFDYixvQkFBVTtBQUNWLGlCQUFPO0FBQ1Asa0JBQVE7QUFDUixxQkFBVyxJQUFJO0FBQ2YsaUJBQU8sSUFBSTtBQUNmO0FBRUEsU0FBQyxLQUFLLENBQUMsaUJBQWlCLE9BQU8sQ0FUOUI7QUFBQSxRQVVELENBQUMsQ0FBQyxjQUFjLENBVmY7QUFBQSxRQVdELENBQUMsQ0FBQyxjQUFjLENBWGY7QUFZRyxpQkFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUNKO0FBRUEsS0F4RkM7QUF5RkcsZUFBUztBQUNULGtCQUFZO0FBQ1osY0FBUSxFQUFFO0FBQ2Q7QUFDSjtBQUFBOzs7QUM5SEE7QUFNQSxHQUFDO0FBQ0csY0FBVTtBQUNWLGdCQUFZO0FBQ1osZ0JBQVksSUFBSTtBQUNoQixZQUFRLEVBQUU7QUFDVixtQkFBZSxJQUFJO0FBRW5CLEtBQUM7QUFDRyxnQkFBVTtBQUNWLGVBQVM7QUFDVCxjQUFRO0FBQ1Isb0JBQWM7QUFDZCxlQUFTO0FBQ1QsdUJBQWlCO0FBQ2pCLG1CQUFhO0FBQ2IsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJO0FBQ1osa0JBQVksSUFBSTtBQUNoQixjQUFRLEVBQUU7QUFDVixxQkFBZSxJQUFJO0FBQ25CLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSwrQkFBK0I7QUFBQSxRQUFFLE1BQU0sSUFBSSwrQkFBK0I7QUFBQSxRQUNqRyxhQUFhLElBQUksK0JBQStCO0FBQUEsUUFBRSxXQUFXLElBQUksK0JBQStCO0FBQUEsUUFDaEcsY0FBYyxJQUFJO0FBR3RCLE9BQUM7QUFDRyxpQkFBUztBQUNULGlCQUFTO0FBQ1QsZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsSUFBSTtBQUNaLG9CQUFZLElBQUk7QUFDaEIsdUJBQWUsSUFBSTtBQUNuQixvQkFBWSxJQUFJO0FBQ2hCLG9CQUFZLFdBQVcsSUFBSTtBQUMvQjtBQUVBLE9BQUM7QUFDRyxnQkFBUTtBQUNaO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUksb0NBQW9DLElBQUksb0NBQW9DLElBQUk7QUFDN0Ysd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBRUEsS0FBQyxDQUFDLGlCQUFpQixDQXpDbEI7QUEwQ0csY0FBUTtBQUNaO0FBRUEsS0FBQyxLQUFLLENBSkosa0JBSXVCLENBN0N4QixlQTZDd0M7QUFDckMsa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUMsS0FBSyxDQVJKLGtCQVF1QixDQWpEeEIsZUFpRHdDLE1BQU07QUFDM0Msa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUMsQ0FBQztBQUNFLGNBQVEsSUFBSTtBQUNaLG9CQUFjO0FBRWQsT0FBQztBQUNHLGFBQUs7QUFDTCxnQkFBUTtBQUNaO0FBRUEsT0FBQztBQUNHLGNBQU07QUFDVjtBQUVBLE9BQUM7QUFDRyxlQUFPO0FBQ1g7QUFFQSxPQXRFSDtBQXVFTyxhQUFLLEtBQUssSUFBSSx1QkFBdUIsRUFBRSxFQUFFLEVBQUUsSUFBSSwwQkFBMEIsRUFBRTtBQUMzRSxxQkFBYSxLQUFLLEdBQUcsRUFBRSxJQUFJLHlCQUF5QixFQUFFO0FBQzFEO0FBQ0o7QUFFQSxLQUFDLENBQUM7QUFDRSxhQUFPLElBQUk7QUFDWCxjQUFRO0FBQ1Isb0JBQWM7QUFFZCxPQXhCQztBQXlCRyxjQUFNO0FBQ04sZUFBTztBQUNYO0FBRUEsT0F4QkM7QUF5QkcsZ0JBQVE7QUFDWjtBQUVBLE9BeEJDO0FBeUJHLGFBQUs7QUFDVDtBQUdBLE9BL0ZIO0FBZ0dPLGNBQU0sS0FBSyxJQUFJLHVCQUF1QixFQUFFLEVBQUUsRUFBRSxJQUFJLHlCQUF5QixFQUFFO0FBQzNFLHFCQUFhO0FBQ2Isb0JBQVk7QUFDWix1QkFBZSxLQUFLLEdBQUcsRUFBRSxJQUFJLDBCQUEwQixFQUFFO0FBQzdEO0FBQ0o7QUFFQSxLQTlDSztBQStDRCxnQkFBVTtBQUNWLGVBQVM7QUFDVCxlQUFTO0FBQ1QsY0FBUTtBQUNSLGtCQUFZLElBQUk7QUFDaEIscUJBQWUsSUFBSTtBQUN2QjtBQUNKO0FBR0EsR0F6SEMsUUF5SFEsQ0FBQztBQUNOLEtBbkhDO0FBQUEsSUFvSEQsQ0EzREs7QUE0REQ7QUFBQSxRQUFxQixJQUFJO0FBQUEsUUFBRSxNQUFNO0FBQUEsUUFBRSxLQUFLO0FBQUEsUUFBRSxNQUFNO0FBQUEsUUFBRSxVQUFVO0FBQUEsUUFBRSxLQUFLO0FBQUEsUUFBRSxZQUFZO0FBQUEsUUFBRSxVQUFVO0FBQUEsUUFBRTtBQUMvRiwyQkFBcUIsSUFBSTtBQUM3QjtBQUNKO0FBR0EsR0FBQyxZQUFZLEVBQUUsQ0FsSWQ7QUFtSUcsbUJBQWUsSUFBSTtBQUN2QjtBQUFBOzs7QUMxSUE7QUFhQSxHQUFDO0FBQ0csY0FBVTtBQUNWLGFBQVM7QUFDVCxhQUFTO0FBRVQsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsQ0FBckI7QUFDakIsaUJBQVcsT0FBTztBQUN0QjtBQUdBLEtBQUMsbUJBQW1CLENBTEMsbUJBS21CLEVBQUUsQ0FMckI7QUFNakIsZ0JBQVU7QUFDVixlQUFTO0FBQ2I7QUFDSjtBQUVBLEdBQUM7QUFDRyxZQUFRO0FBQ1IsYUFBUztBQUNULGdCQUFZO0FBQ1osYUFBUztBQUNULGlCQUFhO0FBQ2IscUJBQWlCO0FBQ2pCLGdCQUFZLElBQUksR0FBRyxPQUFPLElBQUk7QUFDOUIsb0JBQWdCO0FBQ3BCO0FBRUEsR0FBQztBQUNHLGVBQVcsTUFBTTtBQUNqQixhQUFTO0FBQ1QsZ0JBQVksVUFBVSxJQUFJLG1DQUFtQyxJQUFJLHNCQUFzQixFQUFFLFFBQVEsSUFBSTtBQUNyRyxpQkFBYTtBQUNqQjtBQUdBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsaUJBQWE7QUFDYixxQkFBaUI7QUFDakIsbUJBQWU7QUFDZixjQUFVO0FBQ1YsY0FBVTtBQUNWLFdBQU8sSUFBSTtBQUNYLFlBQVEsSUFBSTtBQUNaLGVBQVcsSUFBSTtBQUNmLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixtQkFBZTtBQUNmLHFCQUFpQjtBQUNqQixZQUFRO0FBQ1I7QUFBQSxNQUFZLFdBQVcsSUFBSSxrQ0FBa0M7QUFBQSxNQUFFLE1BQU0sSUFBSSxrQ0FBa0M7QUFBQSxNQUN2RyxhQUFhLElBQUksa0NBQWtDO0FBQUEsTUFBRSxjQUFjLElBQUksa0NBQWtDO0FBQUEsTUFDekcsV0FBVyxJQUFJO0FBRW5CLEtBQUM7QUFDRyxpQkFBVyxJQUFJO0FBQ25CO0FBR0EsS0FBQyxlQUFlO0FBQ1osZUFBUztBQUNiO0FBRUEsS0FBQyxLQUFLLENBQUMsV0FBVztBQUNkLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsb0JBQWMsSUFBSTtBQUN0QjtBQUVBLEtBQUMsS0FBSyxDQU5DLFdBTVc7QUFDZCxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLG9CQUFjLElBQUk7QUFDdEI7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJLDZCQUE2QixJQUFJLDZCQUE2QixJQUFJO0FBQy9FLHNCQUFnQixJQUFJO0FBQ3BCLGtCQUFZLElBQUk7QUFDcEI7QUFDSjtBQUdBLEdBeEZDLFdBd0ZXLENBcEJELFdBb0JhLENBMUVuQjtBQUFBLEVBMkVMLENBbERDLGtCQWtEa0IsQ0FyQlI7QUFzQlAsYUFBUyxJQUFJO0FBQ2IsWUFBUTtBQUNaO0FBRUEsR0FoRkssa0JBZ0ZjLENBckZkLG1CQXFGa0MsQ0FyRmQ7QUFzRnJCLHlCQUFxQixJQUFJO0FBQ3pCLGdDQUE0QixJQUFJO0FBQ2hDLHlCQUFxQixPQUFPLEVBQUU7QUFDbEM7QUFFQSxHQUFDO0FBQ0csY0FBVTtBQUNWLFVBQU07QUFDTixTQUFLO0FBQ0wsV0FBTztBQUNQLFlBQVE7QUFDUixhQUFTO0FBQ1Qsc0JBQWtCLElBQUk7QUFDdEIsbUJBQWUsSUFBSTtBQUNuQixnQkFBWSxRQUFRLElBQUksa0NBQWtDLElBQUk7QUFDbEU7QUFFQSxHQUFDO0FBQ0csb0JBQWdCO0FBQ2hCLGFBQVM7QUFDVCxnQkFBWSxRQUFRLElBQUksa0NBQWtDLElBQUk7QUFDbEU7QUFHQSxHQUFDO0FBQ0csS0FBQyxDQXhISjtBQXlITyxlQUFTO0FBQ2I7QUFFQSxLQXhHSDtBQXlHTyxzQkFBZ0I7QUFDcEI7QUFFQSxLQWpHSDtBQWtHTyxpQkFBVyxNQUFNO0FBQ2pCLGVBQVM7QUFDYjtBQUVBLEtBNUhDLG1CQTRIbUIsQ0E1SEM7QUE2SGpCLGlCQUFXLE9BQU87QUFDdEI7QUFFQSxLQUFDLHNCQUFzQixDQWhJRjtBQWlJakIsZUFBUztBQUNiO0FBRUEsS0FwSXFCLG1CQW9JRCxFQUFFLENBcElEO0FBQUEsSUFxSXJCLENBaElDLG1CQWdJbUIsQ0FySUMsbUJBcUltQixFQUFFLENBcklyQjtBQXNJakIsZUFBUztBQUNiO0FBRUEsS0F6SUMsa0JBeUlrQixDQVRsQixzQkFTeUMsQ0F6SXJCO0FBMElqQixpQkFBVyxPQUFPO0FBQ3RCO0FBRUEsS0E3SUMsbUJBNkltQixDQTdJQyxtQkE2SW1CLEVBQUUsQ0E3SXJCO0FBOElqQixpQkFBVyxPQUFPO0FBQ3RCO0FBQ0o7QUFHQSxHQUFDO0FBQ0csaUJBQWE7QUFDYixvQkFBZ0I7QUFFaEIsS0E1SUg7QUE2SU8sc0JBQWdCO0FBQ3BCO0FBRUEsS0FySUg7QUFzSU8sY0FBUSxLQUFLLElBQUksbUJBQW1CLEVBQUUsR0FBRztBQUV6QyxPQUFDO0FBQ0csdUJBQWUsSUFBSTtBQUN2QjtBQUNKO0FBQ0o7QUFFQSxHQUFDO0FBQ0csaUJBQWE7QUFDYixvQkFBZ0I7QUFFaEIsS0E3Skg7QUE4Sk8sc0JBQWdCO0FBQ3BCO0FBRUEsS0F0Skg7QUF1Sk8sY0FBUSxLQUFLLElBQUksbUJBQW1CLEVBQUUsR0FBRztBQUV6QyxPQUFDO0FBQ0csb0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBQ0o7QUFFQSxHQUFDO0FBQ0cscUJBQWlCO0FBQ2pCLG9CQUFnQjtBQUVoQixLQTlLSDtBQStLTyxzQkFBZ0I7QUFDcEI7QUFFQSxLQXZLSDtBQXdLTyxjQUFRLEVBQUUsS0FBSyxJQUFJLG1CQUFtQixFQUFFO0FBRXhDLE9BQUM7QUFDRyxzQkFBYyxJQUFJO0FBQ3RCO0FBQ0o7QUFDSjtBQUVBLEdBQUM7QUFDRyxxQkFBaUI7QUFDakIsb0JBQWdCO0FBRWhCLEtBL0xIO0FBZ01PLHNCQUFnQjtBQUNwQjtBQUVBLEtBeExIO0FBeUxPLGNBQVEsRUFBRSxLQUFLLElBQUksbUJBQW1CLEVBQUU7QUFFeEMsT0FBQztBQUNHLHFCQUFhLElBQUk7QUFDckI7QUFDSjtBQUNKO0FBR0EsR0FBQztBQUFBLEVBQ0QsQ0FBQztBQUFBLEVBQ0QsQ0FBQztBQUNHLEtBck1IO0FBc01PLGdCQUFVO0FBQ1YsY0FBUTtBQUNaO0FBRUEsS0ExTUgsZ0JBME1vQjtBQUNiLGNBQVE7QUFDWjtBQUNKO0FBQUE7OztBQ3pQQTtBQVVBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsY0FBVTtBQUNWLGFBQVM7QUFDVCxjQUFVO0FBQ1Ysb0JBQWdCO0FBSWhCLEtBQUMsQ0FBQztBQUNFLGVBQVM7QUFFVCxRQUFFLENBQUM7QUFDQyxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxLQUFDO0FBQ0csc0JBQWdCO0FBQ2hCLGtCQUFZO0FBQ1osYUFBTztBQUNQLDRCQUFzQjtBQUV0QixPQUFDLENBQUM7QUFDRSxvQkFBWTtBQUNoQjtBQUNKO0FBRUEsS0FBQyxDQUFDLFVBQVUsQ0FYWDtBQVlHLGtCQUFZO0FBQ2hCO0FBRUEsS0FBQyxDQUFDLFlBQVksQ0FmYjtBQWdCRyxrQkFBWTtBQUNoQjtBQUVBLEtBQUMsQ0FBQyxXQUFXLENBbkJaO0FBb0JHLGtCQUFZO0FBQ2hCO0FBRUEsS0E1Qk87QUE2QkgsY0FBUTtBQUNSLGVBQVM7QUFDVCxjQUFRO0FBQ1IsZ0JBQVU7QUFDVixlQUFTO0FBQ1QsZ0JBQVU7QUFDVixhQUFPO0FBQ1Asa0JBQVk7QUFDWixzQkFBZ0I7QUFDaEIsZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLFdBQUs7QUFDVDtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1o7QUFFQSxLQWpETyxnQkFpRFUsQ0FBQztBQUNkLGFBQU8sSUFBSTtBQUNYLG1CQUFhLElBQUk7QUFDakIsb0JBQWMsSUFBSTtBQUNsQixpQkFBVyxJQUFJO0FBQ2YsdUJBQWlCLElBQUk7QUFDckIsd0JBQWtCLElBQUk7QUFDdEIsZ0JBQVUsSUFBSTtBQUNkLHNCQUFnQixJQUFJO0FBQ3BCLHVCQUFpQixJQUFJO0FBRXJCLGVBQVM7QUFDVCxxQkFBZTtBQUNmLGFBQU8sSUFBSTtBQUNYO0FBQUEsUUFBWSxXQUFXLElBQUksb0NBQW9DO0FBQUEsUUFBRSxNQUFNLElBQUksb0NBQW9DO0FBQUEsUUFDM0csYUFBYSxJQUFJLG9DQUFvQztBQUFBLFFBQUUsY0FBYyxJQUFJO0FBRTdFLE9BQUM7QUFDRyxpQkFBUztBQUNiO0FBRUEsT0FBQztBQUNHLGtCQUFVO0FBQ1YsYUFBSztBQUNMLGNBQU07QUFDTixnQkFBUTtBQUNSLG1CQUFXLFVBQVUsSUFBSSxFQUFFO0FBQzNCLG1CQUFXLElBQUk7QUFDZixxQkFBYTtBQUNqQjtBQUdBLE9BQUMsQ0FBQztBQUNFLG1CQUFXLElBQUk7QUFDZix5QkFBaUIsSUFBSTtBQUNyQiwwQkFBa0IsSUFBSTtBQUMxQjtBQUNKO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFDakI7QUFHQSxLQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyw0QkFBNEIsQ0FBQztBQUN0RCxPQVZIO0FBV08saUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BVkg7QUFXTyxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFHQSxLQUFDLENBQUM7QUFDRSxPQXhHSDtBQXlHTyw0QkFBb0IsS0FBSyxJQUFJLDhCQUE4QixFQUFFLElBQUk7QUFDckU7QUFFQSxPQWpIRyxnQkFpSGMsQ0FoRUg7QUFpRVYsbUJBQVc7QUFDWCx5QkFBaUI7QUFDakIsMEJBQWtCO0FBQ2xCLGdCQUFRLEtBQUssSUFBSSxFQUFFO0FBQ25CLGVBQU87QUFDWDtBQUVBLE9BekhHLGdCQXlIYyxDQWhGcEI7QUFpRk8sYUFBSztBQUNMLGlDQUF5QixLQUFLLElBQUksc0NBQXNDLEVBQUU7QUFDOUU7QUFFQSxPQTlIRyxnQkE4SGMsQ0FqRnBCO0FBa0ZPLGdCQUFRO0FBQ1Isb0NBQTRCLEtBQUssSUFBSSxzQ0FBc0MsRUFBRTtBQUNqRjtBQUNKO0FBRUEsS0FBQyxDQXhCQyxpQkF3QmlCLENBQUM7QUFDaEIsT0FySUcsZ0JBcUljLENBcEZIO0FBcUZWLGVBQU87QUFDUCxjQUFNO0FBQ1Y7QUFFQSxPQTFJRyxnQkEwSWMsQ0FqR3BCO0FBa0dPLGlDQUF5QjtBQUN6QixnQ0FBd0IsS0FBSyxJQUFJLHNDQUFzQyxFQUFFO0FBQzdFO0FBRUEsT0EvSUcsZ0JBK0ljLENBbEdwQjtBQW1HTyxvQ0FBNEI7QUFDNUIsbUNBQTJCLEtBQUssSUFBSSxzQ0FBc0MsRUFBRTtBQUNoRjtBQUNKO0FBR0EsS0FBQyxDQXJESyxxQkFxRGlCLENBakp0QjtBQWtKRyxrQkFBWTtBQUNaLHNCQUFnQixLQUFLLElBQUksOEJBQThCLEVBQUUsSUFBSTtBQUNqRTtBQUVBLEtBQUMsQ0ExREsscUJBMERpQixDQTNKaEIsZ0JBMkppQyxDQTFHdEI7QUFBQSxJQTJHbEIsQ0FBQyxDQTNENEIsMkJBMkRBLENBNUp0QixnQkE0SnVDLENBM0c1QjtBQTRHZCxXQUFLO0FBQ0wsY0FBUTtBQUNSLGNBQVE7QUFDWjtBQUVBLEtBQUMsQ0FqRUs7QUFrRUYsT0FuS0csZ0JBbUtjLENBMUhwQjtBQTJITyxlQUFPO0FBQ1AsY0FBTTtBQUNOLHVCQUFlLEVBQUUsSUFBSSxzQ0FBc0MsSUFBSSxzQ0FBc0M7QUFDekc7QUFFQSxPQXpLRyxnQkF5S2MsQ0E1SHBCO0FBNkhPLGNBQU07QUFDTixlQUFPO0FBQ1AsdUJBQWUsSUFBSSxzQ0FBc0MsRUFBRSxFQUFFLElBQUk7QUFDckU7QUFDSjtBQUVBLEtBQUMsQ0EvRUssb0JBK0VnQixDQTVDRjtBQTZDaEIsT0FqTEcsZ0JBaUxjLENBeElwQjtBQXlJTyxlQUFPO0FBQ1AsY0FBTTtBQUNOLHVCQUFlLElBQUksc0NBQXNDLEVBQUUsRUFBRSxJQUFJO0FBQ3JFO0FBRUEsT0F2TEcsZ0JBdUxjLENBMUlwQjtBQTJJTyxjQUFNO0FBQ04sZUFBTztBQUNQLHVCQUFlLEVBQUUsSUFBSSxzQ0FBc0MsSUFBSSxzQ0FBc0M7QUFDekc7QUFDSjtBQUdBLEtBQUMsQ0E5RjRCO0FBK0Z6QixPQTNMSDtBQTRMTyw0QkFBb0IsS0FBSyxJQUFJLDhCQUE4QixFQUFFLEVBQUUsRUFBRSxJQUFJO0FBQ3pFO0FBRUEsT0FwTUcsZ0JBb01jLENBM0pwQjtBQTRKTyxlQUFPO0FBQ1AsdUJBQWUsRUFBRSxJQUFJLHNDQUFzQyxJQUFJLHNDQUFzQztBQUN6RztBQUVBLE9Bek1HLGdCQXlNYyxDQTVKcEI7QUE2Sk8sZUFBTyxLQUFLLElBQUksOEJBQThCLEVBQUU7QUFDaEQsdUJBQWU7QUFDbkI7QUFDSjtBQUVBLEtBQUMsQ0E5RzRCLDBCQThHRCxDQTNFUjtBQTRFaEIsT0EzTUg7QUE0TU8sNEJBQW9CLElBQUk7QUFDeEIsOEJBQXNCLEtBQUssSUFBSSw4QkFBOEIsRUFBRSxFQUFFLEVBQUUsSUFBSTtBQUMzRTtBQUVBLE9Bck5HLGdCQXFOYyxDQTVLcEI7QUE2S08sZUFBTztBQUNQLGNBQU07QUFDTix1QkFBZSxJQUFJLHNDQUFzQyxFQUFFLEVBQUUsSUFBSTtBQUNyRTtBQUVBLE9BM05HLGdCQTJOYyxDQTlLcEI7QUErS08sZUFBTztBQUNQLGNBQU0sS0FBSyxJQUFJLDhCQUE4QixFQUFFO0FBQ25EO0FBQ0o7QUFHQSxLQUFDLENBakl5RDtBQWtJdEQsT0E5Tkg7QUErTk8sb0JBQVk7QUFDWix1QkFBZSxLQUFLLElBQUksOEJBQThCLEVBQUUsSUFBSTtBQUM1RCx3QkFBZ0IsSUFBSTtBQUN4QjtBQUVBLE9Bek9HLGdCQXlPYyxDQXhMSDtBQXlMVixjQUFNO0FBQ04sZUFBTztBQUNQLGVBQU87QUFDUCxnQkFBUSxJQUFJO0FBQ2hCO0FBRUEsT0FoUEcsZ0JBZ1BjLENBdk1wQjtBQXdNTyxhQUFLO0FBQ0wsdUJBQWUsSUFBSSxzQ0FBc0MsSUFBSSxzQ0FBc0MsRUFBRTtBQUN6RztBQUVBLE9BclBHLGdCQXFQYyxDQXhNcEI7QUF5TU8sZ0JBQVE7QUFDUix1QkFBZSxFQUFFLEVBQUUsSUFBSSxzQ0FBc0MsSUFBSTtBQUNyRTtBQUNKO0FBR0EsS0FBQyxLQUFLLEVBQUUsQ0FBQyxnQkFBZ0IsQ0E1UGxCLGlCQTRQb0MsQ0F0THRDO0FBdUxELGlCQUFXLElBQUk7QUFDbkI7QUFFQSxLQUFDLEtBQUssRUFBRSxDQUFDLGdCQUFnQixDQWhRbEIsaUJBZ1FvQyxDQTFMdEM7QUEyTEQsaUJBQVcsSUFBSTtBQUNuQjtBQUNKO0FBRUEsR0FBQyxRQUFRLENBalJSO0FBa1JHLFdBQU87QUFFUCxLQW5RQztBQW9RRyxhQUFPO0FBQ1g7QUFDSjtBQUdBLEdBMVJDLFNBMFJTLENBN0xBO0FBOExOLEtBMVFDO0FBQUEsSUEyUUQsQ0EzUUMsZUEyUWUsSUFBSSxRQUFRLFFBQVEsQ0FBQyxlQUFlLENBQUM7QUFDakQsb0JBQWMsSUFBSTtBQUN0QjtBQUVBLEtBcFJPO0FBcVJILGlCQUFXLElBQUk7QUFDZix1QkFBaUIsSUFBSTtBQUNyQix3QkFBa0IsSUFBSTtBQUMxQjtBQUNKO0FBQUE7OztBQy9TQTtBQVNBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsY0FBVTtBQUNWLG1CQUFlLElBQUk7QUFFbkIsTUFBRSxDQUFDO0FBQ0MsY0FBUTtBQUdSLE9BQUMsS0FBSyxFQUFFLENBQUM7QUFDTCxpQ0FBeUI7QUFDekIsK0JBQXVCO0FBQ3ZCLGlDQUF5QjtBQUM3QjtBQUVBLE9BQUM7QUFDRyxpQkFBUztBQUNiO0FBQ0o7QUFFQSxLQWZHLFFBZU0sQ0FYSTtBQVlULGlDQUEyQjtBQUMzQiwrQkFBeUI7QUFFekIsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFDSjtBQUdBLEtBQUMsQ0FBQztBQUNFLGtCQUFZLElBQUk7QUFFaEIsUUFBRSxDQTVCSCxRQTRCWSxLQUFLO0FBQ1osb0JBQVk7QUFDaEI7QUFDSjtBQUVBLEtBQUMsQ0FBQztBQUNFLHFCQUFlLElBQUk7QUFFbkIsUUFBRSxDQXBDSCxRQW9DWTtBQUNQLG1DQUEyQixJQUFJO0FBQy9CLGlDQUF5QixJQUFJO0FBQ2pDO0FBRUEsT0F6Q0QsUUF5Q1UsQ0FyQ0E7QUFzQ0wsaUNBQXlCLElBQUk7QUFDN0IsK0JBQXVCLElBQUk7QUFDL0I7QUFDSjtBQUdBLEtBQUM7QUFDRyxpQkFBVztBQUNmO0FBQ0o7QUFFQSxHQUxLO0FBTUQsV0FBTztBQUVQLEtBQUM7QUFDRyxnQkFBVTtBQUNWLGVBQVM7QUFDVCxjQUFRO0FBQ1IsZUFBUyxJQUFJO0FBRWIsc0JBQWdCLElBQUk7QUFDcEIscUJBQWUsRUFBRTtBQUNqQixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUVYLE9BQUMsd0JBQXdCLENBQUM7QUFDdEIsaUJBQVMsSUFBSSwwQkFBMEIsSUFBSTtBQUMzQyw4QkFBc0IsS0FBSyxFQUFFLEVBQUUsSUFBSSwwQkFBMEIsRUFBRSxJQUFJO0FBQ3ZFO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDYixrQkFBVTtBQUNWLDRCQUFvQixLQUFLLEVBQUUsRUFBRSxJQUFJO0FBQ2pDLGFBQUs7QUFDTCxvQkFBWSxLQUFLLElBQUksZUFBZSxFQUFFO0FBQ3RDLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFFQSxLQWZLO0FBZ0JELGFBQU87QUFDWDtBQUVBLEtBQUM7QUFDRyxnQkFBVTtBQUNkO0FBRUEsS0FBQztBQUNHLGFBQU87QUFDWDtBQUNKO0FBRUEsR0FBQztBQUNHLEtBckdIO0FBc0dPLGVBQVM7QUFDVCxhQUFPO0FBRVAsT0FwR0Q7QUFxR0ssY0FBTSxFQUFFLEVBQUU7QUFDVixlQUFPO0FBRVAsU0FBQyxDQXBHSTtBQXFHRCxnQkFBTSxFQUFFLEVBQUU7QUFDVixpQkFBTyxJQUFJO0FBRVgsV0FBQyxDQUFDO0FBQ0UsbUJBQU8sSUFBSTtBQUNmO0FBRUEsV0FBQyxDQUFDO0FBQ0UsbUJBQU8sSUFBSTtBQUNmO0FBQ0o7QUFDSjtBQUNKO0FBQ0o7QUFBQTs7O0FDcElBO0FBT0EsR0FBQztBQUNHLGFBQVM7QUFDVCxlQUFXO0FBQ1gsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxZQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG1CQUFlLElBQUk7QUFFbkIsS0FBQztBQUNHLGdCQUFVO0FBQ1YsZUFBUztBQUNULGtCQUFZLElBQUk7QUFDaEIsa0JBQVksV0FBVyxJQUFJO0FBRTNCLE9BQUM7QUFDRyxvQkFBWSxJQUFJO0FBQ2hCLHVCQUFlLElBQUk7QUFDbkIsdUJBQWU7QUFDZjtBQUFBLFVBQVksV0FBVyxJQUFJLGlDQUFpQztBQUFBLFVBQUUsY0FBYyxJQUFJLGlDQUFpQztBQUFBLFVBQzdHLFdBQVcsSUFBSTtBQUN2QjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxFQUFFO0FBQ2Y7QUFFQSxPQUFDLGVBQWUsRUFBRSxDQVpqQjtBQUFBLE1BYUQsQ0FiQyx3QkFhd0I7QUFDckIsaUJBQVMsSUFBSSxzQ0FBc0MsSUFBSSxzQ0FBc0MsSUFBSTtBQUNqRyx3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFFQSxLQUFDO0FBQ0csa0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBRUEsR0FBQztBQUNHLGVBQVc7QUFDZjtBQUVBLEdBQUM7QUFDRyxhQUFTO0FBQ2I7QUFHQSxHQVRDLGlCQVNpQixDQWhEakI7QUFpREcsZUFBVztBQUNYLFlBQVEsRUFBRTtBQUNWLG1CQUFlO0FBQ25CO0FBRUEsR0E5Q0s7QUErQ0QsZUFBVztBQUNYLGlCQUFhO0FBQ2IsYUFBUztBQUNULGlCQUFhO0FBQ2IscUJBQWlCO0FBQ3JCO0FBRUEsR0FBQztBQUNHLEtBQUMsQ0FBQztBQUNFLGNBQVE7QUFDUiwyQkFBcUI7QUFDckIsbUJBQWE7QUFDakI7QUFFQSxNQUFFLENBN0REO0FBOERHLGNBQVE7QUFFUixRQUFFLENBMUREO0FBMkRHLGVBQU87QUFDUCxnQkFBUSxJQUFJO0FBQ2hCO0FBQ0o7QUFDSjtBQUVBLEdBQUM7QUFDRyxvQkFBZ0I7QUFFaEIsS0FBQyxDQW5CQztBQW9CRSxjQUFRO0FBQ1IsMkJBQXFCO0FBQ3JCLG1CQUFhO0FBQ2pCO0FBRUEsTUFBRSxDQWhGRDtBQWlGRyxjQUFRO0FBRVIsUUFBRSxDQTdFRDtBQThFRyxlQUFPLElBQUk7QUFDWCxnQkFBUTtBQUNaO0FBQ0o7QUFDSjtBQUFBOzs7QUN2R0E7QUFNQSxHQUFDLFdBQVcsQ0FBQztBQUNULGNBQVU7QUFDVixnQkFBWSxJQUFJO0FBQ2hCLFdBQU8sSUFBSTtBQUNYLGdCQUFZLFdBQVcsSUFBSTtBQUMvQjtBQUFBOzs7QUNYQTtBQVlBLEdBQUM7QUFDRyxjQUFVO0FBRVYsS0FBQztBQUNHLGdCQUFVO0FBQ1YsY0FBUTtBQUNSLFdBQUs7QUFDTCx3QkFBa0I7QUFDbEIsYUFBTztBQUNQLGNBQVE7QUFDUixlQUFTO0FBQ1QsMkJBQXFCO0FBQ3JCLG1CQUFhO0FBQ2Isa0JBQVk7QUFDaEI7QUFDSjtBQUVBLEdBQUMsU0FBUyxDQWpCVDtBQWtCRyxhQUFTO0FBQ1QsaUJBQWE7QUFDYixTQUFLLElBQUk7QUFFVCxLQUFDLENBQUM7QUFDRSxlQUFTO0FBQ2I7QUFHQSxNQUFFLENBQUM7QUFDQyxtQkFBYTtBQUNiLGFBQU8sSUFBSTtBQUNYLGlCQUFXLElBQUk7QUFDbkI7QUFHQSxLQS9CQztBQWdDRyxlQUFTO0FBQ1QsbUJBQWE7QUFDYix1QkFBaUI7QUFDakIsY0FBUSxJQUFJLDBCQUEwQixNQUFNLElBQUk7QUFDaEQscUJBQWU7QUFDZixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGtCQUFZLElBQUk7QUFDaEIsdUJBQWlCO0FBQ2pCLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSxnQ0FBZ0M7QUFBQSxRQUFFLE1BQU0sSUFBSSxnQ0FBZ0M7QUFBQSxRQUNuRyxjQUFjLElBQUksZ0NBQWdDO0FBQUEsUUFBRSxXQUFXLElBQUk7QUFFdkUsT0FBQztBQUNHLDBCQUFrQixnQkFBZ0IsSUFBSSxrQkFBa0IsRUFBRSxJQUFJO0FBQ2xFO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUksMkNBQTJDLElBQUksMkNBQTJDLElBQUk7QUFDM0csd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2IsZUFBTztBQUNQLG1CQUFXLElBQUk7QUFDbkI7QUFDSjtBQUlBLEtBQUMsQ0FBQyxtQkFBbUIsQ0FoRXBCO0FBQUEsSUFpRUQsQ0FBQyxDQUFDLGlCQUFpQixDQWpFbEI7QUFrRUcsZ0JBQVU7QUFDVixhQUFPO0FBQ1AsbUJBQWE7QUFDYiwyQkFBcUI7QUFDckIsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJO0FBQ1osY0FBUSxFQUFFO0FBQ1YscUJBQWUsSUFBSTtBQUN2QjtBQUNKO0FBQUE7OztBQzFGQTtBQVFBLEdBQUM7QUFDRyxjQUFVO0FBRVY7QUFDSSx1QkFBaUI7QUFDakIsZUFBUztBQUNULGNBQVE7QUFDUixlQUFTO0FBQ2I7QUFFQSxLQUFDO0FBQ0csZ0JBQVU7QUFDVixlQUFTO0FBQ1QsdUJBQWlCO0FBQ2pCLFlBQU0sRUFBRSxFQUFFO0FBQ1Ysa0JBQVk7QUFDWixrQkFBWTtBQUVaLGVBQVM7QUFHVCxPQUFDO0FBQ0csaUJBQVM7QUFFVCxvQkFBWSxJQUFJLE1BQU0sSUFBSTtBQUMxQixlQUFPO0FBQ1AsYUFBSyxLQUFLLElBQUksNEJBQTRCLEVBQUUsRUFBRSxFQUFFO0FBQ2hELDRCQUFvQjtBQUNwQixpQkFBUztBQUNULGtCQUFVO0FBQ2Q7QUFFQSxPQUFDLFlBQVk7QUFDVCxlQUFPO0FBQ1AsNEJBQW9CO0FBQ3hCO0FBRUEsT0FBQyxXQUFXO0FBQ1IsZUFBTztBQUNYO0FBRUEsT0FBQyxXQUFXO0FBQ1IsaUJBQVM7QUFDYjtBQUVBLE9BQUM7QUFDRyx5QkFBaUI7QUFDakIsa0JBQVU7QUFDVixvQkFBWTtBQUNaLGlCQUFTO0FBQ1Qsd0JBQWdCO0FBQ2hCLHFCQUFhO0FBQ2IsYUFBSyxJQUFJO0FBQ1QsbUJBQVc7QUFDWCxvQkFBWTtBQUNaLGlCQUFTO0FBR1QsdUJBQWUsSUFBSTtBQUNuQix1QkFBZTtBQUNmLG9CQUFZLGNBQWMsSUFBSSw4QkFBOEIsRUFBRSxXQUFXLElBQUk7QUFFN0UsU0FBQztBQUNHLG1CQUFTLElBQUksc0NBQXNDLElBQUksc0NBQXNDLElBQUk7QUFDakcsMEJBQWdCLElBQUk7QUFDcEIsc0JBQVksSUFBSTtBQUNwQjtBQUVBLFNBQUM7QUFDRyxtQkFBUztBQUNULHVCQUFhO0FBQ2IsMkJBQWlCO0FBQ2pCLG9CQUFVO0FBQ1YsbUJBQVM7QUFDVCxpQkFBTyxJQUFJO0FBQ1gsc0JBQVksSUFBSTtBQUNoQixrQkFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixzQkFBWSxJQUFJO0FBQ2hCLHFCQUFXLElBQUk7QUFDZixrQkFBUSxJQUFJO0FBQ1osdUJBQWEsSUFBSTtBQUNqQixxQkFBVyxJQUFJO0FBQ2YsdUJBQWEsSUFBSTtBQUNqQixtQkFBUztBQUNULGtCQUFRO0FBQ1IseUJBQWUsSUFBSTtBQUVuQixXQUFDO0FBQ0csdUJBQVcsSUFBSTtBQUNmLHlCQUFhO0FBQ2pCO0FBQ0o7QUFFQSxTQUFDO0FBQ0cscUJBQVc7QUFDWCxvQkFBVTtBQUNWLHlCQUFlO0FBQ2YsbUJBQVM7QUFDVCxpQkFBTyxJQUFJO0FBQ1gsdUJBQWEsSUFBSTtBQUNyQjtBQUNKO0FBRUEsT0FBQyxDQUFDO0FBQ0UsU0FwQ0M7QUFxQ0csc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ1gsd0JBQWMsSUFBSTtBQUN0QjtBQUdBLFNBbEJDO0FBbUJHLGlCQUFPLElBQUk7QUFDZjtBQUNKO0FBQ0o7QUFFQSxLQTNHQyxZQTJHWSxDQWRQLGlCQWN5QixLQUFLLENBQUMseUJBQXlCLENBeEV6RDtBQUFBLElBeUVMLENBNUdDLFlBNEdZLENBQUMsaUJBQWlCLENBekUxQjtBQTBFRCxjQUFRO0FBQ1o7QUFFQSxLQTdCUztBQThCTCxlQUFTO0FBQ1QsbUJBQWE7QUFDakI7QUFFQSxZQUFPLFdBQVk7QUFDZixPQXRISCxhQXNIaUIsQ0FuQ1Q7QUFvQ0QsaUJBQVM7QUFDYjtBQUNKO0FBQ0o7QUFFQSxHQXRJQyxPQXNJTyxLQUFLLENBQUMsa0JBQWtCLENBNUgzQixZQTRId0MsQ0FqQkosd0JBaUI2QixDQXpGN0Q7QUEwRkwsWUFBUTtBQUNaO0FBQUE7OztBQ2hKQTtBQVFBLEdBQUM7QUFDRyxLQUFDO0FBRUcsY0FBUSxLQUFLLElBQUksa0JBQWtCLEVBQUUsSUFBSSxFQUFFLEVBQUU7QUFDN0MsZUFBUyxLQUFLLElBQUksa0JBQWtCLEVBQUUsR0FBRyxFQUFFLEVBQUU7QUFDN0Msa0JBQVksSUFBSTtBQUNoQixlQUFTO0FBQ1QsaUJBQVc7QUFDWCxnQkFBVTtBQUNWLGtCQUFZO0FBRVosT0FBQztBQUNHLGlCQUFTO0FBQ1QsaUJBQVM7QUFDVCxrQkFBVTtBQUNWLHNCQUFjO0FBQ2Qsc0JBQWMsSUFBSTtBQUNsQixzQkFBYyxJQUFJO0FBQ2xCLGNBQU07QUFDTixnQkFBUTtBQUNSLGVBQU87QUFDWDtBQUVBLE9BQUM7QUFDRyxrQkFBVTtBQUNWLG9CQUFZO0FBQ1osaUJBQVM7QUFDVCxxQkFBYTtBQUNiLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBRVgsZ0JBQVE7QUFDUixzQkFBYztBQUNkLHNCQUFjLElBQUk7QUFDbEIsc0JBQWMsSUFBSTtBQUNsQixnQkFBUTtBQUNSLGlCQUFTO0FBQ1QscUJBQWE7QUFDYixxQkFBYTtBQUNiLHVCQUFlO0FBQ2Y7QUFBQSxVQUFZLFdBQVcsSUFBSSxnQ0FBZ0M7QUFBQSxVQUFFLGFBQWEsSUFBSSxnQ0FBZ0M7QUFBQSxVQUMxRyxNQUFNLElBQUksZ0NBQWdDO0FBQUEsVUFBRSxjQUFjLElBQUksZ0NBQWdDO0FBQUEsVUFDOUYsV0FBVyxJQUFJO0FBRW5CO0FBQ0ksaUJBQU8sSUFBSTtBQUNYLG1CQUFTLElBQUk7QUFDYix1QkFBYSxJQUFJO0FBQ2pCLG1CQUFTO0FBQ1QsdUJBQWE7QUFDYixlQUFLLElBQUk7QUFDVCx1QkFBYTtBQUNiLDJCQUFpQjtBQUNqQixtQkFBUyxFQUFFO0FBQ1gsc0JBQVksTUFBTSxJQUFJO0FBRXRCLFdBQUM7QUFDRyxtQkFBTyxJQUFJO0FBQ1gsd0JBQVksTUFBTSxJQUFJO0FBQzFCO0FBQ0o7QUFFQSxTQUFDLEtBQUssQ0FBQyxlQUFlLEtBQUssQ0FBQyxpQkFBaUI7QUFBQSxRQUM3QyxDQUFDLENBQUM7QUFDRSxzQkFBWSxJQUFJO0FBQ2hCLHdCQUFjLElBQUk7QUFDdEI7QUFFQSxTQUFDLEtBQUssQ0FOQyxlQU1lLEtBQUssQ0FOQyxpQkFNaUIsT0FBTztBQUFBLFFBQ3BELENBQUMsQ0FOQyxjQU1jO0FBQ1osaUJBQU8sSUFBSTtBQUNmO0FBRUEsU0FBQyxLQUFLLENBWEMsZUFXZSxLQUFLLENBWEMsaUJBV2lCLE9BQU8sRUFBRSxDQWpCakQ7QUFBQSxRQWtCTCxDQUFDLENBWEMsY0FXYyxFQUFFLENBbEJiO0FBbUJELGlCQUFPLElBQUk7QUFDZjtBQUVBLFNBQUMsQ0FoQk07QUFpQkgsc0JBQVksSUFBSTtBQUNoQix3QkFBYyxJQUFJO0FBRWxCO0FBQ0ksbUJBQU8sSUFBSTtBQUVYLGFBN0JIO0FBOEJPLHFCQUFPLElBQUk7QUFDZjtBQUNKO0FBQ0o7QUFHQSxTQUFDLENBQUMsa0JBQWtCO0FBQUEsUUFDcEIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNMLG1CQUFTLElBQUksbUNBQW1DLElBQUksbUNBQW1DLElBQUk7QUFDM0YsMEJBQWdCLElBQUk7QUFDcEIsc0JBQVksSUFBSTtBQUNoQixtQkFBUztBQUNiO0FBQ0o7QUFDSjtBQUNKO0FBR0EsR0F4R0MsU0F3R1MsQ0FBQyxjQUFjLENBdkdwQjtBQXdHRCxLQUFDO0FBQ0csb0JBQWMsSUFBSSxFQUFFLEVBQUU7QUFDdEIsY0FBUTtBQUNSLFdBQUs7QUFDVDtBQUVBLEtBeEZLO0FBeUZELG9CQUFjLElBQUksRUFBRSxFQUFFO0FBQzFCO0FBQ0o7QUFHQSxHQXJIQyxTQXFIUyxDQUFDLFlBQVksQ0FwSGxCO0FBcUhELG9CQUFnQjtBQUVoQixLQUFDO0FBQ0csb0JBQWMsRUFBRSxJQUFJLEVBQUU7QUFDdEIsWUFBTTtBQUNOLGFBQU87QUFDUCxhQUFPO0FBQ1AsY0FBUTtBQUNaO0FBRUEsS0F6R0s7QUEwR0Qsb0JBQWMsRUFBRSxJQUFJLEVBQUU7QUFDMUI7QUFDSjtBQUdBLEdBdElDLFNBc0lTLENBQUMsYUFBYSxDQXJJbkI7QUFzSUQsb0JBQWdCO0FBRWhCLEtBQUM7QUFDRyxvQkFBYyxFQUFFLEVBQUUsRUFBRTtBQUNwQixhQUFPO0FBQ1AsY0FBUTtBQUNaO0FBRUEsS0F4SEs7QUF5SEQsb0JBQWMsRUFBRSxFQUFFLEVBQUU7QUFDeEI7QUFDSjtBQUdBLEdBckpDLFNBcUpTLElBQUksQ0E3Q0gsZUE2Q21CLENBaENuQixhQWdDaUMsQ0FmakMsY0FlZ0QsQ0FwSnRELGNBb0pxRSxDQTlIakU7QUErSEwsS0FBQyxDQXZGUztBQXdGTixvQkFBYyxJQUFJO0FBQ3RCO0FBRUEsS0FBQyxDQTVGYztBQTZGWCxvQkFBYyxJQUFJO0FBQ3RCO0FBQ0o7QUFBQTs7O0FDcktBO0FBVUEsR0FBQztBQUVHLGNBQVU7QUFHVixLQUFDO0FBQ0csZUFBUztBQUNULGdCQUFVO0FBQ1YsY0FBUTtBQUNSLGVBQVM7QUFDVCxrQkFBWSxJQUFJO0FBQ2hCLG9CQUFjO0FBQ2Qsb0JBQWMsSUFBSTtBQUNsQixvQkFBYyxJQUFJO0FBQ2xCLHFCQUFlO0FBRWY7QUFDSSxvQkFBWTtBQUNaLGtCQUFVO0FBQ1YsZ0JBQVE7QUFDUixpQkFBUztBQUNULHFCQUFhO0FBQ2IsaUJBQVM7QUFDVCx3QkFBZ0I7QUFHaEIsU0FBQztBQUNHLHVCQUFhO0FBQ2pCO0FBRUE7QUFDSSwyQkFBaUI7QUFDakIsbUJBQVM7QUFDVCxrQkFBUTtBQUNaO0FBRUEsU0FBQyxDQUFDLGdCQUFnQjtBQUFBLFFBQ2xCLENBQUMsQ0FBQyxpQkFBaUI7QUFDZixrQkFBUTtBQUNaO0FBRUEsVUFBRSxDQUFDO0FBQ0Msa0JBQVE7QUFDWjtBQUdBLFNBQUMsQ0FBQztBQUNFLG1CQUFTO0FBQ1QsdUJBQWE7QUFDYixlQUFLLElBQUk7QUFDVCx1QkFBYTtBQUNiLGtCQUFRLElBQUk7QUFDWixtQkFBUyxJQUFJO0FBQ2Isa0JBQVE7QUFDUiwrQkFBcUI7QUFDckIsdUJBQWE7QUFDYixxQkFBVyxJQUFJO0FBQ2YsdUJBQWEsSUFBSTtBQUNqQixzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDWCx3QkFBYztBQUNkLHdCQUFjLElBQUk7QUFDbEIsd0JBQWMsSUFBSTtBQUNsQix5QkFBZTtBQUNmLHlCQUFlO0FBQ2Y7QUFBQSxZQUFZLFdBQVcsSUFBSSw2QkFBNkI7QUFBQSxZQUFFLGFBQWEsSUFBSSw2QkFBNkI7QUFBQSxZQUNwRyxNQUFNLElBQUksNkJBQTZCO0FBQUEsWUFBRSxjQUFjLElBQUksNkJBQTZCO0FBQUEsWUFDeEYsV0FBVyxJQUFJO0FBQ3ZCO0FBRUEsU0FBQyxDQXhCQyxjQXdCYztBQUNaLG1CQUFTO0FBQ1QsaUJBQU87QUFDUCx1QkFBYSxJQUFJO0FBQ2pCLHVCQUFhLElBQUk7QUFDckI7QUFFQSxTQUFDLENBL0JDLGNBK0JjLENBcENiO0FBcUNDLG1CQUFTLElBQUk7QUFDakI7QUFHQSxTQUFDLENBcENDLGFBb0NhO0FBQ1gsbUJBQVM7QUFDVCxtQkFBUztBQUNULG9CQUFVO0FBQ1YsbUJBQVM7QUFDVCx3QkFBYztBQUNkLGtCQUFRLElBQUk7QUFDWixrQkFBUSxJQUFJO0FBQ1osc0JBQVk7QUFDWiwwQkFBZ0I7QUFDaEIsc0JBQVksV0FBVyxJQUFJO0FBQy9CO0FBRUEsU0FBQyxDQWpEQyxhQWlEYSxDQUFDO0FBQUEsUUFDaEIsQ0FBQyxDQWxEQyxhQWtEYSxLQUFLLENBQUMsZ0JBQWdCLENBM0RuQyxpQkEyRHFEO0FBQ25ELHNCQUFZLElBQUk7QUFDaEIsd0JBQWMsSUFBSTtBQUNsQixpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQUFDLENBeERDLGFBd0RhLENBTk07QUFPakIsc0JBQVksSUFBSTtBQUNoQix3QkFBYyxJQUFJO0FBQ2xCLGlCQUFPLElBQUk7QUFDZjtBQUVBLFNBQUMsQ0E5REMsYUE4RGEsQ0FaTSxjQVlTO0FBQzFCLHNCQUFZLElBQUk7QUFDcEI7QUFHQSxTQUFDLENBbkVDLGFBbUVhLENBQUM7QUFBQSxRQUNoQixDQUFDLENBcEVDLGFBb0VhLENBREMsYUFDYSxLQUFLLENBN0VoQyxpQkE2RWtEO0FBQ2hELGlCQUFPLElBQUk7QUFDWCx3QkFBYyxJQUFJO0FBQ3RCO0FBR0EsU0FBQyxDQTFFQyxhQTBFYSxDQVBDLGFBT2EsQ0F4QlI7QUFBQSxRQXlCckIsQ0FBQyxDQTNFQyxhQTJFYSxDQVJDLGFBUWEsQ0F6QlIsY0F5QnVCLEtBQUssQ0FwRi9DLGlCQW9GaUU7QUFDL0QsaUJBQU8sSUFBSTtBQUNmO0FBRUEsU0FBQyxDQS9FQyxhQStFYSxDQVpDLGFBWWEsQ0E3QlIsY0E2QnVCO0FBQ3hDLHNCQUFZLElBQUk7QUFDcEI7QUFFQSxTQUFDLENBbkZDLGFBbUZhLEtBQUssQ0E1RmxCLGlCQTRGb0MsS0FBSyxFQUFFLENBQUM7QUFDMUMsbUJBQVM7QUFDVCxtQkFBUyxJQUFJLCtCQUErQixJQUFJLCtCQUErQixJQUFJO0FBQ25GLDBCQUFnQixJQUFJO0FBQ3BCLHNCQUFZLElBQUk7QUFDcEI7QUFHQSxTQUFDLENBQUM7QUFDRSxpQkFBTztBQUNQLCtCQUFxQjtBQUNyQixzQkFBWTtBQUNoQjtBQUNKO0FBQ0o7QUFFQSxNQUFFLENBUlEsY0FRTyxDQUFDO0FBQ2QsZUFBUztBQUNiO0FBR0EsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNiLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ2Y7QUFHQSxLQUFDO0FBQ0csa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFFWCxPQUFDO0FBQ0csaUJBQVMsSUFBSTtBQUNiLHVCQUFlO0FBRWYsU0FBQztBQUNHLG1CQUFTLElBQUksb0NBQW9DLElBQUksb0NBQW9DLElBQUk7QUFDN0YsMEJBQWdCLElBQUk7QUFDcEIsc0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBQ0o7QUFFQSxLQVpLO0FBYUQsb0JBQWM7QUFDZCxrQkFBWTtBQUNoQjtBQUdBLEtBQUMsQ0FBQyxXQUFXLEVBQUUsQ0E5S2Q7QUFBQSxJQStLRCxDQUFDLENBQUMsY0FBYyxFQUFFLENBL0tqQjtBQWdMRyxpQkFBVztBQUNmO0FBRUEsS0FBQyxDQUpDO0FBTUUsUUFBRSxDQXJMTDtBQUFBLE1Bc0xHLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQXRMM0I7QUF1TE8sc0JBQWM7QUFFZCxvQkFBWSxJQUFJLE1BQU0sSUFBSTtBQUM5QjtBQUVBLFFBQUUsQ0E1TEwsV0E0TGlCLEVBQUUsRUFBRSxDQW5KWixhQW1KMEI7QUFBQSxNQUNoQyxFQUFFLENBUEMsbUJBT21CLEVBQUUsQ0E3TDNCLFdBNkx1QyxFQUFFLEVBQUUsQ0FwSmxDLGFBb0pnRDtBQUNsRCxhQUFLLElBQUk7QUFDVCxnQkFBUTtBQUNaO0FBQ0o7QUFHQSxLQUFDLENBQUMsWUFBWSxFQUFFLENBcE1mO0FBQUEsSUFxTUQsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQXJNaEI7QUFzTUcsc0JBQWdCO0FBQ2hCLGFBQU87QUFDUCxvQkFBYztBQUNsQjtBQUVBLEtBQUMsQ0FQQyxZQU9ZLEVBQUUsQ0EzTWYsV0EyTTJCO0FBQUEsSUFDNUIsQ0FBQyxDQVBDLGFBT2EsRUFBRSxDQTVNaEIsV0E0TTRCO0FBQ3pCLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQyxDQVpDLFlBWVksRUFBRSxDQWhOZixXQWdOMkIsR0FBRztBQUFBLElBQy9CLENBQUMsQ0FaQyxhQVlhLEVBQUUsQ0FqTmhCLFdBaU40QixHQUFHO0FBQzVCLGFBQU87QUFDWDtBQUVBLEtBQUMsQ0FqQkMsWUFpQlksRUFBRSxDQXJOZixXQXFOMkIsRUFBRSxFQUFFLENBNUt0QjtBQUFBLElBNktWLENBQUMsQ0FqQkMsYUFpQmEsRUFBRSxDQXROaEIsV0FzTjRCLEVBQUUsRUFBRSxDQTdLdkI7QUE4S04sYUFBTztBQUNYO0FBRUEsS0FBQyxDQXRCQyxZQXNCWSxFQUFFLENBbEVmO0FBQUEsSUFtRUQsQ0FBQyxDQXRCQyxhQXNCYSxFQUFFLENBbkVoQjtBQW9FRyxhQUFPO0FBQ1g7QUFFQSxLQUFDLENBM0JDLFlBMkJZLENBM0ZKO0FBQUEsSUE0RlYsQ0FBQyxDQTNCQyxhQTJCYSxDQTVGTDtBQTZGTixnQkFBVTtBQUNWLGNBQVE7QUFDWjtBQUVBLEtBQUMsQ0FqQ0MsWUFpQ1ksRUFBRSxDQXJPZjtBQXVPRyxvQkFBYyxJQUFJLE1BQU0sSUFBSTtBQUNoQztBQUVBLEtBQUMsQ0FyQ0M7QUFzQ0UsUUFBRSxDQTNPTDtBQTRPTyxlQUFPO0FBRVAscUJBQWEsSUFBSSxNQUFNLElBQUk7QUFDL0I7QUFFQSxRQUFFLENBekZMO0FBMEZPLGVBQU87QUFDWDtBQUNKO0FBRUEsS0FBQyxDQWxEQyxZQWtEWSxFQUFFLENBdFBmLFdBc1AyQixFQUFFLEVBQUUsQ0E3TXRCLGFBNk1vQztBQUFBLElBQzlDLENBQUMsQ0FsREMsYUFrRGEsRUFBRSxDQXZQaEIsV0F1UDRCLEVBQUUsRUFBRSxDQTlNdkIsYUE4TXFDO0FBQzNDLG1CQUFhO0FBQ2IsYUFBTyxJQUFJO0FBQ1gsY0FBUTtBQUNaO0FBRUEsS0FBQyxDQXpEQyxZQXlEWSxFQUFFLENBN1BmLFdBNlAyQixFQUFFLEVBQUUsQ0FwTnRCLGFBb05vQztBQUMxQyxvQkFBYyxLQUFLLElBQUk7QUFDM0I7QUFFQSxLQUFDLENBNURDLGFBNERhLEVBQUUsQ0FqUWhCLFdBaVE0QixFQUFFLEVBQUUsQ0F4TnZCLGFBd05xQztBQUMzQyxvQkFBYyxJQUFJLDRCQUE0QjtBQUNsRDtBQUdBLEtBaEZPO0FBaUZILGdCQUFVO0FBQ1YsZ0JBQVU7QUFDVixvQkFBYyxJQUFJO0FBRWxCLE9BQUMsQ0FBQztBQUNFLHNCQUFjO0FBQ2xCO0FBRUEsT0FBQztBQUNHLGlCQUFTO0FBQ1QscUJBQWE7QUFDYix5QkFBaUI7QUFDakIsaUJBQVM7QUFDVCxhQUFLO0FBQ0wsZ0JBQVE7QUFDUixlQUFPLElBQUk7QUFDWCxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNYLGdCQUFRLEVBQUU7QUFDVixvQkFBWSxJQUFJO0FBQ2hCLGlCQUFTLEVBQUU7QUFDWCx1QkFBZTtBQUNmO0FBQUEsVUFBWSxNQUFNLElBQUksNkJBQTZCO0FBQUEsVUFBRSxjQUFjLElBQUksNkJBQTZCO0FBQUEsVUFDaEcsV0FBVyxJQUFJO0FBRW5CLFNBQUMsQ0FBQztBQUNFLGdCQUFNO0FBQ1Y7QUFFQSxTQUFDLENBQUM7QUFDRSxpQkFBTztBQUNYO0FBRUEsU0FBQztBQUNHLG1CQUFTLElBQUk7QUFDakI7QUFFQSxTQUFDO0FBQ0csbUJBQVMsSUFBSTtBQUNqQjtBQUVBLFNBQUMsQ0F0TmU7QUFBQSxRQXVOaEIsQ0FBQyxLQUFLLENBalJKLGlCQWlSc0I7QUFDcEIsc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ2Y7QUFFQSxTQUFDO0FBQ0csbUJBQVM7QUFDVCxtQkFBUyxJQUFJLHNDQUFzQyxJQUFJLHNDQUFzQyxJQUFJO0FBQ2pHLDBCQUFnQixJQUFJO0FBQ3BCLHNCQUFZLElBQUk7QUFDcEI7QUFDSjtBQUNKO0FBRUEsS0FoREs7QUFpREQsZ0JBQVU7QUFDVixjQUFRO0FBQ1o7QUFFQSxLQTlJTyxrQkE4SVksQ0F6RGIsOEJBeUQ0QyxDQXJEN0M7QUFzREQsZUFBUztBQUNiO0FBQ0o7QUFHQSxHQXRJTSxXQXNJTTtBQUFBLEVBQ1osQ0F0SU0sWUFzSU87QUFDVCxXQUFPO0FBQ1AsYUFBUztBQUNULGFBQVM7QUFDVCxZQUFRO0FBQ1IsZ0JBQVk7QUFDaEI7QUFFQSxHQS9JTTtBQWdKRixNQUFFLENBcFZEO0FBcVZHLGFBQU87QUFDWDtBQUVBLE1BQUUsQ0FoTUQ7QUFpTUcsZ0JBQVU7QUFDZDtBQUNKO0FBRUEsR0FBQztBQUNHLGVBQVc7QUFDZjtBQUVBLEdBQUMsa0JBQWtCLEVBQUUsQ0EzS1YsbUJBMks4QixFQUFFLENBald0QztBQWtXRCxXQUFPO0FBQ1g7QUFFQSxHQUFDO0FBQ0csYUFBUztBQUNiO0FBQUE7OztBQ3RYQTtBQVFBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsaUJBQWE7QUFDYixxQkFBaUI7QUFDakIsU0FBSyxJQUFJO0FBQ1QsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxlQUFXLElBQUk7QUFDZixpQkFBYSxJQUFJO0FBQ2pCLGFBQVMsSUFBSTtBQUNiLG1CQUFlLElBQUk7QUFFbkIsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLG1CQUFhLElBQUk7QUFDckI7QUFHQSxLQUFDLEtBQUssQ0FBQztBQUNILGVBQVM7QUFDVCxrQkFBWTtBQUNaLG1CQUFhO0FBQ2pCO0FBRUEsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsQ0FBQztBQUNFLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQUFDLENBQUM7QUFDRSxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUMsQ0FBQztBQUNFLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ2Y7QUFFQSxLQUFDLENBQUM7QUFDRSxrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQUFDO0FBQ0Usa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDZjtBQUdBLEtBQUMsQ0FBQztBQUNFLHVCQUFpQixJQUFJO0FBQ3JCLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsa0JBQVksTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLCtCQUErQixJQUFJO0FBRS9ELE9BQUMsQ0ExQ0g7QUEyQ00seUJBQWlCLElBQUk7QUFDckIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDLENBMUNIO0FBMkNNLHlCQUFpQixJQUFJO0FBQ3JCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxDQTFDSDtBQTJDTSx5QkFBaUIsSUFBSTtBQUNyQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0ExQ0g7QUEyQ00seUJBQWlCLElBQUk7QUFDckIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDLENBMUNIO0FBMkNNLHlCQUFpQixJQUFJO0FBQ3JCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxDQTFDSDtBQTJDTSx5QkFBaUIsSUFBSTtBQUNyQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0ExQ0g7QUEyQ00seUJBQWlCLElBQUk7QUFDckIsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLEtBQUMsQ0FBQztBQUNFLHFCQUFlLElBQUk7QUFDdkI7QUFFQSxLQTlGQztBQStGRyxjQUFRO0FBQ1IsaUJBQVcsSUFBSTtBQUNuQjtBQUdBLEtBQUMsS0FBSyxDQTlGQyxVQThGVSxDQXBHaEI7QUFxR0cseUJBQW1CLElBQUk7QUFDM0I7QUFDSjtBQUFBOzs7QUMzSEE7QUFNQSxHQUFDO0FBQ0csV0FBTztBQUNQLFlBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxhQUFTLElBQUk7QUFDYixtQkFBZSxJQUFJO0FBRW5CO0FBQ0ksY0FBUTtBQUNSLGVBQVM7QUFDVCxrQkFBWTtBQUNaLGVBQVM7QUFDVCxpQkFBVztBQUNYLHVCQUFpQjtBQUNqQixtQkFBYTtBQUNiLFdBQUssSUFBSTtBQUNiO0FBRUE7QUFDSSxjQUFRO0FBQ1IsZUFBUztBQUNULGtCQUFZO0FBQ1osZUFBUztBQUNiO0FBRUEsT0FBRztBQUNDLGVBQVM7QUFDVCx1QkFBaUI7QUFDakIsZUFBUyxJQUFJO0FBQ2IsYUFBTyxJQUFJO0FBQ1gscUJBQWUsSUFBSTtBQUNuQixxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksaUNBQWlDO0FBQUEsUUFBRSxNQUFNLElBQUksaUNBQWlDO0FBQUEsUUFDckcsY0FBYyxJQUFJLGlDQUFpQztBQUFBLFFBQUUsV0FBVyxJQUFJO0FBRXhFLE9BQUM7QUFBQSxNQUNELENBQUMsQ0FBQztBQUNFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSSxvQ0FBb0MsSUFBSSxvQ0FBb0MsSUFBSTtBQUM3Rix3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFDSjtBQUVBLEdBQUM7QUFDRyxlQUFXLElBQUk7QUFDbkI7QUFFQSxHQUFDO0FBQ0csZUFBVyxJQUFJO0FBQ25CO0FBRUEsR0FBQztBQUNHLGVBQVcsSUFBSTtBQUNuQjtBQUVBLEdBQUM7QUFDRyxlQUFXLElBQUk7QUFDbkI7QUFFQSxHQUFDO0FBQ0csZUFBVyxJQUFJO0FBQ25CO0FBQUE7OztBQzFFQTtBQU9BLEdBQUMsTUFBTSxDQUFDO0FBQ0osV0FBTyxJQUFJO0FBQ1gscUJBQWlCLElBQUk7QUFDckIsc0JBQWtCLElBQUk7QUFDdEIsY0FBVSxJQUFJO0FBQ2QsZUFBVyxJQUFJO0FBQ2YscUJBQWlCLElBQUk7QUFDckIsaUJBQWEsSUFBSTtBQUNqQiw0QkFBd0IsSUFBSTtBQUM1QiwyQkFBdUIsSUFBSTtBQUMzQixxQkFBaUIsSUFBSTtBQUNyQixpQkFBYSxJQUFJO0FBQ2pCLG1CQUFlLElBQUk7QUFDbkIsOEJBQTBCLElBQUk7QUFDOUIseUJBQXFCLElBQUk7QUFDekIsK0JBQTJCLElBQUk7QUFDL0IsMEJBQXNCLElBQUk7QUFDMUIsd0JBQW9CLElBQUk7QUFDeEIsOEJBQTBCLElBQUk7QUFDOUIsK0JBQTJCLElBQUk7QUFDL0IsdUJBQW1CLElBQUk7QUFDdkIsNkJBQXlCLElBQUk7QUFDN0IsK0JBQTJCLElBQUk7QUFDL0IsMkJBQXVCLElBQUk7QUFDM0IsaUNBQTZCLElBQUk7QUFDakMsMEJBQXNCLElBQUk7QUFDMUIsa0NBQThCLElBQUk7QUFDbEMsK0JBQTJCLElBQUk7QUFDL0IsMkJBQXVCLElBQUk7QUFDM0IsNkJBQXlCLElBQUk7QUFDN0IsOEJBQTBCLElBQUk7QUFDOUIsd0JBQW9CLElBQUk7QUFDeEIsdUJBQW1CLElBQUk7QUFDM0I7QUFBQTs7O0FDeENBO0FBVUEsR0FBQztBQUNHLGFBQVM7QUFDVCxpQkFBYTtBQUNiLHFCQUFpQjtBQUNyQjtBQUdBLEdBQUM7QUFDRyxLQVJILHVCQVEyQjtBQUNwQixnQkFBVTtBQUNWLDJCQUFxQixJQUFJO0FBQ3pCLGtDQUE0QixJQUFJO0FBQ2hDLDJCQUFxQixPQUFPLEVBQUU7QUFDOUIsZUFBUztBQUNULGlCQUFXLE9BQU87QUFFbEIsUUFBRSxFQUFFO0FBQ0EsaUJBQVM7QUFDVCxtQkFBVyxPQUFPO0FBQ3RCO0FBQ0o7QUFFQSxLQUFDLENBQUMsdUJBQXVCLENBdEI1Qix1QkFzQm9EO0FBQzdDLGVBQVM7QUFDVCxpQkFBVyxPQUFPO0FBRWxCLFFBQUUsRUFBRTtBQUNBLGlCQUFTO0FBQ1QsbUJBQVcsT0FBTztBQUN0QjtBQUNKO0FBR0EsS0FBQyxLQUFLLEtBQUssQ0FqQ2QsdUJBaUNzQztBQUMvQixpQkFBVyxPQUFPO0FBRWxCLFFBQUUsRUFBRTtBQUNBLG1CQUFXLE9BQU87QUFDdEI7QUFDSjtBQUVBLEtBQUMsQ0FuQkMsc0JBbUJzQixLQUFLLEtBQUssQ0F6Q3JDLHVCQXlDNkQ7QUFDdEQsaUJBQVcsT0FBTztBQUVsQixRQUFFLEVBQUU7QUFDQSxtQkFBVyxPQUFPO0FBQ3RCO0FBQ0o7QUFDSjtBQUVBLEdBQUM7QUFFRyxjQUFVLElBQUkscUJBQXFCLEVBQUUsSUFBSTtBQUN6QyxlQUFXLElBQUksc0JBQXNCLEVBQUUsSUFBSTtBQUMzQyxZQUFRLElBQUksbUJBQW1CLEVBQUUsSUFBSTtBQUNyQyxvQkFBZ0IsSUFBSSwyQkFBMkIsRUFBRSxJQUFJO0FBQ3JELHlCQUFxQixJQUFJLGdDQUFnQyxFQUFFLElBQUk7QUFDL0QsY0FBVTtBQUNWLGFBQVM7QUFDVCxXQUFPLElBQUk7QUFDWCxZQUFRLElBQUk7QUFFWixLQUFDO0FBQ0csZ0JBQVU7QUFDVixjQUFRO0FBQ1IsV0FBSztBQUNMLFlBQU07QUFDTixhQUFPO0FBQ1AsY0FBUTtBQUNSLGtCQUFZLElBQUk7QUFDaEIsY0FBUSxJQUFJLCtCQUErQixNQUFNLElBQUk7QUFDckQscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxJQUFJO0FBQ2hCLHFCQUFlO0FBQ2Y7QUFBQSxRQUFZLFdBQVcsSUFBSSxxQ0FBcUM7QUFBQSxRQUFFLE1BQU0sSUFBSSxxQ0FBcUM7QUFBQSxRQUM3RyxhQUFhLElBQUkscUNBQXFDO0FBQUEsUUFBRSxjQUFjLElBQUkscUNBQXFDO0FBQUEsUUFDL0csV0FBVyxJQUFJO0FBQ3ZCO0FBR0EsS0FoRkg7QUFpRk8sZ0JBQVU7QUFDVixXQUFLO0FBQ0wsa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxhQUFPLElBQUk7QUFDWCxjQUFRLElBQUk7QUFDWiwwQkFBb0IsS0FBSyxJQUFJLFFBQVEsRUFBRSxJQUFJO0FBQzNDLGtCQUFZLEtBQUssR0FBRyxFQUFFLElBQUksZ0JBQWdCLEVBQUU7QUFDNUMscUJBQWUsSUFBSTtBQUNuQixrQkFBWSxJQUFJO0FBQ2hCLGlCQUFXLElBQUk7QUFDZixtQkFBYSxJQUFJO0FBQ2pCO0FBQUEsUUFBWSxXQUFXLElBQUkscUNBQXFDO0FBQUEsUUFBRSxNQUFNLElBQUkscUNBQXFDO0FBQUEsUUFDN0csVUFBVSxJQUFJLGlDQUFpQyxJQUFJLHNCQUFzQjtBQUFBLFFBQUUsV0FBVyxJQUFJO0FBQ2xHO0FBRUEsS0FqR0gsdUJBaUcyQjtBQUNwQixpQkFBVyxJQUFJO0FBQ2YsbUJBQWEsSUFBSTtBQUNyQjtBQUdBLEtBQUMsQ0FqRkM7QUFrRkUsT0ExQ0g7QUEyQ08sb0JBQVksSUFBSTtBQUNoQixzQkFBYyxJQUFJO0FBQ3RCO0FBRUEsT0E3R1A7QUE4R1csb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDWCxtQkFBVyxXQUFXLEtBQUssSUFBSSxVQUFVLEVBQUUsSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsSUFBSTtBQUV6RSxTQUFDLEtBQUs7QUFDRixxQkFBVyxXQUFXLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxVQUFVLEVBQUUsSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsSUFBSTtBQUNuRjtBQUNKO0FBQ0o7QUFHQSxLQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUI7QUFDdkMsT0E1REg7QUE2RE8sb0JBQVksSUFBSTtBQUNoQixzQkFBYyxJQUFJO0FBQ3RCO0FBRUEsT0EvSFA7QUFnSVcsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsS0FBQyxDQS9HQyxzQkErR3NCLEtBQUssQ0FadEIsa0JBWXlDLENBWnRCLGlCQVl3QztBQUM5RCxPQXhFSDtBQXlFTyxvQkFBWSxJQUFJO0FBQ2hCLHNCQUFjLElBQUk7QUFDdEI7QUFFQSxPQTNJUDtBQTRJVyxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBQ0o7QUFHQSxLQUFDLENBQUMscUJBQXFCLENBcEZ0QjtBQXFGRyxlQUFTLElBQUksbUNBQW1DLElBQUksbUNBQW1DLElBQUk7QUFDM0Ysc0JBQWdCLElBQUk7QUFDcEIsa0JBQVksSUFBSTtBQUNwQjtBQUdBLEtBM0ZDLHFCQTJGcUIsQ0FBQztBQUFBLElBQ3ZCLENBQUMsT0FBTyxDQTVGUCxxQkE0RjZCLENBRFA7QUFBQSxJQUV2QixDQUFDLENBcklDLHNCQXFJc0IsT0FBTyxDQTdGOUIscUJBNkZvRCxDQUY5QjtBQUduQixvQkFBYyxJQUFJO0FBQ3RCO0FBSUEsS0FBQyxDQXhDTTtBQXlDSCxlQUFTLElBQUk7QUFFYixPQXRHSDtBQXVHTyxnQkFBUTtBQUNSLG9CQUFZLElBQUk7QUFDcEI7QUFFQSxPQXpLUDtBQTBLVyxvQkFBWSxJQUFJO0FBQ3BCO0FBRUEsT0FBQyxDQXZKSDtBQXdKTSxTQWhIUDtBQWlIVyxzQkFBWSxJQUFJO0FBQ3BCO0FBRUEsU0FsTFg7QUFtTGUsc0JBQVksSUFBSTtBQUNwQjtBQUNKO0FBQ0o7QUFHQSxLQUFDLENBaEV5QixpQkFnRVAsQ0EzSGxCO0FBNEhHLGNBQVE7QUFDWjtBQUNKO0FBR0EsR0FBQztBQUNHLDJCQUF1QixJQUFJO0FBQzNCLDRCQUF3QixJQUFJO0FBQzVCLHlCQUFxQixJQUFJO0FBQ3pCLGlDQUE2QixJQUFJO0FBQ2pDLHNDQUFrQyxJQUFJO0FBQzFDO0FBRUEsR0FBQztBQUNHLDJCQUF1QixJQUFJO0FBQzNCLDRCQUF3QixJQUFJO0FBQzVCLHlCQUFxQixJQUFJO0FBQ3pCLGlDQUE2QixJQUFJO0FBQ2pDLHNDQUFrQyxJQUFJO0FBQzFDO0FBQUE7OztBQ3ZOQTtBQUlBLEdBQUM7QUFDRyxhQUFTO0FBQ1QsaUJBQWE7QUFDYixxQkFBaUI7QUFDakIsZUFBVztBQUNYLFNBQUssSUFBSTtBQUNULGFBQVMsSUFBSTtBQUNiLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixtQkFBZSxJQUFJO0FBQ25CLGlCQUFhO0FBRWIsS0FBQztBQUFBLElBQ0QsQ0FBQztBQUNHLFdBQUssSUFBSTtBQUNiO0FBR0EsS0FMQztBQU1HLDJCQUFxQjtBQUN6QjtBQUNKO0FBRUEsR0FYSztBQUFBLEVBWUwsQ0FYSztBQVlELGFBQVM7QUFDVCxpQkFBYTtBQUNiLGVBQVc7QUFDZjtBQUFBOzs7QUNqQ0E7QUFNQSxHQUFDO0FBQ0csY0FBVTtBQUNWLGFBQVM7QUFDVCxlQUFXLElBQUk7QUFFZixLQUFDLENBQUM7QUFBQSxJQUNGLENBQUMsQ0FBQztBQUNFLGVBQVMsRUFBRSxJQUFJO0FBQ25CO0FBRUEsS0FBQyxDQUFDO0FBQUEsSUFDRixDQUFDLENBQUM7QUFDRSxlQUFTLElBQUksb0JBQW9CO0FBQ3JDO0FBRUEsS0FBQztBQUNHLGtCQUFZO0FBQ1osa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxlQUFTLElBQUk7QUFDYixrQkFBWSxJQUFJO0FBQ2hCLHFCQUFlLElBQUk7QUFDbkIsaUJBQVcsSUFBSTtBQUNmLG1CQUFhLElBQUk7QUFHakI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFDSSxpQkFBUztBQUNULG1CQUFXO0FBQ1gsZ0JBQVE7QUFDWjtBQUNKO0FBRUEsS0FBQyxDQS9CQyxnQkErQmdCLENBQUM7QUFDZixrQkFBWSxLQUFLLEdBQUcsRUFBRSxJQUFJO0FBQzFCLG9CQUFjLElBQUksb0JBQW9CLElBQUksb0JBQW9CLElBQUksb0JBQW9CO0FBQ3RGLDBCQUFvQixJQUFJO0FBQzVCO0FBRUEsS0FBQyxDQXBDQyxlQW9DZSxDQU5FO0FBT2Ysa0JBQVksS0FBSyxHQUFHLEVBQUUsSUFBSTtBQUMxQixvQkFBYyxJQUFJLG9CQUFvQixFQUFFLElBQUksb0JBQW9CLElBQUk7QUFDcEUseUJBQW1CLElBQUk7QUFDM0I7QUFFQSxLQUFDLENBdENDLGNBc0NjLENBWkc7QUFhZixtQkFBYSxLQUFLLEdBQUcsRUFBRSxJQUFJO0FBQzNCLG9CQUFjLElBQUksb0JBQW9CLElBQUksb0JBQW9CLEVBQUUsSUFBSTtBQUNwRSx3QkFBa0IsSUFBSTtBQUMxQjtBQUVBLEtBQUMsQ0EzQ0MsaUJBMkNpQixDQWxCQTtBQW1CZixtQkFBYSxLQUFLLEdBQUcsRUFBRSxJQUFJO0FBQzNCLG9CQUFjLEVBQUUsSUFBSSxvQkFBb0IsSUFBSSxvQkFBb0IsSUFBSTtBQUNwRSwyQkFBcUIsSUFBSTtBQUM3QjtBQUdBLEtBOUNDLGNBOENjLENBQUM7QUFDWixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNmO0FBRUEsS0FBQyxDQTdEQyxnQkE2RGdCLENBOUJDLGVBOEJlLENBTGxCO0FBTVosMEJBQW9CLElBQUk7QUFDNUI7QUFFQSxLQUFDLENBaEVDLGVBZ0VlLENBbENFLGVBa0NjLENBVGpCO0FBVVoseUJBQW1CLElBQUk7QUFDM0I7QUFFQSxLQUFDLENBaEVDLGNBZ0VjLENBdENHLGVBc0NhLENBYmhCO0FBY1osd0JBQWtCLElBQUk7QUFDMUI7QUFFQSxLQUFDLENBbkVDLGlCQW1FaUIsQ0ExQ0EsZUEwQ2dCLENBakJuQjtBQWtCWiwyQkFBcUIsSUFBSTtBQUM3QjtBQUNKO0FBRUEsR0EvQ3VCO0FBZ0RuQixjQUFVO0FBQ1YsV0FBTztBQUNQLFlBQVE7QUFDUixrQkFBYztBQUNkLGtCQUFjO0FBQ2xCO0FBRUEsR0F0Rk0sZ0JBc0ZXLENBdkRNO0FBd0RuQixTQUFLO0FBQ0wsVUFBTTtBQUNWO0FBRUEsR0ExRk0sZUEwRlUsQ0E1RE87QUE2RG5CLFNBQUs7QUFDTCxXQUFPO0FBQ1g7QUFFQSxHQTNGTSxjQTJGUyxDQWpFUTtBQWtFbkIsWUFBUTtBQUNSLFVBQU07QUFDVjtBQUVBLEdBL0ZNLGlCQStGWSxDQXRFSztBQXVFbkIsU0FBSztBQUNMLFVBQU07QUFDVjtBQUFBOzs7QUNuSEE7QUFTQSxHQUFDO0FBQ0csY0FBVTtBQUNWLFlBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsZ0JBQVksSUFBSTtBQUNoQixXQUFPLElBQUk7QUFDWCxhQUFTLElBQUk7QUFDYixXQUFPO0FBQ1AsbUJBQWUsSUFBSTtBQUVuQixLQUFDO0FBQ0csa0JBQVksS0FBSyxRQUFRO0FBQ3pCLGNBQVE7QUFDWjtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1IsZUFBUztBQUNULHNCQUFnQjtBQUNwQjtBQUVBLEtBQUM7QUFDRyxlQUFTO0FBQ1Qsc0JBQWdCO0FBQ3BCO0FBRUEsS0FBQztBQUNHLGVBQVM7QUFDVCxzQkFBZ0I7QUFDaEIsY0FBUTtBQUNaO0FBRUEsS0FBQyxrQkFBa0IsQ0FBQztBQUFBLElBQ3BCLENBRG9CLGtCQUNELENBRGxCO0FBQUEsSUFFRCxDQUZvQixrQkFFRCxDQUZsQixrQkFFcUMsQ0FSckM7QUFTRyxjQUFRO0FBQ1o7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLGVBQVM7QUFDYjtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1o7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNiO0FBRUEsS0FBQyxDQUFDO0FBQ0UsY0FBUTtBQUNSLGVBQVM7QUFDYjtBQUVBLEtBQUMsQ0FBQyxpQkFBaUIsQ0E1Q2xCO0FBQUEsSUE2Q0QsQ0FBQyxDQURDLGlCQUNpQixDQTVCbEIsa0JBNEJxQyxDQTVCbEI7QUFBQSxJQTZCcEIsQ0FBQyxDQUZDLGlCQUVpQixDQTdCQyxrQkE2QmtCLENBN0JyQztBQUFBLElBOEJELENBQUMsQ0FIQyxpQkFHaUIsQ0E5QkMsa0JBOEJrQixDQTlCckMsa0JBOEJ3RCxDQXBDeEQ7QUFBQSxJQXFDRCxDQUFDLENBSkMsaUJBSWlCLENBL0JsQixrQkErQnFDLENBMUNyQztBQUFBLElBMkNELENBQUMsQ0FMQyxpQkFLaUIsQ0FsQmxCO0FBbUJHLGNBQVE7QUFDWjtBQUVBLEtBcENvQixtQkFvQ0EsQ0ExQm5CLFFBMEI0QixDQUFDO0FBQzFCLGVBQVM7QUFDYjtBQUVBLEtBeENvQixrQkF3Q0QsQ0F4Q2xCLGtCQXdDcUMsQ0E5QnJDLFFBOEI4QyxDQUpqQjtBQUFBLElBSzlCLENBQUMsQ0FBQyxvQkFBb0IsQ0F6Q0YsbUJBeUNzQixDQS9CekMsUUErQmtELENBTHJCO0FBTTFCLGVBQVM7QUFDYjtBQUVBLEtBQUMsQ0FBQztBQUNFLGlCQUFXO0FBQ2Y7QUFFQSxLQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0csY0FBUTtBQUNSLGFBQU87QUFDUCxnQkFBVTtBQUNkO0FBRUEsS0FQQztBQVFHLFdBQUs7QUFDVDtBQUVBLEtBVkM7QUFXRyxjQUFRO0FBQ1o7QUFHQSxLQUFDO0FBQ0csbUJBQWE7QUFDYixnQkFBVTtBQUNWLGVBQVM7QUFDVCxjQUFRO0FBRVIsT0E3Rkg7QUE4Rk8saUJBQVMsSUFBSSxjQUFjLEVBQUUsRUFBRTtBQUNuQztBQUVBLE9BakdILFdBaUdlLENBM0VJLG1CQTJFZ0I7QUFDNUIsY0FBTTtBQUNWO0FBRUEsT0FyR0gsV0FxR2UsQ0EvRUk7QUFnRlosaUJBQVM7QUFDVCxxQkFBYTtBQUNiLGlCQUFTLElBQUk7QUFDYixlQUFPLElBQUk7QUFDWCx1QkFBZSxJQUFJO0FBQ25CLHVCQUFlO0FBQ2Y7QUFBQSxVQUFZLFdBQVcsSUFBSSw2QkFBNkI7QUFBQSxVQUFFLE1BQU0sSUFBSSw2QkFBNkI7QUFBQSxVQUM3RixjQUFjLElBQUksNkJBQTZCO0FBQUEsVUFBRSxXQUFXLElBQUk7QUFDeEU7QUFFQSxPQWhISCxXQWdIZSxDQTFGSSxtQkEwRmdCLENBM0duQztBQTRHTyxnQkFBUSxFQUFFLElBQUksbUJBQW1CLEVBQUU7QUFDbkMsZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsSUFBSTtBQUNaLHFCQUFhLElBQUk7QUFDakIsb0JBQVk7QUFDWixpQkFBUztBQUNULDZCQUFxQjtBQUNyQixxQkFBYTtBQUNiLG9CQUFZO0FBQ1osZUFBTyxJQUFJO0FBQ1gsZ0JBQVEsRUFBRTtBQUNWLHVCQUFlLElBQUk7QUFDbkIsdUJBQWU7QUFDZjtBQUFBLFVBQVksV0FBVyxJQUFJLDZCQUE2QjtBQUFBLFVBQUUsTUFBTSxJQUFJLDZCQUE2QjtBQUFBLFVBQzdGLGNBQWMsSUFBSSw2QkFBNkI7QUFBQSxVQUFFLFdBQVcsSUFBSTtBQUN4RTtBQUVBLE9BbElILFdBa0llLENBNUdJLG1CQTRHZ0IsQ0E3SG5DLGNBNkhrRDtBQUMzQyxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0F2SUgsV0F1SWUsQ0FqSEksbUJBaUhnQixDQWxJbkMsY0FrSWtEO0FBQzNDLGlCQUFTLElBQUksOENBQThDLElBQUksOENBQThDLElBQUk7QUFDakgsd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUdBLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FsSkgsVUFrSmMsQ0FBQyxxQkFBdUIsRUFBRSxDQTVIckIsbUJBNEh5QyxFQUFFLENBSjFEO0FBS0csaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BdEpILFdBc0plLENBaElJLG1CQWdJZ0IsQ0ExSG5DO0FBMkhPLGVBQU8sSUFBSTtBQUNYLGdCQUFRLElBQUk7QUFDWixnQkFBUSxFQUFFLElBQUksbUJBQW1CLEVBQUU7QUFDdkM7QUFFQSxPQTVKSCxXQTRKZSxDQXRJSSxtQkFzSWdCLENBakpuQztBQWtKTyxnQkFBUSxFQUFFLElBQUksbUJBQW1CLEVBQUU7QUFDbkMsZUFBTyxJQUFJO0FBQ1gsb0JBQVksTUFBTSxJQUFJO0FBQzFCO0FBQ0o7QUFFQSxLQUFDO0FBQ0csY0FBUTtBQUNSLGVBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSTtBQUN2QjtBQUVBLEtBQUMsQ0FyR0MsV0FxR1csQ0FMWjtBQU1HLGVBQVMsRUFBRSxJQUFJLGlCQUFpQixFQUFFO0FBQ3RDO0FBRUEsS0FyRkM7QUFzRkcsT0E3S0gsV0E2S2UsQ0F2SkksbUJBdUpnQixDQTdKbkM7QUE4Sk8sZ0JBQVE7QUFDUixpQkFBUztBQUNULG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ2pCLHVCQUFlLElBQUk7QUFDdkI7QUFFQSxPQXJMSCxXQXFMZSxDQS9KSSxtQkErSmdCLENBckpuQztBQXNKTyxzQkFBYyxLQUFLLEVBQUUsRUFBRSxJQUFJO0FBQy9CO0FBRUEsT0F6TEgsV0F5TGUsQ0FuS0ksbUJBbUtnQixDQXpKbkMsU0F5SjZDLENBQUM7QUFDdkMsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQTdMSCxXQTZMZSxDQXZLSSxrQkF1S2UsQ0FBQztBQUM1QixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FsTUgsV0FrTWUsQ0E1S0ksa0JBNEtlLENBTEMsa0JBS2tCLENBbExyRDtBQW1MTyxxQkFBYSxJQUFJO0FBQ3JCO0FBRUEsT0F0TUgsV0FzTWUsQ0FoTEksa0JBZ0xlLENBVEMsa0JBU2tCLENBak1yRDtBQUFBLE1Ba01HLENBdk1ILFdBdU1lLENBakxJLGtCQWlMZSxDQVZDLGtCQVVrQixDQTVMckQ7QUE2TE8sZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQTNNSCxXQTJNZSxDQXJMSSxrQkFxTGUsQ0FkQyxrQkFja0IsQ0F0TXJELGNBc01vRTtBQUM3RCxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FoTkgsV0FnTmUsQ0ExTEksa0JBMExlLENBbkJDLGtCQW1Ca0IsQ0FyTXJELGVBcU1xRTtBQUM5RCxlQUFPLElBQUk7QUFDZjtBQUVBLE9BcE5ILFdBb05lLENBOUxJLGtCQThMZSxDQTlMbEMsaUJBOExvRCxLQUFLLENBdkJ0QixrQkF1QnlDO0FBQUEsTUFDekUsQ0FyTkgsV0FxTmUsQ0EvTEksa0JBK0xlLENBL0xsQyxpQkErTG9ELEtBQUssQ0F4QnRCLGtCQXdCeUMsQ0FBQztBQUN0RSxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0ExTkgsV0EwTmUsQ0FwTUksa0JBb01lLENBcE1sQyxpQkFvTW9ELEtBQUssQ0E3QnRCLGtCQTZCeUMsT0FBTyxDQS9NbkY7QUFBQSxNQWdORyxDQTNOSCxXQTJOZSxDQXJNSSxrQkFxTWUsQ0FyTWxDLGlCQXFNb0QsS0FBSyxDQTlCdEIsa0JBOEJ5QyxDQU5DLGNBTWMsQ0FoTjNGO0FBaU5PLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0FBQyxnQkFBZ0IsQ0FWeUQ7QUFXdEUsb0JBQVksSUFBSTtBQUNoQixnQkFBUSxFQUFFO0FBQ2Q7QUFFQSxPQUFDO0FBQ0csaUJBQVMsSUFBSSxnQ0FBZ0MsSUFBSSxnQ0FBZ0MsSUFBSTtBQUNyRix3QkFBZ0IsSUFBSTtBQUNwQixvQkFBWSxJQUFJO0FBQ3BCO0FBQ0o7QUFFQSxLQVpLO0FBYUQsY0FBUSxJQUFJO0FBQ2hCO0FBRUEsS0FBQyxDQTVLQyxXQTRLVyxDQXhKWixpQkF3SjhCLENBL085QixXQStPMEMsQ0F6TnZCO0FBME5oQixPQTNPSDtBQTRPTyxzQkFBYztBQUNkLHFCQUFhLElBQUk7QUFDckI7QUFFQSxPQXpOSDtBQTBOTyxnQkFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJO0FBQ3RCO0FBRUEsT0E5T0g7QUErT08sZ0JBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSTtBQUN0QjtBQUVBLE9BN05IO0FBOE5PLHNCQUFjO0FBQ2QscUJBQWEsS0FBSyxFQUFFLEVBQUUsSUFBSTtBQUM5QjtBQUNKO0FBR0EsS0FBQyxJQUFJLENBak1ILFlBaU1nQixLQUFLLE1BQU0sQ0E3SzVCLGlCQTZLOEMsQ0FwUTlDLFVBb1F5RCxDQUFDLHFCQUF1QixFQUFFLENBOU9oRSxtQkE4T29GLEVBQUUsQ0F0SHJHO0FBdUhELGFBQU8sR0FBRztBQUNkO0FBR0EsS0FBQztBQUNHLGNBQVEsSUFBSTtBQUVaLE9BQUM7QUFDRyxpQkFBUyxJQUFJO0FBQ2Isa0JBQVU7QUFDViw0QkFBb0IsSUFBSTtBQUN4QixhQUFLO0FBQ0wsb0JBQVksS0FBSyxHQUFHLEVBQUUsSUFBSSxlQUFlLEVBQUU7QUFDM0MsZUFBTyxJQUFJO0FBQ2Y7QUFFQSxPQUFDO0FBQ0csdUJBQWUsSUFBSTtBQUNuQix3QkFBZ0IsSUFBSTtBQUNwQiw4QkFBc0IsS0FBSyxFQUFFLEVBQUUsSUFBSSx5QkFBeUIsRUFBRSxJQUFJO0FBQ3RFO0FBQ0o7QUFDSjtBQUVBLEdBOURTO0FBK0RMLGdCQUFZLEtBQUssUUFBUTtBQUN6QixZQUFRO0FBQ1IsYUFBUztBQUNiO0FBRUEsR0ExQks7QUEyQkQsYUFBUztBQUNULGNBQVU7QUFDZDtBQUVBLEdBQUMsYUFBYSxDQW5CTDtBQW9CTCxXQUFPO0FBQ1AsZ0JBQVk7QUFDaEI7QUFHQSxHQUFDO0FBQ0csV0FBTztBQUNQLGNBQVU7QUFFVixLQTVSb0I7QUE2UmhCLGdCQUFVO0FBQ1YsZUFBUztBQUNULGVBQVMsRUFBRTtBQUNmO0FBRUEsS0FBQyxrQkFBa0IsQ0FsU0M7QUFtU2hCLG1CQUFhO0FBQ2pCO0FBQ0o7QUFFQSxHQXRVQyxNQXNVTSxDQWZOO0FBZ0JHLGtCQUFjO0FBQ2QsbUJBQWU7QUFFZjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQ0ksdUJBQWlCO0FBQ2pCLGNBQVE7QUFDUixlQUFTO0FBQ1Qsc0JBQWdCO0FBQ3BCO0FBRUE7QUFDSSxjQUFRO0FBQ1o7QUFHQSxLQS9VQztBQWdWRyxrQkFBWSxnQkFBZ0IsSUFBSSx5QkFBeUIsRUFBRSxJQUFJLDJCQUEyQixTQUFTLEtBQUssT0FBTyxFQUFFLEtBQUs7QUFDdEgsZUFBUyxJQUFJO0FBQ2IsZ0JBQVU7QUFDZDtBQUVBLEtBclZDLFVBcVZVLENBQUM7QUFBQSxJQUNaLENBdFZDLFVBc1ZVLENBQUM7QUFDUiwwQkFBb0I7QUFDeEI7QUFFQSxLQXZMQztBQXdMRyxlQUFTO0FBQ1QsY0FBUTtBQUNaO0FBRUEsS0FBQztBQUNHLGFBQU87QUFDWDtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1IsYUFBTztBQUNYO0FBRUEsS0FBQztBQUNHLGtCQUFZLGdCQUFnQixJQUFJLHlCQUF5QixFQUFFLElBQUksMkJBQTJCLFNBQVMsS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUNsSCxhQUFPO0FBQ1g7QUFFQSxLQXZWb0I7QUF3VmhCLG1CQUFhLElBQUk7QUFDakIsY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixrQkFBWSxJQUFJO0FBQ2hCLGFBQU8sSUFBSTtBQUNYLGVBQVMsSUFBSTtBQUNiLHFCQUFlLElBQUk7QUFDbkIsa0JBQVksV0FBVyxJQUFJLDZCQUE2QixFQUFFLE1BQU0sSUFBSTtBQUVwRSxPQUFDLENBakt5RTtBQWtLdEUsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0E5TCtCO0FBK0w1QixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0EzWEg7QUE0WE8sMkJBQW1CLElBQUk7QUFDdkIsd0JBQWdCO0FBQ3BCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQTlYSDtBQStYTyx3QkFBZ0I7QUFDaEIsMkJBQW1CLElBQUk7QUFDM0I7QUFFQSxPQTlYSDtBQStYTyxpQkFBUztBQUNULHdCQUFnQjtBQUNwQjtBQUVBLE9BblhIO0FBb1hPLHdCQUFnQjtBQUNoQiwyQkFBbUIsSUFBSTtBQUMzQjtBQUVBLE9BeFhILFNBd1hhLENBL05pQztBQWdPdkMsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUdBLEtBeEVZLHFCQXdFVSxFQUFFLENBeFlKLG1CQXdZd0IsRUFBRSxDQXpCekM7QUEwQkQsZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FsYUMsVUFrYVU7QUFDUCx3QkFBa0IsSUFBSTtBQUMxQjtBQUNKO0FBRUEsR0F6SEMsa0JBeUhrQixDQXZhZDtBQXdhRCxLQUFDO0FBQ0csZUFBUztBQUNULGdCQUFVO0FBQ1YsV0FBSztBQUNMLDBCQUFvQjtBQUNwQixjQUFRO0FBQ1IsYUFBTyxLQUFLLEtBQUssRUFBRTtBQUNuQixzQkFBZ0I7QUFDcEI7QUFFQSxLQUFDLENBNUZXLG9CQTRGVTtBQUFBLElBQ3RCLENBQUMsQ0E5RlcsZUE4Rks7QUFDYixhQUFPLEtBQUssS0FBSyxFQUFFO0FBQ3ZCO0FBQ0o7QUFFQSxHQUFDO0FBQUEsRUFDRCxDQURDLGlCQUNpQixDQTVQc0I7QUE2UHBDLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ1gsWUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixtQkFBZSxJQUFJO0FBQ3ZCO0FBRUEsR0FBQyxRQUFRLENBemNSO0FBMGNHLFdBQU87QUFDWDtBQUFBOzs7QUNwZEE7QUFTQSxHQUFDO0FBRUcsS0FBQztBQUNHLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixvQkFBYyxJQUFJO0FBQ2xCLGVBQVMsSUFBSTtBQUNiLG1CQUFhLElBQUk7QUFDakIsa0JBQVk7QUFDaEI7QUFFQSxLQUFDO0FBQ0csa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxjQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLG9CQUFjLElBQUk7QUFDbEIsZUFBUyxJQUFJO0FBQ2IsbUJBQWEsSUFBSTtBQUNqQixrQkFBWTtBQUNoQjtBQUVBLEtBQUM7QUFDRyxlQUFTLElBQUk7QUFFYixPQUFDLENBQUM7QUFDRSxzQkFBYztBQUNkLHNCQUFjLElBQUk7QUFDbEIsc0JBQWMsSUFBSTtBQUNsQix1QkFBZTtBQUNuQjtBQUVBLE9BQUMsQ0FBQztBQUNFLHNCQUFjO0FBQ2Qsc0JBQWMsSUFBSTtBQUNsQixzQkFBYyxJQUFJO0FBQ2xCLHVCQUFlO0FBQ25CO0FBQ0o7QUFFQTtBQUNJLHVCQUFpQjtBQUNqQixhQUFPO0FBQ1Asb0JBQWM7QUFDbEI7QUFFQSxVQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQ0YsZ0JBQVU7QUFDVixtQkFBYTtBQUNiLG9CQUFjO0FBQ2xCO0FBR0EsVUFBTTtBQUNGLGtCQUFZLElBQUk7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsZUFBUyxJQUFJO0FBQ2IsY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixvQkFBYyxFQUFFLEVBQUUsSUFBSTtBQUN0QixtQkFBYTtBQUNiLGtCQUFZO0FBQ1osa0JBQVk7QUFDWixxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksa0NBQWtDO0FBQUEsUUFBRSxNQUFNLElBQUksa0NBQWtDO0FBQUEsUUFDdkcsYUFBYSxJQUFJLGtDQUFrQztBQUFBLFFBQUUsY0FBYyxJQUFJLGtDQUFrQztBQUFBLFFBQ3pHLFdBQVcsSUFBSTtBQUVuQixPQUFDO0FBQ0cscUJBQWEsSUFBSTtBQUNqQixtQkFBVyxJQUFJO0FBQ2Ysd0JBQWdCO0FBQ3BCO0FBRUEsT0FBQztBQUNHLGlCQUFTO0FBQ1Qsd0JBQWdCO0FBQ2hCLGdCQUFRO0FBQ1IsNkJBQXFCLElBQUk7QUFDekIsZUFBTyxJQUFJO0FBQ1gsbUJBQVcsSUFBSTtBQUNmLG9CQUFZLE1BQU0sSUFBSTtBQUd0QixTQUFDLENBQUM7QUFDRSxtQkFBUyxJQUFJO0FBQ2pCO0FBRUEsU0FBQyxDQUFDO0FBQ0UsbUJBQVMsSUFBSTtBQUNqQjtBQUVBLFNBQUMsQ0FBQztBQUNFLG1CQUFTLElBQUk7QUFDakI7QUFDSjtBQUVBLE9BQUM7QUFDRyx1QkFBZSxJQUFJO0FBQ25CLGlCQUFTLElBQUk7QUFDYixnQkFBUSxJQUFJO0FBQ1osbUJBQVcsSUFBSTtBQUNmLHFCQUFhLElBQUk7QUFDakIsZUFBTyxJQUFJO0FBQ1gsb0JBQVksSUFBSTtBQUNoQiw2QkFBcUIsSUFBSTtBQUN6QixtQkFBVyxJQUFJO0FBQ2YscUJBQWEsSUFBSTtBQUNqQixvQkFBWTtBQUNaLHdCQUFnQjtBQUNwQjtBQUVBLE9BQUMsQ0FBQyxpQkFBaUIsQ0FBQztBQUFBLE1BQ3BCLENBQUMsQ0FEQyxpQkFDaUI7QUFDZixpQkFBUyxJQUFJLDRDQUE0QyxJQUFJLDRDQUE0QyxJQUFJO0FBQzdHLHdCQUFnQixJQUFJO0FBQ3BCLG9CQUFZLElBQUk7QUFDcEI7QUFFQSxPQUFDLENBQUM7QUFDRSxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUVYLFNBakRIO0FBa0RPLGlCQUFPLElBQUk7QUFDZjtBQUNKO0FBQ0o7QUFHQSxVQUFNLEVBQUUsQ0FBQztBQUNMO0FBQUEsTUFDQSxDQUFDLENBYkM7QUFjRSxvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNmO0FBRUEsT0EvREM7QUFnRUcsZUFBTyxJQUFJO0FBQ2Y7QUFDSjtBQUVBLEtBOUJNO0FBK0JGLGNBQVE7QUFDUiwyQkFBcUI7QUFDckIsbUJBQWE7QUFDakI7QUFHQSxLQXBESztBQXFERCxlQUFTO0FBQ1QsbUJBQWE7QUFDYix1QkFBaUI7QUFDakIsc0JBQWdCO0FBRWhCLE9BQUMsQ0FBQztBQUNFLGlCQUFTO0FBQ2I7QUFDSjtBQUVBLEtBQUM7QUFDRyxlQUFTO0FBQ1Qsa0JBQVk7QUFDWixhQUFPO0FBQ1AsY0FBUSxJQUFJLGlDQUFpQyxLQUFLLEtBQUs7QUFDM0Q7QUFHQSxLQUFDO0FBQ0csY0FBUSxJQUFJLGlDQUFpQyxLQUFLLEtBQUs7QUFFdkQsT0FBQztBQUFBLE1BQ0QsQ0FBQztBQUNHLGVBQU87QUFDUCxtQkFBVztBQUNmO0FBQ0o7QUFFQSxLQUFDLGlCQUFpQixFQUFFLENBM0RkO0FBNERGLGNBQVE7QUFDWjtBQUdBLEtBTEMsaUJBS2lCLEVBQUU7QUFDaEIsa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDWCxxQkFBZTtBQUNmO0FBQUEsUUFBWSxXQUFXLElBQUksa0NBQWtDO0FBQUEsUUFBRSxNQUFNLElBQUksa0NBQWtDO0FBQUEsUUFDdkcsYUFBYSxJQUFJLGtDQUFrQztBQUFBLFFBQUUsY0FBYyxJQUFJLGtDQUFrQztBQUFBLFFBQ3pHLFdBQVcsSUFBSTtBQUVuQixRQUFFO0FBQ0UsaUJBQVMsSUFBSTtBQUNiLGdCQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLHNCQUFjLEVBQUUsRUFBRSxJQUFJO0FBQ3RCLG1CQUFXLElBQUk7QUFDZixxQkFBYSxJQUFJO0FBQ2pCLG9CQUFZO0FBQ2hCO0FBRUEsT0FBQztBQUNHLGlCQUFTLElBQUksb0NBQW9DLElBQUksb0NBQW9DLElBQUk7QUFDN0Ysd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BQUMsQ0FBQywwQkFBMEIsRUFBRTtBQUMxQixlQUFPLElBQUk7QUFDZjtBQUdBLFFBQUUsR0FBRyxDQUFDO0FBQ0YsZ0JBQVE7QUFDUiwyQkFBbUIsSUFBSTtBQUN2QixlQUFPLElBQUk7QUFDWCxnQkFBUSxJQUFJO0FBQ1osb0JBQVk7QUFDWixlQUFPLElBQUk7QUFDWCxnQkFBUSxFQUFFO0FBQ1YsdUJBQWUsSUFBSTtBQUNuQixvQkFBWTtBQUNaLGlCQUFTO0FBQ1QsNkJBQXFCO0FBQ3JCLHFCQUFhO0FBQ2IsdUJBQWU7QUFDZjtBQUFBLFVBQVksV0FBVyxJQUFJLGtDQUFrQztBQUFBLFVBQUUsTUFBTSxJQUFJLGtDQUFrQztBQUFBLFVBQ3ZHLGNBQWMsSUFBSSxrQ0FBa0M7QUFBQSxVQUFFLFdBQVcsSUFBSTtBQUV6RSxTQUFDO0FBQ0csc0JBQVksSUFBSTtBQUNoQixpQkFBTyxJQUFJO0FBQ1gsd0JBQWM7QUFDbEI7QUFFQSxTQUFDO0FBQ0csbUJBQVMsSUFBSSxtREFBbUQsSUFBSSxtREFBbUQsSUFBSTtBQUMzSCwwQkFBZ0IsSUFBSTtBQUNwQixzQkFBWSxJQUFJO0FBQ3BCO0FBRUEsU0FBQyxDQUFDO0FBQ0UsbUJBQVMsSUFBSTtBQUNqQjtBQUNKO0FBR0EsT0FBQyxDQUFDLHFCQUF1QixFQUFFLEdBQUcsRUFBRSxDQU4xQjtBQU9GLGlCQUFTLElBQUk7QUFFYixTQUFDLEtBQUs7QUFDRixxQkFBVyxPQUFPO0FBQ3RCO0FBQ0o7QUFFQSxRQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUM7QUFDWCx3QkFBZ0I7QUFDaEIsZ0JBQVE7QUFDUiwyQkFBbUIsSUFBSTtBQUMzQjtBQUVBLE9BQUMsQ0E3SUM7QUE4SUUsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0FBQztBQUNFLG9CQUFZLElBQUk7QUFDaEIsZUFBTyxJQUFJO0FBQ1gsZ0JBQVE7QUFFUixTQTNERTtBQTRERSxpQkFBTztBQUNYO0FBRUEsU0EvREUsbUJBK0RrQjtBQUNoQixzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDZjtBQUNKO0FBRUEsT0FBQyxDQWZDLGtCQWVrQixFQUFFO0FBQUEsTUFDdEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQWhCUixtQkFnQjRCLEVBQUU7QUFDNUIsNkJBQXFCLElBQUk7QUFDN0I7QUFDSjtBQUVBLEtBM0VVO0FBNEVOLGVBQVM7QUFDVCxtQkFBYTtBQUNiLHVCQUFpQjtBQUNqQixzQkFBZ0I7QUFDaEIsY0FBUTtBQUNaO0FBRUEsS0FBQztBQUNHLGVBQVM7QUFDVCxzQkFBZ0I7QUFDaEIsYUFBTyxJQUFJO0FBQ1gsY0FBUSxJQUFJO0FBQ2hCO0FBRUEsS0EvQ1UsUUErQ0QsQ0EvQ1U7QUFnRGYsZUFBUztBQUNiO0FBRUEsS0FBQyw0QkFBNEIsQ0FuRG5CLFFBbUQ0QixDQW5EbkI7QUFvRGYsZUFBUztBQUNiO0FBRUEsS0FBQyxDQUFDLHlCQUF5QixDQXZEakIsUUF1RDBCLENBdkRqQjtBQXdEZixlQUFTO0FBQ2I7QUFHQSxLQUFDLGtCQUFrQixDQUFDO0FBQ2hCLGVBQVM7QUFDVCxzQkFBZ0I7QUFDcEI7QUFFQSxLQUFDO0FBQ0csZUFBUztBQUNiO0FBRUEsS0FBQztBQUNHLE9BVmdCLGNBVUQsQ0FBQztBQUNaLGlCQUFTO0FBQ2I7QUFFQSxPQWRnQixjQWNELENBVGxCO0FBVU8saUJBQVM7QUFDYjtBQUVBLE9BQUMsYUFBYSxDQUFDO0FBQ1gsaUJBQVM7QUFDYjtBQUVBLE9BSkMsYUFJYSxDQUFDO0FBQUEsTUFDZixDQUxDLGFBS2EsQ0FBQztBQUNYLGlCQUFTO0FBQ2I7QUFDSjtBQUVBLEtBVks7QUFXRDtBQUNJLGdCQUFRO0FBQ1o7QUFFQSxPQWZlO0FBZ0JYLGlCQUFTO0FBQ2I7QUFFQSxPQWZlO0FBQUEsTUFnQmYsQ0FmZTtBQWdCWCxpQkFBUztBQUNiO0FBQ0o7QUFFQSxLQW5MQyxpQkFtTGlCLEVBQUUsQ0FsQ25CLGNBa0NrQyxFQUFFLENBM0NwQztBQUFBLElBNENELENBcExDLGlCQW9MaUIsRUFBRSxDQUFDO0FBQ2pCLG1CQUFhO0FBQ2Isc0JBQWdCO0FBQ2hCLGtCQUFZO0FBQ1oscUJBQWU7QUFDbkI7QUFHQSxLQWxDSztBQW1DRCxlQUFTO0FBQ1QsbUJBQWE7QUFDYixzQkFBZ0I7QUFFaEIsUUFBRTtBQUNFLHFCQUFhO0FBQ2IseUJBQWlCO0FBQ2pCLHlCQUFpQjtBQUNyQjtBQUNKO0FBRUEsS0F4TUMsaUJBd01pQixFQUFFO0FBQ2hCLE9BL0NDLGFBK0NhLENBQUM7QUFDWCxpQkFBUztBQUNULHFCQUFhO0FBQ2IseUJBQWlCO0FBQ2pCLGVBQU8sSUFBSTtBQUNYLGdCQUFRLElBQUk7QUFDWixvQkFBWTtBQUNaLGVBQU8sSUFBSTtBQUNYLGdCQUFRLEVBQUU7QUFDVix1QkFBZSxJQUFJO0FBQ25CLG9CQUFZO0FBQ1osaUJBQVM7QUFDVCw2QkFBcUI7QUFDckIscUJBQWE7QUFDYix1QkFBZTtBQUNmO0FBQUEsVUFBWSxXQUFXLElBQUksa0NBQWtDO0FBQUEsVUFBRSxNQUFNLElBQUksa0NBQWtDO0FBQUEsVUFDdkcsY0FBYyxJQUFJLGtDQUFrQztBQUFBLFVBQUUsV0FBVyxJQUFJO0FBQzdFO0FBRUEsT0FsRUMsYUFrRWEsQ0FuQkMsTUFtQk07QUFDakIsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDWCxzQkFBYztBQUNsQjtBQUVBLE9BeEVDLGFBd0VhLENBekJDLE1BeUJNO0FBQUEsTUFDckIsQ0F6RUMsYUF5RWEsQ0FBQyxlQUFlLENBMUJmO0FBMkJYLGlCQUFTLElBQUksbURBQW1ELElBQUksbURBQW1ELElBQUk7QUFDM0gsd0JBQWdCLElBQUk7QUFDcEIsb0JBQVksSUFBSTtBQUNwQjtBQUVBLE9BL0VDLGFBK0VhLENBQUM7QUFDWCxpQkFBUyxFQUFFO0FBQ2Y7QUFFQSxPQW5GQyxhQW1GYSxDQUFDO0FBQ1gsaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BdkZDLGFBdUZhLENBbkZDO0FBb0ZYLDJCQUFtQixJQUFJO0FBQzNCO0FBRUEsT0EzRkMsYUEyRmEsQ0FBQztBQUNYLGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQS9GQyxhQStGYSxDQUFDO0FBQ1gsaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BQUMsQ0F0S0Msa0JBc0trQixDQW5HbkIsYUFtR2lDLENBcERuQjtBQXFEWCxlQUFPLElBQUk7QUFDZjtBQUVBLE9BQUMsQ0ExS0Msa0JBMEtrQixDQXZHbkIsYUF1R2lDLENBeERuQixNQXdEMEI7QUFDckMsb0JBQVksSUFBSTtBQUNoQixlQUFPLElBQUk7QUFDZjtBQUNKO0FBR0EsVUFBTTtBQUNGLGtCQUFZLElBQUk7QUFDaEIsY0FBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixvQkFBYyxFQUFFLEVBQUUsSUFBSTtBQUN0QixhQUFPLElBQUk7QUFDWCxlQUFTLElBQUk7QUFDYixtQkFBYSxJQUFJO0FBQ2pCLGlCQUFXLElBQUk7QUFDZixrQkFBWTtBQUNaLGtCQUFZO0FBQ2hCO0FBRUEsS0FBQyxDQUFDO0FBQ0UsT0FBQyxrQ0FBa0MsR0FBRyxHQUFHLEVBQUU7QUFDdkMsaUJBQVM7QUFDYjtBQUNKO0FBRUEsS0FBQztBQUNHLGtCQUFZLElBQUk7QUFDcEI7QUFFQSxLQUFDO0FBQ0csa0JBQVksSUFBSTtBQUNwQjtBQUVBLEtBQUM7QUFDRyxnQkFBVTtBQUNWLFdBQUs7QUFDTCx3QkFBa0I7QUFDbEIsYUFBTyxJQUFJO0FBQ1gsY0FBUTtBQUNSLGNBQVE7QUFDUixlQUFTO0FBQ1QsY0FBUTtBQUNSLGNBQVEsSUFBSSxNQUFNO0FBQ2xCLGtCQUFZO0FBQ2hCO0FBRUEsS0FBQztBQUNHLGFBQU8sSUFBSTtBQUNYLGdCQUFVO0FBQ1YsZUFBUztBQUNULGVBQVM7QUFDVCxrQkFBWSxJQUFJO0FBQ3BCO0FBR0EsS0FBQyxDQUFDO0FBQ0UsT0ExZUg7QUEyZU8saUJBQVMsSUFBSTtBQUNqQjtBQUVBLFlBQU0sRUFBRSxHQUFHLEVBQUU7QUFDVCxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0FqVUgsaUJBaVVxQixFQUFFLEdBQUcsRUFBRTtBQUNyQixpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsWUFBTSxFQUFFLEdBQUcsRUFBRTtBQUNULGlCQUFTLElBQUk7QUFDakI7QUFFQSxPQWhmSDtBQWlmTyxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxLQUFDLENBQUM7QUFDRSxPQWhnQkg7QUFpZ0JPLGlCQUFTLElBQUk7QUFDakI7QUFFQSxZQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ1QsaUJBQVMsSUFBSTtBQUNqQjtBQUVBLE9BdlZILGlCQXVWcUIsRUFBRSxHQUFHLEVBQUU7QUFDckIsaUJBQVMsSUFBSTtBQUNqQjtBQUVBLFlBQU0sRUFBRSxHQUFHLEVBQUU7QUFDVCxpQkFBUyxJQUFJO0FBQ2pCO0FBRUEsT0F0Z0JIO0FBdWdCTyxpQkFBUyxJQUFJO0FBQ2pCO0FBQ0o7QUFFQSxLQUFDLENBNUNDLGVBNENlLENBL0VaLGtDQStFK0MsRUFBRSxHQUFHLEVBQUU7QUFBQSxJQUMzRCxDQUFDLENBdkJDLGVBdUJlLENBaEZaLGtDQWdGK0MsRUFBRSxHQUFHLEVBQUU7QUFDdkQsbUJBQWE7QUFDYixzQkFBZ0I7QUFDcEI7QUFFQSxLQUFDLENBQUM7QUFDRSxPQTVoQkg7QUE2aEJPLHNCQUFjLElBQUksSUFBSSxFQUFFO0FBQzVCO0FBRUEsT0F0aEJIO0FBdWhCTyxzQkFBYyxFQUFFLElBQUksSUFBSTtBQUM1QjtBQUVBLE9BaGhCSDtBQWloQk8sU0FBQyxDQTlnQkg7QUErZ0JNLHdCQUFjLElBQUksSUFBSSxFQUFFO0FBQzVCO0FBRUEsU0FBQyxDQTNnQkg7QUE0Z0JNLHdCQUFjLEVBQUUsSUFBSSxJQUFJO0FBQzVCO0FBQ0o7QUFFQSxZQUFNLEVBQUUsR0FBRyxFQUFFO0FBQUEsTUFDYixDQTlYSCxpQkE4WHFCLEVBQUUsR0FBRyxFQUFFO0FBQUEsTUFDekIsTUFBTSxFQUFFLEdBQUcsRUFBRTtBQUNULHNCQUFjO0FBQ2xCO0FBRUEsT0E5R0Msa0NBOEdrQyxFQUFFLEdBQUcsRUFBRTtBQUN0QyxxQkFBYTtBQUNiLHdCQUFnQjtBQUNoQix1QkFBZSxFQUFFO0FBQ2pCLG9CQUFZLEVBQUU7QUFDbEI7QUFDSjtBQUNKO0FBRUEsR0FBQztBQUNHLGNBQVU7QUFDZDtBQUVBLEdBdEhLO0FBQUEsRUF1SEwsQ0FuSEs7QUFvSEQsY0FBVTtBQUNWLFlBQVEsRUFBRTtBQUNkO0FBRUEsR0FsSU0sdUJBa0lrQixDQTVIbkI7QUFBQSxFQTZITCxDQW5JTSx1QkFtSWtCLENBekhuQjtBQTBIRCxjQUFVO0FBQ2Q7QUFFQSxHQXRJUztBQXVJTCxZQUFRO0FBRVI7QUFDSSxjQUFRO0FBQ1o7QUFFQTtBQUNJLE9BQUMsQ0FBQztBQUNFLGdCQUFRO0FBQ1IsNkJBQXFCO0FBQ3JCLDBCQUFrQjtBQUNsQixxQkFBYTtBQUNiLHdCQUFnQjtBQUNoQixpQkFBUyxFQUFFO0FBQ2Y7QUFFQTtBQUNJLGlCQUFTO0FBQ1QsZ0JBQVE7QUFDWjtBQUNKO0FBQ0o7QUFFQSxHQUFDO0FBQ0csb0JBQWdCO0FBQ2hCLGNBQVU7QUFFVixNQUFFLENBQUM7QUFDQyx1QkFBaUI7QUFDakIsZ0JBQVU7QUFDZDtBQUNKO0FBRUEsR0FBQztBQUNHLEtBOWJDLGlCQThiaUIsR0FBRyxDQTVpQmhCO0FBNmlCRCxlQUFTO0FBQ2I7QUFDSjtBQUVBLFVBQU8sV0FBWTtBQUNmLEtBUEgsbUJBT3VCLE1BQU07QUFBQSxJQUMxQixDQVJILG1CQVF1QixNQUFNO0FBQ3RCLGVBQVM7QUFDYjtBQUdBLEtBYkg7QUFjTyxZQUFNLEVBQUUsQ0FBQztBQUNMLG9CQUFZO0FBQ1osaUJBQVM7QUFDVCxlQUFPO0FBQ1AsZUFBTztBQUNQLGVBQU87QUFDUCxnQkFBUSxFQUFFO0FBQ1Ysb0JBQVk7QUFFWixTQWxrQkg7QUFta0JPLG1CQUFTO0FBQ1QsdUJBQWEsSUFBSTtBQUNqQixrQkFBUSxFQUFFLEVBQUUsSUFBSSwwQkFBMEI7QUFDMUMsbUJBQVM7QUFDYjtBQUVBLFNBbmtCSDtBQUFBLFFBb2tCRyxDQTdpQkg7QUFBQSxRQThpQkcsQ0EzTFA7QUE0TFcsbUJBQVM7QUFDYjtBQUVBLFNBbmZQO0FBQUEsUUFvZk8sQ0E1ZVA7QUE2ZVcsbUJBQVM7QUFDVCxzQkFBWTtBQUNaLGlCQUFPO0FBQ1Asa0JBQVE7QUFDWjtBQUNKO0FBRUEsT0ExZUg7QUEyZU87QUFDSSxzQkFBWTtBQUNaLG1CQUFTO0FBQ1Qsa0JBQVEsRUFBRTtBQUNWLGlCQUFPO0FBQ1Asc0JBQVk7QUFDWixpQkFBTztBQUNQLGlCQUFPO0FBQ1g7QUFFQSxTQUFDLENBQUM7QUFDRSxrQkFBUSxFQUFFO0FBQ2Q7QUFFQSxVQUFFLENBSkE7QUFLRSx1QkFBYSxFQUFFO0FBQ2Ysd0JBQWMsRUFBRTtBQUNwQjtBQUVBLFdBQUcsQ0E1bUJOO0FBNm1CTyxtQkFBUztBQUNULHFCQUFXO0FBQ1gsa0JBQVE7QUFDUiw2QkFBbUIsSUFBSTtBQUN2QixtQkFBUztBQUNULHVCQUFhLElBQUk7QUFDckI7QUFDSjtBQUNKO0FBQ0o7QUFBQTs7O0FDcHNCQTtBQU9BLEdBQUM7QUFDRyxhQUFTO0FBQ1Qsb0JBQWdCO0FBQ2hCLFNBQUssSUFBSTtBQUVULEtBQUM7QUFDRyxlQUFTO0FBQ1QsaUJBQVc7QUFDWCxjQUFRO0FBQ1IsZUFBUztBQUNULHVCQUFpQjtBQUVqQixPQUFDO0FBQ0csY0FBTSxFQUFFLEVBQUU7QUFDVixnQkFBUTtBQUNSLGlCQUFTLElBQUk7QUFDYix5QkFBaUI7QUFDakIsbUJBQVcsSUFBSTtBQUNmLHFCQUFhLElBQUk7QUFDakIsb0JBQVk7QUFDWixvQkFBWSxJQUFJO0FBQ2hCLGVBQU8sSUFBSTtBQUNYLGdCQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGlDQUF5QjtBQUN6Qix1QkFBZTtBQUNmO0FBQUEsVUFBWSxXQUFXLElBQUksK0JBQStCO0FBQUEsVUFBRSxNQUFNLElBQUksK0JBQStCO0FBQUEsVUFDakcsYUFBYSxJQUFJO0FBRXJCLFNBQUM7QUFDRyxxQ0FBMkIsSUFBSTtBQUMvQixtQ0FBeUIsSUFBSTtBQUNqQztBQUVBLFNBQUM7QUFDRyxtQ0FBeUI7QUFDekIsbUNBQXlCLElBQUk7QUFDN0IsaUNBQXVCLElBQUk7QUFDL0I7QUFFQSxTQUFDLENBQUM7QUFDRSxzQkFBWSxJQUFJO0FBQ2hCLGlCQUFPLElBQUk7QUFDWCx3QkFBYyxJQUFJO0FBQ3RCO0FBQ0o7QUFDSjtBQUVBLEtBQUM7QUFDRyxjQUFRO0FBQ1IsZUFBUyxJQUFJO0FBQ2Isa0JBQVksSUFBSTtBQUNoQixhQUFPLElBQUk7QUFDZjtBQUVBLEtBQUM7QUFDRyxlQUFTO0FBQ1QsbUJBQWE7QUFDYixXQUFLLElBQUk7QUFFVCxPQUFDO0FBQ0csNkJBQXFCO0FBQ3pCO0FBQ0o7QUFFQSxLQUFDO0FBQ0csZUFBUyxJQUFJO0FBQ2pCO0FBRUEsS0FBQztBQUNHLGVBQVMsSUFBSTtBQUNqQjtBQUdBLEtBVEMsa0JBU2tCLEtBQUs7QUFBQSxJQUN4QixDQU5DLGtCQU1rQixLQUFLO0FBQ3BCLGFBQU8sR0FBRztBQUNkO0FBQ0o7QUFBQTs7O0FDcEZBO0FBTUEsR0FBQztBQUNHLGFBQVM7QUFDYjtBQUdBLEdBQUM7QUFDRyxnQkFBWTtBQUVaO0FBQ0ksa0JBQVk7QUFDaEI7QUFDSjtBQUFBOzs7QUNqQkE7QUFPQSxHQUFDO0FBQ0csZ0JBQVksSUFBSTtBQUNwQjtBQUVBLEdBQUM7QUFDRyxnQkFBWSxXQUFXLElBQUksaUNBQWlDLEVBQUUsY0FBYyxJQUFJO0FBQ3BGO0FBRUEsR0FBQztBQUNHLGFBQVMsSUFBSSw2Q0FBNkMsT0FBTyxJQUFJO0FBQ3JFLG9CQUFnQixJQUFJO0FBQ3hCO0FBRUEsR0FBQztBQUNHLGdCQUFZLElBQUk7QUFDaEIsV0FBTyxJQUFJO0FBQ2Y7QUFBQTs7O0FDdkJBO0FBUUEsR0FBQztBQUNHLFdBQU8sSUFBSTtBQUNYLFlBQVEsSUFBSTtBQUNaO0FBQUEsTUFBWTtBQUFBLFFBQWdCLE1BQU07QUFBQSxRQUM5QixZQUFZLEVBQUUsR0FBRztBQUFBLFFBQUUsSUFBSSw0QkFBNEIsSUFBSSxHQUFHO0FBQUEsUUFDMUQsWUFBWSxJQUFJLEdBQUc7QUFBQSxRQUFFLElBQUksNEJBQTRCLElBQUksR0FBRztBQUFBLFFBQzVELFlBQVk7QUFFaEIsS0FBQztBQUNHO0FBQUEsUUFBWTtBQUFBLFVBQWdCLE1BQU07QUFBQSxVQUM5QixZQUFZLEVBQUUsR0FBRztBQUFBLFVBQUUsSUFBSSxrQ0FBa0MsSUFBSSxHQUFHO0FBQUEsVUFDaEUsWUFBWSxJQUFJLEdBQUc7QUFBQSxVQUFFLElBQUksa0NBQWtDLElBQUksR0FBRztBQUFBLFVBQ2xFLFlBQVk7QUFDcEI7QUFDSjtBQUVBLEdBQUM7QUFDRyxhQUFTLElBQUk7QUFDakI7QUFFQSxHQUFDO0FBQUEsRUFDRCxDQUFDO0FBQ0csWUFBUSxJQUFJLE9BQU8sSUFBSTtBQUN2QixnQkFBWSxJQUFJO0FBQ2hCLG1CQUFlLElBQUk7QUFDdkI7QUFBQTs7O0FDakNBO0FBTUEsR0FBQztBQUNHLGdCQUFZLElBQUk7QUFDcEI7QUFFQSxHQUFDO0FBQ0csZ0JBQVk7QUFDaEI7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K */
