<?php

namespace Google\Web_Stories_Dependencies;

/**
 * Generated by amphtml-update.py - do not edit.
 *
 * This is a list of HTML tags and attributes that are allowed by the
 * AMP specification. Note that tag names have been converted to lowercase.
 *
 * Note: This file only contains tags that are relevant to the `body` of
 * an AMP page. To include additional elements modify the variable
 * `mandatory_parent_denylist` in the amp_wp_build.py script.
 *
 * phpcs:ignoreFile
 *
 * @internal
 */
class AMP_Allowed_Tags_Generated
{
    private static $spec_file_revision = 1188;
    private static $minimum_validator_revision_required = 475;
    private static $descendant_tag_lists = array('amp-mega-menu-allowed-descendants' => array('a', 'amp-ad', 'amp-carousel', 'amp-embed', 'amp-img', 'amp-lightbox', 'amp-list', 'amp-video', 'b', 'br', 'button', 'col', 'colgroup', 'div', 'em', 'fieldset', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'i', 'img', 'input', 'label', 'li', 'mark', 'nav', 'noscript', 'ol', 'option', 'p', 'path', 'section', 'select', 'span', 'strike', 'strong', 'sub', 'sup', 'svg', 'table', 'tbody', 'td', 'template', 'th', 'time', 'title', 'tr', 'u', 'ul', 'use'), 'amp-nested-menu-allowed-descendants' => array('a', 'amp-accordion', 'amp-img', 'amp-list', 'b', 'br', 'button', 'circle', 'col', 'colgroup', 'div', 'ellipse', 'em', 'fieldset', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'i', 'input', 'label', 'li', 'line', 'mark', 'nav', 'ol', 'option', 'p', 'path', 'polygon', 'polyline', 'rect', 'section', 'select', 'span', 'strike', 'strong', 'sub', 'sup', 'svg', 'table', 'tbody', 'td', 'template', 'th', 'time', 'title', 'tr', 'u', 'ul', 'use'), 'amp-story-audio-sticker-allowed-descendants' => array('amp-img', 'div', 'span'), 'amp-story-bookend-allowed-descendants' => array('script'), 'amp-story-cta-layer-allowed-descendants' => array('a', 'abbr', 'address', 'amp-call-tracking', 'amp-date-countdown', 'amp-date-display', 'amp-fit-text', 'amp-font', 'amp-img', 'amp-timeago', 'b', 'bdi', 'bdo', 'blockquote', 'br', 'button', 'caption', 'cite', 'circle', 'clippath', 'code', 'data', 'defs', 'del', 'desc', 'dfn', 'div', 'ellipse', 'em', 'fecolormatrix', 'fecomposite', 'feblend', 'feflood', 'fegaussianblur', 'femerge', 'femergenode', 'feoffset', 'figcaption', 'figure', 'filter', 'footer', 'g', 'glyph', 'glyphref', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hkern', 'hr', 'i', 'image', 'ins', 'kbd', 'li', 'line', 'lineargradient', 'main', 'marker', 'mark', 'mask', 'metadata', 'nav', 'noscript', 'ol', 'p', 'path', 'pattern', 'pre', 'polygon', 'polyline', 'radialgradient', 'q', 'rect', 'rp', 'rt', 'rtc', 'ruby', 's', 'samp', 'section', 'small', 'solidcolor', 'span', 'stop', 'strong', 'sub', 'sup', 'svg', 'switch', 'symbol', 'text', 'textpath', 'tref', 'tspan', 'title', 'time', 'tr', 'u', 'ul', 'use', 'var', 'view', 'vkern', 'wbr'), 'amp-story-grid-layer-allowed-descendants' => array('a', 'abbr', 'address', 'amp-analytics', 'amp-audio', 'amp-bodymovin-animation', 'amp-date-countdown', 'amp-date-display', 'amp-experiment', 'amp-fit-text', 'amp-font', 'amp-gist', 'amp-img', 'amp-install-serviceworker', 'amp-list', 'amp-live-list', 'amp-pixel', 'amp-render', 'amp-state', 'amp-story-360', 'amp-story-audio-sticker', 'amp-story-audio-sticker-pretap', 'amp-story-audio-sticker-posttap', 'amp-story-auto-analytics', 'amp-story-captions', 'amp-story-interactive-binary-poll', 'amp-story-interactive-img-poll', 'amp-story-interactive-img-quiz', 'amp-story-interactive-poll', 'amp-story-interactive-quiz', 'amp-story-interactive-results', 'amp-story-interactive-slider', 'amp-story-panning-media', 'amp-story-shopping-tag', 'amp-timeago', 'amp-twitter', 'amp-video', 'article', 'aside', 'b', 'bdi', 'bdo', 'blockquote', 'br', 'caption', 'circle', 'cite', 'clippath', 'code', 'col', 'colgroup', 'data', 'dd', 'defs', 'del', 'desc', 'dfn', 'div', 'dl', 'dt', 'ellipse', 'em', 'fecolormatrix', 'fecomposite', 'feblend', 'feflood', 'fegaussianblur', 'femerge', 'femergenode', 'feoffset', 'figcaption', 'figure', 'filter', 'footer', 'g', 'glyph', 'glyphref', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hkern', 'hr', 'i', 'image', 'ins', 'kbd', 'li', 'line', 'lineargradient', 'main', 'mark', 'marker', 'mask', 'metadata', 'nav', 'noscript', 'ol', 'p', 'path', 'pattern', 'polygon', 'polyline', 'pre', 'q', 'radialgradient', 'rect', 'rp', 'rt', 'rtc', 'ruby', 's', 'samp', 'script', 'section', 'small', 'solidcolor', 'source', 'span', 'stop', 'strong', 'sub', 'sup', 'svg', 'switch', 'symbol', 'table', 'tbody', 'td', 'template', 'text', 'textpath', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'tref', 'tspan', 'u', 'ul', 'use', 'var', 'view', 'vkern', 'wbr'), 'amp-story-page-attachment-allowed-descendants' => array('a', 'abbr', 'address', 'amp-3d-gltf', 'amp-3q-player', 'amp-accordion', 'amp-audio', 'amp-beopinion', 'amp-bodymovin-animation', 'amp-brid-player', 'amp-brightcove', 'amp-byside-content', 'amp-call-tracking', 'amp-carousel', 'amp-dailymotion', 'amp-date-countdown', 'amp-date-display', 'amp-embedly-card', 'amp-facebook', 'amp-facebook-comments', 'amp-facebook-like', 'amp-facebook-page', 'amp-fit-text', 'amp-fx-collection', 'amp-fx-flying-carpet', 'amp-gfycat', 'amp-gist', 'amp-google-document-embed', 'amp-hulu', 'amp-ima-video', 'amp-image-slider', 'amp-img', 'amp-imgur', 'amp-instagram', 'amp-izlesene', 'amp-jwplayer', 'amp-kaltura-player', 'amp-list', 'amp-live-list', 'amp-mathml', 'amp-megaphone', 'amp-mowplayer', 'amp-nexxtv-player', 'amp-o2-player', 'amp-ooyala-player', 'amp-pan-zoom', 'amp-pinterest', 'amp-playbuzz', 'amp-powr-player', 'amp-reach-player', 'amp-reddit', 'amp-render', 'amp-riddle-quiz', 'amp-soundcloud', 'amp-selector', 'amp-springboard-player', 'amp-timeago', 'amp-twitter', 'amp-video', 'amp-video-iframe', 'amp-vimeo', 'amp-vine', 'amp-viqeo-player', 'amp-vk', 'amp-wistia-player', 'amp-yotpo', 'amp-youtube', 'article', 'aside', 'b', 'bdi', 'bdo', 'blockquote', 'br', 'button', 'caption', 'circle', 'cite', 'clippath', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'defs', 'del', 'desc', 'dfn', 'div', 'dl', 'dt', 'ellipse', 'em', 'fecolormatrix', 'fecomposite', 'feblend', 'feflood', 'fegaussianblur', 'femerge', 'femergenode', 'feoffset', 'figcaption', 'fieldset', 'figure', 'filter', 'form', 'footer', 'g', 'glyph', 'glyphref', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hkern', 'hr', 'i', 'image', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'line', 'lineargradient', 'main', 'mark', 'marker', 'mask', 'metadata', 'meter', 'nav', 'ol', 'optgroup', 'option', 'output', 'p', 'path', 'pattern', 'polygon', 'polyline', 'pre', 'progress', 'q', 'radialgradient', 'rect', 'rp', 'rt', 'rtc', 'ruby', 's', 'samp', 'section', 'select', 'small', 'solidcolor', 'source', 'span', 'stop', 'strong', 'sub', 'sup', 'svg', 'switch', 'symbol', 'table', 'tbody', 'td', 'template', 'text', 'textarea', 'textpath', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'tref', 'tspan', 'u', 'ul', 'use', 'var', 'view', 'vkern', 'wbr'), 'amp-story-player-allowed-descendants' => array('a', 'span', 'img'), 'amp-story-social-share-allowed-descendants' => array('script'));
    private static $allowed_tags = array('a' => array(array('attr_spec_list' => array('attributiondestination' => array(), 'attributionexpiry' => array(), 'attributionreportto' => array(), 'attributionsourceeventid' => array(), 'attributionsourceid' => array(), 'attributionsrc' => array('value_url' => array('allow_empty' => \true, 'protocol' => array('https'))), 'border' => array(), 'conversiondestination' => array(), 'data-amp-bind-href' => array(), 'download' => array(), 'href' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_empty' => \true, 'protocol' => array('ftp', 'geo', 'http', 'https', 'mailto', 'maps', 'bip', 'bbmi', 'chrome', 'itms-services', 'facetime', 'fb-me', 'fb-messenger', 'feed', 'intent', 'line', 'microsoft-edge', 'skype', 'sms', 'snapchat', 'tel', 'tg', 'threema', 'twitter', 'viber', 'webcal', 'web+mastodon', 'wh', 'whatsapp'))), 'hreflang' => array(), 'impressiondata' => array(), 'impressionexpiry' => array(), 'media' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'referrerpolicy' => array(), 'rel' => array('disallowed_value_regex' => '(^|\\s)(components|dns-prefetch|import|manifest|preconnect|prefetch|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)'), 'reportingorigin' => array(), 'role' => array(), 'show-tooltip' => array('value' => array('auto', 'true')), 'tabindex' => array(), 'target' => array('value' => array('_blank', '_self', '_top')), 'type' => array('value_casei' => array('text/html', 'application/rss+xml'))), 'tag_spec' => array('spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#links'))), 'abbr' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'acronym' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'address' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'amp-3d-gltf' => array(array('attr_spec_list' => array('alpha' => array('value' => array('false', 'true')), 'antialiasing' => array('value' => array('false', 'true')), 'autorotate' => array('value' => array('false', 'true')), 'clearcolor' => array(), 'enablezoom' => array('value' => array('false', 'true')), 'maxpixelratio' => array('value_regex' => '[+-]?(\\d*\\.)?\\d+'), 'media' => array(), 'noloading' => array('value' => array('')), 'src' => array('mandatory' => \true, 'value_url' => array('protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-3d-gltf')))), 'amp-3q-player' => array(array('attr_spec_list' => array('autoplay' => array('value' => array('')), 'data-id' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 7, 4)), 'requires_extension' => array('amp-3q-player')))), 'amp-accordion' => array(array('attr_spec_list' => array('animate' => array('value' => array('')), 'disable-session-states' => array('value' => array('')), 'expand-single-section' => array('value' => array('')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'child_tags' => array('child_tag_name_oneof' => array('section')), 'requires_extension' => array('amp-accordion'), 'spec_url' => 'https://amp.dev/documentation/components/amp-accordion/'))), 'amp-action-macro' => array(array('attr_spec_list' => array('arguments' => array(), 'execute' => array('mandatory' => \true), 'id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true)), 'tag_spec' => array('requires_extension' => array('amp-action-macro'), 'spec_url' => 'https://amp.dev/documentation/components/amp-action-macro/'))), 'amp-ad' => array(array('attr_spec_list' => array('alt' => array(), 'always-serve-npa' => array(), 'block-rtc' => array(), 'json' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'rtc-config' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'sticky' => array('value' => array('', 'bottom', 'bottom-right', 'left', 'right', 'top')), 'template' => array(), 'type' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 8, 9, 1, 4)), 'disallowed_ancestor' => array('amp-app-banner'), 'requires_extension' => array('amp-ad'), 'spec_url' => 'https://amp.dev/documentation/components/amp-ad/')), array('attr_spec_list' => array('data-url' => array('mandatory' => \true, 'value_url' => array('protocol' => array('https'))), 'media' => array(), 'noloading' => array('value' => array('')), 'template' => array(), 'type' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('custom'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 8, 9, 1, 4)), 'disallowed_ancestor' => array('amp-app-banner'), 'requires_extension' => array('amp-ad'), 'spec_name' => 'amp-ad with type=custom', 'spec_url' => 'https://github.com/ampproject/amphtml/blob/main/ads/vendors/custom.md')), array('attr_spec_list' => array('alt' => array(), 'always-serve-npa' => array(), 'block-rtc' => array(), 'data-multi-size' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('')), 'json' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'rtc-config' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 8, 9, 1, 4)), 'disallowed_ancestor' => array('amp-app-banner', 'amp-carousel', 'amp-fx-flying-carpet', 'amp-lightbox', 'amp-sticky-ad'), 'requires_extension' => array('amp-ad'), 'spec_name' => 'amp-ad with data-multi-size attribute', 'spec_url' => 'https://amp.dev/documentation/components/amp-ad/')), array('attr_spec_list' => array('alt' => array(), 'data-enable-refresh' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('')), 'json' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 8, 9, 1, 4)), 'disallowed_ancestor' => array('amp-app-banner', 'amp-fx-flying-carpet', 'amp-lightbox'), 'requires_extension' => array('amp-ad'), 'spec_name' => 'amp-ad with data-enable-refresh attribute', 'spec_url' => 'https://amp.dev/documentation/components/amp-ad/'))), 'amp-ad-custom' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 8, 9, 1, 4)), 'disallowed_ancestor' => array('amp-app-banner'), 'requires_extension' => array('amp-ad-custom')))), 'amp-addthis' => array(array('attr_spec_list' => array('data-product-code' => array(), 'data-share-media' => array('value_url' => array('allow_empty' => \true, 'protocol' => array('http', 'https'))), 'data-share-url' => array('value_url' => array('allow_empty' => \true, 'protocol' => array('http', 'https'))), 'data-widget-id' => array(), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_oneof' => array('data-product-code', 'data-widget-id'), 'requires_extension' => array('amp-addthis')))), 'amp-analytics' => array(array('attr_spec_list' => array('config' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_empty' => \true, 'allow_relative' => \true, 'protocol' => array('https'))), 'type' => array()), 'tag_spec' => array('requires_extension' => array('amp-analytics'), 'spec_url' => 'https://amp.dev/documentation/components/amp-analytics/'))), 'amp-anim' => array(array('attr_spec_list' => array('alt' => array(), 'attribution' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'object-fit' => array(), 'object-position' => array(), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-anim'), 'spec_url' => 'https://amp.dev/documentation/components/amp-anim/'))), 'amp-animation' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'trigger' => array('value' => array('visibility'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'child_tags' => array('child_tag_name_oneof' => array('script'), 'mandatory_num_child_tags' => 1), 'requires_extension' => array('amp-animation')))), 'amp-apester-media' => array(array('attr_spec_list' => array('data-apester-channel-token' => array('value_regex' => '[0-9a-zA-Z]+'), 'data-apester-media-id' => array('value_regex' => '[0-9a-zA-Z]+'), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_oneof' => array('data-apester-channel-token', 'data-apester-media-id'), 'requires_extension' => array('amp-apester-media'), 'spec_url' => 'https://amp.dev/documentation/components/amp-apester-media/'))), 'amp-app-banner' => array(array('attr_spec_list' => array('id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'mandatory_parent' => 'body', 'requires_extension' => array('amp-app-banner'), 'spec_url' => 'https://amp.dev/documentation/components/amp-app-banner/', 'unique' => \true))), 'amp-audio' => array(array('attr_spec_list' => array('album' => array(), 'artist' => array(), 'artwork' => array(), 'autoplay' => array('value' => array('')), 'controls' => array(), 'controlslist' => array(), 'data-amp-bind-album' => array(), 'data-amp-bind-artist' => array(), 'data-amp-bind-artwork' => array(), 'data-amp-bind-controlslist' => array(), 'data-amp-bind-loop' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-title' => array(), 'loop' => array('value' => array('')), 'media' => array(), 'muted' => array('value' => array('')), 'noloading' => array('value' => array('')), 'preload' => array('value_casei' => array('auto', 'metadata', 'none')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('defines_default_height' => \true, 'defines_default_width' => \true, 'supported_layouts' => array(2, 3, 5, 1)), 'disallowed_ancestor' => array('amp-story'), 'requires_extension' => array('amp-audio'), 'spec_url' => 'https://amp.dev/documentation/components/amp-audio/')), array('attr_spec_list' => array('album' => array(), 'artist' => array(), 'artwork' => array(), 'autoplay' => array('mandatory' => \true, 'value' => array('')), 'controls' => array(), 'controlslist' => array(), 'data-amp-bind-album' => array(), 'data-amp-bind-artist' => array(), 'data-amp-bind-artwork' => array(), 'data-amp-bind-controlslist' => array(), 'data-amp-bind-loop' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-title' => array(), 'loop' => array('value' => array('')), 'media' => array(), 'muted' => array('value' => array('')), 'noloading' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'mandatory_ancestor' => 'amp-story', 'requires_extension' => array('amp-audio'), 'spec_name' => 'amp-story >> amp-audio', 'spec_url' => 'https://amp.dev/documentation/components/amp-audio/'))), 'amp-auto-ads' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'type' => array('mandatory' => \true)), 'tag_spec' => array('disallowed_ancestor' => array('amp-auto-ads'), 'requires_extension' => array('amp-auto-ads'), 'spec_url' => 'https://amp.dev/documentation/components/amp-auto-ads/'))), 'amp-autocomplete' => array(array('attr_spec_list' => array('data-amp-bind-src' => array(), 'filter' => array('mandatory' => \true, 'value_casei' => array('custom', 'fuzzy', 'none', 'prefix', 'substring', 'token-prefix')), 'filter-expr' => array('requires_extension' => array('amp-bind')), 'filter-value' => array(), 'highlight-user-entry' => array(), 'inline' => array(), 'items' => array(), 'max-entries' => array(), 'max-items' => array(), 'media' => array(), 'min-characters' => array(), 'noloading' => array('value' => array('')), 'prefetch' => array(), 'query' => array(), 'src' => array('value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'submit-on-enter' => array(), 'suggest-first' => array(), 'template' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'requires_extension' => array('amp-autocomplete'), 'spec_name' => 'amp-autocomplete', 'spec_url' => 'https://amp.dev/documentation/components/amp-autocomplete/'))), 'amp-base-carousel' => array(array('attr_spec_list' => array('advance-count' => array('value_regex' => '([^,]+\\s+(-?\\d+),\\s*)*(-?\\d+)'), 'auto-advance' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'auto-advance-count' => array('value_regex' => '([^,]+\\s+(-?\\d+),\\s*)*(-?\\d+)'), 'auto-advance-interval' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'auto-advance-loops' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'controls' => array('value_regex' => '([^,]+\\s+(always|auto|never),\\s*)*(always|auto|never)'), 'data-amp-bind-advance-count' => array(), 'data-amp-bind-auto-advance' => array(), 'data-amp-bind-auto-advance-count' => array(), 'data-amp-bind-auto-advance-interval' => array(), 'data-amp-bind-auto-advance-loops' => array(), 'data-amp-bind-horizontal' => array(), 'data-amp-bind-loop' => array(), 'data-amp-bind-mixed-length' => array(), 'data-amp-bind-orientation' => array(), 'data-amp-bind-slide' => array(), 'data-amp-bind-snap' => array(), 'data-amp-bind-snap-align' => array(), 'data-amp-bind-snap-by' => array(), 'data-amp-bind-visible-count' => array(), 'horizontal' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'loop' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false|^$)'), 'media' => array(), 'mixed-length' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'noloading' => array('value' => array('')), 'orientation' => array('value_regex' => '([^,]+\\s+(horizontal|vertical),\\s*)*(horizontal|vertical)'), 'slide' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'snap' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'snap-align' => array('value_regex' => '([^,]+\\s+(start|center),\\s*)*(start|center)'), 'snap-by' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'visible-count' => array('value_regex' => '([^,]+\\s+(\\d+(\\.\\d+)?),\\s*)*(\\d+(\\.\\d+)?)')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-base-carousel'), 'spec_url' => 'https://amp.dev/documentation/components/amp-base-carousel/')), array('attr_spec_list' => array('advance-count' => array('value_regex' => '([^,]+\\s+(-?\\d+),\\s*)*(-?\\d+)'), 'auto-advance' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'auto-advance-count' => array('value_regex' => '([^,]+\\s+(-?\\d+),\\s*)*(-?\\d+)'), 'auto-advance-interval' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'auto-advance-loops' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'controls' => array('value_regex' => '([^,]+\\s+(always|auto|never),\\s*)*(always|auto|never)'), 'data-amp-bind-advance-count' => array(), 'data-amp-bind-auto-advance' => array(), 'data-amp-bind-auto-advance-count' => array(), 'data-amp-bind-auto-advance-interval' => array(), 'data-amp-bind-auto-advance-loops' => array(), 'data-amp-bind-horizontal' => array(), 'data-amp-bind-loop' => array(), 'data-amp-bind-mixed-length' => array(), 'data-amp-bind-orientation' => array(), 'data-amp-bind-slide' => array(), 'data-amp-bind-snap' => array(), 'data-amp-bind-snap-align' => array(), 'data-amp-bind-snap-by' => array(), 'data-amp-bind-visible-count' => array(), 'horizontal' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'lightbox' => array('mandatory' => \true), 'loop' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false|^$)'), 'media' => array(), 'mixed-length' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'noloading' => array('value' => array('')), 'orientation' => array('value_regex' => '([^,]+\\s+(horizontal|vertical),\\s*)*(horizontal|vertical)'), 'slide' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'snap' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'snap-align' => array('value_regex' => '([^,]+\\s+(start|center),\\s*)*(start|center)'), 'snap-by' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'visible-count' => array('value_regex' => '([^,]+\\s+(\\d+(\\.\\d+)?),\\s*)*(\\d+(\\.\\d+)?)')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'reference_points' => array('AMP-BASE-CAROUSEL lightbox [child]' => array('mandatory' => \false, 'unique' => \false), 'AMP-BASE-CAROUSEL lightbox [lightbox-exclude]' => array('mandatory' => \false, 'unique' => \false)), 'requires_extension' => array('amp-base-carousel', 'amp-lightbox-gallery'), 'spec_name' => 'AMP-BASE-CAROUSEL [lightbox]', 'spec_url' => 'https://amp.dev/documentation/components/amp-base-carousel/'))), 'amp-beopinion' => array(array('attr_spec_list' => array('data-account' => array('mandatory' => \true, 'value_regex_casei' => '[0-9a-f]{24}'), 'data-content' => array('value_regex_casei' => '[0-9a-f]{24}'), 'data-my-content' => array('value' => array('0', '1')), 'data-name' => array(), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-beopinion')))), 'amp-bind-macro' => array(array('attr_spec_list' => array('arguments' => array(), 'expression' => array('mandatory' => \true), 'id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true)), 'tag_spec' => array('requires_extension' => array('amp-bind'), 'spec_url' => 'https://amp.dev/documentation/components/amp-bind/'))), 'amp-bodymovin-animation' => array(array('attr_spec_list' => array('loop' => array('value_regex_casei' => '[1-9][0-9]*|false|true'), 'noautoplay' => array('value' => array('')), 'renderer' => array('value_casei' => array('canvas', 'html', 'svg')), 'src' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-bodymovin-animation'), 'spec_url' => 'https://amp.dev/documentation/components/amp-bodymovin-animation/'))), 'amp-brid-player' => array(array('attr_spec_list' => array('autoplay' => array(), 'data-carousel' => array('value_regex' => '[0-9]+'), 'data-dynamic' => array('value_regex' => '[a-z]+'), 'data-outstream' => array('value_regex' => '[0-9]+'), 'data-partner' => array('mandatory' => \true, 'value_regex' => '[0-9]+'), 'data-player' => array('mandatory' => \true, 'value_regex' => '[0-9]+'), 'data-playlist' => array('value_regex' => '.+'), 'data-video' => array('value_regex' => '[0-9]+'), 'dock' => array('requires_extension' => array('amp-video-docking')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_oneof' => array('data-carousel', 'data-outstream', 'data-playlist', 'data-video'), 'requires_extension' => array('amp-brid-player'), 'spec_url' => 'https://amp.dev/documentation/components/amp-brid-player/'))), 'amp-brightcove' => array(array('attr_spec_list' => array('autoplay' => array('value' => array('')), 'data-account' => array('mandatory' => \true), 'data-amp-bind-data-account' => array(), 'data-amp-bind-data-embed' => array(), 'data-amp-bind-data-player' => array(), 'data-amp-bind-data-player-id' => array(), 'data-amp-bind-data-playlist-id' => array(), 'data-amp-bind-data-referrer' => array(), 'data-amp-bind-data-video-id' => array(), 'dock' => array('requires_extension' => array('amp-video-docking')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-brightcove'), 'spec_url' => 'https://amp.dev/documentation/components/amp-brightcove/'))), 'amp-byside-content' => array(array('attr_spec_list' => array('data-label' => array('mandatory' => \true), 'data-webcare-id' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-byside-content')))), 'amp-call-tracking' => array(array('attr_spec_list' => array('config' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 6, 2, 3, 7, 4)), 'child_tags' => array('child_tag_name_oneof' => array('a'), 'mandatory_num_child_tags' => 1), 'requires_extension' => array('amp-call-tracking'), 'spec_url' => 'https://amp.dev/documentation/components/amp-call-tracking/'))), 'amp-carousel' => array(array('attr_spec_list' => array('arrows' => array('value' => array('')), 'autoplay' => array('value_regex' => '(|[0-9]+)'), 'controls' => array(), 'data-amp-bind-slide' => array(), 'delay' => array('value_regex' => '[0-9]+'), 'dots' => array('value' => array('')), 'loop' => array('value' => array('')), 'media' => array(), 'noloading' => array('value' => array('')), 'slide' => array('value_regex' => '[0-9]+'), 'type' => array('value' => array('carousel', 'slides'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-carousel'), 'spec_name' => 'AMP-CAROUSEL', 'spec_url' => 'https://amp.dev/documentation/components/amp-carousel/')), array('attr_spec_list' => array('arrows' => array('value' => array('')), 'autoplay' => array('value_regex' => '(|[0-9]+)'), 'controls' => array(), 'data-amp-bind-slide' => array(), 'delay' => array('value_regex' => '[0-9]+'), 'dots' => array('value' => array('')), 'lightbox' => array('mandatory' => \true), 'loop' => array('value' => array('')), 'media' => array(), 'noloading' => array('value' => array('')), 'slide' => array('value_regex' => '[0-9]+'), 'type' => array('value' => array('carousel', 'slides'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'reference_points' => array('AMP-CAROUSEL lightbox [child]' => array('mandatory' => \false, 'unique' => \false), 'AMP-CAROUSEL lightbox [lightbox-exclude]' => array('mandatory' => \false, 'unique' => \false)), 'requires_extension' => array('amp-carousel', 'amp-lightbox-gallery'), 'spec_name' => 'AMP-CAROUSEL lightbox', 'spec_url' => 'https://amp.dev/documentation/components/amp-carousel/'))), 'amp-connatix-player' => array(array('attr_spec_list' => array('data-player-id' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-connatix-player'), 'spec_url' => 'https://amp.dev/documentation/components/amp-connatix-player/'))), 'amp-consent' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-consent'), 'unique' => \true)), array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'type' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-consent'), 'spec_name' => 'amp-consent [type]', 'unique' => \true))), 'amp-dailymotion' => array(array('attr_spec_list' => array('autoplay' => array(), 'data-endscreen-enable' => array('value' => array('false', 'true')), 'data-info' => array('value' => array('false', 'true')), 'data-mute' => array('value' => array('false', 'true')), 'data-sharing-enable' => array('value' => array('false', 'true')), 'data-start' => array('value_regex' => '[0-9]+'), 'data-ui-highlight' => array('value_regex_casei' => '([0-9a-f]{3}){1,2}'), 'data-ui-logo' => array('value' => array('false', 'true')), 'data-videoid' => array('mandatory' => \true, 'value_regex_casei' => '[a-z0-9]+'), 'dock' => array('requires_extension' => array('amp-video-docking')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-dailymotion'), 'spec_url' => 'https://amp.dev/documentation/components/amp-dailymotion/'))), 'amp-date-countdown' => array(array('attr_spec_list' => array('biggest-unit' => array('value_casei' => array('days', 'hours', 'minutes', 'seconds')), 'count-up' => array('value' => array('')), 'data-count-up' => array('value' => array('')), 'end-date' => array('value_regex' => '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?(Z|[+-][0-1][0-9]:[0-5][0-9])'), 'locale' => array('value_casei' => array('de', 'en', 'es', 'fr', 'id', 'it', 'ja', 'ko', 'nl', 'pt', 'ru', 'th', 'tr', 'vi', 'zh-cn', 'zh-tw')), 'media' => array(), 'noloading' => array('value' => array('')), 'offset-seconds' => array('value_regex' => '-?\\d+'), 'template' => array(), 'timeleft-ms' => array('value_regex' => '\\d+'), 'timestamp-ms' => array('value_regex' => '\\d{13}'), 'timestamp-seconds' => array('value_regex' => '\\d{10}'), 'when-ended' => array('value_casei' => array('continue', 'stop'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_oneof' => array('end-date', 'timeleft-ms', 'timestamp-ms', 'timestamp-seconds'), 'requires_extension' => array('amp-date-countdown')))), 'amp-date-display' => array(array('attr_spec_list' => array('datetime' => array('value_regex' => 'now|(\\d{4}-[01]\\d-[0-3]\\d(T[0-2]\\d:[0-5]\\d(:[0-6]\\d(\\.\\d\\d?\\d?)?)?(Z|[+-][0-1]\\d:[0-5]\\d)?)?)'), 'display-in' => array('value_casei' => array('utc')), 'locale' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'offset-seconds' => array('value_regex' => '-?\\d+'), 'template' => array(), 'timestamp-ms' => array('value_regex' => '\\d+'), 'timestamp-seconds' => array('value_regex' => '\\d+')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_oneof' => array('datetime', 'timestamp-ms', 'timestamp-seconds'), 'requires_extension' => array('amp-date-display')))), 'amp-date-picker' => array(array('attr_spec_list' => array('allow-blocked-end-date' => array('value' => array('')), 'allow-blocked-ranges' => array('value' => array('')), 'blocked' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-src' => array(), 'date' => array(), 'day-size' => array('value_regex' => '[0-9]+'), 'first-day-of-week' => array('value_regex' => '[0-6]'), 'format' => array(), 'fullscreen' => array('value' => array('')), 'hide-keyboard-shortcuts-panel' => array('value' => array('')), 'highlighted' => array(), 'input-selector' => array(), 'locale' => array(), 'max' => array(), 'media' => array(), 'min' => array(), 'mode' => array('value_casei' => array('static')), 'month-format' => array(), 'noloading' => array('value' => array('')), 'number-of-months' => array('value_regex' => '[0-9]+'), 'open-after-clear' => array('value' => array('')), 'open-after-select' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'type' => array('value_casei' => array('single')), 'week-day-format' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-date-picker'), 'spec_name' => 'amp-date-picker[type=single][mode=static]')), array('attr_spec_list' => array('allow-blocked-end-date' => array('value' => array('')), 'allow-blocked-ranges' => array('value' => array('')), 'blocked' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-src' => array(), 'date' => array(), 'day-size' => array('value_regex' => '[0-9]+'), 'first-day-of-week' => array('value_regex' => '[0-6]'), 'format' => array(), 'hide-keyboard-shortcuts-panel' => array('value' => array('')), 'highlighted' => array(), 'input-selector' => array(), 'locale' => array(), 'max' => array(), 'media' => array(), 'min' => array(), 'mode' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('overlay')), 'month-format' => array(), 'noloading' => array('value' => array('')), 'number-of-months' => array('value_regex' => '[0-9]+'), 'open-after-clear' => array('value' => array('')), 'open-after-select' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'touch-keyboard-editable' => array('value' => array('')), 'type' => array('value_casei' => array('single')), 'week-day-format' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 1)), 'requires_extension' => array('amp-date-picker'), 'spec_name' => 'amp-date-picker[type=single][mode=overlay]')), array('attr_spec_list' => array('allow-blocked-end-date' => array('value' => array('')), 'allow-blocked-ranges' => array('value' => array('')), 'blocked' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-src' => array(), 'day-size' => array('value_regex' => '[0-9]+'), 'end-date' => array(), 'end-input-selector' => array(), 'first-day-of-week' => array('value_regex' => '[0-6]'), 'format' => array(), 'fullscreen' => array('value' => array('')), 'hide-keyboard-shortcuts-panel' => array('value' => array('')), 'highlighted' => array(), 'locale' => array(), 'max' => array(), 'maximum-nights' => array('value_regex' => '[0-9]+'), 'media' => array(), 'min' => array(), 'minimum-nights' => array('value_regex' => '[0-9]+'), 'mode' => array('value_casei' => array('static')), 'month-format' => array(), 'noloading' => array('value' => array('')), 'number-of-months' => array('value_regex' => '[0-9]+'), 'open-after-clear' => array('value' => array('')), 'open-after-select' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'start-date' => array(), 'start-input-selector' => array(), 'type' => array('mandatory' => \true, 'value_casei' => array('range')), 'week-day-format' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-date-picker'), 'spec_name' => 'amp-date-picker[type=range][mode=static]')), array('attr_spec_list' => array('allow-blocked-end-date' => array('value' => array('')), 'allow-blocked-ranges' => array('value' => array('')), 'blocked' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-src' => array(), 'day-size' => array('value_regex' => '[0-9]+'), 'end-date' => array(), 'end-input-selector' => array(), 'first-day-of-week' => array('value_regex' => '[0-6]'), 'format' => array(), 'hide-keyboard-shortcuts-panel' => array('value' => array('')), 'highlighted' => array(), 'locale' => array(), 'max' => array(), 'maximum-nights' => array('value_regex' => '[0-9]+'), 'media' => array(), 'min' => array(), 'minimum-nights' => array('value_regex' => '[0-9]+'), 'mode' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('overlay')), 'month-format' => array(), 'noloading' => array('value' => array('')), 'number-of-months' => array('value_regex' => '[0-9]+'), 'open-after-clear' => array('value' => array('')), 'open-after-select' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'start-date' => array(), 'start-input-selector' => array(), 'touch-keyboard-editable' => array('value' => array('')), 'type' => array('mandatory' => \true, 'value_casei' => array('range')), 'week-day-format' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 1)), 'requires_extension' => array('amp-date-picker'), 'spec_name' => 'amp-date-picker[type=range][mode=overlay]'))), 'amp-delight-player' => array(array('attr_spec_list' => array('data-content-id' => array('mandatory' => \true), 'dock' => array('requires_extension' => array('amp-video-docking')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-delight-player')))), 'amp-embed' => array(array('attr_spec_list' => array('alt' => array(), 'always-serve-npa' => array(), 'block-rtc' => array(), 'json' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'rtc-config' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 8, 9, 1, 4)), 'disallowed_ancestor' => array('amp-app-banner'), 'requires_extension' => array('amp-ad'), 'spec_url' => 'https://amp.dev/documentation/components/amp-ad/')), array('attr_spec_list' => array('alt' => array(), 'always-serve-npa' => array(), 'block-rtc' => array(), 'data-multi-size' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('')), 'json' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'rtc-config' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 8, 9, 1, 4)), 'disallowed_ancestor' => array('amp-app-banner', 'amp-carousel', 'amp-fx-flying-carpet', 'amp-lightbox', 'amp-sticky-ad'), 'requires_extension' => array('amp-ad'), 'spec_name' => 'amp-embed with data-multi-size attribute', 'spec_url' => 'https://amp.dev/documentation/components/amp-ad/'))), 'amp-embedly-card' => array(array('attr_spec_list' => array('data-url' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(4)), 'requires_extension' => array('amp-embedly-card'), 'spec_url' => 'https://amp.dev/documentation/components/amp-embedly-card/'))), 'amp-embedly-key' => array(array('attr_spec_list' => array('value' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-embedly-card'), 'unique' => \true))), 'amp-experiment' => array(array('attr_spec_list' => array(), 'tag_spec' => array('requires_extension' => array('amp-experiment'), 'spec_url' => 'https://amp.dev/documentation/components/amp-experiment/', 'unique' => \true))), 'amp-facebook' => array(array('attr_spec_list' => array('data-href' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-facebook')))), 'amp-facebook-comments' => array(array('attr_spec_list' => array('data-href' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-facebook-comments')))), 'amp-facebook-like' => array(array('attr_spec_list' => array('data-href' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('http', 'https'))), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-facebook-like')))), 'amp-facebook-page' => array(array('attr_spec_list' => array('data-href' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('http', 'https'))), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-facebook-page')))), 'amp-fit-text' => array(array('attr_spec_list' => array('max-font-size' => array(), 'media' => array(), 'min-font-size' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-fit-text')))), 'amp-font' => array(array('attr_spec_list' => array('font-family' => array('mandatory' => \true), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'on-error-add-class' => array(), 'on-error-remove-class' => array(), 'on-load-add-class' => array(), 'on-load-remove-class' => array(), 'timeout' => array('value_regex' => '[0-9]+')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-font')))), 'amp-fx-flying-carpet' => array(array('attr_spec_list' => array('height' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('requires_extension' => array('amp-fx-flying-carpet')))), 'amp-geo' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'child_tags' => array('first_child_tag_name_oneof' => array('script')), 'requires_extension' => array('amp-geo'), 'unique' => \true))), 'amp-gfycat' => array(array('attr_spec_list' => array('data-gfyid' => array('mandatory' => \true), 'media' => array(), 'noautoplay' => array('value' => array('')), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-gfycat'), 'spec_url' => 'https://amp.dev/documentation/components/amp-gfycat/'))), 'amp-gist' => array(array('attr_spec_list' => array('data-gistid' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(3)), 'requires_extension' => array('amp-gist'), 'spec_url' => 'https://amp.dev/documentation/components/amp-gist/'))), 'amp-google-document-embed' => array(array('attr_spec_list' => array('data-amp-bind-src' => array(), 'data-amp-bind-title' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-google-document-embed'), 'spec_url' => 'https://amp.dev/documentation/components/amp-google-document-embed/'))), 'amp-google-read-aloud-player' => array(array('attr_spec_list' => array('data-ad-tag-url' => array('value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'data-api-key' => array('mandatory' => \true), 'data-call-to-action-label' => array(), 'data-intro' => array('value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'data-locale' => array('value_regex_casei' => '[a-z]{2}'), 'data-outro' => array('value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'data-speakable' => array('value' => array('')), 'data-tracking-ids' => array('mandatory' => \true, 'value_regex_casei' => '^UA-\\d+-\\d+(\\s*,\\s*UA-\\d+-\\d+)*$'), 'data-url' => array('value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'data-voice' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(2, 3)), 'requires_extension' => array('amp-google-read-aloud-player'), 'spec_url' => 'https://amp.dev/documentation/components/amp-google-read-aloud-player'))), 'amp-hulu' => array(array('attr_spec_list' => array('data-eid' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-hulu'), 'spec_url' => 'https://amp.dev/documentation/components/amp-hulu/'))), 'amp-iframe' => array(array('attr_spec_list' => array('allow' => array(), 'allowfullscreen' => array('value' => array('')), 'allowpaymentrequest' => array('value' => array('')), 'allowtransparency' => array('value' => array('')), 'data-amp-bind-src' => array(), 'frameborder' => array('value' => array('0', '1')), 'media' => array(), 'noloading' => array('value' => array('')), 'referrerpolicy' => array(), 'resizable' => array('value' => array('')), 'sandbox' => array(), 'scrolling' => array('value' => array('auto', 'no', 'yes')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('data', 'https'))), 'srcdoc' => array(), 'tabindex' => array('value_regex' => '-?\\d+')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'mandatory_oneof' => array('src', 'srcdoc'), 'requires_extension' => array('amp-iframe')))), 'amp-iframely' => array(array('attr_spec_list' => array('data-border' => array('value_regex' => '(\\d+)'), 'data-domain' => array('value_regex' => '^((?:[^\\.\\/]+\\.)?iframe\\.ly|if\\-cdn\\.com|iframely\\.net|oembed\\.vice\\.com|iframe\\.nbcnews\\.com)$'), 'data-id' => array(), 'data-img' => array('value' => array('')), 'data-key' => array(), 'data-url' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'resizable' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4, 9)), 'mandatory_oneof' => array('data-id', 'data-url'), 'requires_extension' => array('amp-iframely'), 'spec_url' => 'https://amp.dev/documentation/components/amp-iframely'))), 'amp-ima-video' => array(array('attr_spec_list' => array('autoplay' => array('value' => array('')), 'data-src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'data-tag' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'dock' => array('requires_extension' => array('amp-video-docking')), 'media' => array(), 'noloading' => array('value' => array('')), 'rotate-to-fullscreen' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 1, 4)), 'requires_extension' => array('amp-ima-video'), 'spec_url' => 'https://amp.dev/documentation/components/amp-ima-video/'))), 'amp-image-lightbox' => array(array('attr_spec_list' => array('controls' => array(), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-image-lightbox')))), 'amp-image-slider' => array(array('attr_spec_list' => array('disable-hint-reappear' => array(), 'initial-slider-position' => array('value_regex' => '0(\\.[0-9]+)?|1(\\.0+)?'), 'media' => array(), 'noloading' => array('value' => array('')), 'step-size' => array('value_regex' => '0(\\.[0-9]+)?|1(\\.0+)?')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(2, 9, 1, 4)), 'child_tags' => array('child_tag_name_oneof' => array('amp-img', 'div'), 'mandatory_min_num_child_tags' => 2), 'requires_extension' => array('amp-image-slider'), 'spec_url' => 'https://amp.dev/documentation/components/amp-image-slider/'))), 'amp-img' => array(array('attr_spec_list' => array('alt' => array(), 'attribution' => array(), 'crossorigin' => array(), 'data-amp-bind-alt' => array(), 'data-amp-bind-attribution' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-srcset' => array(), 'importance' => array('value_casei' => array('high', 'low', 'auto')), 'lightbox' => array(), 'lightbox-thumbnail-id' => array('value_regex_casei' => '^[a-z][a-z\\d_-]*'), 'media' => array(), 'noloading' => array('value' => array('')), 'object-fit' => array(), 'object-position' => array(), 'placeholder' => array(), 'referrerpolicy' => array(), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'spec_url' => 'https://amp.dev/documentation/components/amp-img/'))), 'amp-imgur' => array(array('attr_spec_list' => array('data-imgur-id' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-imgur')))), 'amp-inline-gallery' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'requires_extension' => array('amp-inline-gallery'), 'spec_url' => 'https://amp.dev/documentation/components/amp-inline-gallery/'))), 'amp-inline-gallery-pagination' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'mandatory_ancestor' => 'amp-inline-gallery', 'requires_extension' => array('amp-inline-gallery'), 'spec_name' => 'amp-inline-gallery-pagination', 'spec_url' => 'https://amp.dev/documentation/components/amp-inline-gallery/')), array('attr_spec_list' => array('inset' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'mandatory_ancestor' => 'amp-inline-gallery', 'requires_extension' => array('amp-inline-gallery'), 'spec_name' => 'amp-inline-gallery-pagination [inset]', 'spec_url' => 'https://amp.dev/documentation/components/amp-inline-gallery/'))), 'amp-inline-gallery-thumbnails' => array(array('attr_spec_list' => array('aspect-ratio' => array('disallowed_value_regex' => '^0+(\\.0+)?$', 'value_regex' => '\\d+(\\.\\d+)?'), 'aspect-ratio-height' => array('disallowed_value_regex' => '^0+(\\.0+)?$', 'value_regex' => '\\d+(\\.\\d+)?'), 'aspect-ratio-width' => array('disallowed_value_regex' => '^0+(\\.0+)?$', 'value_regex' => '\\d+(\\.\\d+)?'), 'loop' => array('value' => array('true', 'false', '')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'mandatory_ancestor' => 'amp-inline-gallery', 'requires_extension' => array('amp-inline-gallery'), 'spec_url' => 'https://amp.dev/documentation/components/amp-inline-gallery/'))), 'amp-instagram' => array(array('attr_spec_list' => array('alt' => array(), 'data-shortcode' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-instagram')))), 'amp-install-serviceworker' => array(array('attr_spec_list' => array('data-iframe-src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \true, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-install-serviceworker')))), 'amp-izlesene' => array(array('attr_spec_list' => array('data-videoid' => array('mandatory' => \true, 'value_regex' => '[0-9]+'), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-izlesene')))), 'amp-jwplayer' => array(array('attr_spec_list' => array('autoplay' => array('value' => array('')), 'data-media-id' => array('value_regex_casei' => '[0-9a-z]{8}|outstream'), 'data-player-id' => array('mandatory' => \true, 'value_regex_casei' => '[0-9a-z]{8}'), 'data-playlist-id' => array('value_regex_casei' => '[0-9a-z]{8}'), 'dock' => array('requires_extension' => array('amp-video-docking'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_oneof' => array('data-media-id', 'data-playlist-id'), 'requires_extension' => array('amp-jwplayer'), 'spec_url' => 'https://amp.dev/documentation/components/amp-jwplayer/'))), 'amp-kaltura-player' => array(array('attr_spec_list' => array('data-partner' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-kaltura-player')))), 'amp-layout' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4, 5)), 'spec_url' => 'https://amp.dev/documentation/components/amp-layout/'))), 'amp-lightbox' => array(array('attr_spec_list' => array('animate-in' => array('value_casei' => array('fade-in', 'fly-in-bottom', 'fly-in-top')), 'animation' => array('value_casei' => array('fade-in', 'fly-in-bottom', 'fly-in-top')), 'controls' => array(), 'data-amp-bind-open' => array(), 'from' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'scrollable' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-lightbox')))), 'amp-link-rewriter' => array(array('attr_spec_list' => array(), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'child_tags' => array('first_child_tag_name_oneof' => array('script'), 'mandatory_num_child_tags' => 1), 'requires_extension' => array('amp-link-rewriter'), 'unique' => \true))), 'amp-list' => array(array('attr_spec_list' => array('auto-resize' => array('value' => array('')), 'binding' => array('value' => array('always', 'no', 'refresh')), 'credentials' => array(), 'data-amp-bind-is-layout-container' => array(), 'data-amp-bind-src' => array(), 'diffable' => array('value' => array('')), 'items' => array(), 'load-more' => array('value' => array('auto', 'manual')), 'load-more-bookmark' => array(), 'max-items' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'reset-on-refresh' => array('value' => array('', 'always', 'fetch')), 'single-item' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https', 'amp-state', 'amp-script'))), 'template' => array(), 'xssi-prefix' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_anyof' => array('data-amp-bind-src', 'src'), 'requires_extension' => array('amp-list')))), 'amp-list-load-more' => array(array('attr_spec_list' => array('load-more-button' => array('value' => array('')), 'load-more-end' => array('value' => array('')), 'load-more-failed' => array('value' => array('')), 'load-more-loading' => array('value' => array(''))), 'tag_spec' => array('mandatory_oneof' => array('load-more-button', 'load-more-end', 'load-more-failed', 'load-more-loading'), 'mandatory_parent' => 'amp-list', 'requires_extension' => array('amp-list')))), 'amp-live-list' => array(array('attr_spec_list' => array('data-max-items-per-page' => array('mandatory' => \true, 'value_regex' => '\\d+'), 'data-poll-interval' => array('value_regex' => '\\d{5,}'), 'disabled' => array('value' => array('')), 'id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true), 'sort' => array('value' => array('ascending'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 3)), 'reference_points' => array('AMP-LIVE-LIST [items]' => array('mandatory' => \true, 'unique' => \true), 'AMP-LIVE-LIST [pagination]' => array('mandatory' => \false, 'unique' => \true), 'AMP-LIVE-LIST [update]' => array('mandatory' => \true, 'unique' => \true)), 'requires_extension' => array('amp-live-list')))), 'amp-mathml' => array(array('attr_spec_list' => array('data-formula' => array('mandatory' => \true), 'inline' => array(), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'requires_extension' => array('amp-mathml')))), 'amp-mega-menu' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(3)), 'child_tags' => array('child_tag_name_oneof' => array('nav', 'amp-list'), 'mandatory_num_child_tags' => 1), 'descendant_tag_list' => 'amp-mega-menu-allowed-descendants', 'reference_points' => array('AMP-MEGA-MENU > AMP-LIST' => array('mandatory' => \false, 'unique' => \false), 'AMP-MEGA-MENU > NAV' => array('mandatory' => \false, 'unique' => \false)), 'requires_extension' => array('amp-mega-menu'), 'spec_url' => 'https://amp.dev/documentation/components/amp-mega-menu/'))), 'amp-megaphone' => array(array('attr_spec_list' => array('data-episodes' => array('value_regex' => '[0-9]+'), 'data-light' => array('value' => array('')), 'data-playlist' => array('dispatch_key' => 1, 'mandatory' => \true, 'value_regex' => '[A-Za-z0-9]+'), 'data-sharing' => array('value' => array('')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(2, 3)), 'requires_extension' => array('amp-megaphone'), 'spec_name' => 'amp-megaphone [data-playlist]')), array('attr_spec_list' => array('data-episode' => array('dispatch_key' => 1, 'mandatory' => \true, 'value_regex' => '[A-Za-z0-9]+'), 'data-light' => array('value' => array('')), 'data-sharing' => array('value' => array('')), 'data-start' => array('value_regex' => '\\d+(\\.\\d+)?'), 'data-tile' => array('value' => array('')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(2, 3)), 'requires_extension' => array('amp-megaphone'), 'spec_name' => 'amp-megaphone [data-episode]'))), 'amp-minute-media-player' => array(array('attr_spec_list' => array('autoplay' => array(), 'data-content-id' => array(), 'data-content-type' => array('mandatory' => \true, 'value' => array('curated', 'semantic', 'specific')), 'data-minimum-date-factor' => array(), 'data-scanned-element' => array(), 'data-scanned-element-type' => array('value' => array('className', 'id', 'tag')), 'data-scoped-keywords' => array(), 'data-tags' => array(), 'dock' => array('requires_extension' => array('amp-video-docking')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-minute-media-player'), 'spec_url' => 'https://amp.dev/documentation/components/amp-minute-media-player/'))), 'amp-mowplayer' => array(array('attr_spec_list' => array('autoplay' => array(), 'data-mediaid' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-mowplayer')))), 'amp-nested-menu' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'side' => array('value' => array('left', 'right'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6)), 'descendant_tag_list' => 'amp-nested-menu-allowed-descendants', 'mandatory_ancestor' => 'amp-sidebar', 'requires_extension' => array('amp-sidebar'), 'spec_url' => 'https://amp.dev/documentation/components/amp-nested-menu/'))), 'amp-next-page' => array(array('attr_spec_list' => array('deep-parsing' => array(), 'max-pages' => array()), 'tag_spec' => array('reference_points' => array('AMP-NEXT-PAGE > SCRIPT[type=application/json]' => array('mandatory' => \true, 'unique' => \true), 'AMP-NEXT-PAGE > [footer]' => array('mandatory' => \false, 'unique' => \true), 'AMP-NEXT-PAGE > [recommendation-box]' => array('mandatory' => \false, 'unique' => \true), 'AMP-NEXT-PAGE > [separator]' => array('mandatory' => \false, 'unique' => \true)), 'requires_extension' => array('amp-next-page'), 'spec_name' => 'amp-next-page with inline config', 'spec_url' => 'https://amp.dev/documentation/components/amp-next-page/', 'unique' => \true)), array('attr_spec_list' => array('deep-parsing' => array(), 'max-pages' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'xssi-prefix' => array()), 'tag_spec' => array('reference_points' => array('AMP-NEXT-PAGE > SCRIPT[type=application/json]' => array('mandatory' => \false, 'unique' => \true), 'AMP-NEXT-PAGE > [footer]' => array('mandatory' => \false, 'unique' => \true), 'AMP-NEXT-PAGE > [recommendation-box]' => array('mandatory' => \false, 'unique' => \true), 'AMP-NEXT-PAGE > [separator]' => array('mandatory' => \false, 'unique' => \true)), 'requires_extension' => array('amp-next-page'), 'spec_name' => 'amp-next-page with src attribute', 'spec_url' => 'https://amp.dev/documentation/components/amp-next-page/', 'unique' => \true)), array('attr_spec_list' => array('data-client' => array('mandatory' => \true), 'data-slot' => array('mandatory' => \true), 'deep-parsing' => array(), 'max-pages' => array(), 'type' => array('mandatory' => \true, 'value' => array('adsense'))), 'tag_spec' => array('reference_points' => array('AMP-NEXT-PAGE > SCRIPT[type=application/json]' => array('mandatory' => \false, 'unique' => \true), 'AMP-NEXT-PAGE > [footer]' => array('mandatory' => \false, 'unique' => \true), 'AMP-NEXT-PAGE > [recommendation-box]' => array('mandatory' => \false, 'unique' => \true), 'AMP-NEXT-PAGE > [separator]' => array('mandatory' => \false, 'unique' => \true)), 'requires_extension' => array('amp-next-page'), 'spec_name' => 'amp-next-page [type=adsense]', 'spec_url' => 'https://amp.dev/documentation/components/amp-next-page/', 'unique' => \true))), 'amp-nexxtv-player' => array(array('attr_spec_list' => array('data-client' => array('mandatory' => \true), 'data-exit-mode' => array('value' => array('load', 'loop', 'replay')), 'data-mediaid' => array('mandatory' => \true, 'value_regex' => '[^=\\/?:]+'), 'data-mode' => array('value' => array('api', 'static')), 'data-streamtype' => array('value' => array('album', 'audio', 'audioalbum', 'collection', 'live', 'playlist', 'playlist-marked', 'radio', 'set', 'video')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-nexxtv-player')))), 'amp-o2-player' => array(array('attr_spec_list' => array('data-bcid' => array('mandatory' => \true), 'data-pid' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-o2-player')))), 'amp-onetap-google' => array(array('attr_spec_list' => array('data-src' => array('mandatory' => \true, 'value_url' => array('protocol' => array('https'))), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-onetap-google'), 'unique' => \true))), 'amp-ooyala-player' => array(array('attr_spec_list' => array('data-embedcode' => array('mandatory' => \true), 'data-pcode' => array('mandatory' => \true), 'data-playerid' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 7, 4)), 'requires_extension' => array('amp-ooyala-player')))), 'amp-orientation-observer' => array(array('attr_spec_list' => array('alpha-range' => array('value_regex' => '(\\d+)\\s{1}(\\d+)'), 'beta-range' => array('value_regex' => '(\\d+)\\s{1}(\\d+)'), 'gamma-range' => array('value_regex' => '(\\d+)\\s{1}(\\d+)'), 'media' => array(), 'noloading' => array('value' => array('')), 'smoothing' => array('value_regex' => '[0-9]+|')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-orientation-observer')))), 'amp-pan-zoom' => array(array('attr_spec_list' => array('disable-double-tap' => array('value' => array('')), 'initial-scale' => array('value_regex' => '[0-9]+(\\.[0-9]+)?'), 'initial-x' => array('value_regex' => '[0-9]+'), 'initial-y' => array('value_regex' => '[0-9]+'), 'max-scale' => array('value_regex' => '[0-9]+(\\.[0-9]+)?'), 'media' => array(), 'noloading' => array('value' => array('')), 'reset-on-resize' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 4)), 'requires_extension' => array('amp-pan-zoom')))), 'amp-pinterest' => array(array('attr_spec_list' => array('alt' => array(), 'data-do' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-pinterest'), 'spec_url' => 'https://amp.dev/documentation/components/amp-pinterest/'))), 'amp-pixel' => array(array('attr_spec_list' => array('allow-ssr-img' => array(), 'attributionsrc' => array('value_url' => array('allow_empty' => \true, 'protocol' => array('https'))), 'media' => array(), 'noloading' => array('value' => array('')), 'referrerpolicy' => array('value' => array('no-referrer')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_empty' => \true, 'allow_relative' => \true, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('defines_default_height' => \true, 'defines_default_width' => \true, 'supported_layouts' => array(2, 1)), 'spec_url' => 'https://amp.dev/documentation/components/amp-pixel/'))), 'amp-playbuzz' => array(array('attr_spec_list' => array('data-comments' => array('value_casei' => array('false', 'true')), 'data-item' => array(), 'data-item-info' => array('value_casei' => array('false', 'true')), 'data-share-buttons' => array('value_casei' => array('false', 'true')), 'media' => array(), 'noloading' => array('value' => array('')), 'src' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(4, 3)), 'mandatory_oneof' => array('data-item', 'src'), 'requires_extension' => array('amp-playbuzz')))), 'amp-position-observer' => array(array('attr_spec_list' => array('intersection-ratios' => array('value_regex' => '^([0]*?\\.\\d*$|1$|0$)|([0]*?\\.\\d*|1|0)\\s{1}([0]*?\\.\\d*$|1$|0$)'), 'media' => array(), 'noloading' => array('value' => array('')), 'once' => array('value' => array('')), 'target' => array(), 'viewport-margins' => array('value_regex' => '^(\\d+$|\\d+px$|\\d+vh$)|((\\d+|\\d+px|\\d+vh)\\s{1}(\\d+$|\\d+px$|\\d+vh$))')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-position-observer')))), 'amp-powr-player' => array(array('attr_spec_list' => array('autoplay' => array(), 'data-account' => array('mandatory' => \true, 'value_regex' => '[0-9a-zA-Z-]+'), 'data-amp-bind-data-referrer' => array(), 'data-player' => array('mandatory' => \true, 'value_regex' => '[0-9a-zA-Z-]+'), 'data-terms' => array(), 'data-video' => array('value_regex' => '[0-9a-zA-Z-]+'), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_oneof' => array('data-terms', 'data-video'), 'requires_extension' => array('amp-powr-player'), 'spec_url' => 'https://amp.dev/documentation/components/amp-powr-player/'))), 'amp-reach-player' => array(array('attr_spec_list' => array('data-embed-id' => array('mandatory' => \true, 'value_regex' => '[0-9a-z-]+'), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-reach-player')))), 'amp-recaptcha-input' => array(array('attr_spec_list' => array('data-action' => array('mandatory' => \true), 'data-sitekey' => array('mandatory' => \true), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'mandatory_ancestor' => 'form', 'requires_extension' => array('amp-form', 'amp-recaptcha-input')))), 'amp-reddit' => array(array('attr_spec_list' => array('data-embedlive' => array('value_casei' => array('false', 'true')), 'data-embedparent' => array('value_casei' => array('false', 'true')), 'data-embedtype' => array('mandatory' => \true, 'value_casei' => array('comment', 'post')), 'data-src' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-reddit')))), 'amp-render' => array(array('attr_spec_list' => array('binding' => array('value' => array('always', 'never', 'no', 'refresh')), 'credentials' => array(), 'data-amp-bind-src' => array(), 'key' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('protocol' => array('amp-script', 'amp-state', 'https'))), 'template' => array(), 'xssi-prefix' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 6, 2, 3, 7, 1, 4)), 'mandatory_anyof' => array('data-amp-bind-src', 'src'), 'requires_extension' => array('amp-render'), 'spec_url' => 'https://amp.dev/documentation/components/amp-render/'))), 'amp-riddle-quiz' => array(array('attr_spec_list' => array('data-riddle-id' => array('mandatory' => \true, 'value_regex' => '[0-9]+'), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(4)), 'requires_extension' => array('amp-riddle-quiz'), 'spec_url' => 'https://amp.dev/documentation/components/amp-riddle-quiz/'))), 'amp-script' => array(array('attr_spec_list' => array('max-age' => array('value_regex' => '[0-9]+'), 'media' => array(), 'nodom' => array('value' => array('')), 'noloading' => array('value' => array('')), 'sandbox' => array(), 'sandboxed' => array('value' => array('')), 'script' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 6, 2, 3, 7, 9, 1, 4)), 'disallowed_ancestor' => array('amp-script'), 'mandatory_oneof' => array('script', 'src'), 'requires_extension' => array('amp-script')))), 'amp-selector' => array(array('attr_spec_list' => array('data-amp-bind-disabled' => array(), 'data-amp-bind-selected' => array(), 'disabled' => array('value' => array('')), 'form' => array(), 'keyboard-select-mode' => array('value_casei' => array('focus', 'none', 'select')), 'media' => array(), 'multiple' => array('value' => array('')), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 1, 4, 5)), 'disallowed_ancestor' => array('amp-selector'), 'reference_points' => array('AMP-SELECTOR child' => array('mandatory' => \false, 'unique' => \false), 'AMP-SELECTOR option' => array('mandatory' => \false, 'unique' => \false)), 'requires_extension' => array('amp-selector')))), 'amp-sidebar' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'side' => array('value' => array('left', 'right'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'disallowed_ancestor' => array('amp-story'), 'requires_extension' => array('amp-sidebar'), 'spec_name' => 'amp-sidebar', 'spec_url' => 'https://amp.dev/documentation/components/amp-sidebar/')), array('attr_spec_list' => array(), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'mandatory_parent' => 'amp-story', 'requires_extension' => array('amp-sidebar'), 'spec_name' => 'amp-story >> amp-sidebar', 'spec_url' => 'https://amp.dev/documentation/components/amp-sidebar/'))), 'amp-skimlinks' => array(array('attr_spec_list' => array('custom-redirect-domain' => array(), 'custom-tracking-id' => array('value_regex_casei' => '^.{0,50}$'), 'excluded-domains' => array(), 'link-selector' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'publisher-code' => array('mandatory' => \true, 'value_regex_casei' => '^[0-9]+X[0-9]+$'), 'tracking' => array('value' => array('false', 'true'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-skimlinks')))), 'amp-slikeplayer' => array(array('attr_spec_list' => array('data-apikey' => array('mandatory' => \true), 'data-videoid' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 6, 2, 3, 4)), 'requires_extension' => array('amp-slikeplayer'), 'spec_url' => 'https://developers.slike.in/html5/'))), 'amp-smartlinks' => array(array('attr_spec_list' => array('exclusive-links' => array('value' => array('')), 'link-attribute' => array(), 'link-selector' => array(), 'linkmate' => array('value' => array('')), 'media' => array(), 'noloading' => array('value' => array('')), 'nrtv-account-name' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-smartlinks')))), 'amp-social-share' => array(array('attr_spec_list' => array('data-share-endpoint' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('ftp', 'http', 'https', 'mailto', 'bbmi', 'fb-me', 'fb-messenger', 'intent', 'line', 'skype', 'sms', 'snapchat', 'tel', 'tg', 'threema', 'viber', 'wh', 'whatsapp'))), 'media' => array(), 'noloading' => array('value' => array('')), 'type' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-social-share')))), 'amp-soundcloud' => array(array('attr_spec_list' => array('data-color' => array('value_regex_casei' => '([0-9a-f]{3}){1,2}'), 'data-playlistid' => array('value_regex' => '[0-9]+'), 'data-secret-token' => array('value_regex' => '[A-Za-z0-9_-]+'), 'data-trackid' => array('value_regex' => '[0-9]+'), 'data-visual' => array('value_casei' => array('false', 'true')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'mandatory_oneof' => array('data-playlistid', 'data-trackid'), 'requires_extension' => array('amp-soundcloud')))), 'amp-springboard-player' => array(array('attr_spec_list' => array('data-content-id' => array('mandatory' => \true), 'data-domain' => array('mandatory' => \true), 'data-items' => array('mandatory' => \true), 'data-mode' => array('mandatory' => \true, 'value_casei' => array('playlist', 'video')), 'data-player-id' => array('mandatory' => \true, 'value_regex_casei' => '[a-z0-9]+'), 'data-site-id' => array('mandatory' => \true, 'value_regex' => '[0-9]+'), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 7, 4)), 'requires_extension' => array('amp-springboard-player')))), 'amp-state' => array(array('attr_spec_list' => array('credentials' => array(), 'data-amp-bind-src' => array(), 'id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true), 'overridable' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https')))), 'tag_spec' => array('child_tags' => array('first_child_tag_name_oneof' => array('script')), 'requires_extension' => array('amp-bind'), 'spec_name' => 'amp-state', 'spec_url' => 'https://amp.dev/documentation/components/amp-bind/'))), 'amp-sticky-ad' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'child_tags' => array('first_child_tag_name_oneof' => array('amp-ad'), 'mandatory_num_child_tags' => 1), 'disallowed_ancestor' => array('amp-app-banner'), 'requires_extension' => array('amp-sticky-ad'), 'unique' => \true))), 'amp-story' => array(array('attr_spec_list' => array('background-audio' => array('value_url' => array('protocol' => array('http', 'https'))), 'desktop-aspect-ratio' => array('value_regex' => '\\d+:\\d+'), 'entity' => array(), 'entity-logo-src' => array('value_url' => array('protocol' => array('http', 'https'))), 'entity-url' => array('value_url' => array('protocol' => array('http', 'https'))), 'live-story' => array('value' => array('')), 'live-story-disabled' => array('value' => array('')), 'poster-landscape-src' => array('value_url' => array('protocol' => array('http', 'https'))), 'poster-portrait-src' => array('mandatory' => \true, 'value_url' => array('protocol' => array('http', 'https'))), 'poster-square-src' => array('value_url' => array('protocol' => array('http', 'https'))), 'publisher' => array('mandatory' => \true), 'publisher-logo-src' => array('mandatory' => \true, 'value_url' => array('protocol' => array('http', 'https'))), 'standalone' => array('mandatory' => \true, 'value' => array('')), 'supports-landscape' => array('value' => array('')), 'title' => array('mandatory' => \true)), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('amp-analytics', 'amp-consent', 'amp-geo', 'amp-pixel', 'amp-sidebar', 'amp-story-auto-ads', 'amp-story-auto-analytics', 'amp-story-bookend', 'amp-story-page', 'amp-story-social-share', 'amp-story-subscriptions'), 'mandatory_min_num_child_tags' => 1), 'mandatory_parent' => 'body', 'requires_extension' => array('amp-story'), 'siblings_disallowed' => \true))), 'amp-story-360' => array(array('attr_spec_list' => array('controls' => array('value' => array('gyroscope')), 'duration' => array('value_regex' => '([0-9\\.]+)\\s*(s|ms)'), 'heading-end' => array('value_regex' => '-?\\d+\\.?\\d*'), 'heading-start' => array('value_regex' => '-?\\d+\\.?\\d*'), 'pitch-end' => array('value_regex' => '-?\\d+\\.?\\d*'), 'pitch-start' => array('value_regex' => '-?\\d+\\.?\\d*'), 'scene-heading' => array('value_regex' => '-?\\d+\\.?\\d*'), 'scene-pitch' => array('value_regex' => '-?\\d+\\.?\\d*'), 'scene-roll' => array('value_regex' => '-?\\d+\\.?\\d*'), 'zoom-end' => array('value_regex' => '\\d+\\.?\\d*'), 'zoom-start' => array('value_regex' => '\\d+\\.?\\d*')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1)), 'child_tags' => array('child_tag_name_oneof' => array('amp-img', 'amp-video'), 'mandatory_num_child_tags' => 1), 'mandatory_ancestor' => 'amp-story', 'requires_extension' => array('amp-story-360'), 'spec_url' => 'https://amp.dev/documentation/components/amp-story-360'))), 'amp-story-animation' => array(array('attr_spec_list' => array('animate-in-after' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'trigger' => array('mandatory' => \true, 'value' => array('visibility'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'child_tags' => array('child_tag_name_oneof' => array('script'), 'mandatory_num_child_tags' => 1), 'mandatory_parent' => 'amp-story-page', 'requires_extension' => array('amp-story')))), 'amp-story-audio-sticker' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'size' => array('value' => array('small', 'large')), 'sticker' => array('value' => array('headphone-cat', 'tape-player', 'loud-speaker', 'audio-cloud')), 'sticker-style' => array('value' => array('outline', 'dropshadow'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'mandatory_parent' => 'amp-story-grid-layer', 'requires_extension' => array('amp-story-audio-sticker')))), 'amp-story-audio-sticker-posttap' => array(array('attr_spec_list' => array(), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'descendant_tag_list' => 'amp-story-audio-sticker-allowed-descendants', 'mandatory_parent' => 'amp-story-audio-sticker', 'requires_extension' => array('amp-story-audio-sticker')))), 'amp-story-audio-sticker-pretap' => array(array('attr_spec_list' => array(), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'descendant_tag_list' => 'amp-story-audio-sticker-allowed-descendants', 'mandatory_parent' => 'amp-story-audio-sticker', 'requires_extension' => array('amp-story-audio-sticker')))), 'amp-story-auto-ads' => array(array('attr_spec_list' => array('src' => array('value_url' => array('protocol' => array('https')))), 'tag_spec' => array('mandatory_parent' => 'amp-story', 'requires_extension' => array('amp-story-auto-ads'), 'spec_url' => 'https://amp.dev/documentation/components/amp-story-auto-ads/', 'unique' => \true))), 'amp-story-auto-analytics' => array(array('attr_spec_list' => array('gtag-id' => array('mandatory' => \true, 'value_regex' => '[A-Z]{1,2}-[A-Z0-9-]+')), 'tag_spec' => array('requires_extension' => array('amp-story-auto-analytics')))), 'amp-story-bookend' => array(array('attr_spec_list' => array('layout' => array('mandatory' => \true, 'value' => array('nodisplay')), 'src' => array('value_url' => array('protocol' => array('http', 'https')))), 'tag_spec' => array('descendant_tag_list' => 'amp-story-bookend-allowed-descendants', 'mandatory_ancestor' => 'amp-story'))), 'amp-story-captions' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'style-preset' => array('value' => array('default', 'appear'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 6, 2, 3, 7, 8, 9, 4)), 'child_tags' => array('mandatory_num_child_tags' => 0), 'mandatory_ancestor' => 'amp-story', 'requires_extension' => array('amp-story-captions'), 'spec_url' => 'https://amp.dev/documentation/components/amp-story-captions'))), 'amp-story-consent' => array(array('attr_spec_list' => array('id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'child_tags' => array('child_tag_name_oneof' => array('script'), 'mandatory_num_child_tags' => 1), 'mandatory_parent' => 'amp-consent', 'requires_extension' => array('amp-consent', 'amp-story')))), 'amp-story-cta-layer' => array(array('attr_spec_list' => array(), 'tag_spec' => array('descendant_tag_list' => 'amp-story-cta-layer-allowed-descendants', 'mandatory_ancestor' => 'amp-story-page', 'reference_points' => array('AMP-STORY-CTA-LAYER animate-in' => array('mandatory' => \false, 'unique' => \false))))), 'amp-story-grid-layer' => array(array('attr_spec_list' => array('anchor' => array('value_regex' => 'top|bottom|left|right|(top|bottom)[ -](left|right)|(left|right)[ -](top|bottom)'), 'aspect-ratio' => array('value_regex' => '\\d+:\\d+'), 'position' => array('value' => array('landscape-half-left', 'landscape-half-right')), 'preset' => array('value' => array('2021-background', '2021-foreground')), 'template' => array('mandatory' => \true, 'value' => array('fill', 'horizontal', 'thirds', 'vertical'))), 'tag_spec' => array('descendant_tag_list' => 'amp-story-grid-layer-allowed-descendants', 'mandatory_ancestor' => 'amp-story-page', 'reference_points' => array('AMP-STORY-GRID-LAYER animate-in' => array('mandatory' => \false, 'unique' => \false), 'AMP-STORY-GRID-LAYER default' => array('mandatory' => \false, 'unique' => \false))))), 'amp-story-interactive-binary-poll' => array(array('attr_spec_list' => array('chip-style' => array('value' => array('shadow', 'flat', 'transparent')), 'endpoint' => array('mandatory' => \true, 'value_url' => array('allow_empty' => \false, 'allow_relative' => \false, 'protocol' => array('https'))), 'id' => array('mandatory' => \true), 'option-1-confetti' => array(), 'option-1-text' => array('mandatory' => \true), 'option-2-confetti' => array(), 'option-2-text' => array('mandatory' => \true), 'prompt-size' => array('value' => array('small', 'medium', 'large')), 'prompt-text' => array(), 'theme' => array('value' => array('light', 'dark'))), 'tag_spec' => array('mandatory_ancestor' => 'amp-story-grid-layer', 'requires_extension' => array('amp-story-interactive')))), 'amp-story-interactive-img-poll' => array(array('attr_spec_list' => array('chip-style' => array('value' => array('shadow', 'flat', 'transparent')), 'endpoint' => array('mandatory' => \true, 'value_url' => array('allow_empty' => \false, 'allow_relative' => \false, 'protocol' => array('https'))), 'id' => array('mandatory' => \true), 'option-1-confetti' => array(), 'option-1-image' => array('mandatory' => \true, 'value_url' => array('protocol' => array('http', 'https'))), 'option-1-image-alt' => array('mandatory' => \true), 'option-1-results-category' => array(), 'option-2-confetti' => array(), 'option-2-image' => array('mandatory' => \true, 'value_url' => array('protocol' => array('http', 'https'))), 'option-2-image-alt' => array('mandatory' => \true), 'option-2-results-category' => array(), 'option-3-confetti' => array(), 'option-3-image' => array('value_url' => array('protocol' => array('http', 'https'))), 'option-3-image-alt' => array(), 'option-3-results-category' => array(), 'option-4-confetti' => array(), 'option-4-image' => array('value_url' => array('protocol' => array('http', 'https'))), 'option-4-image-alt' => array(), 'option-4-results-category' => array(), 'prompt-size' => array('value' => array('small', 'medium', 'large')), 'prompt-text' => array(), 'theme' => array('value' => array('light', 'dark'))), 'tag_spec' => array('mandatory_ancestor' => 'amp-story-grid-layer', 'requires_extension' => array('amp-story-interactive')))), 'amp-story-interactive-img-quiz' => array(array('attr_spec_list' => array('chip-style' => array('value' => array('shadow', 'flat', 'transparent')), 'endpoint' => array('mandatory' => \true, 'value_url' => array('allow_empty' => \false, 'allow_relative' => \false, 'protocol' => array('https'))), 'id' => array('mandatory' => \true), 'option-1-confetti' => array(), 'option-1-correct' => array(), 'option-1-image' => array('mandatory' => \true, 'value_url' => array('protocol' => array('http', 'https'))), 'option-1-image-alt' => array('mandatory' => \true), 'option-2-confetti' => array(), 'option-2-correct' => array(), 'option-2-image' => array('mandatory' => \true, 'value_url' => array('protocol' => array('http', 'https'))), 'option-2-image-alt' => array('mandatory' => \true), 'option-3-confetti' => array(), 'option-3-correct' => array(), 'option-3-image' => array('value_url' => array('protocol' => array('http', 'https'))), 'option-3-image-alt' => array(), 'option-4-confetti' => array(), 'option-4-correct' => array(), 'option-4-image' => array('value_url' => array('protocol' => array('http', 'https'))), 'option-4-image-alt' => array(), 'prompt-size' => array('value' => array('small', 'medium', 'large')), 'prompt-text' => array(), 'theme' => array('value' => array('light', 'dark'))), 'tag_spec' => array('mandatory_ancestor' => 'amp-story-grid-layer', 'mandatory_oneof' => array('option-1-correct', 'option-2-correct', 'option-3-correct', 'option-4-correct'), 'requires_extension' => array('amp-story-interactive')))), 'amp-story-interactive-poll' => array(array('attr_spec_list' => array('chip-style' => array('value' => array('shadow', 'flat', 'transparent')), 'endpoint' => array('mandatory' => \true, 'value_url' => array('allow_empty' => \false, 'allow_relative' => \false, 'protocol' => array('https'))), 'id' => array('mandatory' => \true), 'option-1-confetti' => array(), 'option-1-results-category' => array(), 'option-1-text' => array('mandatory' => \true), 'option-2-confetti' => array(), 'option-2-results-category' => array(), 'option-2-text' => array('mandatory' => \true), 'option-3-confetti' => array(), 'option-3-results-category' => array(), 'option-3-text' => array(), 'option-4-confetti' => array(), 'option-4-results-category' => array(), 'option-4-text' => array(), 'prompt-size' => array('value' => array('small', 'medium', 'large')), 'prompt-text' => array(), 'theme' => array('value' => array('light', 'dark'))), 'tag_spec' => array('mandatory_ancestor' => 'amp-story-grid-layer', 'requires_extension' => array('amp-story-interactive')))), 'amp-story-interactive-quiz' => array(array('attr_spec_list' => array('chip-style' => array('value' => array('shadow', 'flat', 'transparent')), 'endpoint' => array('mandatory' => \true, 'value_url' => array('allow_empty' => \false, 'allow_relative' => \false, 'protocol' => array('https'))), 'id' => array('mandatory' => \true), 'option-1-confetti' => array(), 'option-1-correct' => array(), 'option-1-text' => array('mandatory' => \true), 'option-2-confetti' => array(), 'option-2-correct' => array(), 'option-2-text' => array('mandatory' => \true), 'option-3-confetti' => array(), 'option-3-correct' => array(), 'option-3-text' => array(), 'option-4-confetti' => array(), 'option-4-correct' => array(), 'option-4-text' => array(), 'prompt-size' => array('value' => array('small', 'medium', 'large')), 'prompt-text' => array(), 'theme' => array('value' => array('light', 'dark'))), 'tag_spec' => array('mandatory_ancestor' => 'amp-story-grid-layer', 'mandatory_oneof' => array('option-1-correct', 'option-2-correct', 'option-3-correct', 'option-4-correct'), 'requires_extension' => array('amp-story-interactive')))), 'amp-story-interactive-results' => array(array('attr_spec_list' => array('chip-style' => array('value' => array('flat', 'transparent')), 'option-1-image' => array(), 'option-1-results-category' => array('mandatory' => \true), 'option-1-results-threshold' => array('value_regex' => '\\d+(\\.\\d+)?'), 'option-1-text' => array(), 'option-2-image' => array(), 'option-2-results-category' => array('mandatory' => \true), 'option-2-results-threshold' => array('value_regex' => '\\d+(\\.\\d+)?'), 'option-2-text' => array(), 'option-3-image' => array(), 'option-3-results-category' => array(), 'option-3-results-threshold' => array('value_regex' => '\\d+(\\.\\d+)?'), 'option-3-text' => array(), 'option-4-image' => array(), 'option-4-results-category' => array(), 'option-4-results-threshold' => array('value_regex' => '\\d+(\\.\\d+)?'), 'option-4-text' => array(), 'prompt-text' => array(), 'theme' => array('value' => array('light', 'dark'))), 'tag_spec' => array('mandatory_ancestor' => 'amp-story-grid-layer', 'requires_extension' => array('amp-story-interactive')))), 'amp-story-interactive-slider' => array(array('attr_spec_list' => array('chip-style' => array('value' => array('shadow', 'flat', 'transparent')), 'endpoint' => array('mandatory' => \true, 'value_url' => array('allow_empty' => \false, 'allow_relative' => \false, 'protocol' => array('https'))), 'id' => array('mandatory' => \true), 'option-1-text' => array('mandatory' => \false), 'prompt-size' => array('value' => array('small', 'medium', 'large')), 'prompt-text' => array(), 'theme' => array('value' => array('light', 'dark'))), 'tag_spec' => array('mandatory_ancestor' => 'amp-story-grid-layer', 'requires_extension' => array('amp-story-interactive')))), 'amp-story-page' => array(array('attr_spec_list' => array('auto-advance-after' => array(), 'background-audio' => array('value_url' => array('protocol' => array('http', 'https'))), 'id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true), 'next-page-no-ad' => array()), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('amp-analytics', 'amp-pixel', 'amp-story-animation', 'amp-story-auto-analytics', 'amp-story-cta-layer', 'amp-story-grid-layer', 'amp-story-page-attachment', 'amp-story-page-outlink', 'amp-story-shopping-attachment'), 'mandatory_min_num_child_tags' => 1), 'mandatory_parent' => 'amp-story', 'requires_extension' => array('amp-story')))), 'amp-story-page-attachment' => array(array('attr_spec_list' => array('cta-text' => array(), 'href' => array('mandatory' => \true, 'value_url' => array('protocol' => array('http', 'https'))), 'layout' => array('mandatory' => \true, 'value' => array('nodisplay')), 'theme' => array('value' => array('dark', 'light')), 'title' => array()), 'tag_spec' => array('child_tags' => array('mandatory_num_child_tags' => 0), 'mandatory_ancestor' => 'amp-story-page', 'spec_name' => 'amp-story-page-attachment[href]')), array('attr_spec_list' => array('cta-image' => array('value_url' => array('protocol' => array('http', 'https'))), 'cta-image-2' => array('value_url' => array('protocol' => array('http', 'https'))), 'cta-text' => array(), 'layout' => array('mandatory' => \true, 'value' => array('nodisplay')), 'theme' => array('value' => array('dark', 'light')), 'title' => array()), 'tag_spec' => array('descendant_tag_list' => 'amp-story-page-attachment-allowed-descendants', 'mandatory_ancestor' => 'amp-story-page', 'spec_name' => 'amp-story-page-attachment'))), 'amp-story-page-outlink' => array(array('attr_spec_list' => array('cta-accent-color' => array(), 'cta-accent-element' => array('value' => array('background', 'text')), 'cta-image' => array('value_url' => array('protocol' => array('http', 'https'))), 'layout' => array('mandatory' => \true, 'value' => array('nodisplay')), 'theme' => array('value' => array('custom', 'dark', 'light'))), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('a'), 'mandatory_num_child_tags' => 1), 'mandatory_ancestor' => 'amp-story-page', 'spec_name' => 'amp-story-page-outlink'))), 'amp-story-panning-media' => array(array('attr_spec_list' => array('data-x' => array('value_regex' => '-?(0|[0-9]?\\d\\.?\\d*%|100%)'), 'data-y' => array('value_regex' => '-?(0|[0-9]?\\d\\.?\\d*%|100%)'), 'data-zoom' => array('value_regex' => '\\d+\\.?\\d*'), 'lock-bounds' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6)), 'child_tags' => array('child_tag_name_oneof' => array('amp-img'), 'mandatory_num_child_tags' => 1), 'mandatory_ancestor' => 'amp-story-grid-layer', 'requires_extension' => array('amp-story-panning-media'), 'spec_url' => 'https://amp.dev/documentation/components/amp-story-panning-media'))), 'amp-story-player' => array(array('attr_spec_list' => array(), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4, 9)), 'descendant_tag_list' => 'amp-story-player-allowed-descendants', 'requires_extension' => array('amp-story-player'), 'spec_url' => 'https://amp.dev/documentation/components/amp-story-player/'))), 'amp-story-shopping-attachment' => array(array('attr_spec_list' => array('cta-text' => array(), 'src' => array('value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'theme' => array('value' => array('dark', 'light'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'child_tags' => array('child_tag_name_oneof' => array('script'), 'mandatory_min_num_child_tags' => 1), 'requires_extension' => array('amp-story-shopping'), 'spec_url' => 'https://amp.dev/documentation/components/amp-story-shopping/'))), 'amp-story-shopping-tag' => array(array('attr_spec_list' => array('data-product-id' => array('mandatory' => \true)), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'mandatory_ancestor' => 'amp-story-grid-layer', 'requires_extension' => array('amp-story-shopping'), 'spec_url' => 'https://amp.dev/documentation/components/amp-story-shopping/'))), 'amp-story-social-share' => array(array('attr_spec_list' => array('layout' => array('mandatory' => \true, 'value' => array('nodisplay')), 'src' => array('value_url' => array('protocol' => array('http', 'https')))), 'tag_spec' => array('descendant_tag_list' => 'amp-story-social-share-allowed-descendants', 'mandatory_ancestor' => 'amp-story'))), 'amp-story-subscriptions' => array(array('attr_spec_list' => array('additional-description' => array(), 'description' => array('mandatory' => \true), 'headline' => array(), 'media' => array(), 'noloading' => array('value' => array('')), 'price' => array('mandatory' => \true), 'subscriptions-page-index' => array()), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5)), 'requires_extension' => array('amp-story-subscriptions')))), 'amp-stream-gallery' => array(array('attr_spec_list' => array('controls' => array('value_regex' => '([^,]+\\s+(always|auto|never),\\s*)*(always|auto|never)'), 'data-amp-bind-controls' => array(), 'data-amp-bind-extra-space' => array(), 'data-amp-bind-loop' => array(), 'data-amp-bind-max-item-width' => array(), 'data-amp-bind-max-visible-count' => array(), 'data-amp-bind-min-item-width' => array(), 'data-amp-bind-min-visible-count' => array(), 'data-amp-bind-outset-arrows' => array(), 'data-amp-bind-peek' => array(), 'data-amp-bind-slide-align' => array(), 'data-amp-bind-snap' => array(), 'extra-space' => array('value' => array('between')), 'loop' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false|^$)'), 'max-item-width' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'max-visible-count' => array('value_regex' => '([^,]+\\s+(\\d+(\\.\\d+)?),\\s*)*(\\d+(\\.\\d+)?)'), 'media' => array(), 'min-item-width' => array('value_regex' => '([^,]+\\s+(\\d+),\\s*)*(\\d+)'), 'min-visible-count' => array('value_regex' => '([^,]+\\s+(\\d+(\\.\\d+)?),\\s*)*(\\d+(\\.\\d+)?)'), 'noloading' => array('value' => array('')), 'outset-arrows' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)'), 'peek' => array('value_regex' => '([^,]+\\s+(\\d+(\\.\\d+)?),\\s*)*(\\d+(\\.\\d+)?)'), 'slide-align' => array('value_regex' => '([^,]+\\s+(start|center),\\s*)*(start|center)'), 'snap' => array('value_regex' => '([^,]+\\s+(true|false),\\s*)*(true|false)')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-stream-gallery'), 'spec_url' => 'https://github.com/ampproject/amphtml/blob/master/extensions/amp-stream-gallery/amp-stream-gallery.md'))), 'amp-tiktok' => array(array('attr_spec_list' => array('data-src' => array('mandatory' => \true, 'value_regex' => '(https:\\/\\/www\\.tiktok\\.com\\/.*)?\\d+.*'), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-tiktok'), 'spec_name' => 'AMP-TIKTOK', 'spec_url' => 'https://amp.dev/documentation/components/amp-tiktok')), array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'child_tags' => array('child_tag_name_oneof' => array('blockquote'), 'mandatory_min_num_child_tags' => 1), 'requires_extension' => array('amp-tiktok'), 'spec_name' => 'AMP-TIKTOK blockquote', 'spec_url' => 'https://amp.dev/documentation/components/amp-tiktok'))), 'amp-timeago' => array(array('attr_spec_list' => array('cutoff' => array('value_regex' => '\\d+'), 'data-amp-bind-datetime' => array(), 'data-amp-bind-title' => array(), 'datetime' => array('mandatory' => \true, 'value_regex' => '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?(Z|[+-][0-1][0-9]:[0-5][0-9])'), 'locale' => array(), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(2, 3, 4)), 'requires_extension' => array('amp-timeago'), 'spec_url' => 'https://amp.dev/documentation/components/amp-timeago/'))), 'amp-truncate-text' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'overflow-style' => array('value' => array('right', 'default'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(5, 6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-truncate-text'), 'spec_url' => 'https://amp.dev/documentation/components/amp-truncate-text/'))), 'amp-twitter' => array(array('attr_spec_list' => array('data-amp-bind-data-tweetid' => array(), 'data-cards' => array(), 'data-conversation' => array(), 'data-limit' => array(), 'data-momentid' => array('value_regex' => '\\d+'), 'data-timeline-id' => array('value_regex' => '\\d+'), 'data-timeline-owner-screen-name' => array(), 'data-timeline-screen-name' => array(), 'data-timeline-slug' => array(), 'data-timeline-source-type' => array(), 'data-timeline-url' => array('value_url' => array('allow_relative' => \false, 'protocol' => array('http', 'https'))), 'data-timeline-user-id' => array('value_regex' => '\\d+'), 'data-tweetid' => array(), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'mandatory_oneof' => array('data-momentid', 'data-timeline-source-type', 'data-tweetid'), 'requires_extension' => array('amp-twitter')))), 'amp-user-notification' => array(array('attr_spec_list' => array('data-dismiss-href' => array('value_url' => array('allow_empty' => \false, 'allow_relative' => \false, 'protocol' => array('https'))), 'data-show-if-href' => array('value_url' => array('allow_empty' => \false, 'allow_relative' => \false, 'protocol' => array('https'))), 'enctype' => array('value' => array('application/x-www-form-urlencoded')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-user-notification')))), 'amp-video' => array(array('attr_spec_list' => array('album' => array(), 'alt' => array(), 'artist' => array(), 'artwork' => array(), 'attribution' => array(), 'autoplay' => array('value' => array('')), 'controls' => array('value' => array('')), 'controlslist' => array(), 'crossorigin' => array(), 'data-amp-bind-album' => array(), 'data-amp-bind-alt' => array(), 'data-amp-bind-artist' => array(), 'data-amp-bind-artwork' => array(), 'data-amp-bind-attribution' => array(), 'data-amp-bind-controls' => array(), 'data-amp-bind-controlslist' => array(), 'data-amp-bind-loop' => array(), 'data-amp-bind-poster' => array(), 'data-amp-bind-preload' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-title' => array(), 'disableremoteplayback' => array('value' => array('')), 'dock' => array('requires_extension' => array('amp-video-docking')), 'lightbox' => array(), 'lightbox-thumbnail-id' => array('value_regex_casei' => '^[a-z][a-z\\d_-]*'), 'loop' => array('value' => array('')), 'media' => array(), 'muted' => array('value' => array('')), 'noaudio' => array('value' => array('')), 'noloading' => array('value' => array('')), 'object-fit' => array(), 'object-position' => array(), 'placeholder' => array(), 'poster' => array(), 'preload' => array('value' => array('auto', 'metadata', 'none', '')), 'rotate-to-fullscreen' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'disallowed_ancestor' => array('amp-story'), 'requires_extension' => array('amp-video'), 'spec_url' => 'https://amp.dev/documentation/components/amp-video/')), array('attr_spec_list' => array('album' => array(), 'alt' => array(), 'artist' => array(), 'artwork' => array(), 'attribution' => array(), 'autoplay' => array('value' => array('')), 'controls' => array('value' => array('')), 'controlslist' => array(), 'crossorigin' => array(), 'data-amp-bind-album' => array(), 'data-amp-bind-alt' => array(), 'data-amp-bind-artist' => array(), 'data-amp-bind-artwork' => array(), 'data-amp-bind-attribution' => array(), 'data-amp-bind-controls' => array(), 'data-amp-bind-controlslist' => array(), 'data-amp-bind-loop' => array(), 'data-amp-bind-poster' => array(), 'data-amp-bind-preload' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-title' => array(), 'disableremoteplayback' => array('value' => array('')), 'dock' => array('requires_extension' => array('amp-video-docking')), 'lightbox' => array(), 'lightbox-thumbnail-id' => array('value_regex_casei' => '^[a-z][a-z\\d_-]*'), 'loop' => array('value' => array('')), 'media' => array(), 'muted' => array('value' => array('')), 'noaudio' => array('value' => array('')), 'noloading' => array('value' => array('')), 'object-fit' => array(), 'object-position' => array(), 'placeholder' => array(), 'poster' => array(), 'preload' => array('value' => array('auto', 'metadata', 'none', '')), 'rotate-to-fullscreen' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'mandatory_ancestor' => 'amp-story-page-attachment', 'requires_extension' => array('amp-video'), 'spec_name' => 'amp-story >> amp-story-page-attachment >> amp-video', 'spec_url' => 'https://amp.dev/documentation/components/amp-video/')), array('attr_spec_list' => array('album' => array(), 'alt' => array(), 'artist' => array(), 'artwork' => array(), 'attribution' => array(), 'autoplay' => array('mandatory' => \true, 'value' => array('')), 'cache' => array('value' => array('google')), 'captions-id' => array('requires_extension' => array('amp-story-captions')), 'controls' => array('value' => array('')), 'controlslist' => array(), 'crossorigin' => array(), 'data-amp-bind-album' => array(), 'data-amp-bind-alt' => array(), 'data-amp-bind-artist' => array(), 'data-amp-bind-artwork' => array(), 'data-amp-bind-attribution' => array(), 'data-amp-bind-controls' => array(), 'data-amp-bind-controlslist' => array(), 'data-amp-bind-loop' => array(), 'data-amp-bind-poster' => array(), 'data-amp-bind-preload' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-title' => array(), 'disableremoteplayback' => array('value' => array('')), 'dock' => array('requires_extension' => array('amp-video-docking')), 'loop' => array('value' => array('')), 'media' => array(), 'muted' => array('value' => array('')), 'noaudio' => array('value' => array('')), 'noloading' => array('value' => array('')), 'object-fit' => array(), 'object-position' => array(), 'placeholder' => array(), 'poster' => array('mandatory' => \true), 'preload' => array('value' => array('auto', 'metadata', 'none', '')), 'rotate-to-fullscreen' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'volume' => array('value_regex' => '^(0(\\.0*)?|(0?\\.[0-9]+)?|1(\\.0*)?)$')), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_ancestor' => 'amp-story', 'requires_extension' => array('amp-video'), 'spec_name' => 'amp-story >> amp-video', 'spec_url' => 'https://amp.dev/documentation/components/amp-video/'))), 'amp-video-iframe' => array(array('attr_spec_list' => array('album' => array(), 'alt' => array(), 'artist' => array(), 'artwork' => array(), 'attribution' => array(), 'autoplay' => array('value' => array('')), 'data-amp-bind-src' => array(), 'dock' => array('requires_extension' => array('amp-video-docking')), 'implements-media-session' => array('value' => array('')), 'implements-rotate-to-fullscreen' => array('value' => array('')), 'lightbox' => array(), 'lightbox-thumbnail-id' => array('value_regex_casei' => '^[a-z][a-z\\d_-]*'), 'media' => array(), 'noloading' => array('value' => array('')), 'poster' => array(), 'referrerpolicy' => array(), 'rotate-to-fullscreen' => array('value' => array('')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-video-iframe'), 'spec_url' => 'https://amp.dev/documentation/components/amp-video-iframe/'))), 'amp-vimeo' => array(array('attr_spec_list' => array('autoplay' => array('value' => array('')), 'data-videoid' => array('mandatory' => \true, 'value_regex' => '[0-9]+'), 'do-not-track' => array('value' => array('')), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-vimeo')))), 'amp-vine' => array(array('attr_spec_list' => array('data-vineid' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-vine')))), 'amp-viqeo-player' => array(array('attr_spec_list' => array('autoplay' => array(), 'data-profileid' => array('mandatory' => \true, 'value_regex' => '[0-9a-f]*'), 'data-videoid' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-viqeo-player')))), 'amp-vk' => array(array('attr_spec_list' => array('data-embedtype' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(2, 7, 4)), 'requires_extension' => array('amp-vk')))), 'amp-web-push' => array(array('attr_spec_list' => array('helper-iframe-url' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'id' => array('mandatory' => \true, 'value' => array('amp-web-push')), 'media' => array(), 'noloading' => array('value' => array('')), 'permission-dialog-url' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'service-worker-scope' => array('value_url' => array('protocol' => array('https'))), 'service-worker-url' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https')))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(1)), 'requires_extension' => array('amp-web-push'), 'spec_url' => 'https://amp.dev/documentation/components/amp-web-push/'))), 'amp-web-push-widget' => array(array('attr_spec_list' => array('media' => array(), 'noloading' => array('value' => array('')), 'visibility' => array('mandatory' => \true, 'value' => array('blocked', 'subscribed', 'unsubscribed'))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(2)), 'requires_extension' => array('amp-web-push'), 'spec_url' => 'https://amp.dev/documentation/components/amp-web-push/'))), 'amp-wistia-player' => array(array('attr_spec_list' => array('data-media-hashed-id' => array('mandatory' => \true, 'value_regex' => '[0-9a-zA-Z]+'), 'media' => array(), 'noloading' => array('value' => array('')), 'rotate-to-fullscreen' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 4)), 'requires_extension' => array('amp-wistia-player')))), 'amp-wordpress-embed' => array(array('attr_spec_list' => array('data-url' => array('mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 9, 1, 4)), 'requires_extension' => array('amp-wordpress-embed'), 'spec_url' => 'https://amp.dev/documentation/components/amp-wordpress-embed/'))), 'amp-yotpo' => array(array('attr_spec_list' => array('data-app-key' => array('mandatory' => \true), 'data-widget-type' => array('mandatory' => \true), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'requires_extension' => array('amp-yotpo'), 'spec_url' => 'https://amp.dev/documentation/components/amp-yotpo/'))), 'amp-youtube' => array(array('attr_spec_list' => array('autoplay' => array(), 'credentials' => array('value_casei' => array('include', 'omit')), 'data-amp-bind-data-videoid' => array(), 'data-live-channelid' => array('value_regex' => '[^=\\/?:]+'), 'data-videoid' => array('value_regex' => '[^=\\/?:]+'), 'dock' => array('requires_extension' => array('amp-video-docking')), 'lightbox' => array(), 'lightbox-thumbnail-id' => array('value_regex_casei' => '^[a-z][a-z\\d_-]*'), 'loop' => array(), 'media' => array(), 'noloading' => array('value' => array(''))), 'tag_spec' => array('amp_layout' => array('supported_layouts' => array(6, 2, 3, 7, 1, 4)), 'mandatory_oneof' => array('data-live-channelid', 'data-videoid'), 'requires_extension' => array('amp-youtube')))), 'article' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'aside' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'audio' => array(array('attr_spec_list' => array('autoplay' => array(), 'controls' => array(), 'loop' => array(), 'muted' => array(), 'preload' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('data', 'https')))), 'tag_spec' => array('mandatory_ancestor' => 'noscript', 'mandatory_ancestor_suggested_alternative' => 'amp-audio', 'spec_url' => 'https://amp.dev/documentation/components/amp-audio/')), array('attr_spec_list' => array('controls' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-audio', 'spec_name' => 'amp-audio > audio', 'spec_url' => 'https://amp.dev/documentation/components/amp-audio/'))), 'b' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'base' => array(array('attr_spec_list' => array('href' => array('value' => array('/')), 'target' => array('value_casei' => array('_blank', '_self', '_top'))), 'tag_spec' => array('mandatory_parent' => 'head', 'unique' => \true))), 'bdi' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'bdo' => array(array('attr_spec_list' => array('dir' => array()), 'tag_spec' => array())), 'big' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'blockquote' => array(array('attr_spec_list' => array('align' => array(), 'cite' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_empty' => \true, 'protocol' => array('http', 'https')))), 'tag_spec' => array()), array('attr_spec_list' => array('align' => array(), 'cite' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_empty' => \true, 'protocol' => array('http', 'https')))), 'tag_spec' => array('mandatory_ancestor' => 'amp-tiktok blockquote', 'spec_name' => 'BLOCKQUOTE with TikTok'))), 'body' => array(array('attr_spec_list' => array(), 'tag_spec' => array('mandatory' => \true, 'mandatory_parent' => 'html', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => \true))), 'br' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'button' => array(array('attr_spec_list' => array('data-amp-bind-disabled' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'disabled' => array('value' => array('')), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'role' => array(), 'tabindex' => array(), 'type' => array(), 'value' => array()), 'tag_spec' => array()), array('attr_spec_list' => array('name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'open-button' => array('value' => array('')), 'role' => array(), 'tabindex' => array(), 'type' => array(), 'value' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-app-banner', 'spec_name' => 'amp-app-banner button[open-button]')), array('attr_spec_list' => array('disabled' => array('value' => array('')), 'load-more-clickable' => array('dispatch_key' => 1, 'mandatory' => \true, 'value' => array('')), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'role' => array(), 'tabindex' => array(), 'type' => array(), 'value' => array()), 'tag_spec' => array('mandatory_parent' => 'amp-list-load-more', 'requires_extension' => array('amp-list'), 'spec_name' => 'amp-list-load-more button[load-more-clickable]')), array('attr_spec_list' => array('amp-nested-submenu-close' => array(), 'amp-nested-submenu-open' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-nested-menu', 'spec_name' => 'button amp-nested-menu'))), 'canvas' => array(array('attr_spec_list' => array('height' => array(), 'width' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-script', 'requires_extension' => array('amp-script'), 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags'))), 'caption' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'center' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'circle' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'cx' => array(), 'cy' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'r' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'cite' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'clippath' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'clippathunits' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'code' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'col' => array(array('attr_spec_list' => array('span' => array()), 'tag_spec' => array())), 'colgroup' => array(array('attr_spec_list' => array('span' => array()), 'tag_spec' => array())), 'data' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'datalist' => array(array('attr_spec_list' => array(), 'tag_spec' => array('spec_url' => 'https://amp.dev/documentation/components/amp-form/'))), 'dd' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'defs' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'del' => array(array('attr_spec_list' => array('cite' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_empty' => \true, 'protocol' => array('http', 'https'))), 'datetime' => array()), 'tag_spec' => array())), 'desc' => array(array('attr_spec_list' => array('style' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'details' => array(array('attr_spec_list' => array('data-amp-bind-open' => array(), 'open' => array('value' => array(''))), 'tag_spec' => array())), 'dfn' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'dir' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'div' => array(array('attr_spec_list' => array('align' => array()), 'tag_spec' => array()), array('attr_spec_list' => array('align' => array(), 'verify-error' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'form', 'spec_name' => 'FORM DIV [verify-error]')), array('attr_spec_list' => array('align' => array(), 'template' => array('mandatory' => \true), 'verify-error' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'form', 'spec_name' => 'FORM DIV [verify-error][template]')), array('attr_spec_list' => array('align' => array(), 'submitting' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'form', 'spec_name' => 'FORM DIV [submitting]')), array('attr_spec_list' => array('align' => array(), 'submitting' => array('mandatory' => \true), 'template' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'form', 'spec_name' => 'FORM DIV [submitting][template]')), array('attr_spec_list' => array('align' => array(), 'submit-success' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'form', 'spec_name' => 'FORM DIV [submit-success]')), array('attr_spec_list' => array('align' => array(), 'submit-success' => array('mandatory' => \true), 'template' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'form', 'spec_name' => 'FORM DIV [submit-success][template]')), array('attr_spec_list' => array('align' => array(), 'submit-error' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'form', 'spec_name' => 'FORM DIV [submit-error]')), array('attr_spec_list' => array('align' => array(), 'submit-error' => array('mandatory' => \true), 'template' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'form', 'spec_name' => 'FORM DIV [submit-error][template]')), array('attr_spec_list' => array('first' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'amp-image-slider', 'spec_name' => 'AMP-IMAGE-SLIDER > DIV [first]', 'spec_url' => 'https://amp.dev/documentation/components/amp-image-slider/')), array('attr_spec_list' => array('second' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'amp-image-slider', 'spec_name' => 'AMP-IMAGE-SLIDER > DIV [second]', 'spec_url' => 'https://amp.dev/documentation/components/amp-image-slider/')), array('attr_spec_list' => array('align' => array(), 'fetch-error' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'amp-list', 'spec_name' => 'AMP-LIST DIV [fetch-error]')), array('attr_spec_list' => array('amp-nested-submenu' => array('dispatch_key' => 2), 'amp-nested-submenu-close' => array('dispatch_key' => 2), 'amp-nested-submenu-open' => array('dispatch_key' => 2)), 'tag_spec' => array('disallowed_ancestor' => array('amp-accordion'), 'mandatory_ancestor' => 'amp-nested-menu', 'mandatory_oneof' => array('amp-nested-submenu', 'amp-nested-submenu-close', 'amp-nested-submenu-open'), 'spec_name' => 'div amp-nested-menu'))), 'dl' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'dt' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'ellipse' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'cx' => array(), 'cy' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'rx' => array(), 'ry' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'em' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'feblend' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'in2' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'mode' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fecolormatrix' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'type' => array(), 'unicode-bidi' => array(), 'values' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fecomponenttransfer' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fecomposite' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'in2' => array(), 'k1' => array(), 'k2' => array(), 'k3' => array(), 'k4' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'operator' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'feconvolvematrix' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'bias' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'divisor' => array(), 'dominant-baseline' => array(), 'edgemode' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'kernelmatrix' => array(), 'kernelunitlength' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'order' => array(), 'overflow' => array(), 'pointer-events' => array(), 'preservealpha' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'targetx' => array(), 'targety' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fediffuselighting' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'diffuseconstant' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'kernelunitlength' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'surfacescale' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fedisplacementmap' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'in2' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'scale' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xchannelselector' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array(), 'ychannelselector' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fedistantlight' => array(array('attr_spec_list' => array('azimuth' => array(), 'elevation' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fedropshadow' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'dx' => array(), 'dy' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stddeviation' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'mandatory_parent' => 'filter', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'feflood' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fefunca' => array(array('attr_spec_list' => array('amplitude' => array(), 'exponent' => array(), 'intercept' => array(), 'offset' => array(), 'slope' => array(), 'table' => array(), 'tablevalues' => array(), 'type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'mandatory_parent' => 'fecomponenttransfer', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fefuncb' => array(array('attr_spec_list' => array('amplitude' => array(), 'exponent' => array(), 'intercept' => array(), 'offset' => array(), 'slope' => array(), 'table' => array(), 'tablevalues' => array(), 'type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'mandatory_parent' => 'fecomponenttransfer', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fefuncg' => array(array('attr_spec_list' => array('amplitude' => array(), 'exponent' => array(), 'intercept' => array(), 'offset' => array(), 'slope' => array(), 'table' => array(), 'tablevalues' => array(), 'type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'mandatory_parent' => 'fecomponenttransfer', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fefuncr' => array(array('attr_spec_list' => array('amplitude' => array(), 'exponent' => array(), 'intercept' => array(), 'offset' => array(), 'slope' => array(), 'table' => array(), 'tablevalues' => array(), 'type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'mandatory_parent' => 'fecomponenttransfer', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fegaussianblur' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'edgemode' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stddeviation' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'femerge' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'femergenode' => array(array('attr_spec_list' => array('in' => array(), 'style' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'femorphology' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'operator' => array(), 'overflow' => array(), 'pointer-events' => array(), 'radius' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'feoffset' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'dx' => array(), 'dy' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fepointlight' => array(array('attr_spec_list' => array('x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array(), 'z' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fespecularlighting' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'kernelunitlength' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'specularconstant' => array(), 'specularexponent' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'surfacescale' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fespotlight' => array(array('attr_spec_list' => array('limitingconeangle' => array(), 'pointsatx' => array(), 'pointsaty' => array(), 'pointsatz' => array(), 'specularexponent' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array(), 'z' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fetile' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'in' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'feturbulence' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'basefrequency' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'numoctaves' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'result' => array(), 'seed' => array(), 'shape-rendering' => array(), 'stitchtiles' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'type' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'fieldset' => array(array('attr_spec_list' => array('data-amp-bind-disabled' => array(), 'disabled' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)')), 'tag_spec' => array())), 'figcaption' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'figure' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'filter' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'filterres' => array(), 'filterunits' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'primitiveunits' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'value_url' => array('allow_empty' => \false, 'protocol' => array('http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'footer' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'form' => array(array('attr_spec_list' => array('accept' => array(), 'accept-charset' => array(), 'action' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('https'))), 'action-xhr' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('protocol' => array('https'))), 'autocomplete' => array(), 'custom-validation-reporting' => array('value' => array('as-you-go', 'interact-and-submit', 'show-all-on-submit', 'show-first-on-submit')), 'enctype' => array(), 'method' => array('value_casei' => array('get')), 'name' => array('disallowed_value_regex' => '(^|\\s)(ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_POSITION_CONTAINED_BY|DOCUMENT_POSITION_CONTAINS|DOCUMENT_POSITION_DISCONNECTED|DOCUMENT_POSITION_FOLLOWING|DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC|DOCUMENT_POSITION_PRECEDING|DOCUMENT_TYPE_NODE|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|URL|URLUnencoded|__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|activeElement|addEventListener|adoptNode|alinkColor|all|anchors|append|appendChild|applets|baseURI|bgColor|body|captureEvents|caretPositionFromPoint|caretRangeFromPoint|characterSet|charset|childElementCount|childNodes|children|clear|cloneNode|close|compareDocumentPosition|compatMode|constructor|contains|contentType|cookie|createAttribute|createAttributeNS|createCDATASection|createComment|createDocumentFragment|createElement|createElementNS|createEvent|createExpression|createNSResolver|createNodeIterator|createProcessingInstruction|createRange|createTextNode|createTreeWalker|currentScript|defaultView|designMode|dir|dispatchEvent|doctype|documentElement|documentURI|domain|elementFromPoint|elementsFromPoint|embeds|enableStyleSheetsForSet|evaluate|execCommand|execCommandShowHelp|exitFullscreen|exitPictureInPicture|exitPointerLock|fgColor|firstChild|firstElementChild|focus|fonts|forms|fullscreen|fullscreenElement|fullscreenEnabled|getCSSCanvasContext|getElementById|getElementsByClassName|getElementsByName|getElementsByTagName|getElementsByTagNameNS|getOverrideStyle|getRootNode|getSelection|hasChildNodes|hasFocus|hasOwnProperty|hasStorageAccess|head|hidden|images|implementation|importNode|inputEncoding|insertBefore|isConnected|isDefaultNamespace|isEqualNode|isPrototypeOf|isSameNode|l10n|lastChild|lastElementChild|lastModified|lastStyleSheetSet|linkColor|links|location|lookupNamespaceURI|lookupPrefix|mozCancelFullScreen|mozFullScreen|mozFullScreenElement|mozFullScreenEnabled|mozSetImageElement|msCSSOMElementFloatMetrics|msCapsLockWarningOff|msElementsFromPoint|msElementsFromRect|nextSibling|nodeName|nodeType|nodeValue|normalize|onabort|onactivate|onafterscriptexecute|onanimationcancel|onanimationend|onanimationiteration|onanimationstart|onauxclick|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeinput|onbeforepaste|onbeforescriptexecute|onblur|oncancel|oncanplay|oncanplaythrough|onchange|onclick|onclose|oncontextmenu|oncopy|oncuechange|oncut|ondblclick|ondeactivate|ondrag|ondragend|ondragenter|ondragexit|ondragleave|ondragover|ondragstart|ondrop|ondurationchange|onemptied|onended|onerror|onfocus|onfreeze|onfullscreenchange|onfullscreenerror|ongotpointercapture|oninput|oninvalid|onkeydown|onkeypress|onkeyup|onload|onloadeddata|onloadedmetadata|onloadend|onloadstart|onlostpointercapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmouseout|onmouseover|onmouseup|onmousewheel|onmozfullscreenchange|onmozfullscreenerror|onmscontentzoom|onmsgesturechange|onmsgesturedoubletap|onmsgestureend|onmsgesturehold|onmsgesturestart|onmsgesturetap|onmsinertiastart|onmsmanipulationstatechanged|onmssitemodejumplistitemremoved|onmsthumbnailclick|onpaste|onpause|onplay|onplaying|onpointercancel|onpointerdown|onpointerenter|onpointerleave|onpointerlockchange|onpointerlockerror|onpointermove|onpointerout|onpointerover|onpointerup|onprogress|onratechange|onreadystatechange|onrejectionhandled|onreset|onresize|onresume|onscroll|onsearch|onseeked|onseeking|onselect|onselectionchange|onselectstart|onshow|onstalled|onstop|onsubmit|onsuspend|ontimeupdate|ontoggle|ontransitioncancel|ontransitionend|ontransitionrun|ontransitionstart|onunhandledrejection|onvisibilitychange|onvolumechange|onwaiting|onwebkitanimationend|onwebkitanimationiteration|onwebkitanimationstart|onwebkitfullscreenchange|onwebkitfullscreenerror|onwebkitmouseforcechanged|onwebkitmouseforcedown|onwebkitmouseforceup|onwebkitmouseforcewillbegin|onwebkittransitionend|onwheel|open|origin|ownerDocument|parentElement|parentNode|pictureInPictureElement|pictureInPictureEnabled|plugins|pointerLockElement|preferredStyleSheetSet|prepend|previousSibling|propertyIsEnumerable|queryCommandEnabled|queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandText|queryCommandValue|querySelector|querySelectorAll|readyState|referrer|registerElement|releaseCapture|releaseEvents|removeChild|removeEventListener|replaceChild|requestStorageAccess|rootElement|scripts|scrollingElement|selectedStyleSheetSet|styleSheetSets|styleSheets|textContent|title|toLocaleString|toSource|toString|updateSettings|valueOf|visibilityState|vlinkColor|wasDiscarded|webkitCancelFullScreen|webkitCurrentFullScreenElement|webkitExitFullscreen|webkitFullScreenKeyboardInputAllowed|webkitFullscreenElement|webkitFullscreenEnabled|webkitHidden|webkitIsFullScreen|webkitVisibilityState|write|writeln|xmlEncoding|xmlStandalone|xmlVersion)(\\s|$)'), 'novalidate' => array(), 'target' => array('mandatory' => \true, 'value_casei' => array('_blank', '_top')), 'verify-xhr' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('protocol' => array('https'))), 'xssi-prefix' => array()), 'tag_spec' => array('disallowed_ancestor' => array('amp-app-banner'), 'requires_extension' => array('amp-form'), 'spec_name' => 'FORM [method=GET]')), array('attr_spec_list' => array('accept' => array(), 'accept-charset' => array(), 'action-xhr' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('https'))), 'autocomplete' => array(), 'custom-validation-reporting' => array('value' => array('as-you-go', 'interact-and-submit', 'show-all-on-submit', 'show-first-on-submit')), 'enctype' => array(), 'method' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('post')), 'name' => array('disallowed_value_regex' => '(^|\\s)(ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_POSITION_CONTAINED_BY|DOCUMENT_POSITION_CONTAINS|DOCUMENT_POSITION_DISCONNECTED|DOCUMENT_POSITION_FOLLOWING|DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC|DOCUMENT_POSITION_PRECEDING|DOCUMENT_TYPE_NODE|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|URL|URLUnencoded|__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|activeElement|addEventListener|adoptNode|alinkColor|all|anchors|append|appendChild|applets|baseURI|bgColor|body|captureEvents|caretPositionFromPoint|caretRangeFromPoint|characterSet|charset|childElementCount|childNodes|children|clear|cloneNode|close|compareDocumentPosition|compatMode|constructor|contains|contentType|cookie|createAttribute|createAttributeNS|createCDATASection|createComment|createDocumentFragment|createElement|createElementNS|createEvent|createExpression|createNSResolver|createNodeIterator|createProcessingInstruction|createRange|createTextNode|createTreeWalker|currentScript|defaultView|designMode|dir|dispatchEvent|doctype|documentElement|documentURI|domain|elementFromPoint|elementsFromPoint|embeds|enableStyleSheetsForSet|evaluate|execCommand|execCommandShowHelp|exitFullscreen|exitPictureInPicture|exitPointerLock|fgColor|firstChild|firstElementChild|focus|fonts|forms|fullscreen|fullscreenElement|fullscreenEnabled|getCSSCanvasContext|getElementById|getElementsByClassName|getElementsByName|getElementsByTagName|getElementsByTagNameNS|getOverrideStyle|getRootNode|getSelection|hasChildNodes|hasFocus|hasOwnProperty|hasStorageAccess|head|hidden|images|implementation|importNode|inputEncoding|insertBefore|isConnected|isDefaultNamespace|isEqualNode|isPrototypeOf|isSameNode|l10n|lastChild|lastElementChild|lastModified|lastStyleSheetSet|linkColor|links|location|lookupNamespaceURI|lookupPrefix|mozCancelFullScreen|mozFullScreen|mozFullScreenElement|mozFullScreenEnabled|mozSetImageElement|msCSSOMElementFloatMetrics|msCapsLockWarningOff|msElementsFromPoint|msElementsFromRect|nextSibling|nodeName|nodeType|nodeValue|normalize|onabort|onactivate|onafterscriptexecute|onanimationcancel|onanimationend|onanimationiteration|onanimationstart|onauxclick|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeinput|onbeforepaste|onbeforescriptexecute|onblur|oncancel|oncanplay|oncanplaythrough|onchange|onclick|onclose|oncontextmenu|oncopy|oncuechange|oncut|ondblclick|ondeactivate|ondrag|ondragend|ondragenter|ondragexit|ondragleave|ondragover|ondragstart|ondrop|ondurationchange|onemptied|onended|onerror|onfocus|onfreeze|onfullscreenchange|onfullscreenerror|ongotpointercapture|oninput|oninvalid|onkeydown|onkeypress|onkeyup|onload|onloadeddata|onloadedmetadata|onloadend|onloadstart|onlostpointercapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmouseout|onmouseover|onmouseup|onmousewheel|onmozfullscreenchange|onmozfullscreenerror|onmscontentzoom|onmsgesturechange|onmsgesturedoubletap|onmsgestureend|onmsgesturehold|onmsgesturestart|onmsgesturetap|onmsinertiastart|onmsmanipulationstatechanged|onmssitemodejumplistitemremoved|onmsthumbnailclick|onpaste|onpause|onplay|onplaying|onpointercancel|onpointerdown|onpointerenter|onpointerleave|onpointerlockchange|onpointerlockerror|onpointermove|onpointerout|onpointerover|onpointerup|onprogress|onratechange|onreadystatechange|onrejectionhandled|onreset|onresize|onresume|onscroll|onsearch|onseeked|onseeking|onselect|onselectionchange|onselectstart|onshow|onstalled|onstop|onsubmit|onsuspend|ontimeupdate|ontoggle|ontransitioncancel|ontransitionend|ontransitionrun|ontransitionstart|onunhandledrejection|onvisibilitychange|onvolumechange|onwaiting|onwebkitanimationend|onwebkitanimationiteration|onwebkitanimationstart|onwebkitfullscreenchange|onwebkitfullscreenerror|onwebkitmouseforcechanged|onwebkitmouseforcedown|onwebkitmouseforceup|onwebkitmouseforcewillbegin|onwebkittransitionend|onwheel|open|origin|ownerDocument|parentElement|parentNode|pictureInPictureElement|pictureInPictureEnabled|plugins|pointerLockElement|preferredStyleSheetSet|prepend|previousSibling|propertyIsEnumerable|queryCommandEnabled|queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandText|queryCommandValue|querySelector|querySelectorAll|readyState|referrer|registerElement|releaseCapture|releaseEvents|removeChild|removeEventListener|replaceChild|requestStorageAccess|rootElement|scripts|scrollingElement|selectedStyleSheetSet|styleSheetSets|styleSheets|textContent|title|toLocaleString|toSource|toString|updateSettings|valueOf|visibilityState|vlinkColor|wasDiscarded|webkitCancelFullScreen|webkitCurrentFullScreenElement|webkitExitFullscreen|webkitFullScreenKeyboardInputAllowed|webkitFullscreenElement|webkitFullscreenEnabled|webkitHidden|webkitIsFullScreen|webkitVisibilityState|write|writeln|xmlEncoding|xmlStandalone|xmlVersion)(\\s|$)'), 'novalidate' => array(), 'target' => array('value_casei' => array('_blank', '_top')), 'verify-xhr' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('protocol' => array('https'))), 'xssi-prefix' => array()), 'tag_spec' => array('disallowed_ancestor' => array('amp-app-banner'), 'requires_extension' => array('amp-form'), 'spec_name' => 'FORM [method=POST]'))), 'g' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'glyph' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'arabic-form' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'd' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-name' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'horiz-adv-x' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'orientation' => array(), 'overflow' => array(), 'pointer-events' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'vert-adv-y' => array(), 'vert-origin-x' => array(), 'vert-origin-y' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'glyphref' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'dx' => array(), 'dy' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'format' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'glyphref' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'value_url' => array('allow_empty' => \false, 'protocol' => array('http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'h1' => array(array('attr_spec_list' => array('align' => array()), 'tag_spec' => array())), 'h2' => array(array('attr_spec_list' => array('align' => array()), 'tag_spec' => array()), array('attr_spec_list' => array('amp-nested-submenu-close' => array(), 'amp-nested-submenu-open' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-nested-menu', 'spec_name' => 'h2 amp-nested-menu'))), 'h3' => array(array('attr_spec_list' => array('align' => array()), 'tag_spec' => array()), array('attr_spec_list' => array('amp-nested-submenu-close' => array(), 'amp-nested-submenu-open' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-nested-menu', 'spec_name' => 'h3 amp-nested-menu'))), 'h4' => array(array('attr_spec_list' => array('align' => array()), 'tag_spec' => array()), array('attr_spec_list' => array('amp-nested-submenu-close' => array(), 'amp-nested-submenu-open' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-nested-menu', 'spec_name' => 'h4 amp-nested-menu'))), 'h5' => array(array('attr_spec_list' => array('align' => array()), 'tag_spec' => array()), array('attr_spec_list' => array('amp-nested-submenu-close' => array(), 'amp-nested-submenu-open' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-nested-menu', 'spec_name' => 'h5 amp-nested-menu'))), 'h6' => array(array('attr_spec_list' => array('align' => array()), 'tag_spec' => array()), array('attr_spec_list' => array('amp-nested-submenu-close' => array(), 'amp-nested-submenu-open' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-nested-menu', 'spec_name' => 'h6 amp-nested-menu'))), 'head' => array(array('attr_spec_list' => array(), 'tag_spec' => array('mandatory' => \true, 'mandatory_parent' => 'html', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => \true))), 'header' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'hgroup' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'hkern' => array(array('attr_spec_list' => array('g1' => array(), 'g2' => array(), 'k' => array(), 'style' => array(), 'u1' => array(), 'u2' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'hr' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'html' => array(array('attr_spec_list' => array(), 'tag_spec' => array('mandatory' => \true, 'mandatory_parent' => '!doctype', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => \true))), 'i' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'iframe' => array(array('attr_spec_list' => array('frameborder' => array('value' => array('0', '1')), 'height' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'referrerpolicy' => array(), 'resizable' => array('value' => array('')), 'sandbox' => array(), 'scrolling' => array('value' => array('auto', 'yes', 'no')), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('data', 'https'))), 'srcdoc' => array(), 'width' => array()), 'tag_spec' => array('mandatory_ancestor' => 'noscript', 'mandatory_ancestor_suggested_alternative' => 'amp-iframe', 'mandatory_oneof' => array('src', 'srcdoc'), 'spec_url' => 'https://amp.dev/documentation/components/amp-iframe/'))), 'image' => array(array('attr_spec_list' => array('align' => array('value_casei' => array('top', 'middle', 'bottom', 'left', 'right')), 'alt' => array(), 'border' => array(), 'crossorigin' => array('value_casei' => array('anonymous', 'use-credentials')), 'decoding' => array('value_casei' => array('async')), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'height' => array(), 'hspace' => array(), 'importance' => array('value_casei' => array('high', 'low', 'auto')), 'ismap' => array(), 'loading' => array('value_casei' => array('lazy')), 'name' => array(), 'referrerpolicy' => array('value_casei' => array('no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url')), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'usemap' => array(), 'vspace' => array(), 'width' => array()), 'tag_spec' => array('disallowed_ancestor' => array('amp-img', 'amp-story'), 'spec_name' => 'Standard Image')), array('attr_spec_list' => array('align' => array('value_casei' => array('top', 'middle', 'bottom', 'left', 'right')), 'alt' => array(), 'border' => array(), 'crossorigin' => array('value_casei' => array('anonymous', 'use-credentials')), 'data-hero' => array('dispatch_key' => 1, 'mandatory' => \true), 'decoding' => array('value_casei' => array('async')), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'height' => array(), 'hspace' => array(), 'importance' => array('value_casei' => array('high', 'low', 'auto')), 'ismap' => array(), 'loading' => array('value_casei' => array('lazy')), 'name' => array(), 'referrerpolicy' => array('value_casei' => array('no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url')), 'sizes' => array(), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'usemap' => array(), 'vspace' => array(), 'width' => array()), 'tag_spec' => array('disallowed_ancestor' => array('amp-img', 'amp-story'), 'spec_name' => 'Hero Image')), array('attr_spec_list' => array('align' => array('value_casei' => array('top', 'middle', 'bottom', 'left', 'right')), 'alt' => array(), 'border' => array(), 'crossorigin' => array('value_casei' => array('anonymous', 'use-credentials')), 'decoding' => array('value_casei' => array('async')), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'height' => array(), 'hspace' => array(), 'importance' => array('value_casei' => array('high', 'low', 'auto')), 'ismap' => array(), 'loading' => array('value_casei' => array('lazy')), 'name' => array(), 'referrerpolicy' => array('value_casei' => array('no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url')), 'sizes' => array(), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'usemap' => array(), 'vspace' => array(), 'width' => array()), 'tag_spec' => array('disallowed_ancestor' => array('amp-img', 'amp-story'), 'spec_name' => 'Image using srcset')), array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'preserveaspectratio' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'disallowed_value_regex' => '(^|\\s)data:image\\/svg\\+xml', 'value_url' => array('allow_empty' => \false, 'protocol' => array('data', 'http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'img' => array(array('attr_spec_list' => array('align' => array('value_casei' => array('top', 'middle', 'bottom', 'left', 'right')), 'alt' => array(), 'border' => array(), 'crossorigin' => array('value_casei' => array('anonymous', 'use-credentials')), 'decoding' => array('value_casei' => array('async')), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'height' => array(), 'hspace' => array(), 'importance' => array('value_casei' => array('high', 'low', 'auto')), 'ismap' => array(), 'loading' => array('value_casei' => array('lazy')), 'name' => array(), 'referrerpolicy' => array('value_casei' => array('no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url')), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'usemap' => array(), 'vspace' => array(), 'width' => array()), 'tag_spec' => array('disallowed_ancestor' => array('amp-img', 'amp-story'), 'spec_name' => 'Standard Img')), array('attr_spec_list' => array('align' => array('value_casei' => array('top', 'middle', 'bottom', 'left', 'right')), 'alt' => array(), 'border' => array(), 'crossorigin' => array('value_casei' => array('anonymous', 'use-credentials')), 'data-hero' => array('dispatch_key' => 1, 'mandatory' => \true), 'decoding' => array('value_casei' => array('async')), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'height' => array(), 'hspace' => array(), 'importance' => array('value_casei' => array('high', 'low', 'auto')), 'ismap' => array(), 'loading' => array('value_casei' => array('lazy')), 'name' => array(), 'referrerpolicy' => array('value_casei' => array('no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url')), 'sizes' => array(), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'usemap' => array(), 'vspace' => array(), 'width' => array()), 'tag_spec' => array('disallowed_ancestor' => array('amp-img', 'amp-story'), 'spec_name' => 'Hero Img')), array('attr_spec_list' => array('align' => array('value_casei' => array('top', 'middle', 'bottom', 'left', 'right')), 'alt' => array(), 'border' => array(), 'crossorigin' => array('value_casei' => array('anonymous', 'use-credentials')), 'decoding' => array('value_casei' => array('async')), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'height' => array(), 'hspace' => array(), 'importance' => array('value_casei' => array('high', 'low', 'auto')), 'ismap' => array(), 'loading' => array('value_casei' => array('lazy')), 'name' => array(), 'referrerpolicy' => array('value_casei' => array('no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url')), 'sizes' => array(), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'usemap' => array(), 'vspace' => array(), 'width' => array()), 'tag_spec' => array('disallowed_ancestor' => array('amp-img', 'amp-story'), 'spec_name' => 'Img using srcset')), array('attr_spec_list' => array('align' => array('value_casei' => array('top', 'middle', 'bottom', 'left', 'right')), 'alt' => array(), 'attribution' => array(), 'border' => array(), 'crossorigin' => array('value_casei' => array('anonymous', 'use-credentials')), 'decoding' => array('value_casei' => array('async', 'auto', 'sync')), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'height' => array(), 'hspace' => array(), 'importance' => array('value_casei' => array('high', 'low', 'auto')), 'intrinsicsize' => array(), 'ismap' => array(), 'loading' => array('value_casei' => array('lazy')), 'name' => array(), 'referrerpolicy' => array('value_casei' => array('no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url')), 'sizes' => array(), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'usemap' => array(), 'vspace' => array(), 'width' => array()), 'tag_spec' => array('mandatory_ancestor' => 'noscript', 'mandatory_ancestor_suggested_alternative' => 'amp-img', 'spec_name' => 'noscript > img', 'spec_url' => 'https://amp.dev/documentation/components/amp-img/')), array('attr_spec_list' => array('alt' => array(), 'attribution' => array(), 'data-amp-story-player-poster-img' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('')), 'decoding' => array('value' => array('async')), 'height' => array('value_regex' => '[0-9]+'), 'loading' => array('mandatory' => \true, 'value' => array('lazy')), 'sizes' => array(), 'src' => array('alternative_names' => array('srcset'), 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'width' => array('value_regex' => '[0-9]+')), 'tag_spec' => array('mandatory_ancestor' => 'amp-story-player', 'mandatory_parent' => 'a', 'spec_name' => 'amp-story-player > img', 'spec_url' => 'https://amp.dev/documentation/components/amp-story-player/'))), 'input' => array(array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'no-verify' => array('value' => array('')), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('disallowed_value_regex' => '(^|\\s)(file|image|password|)(\\s|$)'), 'value' => array(), 'width' => array()), 'tag_spec' => array('spec_url' => 'https://amp.dev/documentation/components/amp-form/')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'capture' => array('value' => array('')), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'no-verify' => array('value' => array('')), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('file')), 'value' => array(), 'width' => array()), 'tag_spec' => array('mandatory_ancestor' => 'form [method=post]', 'spec_name' => 'INPUT [type=file]', 'spec_url' => 'https://amp.dev/documentation/components/amp-form/')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('password')), 'value' => array(), 'width' => array()), 'tag_spec' => array('mandatory_ancestor' => 'form [method=post]', 'spec_name' => 'INPUT [type=password]', 'spec_url' => 'https://amp.dev/documentation/components/amp-form/')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('data', 'http', 'https'))), 'step' => array(), 'tabindex' => array(), 'type' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('image')), 'value' => array(), 'width' => array()), 'tag_spec' => array('mandatory_ancestor' => 'form [method=post]', 'spec_name' => 'INPUT [type=image]', 'spec_url' => 'https://amp.dev/documentation/components/amp-form/')), array('attr_spec_list' => array('type' => array('mandatory' => \true, 'value_casei' => array('search', 'text'))), 'tag_spec' => array('mandatory_parent' => 'amp-autocomplete', 'requires_extension' => array('amp-autocomplete', 'amp-form'), 'spec_name' => 'amp-autocomplete > input')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'mask' => array('disallowed_value_regex' => '(payment-card|date-dd-mm-yyyy|date-mm-dd-yyyy|date-mm-yy|date-yyyy-mm-dd)', 'dispatch_key' => 1, 'mandatory' => \true), 'mask-output' => array(), 'mask-trim-zeros' => array('value_regex' => '\\d+'), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('value' => array('text', 'tel', 'search')), 'value' => array(), 'width' => array()), 'tag_spec' => array('requires_extension' => array('amp-inputmask'), 'spec_name' => 'input [mask] (custom mask)', 'spec_url' => 'https://amp.dev/documentation/components/amp-inputmask/')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'mask' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('payment-card')), 'mask-output' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('value' => array('text', 'tel', 'search')), 'value' => array(), 'width' => array()), 'tag_spec' => array('requires_extension' => array('amp-inputmask'), 'spec_name' => 'input [mask=payment-card]', 'spec_url' => 'https://amp.dev/documentation/components/amp-inputmask/')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'mask' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('date-dd-mm-yyyy')), 'mask-output' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('value' => array('text', 'tel', 'search')), 'value' => array(), 'width' => array()), 'tag_spec' => array('requires_extension' => array('amp-inputmask'), 'spec_name' => 'input [mask=date-dd-mm-yyyy]', 'spec_url' => 'https://amp.dev/documentation/components/amp-inputmask/')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'mask' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('date-mm-dd-yyyy')), 'mask-output' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('value' => array('text', 'tel', 'search')), 'value' => array(), 'width' => array()), 'tag_spec' => array('requires_extension' => array('amp-inputmask'), 'spec_name' => 'input [mask=date-mm-dd-yyyy]', 'spec_url' => 'https://amp.dev/documentation/components/amp-inputmask/')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'mask' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('date-mm-yy')), 'mask-output' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('value' => array('text', 'tel', 'search')), 'value' => array(), 'width' => array()), 'tag_spec' => array('requires_extension' => array('amp-inputmask'), 'spec_name' => 'input [mask=date-mm-yy]', 'spec_url' => 'https://amp.dev/documentation/components/amp-inputmask/')), array('attr_spec_list' => array('accept' => array(), 'accesskey' => array(), 'autocomplete' => array(), 'autofocus' => array(), 'checked' => array(), 'data-amp-bind-accept' => array(), 'data-amp-bind-accesskey' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-checked' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-height' => array(), 'data-amp-bind-inputmode' => array(), 'data-amp-bind-max' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-min' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'mask' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('date-yyyy-mm-dd')), 'mask-output' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array('value' => array('text', 'tel', 'search')), 'value' => array(), 'width' => array()), 'tag_spec' => array('requires_extension' => array('amp-inputmask'), 'spec_name' => 'input [mask=date-yyyy-mm-dd]', 'spec_url' => 'https://amp.dev/documentation/components/amp-inputmask/'))), 'ins' => array(array('attr_spec_list' => array('cite' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_empty' => \true, 'protocol' => array('http', 'https'))), 'datetime' => array()), 'tag_spec' => array())), 'kbd' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'label' => array(array('attr_spec_list' => array('for' => array()), 'tag_spec' => array('spec_url' => 'https://amp.dev/documentation/components/amp-form/'))), 'legend' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'li' => array(array('attr_spec_list' => array('value' => array('value_regex' => '[0-9]*')), 'tag_spec' => array())), 'line' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x1' => array(), 'x2' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y1' => array(), 'y2' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'lineargradient' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'gradienttransform' => array(), 'gradientunits' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'shape-rendering' => array(), 'spreadmethod' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x1' => array(), 'x2' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'value_url' => array('allow_empty' => \false, 'protocol' => array('http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y1' => array(), 'y2' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'link' => array(array('attr_spec_list' => array('charset' => array('value_casei' => array('utf-8')), 'color' => array(), 'crossorigin' => array(), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'href' => array(), 'hreflang' => array(), 'media' => array(), 'rel' => array('disallowed_value_regex' => '(^|\\s)(canonical|components|import|manifest|modulepreload|preload|serviceworker|stylesheet|subresource)(\\s|$)', 'mandatory' => \true), 'sizes' => array(), 'target' => array(), 'type' => array()), 'tag_spec' => array('disallowed_ancestor' => array('template'), 'spec_name' => 'link rel=', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('charset' => array('value_casei' => array('utf-8')), 'color' => array(), 'crossorigin' => array(), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'href' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('http', 'https'))), 'hreflang' => array(), 'media' => array(), 'rel' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('canonical')), 'sizes' => array(), 'target' => array(), 'type' => array()), 'tag_spec' => array('mandatory' => \true, 'mandatory_parent' => 'head', 'spec_name' => 'link rel=canonical', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => \true)), array('attr_spec_list' => array('charset' => array('value_casei' => array('utf-8')), 'color' => array(), 'crossorigin' => array(), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'href' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('protocol' => array('https'))), 'hreflang' => array(), 'media' => array(), 'rel' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('manifest')), 'sizes' => array(), 'target' => array(), 'type' => array()), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'link rel=manifest', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('as' => array('mandatory' => \true, 'value' => array('script')), 'crossorigin' => array('mandatory' => \true, 'value' => array('anonymous')), 'href' => array('mandatory' => \true, 'value_regex' => '.*\\.mjs$'), 'rel' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('modulepreload'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'link rel=modulepreload', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('as' => array(), 'charset' => array('value_casei' => array('utf-8')), 'color' => array(), 'crossorigin' => array(), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'href' => array(), 'hreflang' => array(), 'imagesizes' => array(), 'imagesrcset' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('protocol' => array('http', 'https'))), 'media' => array(), 'rel' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('preload')), 'sizes' => array(), 'target' => array(), 'type' => array()), 'tag_spec' => array('disallowed_ancestor' => array('template'), 'spec_name' => 'link rel=preload', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('async' => array(), 'crossorigin' => array(), 'href' => array('mandatory' => \true, 'value_regex' => 'https:\\/\\/cdn\\.materialdesignicons\\.com\\/([0-9]+\\.?)+\\/css\\/materialdesignicons\\.min\\.css|https:\\/\\/cloud\\.typography\\.com\\/[0-9]*\\/[0-9]*\\/css\\/fonts\\.css|https:\\/\\/fast\\.fonts\\.net\\/.*|https:\\/\\/fonts\\.googleapis\\.com\\/css2?\\?.*|https:\\/\\/fonts\\.googleapis\\.com\\/icon\\?.*|https:\\/\\/fonts\\.googleapis\\.com\\/earlyaccess\\/.*\\.css|https:\\/\\/maxcdn\\.bootstrapcdn\\.com\\/font-awesome\\/([0-9]+\\.?)+\\/css\\/font-awesome\\.min\\.css(\\?.*)?|https:\\/\\/(use|pro|kit)\\.fontawesome\\.com\\/releases\\/v([0-9]+\\.?)+\\/css\\/[0-9a-zA-Z-]+\\.css|https:\\/\\/(use|pro|kit)\\.fontawesome\\.com\\/[0-9a-zA-Z-]+\\.css|https:\\/\\/use\\.typekit\\.net\\/[\\w\\p{L}\\p{N}_]+\\.css'), 'integrity' => array(), 'media' => array(), 'nonce' => array(), 'rel' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('stylesheet')), 'type' => array('value_casei' => array('text/css'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'link rel=stylesheet for fonts', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#custom-fonts')), array('attr_spec_list' => array('charset' => array('value_casei' => array('utf-8')), 'color' => array(), 'crossorigin' => array(), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'href' => array('mandatory' => \true), 'hreflang' => array(), 'itemprop' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('sameas')), 'media' => array(), 'sizes' => array(), 'target' => array(), 'type' => array()), 'tag_spec' => array('spec_name' => 'link itemprop=sameAs', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('charset' => array('value_casei' => array('utf-8')), 'color' => array(), 'crossorigin' => array(), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'href' => array('mandatory' => \true), 'hreflang' => array(), 'itemprop' => array('mandatory' => \true), 'media' => array(), 'sizes' => array(), 'target' => array(), 'type' => array()), 'tag_spec' => array('spec_name' => 'link itemprop=', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('charset' => array('value_casei' => array('utf-8')), 'color' => array(), 'crossorigin' => array(), 'fetchpriority' => array('value_casei' => array('high', 'low', 'auto')), 'href' => array('mandatory' => \true), 'hreflang' => array(), 'media' => array(), 'property' => array('mandatory' => \true), 'sizes' => array(), 'target' => array(), 'type' => array()), 'tag_spec' => array('spec_name' => 'link property=', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags'))), 'listing' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'main' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'mark' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'marker' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'markerheight' => array(), 'markerunits' => array(), 'markerwidth' => array(), 'mask' => array(), 'opacity' => array(), 'orient' => array(), 'overflow' => array(), 'pointer-events' => array(), 'preserveaspectratio' => array(), 'refx' => array(), 'refy' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'viewbox' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'mask' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'maskcontentunits' => array(), 'maskunits' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'meta' => array(array('attr_spec_list' => array('charset' => array('dispatch_key' => 1, 'mandatory' => \true, 'value_casei' => array('utf-8'))), 'tag_spec' => array('mandatory' => \true, 'mandatory_parent' => 'head', 'spec_name' => 'meta charset=utf-8', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => \true)), array('attr_spec_list' => array('content' => array('mandatory' => \true, 'value_properties' => array('height' => array(), 'initial-scale' => array(), 'maximum-scale' => array(), 'minimum-scale' => array(), 'shrink-to-fit' => array(), 'user-scalable' => array(), 'viewport-fit' => array(), 'width' => array('mandatory' => \true, 'value' => 'device-width'))), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('viewport'))), 'tag_spec' => array('mandatory' => \true, 'mandatory_parent' => 'head', 'spec_name' => 'meta name=viewport', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => \true)), array('attr_spec_list' => array('content' => array('mandatory' => \true, 'value_properties' => array('chrome' => array('value' => '1'), 'ie' => array('value' => 'edge'))), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('x-ua-compatible'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=X-UA-Compatible', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true, 'value_regex' => '.*app-id=.*'), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('apple-itunes-app'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=apple-itunes-app', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-experiments-opt-in'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-experiments-opt-in')), array('attr_spec_list' => array('content' => array('mandatory' => \true, 'value_url' => array('protocol' => array('https'))), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-3p-iframe-src'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-3p-iframe-src', 'spec_url' => 'https://amp.dev/documentation/components/amp-ad/')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-consent-blocking'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-consent-blocking', 'unique' => \true)), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-experiment-token'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-experiment-token')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-link-variable-allowed-origin'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-link-variable-allowed-origin')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-google-client-id-api'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-google-clientid-id-api')), array('attr_spec_list' => array('name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-ad-doubleclick-sra'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-ad-doubleclick-sra')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-list-load-more'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-list-load-more')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-recaptcha-input'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-recaptcha-input')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-script-src'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-script-src')), array('attr_spec_list' => array('content' => array(), 'itemprop' => array(), 'media' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\\s|$)'), 'property' => array(), 'scheme' => array()), 'tag_spec' => array('spec_name' => 'meta name= and content=')), array('attr_spec_list' => array('content' => array('mandatory' => \true, 'value_casei' => array('text/html; charset=utf-8')), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('content-type'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=Content-Type', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('content-language'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=content-language', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('pics-label'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=pics-label', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('imagetoolbar'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=imagetoolbar', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true, 'value_casei' => array('text/css')), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('content-style-type'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=Content-Style-Type', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true, 'value_casei' => array('text/javascript')), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('content-script-type'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=Content-Script-Type', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('origin-trial'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=origin-trial', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('resource-type'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=resource-type', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true, 'value_casei' => array('off', 'on')), 'http-equiv' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('x-dns-prefetch-control'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=x-dns-prefetch-control', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-ad-enable-refresh'))), 'tag_spec' => array('mandatory_ancestor' => 'head', 'spec_name' => 'meta name=amp-ad-enable-refresh')), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-to-amp-navigation'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-to-amp-navigation', 'unique' => \true)), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('mandatory' => \true, 'value_casei' => array('amp-story-generator-name'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-story-generator-name', 'unique' => \true)), array('attr_spec_list' => array('content' => array('mandatory' => \true), 'name' => array('mandatory' => \true, 'value_casei' => array('amp-story-generator-version'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-story-generator-version', 'unique' => \true))), 'metadata' => array(array('attr_spec_list' => array('style' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'meter' => array(array('attr_spec_list' => array('high' => array(), 'low' => array(), 'max' => array(), 'min' => array(), 'optimum' => array(), 'value' => array()), 'tag_spec' => array())), 'multicol' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'nav' => array(array('attr_spec_list' => array(), 'tag_spec' => array()), array('attr_spec_list' => array('toolbar' => array('dispatch_key' => 1, 'mandatory' => \true), 'toolbar-target' => array('mandatory' => \true)), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('ol', 'ul'), 'mandatory_num_child_tags' => 1), 'mandatory_parent' => 'amp-sidebar', 'spec_name' => 'amp-sidebar > nav'))), 'nextid' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'nobr' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'noscript' => array(array('attr_spec_list' => array(), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('style'), 'mandatory_min_num_child_tags' => 1), 'mandatory_parent' => 'head', 'spec_name' => 'noscript enclosure for amp style tags', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amp-boilerplate/?format=websites')), array('attr_spec_list' => array(), 'tag_spec' => array('disallowed_ancestor' => array('noscript'), 'mandatory_ancestor' => 'body'))), 'o:p' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'ol' => array(array('attr_spec_list' => array('reversed' => array('value' => array('')), 'start' => array('value_regex' => '[0-9]*'), 'type' => array('value_regex' => '[1AaIi]')), 'tag_spec' => array())), 'optgroup' => array(array('attr_spec_list' => array('data-amp-bind-disabled' => array(), 'data-amp-bind-label' => array(), 'disabled' => array(), 'label' => array()), 'tag_spec' => array('mandatory_parent' => 'select', 'spec_url' => 'https://amp.dev/documentation/components/amp-form/'))), 'option' => array(array('attr_spec_list' => array('data-amp-bind-disabled' => array(), 'data-amp-bind-label' => array(), 'data-amp-bind-selected' => array(), 'data-amp-bind-value' => array(), 'disabled' => array(), 'label' => array(), 'selected' => array(), 'value' => array()), 'tag_spec' => array('spec_url' => 'https://amp.dev/documentation/components/amp-form/'))), 'output' => array(array('attr_spec_list' => array('for' => array(), 'form' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)')), 'tag_spec' => array())), 'p' => array(array('attr_spec_list' => array('align' => array()), 'tag_spec' => array())), 'path' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'd' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pathlength' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'pattern' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'patterncontentunits' => array(), 'patterntransform' => array(), 'patternunits' => array(), 'pointer-events' => array(), 'preserveaspectratio' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'viewbox' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'value_url' => array('allow_empty' => \false, 'protocol' => array('http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'picture' => array(array('attr_spec_list' => array(), 'tag_spec' => array('mandatory_parent' => 'noscript', 'spec_url' => 'https://amp.dev/documentation/components/amp-img/'))), 'polygon' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'points' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'polyline' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'points' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'pre' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'progress' => array(array('attr_spec_list' => array('max' => array(), 'value' => array()), 'tag_spec' => array())), 'q' => array(array('attr_spec_list' => array('cite' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_empty' => \true, 'protocol' => array('http', 'https')))), 'tag_spec' => array())), 'radialgradient' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'cx' => array(), 'cy' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'fr' => array(), 'fx' => array(), 'fy' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'gradienttransform' => array(), 'gradientunits' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'r' => array(), 'shape-rendering' => array(), 'spreadmethod' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'value_url' => array('allow_empty' => \false, 'protocol' => array('http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'rb' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'rect' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'rx' => array(), 'ry' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'rp' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'rt' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'rtc' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'ruby' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 's' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'samp' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'script' => array(array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'src' => array('mandatory' => \true, 'value' => array('https://cdn.ampproject.org/v0.js', 'https://ampjs.org/v0.js')), 'type' => array('value_casei' => array('text/javascript'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'contents', 'regex' => '.'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'amphtml engine script', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => \true)), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'src' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('https://cdn.ampproject.org/lts/v0.js', 'https://ampjs.org/lts/v0.js')), 'type' => array('value_casei' => array('text/javascript'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'contents', 'regex' => '.'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'amphtml engine script (LTS)', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => \true)), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('application/ld+json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('spec_name' => 'script type=application/ld+json')), array('attr_spec_list' => array('id' => array('dispatch_key' => 2, 'mandatory' => \true, 'value_casei' => array('amp-rtc')), 'nonce' => array(), 'type' => array('mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'script id=amp-rtc', 'unique' => \true)), array('attr_spec_list' => array('type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-ima-video', 'spec_name' => 'amp-ima-video > script[type=application/json]')), array('attr_spec_list' => array('amp-onerror' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array(''))), 'cdata' => array('mandatory_cdata' => 'document.querySelector("script[src*=\'/v0.js\']").onerror=function(){document.querySelector(\'style[amp-boilerplate]\').textContent=\'\'}'), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'script amp-onerror (v0.js)', 'unique' => \true)), array('attr_spec_list' => array('id' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('amp-access')), 'nonce' => array(), 'type' => array('mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'head', 'requires_extension' => array('amp-access'), 'spec_name' => 'amp-access extension .json script', 'unique' => \true)), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-analytics', 'requires_extension' => array('amp-analytics'), 'spec_name' => 'amp-analytics extension .json script', 'spec_url' => 'https://amp.dev/documentation/components/amp-analytics/')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-animation', 'requires_extension' => array('amp-animation'), 'spec_name' => 'amp-animation extension .json script')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-autocomplete', 'requires_extension' => array('amp-autocomplete'), 'spec_name' => 'amp-autocomplete JSON')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--')), 'max_bytes' => 100000, 'max_bytes_spec_url' => 'https://amp.dev/documentation/components/amp-bind#state'), 'tag_spec' => array('mandatory_parent' => 'amp-state', 'requires_extension' => array('amp-bind'), 'spec_name' => 'amp-bind extension .json script', 'spec_url' => 'https://amp.dev/documentation/components/amp-bind/')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-consent', 'requires_extension' => array('amp-consent'), 'spec_name' => 'amp-consent extension .json script', 'unique' => \true)), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--')), 'max_bytes' => 15000, 'max_bytes_spec_url' => 'https://amp.dev/documentation/components/amp-experiment/#configuration'), 'tag_spec' => array('mandatory_parent' => 'amp-experiment', 'spec_name' => 'amp-experiment extension .json script', 'spec_url' => 'https://amp.dev/documentation/components/amp-experiment/')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-geo', 'requires_extension' => array('amp-geo'), 'spec_name' => 'amp-geo extension .json script', 'spec_url' => 'https://amp.dev/documentation/components/amp-geo/')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-link-rewriter', 'requires_extension' => array('amp-link-rewriter'), 'spec_name' => 'amp-link-rewriter extension .json script')), array('attr_spec_list' => array('id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'nonce' => array(), 'template' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('amp-mustache')), 'type' => array('mandatory' => \true, 'value_casei' => array('text/plain'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('disallowed_ancestor' => array('template', 'amp-date-picker', 'form div [submit-success][template]', 'form div [submit-error][template]', 'form div [submitting][template]', 'form div [verify-error][template]'), 'requires_extension' => array('amp-mustache'), 'spec_name' => 'SCRIPT type=text/plain')), array('attr_spec_list' => array('type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'tag_spec' => array('mandatory_parent' => 'amp-next-page', 'requires_extension' => array('amp-next-page'), 'spec_name' => 'AMP-NEXT-PAGE > SCRIPT[type=application/json]', 'spec_url' => 'https://amp.dev/documentation/components/amp-next-page/')), array('attr_spec_list' => array('id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true), 'nonce' => array(), 'target' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('amp-script')), 'type' => array('mandatory' => \true, 'value_casei' => array('text/plain'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--')), 'max_bytes' => 10000, 'max_bytes_spec_url' => 'https://amp.dev/documentation/components/amp-script/#faq'), 'tag_spec' => array('requires_extension' => array('amp-script'), 'spec_name' => 'amp-script extension local script', 'spec_url' => 'https://amp.dev/documentation/components/amp-script/')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-story-auto-ads', 'requires_extension' => array('amp-story-auto-ads'), 'spec_name' => 'amp-story-auto-ads config script', 'spec_url' => 'https://amp.dev/documentation/components/amp-story-auto-ads/')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-story-shopping-attachment', 'requires_extension' => array('amp-story-shopping'), 'spec_name' => 'amp-story-shopping-attachment config script', 'spec_url' => 'https://amp.dev/documentation/components/amp-story-shopping/')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'tag_spec' => array('mandatory_parent' => 'amp-story-bookend', 'requires_extension' => array('amp-story'), 'siblings_disallowed' => \true, 'spec_name' => 'amp-story-bookend extension .json script', 'unique' => \true)), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'tag_spec' => array('mandatory_parent' => 'amp-story-social-share', 'requires_extension' => array('amp-story'), 'siblings_disallowed' => \true, 'spec_name' => 'amp-story-social-share extension .json script', 'unique' => \true)), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-story-consent', 'requires_extension' => array('amp-consent', 'amp-story'), 'spec_name' => 'amp-story-consent extension .json script', 'unique' => \true)), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--')), 'max_bytes' => 15000, 'max_bytes_spec_url' => 'https://amp.dev/documentation/components/amp-experiment/#configuration'), 'tag_spec' => array('mandatory_parent' => 'amp-experiment', 'spec_name' => 'amp-experiment story extension .json script', 'spec_url' => 'https://amp.dev/documentation/components/amp-experiment/')), array('attr_spec_list' => array('nonce' => array(), 'type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'amp-story-animation', 'spec_name' => 'amp-story-animation json script')), array('attr_spec_list' => array('id' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('amp-subscriptions')), 'nonce' => array(), 'type' => array('mandatory' => \true, 'value_casei' => array('application/json'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_parent' => 'head', 'requires_extension' => array('amp-subscriptions'), 'spec_name' => 'amp-subscriptions extension .json script', 'unique' => \true)), array('attr_spec_list' => array('cryptokeys' => array('dispatch_key' => 2, 'mandatory' => \true, 'value' => array('')), 'sha-256-hash' => array('mandatory' => \true), 'type' => array('mandatory' => \true, 'value_casei' => array('application/json'))), 'tag_spec' => array('mandatory_parent' => 'head', 'requires_extension' => array('amp-subscriptions'), 'spec_name' => 'cryptokeys .json script', 'unique' => \true)), array('attr_spec_list' => array('ciphertext' => array('dispatch_key' => 1, 'mandatory' => \true), 'type' => array('mandatory' => \true, 'value_casei' => array('application/octet-stream'))), 'cdata' => array('disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'))), 'tag_spec' => array('mandatory_ancestor' => 'body', 'mandatory_parent' => 'subscriptions-section content swg_amp_cache_nonce', 'spec_name' => 'subscriptions script ciphertext')), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-3d-gltf', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-3q-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-access', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-access-fewcents', 'requires_usage' => \false, 'version' => array('0.1')), 'requires_extension' => array('amp-access'))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.2', 'name' => 'amp-access-laterpay', 'requires_usage' => \false, 'version' => array('0.1', '0.2')), 'requires_extension' => array('amp-access'))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-access-poool', 'requires_usage' => \false, 'version' => array('0.1')), 'requires_extension' => array('amp-access'))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-access-scroll', 'requires_usage' => \false, 'version' => array('0.1')), 'requires_extension' => array('amp-access'))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-accordion', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-action-macro', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-ad', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-ad-custom', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-addthis', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-analytics', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-anim', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-animation', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-apester-media', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-app-banner', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-audio', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-auto-ads', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-autocomplete', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-base-carousel', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-beopinion', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-bind', 'requires_usage' => \false, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-bodymovin-animation', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-brid-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-brightcove', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-byside-content', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-cache-url', 'requires_usage' => \false, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-call-tracking', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-carousel', 'requires_usage' => \true, 'version' => array('0.1', '0.2')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-connatix-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-consent', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-dailymotion', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-date-countdown', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-date-display', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-date-picker', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-delight-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-dynamic-css-classes', 'requires_usage' => \false, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-embedly-card', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-experiment', 'requires_usage' => \true, 'version' => array('0.1', '1.0')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-facebook', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-facebook-comments', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-facebook-like', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-facebook-page', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-fit-text', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-font', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-form', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-fx-collection', 'requires_usage' => \false, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-fx-flying-carpet', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-geo', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-gfycat', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-gist', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-google-document-embed', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-google-read-aloud-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-hulu', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-iframe', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-iframely', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-ima-video', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-image-lightbox', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-image-slider', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-imgur', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-inline-gallery', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-inputmask', 'requires_usage' => \false, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-instagram', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-install-serviceworker', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-izlesene', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-jwplayer', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-kaltura-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-lightbox', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-lightbox-gallery', 'requires_usage' => \false, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-link-rewriter', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-list', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-live-list', 'requires_usage' => \true, 'version' => array('0.1')), 'mandatory_parent' => 'head', 'unique_warning' => \true)), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-mathml', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-mega-menu', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-megaphone', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-minute-media-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-mowplayer', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.2', 'name' => 'amp-mustache', 'requires_usage' => \true, 'version' => array('0.1', '0.2')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-nested-menu', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '1.0', 'name' => 'amp-next-page', 'requires_usage' => \true, 'version' => array('0.1', '1.0')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-nexxtv-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-o2-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-onetap-google', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-ooyala-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-orientation-observer', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-pan-zoom', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-pinterest', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-playbuzz', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-position-observer', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-powr-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-reach-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-recaptcha-input', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-reddit', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '1.0', 'name' => 'amp-render', 'requires_usage' => \true, 'version' => array('1.0')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-riddle-quiz', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-script', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-selector', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-sidebar', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-skimlinks', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-slikeplayer', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-smartlinks', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-social-share', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-soundcloud', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-springboard-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '1.0', 'name' => 'amp-sticky-ad', 'requires_usage' => \true, 'version' => array('0.1', '1.0')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '1.0', 'name' => 'amp-story', 'requires_usage' => \true, 'version' => array('1.0')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-360', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-audio-sticker', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-auto-ads', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-auto-analytics', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-captions', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-interactive', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-panning-media', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-player', 'requires_usage' => \true, 'version' => array('0.1')), 'spec_url' => 'https://amp.dev/documentation/components/amp-story-player/')), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-shopping', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-story-subscriptions', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-stream-gallery', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-subscriptions', 'requires_usage' => \false, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-subscriptions-google', 'requires_usage' => \false, 'version' => array('0.1')), 'requires_extension' => array('amp-subscriptions'))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-tiktok', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-timeago', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-truncate-text', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-twitter', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-user-notification', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-video', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-video-docking', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-video-iframe', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-vimeo', 'requires_usage' => \true, 'version' => array('0.1', '1.0')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-vine', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-viqeo-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-vk', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-web-push', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-wistia-player', 'requires_usage' => \true, 'version' => array('0.1')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '1.0', 'name' => 'amp-wordpress-embed', 'requires_usage' => \true, 'version' => array('1.0')))), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-yotpo', 'requires_usage' => \true, 'version' => array('0.1')), 'spec_url' => 'https://amp.dev/documentation/components/amp-yotpo/')), array('attr_spec_list' => array('async' => array('mandatory' => \true, 'value' => array('')), 'crossorigin' => array('value' => array('anonymous')), 'nonce' => array(), 'type' => array('value_casei' => array('text/javascript'))), 'tag_spec' => array('extension_spec' => array('latest' => '0.1', 'name' => 'amp-youtube', 'requires_usage' => \true, 'version' => array('0.1'))))), 'section' => array(array('attr_spec_list' => array('poool-access-content' => array('requires_extension' => array('amp-access-poool')), 'poool-access-preview' => array('requires_extension' => array('amp-access-poool'))), 'tag_spec' => array('disallowed_ancestor' => array('amp-accordion'))), array('attr_spec_list' => array('access-hide' => array('value' => array('')), 'data-amp-bind-data-expand' => array(), 'data-amp-bind-expanded' => array(), 'expanded' => array('value' => array(''))), 'tag_spec' => array('child_tags' => array('first_child_tag_name_oneof' => array('h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header'), 'mandatory_num_child_tags' => 2), 'mandatory_parent' => 'amp-accordion', 'spec_name' => 'amp-accordion > section')), array('attr_spec_list' => array('encrypted' => array('dispatch_key' => 1, 'mandatory' => \true), 'subscriptions-section' => array('value_casei' => array('content')), 'swg_amp_cache_nonce' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'body', 'spec_name' => 'subscriptions-section content swg_amp_cache_nonce'))), 'select' => array(array('attr_spec_list' => array('autofocus' => array(), 'data-amp-bind-autofocus' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-multiple' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-size' => array(), 'disabled' => array(), 'multiple' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'no-verify' => array('value' => array('')), 'required' => array(), 'size' => array()), 'tag_spec' => array('spec_url' => 'https://amp.dev/documentation/components/amp-form/'))), 'slot' => array(array('attr_spec_list' => array('name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)')), 'tag_spec' => array())), 'small' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'solidcolor' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'shape-rendering' => array(), 'solid-color' => array(), 'solid-opacity' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'source' => array(array('attr_spec_list' => array('media' => array(), 'sizes' => array(), 'srcset' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('data', 'http', 'https'))), 'type' => array()), 'tag_spec' => array('mandatory_parent' => 'picture', 'spec_name' => 'picture > source', 'spec_url' => 'https://amp.dev/documentation/components/amp-img/')), array('attr_spec_list' => array('data-amp-bind-src' => array(), 'data-amp-bind-type' => array(), 'media' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array()), 'tag_spec' => array('mandatory_parent' => 'amp-video', 'spec_name' => 'amp-video > source', 'spec_url' => 'https://amp.dev/documentation/components/amp-video/')), array('attr_spec_list' => array('data-amp-bind-src' => array(), 'data-amp-bind-type' => array(), 'media' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array()), 'tag_spec' => array('mandatory_parent' => 'amp-audio', 'spec_name' => 'amp-audio > source', 'spec_url' => 'https://amp.dev/documentation/components/amp-audio/')), array('attr_spec_list' => array('media' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'audio', 'spec_name' => 'audio > source', 'spec_url' => 'https://amp.dev/documentation/components/amp-audio/')), array('attr_spec_list' => array('media' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'video', 'spec_name' => 'video > source', 'spec_url' => 'https://amp.dev/documentation/components/amp-video/')), array('attr_spec_list' => array('data-amp-bind-src' => array(), 'data-amp-bind-type' => array(), 'media' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \true, 'protocol' => array('https'))), 'type' => array()), 'tag_spec' => array('mandatory_parent' => 'amp-ima-video', 'requires_extension' => array('amp-ima-video'), 'spec_name' => 'amp-ima-video > source'))), 'spacer' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'span' => array(array('attr_spec_list' => array(), 'tag_spec' => array()), array('attr_spec_list' => array('amp-nested-submenu-close' => array(), 'amp-nested-submenu-open' => array()), 'tag_spec' => array('mandatory_ancestor' => 'amp-nested-menu', 'spec_name' => 'span amp-nested-menu')), array('attr_spec_list' => array('swg_amp_cache_nonce' => array('dispatch_key' => 1, 'mandatory' => \true)), 'tag_spec' => array('mandatory_ancestor' => 'body', 'requires_extension' => array('amp-subscriptions'), 'spec_name' => 'span swg_amp_cache_nonce'))), 'stop' => array(array('attr_spec_list' => array('offset' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'style' => array()), 'tag_spec' => array('mandatory_ancestor' => 'lineargradient', 'spec_name' => 'lineargradient > stop', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg')), array('attr_spec_list' => array('offset' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'style' => array()), 'tag_spec' => array('mandatory_ancestor' => 'radialgradient', 'spec_name' => 'radialgradient > stop', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'strike' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'strong' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'style' => array(array('attr_spec_list' => array('amp-custom' => array('mandatory' => \true, 'value' => array('')), 'nonce' => array(), 'type' => array('value_casei' => array('text/css'))), 'cdata' => array('css_spec' => array('allowed_at_rules' => array('font-face', 'keyframes', 'media', 'page', 'supports', '-moz-document'), 'declaration' => array(), 'validate_keyframes' => \false), 'disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'), array('error_message' => 'CSS i-amphtml- name prefix', 'regex' => '(^|\\W)i-amphtml-')), 'doc_css_bytes' => \true, 'max_bytes' => 75000, 'max_bytes_spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#maximum-size'), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'style amp-custom', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#stylesheets', 'unique' => \true)), array('attr_spec_list' => array('amp-boilerplate' => array('dispatch_key' => 3, 'mandatory' => \true, 'value' => array('')), 'nonce' => array()), 'cdata' => array('cdata_regex' => '\\s*body\\s*{\\s*-webkit-animation:\\s*-amp-start\\s+8s\\s+steps\\(1,\\s*end\\)\\s+0s\\s+1\\s+normal\\s+both;\\s*-moz-animation:\\s*-amp-start\\s+8s\\s+steps\\s*\\(1\\s*,\\s*end\\s*\\)\\s+0s\\s+1\\s+normal\\s+both;\\s*-ms-animation:\\s*-amp-start\\s+8s\\s+steps\\s*\\(1\\s*,\\s*end\\s*\\)\\s+0s\\s+1\\s+normal\\s+both;\\s*animation:\\s*-amp-start\\s+8s\\s+steps\\(1,\\s*end\\)\\s+0s\\s+1\\s+normal\\s+both;?\\s*}\\s*@-webkit-keyframes\\s+-amp-start\\s*{\\s*from\\s*{\\s*visibility:\\s*hidden;?\\s*}\\s*to\\s*{\\s*visibility:\\s*visible;?\\s*}\\s*}\\s*@-moz-keyframes\\s+-amp-start\\s*{\\s*from\\s*{\\s*visibility:\\s*hidden;?\\s*}\\s*to\\s*{\\s*visibility:\\s*visible;?\\s*}\\s*}\\s*@-ms-keyframes\\s+-amp-start\\s*{\\s*from\\s*{\\s*visibility:\\s*hidden;?\\s*}\\s*to\\s*{\\s*visibility:\\s*visible;?\\s*}\\s*}\\s*@-o-keyframes\\s+-amp-start\\s*{\\s*from\\s*{\\s*visibility:\\s*hidden;?\\s*}\\s*to\\s*{\\s*visibility:\\s*visible;?\\s*}\\s*}\\s*@keyframes\\s+-amp-start\\s*{\\s*from\\s*{\\s*visibility:\\s*hidden;?\\s*}\\s*to\\s*{\\s*visibility:\\s*visible;?\\s*}\\s*}\\s*', 'doc_css_bytes' => \false), 'tag_spec' => array('mandatory_parent' => 'head', 'spec_name' => 'head > style[amp-boilerplate]', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amp-boilerplate/?format=websites', 'unique' => \true)), array('attr_spec_list' => array('amp-boilerplate' => array('dispatch_key' => 3, 'mandatory' => \true, 'value' => array('')), 'nonce' => array()), 'cdata' => array('cdata_regex' => '\\s*body\\s*{\\s*-webkit-animation:\\s*none;\\s*-moz-animation:\\s*none;\\s*-ms-animation:\\s*none;\\s*animation:\\s*none;?\\s*}\\s*', 'doc_css_bytes' => \false), 'tag_spec' => array('mandatory_ancestor' => 'head', 'mandatory_parent' => 'noscript', 'spec_name' => 'noscript > style[amp-boilerplate]', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amp-boilerplate/?format=websites', 'unique' => \true)), array('attr_spec_list' => array('amp-keyframes' => array('dispatch_key' => 1, 'mandatory' => \true, 'value' => array(''))), 'cdata' => array('css_spec' => array('allowed_at_rules' => array('keyframes', 'media', 'supports'), 'declaration' => array('animation-timing-function', 'offset-distance', 'opacity', 'transform', 'visibility'), 'validate_keyframes' => \true), 'doc_css_bytes' => \false, 'max_bytes' => 500000, 'max_bytes_spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#keyframes-stylesheet'), 'tag_spec' => array('mandatory_parent' => 'body', 'spec_name' => 'style[amp-keyframes]', 'unique' => \true)), array('attr_spec_list' => array('amp-noscript' => array('dispatch_key' => 1, 'mandatory' => \true, 'value' => array('')), 'nonce' => array(), 'type' => array('value_casei' => array('text/css'))), 'cdata' => array('css_spec' => array('allowed_at_rules' => array('media', 'page', 'supports', '-moz-document'), 'declaration' => array(), 'validate_keyframes' => \false), 'disallowed_cdata_regex' => array(array('error_message' => 'html comments', 'regex' => '<!--'), array('error_message' => 'CSS i-amphtml- name prefix', 'regex' => '(^|\\W)i-amphtml-')), 'doc_css_bytes' => \true, 'max_bytes' => 10000, 'max_bytes_spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#maximum-size'), 'tag_spec' => array('mandatory_ancestor' => 'head', 'mandatory_parent' => 'noscript', 'spec_name' => 'style amp-noscript', 'spec_url' => 'https://github.com/ampproject/amphtml/issues/20609', 'unique' => \true))), 'sub' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'summary' => array(array('attr_spec_list' => array(), 'tag_spec' => array('mandatory_parent' => 'details'))), 'sup' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'svg' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'contentscripttype' => array(), 'contentstyletype' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'preserveaspectratio' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'version' => array('value' => array('1.0', '1.1')), 'viewbox' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array(), 'zoomandpan' => array()), 'tag_spec' => array('spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'switch' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'symbol' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'preserveaspectratio' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'viewbox' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'table' => array(array('attr_spec_list' => array('align' => array(), 'bgcolor' => array(), 'border' => array('value' => array('0', '1')), 'cellpadding' => array(), 'cellspacing' => array(), 'sortable' => array(), 'width' => array()), 'tag_spec' => array())), 'tbody' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'td' => array(array('attr_spec_list' => array('align' => array(), 'bgcolor' => array(), 'colspan' => array(), 'headers' => array(), 'height' => array(), 'rowspan' => array(), 'valign' => array(), 'width' => array()), 'tag_spec' => array())), 'template' => array(array('attr_spec_list' => array('date-template' => array('dispatch_key' => 1, 'mandatory' => \true, 'value' => array('')), 'dates' => array(), 'default' => array(), 'type' => array('mandatory' => \true, 'value' => array('amp-mustache'))), 'tag_spec' => array('mandatory_parent' => 'amp-date-picker', 'requires_extension' => array('amp-mustache'), 'spec_name' => 'amp-date-picker > template [date-template]')), array('attr_spec_list' => array('info-template' => array('dispatch_key' => 1, 'mandatory' => \true), 'type' => array('mandatory' => \true, 'value' => array('amp-mustache'))), 'tag_spec' => array('mandatory_parent' => 'amp-date-picker', 'requires_extension' => array('amp-mustache'), 'spec_name' => 'amp-date-picker > template [info-template]')), array('attr_spec_list' => array('id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'type' => array('mandatory' => \true, 'value' => array('amp-mustache'))), 'tag_spec' => array('disallowed_ancestor' => array('template', 'amp-date-picker', 'amp-story-auto-ads', 'form div [submit-success][template]', 'form div [submit-error][template]', 'form div [submitting][template]', 'form div [verify-error][template]'), 'mandatory_ancestor' => 'body', 'requires_extension' => array('amp-mustache'))), array('attr_spec_list' => array('type' => array('dispatch_key' => 3, 'mandatory' => \true, 'value' => array('amp-mustache'))), 'tag_spec' => array('descendant_tag_list' => 'amp-story-grid-layer-allowed-descendants', 'mandatory_parent' => 'amp-story-auto-ads', 'reference_points' => array('AMP-STORY-GRID-LAYER animate-in' => array('mandatory' => \false, 'unique' => \false), 'AMP-STORY-GRID-LAYER default' => array('mandatory' => \false, 'unique' => \false)), 'requires_extension' => array('amp-mustache'), 'spec_name' => 'amp-story-auto-ads > template'))), 'text' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'dx' => array(), 'dy' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'lengthadjust' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'rotate' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'textlength' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'textarea' => array(array('attr_spec_list' => array('autocomplete' => array(), 'autoexpand' => array('requires_extension' => array('amp-form')), 'autofocus' => array(), 'cols' => array(), 'data-amp-bind-autocomplete' => array(), 'data-amp-bind-autofocus' => array(), 'data-amp-bind-cols' => array(), 'data-amp-bind-defaulttext' => array(), 'data-amp-bind-disabled' => array(), 'data-amp-bind-maxlength' => array(), 'data-amp-bind-minlength' => array(), 'data-amp-bind-pattern' => array(), 'data-amp-bind-placeholder' => array(), 'data-amp-bind-readonly' => array(), 'data-amp-bind-required' => array(), 'data-amp-bind-rows' => array(), 'data-amp-bind-selectiondirection' => array(), 'data-amp-bind-selectionend' => array(), 'data-amp-bind-selectionstart' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-wrap' => array(), 'disabled' => array(), 'maxlength' => array(), 'minlength' => array(), 'name' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'no-verify' => array('value' => array('')), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'rows' => array(), 'selectiondirection' => array(), 'selectionend' => array(), 'selectionstart' => array(), 'spellcheck' => array(), 'wrap' => array()), 'tag_spec' => array('spec_url' => 'https://amp.dev/documentation/components/amp-form/'))), 'textpath' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'method' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'spacing' => array(), 'startoffset' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'value_url' => array('allow_empty' => \false, 'protocol' => array('http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'tfoot' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'th' => array(array('attr_spec_list' => array('abbr' => array(), 'align' => array(), 'bgcolor' => array(), 'colspan' => array(), 'headers' => array(), 'height' => array(), 'rowspan' => array(), 'scope' => array(), 'sorted' => array(), 'valign' => array(), 'width' => array()), 'tag_spec' => array())), 'thead' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'time' => array(array('attr_spec_list' => array('datetime' => array(), 'pubdate' => array('value' => array(''))), 'tag_spec' => array())), 'title' => array(array('attr_spec_list' => array('data-amp-bind-text' => array()), 'tag_spec' => array('spec_name' => 'title')), array('attr_spec_list' => array('style' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_name' => 'svg title', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'tr' => array(array('attr_spec_list' => array('align' => array(), 'bgcolor' => array(), 'height' => array(), 'valign' => array()), 'tag_spec' => array())), 'track' => array(array('attr_spec_list' => array('default' => array('value' => array('')), 'kind' => array('value' => array('captions', 'chapters', 'descriptions', 'metadata')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array()), 'tag_spec' => array('mandatory_parent' => 'audio', 'spec_name' => 'audio > track')), array('attr_spec_list' => array('default' => array('value' => array('')), 'kind' => array('mandatory' => \true, 'value_casei' => array('subtitles')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'audio', 'spec_name' => 'audio > track[kind=subtitles]')), array('attr_spec_list' => array('default' => array('value' => array('')), 'kind' => array('value' => array('captions', 'chapters', 'descriptions', 'metadata')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array()), 'tag_spec' => array('mandatory_parent' => 'video', 'spec_name' => 'video > track')), array('attr_spec_list' => array('default' => array('value' => array('')), 'kind' => array('mandatory' => \true, 'value_casei' => array('subtitles')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'video', 'spec_name' => 'video > track[kind=subtitles]')), array('attr_spec_list' => array('data-amp-bind-label' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-srclang' => array(), 'default' => array('value' => array('')), 'kind' => array('value' => array('captions', 'chapters', 'descriptions', 'metadata')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array()), 'tag_spec' => array('mandatory_parent' => 'amp-audio', 'spec_name' => 'amp-audio > track')), array('attr_spec_list' => array('data-amp-bind-label' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-srclang' => array(), 'default' => array('value' => array('')), 'kind' => array('mandatory' => \true, 'value_casei' => array('subtitles')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'amp-audio', 'spec_name' => 'amp-audio > track[kind=subtitles]')), array('attr_spec_list' => array('data-amp-bind-label' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-srclang' => array(), 'default' => array('value' => array('')), 'kind' => array('value' => array('captions', 'chapters', 'descriptions', 'metadata')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array()), 'tag_spec' => array('mandatory_parent' => 'amp-video', 'spec_name' => 'amp-video > track')), array('attr_spec_list' => array('data-amp-bind-label' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-srclang' => array(), 'default' => array('value' => array('')), 'kind' => array('mandatory' => \true, 'value_casei' => array('subtitles')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'amp-video', 'spec_name' => 'amp-video > track[kind=subtitles]')), array('attr_spec_list' => array('data-amp-bind-label' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-srclang' => array(), 'default' => array('value' => array('')), 'kind' => array('value' => array('captions', 'chapters', 'descriptions', 'metadata')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array()), 'tag_spec' => array('mandatory_parent' => 'amp-ima-video', 'spec_name' => 'amp-ima-video > track')), array('attr_spec_list' => array('data-amp-bind-label' => array(), 'data-amp-bind-src' => array(), 'data-amp-bind-srclang' => array(), 'default' => array('value' => array('')), 'kind' => array('mandatory' => \true, 'value_casei' => array('subtitles')), 'label' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'mandatory' => \true, 'value_url' => array('allow_relative' => \false, 'protocol' => array('https'))), 'srclang' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'amp-ima-video', 'spec_name' => 'amp-ima-video > track[kind=subtitles]', 'spec_url' => 'https://amp.dev/documentation/components/amp-ima-video/'))), 'tref' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'value_url' => array('allow_empty' => \false, 'protocol' => array('http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'tspan' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'dx' => array(), 'dy' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'lengthadjust' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'rotate' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'textlength' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'tt' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'u' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'ul' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'use' => array(array('attr_spec_list' => array('alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array('alternative_names' => array('href'), 'value_url' => array('allow_empty' => \false, 'protocol' => array('http', 'https'))), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'var' => array(array('attr_spec_list' => array(), 'tag_spec' => array())), 'video' => array(array('attr_spec_list' => array('autoplay' => array(), 'controls' => array(), 'height' => array(), 'loop' => array(), 'muted' => array(), 'playsinline' => array(), 'poster' => array(), 'preload' => array(), 'src' => array('disallowed_value_regex' => '__amp_source_origin', 'value_url' => array('allow_relative' => \false, 'protocol' => array('data', 'https'))), 'width' => array()), 'tag_spec' => array('mandatory_ancestor' => 'noscript', 'mandatory_ancestor_suggested_alternative' => 'amp-video', 'spec_url' => 'https://amp.dev/documentation/components/amp-video/'))), 'view' => array(array('attr_spec_list' => array('externalresourcesrequired' => array(), 'preserveaspectratio' => array(), 'style' => array(), 'viewbox' => array(), 'viewtarget' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'zoomandpan' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'vkern' => array(array('attr_spec_list' => array('g1' => array(), 'g2' => array(), 'k' => array(), 'style' => array(), 'u1' => array(), 'u2' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array()), 'tag_spec' => array('mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg'))), 'wbr' => array(array('attr_spec_list' => array(), 'tag_spec' => array())));
    private static $layout_allowed_attrs = array('data-amp-bind-height' => array(), 'data-amp-bind-width' => array(), 'disable-inline-width' => array(), 'height' => array(), 'heights' => array(), 'layout' => array(), 'sizes' => array(), 'width' => array());
    private static $globally_allowed_attrs = array('about' => array(), 'accesskey' => array(), 'amp-access' => array(), 'amp-access-behavior' => array(), 'amp-access-hide' => array(), 'amp-access-id' => array(), 'amp-access-loader' => array(), 'amp-access-loading' => array(), 'amp-access-off' => array(), 'amp-access-on' => array(), 'amp-access-show' => array(), 'amp-access-style' => array(), 'amp-access-template' => array(), 'amp-fx' => array('requires_extension' => array('amp-fx-collection'), 'value_regex_casei' => '(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*'), 'aria-activedescendant' => array(), 'aria-atomic' => array(), 'aria-autocomplete' => array(), 'aria-busy' => array(), 'aria-checked' => array(), 'aria-controls' => array(), 'aria-current' => array(), 'aria-describedby' => array(), 'aria-disabled' => array(), 'aria-dropeffect' => array(), 'aria-expanded' => array(), 'aria-flowto' => array(), 'aria-grabbed' => array(), 'aria-haspopup' => array(), 'aria-hidden' => array(), 'aria-invalid' => array(), 'aria-label' => array(), 'aria-labelledby' => array(), 'aria-level' => array(), 'aria-live' => array(), 'aria-modal' => array(), 'aria-multiline' => array(), 'aria-multiselectable' => array(), 'aria-orientation' => array(), 'aria-owns' => array(), 'aria-posinset' => array(), 'aria-pressed' => array(), 'aria-readonly' => array(), 'aria-relevant' => array(), 'aria-required' => array(), 'aria-selected' => array(), 'aria-setsize' => array(), 'aria-sort' => array(), 'aria-valuemax' => array(), 'aria-valuemin' => array(), 'aria-valuenow' => array(), 'aria-valuetext' => array(), 'autoscroll' => array(), 'class' => array(), 'content' => array(), 'data-amp-bind-aria-activedescendant' => array(), 'data-amp-bind-aria-atomic' => array(), 'data-amp-bind-aria-autocomplete' => array(), 'data-amp-bind-aria-busy' => array(), 'data-amp-bind-aria-checked' => array(), 'data-amp-bind-aria-controls' => array(), 'data-amp-bind-aria-describedby' => array(), 'data-amp-bind-aria-disabled' => array(), 'data-amp-bind-aria-dropeffect' => array(), 'data-amp-bind-aria-expanded' => array(), 'data-amp-bind-aria-flowto' => array(), 'data-amp-bind-aria-grabbed' => array(), 'data-amp-bind-aria-haspopup' => array(), 'data-amp-bind-aria-hidden' => array(), 'data-amp-bind-aria-invalid' => array(), 'data-amp-bind-aria-label' => array(), 'data-amp-bind-aria-labelledby' => array(), 'data-amp-bind-aria-level' => array(), 'data-amp-bind-aria-live' => array(), 'data-amp-bind-aria-multiline' => array(), 'data-amp-bind-aria-multiselectable' => array(), 'data-amp-bind-aria-orientation' => array(), 'data-amp-bind-aria-owns' => array(), 'data-amp-bind-aria-posinset' => array(), 'data-amp-bind-aria-pressed' => array(), 'data-amp-bind-aria-readonly' => array(), 'data-amp-bind-aria-relevant' => array(), 'data-amp-bind-aria-required' => array(), 'data-amp-bind-aria-selected' => array(), 'data-amp-bind-aria-setsize' => array(), 'data-amp-bind-aria-sort' => array(), 'data-amp-bind-aria-valuemax' => array(), 'data-amp-bind-aria-valuemin' => array(), 'data-amp-bind-aria-valuenow' => array(), 'data-amp-bind-aria-valuetext' => array(), 'data-amp-bind-class' => array(), 'data-amp-bind-hidden' => array(), 'data-amp-bind-text' => array(), 'datatype' => array(), 'dir' => array(), 'draggable' => array(), 'fallback' => array('value' => array('')), 'hidden' => array('value' => array('')), 'i-amp-access-id' => array(), 'id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)'), 'inlist' => array(), 'itemid' => array(), 'itemprop' => array(), 'itemref' => array(), 'itemscope' => array(), 'itemtype' => array(), 'lang' => array(), 'next-page-hide' => array('requires_extension' => array('amp-next-page')), 'next-page-replace' => array('requires_extension' => array('amp-next-page')), 'on' => array(), 'overflow' => array(), 'placeholder' => array('value' => array('')), 'prefix' => array(), 'property' => array(), 'rel' => array('disallowed_value_regex' => '(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)'), 'resource' => array(), 'rev' => array(), 'role' => array(), 'slot' => array(), 'style' => array(), 'subscriptions-action' => array('requires_extension' => array('amp-subscriptions')), 'subscriptions-actions' => array('requires_extension' => array('amp-subscriptions'), 'value' => array('')), 'subscriptions-decorate' => array('requires_extension' => array('amp-subscriptions')), 'subscriptions-dialog' => array('requires_extension' => array('amp-subscriptions'), 'value' => array('')), 'subscriptions-display' => array('requires_extension' => array('amp-subscriptions')), 'subscriptions-google-rtc' => array('requires_extension' => array('amp-subscriptions-google')), 'subscriptions-lang' => array('requires_extension' => array('amp-subscriptions')), 'subscriptions-section' => array('requires_extension' => array('amp-subscriptions'), 'value_casei' => array('actions', 'content', 'content-not-granted', 'loading')), 'subscriptions-service' => array('requires_extension' => array('amp-subscriptions')), 'tabindex' => array(), 'title' => array(), 'translate' => array(), 'typeof' => array(), 'validation-for' => array(), 'visible-when-invalid' => array('value' => array('badInput', 'customError', 'patternMismatch', 'rangeOverflow', 'rangeUnderflow', 'stepMismatch', 'tooLong', 'tooShort', 'typeMismatch', 'valueMissing')), 'vocab' => array());
    private static $reference_points = array('AMP-BASE-CAROUSEL lightbox [child]' => array('attr_spec_list' => array('lightbox-thumbnail-id' => array('value_regex_casei' => '^[a-z][a-z\\d_-]*')), 'tag_spec' => array('spec_name' => 'AMP-BASE-CAROUSEL lightbox [child]')), 'AMP-BASE-CAROUSEL lightbox [lightbox-exclude]' => array('attr_spec_list' => array('lightbox-exclude' => array('mandatory' => \true)), 'tag_spec' => array('spec_name' => 'AMP-BASE-CAROUSEL lightbox [lightbox-exclude]')), 'AMP-CAROUSEL lightbox [child]' => array('attr_spec_list' => array('lightbox-thumbnail-id' => array('value_regex_casei' => '^[a-z][a-z\\d_-]*')), 'tag_spec' => array('spec_name' => 'AMP-CAROUSEL lightbox [child]')), 'AMP-CAROUSEL lightbox [lightbox-exclude]' => array('attr_spec_list' => array('lightbox-exclude' => array('mandatory' => \true)), 'tag_spec' => array('spec_name' => 'AMP-CAROUSEL lightbox [lightbox-exclude]')), 'AMP-LIVE-LIST [items]' => array('attr_spec_list' => array('items' => array('mandatory' => \true)), 'tag_spec' => array('reference_points' => array('AMP-LIVE-LIST [items] item' => array('mandatory' => \false, 'unique' => \false)), 'spec_name' => 'AMP-LIVE-LIST [items]', 'spec_url' => 'https://amp.dev/documentation/components/amp-live-list/#items')), 'AMP-LIVE-LIST [items] item' => array('attr_spec_list' => array('data-sort-time' => array('mandatory' => \true), 'data-tombstone' => array(), 'data-update-time' => array(), 'id' => array('disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', 'mandatory' => \true)), 'tag_spec' => array('spec_name' => 'AMP-LIVE-LIST [items] item', 'spec_url' => 'https://amp.dev/documentation/components/amp-live-list/#items')), 'AMP-LIVE-LIST [pagination]' => array('attr_spec_list' => array('pagination' => array('mandatory' => \true)), 'tag_spec' => array('spec_name' => 'AMP-LIVE-LIST [pagination]', 'spec_url' => 'https://amp.dev/documentation/components/amp-live-list/#pagination')), 'AMP-LIVE-LIST [update]' => array('attr_spec_list' => array('update' => array('mandatory' => \true)), 'tag_spec' => array('spec_name' => 'AMP-LIVE-LIST [update]', 'spec_url' => 'https://amp.dev/documentation/components/amp-live-list/#update')), 'AMP-MEGA-MENU > AMP-LIST' => array('attr_spec_list' => array('data-amp-bind-src' => array(), 'src' => array()), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('template'), 'mandatory_num_child_tags' => 1), 'mandatory_anyof' => array('data-amp-bind-src', 'src'), 'reference_points' => array('AMP-MEGA-MENU > AMP-LIST > TEMPLATE' => array('mandatory' => \false, 'unique' => \false)), 'spec_name' => 'AMP-MEGA-MENU > AMP-LIST')), 'AMP-MEGA-MENU > AMP-LIST > TEMPLATE' => array('attr_spec_list' => array(), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('nav'), 'mandatory_num_child_tags' => 1), 'mandatory_parent' => 'amp-list', 'reference_points' => array('AMP-MEGA-MENU > NAV' => array('mandatory' => \false, 'unique' => \false)), 'spec_name' => 'AMP-MEGA-MENU > AMP-LIST > TEMPLATE')), 'AMP-MEGA-MENU > NAV' => array('attr_spec_list' => array(), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('ol', 'ul'), 'mandatory_num_child_tags' => 1), 'reference_points' => array('AMP-MEGA-MENU NAV > UL/OL' => array('mandatory' => \false, 'unique' => \false)), 'siblings_disallowed' => \true, 'spec_name' => 'AMP-MEGA-MENU > NAV')), 'AMP-MEGA-MENU NAV > UL/OL' => array('attr_spec_list' => array(), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('li'), 'mandatory_min_num_child_tags' => 1), 'mandatory_parent' => 'nav', 'reference_points' => array('AMP-MEGA-MENU NAV > UL/OL > LI' => array('mandatory' => \false, 'unique' => \false)), 'spec_name' => 'AMP-MEGA-MENU NAV > UL/OL')), 'AMP-MEGA-MENU NAV > UL/OL > LI' => array('attr_spec_list' => array(), 'tag_spec' => array('child_tags' => array('child_tag_name_oneof' => array('a', 'button', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span'), 'mandatory_min_num_child_tags' => 1), 'reference_points' => array('AMP-MEGA-MENU item-content' => array('mandatory' => \false, 'unique' => \true), 'AMP-MEGA-MENU item-heading' => array('mandatory' => \true, 'unique' => \true)), 'spec_name' => 'AMP-MEGA-MENU NAV > UL/OL > LI')), 'AMP-MEGA-MENU item-content' => array('attr_spec_list' => array('role' => array('mandatory' => \true, 'value' => array('dialog'))), 'tag_spec' => array('spec_name' => 'AMP-MEGA-MENU item-content')), 'AMP-MEGA-MENU item-heading' => array('attr_spec_list' => array('role' => array('value' => array('button'))), 'tag_spec' => array('spec_name' => 'AMP-MEGA-MENU item-heading')), 'AMP-NEXT-PAGE > [footer]' => array('attr_spec_list' => array('footer' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'amp-next-page', 'spec_name' => 'AMP-NEXT-PAGE > [footer]')), 'AMP-NEXT-PAGE > [recommendation-box]' => array('attr_spec_list' => array('recommendation-box' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'amp-next-page', 'spec_name' => 'AMP-NEXT-PAGE > [recommendation-box]')), 'AMP-NEXT-PAGE > [separator]' => array('attr_spec_list' => array('separator' => array('mandatory' => \true)), 'tag_spec' => array('mandatory_parent' => 'amp-next-page', 'spec_name' => 'AMP-NEXT-PAGE > [separator]')), 'AMP-SELECTOR child' => array('attr_spec_list' => array(), 'tag_spec' => array('reference_points' => array('AMP-SELECTOR child' => array('mandatory' => \false, 'unique' => \false), 'AMP-SELECTOR option' => array('mandatory' => \false, 'unique' => \false)), 'spec_name' => 'AMP-SELECTOR child')), 'AMP-SELECTOR option' => array('attr_spec_list' => array('disabled' => array('value' => array('')), 'option' => array('mandatory' => \true), 'selected' => array('value' => array(''))), 'tag_spec' => array('spec_name' => 'AMP-SELECTOR option', 'spec_url' => 'https://amp.dev/documentation/components/amp-selector/')), 'AMP-STORY-CTA-LAYER animate-in' => array('attr_spec_list' => array('animate-in' => array('value' => array('drop', 'fade-in', 'fly-in-bottom', 'fly-in-left', 'fly-in-right', 'fly-in-top', 'pan-down', 'pan-left', 'pan-right', 'pan-up', 'pulse', 'rotate-in-left', 'rotate-in-right', 'scale-fade-down', 'scale-fade-up', 'twirl-in', 'whoosh-in-left', 'whoosh-in-right', 'zoom-in', 'zoom-out')), 'animate-in-after' => array(), 'animate-in-delay' => array(), 'animate-in-duration' => array(), 'animate-in-timing-function' => array(), 'pan-scaling-factor' => array('value_regex_casei' => '^([0-9]*[.]?[0-9]+)|([0-9]+[.]?[0-9]*)$'), 'scale-end' => array('value_regex' => '[0-9]+([.][0-9]+)?'), 'scale-start' => array('value_regex' => '[0-9]+([.][0-9]+)?'), 'translate-x' => array('value_regex_casei' => '[0-9]+px'), 'translate-y' => array('value_regex_casei' => '[0-9]+px')), 'tag_spec' => array('reference_points' => array('AMP-STORY-CTA-LAYER animate-in' => array('mandatory' => \false, 'unique' => \false)), 'spec_name' => 'AMP-STORY-CTA-LAYER animate-in', 'spec_url' => 'https://amp.dev/documentation/components/amp-story/')), 'AMP-STORY-GRID-LAYER animate-in' => array('attr_spec_list' => array('animate-in' => array('value' => array('drop', 'fade-in', 'fly-in-bottom', 'fly-in-left', 'fly-in-right', 'fly-in-top', 'pan-down', 'pan-left', 'pan-right', 'pan-up', 'pulse', 'rotate-in-left', 'rotate-in-right', 'scale-fade-down', 'scale-fade-up', 'twirl-in', 'whoosh-in-left', 'whoosh-in-right', 'zoom-in', 'zoom-out')), 'animate-in-after' => array(), 'animate-in-delay' => array(), 'animate-in-duration' => array(), 'animate-in-timing-function' => array(), 'data-tooltip-icon' => array('value_url' => array('protocol' => array('http', 'https', 'data'))), 'interactive' => array('value' => array('')), 'pan-scaling-factor' => array('value_regex_casei' => '^([0-9]*[.]?[0-9]+)|([0-9]+[.]?[0-9]*)$'), 'scale-end' => array('value_regex' => '[0-9]+([.][0-9]+)?'), 'scale-start' => array('value_regex' => '[0-9]+([.][0-9]+)?'), 'target' => array('value' => array('_blank')), 'translate-x' => array('value_regex_casei' => '[0-9]+px'), 'translate-y' => array('value_regex_casei' => '[0-9]+px')), 'tag_spec' => array('reference_points' => array('AMP-STORY-GRID-LAYER animate-in' => array('mandatory' => \false, 'unique' => \false)), 'spec_name' => 'AMP-STORY-GRID-LAYER animate-in', 'spec_url' => 'https://amp.dev/documentation/components/amp-story/')), 'AMP-STORY-GRID-LAYER default' => array('attr_spec_list' => array('align-content' => array('value' => array('center', 'end', 'space-around', 'space-between', 'space-evenly', 'start', 'stretch')), 'align-items' => array('value' => array('center', 'end', 'start', 'stretch')), 'align-self' => array('value' => array('center', 'end', 'start', 'stretch')), 'animate-in' => array('value' => array('drop', 'fade-in', 'fly-in-bottom', 'fly-in-left', 'fly-in-right', 'fly-in-top', 'pan-down', 'pan-left', 'pan-right', 'pan-up', 'pulse', 'rotate-in-left', 'rotate-in-right', 'scale-fade-down', 'scale-fade-up', 'twirl-in', 'whoosh-in-left', 'whoosh-in-right', 'zoom-in', 'zoom-out')), 'animate-in-after' => array(), 'animate-in-delay' => array(), 'animate-in-duration' => array(), 'animate-in-timing-function' => array(), 'data-tooltip-icon' => array('value_url' => array('protocol' => array('http', 'https', 'data'))), 'grid-area' => array(), 'interactive' => array('value' => array('')), 'justify-content' => array('value' => array('center', 'end', 'space-around', 'space-between', 'space-evenly', 'start', 'stretch')), 'justify-items' => array('value' => array('center', 'end', 'start', 'stretch')), 'justify-self' => array('value' => array('center', 'end', 'start', 'stretch')), 'pan-scaling-factor' => array('value_regex_casei' => '^([0-9]*[.]?[0-9]+)|([0-9]+[.]?[0-9]*)$'), 'scale-end' => array('value_regex' => '[0-9]+([.][0-9]+)?'), 'scale-start' => array('value_regex' => '[0-9]+([.][0-9]+)?'), 'target' => array('value' => array('_blank')), 'translate-x' => array('value_regex_casei' => '[0-9]+px'), 'translate-y' => array('value_regex_casei' => '[0-9]+px')), 'tag_spec' => array('reference_points' => array('AMP-STORY-GRID-LAYER animate-in' => array('mandatory' => \false, 'unique' => \false)), 'spec_name' => 'AMP-STORY-GRID-LAYER default', 'spec_url' => 'https://amp.dev/documentation/components/amp-story/')));
    /**
     * Get allowed tags.
     *
     * @since 0.5
     * @return array Allowed tags.
     */
    public static function get_allowed_tags()
    {
        return self::$allowed_tags;
    }
    /**
     * Get extension specs.
     *
     * @since 1.5
     * @internal
     * @return array Extension specs, keyed by extension name.
     */
    public static function get_extension_specs()
    {
        static $extension_specs = [];
        if (!empty($extension_specs)) {
            return $extension_specs;
        }
        foreach (self::get_allowed_tag('script') as $script_spec) {
            if (isset($script_spec[\Google\Web_Stories_Dependencies\AMP_Rule_Spec::TAG_SPEC]['extension_spec'])) {
                $extension_specs[$script_spec[\Google\Web_Stories_Dependencies\AMP_Rule_Spec::TAG_SPEC]['extension_spec']['name']] = $script_spec[\Google\Web_Stories_Dependencies\AMP_Rule_Spec::TAG_SPEC]['extension_spec'];
            }
        }
        return $extension_specs;
    }
    /**
     * Get allowed tag.
     *
     * Get the rules for a single tag so that the entire data structure needn't be passed around.
     *
     * @since 0.7
     * @param string $node_name Tag name.
     * @return array|null Allowed tag, or null if the tag does not exist.
     */
    public static function get_allowed_tag($node_name)
    {
        if (isset(self::$allowed_tags[$node_name])) {
            return self::$allowed_tags[$node_name];
        }
        return null;
    }
    /**
     * Get descendant tag lists.
     *
     * @since 1.1
     * @return array Descendant tags list.
     */
    public static function get_descendant_tag_lists()
    {
        return self::$descendant_tag_lists;
    }
    /**
     * Get allowed descendant tag list for a tag.
     *
     * Get the descendant rules for a single tag so that the entire data structure needn't be passed around.
     *
     * @since 1.1
     * @param string $name Name for the descendants list.
     * @return array|bool Allowed tags list, or false if there are no restrictions.
     */
    public static function get_descendant_tag_list($name)
    {
        if (isset(self::$descendant_tag_lists[$name])) {
            return self::$descendant_tag_lists[$name];
        }
        return \false;
    }
    /**
     * Get reference point spec.
     *
     * @since 1.0
     * @param string $tag_spec_name Tag spec name.
     * @return array|null Reference point spec, or null if does not exist.
     */
    public static function get_reference_point_spec($tag_spec_name)
    {
        if (isset(self::$reference_points[$tag_spec_name])) {
            return self::$reference_points[$tag_spec_name];
        }
        return null;
    }
    /**
     * Get list of globally-allowed attributes.
     *
     * @since 0.5
     * @return array Allowed tag.
     */
    public static function get_allowed_attributes()
    {
        return self::$globally_allowed_attrs;
    }
    /**
     * Get layout attributes.
     *
     * @since 0.5
     * @return array Allowed tag.
     */
    public static function get_layout_attributes()
    {
        return self::$layout_allowed_attrs;
    }
}
