diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8050a3b --- /dev/null +++ b/LICENSE @@ -0,0 +1,397 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + + diff --git a/README.md b/README.md index d154534..a4db1dc 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,12 @@ -# Source & Target +# RML-IO -Repository for RML Source & Target specification. -Deployed to https://kg-construct.github.io/rml-io/spec/docs +Repository for RML-IO specification, ontology, SHACL shapes and test cases. + +- Specification: http://w3id.org/rml/io/spec/ +- Ontology: http://w3id.org/rml/io +- Shapes: http://w3id.org/rml/io/shapes +- Backwards compatibility with R2RML: http://w3id.org/rml/io/bc +- Test cases: [test-cases](./test-cases) ## Quickstart @@ -13,3 +18,13 @@ Deployed to https://kg-construct.github.io/rml-io/spec/docs - run `node publish.js` to get the index.html + archived version in the `dist` folder The `dist` folder contents should mimic the contents on `https://w3id.org/kg-construct/rml-target-source` + +## License + +RML-IO (c) by W3C Community Group on Knowledge Graph Construction + +RML-IO is licensed under a +Creative Commons Attribution-ShareAlike 4.0 International License. + +You should have received a copy of the license along with this +work. If not, see . diff --git a/shapes/io.ttl b/shapes/io.ttl index d4d20a0..24ef500 100644 --- a/shapes/io.ttl +++ b/shapes/io.ttl @@ -29,16 +29,16 @@ @prefix xml: . @prefix xsd: . - a sh:NodeShape ; + a sh:NodeShape ; sh:description """ A logical source is any source that is mapped to RDF triples. """ ; sh:message """ - RMLIO Logical Source requires one rml:source and depending on the source + RML Logical Source requires one rml:source and depending on the source type: one rml:query, one rml:referenceFormulation and/or one rml:iterator. """ ; - sh:name "RMLIO Logical Source" ; + sh:name "RML Logical Source" ; sh:property [ sh:description """ The source (rml:source) locates the input data source. It is a URI that represents the data source where the data source is. @@ -50,7 +50,7 @@ """ ; sh:minCount 1 ; sh:name "rml:source" ; - sh:node ; + sh:node ; sh:nodeKind sh:BlankNodeOrIRI ; sh:path rml:source ], [ sh:datatype xsd:string ; @@ -84,15 +84,15 @@ sh:targetClass rml:LogicalSource ; sh:targetObjectsOf rml:logicalSource . - a sh:NodeShape ; + a sh:NodeShape ; sh:description """ A logical target is any target to where generated RDF triples are exported to. """ ; sh:message """ - RMLIO Logical Target requires one rml:target. + RML Logical Target requires one rml:target. """ ; - sh:name "RMLIO Logical Target" ; + sh:name "RML Logical Target" ; sh:property [ sh:description """ The target (rml:target) locates the output target. It is a URI that represents the target where it must export generated RDF triples @@ -105,23 +105,23 @@ """ ; sh:minCount 1 ; sh:name "rml:target" ; - sh:node ; + sh:node ; sh:nodeKind sh:BlankNodeOrIRI ; sh:path rml:target ] ; sh:targetClass rml:LogicalTarget ; sh:targetObjectsOf rml:logicalTarget . - a sh:NodeShape ; + a sh:NodeShape ; sh:description """ A source describes access to a data source. Any data access description is allowed, but rml:Source provides additional properties to complete such descriptions. """ ; sh:message """ - RMLIO Source accepts one or multiple rml:null, one rml:query, + RML Source accepts one or multiple rml:null, one rml:query, one rml:compression, and one rml:encoding. All of them are optional. """ ; - sh:name "RMLIO Source" ; + sh:name "RML Source" ; sh:property [ sh:datatype xsd:string ; sh:description """ rml:null specifies how NULL or empty values are exposed by the data @@ -186,17 +186,17 @@ sh:targetClass rml:Source ; sh:targetObjectsOf rml:source . - a sh:NodeShape ; + a sh:NodeShape ; sh:description """ A target describes access to a data target. Any data access description is allowed, but rml:Target provides additional properties to complete such descriptions. """ ; sh:message """ - RMLIO Target accepts one rml:compression, and one rml:encoding. + RML Target accepts one rml:compression, and one rml:encoding. All of them are optional. """ ; - sh:name "RMLIO Target" ; + sh:name "RML Target" ; sh:property [ sh:description """ rml:compression specifies the compression algorithm to use when accessing the data target. By default, no compression is applied. diff --git a/shapes/logical_source.ttl b/shapes/logical_source.ttl index 74715ea..4805399 100644 --- a/shapes/logical_source.ttl +++ b/shapes/logical_source.ttl @@ -3,22 +3,22 @@ # Copyright Dylan Van Assche, IDLab - UGent - imec (2020 - 2023) # ############################################################################### @prefix sh: . -@prefix schema: . +@prefix : . @prefix rdf: . @prefix rml: . @prefix xsd: . -schema:RMLIOLogicalSourceShape +:RMLLogicalSourceShape a sh:NodeShape ; sh:targetObjectsOf rml:logicalSource ; # Object of rml:TriplesMap sh:targetClass rml:LogicalSource ; # Used as a class # Already targets 'rml:logicalSource' - sh:name "RMLIO Logical Source" ; + sh:name "RML Logical Source" ; sh:description """ A logical source is any source that is mapped to RDF triples. """ ; sh:message """ - RMLIO Logical Source requires one rml:source and depending on the source + RML Logical Source requires one rml:source and depending on the source type: one rml:query, one rml:referenceFormulation and/or one rml:iterator. """ ; @@ -38,7 +38,7 @@ schema:RMLIOLogicalSourceShape sh:minCount 1 ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI; - sh:node schema:RMLIOSourceShape; + sh:node :RMLSourceShape; ] ; # rml:iterator diff --git a/shapes/logical_target.ttl b/shapes/logical_target.ttl index 8babf83..2f95985 100644 --- a/shapes/logical_target.ttl +++ b/shapes/logical_target.ttl @@ -3,23 +3,23 @@ # Copyright Dylan Van Assche, IDLab - UGent - imec (2023) # ############################################################################### @prefix sh: . -@prefix schema: . +@prefix : . @prefix rdf: . @prefix rml: . @prefix xsd: . -schema:RMLIOLogicalTargetShape +:RMLLogicalTargetShape a sh:NodeShape ; sh:targetObjectsOf rml:logicalTarget ; # Object of rml:TriplesMap sh:targetClass rml:LogicalTarget ; # Used as a class # Already targets 'rml:logicalTarget' - sh:name "RMLIO Logical Target" ; + sh:name "RML Logical Target" ; sh:description """ A logical target is any target to where generated RDF triples are exported to. """ ; sh:message """ - RMLIO Logical Target requires one rml:target. + RML Logical Target requires one rml:target. """ ; # rml:target @@ -38,6 +38,6 @@ schema:RMLIOLogicalTargetShape sh:minCount 1 ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI; - sh:node schema:RMLIOTargetShape; + sh:node :RMLTargetShape; ] ; . diff --git a/shapes/source.ttl b/shapes/source.ttl index 1b0a158..682e0ce 100644 --- a/shapes/source.ttl +++ b/shapes/source.ttl @@ -3,24 +3,24 @@ # Copyright Dylan Van Assche, IDLab - UGent - imec (2023) # ############################################################################### @prefix sh: . -@prefix schema: . +@prefix : . @prefix rdf: . @prefix rml: . @prefix xsd: . -schema:RMLIOSourceShape +:RMLSourceShape a sh:NodeShape ; sh:targetObjectsOf rml:source ; # Object of rml:LogicalSource sh:targetClass rml:Source ; # Used as a class # Already targets 'rml:source' - sh:name "RMLIO Source" ; + sh:name "RML Source" ; sh:description """ A source describes access to a data source. Any data access description is allowed, but rml:Source provides additional properties to complete such descriptions. """ ; sh:message """ - RMLIO Source accepts one or multiple rml:null, one rml:query, + RML Source accepts one or multiple rml:null, one rml:query, one rml:compression, and one rml:encoding. All of them are optional. """ ; diff --git a/shapes/target.ttl b/shapes/target.ttl index 22e77d7..95e22f3 100644 --- a/shapes/target.ttl +++ b/shapes/target.ttl @@ -3,24 +3,24 @@ # Copyright Dylan Van Assche, IDLab - UGent - imec (2023) # ############################################################################### @prefix sh: . -@prefix schema: . +@prefix : . @prefix rdf: . @prefix rml: . @prefix xsd: . -schema:RMLIOTargetShape +:RMLTargetShape a sh:NodeShape ; sh:targetObjectsOf rml:target ; # Object of rml:LogicalTarget sh:targetClass rml:Target ; # Used as a class # Already targets 'rml:target' - sh:name "RMLIO Target" ; + sh:name "RML Target" ; sh:description """ A target describes access to a data target. Any data access description is allowed, but rml:Target provides additional properties to complete such descriptions. """ ; sh:message """ - RMLIO Target accepts one rml:compression, and one rml:encoding. + RML Target accepts one rml:compression, and one rml:encoding. All of them are optional. """ ; diff --git a/spec/dev.html b/spec/dev.html index cbb3a48..62fa7f2 100644 --- a/spec/dev.html +++ b/spec/dev.html @@ -1,7 +1,7 @@ - Source & Target + RML-IO @@ -299,21 +299,11 @@ // !!!! IMPORTANT !!!! MAKE THE ABOVE BLINK IN YOUR HEAD }; - -
-
-

- This is an early draft, - yet efforts are made to keep things stable. -

-
+
diff --git a/spec/docs/20230509/index.html b/spec/docs/20230509/index.html new file mode 100644 index 0000000..34d50e1 --- /dev/null +++ b/spec/docs/20230509/index.html @@ -0,0 +1,3572 @@ + + + + + + +RML-IO + + + + + + + + + + + + + + +
+ +

RML-IO

+

+ Draft Community Group Report + +

+
+ +
Latest published version:
+ https://www.w3.org/rml-io/ +
+
Latest editor's draft:
https://w3id.org/rml/io/spec
+ + + + +
Editors:
+ (IDLab – Ghent University – imec) +
+ (KU Leuven, Department of Computer Science) +
+ + + +
+ + +
+
+

Abstract

This document describes Logical Source and Logical Target +to access data sources and targets.

+

A Logical Source is a formal model and common representation +for describing access to data sources. +A Logical Target is +a formal model and a common representation +for specifying how a Knowledge Graph should be exported to a given target.

+

Logical Source and Logical Target reuses existing data access descriptions +and is therefore not limited to a specific set of targets or data sources. +The current document describes the Logical Source and Logical Target concepts +through definitions and examples.

+

The version of this document is DRAFT.

+
+ +

Status of This Document

+ This specification was published by the + Knowledge Graph Construction Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

+ +

1. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

+ The key words MAY, MUST, and MUST NOT in this document + are to be interpreted as described in + BCP 14 + [RFC2119] [RFC8174] + when, and only when, they appear in all capitals, as shown here. +

+ +

2. Overview

This section is non-normative.

+

This document specifies Logical Source and Logical Target, +Logical Source is a description +for specifying how a data source should be accessed. +A Logical Source description is not limited to a specific Source +which allows to access any type of Source and provides a reference formulation +to refer to data inside the Source.

+

Logical Target is +a description for defining how a generated +RDF [RDF-Concepts] +knowledge graph must be exported. +A Logical Target description is not tailored towards a specific Target +which allows to export the generated RDF triples to any type of Target +and provides fine-grained control over where each RDF triple is exported to.

+

Logical Source and Logical Target leverage +the access descriptions of data access +such as DCAT [DCAT], VoID [VoID], SD [SD], etc.

+

In this document, examples assume +the following namespace prefix bindings unless otherwise stated:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PrefixNamespace
rmlhttp://w3id.org/rml/
formatshttps://www.w3.org/ns/formats/
voidhttp://rdfs.org/ns/void#
sdhttp://www.w3.org/ns/sparql-service-description#
dcathttp://www.w3.org/ns/dcat#
tdhttps://www.w3.org/2019/wot/td#
hctlhttps://www.w3.org/2019/wot/hypermedia#
htvhttp://www.w3.org/2011/http#
+

The examples are contained in pink colored boxes:

+
# This box contains the example's Logical Source description.
+ +
# This box contains the example's Logical Target description.
+ + +

3. Logical Source vocabulary

The LogicalSource vocabulary namespace is http://w3id.org/rml/ +and it's prefix is rml.

+

The Logical Source vocabulary consists of 2 classes:

+
    +
  1. rml:LogicalSource describes how data of a source can be referenced.
  2. +
  3. rml:Source describes how a source can be accessed, it is part of a rml:LogicalSource.
  4. +
+

3.1 Defining Logical Sources

A Logical Source is any data source providing data to be mapped to RDF triples.

+

A Logical Source (rml:LogicalSource) MUST contains the following properties:

+
    +
  • The source (rml:source) specifies how a source is accessed through a rml:Source.
  • +
  • The reference formulation (rml:referenceFormulation) +defines the reference formulation used to refer to the elements +of a data source. +The reference formulation must be specified in the case of databases, +CSV, TSV, XML, and JSON data sources. +By default rml:SQL2008 for databases, ql:CSV for CSV and TSV data sources. +XPath for XML and JSONPath for JSON and JSONL data sources.
  • +
+

The following properties MAY be specified in a Logical Source:

+
    +
  • The logical iterator (rml:iterator) +defines the iteration loop used to map the data of the input source. +The iterator defines how to refer to any of the following:
      +
    • a row in the case of databases, CSV or TSV data sources
    • +
    • a repetition pattern expressed as an element in the case of XML documents,
    • +
    • a repetition pattern expressed as an object in the case + of a JSON data sources.
    • +
    • etc...
    • +
    +
  • +
+

By default, the iterator is considered a row, if not specified:

+
    +
  • In the case of databases, CSV or TSV data sources, the value of + rml:iterator is considered a "row" and must not be specified.
  • +
  • In the case of XML and JSON data sources, it is a valid reference + to an element or an object respectively considering the reference + formulation specified.
  • +
+

The Logical Source definition requires only the source (rml:source) +to be specified, all other properties are optional. +If a property is specified, it MUST NOT be specified multiple times.

+ + + + + + + + + + + + + + + + + + + + + + + +
PropertyDomainRange
rml:sourcerml:LogicalSourceIRI
rml:referenceFormulationrml:LogicalSourceql:ReferenceFormulation
rml:iteratorrml:LogicalSourceLiteral
+
+ Logical Source structure +
Figure 1 The structure of Logical Source
+
+ +

3.1.1 Reference formulations

+

Each Logical Source has a reference formulation to define how to reference +to elements of the data of the input source. +Several reference formulations (rml:ReferenceFormulation) +are defined in this specification:

+
    +
  • rml:SQL2008: SQL 2008 standard for relational databases
  • +
  • ql:CSV: CSV or TSV data sources
  • +
  • ql:JSONPath: JSON documents
  • +
  • ql:XPath: XML documents, a shortcut for ql:XPathReferenceFormulation +with default parameters
  • +
  • ql:XPathReferenceFormulation: XML documents with optionally +the definition of XML namespaces used in references. +By default, no namespaces are defined.
  • +
+

ql:XPathReferenceFormulation may specify zero or more +ql:namespace properties with a ql:Namespace. +A ql:Namespace contains the following required properties:

+
    +
  • ql:namespacePrefix: A Literal with the prefix used for the XML namespace.
  • +
  • ql:namespaceURL: A Literal with the URL identifying the XML namespace.
  • +
+
<#XMLNamespace> a rml:LogicalSource;
+     rml:source [ a rml:Source, dcat:Distribution;
+         dcat:accessURL <file:///path/to/data.xml>;
+     ];
+     rml:referenceFormulation [ a ql:XPathReferenceFormulation;
+       ql:namespace [ a ql:Namespace;
+         ql:namespacePrefix "ex";
+         ql:namespaceURL "http://example.org";
+       ];
+     ];
+     rml:iterator "/xpath/ex:namespace/expression";
+.
+ +

Since rml:source is open to any IRI, you can implement your own source access +description for sources that are not covered by existing vocabularies such as +paginated Web APIs which implement pagination in a Web API specific way.

+

3.2 Source

+

A Source (rml:Source) defines how a data source should be accessed. +It complements other source descriptions +such as SD Service, CSVW Table, DCAT Distribution, etc. +to support encoding, null values, compression, and other access properties. +The properties of a Source take precedence over the properties of other source +descriptions, for example: rml:encoding takes precedence over csvw:encoding +if both are specific.

+

Optionally, the following properties MAY be specified:

+
    +
  • rml:encoding specifies the encoding of the data inside the source. +Defaults to rml:UTF-8 if not specified.
  • +
  • rml:null describes which data values inside the source +should be considered as NULL. +Defaults to the default NULL character if available. +If none is available such as CSV, no values are considered NULL, +unless specified. +Example: CSV does not have a default NULL character, +so no value is considered NULL. +However, JSON has a NULL character specified: null, +this one is used together with the ones specified through rml:null.
  • +
  • rml:compression specifies if the source is compressed +and the used compression algorithm. Defaults to no compression.
  • +
  • rml:query defines which query should be applied on the source +during access. Example: SPARQL query for a SPARQL endpoint or a SQL query +for a relational database. Defaults to an empty string. +This property is a broader version of rml:sqlQuery. +A whole table or view of a relational database can be specified +through a SELECT * FROM {table} query (rml:tableName compatibility).
  • +
+
<#JSON> a rml:LogicalSource;
+     rml:source [ a rml:Source, dcat:Distribution
+       dcat:accessURL <file:///path/to/data.json.gz>;
+       rml:null ""; # empty string as NULL besides default null character
+       rml:compression rml:gzip; # GZip compression
+       rml:encoding rml:UTF-16; # UTF-16 encoding
+     ];
+     rml:referenceFormulation ql:JSONPath;
+     rml:iterator "$.jsonpath.expression";
+.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDomainRange
rml:encodingrml:Sourcerml:Encoding
rml:nullrml:SourceLiteral
rml:compressionrml:Sourcerml:Compression
rml:queryrml:SourceLiteral
+

3.2.1 NULL values

+

Each Source MAY describe the values that should be considered as NULL +with rml:null, similar to NULL in relational databases. +By default, standardized NULL values are always considered, +but additional ones can be specified. Multiple NULL values are allowed. +For example, in relational databases NULL is always considered as a NULL +value while also an empty column can be considered as a NULL value by +specifying it through rml:null in a Source.

+

3.2.2 Query

+

Each Source MAY specify a query to apply when accessing the source +with rml:query.

+

This property is under review in +Issue 28.

+

3.2.3 Compression formats

+

Each Source MAY specify the compression with rml:compression +to apply when exporting RDF triples to a Source for saving storage space. +Several compression formats are specified by the comp namespace:

+
    +
  • rml:none: No compression is applied
  • +
  • rml:gzip: GZip compression
  • +
  • rml:zip: Zip archive with Zip compression
  • +
  • rml:tarXz: Tar archive with Xz compression
  • +
  • rml:tarGz: Tar archive with GZip compression
  • +
+

If unspecified, the default value is no compression. +This namespace is NOT limited to the listed compression formats +and MAY be extended in the future.

+

3.2.4 Encoding formats

+

Each Source MAY describe the encoding format to use when exporting +RDF triples to a Source. Several encoding formats are defined by the enc +namesapce:

+
    +
  • rml:UTF-8: UTF-8 encoding
  • +
  • rml:UTF-16: UTF-16 encoding
  • +
+

If unspecified, the default value is UTF-8. +This namespace is NOT limited to the listed compression formats +and MAY be extended in the future.

+

3.3 Examples

The following example show a Source of an CSV file.

+
<#CSV> a rml:LogicalSource;
+     rml:source [ a rml:Source, a csvw:Table
+        csvw:url "/path/to/data.csv";
+        rml:null "NULL";
+        rml:null "";
+     ];
+     rml:referenceFormulation ql:CSV;
+.
+ +

Note that there is no rml:iterator present because its default is row. +This particular CSV file has 2 different ways to specify a NULL value: NULL +or an empty value. Implementations need to check if a value is equal to one of +the values defined by rml:null to check for NULL values in the data.

+

The following example shows a Source specified for a MySQL database querying +the student table. The database username and password are provided as well.

+
<#RDB> a rml:LogicalSource;
+    rml:source [ a rml:Source, d2rq:Database;
+        d2rq:jdbcDSN "jdbc:mysql://localhost/example";
+        d2rq:jdbcDriver "com.mysql.jdbc.Driver";
+        d2rq:username "user";
+        d2rq:password "password";
+        rml:query "SELECT * FROM student;";
+        rml:referenceFormulation rml:SQL2008;
+    ];
+.
+ +

Note that there is no rml:iterator present because its default is row.

+

The following example shows a Source of a +XML file with no compression.

+
<#XML> a rml:LogicalSource;
+    rml:source [ a rml:Source, dcat:Distribution;
+        dcat:accessURL <file:///path/to/data.xml>;
+    ];
+    rml:referenceFormulation ql:XPath;
+    rml:iterator "/xpath/iterator/expression";
+.
+ +

The following example is GZip compressed JSON file as Source:

+
<#JSON> a rml:LogicalSource;
+    rml:source [ a rml:Source, dcat:Distribution;
+        dcat:accessURL <file:///path/to/data.json.gz>;
+        rml:compression rml:gzip;
+     ];
+     rml:referenceFormulation ql:JSONPath;
+     rml:iterator "$.jsonpath.expression";
+.
+ +

Sources can also describe access to SPARQL endpoints with the +W3C Service Description ontology. SPARQL endpoints need a SPARQL query, +specified by rml:query.

+
<#SPARQLEndpoint> a rml:LogicalSource;
+    rml:source [ a rml:Source, sd:Service;
+        sd:endpoint  <http://example.com/sparql>;
+        sd:supportedLanguage sd:SPARQL11Query;
+        rml:query "CONSTRUCT WHERE { ?s ?p ?o. } LIMIT 100";
+    ];
+.
+ +

Web APIs and streams are supported through the W3C Web of Things ontologies:

+
    +
  • HTTP Web API
  • +
  • MQTT streams
  • +
  • CoAP
  • +
  • Kafka
  • +
  • HTTP Server Sent Events
  • +
+

The following example is a HTTP JSON Web API with a HTTP header User Agent +set to 'Processor':

+
<#HTTPWebAPI> a rml:LogicalSource;
+    rml:source [ a rml:Source, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "http://localhost:4242/";
+                hctl:forContentType "application/json";
+                # Set HTTP method and headers through W3C WoT Binding Template for HTTP
+                htv:methodName "GET";
+                htv:headers ([
+                    htv:fieldName "User-Agent";
+                    htv:fieldValue "Processor";
+                ]);
+            ];
+        ];
+    ];
+    rml:referenceFormulation ql:JSONPath;
+    rml:iterator "$.jsonpath";
+.
+ +

The following example shows a Source of a +HTTP Server Sent Events stream in XML format without compression:

+
<#HTTPSSEStream> a rml:LogicalSource;
+    rml:source [ a rml:Source, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "http://localhost:4242/";
+                hctl:forContentType "text/event-stream";
+            ];
+        ];
+    ];
+    rml:referenceFormulation ql:XPath;
+    rml:iterator "/my/xpath";
+.
+ +

The following example shows a Source of a +MQTT stream in JSON format without compression:

+
<#MQTTStream> a rml:LogicalSource;
+    rml:source [ a rml:Source, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "mqtt://localhost/topic";
+                hctl:forContentType "application/json";
+                # Set MQTT parameters through W3C WoT Binding Template for MQTT
+                mqv:controlPacketValue "SUBSCRIBE";
+                mqv:options ([ mqv:optionName "qos"; mqv:optionValue "1" ] [ mqv:optionName "dup" ]);
+            ];
+        ];
+    ];
+    rml:referenceFormulation ql:JSONPath;
+    rml:iterator "$.jsonpath";
+.
+ +

The following example shows a Source of a +TCP stream in JSON format without compression:

+
<#TCPStream> a rml:LogicalSource;
+    rml:source [ a rml:Source, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "tcp://localhost:1234/topic";
+                hctl:forContentType "application/json";
+            ];
+        ];
+    ];
+    rml:referenceFormulation ql:JSONPath;
+    rml:iterator "$.jsonpath";
+.
+ +

The following example shows a Source of a +Kafka stream in XML format without compression:

+
<#KafkaStream> a rml:LogicalSource;
+    rml:source [ a rml:Source, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "kafka://localhost:8089/topic";
+                hctl:forContentType "application/xml";
+                # Kafka parameters through W3C WoT Binding Template for Kafka
+                kafka:groupId "MyAwesomeGroup";
+            ];
+        ];
+    ];
+    rml:referenceFormulation ql:XPath;
+    rml:iterator "/my/xpath";
+.
+ +

4. Logical Target vocabulary

The LogicalTarget vocabulary namespace is http://w3id.org/rml/ +and it's prefix is rml.

+

The LogicalTarget vocabulary consists of rml:LogicalTarget and rml:Target +classes to describe how a knowledge graph must be exported after generation.

+

4.1 Defining Logical Targets

A Logical Target is any target to where RDF triples are exported to.

+ + + + + + + + + + + + + +
PropertyDomainRange
rml:targetrml:LogicalTargetTarget
+
    +
  • The target access description (rml:target) MUST specify how to access +the target through an rml:Target. +The Target definition requires only the target (rml:target) to be specified, +all other properties are optional.
  • +
+

4.2 Target

+

A Target describes how a target must be accessed when exporting RDF triples. +An external vocabulary such as DCAT, VoID, SD is allowed here. +If a target cannot be accessed with existing vocabulary, a custom vocabulary +can be used, for example: handling an authentication flow may be specific +for that specific target. A custom ontology can be used here to describe +this authentication flow.

+

A Target (rml:Target) MAY contain the following properties:

+
    +
  • The serialization format (rml:serialization) MAY specify +the serialization format for exporting a knowledge graph. +The serialization format is described using the W3C +formats namespace. +By default, the serialization format is N-Quads [N-Quads].
  • +
  • The compression algorithm (rml:compression) MAY describe +the compression algorithm to apply when exporting a knowledge graph. +By default, no compression is applied.
  • +
  • The encoding (rml:encoding) MAY specify which encoding must be used +when exporting a knowledge graph. +By default, UTF-8 is used.
  • +
+ + + + + + + + + + + + + + + + + + + + + + + +
PropertyDomainRange
rml:serializationrml:LogicalTargetformats:Format
rml:compressionrml:LogicalTargetrml:Compression
rml:encodingrml:LogicalTargetrml:Encoding
+
+ Logical Target structure +
Figure 2 The structure of Logical Target
+
+ +

4.2.1 Serialization formats

+

Each Target MAY describe the serialization format +with rml:serialization to use when exporting RDF triples to a Target. +The possible formats are defined in the W3C +formats namespace +such as N-Quads, N-Triples, JSON-LD, Turtle, etc. +If unspecified, the default format is N-Quads [N-Quads].

+

4.2.2 Compression formats

+

Each Target MAY specify the compression with rml:compression +to apply when exporting RDF triples to a Target for saving storage space. +Several compression formats are specified by the comp namespace:

+
    +
  • rml:none: No compression is applied
  • +
  • rml:gzip: GZip compression
  • +
  • rml:zip: Zip archive with Zip compression
  • +
  • rml:tarXz: Tar archive with Xz compression
  • +
  • rml:tarGz: Tar archive with GZip compression
  • +
+

If unspecified, the default value is no compression. +This namespace is NOT limited to the listed compression formats +and MAY be extended in the future.

+

4.2.3 Encoding formats

+

Each Target MAY describe the encoding format to use when exporting +RDF triples to a Target. Several encoding formats are defined by the enc +namesapce:

+
    +
  • rml:UTF-8: UTF-8 encoding
  • +
  • rml:UTF-16: UTF-16 encoding
  • +
+

If unspecified, the default value is UTF-8. +This namespace is NOT limited to the listed compression formats +and MAY be extended in the future.

+

4.3 Examples

The following example show a Target of an RDF dump in Turtle [Turtle] +format with GZip compression and UTF-8 encoding:

+
<#VoIDDump> a rml:LogicalTarget;
+    rml:target [ a rml:Target, void:Dataset;
+        void:dataDump <file:///data/dump.ttl>;
+        rml:compression rml:gzip;
+        rml:encoding rml:UTF-8;
+    ];
+    rml:serialization formats:Turtle;
+.
+ +

The following example shows a Target of a [SPARQL] +endpoint with SPARQL UPDATE:

+
<#SPARQLEndpoint> a rml:LogicalTarget;
+    rml:target [ a rml:Target, sd:Service;
+        sd:endpoint  <http://example.com/sparql-update>;
+        sd:supportedLanguage sd:SPARQL11Update ;
+    ];
+.
+ +

The following example shows a Target of a +DCAT dataset in N-Quads format with Zip compression:

+
<#DCATDump> a rml:LogicalTarget;
+    rml:target [ a rml:Target, dcat:Distribution;
+        dcat:accessURL <http://example.org/dcat-access-url>;
+        rml:compression rml:zip;
+    ];
+    rml:serialization formats:N-Quads;
+.
+ +

The following example shows a Target of a +MQTT stream in N-Quads format without compression:

+
<#MQTTStream> a rml:LogicalTarget;
+    rml:target [ a rml:Target, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "mqtt://localhost/topic";
+                hctl:forContentType "application/n-quads";
+                # Set MQTT parameters through W3C WoT Binding Template for MQTT
+                mqv:controlPacketValue "SUBSCRIBE";
+                mqv:options ([ mqv:optionName "qos"; mqv:optionValue "1" ] [ mqv:optionName "dup" ]);
+            ];
+        ];
+    ];
+    rml:serialization formats:N-Quads;
+.
+ +

The following example shows a Target of a +TCP stream in N-Quads format without compression:

+
<#TCPStream> a rml:LogicalTarget;
+    rml:target [ a rml:Target, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "tcp://localhost:1234/topic";
+                hctl:forContentType "application/n-quads";
+            ];
+        ];
+    ];
+    rml:serialization formats:N-Quads;
+.
+ +

The following example shows a Target of a +Kafka stream in N-Quads format without compression:

+
<#KafkaStream> a rml:LogicalTarget;
+    rml:target [ a rml:Target, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "kafka://localhost:8089/topic";
+                hctl:forContentType "application/n-quads";
+                # Kafka parameters through W3C WoT Binding Template for Kafka
+                kafka:groupId "MyAwesomeGroup";
+            ];
+        ];
+    ];
+    rml:serialization formats:N-Quads;
+.
+ +

The following example shows a Target of a +HTTP Web API in N-Quads format without compression and +the User Agent HTTP header set to 'Processor':

+
<#HTTPWebAPI> a rml:LogicalTarget;
+    rml:target [ a rml:Target, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "http://localhost:4242/";
+                hctl:forContentType "application/n-quads";
+                # Set HTTP method and headers through W3C WoT Binding Template for HTTP
+                htv:methodName "POST";
+                htv:headers ([
+                    htv:fieldName "User-Agent";
+                    htv:fieldValue "Processor";
+                ]);
+            ];
+        ];
+    ];
+    rml:serialization formats:N-Quads;
+.
+ +

The following example shows a Target of a +HTTP Server Sent Events stream in N-Quads format without compression:

+
<#HTTPSSEStream> a rml:LogicalTarget;
+    rml:target [ a rml:Target, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "http://localhost:4242/";
+                hctl:forContentType "text/event-stream";
+            ];
+        ];
+    ];
+    rml:serialization formats:N-Quads;
+.
+ +

The following example shows a Target of a +WebSocket in N-Quads format without compression:

+
<#HTTPSSEStream> a rml:LogicalTarget;
+    rml:target [ a rml:Target, td:Thing;
+        td:hasPropertyAffordance [
+            td:hasForm [
+                # URL and content type
+                hctl:hasTarget "ws://localhost:5555/";
+                hctl:forContentType "application/n-quads";
+            ];
+        ];
+    ];
+    rml:serialization formats:N-Quads;
+.
+ + +

5. Logical Source in RML

RML is aligned with the Logical Source vocabulary +by extending rml:TriplesMap with the rml:logicalSource property +to describe on Triples Map [RML] level where the data must be retrieved +from and where the references refer to. +A Triples Map is a function that generates an RDF triples +from a Subject Map and Predicate Object Maps [RML].

+

A Triples Map MUST contain exactly one rml:logicalSource property +to describe the data source that must be used by the Triples Map to generate +RDF triples.

+ + + + + + + + + + + + + +
PropertyDomainRange
rml:logicalSourcerml:TriplesMaprml:LogicalSource
+

In the example below, a CSV file is transformed into a knowledge graph. +The CSV file is accessed using the [CSVW] vocabulary, +transformed into a knowledge graph using [RML] mappings,

+
id;name;nickname
+0;Nathan Ford;Mastermind
+1;Sophie Devereaux;Grifter
+2;Eliot Spender;Hitter
+3;Parker;Thief
+4;Alec Hardison;Hacker
+ +
<#CSVSourceAccess> a rml:Source, csvw:Table;
+  csvw:url "https://rml.io/specs/rml-target/Leverage.csv";
+  csvw:dialect [ a csvw:Dialect;
+    csvw:delimiter ";";
+    csvw:encoding "UTF-8";
+    csvw:header "1"^^xsd:boolean;
+  ];
+.
+ +
@base <http://example.com/ns#> .
+
+<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#CSVSourceAccess>;
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.com/{id}";
+    rml:class foaf:Person;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname";
+    ];
+  ];
+.
+ +
<http://example.org/0> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Nathan Ford" _b0 .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Mastermind" _b0 .
+<http://example.org/1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Sophie Devereaux" _b0 .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Grifter" _b0 .
+<http://example.org/2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "Eliot Spencer" _b0 .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Hitter" _b0 .
+<http://example.org/3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Parker" _b0 .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Thief" _b0 .
+<http://example.org/4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/name> "Alec Hardison" _b0 .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/nickname> "Hacker" _b0 .
+ +

6. Logical Target in RML

RML is aligned with the Logical Target vocabulary +by extending rml:TermMap with the rml:logicalTarget property +to describe on Term Map [RML] level where each triple must be directed to. +A Term Map is a function that generates an RDF term +from a logical reference [RML]. +The result of that function is known as the term map's generated +RDF term [RDF-Concepts] +such as subjects, predicates, objects, named graphs and language tags.

+

A Term Map MAY also contain zero or more rml:logicalTarget properties +to export all triples containing the generated term to different targets. +The same Term Map can have multiple targets by specifying +multiple rml:logicalTarget properties in the Term Map.

+

Multiple Logical Targets MAY be combined by specifying multiple Logical Targets +in the same Term Map or multiple Term Maps of the same RDF triple +(Section 8. Combining multiple Targets). +Logical Targets MAY be overriden by using a separate Triples Map +or conditions [FnO] (Section 9. Overriding Targets).

+

If the mapping document contains no Targets, +the processor falls back to the default target, +as it is specified through the processor's +specific configuration file or command line parameters. +If a mapping document contains at least one Target, +the processor will export the triples to these Targets, +triples which do not have one or more Target(s) assigned, +are exported to the default target of the processor.

+ + + + + + + + + + + + + +
PropertyDomainRange
rml:logicalTargetrml:TermMaprml:LogicalTarget
+

In the example below, a CSV file is transformed into a knowledge graph. +The CSV file is accessed using the [CSVW] vocabulary, +transformed into a knowledge graph using [RML] mappings, +and exported to two Logical Targets, which are accessed through the [VoID] +vocabulary. +The knowledge graph is exported as N-Quads to the first Target, +and as Turtle to the second Target. +The Turtle file of the second Target is also compressed using the Zip +compression algorithm.

+
id;name;nickname
+0;Nathan Ford;Mastermind
+1;Sophie Devereaux;Grifter
+2;Eliot Spender;Hitter
+3;Parker;Thief
+4;Alec Hardison;Hacker
+ +
<#CSVSourceAccess> a csvw:Table;
+  csvw:url "https://rml.io/specs/rml-target/Leverage.csv";
+  csvw:dialect [ a csvw:Dialect;
+    csvw:delimiter ";";
+    csvw:encoding "UTF-8";
+    csvw:header "1"^^xsd:boolean;
+  ];
+.
+ +
@base <http://example.com/ns#> .
+
+<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#CSVSourceAccess>;
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.com/{id}";
+    rml:logicalTarget <#TargetDump1>;
+    rml:class foaf:Person;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+      rml:logicalTarget <#TargetDump2>;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump2>;
+  rml:serialization formats:Turtle;
+.
+ +
<#VoIDDump1> a void:Dataset;
+  void:dataDump <file:///data/dump1.nt>;
+.
+
+<#VoIDDump2> a void:Dataset;
+  void:dataDump <file:///data/dump2.ttl.zip>;
+  rml:compression rml:zip;
+.
+ +
# file:///data/dump1.nq
+<http://example.org/0> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Nathan Ford" _b0 .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Mastermind" _b0 .
+<http://example.org/1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Sophie Devereaux" _b0 .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Grifter" _b0 .
+<http://example.org/2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "Eliot Spencer" _b0 .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Hitter" _b0 .
+<http://example.org/3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Parker" _b0 .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Thief" _b0 .
+<http://example.org/4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> _b0 .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/name> "Alec Hardison" _b0 .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/nickname> "Hacker" _b0 .
+
+# file:///data/dump2.ttl.zip
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+
+<http://example.org/0>
+  foaf:name "Nathan Ford";
+.
+<http://example.org/1>
+  foaf:name "Sophie Devereaux";
+.
+<http://example.org/2>
+  foaf:name "Eliot Spencer";
+.
+<http://example.org/3>
+  foaf:name "Parker";
+.
+<http://example.org/4>
+  foaf:name "Alec Hardison";
+.
+ + +

7. Single targets

In the following examples, the RDF triples are exported to a single Target. +In some examples, not all RDF triples have a dedicated Target assigned, +therefore, they will be exported to the default Target of the processor.

+

7.1 Subject Map

All triples containing the generated subject are exported +to the specified targets in the Subject Map [RML].

+

The following example exports all triples containing +the generated subject http://example.org/{id} +to an RDF dump with N-Quads as serialization format and GZip compression:

+
[
+  { 
+    "id": 0,
+    "name": "Monica Geller",
+    "age": 33
+  },
+  { 
+    "id": 1,
+    "name": "Rachel Green",
+    "age": 34
+  },
+  { 
+    "id": 2,
+    "name": "Joey Tribbiani",
+    "age": 35
+  },
+  { 
+    "id": 3,
+    "name": "Chandler Bing",
+    "age": 36
+  },
+  { 
+    "id": 4,
+    "name": "Ross Geller",
+    "age": 37
+  }
+]
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Friends.json";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation ql:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{id}";
+    rml:logicalTarget <#TargetDump1>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:age;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "age";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Quads;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump1.nq.gz>;
+  rml:compression rml:gzip;
+.
+ +
<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Monica Geller" .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/age> "33" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Rachel Green" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/age> "34" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "Joey Tribbiani" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/age> "35" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Chandler Bing" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/age> "36" .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/name> "Ross Geller" .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/age> "37" .
+ +

7.2 Predicate Map

All triples containing the generated predicate are exported +to the specified targets in the Predicate Map [RML].

+

The following example exports all triples containing +the generated predicate foaf:name to an RDF dump +with Turtle as serialization format and Zip compression:

+
[
+  { 
+    "id": 0,
+    "name": "Monica Geller",
+    "age": 33
+  },
+  { 
+    "id": 1,
+    "name": "Rachel Green",
+    "age": 34
+  },
+  { 
+    "id": 2,
+    "name": "Joey Tribbiani",
+    "age": 35
+  },
+  { 
+    "id": 3,
+    "name": "Chandler Bing",
+    "age": 36
+  },
+  { 
+    "id": 4,
+    "name": "Ross Geller",
+    "age": 37
+  }
+]
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Friends.json";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation ql:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+      rml:logicalTarget <#TargetDump1>;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:age;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "age";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:Turtle;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.ttl.zip>;
+  rml:compression rml:zip;
+.
+ +
# file:///data/dump1.ttl.zip
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@base <http://example.com/ns#> .
+
+<http://example.org/0>
+  foaf:name "Monica Geller";
+.
+<http://example.org/1>
+  foaf:name "Rachel Green";
+.
+<http://example.org/2>
+  foaf:name "Joey Tribbiani";
+.
+<http://example.org/3>
+  foaf:name "Chandler Bing";
+.
+<http://example.org/4>
+  foaf:name "Ross Geller";
+.
+
+# default target of the processor
+<http://example.org/0> <http://xmlns.com/foaf/0.1/age> "33" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/age> "34" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/age> "35" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/age> "36" .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/age> "37" .
+ +

7.3 Object Map

All triples containing the generated object are exported +to the specified targets in the Object Map [RML].

+

The following example exports all triples containing +the generated object from the reference name to an RDF dump +with N-Triples as serialization format:

+
[
+  { 
+    "id": 0,
+    "name": "Monica Geller",
+    "age": 33
+  },
+  { 
+    "id": 1,
+    "name": "Rachel Green",
+    "age": 34
+  },
+  { 
+    "id": 2,
+    "name": "Joey Tribbiani",
+    "age": 35
+  },
+  { 
+    "id": 3,
+    "name": "Chandler Bing",
+    "age": 36
+  },
+  { 
+    "id": 4,
+    "name": "Ross Geller",
+    "age": 37
+  }
+]
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Friends.json";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation ql:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+      rml:logicalTarget <#TargetDump1>;
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:age;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "age";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump1.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Monica Geller" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Rachel Green" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "Joey Tribbiani" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Chandler Bing" .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/name> "Ross Geller" .
+
+# default target of the processor
+<http://example.org/0> <http://xmlns.com/foaf/0.1/age> "33" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/age> "34" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/age> "35" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/age> "36" .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/age> "37" .
+ +

7.4 Graph Map

All triples within a named graph are exported to the specified targets +in the Graph Map [RML]. +The named graph influences to where the named graph's triples +may be exported to as the Target's serialization format must +support named graphs such as N-Quads, JSON-LD or TriG. +When a Target contains a serialization format +which does not support named graphs and a Graph Map is used, +the mapping is considered invalid. +If a named graph is spread over multiple targets, +all targets must be combined to access the complete named graph. +In case RDF triples are not within a specific named graph, +they are added to the default graph as specified +by the [R2RML] specification.

+

The following example exports all triples in the named graph ex:Friends +to an RDF dump with N-Quads as serialization format:

+
[
+  { 
+    "id": 0,
+    "name": "Monica Geller",
+    "age": 33
+  },
+  { 
+    "id": 1,
+    "name": "Rachel Green",
+    "age": 34
+  },
+  { 
+    "id": 2,
+    "name": "Joey Tribbiani",
+    "age": 35
+  },
+  { 
+    "id": 3,
+    "name": "Chandler Bing",
+    "age": 36
+  },
+  { 
+    "id": 4,
+    "name": "Ross Geller",
+    "age": 37
+  }
+]
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Friends.json";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation ql:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{id}";
+    rml:graphMap [
+      rml:logicalTarget <#TargetDump1>;
+      rml:constant ex:Friends;
+    ];
+   ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:age;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "age";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump1.nq>;
+.
+ +
# file:///data/dump1.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/age> "33" <http://example.org/Friends> .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/age> "33" <http://example.org/Friends> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/age> "34" <http://example.org/Friends> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/age> "34" <http://example.org/Friends> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/age> "35" <http://example.org/Friends> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/age> "35" <http://example.org/Friends> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/age> "36" <http://example.org/Friends> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/age> "36" <http://example.org/Friends> .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/age> "37" <http://example.org/Friends> .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/age> "37" <http://example.org/Friends> .
+ +

7.5 Language Map

All triples with a language tag are exported to the specified targets +in the Language Map [RML].

+

The following examples export all triples with a language tag +to a RDF dump with N-Triples as serialization format:

+
[
+  { 
+    "id": 0,
+    "name": "Monica Geller",
+    "age": 33
+  },
+  { 
+    "id": 1,
+    "name": "Rachel Green",
+    "age": 34
+  },
+  { 
+    "id": 2,
+    "name": "Joey Tribbiani",
+    "age": 35
+  },
+  { 
+    "id": 3,
+    "name": "Chandler Bing",
+    "age": 36
+  },
+  { 
+    "id": 4,
+    "name": "Ross Geller",
+    "age": 37
+  }
+]
+ +
<#DCATSourceAccess> a rml:Source, dcat:Dataset;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Friends.json";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation ql:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{id}";
+   ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+      rml:languageMap [
+        rml:logicalTarget <#TargetDump1>;
+        rml:constant "en";
+      ];
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:age;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "age";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump1.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Monica Geller"@en .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Rachel Green"@en .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "Joey Tribbiani"@en .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Chandler Bing"@en .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/name> "Ross Geller"@en .
+
+# default target of the processor
+<http://example.org/0> <http://xmlns.com/foaf/0.1/age> "33" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/age> "34" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/age> "35" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/age> "36" .
+<http://example.org/4> <http://xmlns.com/foaf/0.1/age> "37" .
+ +

8. Combining multiple Targets

Multiple Targets MAY be specified for the same triple +in the same or multiple Term Maps. +If multiple Targets are defined in the same Term Map, +all triples containing the generated Term are exported +to all the specified Targets. +In case multiple Term Maps of the same RDF triple contain more than one Target, +the generated triples are exported to all the specified Targets. +If multiple Term Maps of an RDF triple refer multiple times to the same Target, +the RDF triple is written only once to the target to avoid duplicates.

+

8.1 Multiple Targets in the same Term Map

All triples are exported to all Targets, if the Term Map contains multiple +Targets. In the example a Subject Map has three specified Targets, +all triples with the subject http://example.org/{@id} are exported +to the three specified Targets:

+
    +
  • Target 1: /data/dump.nt.zip, N-Triples serialization, Zip compression
  • +
  • Target 2: /data/dump.jsonld.tar.xz, JSON-LD serialization, TarXz compression
  • +
  • Target 3: /data/dump.rdf.tar.gzip, RDF/XML serialization, TarGZip compression
  • +
+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+    rml:logicalTarget <#TargetDump1>;
+    rml:logicalTarget <#TargetDump2>;
+    rml:logicalTarget <#TargetDump3>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:JSON-LD;
+.
+<#TargetDump3> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:RDF_XML;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nt.zip>;
+  rml:compression rml:zip;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.jsonld.tar.xz>;
+  rml:compression rml:tarxz;
+.
+<#VoIDDump3> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump3.rdf.tar.gz>;
+  rml:compression rml:targzip;
+.
+ +
# file:///data/dump1.nt.zip
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+
+# file:///data/dump2.jsonld.tar.xz
+[
+  {
+    "@id": "http://example.org/0",
+    "http://xmlns.com/foaf/0.1/name": [
+      {
+        "@value": "Kara Danvers"
+      }
+    ]
+  },
+  {
+    "@id": "http://example.org/1",
+    "http://xmlns.com/foaf/0.1/name": [
+      {
+        "@value": "Alex Danvers"
+      }
+    ]
+  },
+  {
+    "@id": "http://example.org/2",
+    "http://xmlns.com/foaf/0.1/name": [
+      {
+        "@value": "J'onn J'onzz"
+      }
+    ]
+  },
+  {
+    "@id": "http://example.org/3",
+    "http://xmlns.com/foaf/0.1/name": [
+      {
+        "@value": "Nia Nal"
+      }
+    ]
+  }
+]
+
+# file:///data/dump3.rdf.tar.gz
+<?xml version="1.0" encoding="utf-8" ?>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns:foaf="http://xmlns.com/foaf/0.1/">
+  <rdf:Description rdf:about="http://example.org/0">
+    <foaf:name>Kara Danvers</foaf:name>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/1">
+    <foaf:name>Alex Danvers</foaf:name>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/2">
+    <foaf:name>J'onn J'onzz</foaf:name>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/3">
+    <foaf:name>Nia Nal</foaf:name>
+  </rdf:Description>
+</rdf:RDF>
+ +

8.2 Subject Map and Predicate Map

All triples containing the subject http://example.org/{id} +are exported to TargetDump1 +and all triples containing the predicate foaf:name +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+    rml:logicalTarget <#TargetDump1>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+      rml:logicalTarget <#TargetDump2>;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a void:Dataset ;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a void:Dataset ;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" .
+
+# file:///data/dump2.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+ +

8.3 Subject Map and Object Map

All triples containing the subject http://example.org/{id} +are exported to TargetDump1 +and all triples containing the object reference name/text() +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+    rml:logicalTarget <#TargetDump1>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+      rml:logicalTarget <#TargetDump2>;
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" .
+
+# file:///data/dump2.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+ +

8.4 Predicate Map and Object Map

All triples containing the predicate foaf:name +are exported to TargetDump1 +and all triples containing the object reference nickname/text() +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+      rml:logicalTarget <#TargetDump1>;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+      rml:logicalTarget <#TargetDump2>;
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+
+# file:///data/dump2.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+ +

8.5 Subject Map, Predicate Map and Object Map

All triples containing the subject http://example.org/{@id} +are exported to TargetDump1 +and all triples containing the object reference nickname/text() or +predicate foaf:nickname are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+    rml:logicalTarget <#TargetDump1>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+      rml:logicalTarget <#TargetDump2>;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+      rml:logicalTarget <#TargetDump2>;
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" .
+
+# file:///data/dump2.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+ +

8.6 Subject Map and Graph Map

All triples containing the subject http://example.org/{@id} +are exported to TargetDump1 +and all triples within the named graph ex:Characters +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+    rml:logicalTarget <#TargetDump1>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:graphMap [ a rml:GraphMap;
+      rml:logicalTarget <#TargetDump2>;
+      rml:constant ex:Characters;
+    ];
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nq>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nq>;
+.
+ +
# file:///data/dump1.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" <http://example.org/Characters> .
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" _b0 .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" <http://example.org/Characters> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" _b0 .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" <http://example.org/Characters> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" _b0 .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" <http://example.org/Characters> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" _b0 .
+
+# file:///data/dump2.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" <http://example.org/Characters> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" <http://example.org/Characters> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" <http://example.org/Characters> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" <http://example.org/Characters> .
+ +

8.7 Predicate Map and Graph Map

All triples containing the predicate foaf:nickname +are exported to TargetDump1 +and all triples within the named graph ex:Characters +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:graphMap [ a rml:GraphMap;
+      rml:logicalTarget <#TargetDump2>;
+      rml:constant ex:Characters;
+    ];
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+      rml:logicalTarget <#TargetDump1>;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump1.nq>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump2.nq>;
+.
+ +
# file:///data/dump1.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" _b0 .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" _b0 .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" _b0 .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" _b0 .
+
+# file:///data/dump2.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" <http://example.org/Characters> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" <http://example.org/Characters> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" <http://example.org/Characters> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" <http://example.org/Characters> .
+ +

8.8 Object Map and Graph Map

All triples containing the object reference nickname/text() +are exported to TargetDump1 +and all triples within the named graph ex:Characters +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:graphMap [ a rml:GraphMap;
+      rml:logicalTarget <#TargetDump2>;
+      rml:constant ex:Characters;
+    ];
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+      rml:logicalTarget <#TargetDump1>;
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nq>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nq>;
+.
+ +
# file:///data/dump1.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" _b0 .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" _b0 .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" _b0 .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" _b0 .
+
+# file:///data/dump2.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" <http://example.org/Characters> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" <http://example.org/Characters> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" <http://example.org/Characters> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" <http://example.org/Characters> .
+ + +

8.9 Language Map and Graph Map

All triples containing the language tag en +are exported to TargetDump1 +and all triples within the named graph ex:Characters +are exported to TargetDump2. +The other triples are exported to the default target of the processor +as there is no dedicated Target assigned to triples containing +foaf:nickname as predicate.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:graphMap [ a rml:GraphMap;
+      rml:logicalTarget <#TargetDump2>;
+      rml:constant ex:Characters;
+    ];
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+      rml:languageMap [
+        rml:logicalTarget <#TargetDump1>;
+        rml:constant "en";
+      ];
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+      rml:logicalTarget <#TargetDump2>;
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers"@en <http://example.org/Characters> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers"@en <http://example.org/Characters> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz"@en <http://example.org/Characters> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal"@en <http://example.org/Characters> .
+
+# file:///data/dump2.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers"@en <http://example.org/Characters> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers"@en <http://example.org/Characters> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz"@en <http://example.org/Characters> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal"@en <http://example.org/Characters> .
+
+# default target of processor
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" _b0 .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" _b0 .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" _b0 .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" _b0 .
+ +

8.10 Language Map and Object Map

All triples containing the language tag en +are exported to TargetDump1 +and all triples containing the object reference nickname/text() +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+      rml:languageMap [
+        rml:logicalTarget <#TargetDump1>;
+        rml:constant "en";
+      ];
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+      rml:logicalTarget <#TargetDump2>;
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers"@en .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers"@en .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz"@en .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal"@en .
+
+# file:///data/dump2.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" .
+ +

8.11 Multiple Predicate Maps

All triples containing the predicate foaf:name +are exported to TargetDump1 +and all triples containing the predicate foaf:nickname +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+      rml:logicalTarget <#TargetDump1>;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+      rml:logicalTarget <#TargetDump2>;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+
+# file:///data/dump2.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" .
+ +

8.12 Multiple Object Maps

All triples containing the object reference name/text() +are exported to TargetDump1 +and all triples containing the object reference nickname/text() +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+      rml:logicalTarget <#TargetDump1>;
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+      rml:logicalTarget <#TargetDump2>;
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" .
+
+# file:///data/dump2.nt
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" .
+ +

8.13 Multiple Graph Maps

All triples within the named graph ex:Characters +are exported to TargetDump1 +and all triples within the named graph ex:NickNames +are exported to TargetDump2.

+
<Supergirl>
+  <Character id="0">
+    <name>Kara Danvers</name>
+    <nickname>Supergirl</nickname>
+  </Character>
+  <Character id="1">
+    <name>Alex Danvers</name>
+    <nickname>Sentinel</nickname>
+  </Character>
+  <Character id="2">
+    <name>J'onn J'onzz</name>
+    <nickname>Martian Manhunter</nickname>
+  </Character>
+  <Character id="3">
+    <name>Nia Nal</name>
+    <nickname>Dreamer</nickname>
+  </Character> 
+</Supergirl>
+ +
<#DCATSourceAccess> a rml:Source, dcat:Distribution;
+  dcat:downloadURL "https://rml.io/specs/rml-target/Supergirl.xml";
+.
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#DCATSourceAccess>;
+    rml:referenceFormulation rml:JSONPath;
+    rml:iterator "$.[*]";
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:template "http://example.org/{@id}";
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:graphMap [ a rml:GraphMap;
+      rml:logicalTarget <#TargetDump1>;
+      rml:constant ex:Characters;
+    ];
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name/text()";
+    ];
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:graphMap [ a rml:GraphMap;
+      rml:logicalTarget <#TargetDump2>;
+      rml:constant ex:NickNames;
+    ];
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:nickname;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "nickname/text()";
+    ];
+  ];
+.
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nq>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nq>;
+.
+ +
# file:///data/dump1.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/name> "Kara Danvers" <http://example.org/Characters> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/name> "Alex Danvers" <http://example.org/Characters> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/name> "J'onn J'onzz" <http://example.org/Characters> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/name> "Nia Nal" <http://example.org/Characters> .
+
+# file:///data/dump2.nq
+<http://example.org/0> <http://xmlns.com/foaf/0.1/nickname> "Supergirl" <http://example.org/Nicknames> .
+<http://example.org/1> <http://xmlns.com/foaf/0.1/nickname> "Sentinel" <http://example.org/Nicknames> .
+<http://example.org/2> <http://xmlns.com/foaf/0.1/nickname> "Martian Manhunter" <http://example.org/Nicknames> .
+<http://example.org/3> <http://xmlns.com/foaf/0.1/nickname> "Dreamer" <http://example.org/Nicknames> .
+ +

9. Overriding Targets

In some cases exporting all triples to a target is not desired, +therefore Targets can be overridden when needed +by either using a separate Triples Map which isolates certain triples or +by using FnO functions [FnO] as conditions.

+

9.1 Separate Triples Map

Triples can be exported to a specific Target while not to other Targets +by isolating these triples in a separate Triples Map.

+

In this example, the same subject and object are used in both Triples Maps, +but with a diffent predicate. The triples with the first predicate foaf:name +are exported to the first Target and the triples with the second predicate +schema:name to the second Target.

+
# Results of DBPedia SPARQL query
+actor,name,nickname
+http://dbpedia.org/resource/Kevin_Sussman,Kevin Sussman
+http://dbpedia.org/resource/Jim_Parsons,Jim Parsons
+http://dbpedia.org/resource/Kaley_Cuoco,Kaley Cuoco
+http://dbpedia.org/resource/Sara_Gilbert,Sara Gilbert
+http://dbpedia.org/resource/Kunal_Nayyar,Kunal Nayyar
+http://dbpedia.org/resource/Laura_Spencer_(actress),Laura Spencer
+http://dbpedia.org/resource/Simon_Helberg,Simon Helberg
+http://dbpedia.org/resource/Johnny_Galecki,Johnny Galecki
+http://dbpedia.org/resource/Mayim_Bialik,Mayim Bialik
+http://dbpedia.org/resource/Melissa_Rauch,Melissa Rauch
+ +
<#SDSourceAccess> a rml:Source, sd:Service;
+  sd:endpoint ;
+  sd:supportedLanguage sd:SPARQL11Query;
+  sd:resultFormat formats:SPARQL_Results_CSV;
+.
+
+ +
<#TriplesMap1> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#SDSourceAccess>;
+    rml:query """
+      PREFIX dbo: 
+      PREFIX rdf: 
+      PREFIX rdfs: 
+      SELECT DISTINCT ?actor ?name WHERE {
+        ?tvshow rdf:type dbo:TelevisionShow .
+        ?tvshow rdfs:label "The Big Bang Theory"@en .
+        ?tvshow dbo:starring ?actor .
+        ?actor foaf:name ?name .
+      }
+    """;
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:reference "actor";
+    rml:termType rml:IRI;
+    rml:logicalTarget <TargetDump1>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+    ];
+  ];
+
+<#TriplesMap2> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#SDSourceAccess>;
+    rml:query """
+      PREFIX dbo: 
+      PREFIX rdf: 
+      PREFIX rdfs: 
+      SELECT DISTINCT ?actor ?name WHERE {
+        ?tvshow rdf:type dbo:TelevisionShow .
+        ?tvshow rdfs:label "The Big Bang Theory"@en .
+        ?tvshow dbo:starring ?actor .
+        ?actor foaf:name ?name .
+      }
+    """;
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:reference "actor";
+    rml:termType rml:IRI;
+    rml:logicalTarget <TargetDump2>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant schema:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+    ];
+  ];
+.
+
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump2>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset;
+  void:dataDump <file:///data/dump2.nq>;
+.
+ +
# file:///data/dump1.nt
+<http://dbpedia.org/resource/Kevin_Sussman> <http://xmlns.com/foaf/0.1/name> "Kevin Sussman" .
+<http://dbpedia.org/resource/Jim_Parsons> <http://xmlns.com/foaf/0.1/name> "Jim Parsons" .
+<http://dbpedia.org/resource/Kaley_Cuoco> <http://xmlns.com/foaf/0.1/name> "Kaley Cuoco" .
+<http://dbpedia.org/resource/Sara_Gilbert> <http://xmlns.com/foaf/0.1/name> "Sara Gilbert" .
+<http://dbpedia.org/resource/Kunal_Nayyar> <http://xmlns.com/foaf/0.1/name> "Kunal Nayyar" .
+<http://dbpedia.org/resource/Laura_Spencer> <http://xmlns.com/foaf/0.1/name> "Laura Spencer" .
+<http://dbpedia.org/resource/Simon_Helberg> <http://xmlns.com/foaf/0.1/name> "Simon Helberg" .
+<http://dbpedia.org/resource/Johnny_Galecki> <http://xmlns.com/foaf/0.1/name> "Johnny Galecki" .
+<http://dbpedia.org/resource/Mayim_Bialik> <http://xmlns.com/foaf/0.1/name> "Mayim Bialik" .
+<http://dbpedia.org/resource/Melissa_Rauch> <http://xmlns.com/foaf/0.1/name> "Melissa Rauch" .
+
+# file:///data/dump2.nt
+<http://dbpedia.org/resource/Kevin_Sussman> <http://schema.org/name> "Kevin Sussman" .
+<http://dbpedia.org/resource/Jim_Parsons> <http://schema.org/name> "Jim Parsons" .
+<http://dbpedia.org/resource/Kaley_Cuoco> <http://schema.org/name> "Kaley Cuoco" .
+<http://dbpedia.org/resource/Sara_Gilbert> <http://schema.org/name> "Sara Gilbert" .
+<http://dbpedia.org/resource/Kunal_Nayyar> <http://schema.org/name> "Kunal Nayyar" .
+<http://dbpedia.org/resource/Laura_Spencer> <http://schema.org/name> "Laura Spencer" .
+<http://dbpedia.org/resource/Simon_Helberg> <http://schema.org/name> "Simon Helberg" .
+<http://dbpedia.org/resource/Johnny_Galecki> <http://schema.org/name> "Johnny Galecki" .
+<http://dbpedia.org/resource/Mayim_Bialik> <http://schema.org/name> "Mayim Bialik" .
+<http://dbpedia.org/resource/Melissa_Rauch> <http://schema.org/name> "Melissa Rauch" .
+ +

9.2 Conditions

FnO functions MAY be leveraged to export triples +only under certain conditions. +Conditions are already integrated in RML+FnO processors, +thus conditions apply on Targets as well. +Triples are generated and exported based on the FnO condition's evaluation. +Only if the condition is true, the triples are generated and exported.

+

In the example, the triples with Jim Parsons as object are exported +to the first Target, triples with Kaley Cuoco as object are exported +to the second Target.

+
# Results of DBPedia SPARQL query
+actor,name,nickname
+http://dbpedia.org/resource/Kevin_Sussman,Kevin Sussman
+http://dbpedia.org/resource/Jim_Parsons,Jim Parsons
+http://dbpedia.org/resource/Kaley_Cuoco,Kaley Cuoco
+http://dbpedia.org/resource/Sara_Gilbert,Sara Gilbert
+http://dbpedia.org/resource/Kunal_Nayyar,Kunal Nayyar
+http://dbpedia.org/resource/Laura_Spencer_(actress),Laura Spencer
+http://dbpedia.org/resource/Simon_Helberg,Simon Helberg
+http://dbpedia.org/resource/Johnny_Galecki,Johnny Galecki
+http://dbpedia.org/resource/Mayim_Bialik,Mayim Bialik
+http://dbpedia.org/resource/Melissa_Rauch,Melissa Rauch
+ +
<#SDSourceAccess> a rml:Source, sd:Service;
+  sd:endpoint ;
+  sd:supportedLanguage sd:SPARQL11Query;
+  sd:resultFormat formats:SPARQL_Results_CSV;
+.
+
+ +
<#TriplesMap> a rml:TriplesMap;
+  rml:logicalSource [ a rml:LogicalSource;
+    rml:source <#SDSourceAccess>;
+    rml:query """
+      PREFIX dbo: 
+      PREFIX rdf: 
+      PREFIX rdfs: 
+      SELECT DISTINCT ?actor ?name WHERE {
+        ?tvshow rdf:type dbo:TelevisionShow .
+        ?tvshow rdfs:label "The Big Bang Theory"@en .
+        ?tvshow dbo:starring ?actor .
+        ?actor foaf:name ?name .
+      }
+    """;
+  ];
+  rml:subjectMap [ a rml:SubjectMap;
+    rml:reference "actor";
+    rml:termType rml:IRI;
+    rml:logicalTarget <TargetDump1>;
+  ];
+  rml:predicateObjectMap [ a rml:PredicateObjectMap;
+    rml:predicateMap [ a rml:PredicateMap;
+      rml:constant foaf:name;
+    ];
+    rml:objectMap [ a rml:ObjectMap;
+      rml:reference "name";
+    ];
+  ];
+  rml:predicateObjectMap [ 
+    rml:predicateMap [ rml:constant foaf:name ];
+    rml:objectMap [
+      fnml:functionValue [
+        rml:predicateObjectMap [
+          rml:predicate fno:executes ;
+          rml:objectMap [ rml:constant idlab-fn:decide ]
+        ];
+        rml:predicateObjectMap [
+          rml:predicate idlab-fn:expectedStr ;
+          rml:objectMap [ rml:constant "Jim Parsons"]
+        ];
+        rml:predicateObjectMap [
+          rml:predicate idlab-fn:str ;
+          rml:objectMap [ 
+            rml:reference "name";
+            rml:logicalTarget <#TargetDump1>;
+          ];
+        ];
+      ];
+    ];
+  ];
+  rml:predicateObjectMap [ 
+    rml:predicateMap [ rml:constant foaf:name ];
+    rml:objectMap [
+      fnml:functionValue [
+        rml:predicateObjectMap [
+          rml:predicate fno:executes ;
+          rml:objectMap [ rml:constant idlab-fn:decide ]
+        ];
+        rml:predicateObjectMap [
+          rml:predicate idlab-fn:expectedStr ;
+          rml:objectMap [ rml:constant "Kaley Cuoco"]
+        ];
+        rml:predicateObjectMap [
+          rml:predicate idlab-fn:str ;
+          rml:objectMap [ 
+            rml:reference "name";
+            rml:logicalTarget <#TargetDump2>;
+          ];
+        ];
+      ];
+    ];
+  ];
+
+ +
<#TargetDump1> a rml:LogicalTarget;
+  rml:target <#VoIDDump1>;
+  rml:serialization formats:N-Triples;
+.
+<#TargetDump2> a rml:LogicalTarget;
+  rml:target <#VoIDDump2>;
+  rml:serialization formats:N-Triples;
+.
+ +
<#VoIDDump1> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump1.nt>;
+.
+<#VoIDDump2> a rml:Target, void:Dataset ;
+  void:dataDump <file:///data/dump2.nt>;
+.
+ +
# file:///data/dump1.nt
+<http://dbpedia.org/resource/Jim_Parsons> <http://xmlns.com/foaf/0.1/name> "Jim Parsons" .
+
+# file:///data/dump2.nt
+<http://dbpedia.org/resource/Kaley_Cuoco> <http://xmlns.com/foaf/0.1/name> "Kaley Cuoco" .
+ + + +

A. References

A.1 Normative references

+ +
[CSVW]
+ CSV on the Web: A Primer. Jeni Tennison. W3C. 25 February 2016. W3C Working Group Note. URL: https://www.w3.org/TR/tabular-data-primer/ +
[DCAT]
+ Data Catalog Vocabulary (DCAT) - Version 2. W3C. 22 February 2020. W3C Recommendation. URL: https://www.w3.org/TR/vocab-dcat/ +
[FnO]
+ Function Ontology (FnO). Ben De Meester; Anastasia Dimou; Florian Kleedorfer. IDLab - Ghent University - imec. 10 November 2021. Unofficial Draft. URL: https://w3id.org/function/spec +
[N-Quads]
+ RDF 1.1 N-Quads. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-quads/ +
[R2RML]
+ R2RML: RDB to RDF Mapping Language. Souripriya Das; Seema Sundara; Richard Cyganiak. W3C. 27 September 2012. W3C Recommendation. URL: https://www.w3.org/TR/r2rml/ +
[RDF-Concepts]
+ Resource Description Framework (RDF): Concepts and Abstract Syntax. Graham Klyne; Jeremy Carroll. W3C. 10 February 2004. W3C Recommendation. URL: https://www.w3.org/TR/rdf-concepts/ +
[RFC2119]
+ Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119 +
[RFC8174]
+ Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174 +
[RML]
+ RDF Mapping Language (RML). Anastasia Dimou; Miel Vander Sande; Ben De Meester; Pieter Heyvaert; Thomas Delva. IDLab - Ghent University - imec. 16 November 2022. W3C Unofficial Draft. URL: https://rml.io/specs/rml +
[SD]
+ SPARQL 1.1 Service Description. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-service-description/ +
[SPARQL]
+ SPARQL 1.1 Overview. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-overview/ +
[Turtle]
+ RDF 1.1 Turtle. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/turtle/ +
[VoID]
+ Describing Linked Datasets with the VoID Vocabulary. W3C. 03 March 2011. W3C Interest Group Note. URL: https://www.w3.org/TR/void/ +
+
\ No newline at end of file diff --git a/spec/docs/20230509/resources/css/extras.css b/spec/docs/20230509/resources/css/extras.css new file mode 100644 index 0000000..3d7ce4e --- /dev/null +++ b/spec/docs/20230509/resources/css/extras.css @@ -0,0 +1,21 @@ + +a.sec-ref:before { + content: "“"; +} + +a.sec-ref:after { + content: "”"; +} + +span.orcid a { + text-decoration: none !important; + border: none !important; +} + +span.orcid a img { + transform: translateY(3px); +} + +html { + background: white !important; +} \ No newline at end of file diff --git a/spec/docs/20230509/resources/images/orcid_logo.png b/spec/docs/20230509/resources/images/orcid_logo.png new file mode 100644 index 0000000..e743726 Binary files /dev/null and b/spec/docs/20230509/resources/images/orcid_logo.png differ diff --git a/spec/docs/20230509/resources/images/source-structure.png b/spec/docs/20230509/resources/images/source-structure.png new file mode 100644 index 0000000..68f9be1 Binary files /dev/null and b/spec/docs/20230509/resources/images/source-structure.png differ diff --git a/spec/docs/20230509/resources/images/target-structure.png b/spec/docs/20230509/resources/images/target-structure.png new file mode 100644 index 0000000..f59c8a1 Binary files /dev/null and b/spec/docs/20230509/resources/images/target-structure.png differ diff --git a/spec/docs/20230509/resources/js/respec-w3c-common_5.0.4.js b/spec/docs/20230509/resources/js/respec-w3c-common_5.0.4.js new file mode 100644 index 0000000..e208b82 --- /dev/null +++ b/spec/docs/20230509/resources/js/respec-w3c-common_5.0.4.js @@ -0,0 +1,23 @@ +"use strict"; +/* ReSpec 5.0.4 +Created by Robin Berjon, http://berjon.com/ (@robinberjon) +Documentation: http://w3.org/respec/. +See original source for licenses: https://github.com/w3c/respec */ +window.respecVersion = "5.0.4"; +var requirejs,require,define;!function(global,setTimeout){function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var n;for(n=0;n-1&&(!e[n]||!t(e[n],n,e));n-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var n;for(n in e)if(hasProp(e,n)&&t(e[n],n))break}function mixin(e,t,n,r){return t&&eachProp(t,function(t,i){!n&&hasProp(e,i)||(!r||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[i]=t:(e[i]||(e[i]={}),mixin(e[i],t,n,r)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,n,r){var i=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return i.requireType=e,i.requireModules=r,n&&(i.originalError=n),i}function newContext(e){function t(e){var t,n;for(t=0;t0&&(e.splice(t-1,2),t-=2)}}function n(e,n,r){var i,a,s,o,l,c,u,p,d,f,h,m,g=n&&n.split("/"),b=k.map,v=b&&b["*"];if(e&&(e=e.split("/"),u=e.length-1,k.nodeIdCompat&&jsSuffixRegExp.test(e[u])&&(e[u]=e[u].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&g&&(m=g.slice(0,g.length-1),e=m.concat(e)),t(e),e=e.join("/")),r&&b&&(g||v)){s=e.split("/");e:for(o=s.length;o>0;o-=1){if(c=s.slice(0,o).join("/"),g)for(l=g.length;l>0;l-=1)if(a=getOwn(b,g.slice(0,l).join("/")),a&&(a=getOwn(a,c))){p=a,d=o;break e}!f&&v&&getOwn(v,c)&&(f=getOwn(v,c),h=o)}!p&&f&&(p=f,d=h),p&&(s.splice(0,d,p),e=s.join("/"))}return i=getOwn(k.pkgs,e),i?i:e}function r(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===w.contextName)return t.parentNode.removeChild(t),!0})}function i(e){var t=getOwn(k.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),w.require.undef(e),w.makeRequire(null,{skipMap:!0})([e]),!0}function a(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function s(e,t,r,i){var s,o,l,c,u=null,p=t?t.name:null,d=e,f=!0,h="";return e||(f=!1,e="_@r"+(D+=1)),c=a(e),u=c[0],e=c[1],u&&(u=n(u,p,i),o=getOwn(N,u)),e&&(u?h=o&&o.normalize?o.normalize(e,function(e){return n(e,p,i)}):e.indexOf("!")===-1?n(e,p,i):e:(h=n(e,p,i),c=a(h),u=c[0],h=c[1],r=!0,s=w.nameToUrl(h))),l=!u||o||r?"":"_unnormalized"+(L+=1),{prefix:u,name:h,parentMap:t,unnormalized:!!l,url:s,originalName:d,isDefine:f,id:(u?u+"!"+h:h)+l}}function o(e){var t=e.id,n=getOwn(E,t);return n||(n=E[t]=new w.Module(e)),n}function l(e,t,n){var r=e.id,i=getOwn(E,r);!hasProp(N,r)||i&&!i.defineEmitComplete?(i=o(e),i.error&&"error"===t?n(i.error):i.on(t,n)):"defined"===t&&n(N[r])}function c(e,t){var n=e.requireModules,r=!1;t?t(e):(each(n,function(t){var n=getOwn(E,t);n&&(n.error=e,n.events.error&&(r=!0,n.emit("error",e)))}),r||req.onError(e))}function u(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(w.defQueueMap[t]=!0),C.push(e)}),globalDefQueue=[])}function p(e){delete E[e],delete T[e]}function d(e,t,n){var r=e.map.id;e.error?e.emit("error",e.error):(t[r]=!0,each(e.depMaps,function(r,i){var a=r.id,s=getOwn(E,a);!s||e.depMatched[i]||n[a]||(getOwn(t,a)?(e.defineDep(i,N[a]),e.check()):d(s,t,n))}),n[r]=!0)}function f(){var e,t,n=1e3*k.waitSeconds,a=n&&w.startTime+n<(new Date).getTime(),s=[],o=[],l=!1,u=!0;if(!v){if(v=!0,eachProp(T,function(e){var n=e.map,c=n.id;if(e.enabled&&(n.isDefine||o.push(e),!e.error))if(!e.inited&&a)i(c)?(t=!0,l=!0):(s.push(c),r(c));else if(!e.inited&&e.fetched&&n.isDefine&&(l=!0,!n.prefix))return u=!1}),a&&s.length)return e=makeError("timeout","Load timeout for modules: "+s,null,s),e.contextName=w.contextName,c(e);u&&each(o,function(e){d(e,{},{})}),a&&!t||!l||!isBrowser&&!isWebWorker||_||(_=setTimeout(function(){_=0,f()},50)),v=!1}}function h(e){hasProp(N,e[0])||o(s(e[0],null,!0)).init(e[1],e[2])}function m(e,t,n,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(n,t,!1)}function g(e){var t=e.currentTarget||e.srcElement;return m(t,w.onScriptLoad,"load","onreadystatechange"),m(t,w.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function b(){var e;for(u();C.length;){if(e=C.shift(),null===e[0])return c(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));h(e)}w.defQueueMap={}}var v,y,w,x,_,k={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},E={},T={},S={},C=[],N={},R={},A={},D=1,L=1;return x={require:function(e){return e.require?e.require:e.require=w.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?N[e.map.id]=e.exports:e.exports=N[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(k.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},y=function(e){this.events=getOwn(S,e.id)||{},this.map=e,this.shim=getOwn(k.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},y.prototype={init:function(e,t,n,r){r=r||{},this.inited||(this.factory=t,n?this.on("error",n):this.events.error&&(n=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=n,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,w.startTime=(new Date).getTime();var e=this.map;return this.shim?void w.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()})):e.prefix?this.callPlugin():this.load()}},load:function(){var e=this.map.url;R[e]||(R[e]=!0,w.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,n=this.map.id,r=this.depExports,i=this.exports,a=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(a)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{i=w.execCb(n,a,r,i)}catch(t){e=t}else i=w.execCb(n,a,r,i);if(this.map.isDefine&&void 0===i&&(t=this.module,t?i=t.exports:this.usingExports&&(i=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",c(this.error=e)}else i=a;if(this.exports=i,this.map.isDefine&&!this.ignore&&(N[n]=i,req.onResourceLoad)){var s=[];each(this.depMaps,function(e){s.push(e.normalizedMap||e)}),req.onResourceLoad(w,this.map,s)}p(n),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(w.defQueueMap,n)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,r=s(e.prefix);this.depMaps.push(r),l(r,"defined",bind(this,function(r){var i,a,u,d=getOwn(A,this.map.id),f=this.map.name,h=this.map.parentMap?this.map.parentMap.name:null,m=w.makeRequire(e.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(r.normalize&&(f=r.normalize(f,function(e){return n(e,h,!0)})||""),a=s(e.prefix+"!"+f,this.map.parentMap),l(a,"defined",bind(this,function(e){this.map.normalizedMap=a,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),u=getOwn(E,a.id),void(u&&(this.depMaps.push(a),this.events.error&&u.on("error",bind(this,function(e){this.emit("error",e)})),u.enable()))):d?(this.map.url=w.nameToUrl(d),void this.load()):(i=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})}),i.error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(E,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&p(e.map.id)}),c(e)}),i.fromText=bind(this,function(n,r){var a=e.name,l=s(a),u=useInteractive;r&&(n=r),u&&(useInteractive=!1),o(l),hasProp(k.config,t)&&(k.config[a]=k.config[t]);try{req.exec(n)}catch(e){return c(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}u&&(useInteractive=!0),this.depMaps.push(l),w.completeLoad(a),m([a],i)}),void r.load(e.name,m,i,k))})),w.enable(r,this),this.pluginMaps[r.id]=r},enable:function(){T[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var n,r,i;if("string"==typeof e){if(e=s(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,i=getOwn(x,e.id))return void(this.depExports[t]=i(this));this.depCount+=1,l(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?l(e,"error",bind(this,this.errback)):this.events.error&&l(e,"error",bind(this,function(e){this.emit("error",e)}))}n=e.id,r=E[n],hasProp(x,n)||!r||r.enabled||w.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(E,e.id);t&&!t.enabled&&w.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var n=this.events[e];n||(n=this.events[e]=[]),n.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},w={config:k,contextName:e,registry:E,defined:N,urlFetched:R,defQueue:C,defQueueMap:{},Module:y,makeModuleMap:s,nextTick:req.nextTick,onError:c,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var t=e.urlArgs;e.urlArgs=function(e,n){return(n.indexOf("?")===-1?"?":"&")+t}}var n=k.shim,r={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){r[t]?(k[t]||(k[t]={}),mixin(k[t],e,!0,!0)):k[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(A[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=w.makeShimExports(e)),n[t]=e}),k.shim=n),e.packages&&each(e.packages,function(e){var t,n;e="string"==typeof e?{name:e}:e,n=e.name,t=e.location,t&&(k.paths[n]=e.location),k.pkgs[n]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(E,function(e,t){e.inited||e.map.unnormalized||(e.map=s(t,null,!0))}),(e.deps||e.callback)&&w.require(e.deps||[],e.callback)},makeShimExports:function(e){function t(){var t;return e.init&&(t=e.init.apply(global,arguments)),t||e.exports&&getGlobal(e.exports)}return t},makeRequire:function(t,i){function a(n,r,l){var u,p,d;return i.enableBuildCallback&&r&&isFunction(r)&&(r.__requireJsBuild=!0),"string"==typeof n?isFunction(r)?c(makeError("requireargs","Invalid require call"),l):t&&hasProp(x,n)?x[n](E[t.id]):req.get?req.get(w,n,t,a):(p=s(n,t,!1,!0),u=p.id,hasProp(N,u)?N[u]:c(makeError("notloaded",'Module name "'+u+'" has not been loaded yet for context: '+e+(t?"":". Use require([])")))):(b(),w.nextTick(function(){b(),d=o(s(null,t)),d.skipMap=i.skipMap,d.init(n,r,l,{enabled:!0}),f()}),a)}return i=i||{},mixin(a,{isBrowser:isBrowser,toUrl:function(e){var r,i=e.lastIndexOf("."),a=e.split("/")[0],s="."===a||".."===a;return i!==-1&&(!s||i>1)&&(r=e.substring(i,e.length),e=e.substring(0,i)),w.nameToUrl(n(e,t&&t.id,!0),r,!0)},defined:function(e){return hasProp(N,s(e,t,!1,!0).id)},specified:function(e){return e=s(e,t,!1,!0).id,hasProp(N,e)||hasProp(E,e)}}),t||(a.undef=function(e){u();var n=s(e,t,!0),i=getOwn(E,e);i.undefed=!0,r(e),delete N[e],delete R[n.url],delete S[e],eachReverse(C,function(t,n){t[0]===e&&C.splice(n,1)}),delete w.defQueueMap[e],i&&(i.events.defined&&(S[e]=i.events),p(e))}),a},enable:function(e){var t=getOwn(E,e.id);t&&o(e).enable()},completeLoad:function(e){var t,n,r,a=getOwn(k.shim,e)||{},s=a.exports;for(u();C.length;){if(n=C.shift(),null===n[0]){if(n[0]=e,t)break;t=!0}else n[0]===e&&(t=!0);h(n)}if(w.defQueueMap={},r=getOwn(E,e),!t&&!hasProp(N,e)&&r&&!r.inited){if(!(!k.enforceDefine||s&&getGlobal(s)))return i(e)?void 0:c(makeError("nodefine","No define call for "+e,null,[e]));h([e,a.deps||[],a.exportsFn])}f()},nameToUrl:function(e,t,n){var r,i,a,s,o,l,c,u=getOwn(k.pkgs,e);if(u&&(e=u),c=getOwn(A,e))return w.nameToUrl(c,t,n);if(req.jsExtRegExp.test(e))o=e+(t||"");else{for(r=k.paths,i=e.split("/"),a=i.length;a>0;a-=1)if(s=i.slice(0,a).join("/"),l=getOwn(r,s)){isArray(l)&&(l=l[0]),i.splice(0,a,l);break}o=i.join("/"),o+=t||(/^data\:|^blob\:|\?/.test(o)||n?"":".js"),o=("/"===o.charAt(0)||o.match(/^[\w\+\.\-]+:/)?"":k.baseUrl)+o}return k.urlArgs&&!/^blob\:/.test(o)?o+k.urlArgs(e,o):o},load:function(e,t){req.load(w,e,t)},execCb:function(e,t,n,r){return t.apply(r,n)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=g(e);w.completeLoad(t.id)}},onScriptError:function(e){var t=g(e);if(!i(t.id)){var n=[];return eachProp(E,function(e,r){0!==r.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===t.id)return n.push(r),!0})}),c(makeError("scripterror",'Script error for "'+t.id+(n.length?'", needed by: '+n.join(", "):'"'),e,[t.id]))}}},w.require=w.makeRequire(),w}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.2",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,n,r){var i,a,s=defContextName;return isArray(e)||"string"==typeof e||(a=e,isArray(t)?(e=t,t=n,n=r):e=[]),a&&a.context&&(s=a.context),i=getOwn(contexts,s),i||(i=contexts[s]=req.s.newContext(s)),a&&i.configure(a),i.require(e,t,n)},req.config=function(e){return req(e)},req.nextTick="undefined"!=typeof setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,n){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,n){var r,i=e&&e.config||{};if(isBrowser)return r=req.createNode(i,t,n),r.setAttribute("data-requirecontext",e.contextName),r.setAttribute("data-requiremodule",t),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||isOpera?(r.addEventListener("load",e.onScriptLoad,!1),r.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,r.attachEvent("onreadystatechange",e.onScriptLoad)),r.src=n,i.onNodeCreated&&i.onNodeCreated(r,i,t,n),currentlyAddingScript=r,baseElement?head.insertBefore(r,baseElement):head.appendChild(r),currentlyAddingScript=null,r;if(isWebWorker)try{setTimeout(function(){},0),importScripts(n),e.completeLoad(t)}catch(r){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+n,r,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||mainScript.indexOf("!")!==-1||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,n){var r,i;"string"!=typeof e&&(n=t,t=e,e=null),isArray(t)||(n=t,t=null),!t&&isFunction(n)&&(t=[],n.length&&(n.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,n){t.push(n)}),t=(1===n.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),i=contexts[r.getAttribute("data-requirecontext")])),i?(i.defQueue.push([e,t,n]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,n])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this,"undefined"==typeof setTimeout?void 0:setTimeout),define("deps/require",function(){}),function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return m.iterable&&(t[Symbol.iterator]=function(){return t}),t}function i(e){this.map={},e instanceof i?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function a(e){return e.bodyUsed?Promise.reject(new TypeError("Already read")):void(e.bodyUsed=!0)}function s(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function o(e){var t=new FileReader;return t.readAsArrayBuffer(e),s(t)}function l(e){var t=new FileReader;return t.readAsText(e),s(t)}function c(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,"string"==typeof e)this._bodyText=e;else if(m.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(m.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(m.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(e){if(!m.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e))throw new Error("unsupported BodyInit type")}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):m.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},m.blob?(this.blob=function(){var e=a(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this.blob().then(o)},this.text=function(){var e=a(this);if(e)return e;if(this._bodyBlob)return l(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)}):this.text=function(){var e=a(this);return e?e:Promise.resolve(this._bodyText)},m.formData&&(this.formData=function(){return this.text().then(d)}),this.json=function(){return this.text().then(JSON.parse)},this}function u(e){var t=e.toUpperCase();return g.indexOf(t)>-1?t:e}function p(e,t){t=t||{};var n=t.body;if(p.prototype.isPrototypeOf(e)){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new i(e.headers)),this.method=e.method,this.mode=e.mode,n||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=e;if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new i(t.headers)),this.method=u(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function d(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function f(e){var t=new i,n=(e.getAllResponseHeaders()||"").trim().split("\n");return n.forEach(function(e){var n=e.trim().split(":"),r=n.shift().trim(),i=n.join(":").trim();t.append(r,i)}),t}function h(e,t){t||(t={}),this.type="default",this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof i?t.headers:new i(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var m={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};i.prototype.append=function(e,r){e=t(e),r=n(r);var i=this.map[e];i||(i=[],this.map[e]=i),i.push(r)},i.prototype.delete=function(e){delete this.map[t(e)]},i.prototype.get=function(e){var n=this.map[t(e)];return n?n[0]:null},i.prototype.getAll=function(e){return this.map[t(e)]||[]},i.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},i.prototype.set=function(e,r){this.map[t(e)]=[n(r)]},i.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(n){this.map[n].forEach(function(r){e.call(t,r,n,this)},this)},this)},i.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},i.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},i.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},m.iterable&&(i.prototype[Symbol.iterator]=i.prototype.entries);var g=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];p.prototype.clone=function(){return new p(this)},c.call(p.prototype),c.call(h.prototype),h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new i(this.headers),url:this.url})},h.error=function(){var e=new h(null,{status:0,statusText:""});return e.type="error",e};var b=[301,302,303,307,308];h.redirect=function(e,t){if(b.indexOf(t)===-1)throw new RangeError("Invalid status code");return new h(null,{status:t,headers:{location:e}})},e.Headers=i,e.Request=p,e.Response=h,e.fetch=function(e,t){return new Promise(function(n,r){function i(){return"responseURL"in s?s.responseURL:/^X-Request-URL:/m.test(s.getAllResponseHeaders())?s.getResponseHeader("X-Request-URL"):void 0}var a;a=p.prototype.isPrototypeOf(e)&&!t?e:new p(e,t);var s=new XMLHttpRequest;s.onload=function(){var e={status:s.status,statusText:s.statusText,headers:f(s),url:i()},t="response"in s?s.response:s.responseText;n(new h(t,e))},s.onerror=function(){r(new TypeError("Network request failed"))},s.ontimeout=function(){r(new TypeError("Network request failed"))},s.open(a.method,a.url,!0),"include"===a.credentials&&(s.withCredentials=!0),"responseType"in s&&m.blob&&(s.responseType="blob"),a.headers.forEach(function(e,t){s.setRequestHeader(t,e)}),s.send("undefined"==typeof a._bodyInit?null:a._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this),define("deps/fetch",function(){}),function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";function n(e,t){t=t||J;var n=t.createElement("script");n.text=e,t.head.appendChild(n).parentNode.removeChild(n)}function r(e){var t=!!e&&"length"in e&&e.length,n=de.type(e);return"function"!==n&&!de.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function i(e,t,n){if(de.isFunction(t))return de.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return de.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(_e.test(t))return de.filter(t,e,n);t=de.filter(t,e)}return de.grep(e,function(e){return ie.call(t,e)>-1!==n&&1===e.nodeType})}function a(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function s(e){var t={};return de.each(e.match(Ne)||[],function(e,n){t[n]=!0}),t}function o(e){return e}function l(e){throw e}function c(e,t,n){var r;try{e&&de.isFunction(r=e.promise)?r.call(e).done(t).fail(n):e&&de.isFunction(r=e.then)?r.call(e,t,n):t.call(void 0,e)}catch(e){n.call(void 0,e)}}function u(){J.removeEventListener("DOMContentLoaded",u),e.removeEventListener("load",u),de.ready()}function p(){this.expando=de.expando+p.uid++}function d(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(je,"-$&").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Ie.test(n)?JSON.parse(n):n)}catch(e){}Oe.set(e,t,n)}else n=void 0;return n}function f(e,t,n,r){var i,a=1,s=20,o=r?function(){return r.cur()}:function(){return de.css(e,t,"")},l=o(),c=n&&n[3]||(de.cssNumber[t]?"":"px"),u=(de.cssNumber[t]||"px"!==c&&+l)&&$e.exec(de.css(e,t));if(u&&u[3]!==c){c=c||u[3],n=n||[],u=+l||1;do a=a||".5",u/=a,de.style(e,t,u+c);while(a!==(a=o()/l)&&1!==a&&--s)}return n&&(u=+u||+l||0,i=n[1]?u+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=u,r.end=i)),i}function h(e){var t,n=e.ownerDocument,r=e.nodeName,i=He[r];return i?i:(t=n.body.appendChild(n.createElement(r)),i=de.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),He[r]=i,i)}function m(e,t){for(var n,r,i=[],a=0,s=e.length;a-1)i&&i.push(a);else if(c=de.contains(a.ownerDocument,a),s=g(p.appendChild(a),"script"),c&&b(s),n)for(u=0;a=s[u++];)We.test(a.type||"")&&n.push(a);return p}function y(){return!0}function w(){return!1}function x(){try{return J.activeElement}catch(e){}}function _(e,t,n,r,i,a){var s,o;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(o in t)_(e,o,n,r,t[o],a);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=w;else if(!i)return e;return 1===a&&(s=i,i=function(e){return de().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=de.guid++)),e.each(function(){de.event.add(this,t,i,r,n)})}function k(e,t){return de.nodeName(e,"table")&&de.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e:e}function E(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function T(e){var t=tt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function S(e,t){var n,r,i,a,s,o,l,c;if(1===t.nodeType){if(Pe.hasData(e)&&(a=Pe.access(e),s=Pe.set(t,a),c=a.events)){delete s.handle,s.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof h&&!ue.checkClone&&et.test(h))return e.each(function(n){var a=e.eq(n);m&&(t[0]=h.call(this,n,a.html())),N(a,t,r,i)});if(d&&(a=v(t,e[0].ownerDocument,!1,e,i),s=a.firstChild,1===a.childNodes.length&&(a=s),s||i)){for(o=de.map(g(a,"script"),E),l=o.length;p=0&&nk.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=P.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function a(e,t){for(var n=e.split("|"),r=n.length;r--;)k.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function o(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return function(t){return"label"in t&&t.disabled===e||"form"in t&&t.disabled===e||"form"in t&&t.disabled===!1&&(t.isDisabled===e||t.isDisabled!==!e&&("label"in t||!Ee(t))!==e)}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,a=e([],n.length,t),s=a.length;s--;)n[i=a[s]]&&(n[i]=!(r[i]=n[i]))})})}function p(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,a=n.length;i-1&&(r[c]=!(s[c]=p))}}else y=b(y===s?y.splice(h,y.length):y),a?a(null,s,y,l):Z.apply(s,y)})}function y(e){for(var t,n,r,i=e.length,a=k.relative[e[0].type],s=a||k.relative[" "],o=a?1:0,l=h(function(e){return e===t},s,!0),c=h(function(e){return ee(t,e)>-1},s,!0),u=[function(e,n,r){var i=!a&&(r||n!==R)||((t=n).nodeType?l(e,n,r):c(e,n,r));return t=null,i}];o1&&m(u),o>1&&f(e.slice(0,o-1).concat({value:" "===e[o-2].type?"*":""})).replace(oe,"$1"),n,o0,a=e.length>0,s=function(r,s,o,l,c){var u,p,d,f=0,h="0",m=r&&[],g=[],v=R,y=r||a&&k.find.TAG("*",c),w=H+=null==v?1:Math.random()||.1,x=y.length;for(c&&(R=s===P||s||c);h!==x&&null!=(u=y[h]);h++){if(a&&u){for(p=0,s||u.ownerDocument===P||(L(u),o=!I);d=e[p++];)if(d(u,s||P,o)){l.push(u);break}c&&(H=w)}i&&((u=!d&&u)&&f--,r&&m.push(u))}if(f+=h,i&&h!==f){for(p=0;d=n[p++];)d(m,g,s,o);if(r){if(f>0)for(;h--;)m[h]||g[h]||(g[h]=Y.call(l));g=b(g)}Z.apply(l,g),c&&!r&&g.length>0&&f+n.length>1&&t.uniqueSort(l)}return c&&(H=w,R=v),m};return i?r(s):s}var x,_,k,E,T,S,C,N,R,A,D,L,P,O,I,j,M,$,B,F="sizzle"+1*new Date,q=e.document,H=0,U=0,K=n(),W=n(),z=n(),V=function(e,t){return e===t&&(D=!0),0},G={}.hasOwnProperty,X=[],Y=X.pop,Q=X.push,Z=X.push,J=X.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ue=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),pe=new RegExp(ae),de=new RegExp("^"+re+"$"),fe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,be=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,ye=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},xe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,_e=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ke=function(){L()},Ee=h(function(e){return e.disabled===!0},{dir:"parentNode",next:"legend"});try{Z.apply(X=J.call(q.childNodes),q.childNodes),X[q.childNodes.length].nodeType}catch(e){Z={apply:X.length?function(e,t){Q.apply(e,J.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}_=t.support={},T=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:q;return r!==P&&9===r.nodeType&&r.documentElement?(P=r,O=P.documentElement,I=!T(P),q!==P&&(n=P.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",ke,!1):n.attachEvent&&n.attachEvent("onunload",ke)),_.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),_.getElementsByTagName=i(function(e){return e.appendChild(P.createComment("")),!e.getElementsByTagName("*").length}),_.getElementsByClassName=ge.test(P.getElementsByClassName),_.getById=i(function(e){return O.appendChild(e).id=F,!P.getElementsByName||!P.getElementsByName(F).length}),_.getById?(k.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&I){var n=t.getElementById(e);return n?[n]:[]}},k.filter.ID=function(e){var t=e.replace(ye,we);return function(e){return e.getAttribute("id")===t}}):(delete k.find.ID,k.filter.ID=function(e){var t=e.replace(ye,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),k.find.TAG=_.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):_.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,a=t.getElementsByTagName(e);if("*"===e){for(;n=a[i++];)1===n.nodeType&&r.push(n);return r}return a},k.find.CLASS=_.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&I)return t.getElementsByClassName(e)},M=[],j=[],(_.qsa=ge.test(P.querySelectorAll))&&(i(function(e){O.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&j.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||j.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+F+"-]").length||j.push("~="),e.querySelectorAll(":checked").length||j.push(":checked"),e.querySelectorAll("a#"+F+"+*").length||j.push(".#.+[+~]")}),i(function(e){e.innerHTML="";var t=P.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&j.push("name"+ne+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&j.push(":enabled",":disabled"),O.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&j.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),j.push(",.*:")})),(_.matchesSelector=ge.test($=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&i(function(e){_.disconnectedMatch=$.call(e,"*"),$.call(e,"[s!='']:x"),M.push("!=",ae)}),j=j.length&&new RegExp(j.join("|")),M=M.length&&new RegExp(M.join("|")),t=ge.test(O.compareDocumentPosition),B=t||ge.test(O.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},V=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!_.sortDetached&&t.compareDocumentPosition(e)===n?e===P||e.ownerDocument===q&&B(q,e)?-1:t===P||t.ownerDocument===q&&B(q,t)?1:A?ee(A,e)-ee(A,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,r=0,i=e.parentNode,a=t.parentNode,o=[e],l=[t];if(!i||!a)return e===P?-1:t===P?1:i?-1:a?1:A?ee(A,e)-ee(A,t):0;if(i===a)return s(e,t);for(n=e;n=n.parentNode;)o.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;o[r]===l[r];)r++;return r?s(o[r],l[r]):o[r]===q?-1:l[r]===q?1:0},P):P},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==P&&L(e),n=n.replace(ue,"='$1']"),_.matchesSelector&&I&&!z[n+" "]&&(!M||!M.test(n))&&(!j||!j.test(n)))try{var r=$.call(e,n);if(r||_.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,P,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==P&&L(e),B(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==P&&L(e);var n=k.attrHandle[t.toLowerCase()],r=n&&G.call(k.attrHandle,t.toLowerCase())?n(e,t,!I):void 0;return void 0!==r?r:_.attributes||!I?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(xe,_e)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(D=!_.detectDuplicates,A=!_.sortStable&&e.slice(0),e.sort(V),D){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return A=null,e},E=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=E(t);return n},k=t.selectors={cacheLength:50,createPseudo:r,match:fe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ye,we),e[3]=(e[3]||e[4]||e[5]||"").replace(ye,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return fe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&pe.test(n)&&(t=S(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ye,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=K[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&K(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var a=t.attr(i,e);return null==a?"!="===n:!n||(a+="","="===n?a===r:"!="===n?a!==r:"^="===n?r&&0===a.indexOf(r):"*="===n?r&&a.indexOf(r)>-1:"$="===n?r&&a.slice(-r.length)===r:"~="===n?(" "+a.replace(se," ")+" ").indexOf(r)>-1:"|="===n&&(a===r||a.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var a="nth"!==e.slice(0,3),s="last"!==e.slice(-4),o="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,p,d,f,h,m=a!==s?"nextSibling":"previousSibling",g=t.parentNode,b=o&&t.nodeName.toLowerCase(),v=!l&&!o,y=!1;if(g){if(a){for(;m;){for(d=t;d=d[m];)if(o?d.nodeName.toLowerCase()===b:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[s?g.firstChild:g.lastChild],s&&v){for(d=g,p=d[F]||(d[F]={}),u=p[d.uniqueID]||(p[d.uniqueID]={}),c=u[e]||[],f=c[0]===H&&c[1],y=f&&c[2],d=f&&g.childNodes[f];d=++f&&d&&d[m]||(y=f=0)||h.pop();)if(1===d.nodeType&&++y&&d===t){u[e]=[H,f,y];break}}else if(v&&(d=t,p=d[F]||(d[F]={}),u=p[d.uniqueID]||(p[d.uniqueID]={}),c=u[e]||[],f=c[0]===H&&c[1],y=f),y===!1)for(;(d=++f&&d&&d[m]||(y=f=0)||h.pop())&&((o?d.nodeName.toLowerCase()!==b:1!==d.nodeType)||!++y||(v&&(p=d[F]||(d[F]={}),u=p[d.uniqueID]||(p[d.uniqueID]={}),u[e]=[H,y]),d!==t)););return y-=i,y===r||y%r===0&&y/r>=0}}},PSEUDO:function(e,n){var i,a=k.pseudos[e]||k.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return a[F]?a(n):a.length>1?(i=[e,e,"",n],k.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=a(e,n),s=i.length;s--;)r=ee(e,i[s]),e[r]=!(t[r]=i[s])}):function(e){return a(e,0,i)}):a}},pseudos:{not:r(function(e){var t=[],n=[],i=C(e.replace(oe,"$1"));return i[F]?r(function(e,t,n,r){for(var a,s=i(e,null,r,[]),o=e.length;o--;)(a=s[o])&&(e[o]=!(t[o]=a))}):function(e,r,a){return t[0]=e,i(t,null,a,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(ye,we),function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(ye,we).toLowerCase(),function(t){var n;do if(n=I?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===O},focus:function(e){return e===P.activeElement&&(!P.hasFocus||P.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!k.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[n<0?n+t:n]}),even:u(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(s=a[0]).type&&_.getById&&9===t.nodeType&&I&&k.relative[a[1].type]){if(t=(k.find.ID(s.matches[0].replace(ye,we),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(a.shift().value.length)}for(i=fe.needsContext.test(e)?0:a.length;i--&&(s=a[i],!k.relative[o=s.type]);)if((l=k.find[o])&&(r=l(s.matches[0].replace(ye,we),ve.test(a[0].type)&&p(t.parentNode)||t))){if(a.splice(i,1),e=r.length&&f(a),!e)return Z.apply(n,r),n;break}}return(c||C(e,u))(r,t,!I,n,!t||ve.test(e)&&p(t.parentNode)||t),n},_.sortStable=F.split("").sort(V).join("")===F,_.detectDuplicates=!!D,L(),_.sortDetached=i(function(e){return 1&e.compareDocumentPosition(P.createElement("fieldset"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||a("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),_.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||a("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||a(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);de.find=be,de.expr=be.selectors,de.expr[":"]=de.expr.pseudos,de.uniqueSort=de.unique=be.uniqueSort,de.text=be.getText,de.isXMLDoc=be.isXML,de.contains=be.contains,de.escapeSelector=be.escape;var ve=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&de(e).is(n))break;r.push(e)}return r},ye=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=de.expr.match.needsContext,xe=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,_e=/^.[^:#\[\.,]*$/;de.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?de.find.matchesSelector(r,e)?[r]:[]:de.find.matches(e,de.grep(t,function(e){return 1===e.nodeType}))},de.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(de(e).filter(function(){for(t=0;t1?de.uniqueSort(n):n},filter:function(e){return this.pushStack(i(this,e||[],!1))},not:function(e){return this.pushStack(i(this,e||[],!0))},is:function(e){return!!i(this,"string"==typeof e&&we.test(e)?de(e):e||[],!1).length}});var ke,Ee=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Te=de.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||ke,"string"==typeof e){if(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Ee.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof de?t[0]:t,de.merge(this,de.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:J,!0)),xe.test(r[1])&&de.isPlainObject(t))for(r in t)de.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=J.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):de.isFunction(e)?void 0!==n.ready?n.ready(e):e(de):de.makeArray(e,this)};Te.prototype=de.fn,ke=de(J);var Se=/^(?:parents|prev(?:Until|All))/,Ce={children:!0,contents:!0,next:!0,prev:!0};de.fn.extend({has:function(e){var t=de(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&de.find.matchesSelector(n,e))){a.push(n);break}return this.pushStack(a.length>1?de.uniqueSort(a):a)},index:function(e){return e?"string"==typeof e?ie.call(de(e),this[0]):ie.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(de.uniqueSort(de.merge(this.get(),de(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),de.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ve(e,"parentNode")},parentsUntil:function(e,t,n){return ve(e,"parentNode",n)},next:function(e){return a(e,"nextSibling")},prev:function(e){return a(e,"previousSibling")},nextAll:function(e){return ve(e,"nextSibling")},prevAll:function(e){return ve(e,"previousSibling")},nextUntil:function(e,t,n){return ve(e,"nextSibling",n)},prevUntil:function(e,t,n){return ve(e,"previousSibling",n)},siblings:function(e){return ye((e.parentNode||{}).firstChild,e)},children:function(e){return ye(e.firstChild)},contents:function(e){return e.contentDocument||de.merge([],e.childNodes)}},function(e,t){de.fn[e]=function(n,r){var i=de.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=de.filter(r,i)),this.length>1&&(Ce[e]||de.uniqueSort(i),Se.test(e)&&i.reverse()),this.pushStack(i)}});var Ne=/\S+/g;de.Callbacks=function(e){e="string"==typeof e?s(e):de.extend({},e);var t,n,r,i,a=[],o=[],l=-1,c=function(){for(i=e.once,r=t=!0;o.length;l=-1)for(n=o.shift();++l-1;)a.splice(n,1),n<=l&&l--}),this},has:function(e){return e?de.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=o=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=o=[],n||t||(a=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],o.push(n),t||c()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!r}};return u},de.extend({Deferred:function(t){ +var n=[["notify","progress",de.Callbacks("memory"),de.Callbacks("memory"),2],["resolve","done",de.Callbacks("once memory"),de.Callbacks("once memory"),0,"resolved"],["reject","fail",de.Callbacks("once memory"),de.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return a.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return de.Deferred(function(t){de.each(n,function(n,r){var i=de.isFunction(e[r[4]])&&e[r[4]];a[r[1]](function(){var e=i&&i.apply(this,arguments);e&&de.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){function a(t,n,r,i){return function(){var c=this,u=arguments,p=function(){var e,p;if(!(t=s&&(r!==l&&(c=void 0,u=[e]),n.rejectWith(c,u))}};t?d():(de.Deferred.getStackHook&&(d.stackTrace=de.Deferred.getStackHook()),e.setTimeout(d))}}var s=0;return de.Deferred(function(e){n[0][3].add(a(0,e,de.isFunction(i)?i:o,e.notifyWith)),n[1][3].add(a(0,e,de.isFunction(t)?t:o)),n[2][3].add(a(0,e,de.isFunction(r)?r:l))}).promise()},promise:function(e){return null!=e?de.extend(e,i):i}},a={};return de.each(n,function(e,t){var s=t[2],o=t[5];i[t[1]]=s.add,o&&s.add(function(){r=o},n[3-e][2].disable,n[0][2].lock),s.add(t[3].fire),a[t[0]]=function(){return a[t[0]+"With"](this===a?void 0:this,arguments),this},a[t[0]+"With"]=s.fireWith}),i.promise(a),t&&t.call(a,a),a},when:function(e){var t=arguments.length,n=t,r=Array(n),i=te.call(arguments),a=de.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?te.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&(c(e,a.done(s(n)).resolve,a.reject),"pending"===a.state()||de.isFunction(i[n]&&i[n].then)))return a.then();for(;n--;)c(i[n],s(n),a.reject);return a.promise()}});var Re=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;de.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&Re.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},de.readyException=function(t){e.setTimeout(function(){throw t})};var Ae=de.Deferred();de.fn.ready=function(e){return Ae.then(e).catch(function(e){de.readyException(e)}),this},de.extend({isReady:!1,readyWait:1,holdReady:function(e){e?de.readyWait++:de.ready(!0)},ready:function(e){(e===!0?--de.readyWait:de.isReady)||(de.isReady=!0,e!==!0&&--de.readyWait>0||Ae.resolveWith(J,[de]))}}),de.ready.then=Ae.then,"complete"===J.readyState||"loading"!==J.readyState&&!J.documentElement.doScroll?e.setTimeout(de.ready):(J.addEventListener("DOMContentLoaded",u),e.addEventListener("load",u));var De=function(e,t,n,r,i,a,s){var o=0,l=e.length,c=null==n;if("object"===de.type(n)){i=!0;for(o in n)De(e,t,o,n[o],!0,a,s)}else if(void 0!==r&&(i=!0,de.isFunction(r)||(s=!0),c&&(s?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(de(e),n)})),t))for(;o1,null,!0)},removeData:function(e){return this.each(function(){Oe.remove(this,e)})}}),de.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Pe.get(e,t),n&&(!r||de.isArray(n)?r=Pe.access(e,t,de.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=de.queue(e,t),r=n.length,i=n.shift(),a=de._queueHooks(e,t),s=function(){de.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete a.stop,i.call(e,s,a)),!r&&a&&a.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Pe.get(e,n)||Pe.access(e,n,{empty:de.Callbacks("once memory").add(function(){Pe.remove(e,[t+"queue",n])})})}}),de.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,We=/^$|\/(?:java|ecma)script/i,ze={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ze.optgroup=ze.option,ze.tbody=ze.tfoot=ze.colgroup=ze.caption=ze.thead,ze.th=ze.td;var Ve=/<|&#?\w+;/;!function(){var e=J.createDocumentFragment(),t=e.appendChild(J.createElement("div")),n=J.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),ue.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",ue.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Ge=J.documentElement,Xe=/^key/,Ye=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Qe=/^([^.]*)(?:\.(.+)|)/;de.event={global:{},add:function(e,t,n,r,i){var a,s,o,l,c,u,p,d,f,h,m,g=Pe.get(e);if(g)for(n.handler&&(a=n,n=a.handler,i=a.selector),i&&de.find.matchesSelector(Ge,i),n.guid||(n.guid=de.guid++),(l=g.events)||(l=g.events={}),(s=g.handle)||(s=g.handle=function(t){return"undefined"!=typeof de&&de.event.triggered!==t.type?de.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(Ne)||[""],c=t.length;c--;)o=Qe.exec(t[c])||[],f=m=o[1],h=(o[2]||"").split(".").sort(),f&&(p=de.event.special[f]||{},f=(i?p.delegateType:p.bindType)||f,p=de.event.special[f]||{},u=de.extend({type:f,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&de.expr.match.needsContext.test(i),namespace:h.join(".")},a),(d=l[f])||(d=l[f]=[],d.delegateCount=0,p.setup&&p.setup.call(e,r,h,s)!==!1||e.addEventListener&&e.addEventListener(f,s)),p.add&&(p.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,u):d.push(u),de.event.global[f]=!0)},remove:function(e,t,n,r,i){var a,s,o,l,c,u,p,d,f,h,m,g=Pe.hasData(e)&&Pe.get(e);if(g&&(l=g.events)){for(t=(t||"").match(Ne)||[""],c=t.length;c--;)if(o=Qe.exec(t[c])||[],f=m=o[1],h=(o[2]||"").split(".").sort(),f){for(p=de.event.special[f]||{},f=(r?p.delegateType:p.bindType)||f,d=l[f]||[],o=o[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=a=d.length;a--;)u=d[a],!i&&m!==u.origType||n&&n.guid!==u.guid||o&&!o.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(d.splice(a,1),u.selector&&d.delegateCount--,p.remove&&p.remove.call(e,u));s&&!d.length&&(p.teardown&&p.teardown.call(e,h,g.handle)!==!1||de.removeEvent(e,f,g.handle),delete l[f])}else for(f in l)de.event.remove(e,f+t[c],n,r,!0);de.isEmptyObject(l)&&Pe.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,a,s,o=de.event.fix(e),l=new Array(arguments.length),c=(Pe.get(this,"events")||{})[o.type]||[],u=de.event.special[o.type]||{};for(l[0]=o,t=1;t-1:de.find(i,this,null,[l]).length),r[i]&&r.push(a);r.length&&s.push({elem:l,handlers:r})}return o\x20\t\r\n\f]*)[^>]*)\/>/gi,Je=/\s*$/g;de.extend({htmlPrefilter:function(e){return e.replace(Ze,"<$1>")},clone:function(e,t,n){var r,i,a,s,o=e.cloneNode(!0),l=de.contains(e.ownerDocument,e);if(!(ue.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||de.isXMLDoc(e)))for(s=g(o),a=g(e),r=0,i=a.length;r0&&b(s,!l&&g(e,"script")),o},cleanData:function(e){for(var t,n,r,i=de.event.special,a=0;void 0!==(n=e[a]);a++)if(Le(n)){if(t=n[Pe.expando]){if(t.events)for(r in t.events)i[r]?de.event.remove(n,r):de.removeEvent(n,r,t.handle);n[Pe.expando]=void 0}n[Oe.expando]&&(n[Oe.expando]=void 0)}}}),de.fn.extend({detach:function(e){return R(this,e,!0)},remove:function(e){return R(this,e)},text:function(e){return De(this,function(e){return void 0===e?de.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return N(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=k(this,e);t.appendChild(e)}})},prepend:function(){return N(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=k(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return N(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return N(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(de.cleanData(g(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return de.clone(this,e,t)})},html:function(e){return De(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Je.test(e)&&!ze[(Ke.exec(e)||["",""])[1].toLowerCase()]){e=de.htmlPrefilter(e);try{for(;n1)}}),de.Tween=j,j.prototype={constructor:j,init:function(e,t,n,r,i,a){this.elem=e,this.prop=n,this.easing=i||de.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=a||(de.cssNumber[n]?"":"px")},cur:function(){var e=j.propHooks[this.prop];return e&&e.get?e.get(this):j.propHooks._default.get(this)},run:function(e){var t,n=j.propHooks[this.prop];return this.options.duration?this.pos=t=de.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):j.propHooks._default.set(this),this}},j.prototype.init.prototype=j.prototype,j.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=de.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){de.fx.step[e.prop]?de.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[de.cssProps[e.prop]]&&!de.cssHooks[e.prop]?e.elem[e.prop]=e.now:de.style(e.elem,e.prop,e.now+e.unit)}}},j.propHooks.scrollTop=j.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},de.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},de.fx=j.prototype.init,de.fx.step={};var pt,dt,ft=/^(?:toggle|show|hide)$/,ht=/queueHooks$/;de.Animation=de.extend(U,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return f(n.elem,e,$e.exec(t),n),n}]},tweener:function(e,t){de.isFunction(e)?(t=e,e=["*"]):e=e.match(Ne);for(var n,r=0,i=e.length;r1)},removeAttr:function(e){return this.each(function(){de.removeAttr(this,e)})}}),de.extend({attr:function(e,t,n){var r,i,a=e.nodeType;if(3!==a&&8!==a&&2!==a)return"undefined"==typeof e.getAttribute?de.prop(e,t,n):(1===a&&de.isXMLDoc(e)||(i=de.attrHooks[t.toLowerCase()]||(de.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void de.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=de.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!ue.radioValue&&"radio"===t&&de.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Ne);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),mt={set:function(e,t,n){return t===!1?de.removeAttr(e,n):e.setAttribute(n,n),n}},de.each(de.expr.match.bool.source.match(/\w+/g),function(e,t){var n=gt[t]||de.find.attr;gt[t]=function(e,t,r){var i,a,s=t.toLowerCase();return r||(a=gt[s],gt[s]=i,i=null!=n(e,t,r)?s:null,gt[s]=a),i}});var bt=/^(?:input|select|textarea|button)$/i,vt=/^(?:a|area)$/i;de.fn.extend({prop:function(e,t){return De(this,de.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[de.propFix[e]||e]})}}),de.extend({prop:function(e,t,n){var r,i,a=e.nodeType;if(3!==a&&8!==a&&2!==a)return 1===a&&de.isXMLDoc(e)||(t=de.propFix[t]||t,i=de.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=de.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||vt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),ue.optSelected||(de.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),de.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){de.propFix[this.toLowerCase()]=this});var yt=/[\t\r\n\f]/g;de.fn.extend({addClass:function(e){var t,n,r,i,a,s,o,l=0;if(de.isFunction(e))return this.each(function(t){de(this).addClass(e.call(this,t,K(this)))});if("string"==typeof e&&e)for(t=e.match(Ne)||[];n=this[l++];)if(i=K(n),r=1===n.nodeType&&(" "+i+" ").replace(yt," ")){for(s=0;a=t[s++];)r.indexOf(" "+a+" ")<0&&(r+=a+" ");o=de.trim(r),i!==o&&n.setAttribute("class",o)}return this},removeClass:function(e){var t,n,r,i,a,s,o,l=0;if(de.isFunction(e))return this.each(function(t){de(this).removeClass(e.call(this,t,K(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(Ne)||[];n=this[l++];)if(i=K(n),r=1===n.nodeType&&(" "+i+" ").replace(yt," ")){for(s=0;a=t[s++];)for(;r.indexOf(" "+a+" ")>-1;)r=r.replace(" "+a+" "," ");o=de.trim(r),i!==o&&n.setAttribute("class",o)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):de.isFunction(e)?this.each(function(n){de(this).toggleClass(e.call(this,n,K(this),t),t)}):this.each(function(){var t,r,i,a;if("string"===n)for(r=0,i=de(this),a=e.match(Ne)||[];t=a[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=K(this),t&&Pe.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||e===!1?"":Pe.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+K(n)+" ").replace(yt," ").indexOf(t)>-1)return!0;return!1}});var wt=/\r/g,xt=/[\x20\t\r\n\f]+/g;de.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=de.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,de(this).val()):e,null==i?i="":"number"==typeof i?i+="":de.isArray(i)&&(i=de.map(i,function(e){return null==e?"":e+""})),t=de.valHooks[this.type]||de.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=de.valHooks[i.type]||de.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(wt,""):null==n?"":n)}}}),de.extend({valHooks:{option:{get:function(e){var t=de.find.attr(e,"value");return null!=t?t:de.trim(de.text(e)).replace(xt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,a="select-one"===e.type,s=a?null:[],o=a?i+1:r.length,l=i<0?o:a?i:0;l-1)&&(n=!0);return n||(e.selectedIndex=-1),a}}}}),de.each(["radio","checkbox"],function(){de.valHooks[this]={set:function(e,t){if(de.isArray(t))return e.checked=de.inArray(de(e).val(),t)>-1}},ue.checkOn||(de.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var _t=/^(?:focusinfocus|focusoutblur)$/;de.extend(de.event,{trigger:function(t,n,r,i){var a,s,o,l,c,u,p,d=[r||J],f=oe.call(t,"type")?t.type:t,h=oe.call(t,"namespace")?t.namespace.split("."):[];if(s=o=r=r||J,3!==r.nodeType&&8!==r.nodeType&&!_t.test(f+de.event.triggered)&&(f.indexOf(".")>-1&&(h=f.split("."),f=h.shift(),h.sort()),c=f.indexOf(":")<0&&"on"+f,t=t[de.expando]?t:new de.Event(f,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:de.makeArray(n,[t]),p=de.event.special[f]||{},i||!p.trigger||p.trigger.apply(r,n)!==!1)){if(!i&&!p.noBubble&&!de.isWindow(r)){for(l=p.delegateType||f,_t.test(l+f)||(s=s.parentNode);s;s=s.parentNode)d.push(s),o=s;o===(r.ownerDocument||J)&&d.push(o.defaultView||o.parentWindow||e)}for(a=0;(s=d[a++])&&!t.isPropagationStopped();)t.type=a>1?l:p.bindType||f,u=(Pe.get(s,"events")||{})[t.type]&&Pe.get(s,"handle"),u&&u.apply(s,n),u=c&&s[c],u&&u.apply&&Le(s)&&(t.result=u.apply(s,n),t.result===!1&&t.preventDefault());return t.type=f,i||t.isDefaultPrevented()||p._default&&p._default.apply(d.pop(),n)!==!1||!Le(r)||c&&de.isFunction(r[f])&&!de.isWindow(r)&&(o=r[c], +o&&(r[c]=null),de.event.triggered=f,r[f](),de.event.triggered=void 0,o&&(r[c]=o)),t.result}},simulate:function(e,t,n){var r=de.extend(new de.Event,n,{type:e,isSimulated:!0});de.event.trigger(r,null,t)}}),de.fn.extend({trigger:function(e,t){return this.each(function(){de.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return de.event.trigger(e,t,n,!0)}}),de.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){de.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),de.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ue.focusin="onfocusin"in e,ue.focusin||de.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){de.event.simulate(t,e.target,de.event.fix(e))};de.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Pe.access(r,t);i||r.addEventListener(e,n,!0),Pe.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Pe.access(r,t)-1;i?Pe.access(r,t,i):(r.removeEventListener(e,n,!0),Pe.remove(r,t))}}});var kt=e.location,Et=de.now(),Tt=/\?/;de.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||de.error("Invalid XML: "+t),n};var St=/\[\]$/,Ct=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,Rt=/^(?:input|select|textarea|keygen)/i;de.param=function(e,t){var n,r=[],i=function(e,t){var n=de.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(de.isArray(e)||e.jquery&&!de.isPlainObject(e))de.each(e,function(){i(this.name,this.value)});else for(n in e)W(n,e[n],t,i);return r.join("&")},de.fn.extend({serialize:function(){return de.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=de.prop(this,"elements");return e?de.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!de(this).is(":disabled")&&Rt.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!Ue.test(e))}).map(function(e,t){var n=de(this).val();return null==n?null:de.isArray(n)?de.map(n,function(e){return{name:t.name,value:e.replace(Ct,"\r\n")}}):{name:t.name,value:n.replace(Ct,"\r\n")}}).get()}});var At=/%20/g,Dt=/#.*$/,Lt=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,It=/^(?:GET|HEAD)$/,jt=/^\/\//,Mt={},$t={},Bt="*/".concat("*"),Ft=J.createElement("a");Ft.href=kt.href,de.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:kt.href,type:"GET",isLocal:Ot.test(kt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Bt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":de.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?G(G(e,de.ajaxSettings),t):G(de.ajaxSettings,e)},ajaxPrefilter:z(Mt),ajaxTransport:z($t),ajax:function(t,n){function r(t,n,r,o){var c,d,f,w,x,_=n;u||(u=!0,l&&e.clearTimeout(l),i=void 0,s=o||"",k.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(w=X(h,k,r)),w=Y(h,w,k,c),c?(h.ifModified&&(x=k.getResponseHeader("Last-Modified"),x&&(de.lastModified[a]=x),x=k.getResponseHeader("etag"),x&&(de.etag[a]=x)),204===t||"HEAD"===h.type?_="nocontent":304===t?_="notmodified":(_=w.state,d=w.data,f=w.error,c=!f)):(f=_,!t&&_||(_="error",t<0&&(t=0))),k.status=t,k.statusText=(n||_)+"",c?b.resolveWith(m,[d,_,k]):b.rejectWith(m,[k,_,f]),k.statusCode(y),y=void 0,p&&g.trigger(c?"ajaxSuccess":"ajaxError",[k,h,c?d:f]),v.fireWith(m,[k,_]),p&&(g.trigger("ajaxComplete",[k,h]),--de.active||de.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,a,s,o,l,c,u,p,d,f,h=de.ajaxSetup({},n),m=h.context||h,g=h.context&&(m.nodeType||m.jquery)?de(m):de.event,b=de.Deferred(),v=de.Callbacks("once memory"),y=h.statusCode||{},w={},x={},_="canceled",k={readyState:0,getResponseHeader:function(e){var t;if(u){if(!o)for(o={};t=Pt.exec(s);)o[t[1].toLowerCase()]=t[2];t=o[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return u?s:null},setRequestHeader:function(e,t){return null==u&&(e=x[e.toLowerCase()]=x[e.toLowerCase()]||e,w[e]=t),this},overrideMimeType:function(e){return null==u&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(u)k.always(e[k.status]);else for(t in e)y[t]=[y[t],e[t]];return this},abort:function(e){var t=e||_;return i&&i.abort(t),r(0,t),this}};if(b.promise(k),h.url=((t||h.url||kt.href)+"").replace(jt,kt.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(Ne)||[""],null==h.crossDomain){c=J.createElement("a");try{c.href=h.url,c.href=c.href,h.crossDomain=Ft.protocol+"//"+Ft.host!=c.protocol+"//"+c.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=de.param(h.data,h.traditional)),V(Mt,h,n,k),u)return k;p=de.event&&h.global,p&&0===de.active++&&de.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!It.test(h.type),a=h.url.replace(Dt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(At,"+")):(f=h.url.slice(a.length),h.data&&(a+=(Tt.test(a)?"&":"?")+h.data,delete h.data),h.cache===!1&&(a=a.replace(Lt,""),f=(Tt.test(a)?"&":"?")+"_="+Et++ +f),h.url=a+f),h.ifModified&&(de.lastModified[a]&&k.setRequestHeader("If-Modified-Since",de.lastModified[a]),de.etag[a]&&k.setRequestHeader("If-None-Match",de.etag[a])),(h.data&&h.hasContent&&h.contentType!==!1||n.contentType)&&k.setRequestHeader("Content-Type",h.contentType),k.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Bt+"; q=0.01":""):h.accepts["*"]);for(d in h.headers)k.setRequestHeader(d,h.headers[d]);if(h.beforeSend&&(h.beforeSend.call(m,k,h)===!1||u))return k.abort();if(_="abort",v.add(h.complete),k.done(h.success),k.fail(h.error),i=V($t,h,n,k)){if(k.readyState=1,p&&g.trigger("ajaxSend",[k,h]),u)return k;h.async&&h.timeout>0&&(l=e.setTimeout(function(){k.abort("timeout")},h.timeout));try{u=!1,i.send(w,r)}catch(e){if(u)throw e;r(-1,e)}}else r(-1,"No Transport");return k},getJSON:function(e,t,n){return de.get(e,t,n,"json")},getScript:function(e,t){return de.get(e,void 0,t,"script")}}),de.each(["get","post"],function(e,t){de[t]=function(e,n,r,i){return de.isFunction(n)&&(i=i||r,r=n,n=void 0),de.ajax(de.extend({url:e,type:t,dataType:i,data:n,success:r},de.isPlainObject(e)&&e))}}),de._evalUrl=function(e){return de.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},de.fn.extend({wrapAll:function(e){var t;return this[0]&&(de.isFunction(e)&&(e=e.call(this[0])),t=de(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return de.isFunction(e)?this.each(function(t){de(this).wrapInner(e.call(this,t))}):this.each(function(){var t=de(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=de.isFunction(e);return this.each(function(n){de(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){de(this).replaceWith(this.childNodes)}),this}}),de.expr.pseudos.hidden=function(e){return!de.expr.pseudos.visible(e)},de.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},de.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var qt={0:200,1223:204},Ht=de.ajaxSettings.xhr();ue.cors=!!Ht&&"withCredentials"in Ht,ue.ajax=Ht=!!Ht,de.ajaxTransport(function(t){var n,r;if(ue.cors||Ht&&!t.crossDomain)return{send:function(i,a){var s,o=t.xhr();if(o.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)o[s]=t.xhrFields[s];t.mimeType&&o.overrideMimeType&&o.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(s in i)o.setRequestHeader(s,i[s]);n=function(e){return function(){n&&(n=r=o.onload=o.onerror=o.onabort=o.onreadystatechange=null,"abort"===e?o.abort():"error"===e?"number"!=typeof o.status?a(0,"error"):a(o.status,o.statusText):a(qt[o.status]||o.status,o.statusText,"text"!==(o.responseType||"text")||"string"!=typeof o.responseText?{binary:o.response}:{text:o.responseText},o.getAllResponseHeaders()))}},o.onload=n(),r=o.onerror=n("error"),void 0!==o.onabort?o.onabort=r:o.onreadystatechange=function(){4===o.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{o.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),de.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),de.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return de.globalEval(e),e}}}),de.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),de.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=de("",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},n]}]}}),e.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}),e.registerLanguage("xquery",function(e){var t="for let if while then else return where group by xquery encoding versionmodule namespace boundary-space preserve strip default collation base-uri orderingcopy-namespaces order declare import schema namespace function option in allowing emptyat tumbling window sliding window start when only end when previous next stable ascendingdescending empty greatest least some every satisfies switch case typeswitch try catch andor to union intersect instance of treat as castable cast map array delete insert intoreplace value rename copy modify update",n="false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute",r={begin:/\$[a-zA-Z0-9\-]+/},i={className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},a={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},s={className:"meta",begin:"%\\w+"},o={className:"comment",begin:"\\(:",end:":\\)",relevance:10,contains:[{className:"doctag",begin:"@\\w+"}]},l={begin:"{",end:"}"},c=[r,a,i,o,s,l];return l.contains=c,{aliases:["xpath","xq"],case_insensitive:!1,lexemes:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{keyword:t,literal:n},contains:c}}),e}),Object.values||(Object.values=function(e){if(e!==Object(e))throw new TypeError("Object.values called on a non-object");var t,n=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.push(e[t]);return n}),function(){function e(e,t){function n(e,t){for(var n=0;nn&&(n=e.line_indent_level));var r={mode:t,parent:e,last_text:e?e.last_text:"",last_word:e?e.last_word:"",declaration_statement:!1,declaration_assignment:!1,multiline_frame:!1,inline_frame:!1,if_block:!1,else_block:!1,do_block:!1,do_while:!1,import_block:!1,in_case_statement:!1,in_case:!1,case_body:!1,indentation_level:n,line_indent_level:e?e.line_indent_level:n,start_line_index:z.get_line_number(),ternary_depth:0};return r}function o(e){var t=e.newlines,n=ie.keep_array_indentation&&_(J.mode);if(n)for(var r=0;r0);else if(ie.max_preserve_newlines&&t>ie.max_preserve_newlines&&(t=ie.max_preserve_newlines),ie.preserve_newlines&&e.newlines>1){g();for(var i=1;i=ie.wrap_line_length&&g(!1,!0)}}}function g(e,t){if(!t&&";"!==J.last_text&&","!==J.last_text&&"="!==J.last_text&&"TK_OPERATOR"!==Y)for(;J.mode===f.Statement&&!J.if_block&&!J.do_block;)E();z.add_new_line(e)&&(J.multiline_frame=!0)}function b(){z.just_added_newline()&&(ie.keep_array_indentation&&_(J.mode)&&X.wanted_newline?(z.current_line.push(X.whitespace_before),z.space_before_token=!1):z.set_indent(J.indentation_level)&&(J.line_indent_level=J.indentation_level))}function v(e){if(z.raw)return void z.add_raw_token(X);if(ie.comma_first&&"TK_COMMA"===Y&&z.just_added_newline()&&","===z.previous_line.last()){var t=z.previous_line.pop();z.previous_line.is_empty()&&(z.previous_line.push(t),z.trim(!0),z.current_line.pop(),z.trim()),b(),z.add_token(","),z.space_before_token=!0}e=e||X.text,b(),z.add_token(e)}function y(){J.indentation_level+=1}function w(){J.indentation_level>0&&(!J.parent||J.indentation_level>J.parent.indentation_level)&&(J.indentation_level-=1)}function x(e){J?(te.push(J),ee=J):ee=s(null,e),J=s(ee,e)}function _(e){return e===f.ArrayLiteral}function k(e){return n(e,[f.Expression,f.ForInitializer,f.Conditional])}function E(){te.length>0&&(ee=J,J=te.pop(),ee.mode===f.Statement&&z.remove_redundant_indentation(ee))}function T(){return J.parent.mode===f.ObjectLiteral&&J.mode===f.Statement&&(":"===J.last_text&&0===J.ternary_depth||"TK_RESERVED"===Y&&n(J.last_text,["get","set"]))}function S(){return!!("TK_RESERVED"===Y&&n(J.last_text,["var","let","const"])&&"TK_WORD"===X.type||"TK_RESERVED"===Y&&"do"===J.last_text||"TK_RESERVED"===Y&&n(J.last_text,["return","throw"])&&!X.wanted_newline||"TK_RESERVED"===Y&&"else"===J.last_text&&("TK_RESERVED"!==X.type||"if"!==X.text)||"TK_END_EXPR"===Y&&(ee.mode===f.ForInitializer||ee.mode===f.Conditional)||"TK_WORD"===Y&&J.mode===f.BlockStatement&&!J.in_case&&"--"!==X.text&&"++"!==X.text&&"function"!==Q&&"TK_WORD"!==X.type&&"TK_RESERVED"!==X.type||J.mode===f.ObjectLiteral&&(":"===J.last_text&&0===J.ternary_depth||"TK_RESERVED"===Y&&n(J.last_text,["get","set"])))&&(x(f.Statement),y(),"TK_RESERVED"===Y&&n(J.last_text,["var","let","const"])&&"TK_WORD"===X.type&&(J.declaration_statement=!0),T()||m("TK_RESERVED"===X.type&&n(X.text,["do","for","if","while"])),!0)}function C(e,t){for(var n=0;n=ae.length?null:ae[t]}function D(){S();var e=f.Expression;if("["===X.text){if("TK_WORD"===Y||")"===J.last_text)return"TK_RESERVED"===Y&&n(J.last_text,G.line_starters)&&(z.space_before_token=!0),x(e),v(),y(),void(ie.space_in_paren&&(z.space_before_token=!0));e=f.ArrayLiteral,_(J.mode)&&("["!==J.last_text&&(","!==J.last_text||"]"!==Q&&"}"!==Q)||ie.keep_array_indentation||g())}else"TK_RESERVED"===Y&&"for"===J.last_text?e=f.ForInitializer:"TK_RESERVED"===Y&&n(J.last_text,["if","while"])&&(e=f.Conditional);";"===J.last_text||"TK_START_BLOCK"===Y?g():"TK_END_EXPR"===Y||"TK_START_EXPR"===Y||"TK_END_BLOCK"===Y||"."===J.last_text?m(X.wanted_newline):"TK_RESERVED"===Y&&"("===X.text||"TK_WORD"===Y||"TK_OPERATOR"===Y?"TK_RESERVED"===Y&&("function"===J.last_word||"typeof"===J.last_word)||"*"===J.last_text&&(n(Q,["function","yield"])||J.mode===f.ObjectLiteral&&n(Q,["{",","]))?ie.space_after_anon_function&&(z.space_before_token=!0):"TK_RESERVED"!==Y||!n(J.last_text,G.line_starters)&&"catch"!==J.last_text||ie.space_before_conditional&&(z.space_before_token=!0):z.space_before_token=!0,"("===X.text&&"TK_RESERVED"===Y&&"await"===J.last_word&&(z.space_before_token=!0),"("===X.text&&("TK_EQUALS"!==Y&&"TK_OPERATOR"!==Y||T()||m()),"("===X.text&&"TK_WORD"!==Y&&"TK_RESERVED"!==Y&&m(),x(e),v(),ie.space_in_paren&&(z.space_before_token=!0),y()}function L(){for(;J.mode===f.Statement;)E();J.multiline_frame&&m("]"===X.text&&_(J.mode)&&!ie.keep_array_indentation),ie.space_in_paren&&("TK_START_EXPR"!==Y||ie.space_in_empty_paren?z.space_before_token=!0:(z.trim(),z.space_before_token=!1)),"]"===X.text&&ie.keep_array_indentation?(v(),E()):(E(),v()),z.remove_redundant_indentation(ee),J.do_while&&ee.mode===f.Conditional&&(ee.mode=f.Expression,J.do_block=!1,J.do_while=!1)}function P(){var e=A(1),t=A(2);x(t&&(n(t.text,[":",","])&&n(e.type,["TK_STRING","TK_WORD","TK_RESERVED"])||n(e.text,["get","set"])&&n(t.type,["TK_WORD","TK_RESERVED"]))?n(Q,["class","interface"])?f.BlockStatement:f.ObjectLiteral:"TK_OPERATOR"===Y&&"=>"===J.last_text?f.BlockStatement:n(Y,["TK_EQUALS","TK_START_EXPR","TK_COMMA","TK_OPERATOR"])||"TK_RESERVED"===Y&&n(J.last_text,["return","throw","import","default"])?f.ObjectLiteral:f.BlockStatement);var r=!e.comments_before.length&&"}"===e.text,i=r&&"function"===J.last_word&&"TK_END_EXPR"===Y;if("expand"===ie.brace_style||"none"===ie.brace_style&&X.wanted_newline)"TK_OPERATOR"!==Y&&(i||"TK_EQUALS"===Y||"TK_RESERVED"===Y&&R(J.last_text)&&"else"!==J.last_text)?z.space_before_token=!0:g(!1,!0);else{if("collapse-preserve-inline"===ie.brace_style){var a=0,s=null;J.inline_frame=!0;do if(a+=1,s=A(a),s.wanted_newline){J.inline_frame=!1;break}while("TK_EOF"!==s.type&&("TK_END_BLOCK"!==s.type||s.opened!==X))}!_(ee.mode)||"TK_START_EXPR"!==Y&&"TK_COMMA"!==Y?"TK_OPERATOR"!==Y&&"TK_START_EXPR"!==Y&&("TK_START_BLOCK"===Y?g():z.space_before_token=!0):(("TK_COMMA"===Y||ie.space_in_paren)&&(z.space_before_token=!0),"collapse-preserve-inline"===ie.brace_style&&("TK_COMMA"===Y||"TK_START_EXPR"===Y&&J.inline_frame)&&(m(),ee.multiline_frame=ee.multiline_frame||J.multiline_frame,J.multiline_frame=!1))}v(),y()}function O(){for(;J.mode===f.Statement;)E();var e="TK_START_BLOCK"===Y;"expand"===ie.brace_style?e||g():e||(J.inline_frame?z.space_before_token=!0:_(J.mode)&&ie.keep_array_indentation?(ie.keep_array_indentation=!1,g(),ie.keep_array_indentation=!0):g()),E(),v()}function I(){if("TK_RESERVED"===X.type)if(n(X.text,["set","get"])&&J.mode!==f.ObjectLiteral)X.type="TK_WORD";else if(n(X.text,["as","from"])&&!J.import_block)X.type="TK_WORD";else if(J.mode===f.ObjectLiteral){var e=A(1);":"===e.text&&(X.type="TK_WORD")}if(S()||!X.wanted_newline||k(J.mode)||"TK_OPERATOR"===Y&&"--"!==J.last_text&&"++"!==J.last_text||"TK_EQUALS"===Y||!ie.preserve_newlines&&"TK_RESERVED"===Y&&n(J.last_text,["var","let","const","set","get"])||g(),J.do_block&&!J.do_while){if("TK_RESERVED"===X.type&&"while"===X.text)return z.space_before_token=!0,v(),z.space_before_token=!0,void(J.do_while=!0);g(),J.do_block=!1}if(J.if_block)if(J.else_block||"TK_RESERVED"!==X.type||"else"!==X.text){for(;J.mode===f.Statement;)E();J.if_block=!1,J.else_block=!1}else J.else_block=!0;if("TK_RESERVED"===X.type&&("case"===X.text||"default"===X.text&&J.in_case_statement))return g(),(J.case_body||ie.jslint_happy)&&(w(),J.case_body=!1),v(),J.in_case=!0,void(J.in_case_statement=!0);if("TK_RESERVED"===X.type&&"function"===X.text&&((n(J.last_text,["}",";"])||z.just_added_newline()&&!n(J.last_text,["[","{",":","=",","]))&&(z.just_added_blankline()||X.comments_before.length||(g(),g(!0))),"TK_RESERVED"===Y||"TK_WORD"===Y?"TK_RESERVED"===Y&&n(J.last_text,["get","set","new","return","export","async"])?z.space_before_token=!0:"TK_RESERVED"===Y&&"default"===J.last_text&&"export"===Q?z.space_before_token=!0:g():"TK_OPERATOR"===Y||"="===J.last_text?z.space_before_token=!0:(J.multiline_frame||!k(J.mode)&&!_(J.mode))&&g()),"TK_COMMA"!==Y&&"TK_START_EXPR"!==Y&&"TK_EQUALS"!==Y&&"TK_OPERATOR"!==Y||T()||m(),"TK_RESERVED"===X.type&&n(X.text,["function","get","set"]))return v(),void(J.last_word=X.text);if(ne="NONE","TK_END_BLOCK"===Y?"TK_RESERVED"===X.type&&n(X.text,["else","catch","finally","from"])?"expand"===ie.brace_style||"end-expand"===ie.brace_style||"none"===ie.brace_style&&X.wanted_newline?ne="NEWLINE":(ne="SPACE",z.space_before_token=!0):ne="NEWLINE":"TK_SEMICOLON"===Y&&J.mode===f.BlockStatement?ne="NEWLINE":"TK_SEMICOLON"===Y&&k(J.mode)?ne="SPACE":"TK_STRING"===Y?ne="NEWLINE":"TK_RESERVED"===Y||"TK_WORD"===Y||"*"===J.last_text&&(n(Q,["function","yield"])||J.mode===f.ObjectLiteral&&n(Q,["{",","]))?ne="SPACE":"TK_START_BLOCK"===Y?ne=J.inline_frame?"SPACE":"NEWLINE":"TK_END_EXPR"===Y&&(z.space_before_token=!0,ne="NEWLINE"),"TK_RESERVED"===X.type&&n(X.text,G.line_starters)&&")"!==J.last_text&&(ne=J.inline_frame||"else"===J.last_text||"export"===J.last_text?"SPACE":"NEWLINE"),"TK_RESERVED"===X.type&&n(X.text,["else","catch","finally"]))if("TK_END_BLOCK"!==Y||ee.mode!==f.BlockStatement||"expand"===ie.brace_style||"end-expand"===ie.brace_style||"none"===ie.brace_style&&X.wanted_newline)g();else{z.trim(!0);var t=z.current_line;"}"!==t.last()&&g(),z.space_before_token=!0}else"NEWLINE"===ne?"TK_RESERVED"===Y&&R(J.last_text)?z.space_before_token=!0:"TK_END_EXPR"!==Y?"TK_START_EXPR"===Y&&"TK_RESERVED"===X.type&&n(X.text,["var","let","const"])||":"===J.last_text||("TK_RESERVED"===X.type&&"if"===X.text&&"else"===J.last_text?z.space_before_token=!0:g()):"TK_RESERVED"===X.type&&n(X.text,G.line_starters)&&")"!==J.last_text&&g():J.multiline_frame&&_(J.mode)&&","===J.last_text&&"}"===Q?g():"SPACE"===ne&&(z.space_before_token=!0);v(),J.last_word=X.text,"TK_RESERVED"===X.type&&("do"===X.text?J.do_block=!0:"if"===X.text?J.if_block=!0:"import"===X.text?J.import_block=!0:J.import_block&&"TK_RESERVED"===X.type&&"from"===X.text&&(J.import_block=!1))}function j(){for(S()&&(z.space_before_token=!1);J.mode===f.Statement&&!J.if_block&&!J.do_block;)E();J.import_block&&(J.import_block=!1),v()}function M(){S()?z.space_before_token=!0:"TK_RESERVED"===Y||"TK_WORD"===Y||J.inline_frame?z.space_before_token=!0:"TK_COMMA"===Y||"TK_START_EXPR"===Y||"TK_EQUALS"===Y||"TK_OPERATOR"===Y?T()||m():g(),v()}function $(){S(),J.declaration_statement&&(J.declaration_assignment=!0),z.space_before_token=!0,v(),z.space_before_token=!0}function B(){v(),z.space_before_token=!0,J.declaration_statement?(k(J.parent.mode)&&(J.declaration_assignment=!1),J.declaration_assignment?(J.declaration_assignment=!1,g(!1,!0)):ie.comma_first&&m()):J.mode===f.ObjectLiteral||J.mode===f.Statement&&J.parent.mode===f.ObjectLiteral?(J.mode===f.Statement&&E(),J.inline_frame||g()):ie.comma_first&&m()}function F(){if(S(),"TK_RESERVED"===Y&&R(J.last_text))return z.space_before_token=!0,void v();if("*"===X.text&&"TK_DOT"===Y)return void v();if("::"===X.text)return void v();if("TK_OPERATOR"===Y&&n(ie.operator_position,d)&&m(),":"===X.text&&J.in_case)return J.case_body=!0,y(),v(),g(),void(J.in_case=!1);var e=!0,t=!0,r=!1,i="*"===X.text&&("TK_RESERVED"===Y&&n(J.last_text,["function","yield"])||J.mode===f.ObjectLiteral&&n(Y,["TK_START_BLOCK","TK_COMMA"])),a=n(X.text,["-","+"])&&(n(Y,["TK_START_BLOCK","TK_START_EXPR","TK_EQUALS","TK_OPERATOR"])||n(J.last_text,G.line_starters)||","===J.last_text);if(":"===X.text?0===J.ternary_depth?e=!1:(J.ternary_depth-=1,r=!0):"?"===X.text&&(J.ternary_depth+=1),!a&&!i&&ie.preserve_newlines&&n(X.text,G.positionable_operators)){var s=":"===X.text,o=s&&r,l=s&&!r;switch(ie.operator_position){case p.before_newline:return z.space_before_token=!l,v(),s&&!o||m(),void(z.space_before_token=!0);case p.after_newline:return z.space_before_token=!0,!s||o?A(1).wanted_newline?g(!1,!0):m():z.space_before_token=!1,v(),void(z.space_before_token=!0);case p.preserve_newline:return l||m(),e=!(z.just_added_newline()||l),z.space_before_token=e,v(),void(z.space_before_token=!0)}}n(X.text,["--","++","!","~"])||a?(e=!1,t=!1,!X.wanted_newline||"--"!==X.text&&"++"!==X.text||g(!1,!0),";"===J.last_text&&k(J.mode)&&(e=!0),"TK_RESERVED"===Y?e=!0:"TK_END_EXPR"===Y?e=!("]"===J.last_text&&("--"===X.text||"++"===X.text)):"TK_OPERATOR"===Y&&(e=n(X.text,["--","-","++","+"])&&n(J.last_text,["--","-","++","+"]),n(X.text,["+","-"])&&n(J.last_text,["--","++"])&&(t=!0)),(J.mode!==f.BlockStatement||J.inline_frame)&&J.mode!==f.Statement||"{"!==J.last_text&&";"!==J.last_text||g()):i&&(m(),e=!1,t=!1),z.space_before_token=z.space_before_token||e,v(),z.space_before_token=t}function q(){if(z.raw)return z.add_raw_token(X),void(X.directives&&"end"===X.directives.preserve&&(z.raw=ie.test_output_raw));if(X.directives)return g(!1,!0),v(),"start"===X.directives.preserve&&(z.raw=!0),void g(!1,!0);if(!u.newline.test(X.text)&&!X.wanted_newline)return z.space_before_token=!0,v(),void(z.space_before_token=!0);var e,t=h(X.text),n=!1,r=!1,a=X.whitespace_before,s=a.length;for(g(!1,!0),t.length>1&&(n=C(t.slice(1),"*"),r=N(t.slice(1),a)),v(t[0]),e=1;es?v(t[e].substring(s)):z.add_token(t[e]);g(!1,!0)}function H(){X.wanted_newline?g(!1,!0):z.trim(!0),z.space_before_token=!0,v(),g(!1,!0)}function U(){S(),"TK_RESERVED"===Y&&R(J.last_text)?z.space_before_token=!0:m(")"===J.last_text&&ie.break_chained_methods),v()}function K(){v(),"\n"===X.text[X.text.length-1]&&g()}function W(){for(;J.mode===f.Statement;)E()}var z,V,G,X,Y,Q,Z,J,ee,te,ne,re,ie,ae=[],se="";for(re={TK_START_EXPR:D,TK_END_EXPR:L,TK_START_BLOCK:P,TK_END_BLOCK:O,TK_WORD:I,TK_RESERVED:I,TK_SEMICOLON:j,TK_STRING:M,TK_EQUALS:$,TK_OPERATOR:F,TK_COMMA:B,TK_BLOCK_COMMENT:q,TK_COMMENT:H,TK_DOT:U,TK_UNKNOWN:K,TK_EOF:W},t=t?t:{},ie={},void 0!==t.braces_on_own_line&&(ie.brace_style=t.braces_on_own_line?"expand":"collapse"),ie.brace_style=t.brace_style?t.brace_style:ie.brace_style?ie.brace_style:"collapse","expand-strict"===ie.brace_style&&(ie.brace_style="expand"),ie.indent_size=t.indent_size?parseInt(t.indent_size,10):4,ie.indent_char=t.indent_char?t.indent_char:" ",ie.eol=t.eol?t.eol:"auto",ie.preserve_newlines=void 0===t.preserve_newlines||t.preserve_newlines,ie.break_chained_methods=void 0!==t.break_chained_methods&&t.break_chained_methods,ie.max_preserve_newlines=void 0===t.max_preserve_newlines?0:parseInt(t.max_preserve_newlines,10),ie.space_in_paren=void 0!==t.space_in_paren&&t.space_in_paren,ie.space_in_empty_paren=void 0!==t.space_in_empty_paren&&t.space_in_empty_paren,ie.jslint_happy=void 0!==t.jslint_happy&&t.jslint_happy,ie.space_after_anon_function=void 0!==t.space_after_anon_function&&t.space_after_anon_function,ie.keep_array_indentation=void 0!==t.keep_array_indentation&&t.keep_array_indentation,ie.space_before_conditional=void 0===t.space_before_conditional||t.space_before_conditional,ie.unescape_strings=void 0!==t.unescape_strings&&t.unescape_strings,ie.wrap_line_length=void 0===t.wrap_line_length?0:parseInt(t.wrap_line_length,10),ie.e4x=void 0!==t.e4x&&t.e4x,ie.end_with_newline=void 0!==t.end_with_newline&&t.end_with_newline,ie.comma_first=void 0!==t.comma_first&&t.comma_first,ie.operator_position=a(t.operator_position),ie.test_output_raw=void 0!==t.test_output_raw&&t.test_output_raw,ie.jslint_happy&&(ie.space_after_anon_function=!0),t.indent_with_tabs&&(ie.indent_char="\t",ie.indent_size=1),"auto"===ie.eol&&(ie.eol="\n",e&&u.lineBreak.test(e||"")&&(ie.eol=e.match(u.lineBreak)[0])),ie.eol=ie.eol.replace(/\\r/,"\r").replace(/\\n/,"\n"),Z="";ie.indent_size>0;)Z+=ie.indent_char,ie.indent_size-=1;var oe=0;if(e&&e.length){for(;" "===e.charAt(oe)||"\t"===e.charAt(oe);)se+=e.charAt(oe),oe+=1;e=e.substring(oe)}Y="TK_START_BLOCK",Q="",z=new l(Z,se),z.raw=ie.test_output_raw,te=[],x(f.BlockStatement),this.beautify=function(){function t(){return n=A()}var n,r;for(G=new c(e,ie,Z),ae=G.tokenize(),V=0;t();){for(var i=0;i0&&(n-=1,t-=e.indent_length)},this.trim=function(){for(;" "===this.last();)r.pop(),t-=1;i=0===r.length},this.toString=function(){var t="";return this._empty||(n>=0&&(t=e.indent_cache[n]),t+=r.join("")),t}}function l(e,t){t=t||"",this.indent_cache=[t],this.baseIndentLength=t.length,this.indent_length=e.length,this.raw=!1;var n=[];this.baseIndentString=t,this.indent_string=e,this.previous_line=null,this.current_line=null,this.space_before_token=!1,this.add_outputline=function(){this.previous_line=this.current_line,this.current_line=new o(this),n.push(this.current_line)},this.add_outputline(),this.get_line_number=function(){ +return n.length},this.add_new_line=function(e){return(1!==this.get_line_number()||!this.just_added_newline())&&(!(!e&&this.just_added_newline())&&(this.raw||this.add_outputline(),!0))},this.get_code=function(){var e=n.join("\n").replace(/[\r\n\t ]+$/,"");return e},this.set_indent=function(e){if(n.length>1){for(;e>=this.indent_cache.length;)this.indent_cache.push(this.indent_cache[this.indent_cache.length-1]+this.indent_string);return this.current_line.set_indent(e),!0}return this.current_line.set_indent(0),!1},this.add_raw_token=function(e){for(var t=0;t1&&this.current_line.is_empty();)n.pop(),this.current_line=n[n.length-1],this.current_line.trim();this.previous_line=n.length>1?n[n.length-2]:null},this.just_added_newline=function(){return this.current_line.is_empty()},this.just_added_blankline=function(){if(this.just_added_newline()){if(1===n.length)return!0;var e=n[n.length-2];return e.is_empty()}return!1}}function c(e,t){function i(e){if(!e.match(E))return null;var t={};T.lastIndex=0;for(var n=T.exec(e);n;)t[n[1]]=n[2],n=T.exec(e);return t}function a(){var e,a=[];g=0,b="";var h=w.next();if(null===h)return["","TK_EOF"];var E;for(E=y.length?y[y.length-1]:new m("TK_START_BLOCK","{");n(h,o);)if(u.newline.test(h)?"\n"===h&&"\r"===w.peek(-2)||(g+=1,a=[]):a.push(h),h=w.next(),null===h)return["","TK_EOF"];if(a.length&&(b=a.join("")),l.test(h)||"."===h&&w.testChar(l)){var T=!0,N=!0,R=l;for("0"===h&&w.testChar(/[XxOoBb]/)?(T=!1,N=!1,R=w.testChar(/[Bb]/)?c:w.testChar(/[Oo]/)?p:d,h+=w.next()):"."===h?T=!1:(h="",w.back());w.testChar(R);)h+=w.next(),T&&"."===w.peek()?(h+=w.next(),T=!1):N&&w.testChar(/[Ee]/)&&(h+=w.next(),w.testChar(/[+-]/)&&(h+=w.next()),N=!1,T=!1);return[h,"TK_WORD"]}if(u.isIdentifierStart(w.peekCharCode(-1))){if(w.hasNext())for(;u.isIdentifierChar(w.peekCharCode())&&(h+=w.next(),w.hasNext()););return"TK_DOT"===E.type||"TK_RESERVED"===E.type&&n(E.text,["set","get"])||!n(h,x)?[h,"TK_WORD"]:"in"===h?[h,"TK_OPERATOR"]:[h,"TK_RESERVED"]}if("("===h||"["===h)return[h,"TK_START_EXPR"];if(")"===h||"]"===h)return[h,"TK_END_EXPR"];if("{"===h)return[h,"TK_START_BLOCK"];if("}"===h)return[h,"TK_END_BLOCK"];if(";"===h)return[h,"TK_SEMICOLON"];if("/"===h){var A,D="";if("*"===w.peek()){w.next(),A=w.match(_),D="/*"+A[0];var L=i(D);return L&&"start"===L.ignore&&(A=w.match(S),D+=A[0]),D=D.replace(u.allLineBreaks,"\n"),[D,"TK_BLOCK_COMMENT",L]}if("/"===w.peek())return w.next(),A=w.match(k),D="//"+A[0],[D,"TK_COMMENT"]}var P=/<()([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g;if("`"===h||"'"===h||'"'===h||("/"===h||t.e4x&&"<"===h&&w.test(P,-1))&&("TK_RESERVED"===E.type&&n(E.text,["return","case","throw","else","do","typeof","yield"])||"TK_END_EXPR"===E.type&&")"===E.text&&E.parent&&"TK_RESERVED"===E.parent.type&&n(E.parent.text,["if","while","for"])||n(E.type,["TK_COMMENT","TK_START_EXPR","TK_START_BLOCK","TK_END_BLOCK","TK_OPERATOR","TK_EQUALS","TK_EOF","TK_SEMICOLON","TK_COMMA"]))){var O=h,I=!1,j=!1;if(e=h,"/"===O)for(var M=!1;w.hasNext()&&(I||M||w.peek()!==O)&&!w.testChar(u.newline);)e+=w.peek(),I?I=!1:(I="\\"===w.peek(),"["===w.peek()?M=!0:"]"===w.peek()&&(M=!1)),w.next();else if(t.e4x&&"<"===O){var $=/[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g;w.back();var B="",F=w.match(P);if(F){for(var q=F[2].replace(/^{\s+/,"{").replace(/\s+}$/,"}"),H=0===q.indexOf("{"),U=0;F;){var K=!!F[1],W=F[2],z=!!F[F.length-1]||"![CDATA["===W.slice(0,8);if(!z&&(W===q||H&&W.replace(/^{\s+/,"{").replace(/\s+}$/,"}"))&&(K?--U:++U),B+=F[0],U<=0)break;F=w.match($)}return F||(B+=w.match(/[\s\S]*/g)[0]),B=B.replace(u.allLineBreaks,"\n"),[B,"TK_STRING"]}}else{var V=function(t,n,r){for(var i;w.hasNext()&&(i=w.peek(),I||i!==t&&(n||!u.newline.test(i)));)(I||n)&&u.newline.test(i)?("\r"===i&&"\n"===w.peek(1)&&(w.next(),i=w.peek()),e+="\n"):e+=i,I?("x"!==i&&"u"!==i||(j=!0),I=!1):I="\\"===i,w.next(),r&&e.indexOf(r,e.length-r.length)!==-1&&("`"===t?V("}",n,"`"):V("`",n,"${"))};"`"===O?V("`",!0,"${"):V(O)}if(j&&t.unescape_strings&&(e=s(e)),w.peek()===O&&(e+=O,w.next(),"/"===O))for(;w.hasNext()&&u.isIdentifierStart(w.peekCharCode());)e+=w.next();return[e,"TK_STRING"]}if("#"===h){if(0===y.length&&"!"===w.peek()){for(e=h;w.hasNext()&&"\n"!==h;)h=w.next(),e+=h;return[r(e)+"\n","TK_UNKNOWN"]}var G="#";if(w.hasNext()&&w.testChar(l)){do h=w.next(),G+=h;while(w.hasNext()&&"#"!==h&&"="!==h);return"#"===h||("["===w.peek()&&"]"===w.peek(1)?(G+="[]",w.next(),w.next()):"{"===w.peek()&&"}"===w.peek(1)&&(G+="{}",w.next(),w.next())),[G,"TK_WORD"]}}if("<"===h&&("?"===w.peek()||"%"===w.peek())){w.back();var X=w.match(C);if(X)return h=X[0],h=h.replace(u.allLineBreaks,"\n"),[h,"TK_STRING"]}if("<"===h&&w.match(/\!--/g)){for(h="","TK_COMMENT"];if("."===h)return[h,"TK_DOT"];if(n(h,f)){for(;w.hasNext()&&n(h+w.peek(),f)&&(h+=w.next(),w.hasNext()););return","===h?[h,"TK_COMMA"]:"="===h?[h,"TK_EQUALS"]:[h,"TK_OPERATOR"]}return[h,"TK_UNKNOWN"]}function s(e){for(var t="",n=0,r=new h(e),i=null;r.hasNext();)if(i=r.match(/([\s]|[^\\]|\\\\)+/g),i&&(t+=i[0]),"\\"===r.peek()){if(r.next(),"x"===r.peek())i=r.match(/x([0-9A-Fa-f]{2})/g);else{if("u"!==r.peek()){t+="\\",r.hasNext()&&(t+=r.next());continue}i=r.match(/u([0-9A-Fa-f]{4})/g)}if(!i)return e;if(n=parseInt(i[1],16),n>126&&n<=255&&0===i[0].indexOf("x"))return e;if(n>=0&&n<32){t+="\\"+i[0];continue}t+=34===n||39===n||92===n?"\\"+String.fromCharCode(n):String.fromCharCode(n)}return t}var o="\n\r\t ".split(""),l=/[0-9]/,c=/[01]/,p=/[01234567]/,d=/[0123456789abcdefABCDEF]/;this.positionable_operators="!= !== % & && * ** + - / : < << <= == === > >= >> >>> ? ^ | ||".split(" ");var f=this.positionable_operators.concat("! %= &= *= **= ++ += , -- -= /= :: <<= = => >>= >>>= ^= |= ~".split(" "));this.line_starters="continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export".split(",");var g,b,v,y,w,x=this.line_starters.concat(["do","in","else","get","set","new","catch","finally","typeof","yield","async","await","from","as"]),_=/([\s\S]*?)((?:\*\/)|$)/g,k=/([^\n\r\u2028\u2029]*)/g,E=/\/\* beautify( \w+[:]\w+)+ \*\//g,T=/ (\w+)[:](\w+)/g,S=/([\s\S]*?)((?:\/\*\sbeautify\signore:end\s\*\/)|$)/g,C=/((<\?php|<\?=)[\s\S]*?\?>)|(<%[\s\S]*?%>)/g;this.tokenize=function(){w=new h(e),v=!1,y=[];for(var t,n,r,i=null,s=[],o=[];!n||"TK_EOF"!==n.type;){for(r=a(),t=new m(r[1],r[0],g,b);"TK_COMMENT"===t.type||"TK_BLOCK_COMMENT"===t.type||"TK_UNKNOWN"===t.type;)"TK_BLOCK_COMMENT"===t.type&&(t.directives=r[2]),o.push(t),r=a(),t=new m(r[1],r[0],g,b);o.length&&(t.comments_before=o,o=[]),"TK_START_BLOCK"===t.type||"TK_START_EXPR"===t.type?(t.parent=n,s.push(i),i=t):("TK_END_BLOCK"===t.type||"TK_END_EXPR"===t.type)&&i&&("]"===t.text&&"["===i.text||")"===t.text&&"("===i.text||"}"===t.text&&"{"===i.text)&&(t.parent=i.parent,t.opened=i,i=s.pop()),y.push(t),n=t}return y}}var u={};!function(e){var t="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",n="̀-ͯ҃-֑҇-ׇֽֿׁׂׅׄؐ-ؚؠ-ىٲ-ۓۧ-ۨۻ-ۼܰ-݊ࠀ-ࠔࠛ-ࠣࠥ-ࠧࠩ-࠭ࡀ-ࡗࣤ-ࣾऀ-ःऺ-़ा-ॏ॑-ॗॢ-ॣ०-९ঁ-ঃ়া-ৄেৈৗয়-ৠਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢ-ૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୟ-ୠ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఁ-ఃె-ైొ-్ౕౖౢ-ౣ౦-౯ಂಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢ-ೣ೦-೯ംഃെ-ൈൗൢ-ൣ൦-൯ංඃ්ා-ුූෘ-ෟෲෳิ-ฺเ-ๅ๐-๙ິ-ູ່-ໍ໐-໙༘༙༠-༩༹༵༷ཁ-ཇཱ-྄྆-྇ྍ-ྗྙ-ྼ࿆က-ဩ၀-၉ၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟ᜎ-ᜐᜠ-ᜰᝀ-ᝐᝲᝳក-ឲ៝០-៩᠋-᠍᠐-᠙ᤠ-ᤫᤰ-᤻ᥑ-ᥭᦰ-ᧀᧈ-ᧉ᧐-᧙ᨀ-ᨕᨠ-ᩓ᩠-᩿᩼-᪉᪐-᪙ᭆ-ᭋ᭐-᭙᭫-᭳᮰-᮹᯦-᯳ᰀ-ᰢ᱀-᱉ᱛ-ᱽ᳐-᳒ᴀ-ᶾḁ-ἕ‌‍‿⁀⁔⃐-⃥⃜⃡-⃰ⶁ-ⶖⷠ-ⷿ〡-〨゙゚Ꙁ-ꙭꙴ-꙽ꚟ꛰-꛱ꟸ-ꠀ꠆ꠋꠣ-ꠧꢀ-ꢁꢴ-꣄꣐-꣙ꣳ-ꣷ꤀-꤉ꤦ-꤭ꤰ-ꥅꦀ-ꦃ꦳-꧀ꨀ-ꨧꩀ-ꩁꩌ-ꩍ꩐-꩙ꩻꫠ-ꫩꫲ-ꫳꯀ-ꯡ꯬꯭꯰-꯹ﬠ-ﬨ︀-️︠-︦︳︴﹍-﹏0-9_",r=new RegExp("["+t+"]"),i=new RegExp("["+t+n+"]");e.newline=/[\n\r\u2028\u2029]/,e.lineBreak=new RegExp("\r\n|"+e.newline.source),e.allLineBreaks=new RegExp(e.lineBreak.source,"g"),e.isIdentifierStart=function(e){return e<65?36===e||64===e:e<91||(e<97?95===e:e<123||e>=170&&r.test(String.fromCharCode(e)))},e.isIdentifierChar=function(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||e>=170&&i.test(String.fromCharCode(e))))}}(u);var p={before_newline:"before-newline",after_newline:"after-newline",preserve_newline:"preserve-newline"},d=[p.before_newline,p.preserve_newline],f={BlockStatement:"BlockStatement",Statement:"Statement",ObjectLiteral:"ObjectLiteral",ArrayLiteral:"ArrayLiteral",ForInitializer:"ForInitializer",Conditional:"Conditional",Expression:"Expression"},h=function(e){var t=e,n=t.length,r=0;this.back=function(){r-=1},this.hasNext=function(){return r=0&&e=0&&e0,this.whitespace_before=r||"",this.parent=i||null,this.opened=null,this.directives=null},g=new s(e,t);return g.beautify()}"function"==typeof define&&define.amd?define("deps/beautify",[],function(){return{js_beautify:e}}):"undefined"!=typeof exports?exports.js_beautify=e:"undefined"!=typeof window?window.js_beautify=e:"undefined"!=typeof global&&(global.js_beautify=e)}(),function(){function e(t,n){function r(){return x=t.charAt(++k),x||""}function i(e){var n="",i=k;return e&&o(),n=t.charAt(k+1)||"",k=i-1,r(),n}function a(e){for(var n=k;r();)if("\\"===x)r();else{if(e.indexOf(x)!==-1)break;if("\n"===x)break}return t.substring(n,k+1)}function s(e){var t=k,n=a(e);return k=t-1,r(),n}function o(){for(var e="";_.test(i());)r(),e+=x;return e}function l(){var e="";for(x&&_.test(x)&&(e=x);_.test(r());)e+=x;return e}function c(e){var n=k;for(e="/"===i(),r();r();){if(!e&&"*"===x&&"/"===i()){r();break}if(e&&"\n"===x)return t.substring(n,k)}return t.substring(n,k)+x}function u(e){return t.substring(k-e.length,k).toLowerCase()===e}function p(){for(var e=0,n=k+1;nN):D=C>=N):"}"===x?(f(),R["}"](x),D=!1,L=!1,N&&N--,v&&0===C&&R.newLine(!0)):":"===x?(o(),!D&&!P||u("&")||p()||u("(")?(u(" ")&&" "!==A[A.length-1]&&A.push(" "),":"===i()?(r(),A.push("::")):A.push(":")):(L=!0,A.push(":"),R.singleSpace())):'"'===x||"'"===x?(R.preserveSingleSpace(),A.push(a(x))):";"===x?(L=!1,A.push(x),R.newLine()):"("===x?u("url")?(A.push(x),o(),r()&&(")"!==x&&'"'!==x&&"'"!==x?A.push(a(")")):k--)):(E++,R.preserveSingleSpace(),A.push(x),o()):")"===x?(A.push(x),E--):","===x?(A.push(x),o(),g&&!L&&E<1?R.newLine():R.singleSpace()):(">"===x||"+"===x||"~"===x)&&!L&&E<1?y?(R.singleSpace(),A.push(x),R.singleSpace()):(A.push(x),o(),x&&_.test(x)&&(x="")):"]"===x?A.push(x):"["===x?(R.preserveSingleSpace(),A.push(x)):"="===x?(o(),x="=",A.push(x)):(R.preserveSingleSpace(),A.push(x))}var q="";return T&&(q+=T),q+=A.join("").replace(/[\r\n\t ]+$/,""),b&&(q+="\n"),"\n"!==w&&(q=q.replace(/[\n]/g,w)),q}e.NESTED_AT_RULE={"@page":!0,"@font-face":!0,"@keyframes":!0,"@media":!0,"@supports":!0,"@document":!0},e.CONDITIONAL_GROUP_RULE={"@media":!0,"@supports":!0,"@document":!0},"function"==typeof define&&define.amd?define("deps/beautify-css",[],function(){return{css_beautify:e}}):"undefined"!=typeof exports?exports.css_beautify=e:"undefined"!=typeof window?window.css_beautify=e:"undefined"!=typeof global&&(global.css_beautify=e)}(),function(){function e(e){return e.replace(/^\s+/g,"")}function t(e){return e.replace(/\s+$/g,"")}function n(n,r,i,a){function s(){function n(e){var t="",n=function(n){var r=t+n.toLowerCase();t=r.length<=e.length?r:r.substr(r.length-e.length,e.length)},r=function(){return t.indexOf(e)===-1};return{add:n,doesNotMatch:r}}return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.newlines=0,this.indent_content=l,this.indent_body_inner_html=c,this.indent_head_inner_html=u,this.Utils={whitespace:"\n\r\t ".split(""),single_token:["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr","!doctype","?xml","?php","basefont","isindex"],extra_liners:_,in_array:function(e,t){for(var n=0;n=this.wrap_line_length?(this.print_newline(!1,e),this.print_indentation(e),!0):(this.line_char_count++,e.push(" "),!1)},this.get_content=function(){for(var e="",t=[];"<"!==this.input.charAt(this.pos);){if(this.pos>=this.input.length)return t.length?t.join(""):["","TK_EOF"];if(this.traverse_whitespace())this.space_or_wrap(t);else{if(v){var n=this.input.substr(this.pos,3);if("{{#"===n||"{{/"===n)break;if("{{!"===n)return[this.get_tag(),"TK_TAG_HANDLEBARS_COMMENT"];if("{{"===this.input.substr(this.pos,2)&&"{{else}}"===this.get_tag(!0))break}e=this.input.charAt(this.pos),this.pos++,this.line_char_count++,t.push(e)}}return t.length?t.join(""):""},this.get_contents_to=function(e){if(this.pos===this.input.length)return["","TK_EOF"];var t="",n=new RegExp("","igm");n.lastIndex=this.pos;var r=n.exec(this.input),i=r?r.index:this.input.length;return this.pos=this.input.length)return e&&(this.pos=c,this.line_char_count=u),a.length?a.join(""):["","TK_EOF"];if(i=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(i,this.Utils.whitespace))o=!0;else{if("'"!==i&&'"'!==i||(i+=this.get_unformatted(i),o=!0),"="===i&&(o=!1),a.length&&"="!==a[a.length-1]&&">"!==i&&o){var p=this.space_or_wrap(a),f=p&&"/"!==i&&"force"!==y;if(o=!1,l||"force"!==y||"/"===i||(this.print_newline(!1,a),this.print_indentation(a),f=!0),f)for(var h=0;h=2&&"{"===a[a.length-1]&&"{"===a[a.length-2]&&(t="#"===i||"/"===i||"!"===i?this.pos-3:this.pos-2,r="{"),this.line_char_count++,a.push(i),a[1]&&("!"===a[1]||"?"===a[1]||"%"===a[1])){a=[this.get_comment(t)];break}if(v&&a[1]&&"{"===a[1]&&a[2]&&"!"===a[2]){a=[this.get_comment(t)];break}if(v&&"{"===r&&a.length>2&&"}"===a[a.length-2]&&"}"===a[a.length-1])break}}while(">"!==i);var b,x,_=a.join("");b=_.indexOf(" ")!==-1?_.indexOf(" "):"{"===_.charAt(0)?_.indexOf("}"):_.indexOf(">"),x="<"!==_.charAt(0)&&v?"#"===_.charAt(2)?3:2:1;var k=_.substring(x,b).toLowerCase();return"/"===_.charAt(_.length-2)||this.Utils.in_array(k,this.Utils.single_token)?e||(this.tag_type="SINGLE"):v&&"{"===_.charAt(0)&&"else"===k?e||(this.indent_to_tag("if"),this.tag_type="HANDLEBARS_ELSE",this.indent_content=!0,this.traverse_whitespace()):this.is_unformatted(k,m)?(s=this.get_unformatted("",_),a.push(s),n=this.pos-1,this.tag_type="SINGLE"):"script"===k&&(_.search("type")===-1||_.search("type")>-1&&_.search(/\b(text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect)/)>-1)?e||(this.record_tag(k),this.tag_type="SCRIPT"):"style"===k&&(_.search("type")===-1||_.search("type")>-1&&_.search("text/css")>-1)?e||(this.record_tag(k),this.tag_type="STYLE"):"!"===k.charAt(0)?e||(this.tag_type="SINGLE",this.traverse_whitespace()):e||("/"===k.charAt(0)?(this.retrieve_tag(k.substring(1)),this.tag_type="END"):(this.record_tag(k),"html"!==k.toLowerCase()&&(this.indent_content=!0),this.tag_type="START"),this.traverse_whitespace()&&this.space_or_wrap(a),this.Utils.in_array(k,this.Utils.extra_liners)&&(this.print_newline(!1,this.output),this.output.length&&"\n"!==this.output[this.output.length-2]&&this.print_newline(!0,this.output))),e&&(this.pos=c,this.line_char_count=u),a.join("")},this.get_comment=function(e){var t="",n=">",r=!1;this.pos=e;var i=this.input.charAt(this.pos);for(this.pos++;this.pos<=this.input.length&&(t+=i,t.charAt(t.length-1)!==n.charAt(n.length-1)||t.indexOf(n)===-1);)!r&&t.length<10&&(0===t.indexOf("",r=!0):0===t.indexOf("",r=!0):0===t.indexOf("",r=!0):0===t.indexOf("",r=!0):0===t.indexOf("{{!")?(n="}}",r=!0):0===t.indexOf("",r=!0):0===t.indexOf("<%")&&(n="%>",r=!0)),i=this.input.charAt(this.pos),this.pos++;return t},this.get_unformatted=function(e,t){if(t&&t.toLowerCase().indexOf(e)!==-1)return"";var r="",i="",a=!0,s=n(e);do{if(this.pos>=this.input.length)return i;if(r=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(r,this.Utils.whitespace)){if(!a){this.line_char_count--;continue}if("\n"===r||"\r"===r){i+="\n",this.line_char_count=0;continue}}i+=r,s.add(r),this.line_char_count++,a=!0,v&&"{"===r&&i.length&&"{"===i.charAt(i.length-2)&&(i+=this.get_unformatted("}}"))}while(s.doesNotMatch());return i},this.get_token=function(){var e;if("TK_TAG_SCRIPT"===this.last_token||"TK_TAG_STYLE"===this.last_token){var t=this.last_token.substr(7);return e=this.get_contents_to(t),"string"!=typeof e?e:[e,"TK_"+t]}if("CONTENT"===this.current_mode)return e=this.get_content(),"string"!=typeof e?e:[e,"TK_CONTENT"];if("TAG"===this.current_mode){if(e=this.get_tag(),"string"!=typeof e)return e;var n="TK_TAG_"+this.tag_type;return[e,n]}},this.get_full_indent=function(e){return e=this.indent_level+e||0,e<1?"":Array(e+1).join(this.indent_string)},this.is_unformatted=function(e,t){if(!this.Utils.in_array(e,t))return!1;if("a"!==e.toLowerCase()||!this.Utils.in_array("a",t))return!0;var n=this.get_tag(!0),r=(n||"").match(/^\s*<\s*\/?([a-z]*)\s*[^>]*>\s*$/);return!(r&&!this.Utils.in_array(r,t))},this.printer=function(n,r,i,a,s){this.input=n||"",this.input=this.input.replace(/\r\n|[\r\u2028\u2029]/g,"\n"),this.output=[],this.indent_character=r,this.indent_string="",this.indent_size=i,this.brace_style=s,this.indent_level=0,this.wrap_line_length=a,this.line_char_count=0;for(var o=0;o0&&(e=t(e)),e&&""!==e&&(e.length>1&&"\n"===e.charAt(e.length-1)?(this.output.push(e.slice(0,-1)),this.print_newline(!1,this.output)):this.output.push(e));for(var n=0;n0,this.output);this.newlines=0},this.indent=function(){this.indent_level++},this.unindent=function(){this.indent_level>0&&this.indent_level--}},this}var o,l,c,u,p,d,f,h,m,g,b,v,y,w,x,_,k;for(r=r||{},void 0!==r.wrap_line_length&&0!==parseInt(r.wrap_line_length,10)||void 0===r.max_char||0===parseInt(r.max_char,10)||(r.wrap_line_length=r.max_char),l=void 0!==r.indent_inner_html&&r.indent_inner_html,c=void 0===r.indent_body_inner_html||r.indent_body_inner_html,u=void 0===r.indent_head_inner_html||r.indent_head_inner_html,p=void 0===r.indent_size?4:parseInt(r.indent_size,10),d=void 0===r.indent_char?" ":r.indent_char,h=void 0===r.brace_style?"collapse":r.brace_style,f=0===parseInt(r.wrap_line_length,10)?32786:parseInt(r.wrap_line_length||250,10),m=r.unformatted||["a","abbr","area","audio","b","bdi","bdo","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","keygen","label","map","mark","math","meter","noscript","object","output","progress","q","ruby","s","samp","select","small","span","strong","sub","sup","svg","template","textarea","time","u","var","video","wbr","text","acronym","address","big","dt","ins","small","strike","tt","pre"],g=void 0===r.preserve_newlines||r.preserve_newlines,b=g?isNaN(parseInt(r.max_preserve_newlines,10))?32786:parseInt(r.max_preserve_newlines,10):0,v=void 0!==r.indent_handlebars&&r.indent_handlebars,y=void 0===r.wrap_attributes?"auto":r.wrap_attributes,w=isNaN(parseInt(r.wrap_attributes_indent_size,10))?p:parseInt(r.wrap_attributes_indent_size,10),x=void 0!==r.end_with_newline&&r.end_with_newline,_="object"==typeof r.extra_liners&&r.extra_liners?r.extra_liners.concat():"string"==typeof r.extra_liners?r.extra_liners.split(","):"head,body,/html".split(","),k=r.eol?r.eol:"\n",r.indent_with_tabs&&(d="\t",p=1),k=k.replace(/\\r/,"\r").replace(/\\n/,"\n"),o=new s,o.printer(n,d,p,f,h);;){var E=o.get_token();if(o.token_text=E[0],o.token_type=E[1],"TK_EOF"===o.token_type)break;switch(o.token_type){case"TK_TAG_START":o.print_newline(!1,o.output),o.print_token(o.token_text),o.indent_content&&(!o.indent_body_inner_html&&o.token_text.match(//)||!o.indent_head_inner_html&&o.token_text.match(//)||o.indent(),o.indent_content=!1),o.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":o.print_newline(!1,o.output),o.print_token(o.token_text),o.current_mode="CONTENT";break;case"TK_TAG_END":if("TK_CONTENT"===o.last_token&&""===o.last_text){var T=(o.token_text.match(/\w+/)||[])[0],S=null;o.output.length&&(S=o.output[o.output.length-1].match(/(?:<|{{#)\s*(\w+)/)),(null===S||S[1]!==T&&!o.Utils.in_array(S[1],m))&&o.print_newline(!1,o.output)}o.print_token(o.token_text),o.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var C=o.token_text.match(/^\s*<([a-z-]+)/i);C&&o.Utils.in_array(C[1],m)||o.print_newline(!1,o.output),o.print_token(o.token_text),o.current_mode="CONTENT";break;case"TK_TAG_HANDLEBARS_ELSE":for(var N=!1,R=o.output.length-1;R>=0&&"\n"!==o.output[R];R--)if(o.output[R].match(/{{#if/)){N=!0;break}N||o.print_newline(!1,o.output),o.print_token(o.token_text),o.indent_content&&(o.indent(),o.indent_content=!1),o.current_mode="CONTENT";break;case"TK_TAG_HANDLEBARS_COMMENT":o.print_token(o.token_text),o.current_mode="TAG";break;case"TK_CONTENT":o.print_token(o.token_text),o.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(""!==o.token_text){o.print_newline(!1,o.output);var A,D=o.token_text,L=1;"TK_SCRIPT"===o.token_type?A="function"==typeof i&&i:"TK_STYLE"===o.token_type&&(A="function"==typeof a&&a),"keep"===r.indent_scripts?L=0:"separate"===r.indent_scripts&&(L=-o.indent_level);var P=o.get_full_indent(L);if(A){var O=function(){this.eol="\n"};O.prototype=r;var I=new O;D=A(D.replace(/^\s*/,P),I)}else{var j=D.match(/^\s*/)[0],M=j.match(/[^\n\r]*$/)[0].split(o.indent_string).length-1,$=o.get_full_indent(L-M);D=D.replace(/^\s*/,P).replace(/\r\n|\r|\n/g,"\n"+$).replace(/\s+$/,"")}D&&(o.print_token_raw(D),o.print_newline(!0,o.output))}o.current_mode="TAG";break;default:""!==o.token_text&&o.print_token(o.token_text)}o.last_token=o.token_type,o.last_text=o.token_text}var B=o.output.join("").replace(/[\r\n\t ]+$/,"");return x&&(B+="\n"),"\n"!==k&&(B=B.replace(/[\n]/g,k)),B}if("function"==typeof define&&define.amd)define("deps/beautify-html",["require","./beautify","./beautify-css"],function(e){var t=e("./beautify"),r=e("./beautify-css");return{html_beautify:function(e,i){return n(e,i,t.js_beautify,r.css_beautify)}}});else if("undefined"!=typeof exports){var r=require("./beautify.js"),i=require("./beautify-css.js");exports.html_beautify=function(e,t){return n(e,t,r.js_beautify,i.css_beautify)}}else"undefined"!=typeof window?window.html_beautify=function(e,t){return n(e,t,window.js_beautify,window.css_beautify)}:"undefined"!=typeof global&&(global.html_beautify=function(e,t){return n(e,t,global.js_beautify,global.css_beautify)})}(),define("core/beautify-options",[],function(){return Object.freeze({brace_style:"expand",extra_liners:["section"],indent_char:" ",indent_handlebars:!1,indent_inner_html:!1,indent_size:2,max_preserve_newlines:5,preserve_newlines:!0,wrap_line_length:0})}),define("core/markdown",["deps/marked","core/utils","deps/highlight","deps/beautify-html","core/beautify-options"],function(e,t,n,r,i){function a(){var e=document.createElement("div");return function(r,i){var a,s=t.calculateLeftPad(r);if(s){var o=new RegExp("^ {"+s+"}","gm");a=r.replace(o,"")}else a=r;e.innerHTML=a;var l=e.textContent,c=[].concat(i||p),u=n.highlightAuto(l,c);return u.value}}function s(n){var r=t.normalizePadding(n),i=r.replace(/>/g,">"),a=e(i);return a}function o(e){return function(t){Array.from(t.querySelectorAll(e)).map(function(e){return{element:e,html:s(e.innerHTML)}}).reduce(function(e,t){var n=t.element,r=e;for(e.innerHTML=t.html,e.firstChild&&n.localName===e.firstChild.localName&&(r=e.firstChild),n.innerHTML="";r.firstChild;)t.element.appendChild(r.firstChild);return e},t.ownerDocument.createElement("div"))}}function l(e){function t(e){return parseInt(e.tagName.charAt(1),10)}function n(e){for(var t;e>0;)if(e--,t=c[e])return t}function r(e){for(e=e.firstChild;e;){if(p.test(e.tagName))return e;e=e.nextSibling}return null}function i(r){var i=e.createElement("section"),a=t(r);i.appendChild(r),n(a).appendChild(i),c[a]=i,c.length=a+1,u=i}function a(e,i){var a=r(e),s=a?t(a):1,o=n(s);a&&e.removeChild(a),e.appendChild(i(e)),a&&e.insertBefore(a,e.firstChild),o.appendChild(e),u=o}function s(e){u.appendChild(e)}function o(){return l}var l=e.createDocumentFragment(),c=[l],u=l,p=/H[1-6]/;return{addHeader:i,addSection:a,addElement:s,getRoot:o}}function c(e,t){function n(e){for(var r,i,a=l(t);e.firstChild;)if(r=e.firstChild,r.nodeType===Node.ELEMENT_NODE)switch(i=r.localName){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":a.addHeader(r);break;case"section":a.addSection(r,n);break;default:a.addElement(r)}else e.removeChild(r);return a.getRoot()}return n(e)}function u(e){Array.from(e).forEach(function(e){var t=e.ownerDocument.createTextNode(e.textContent);e.parentElement.replaceChild(t,e)})}var p=Object.freeze(["css","html","http","js","json","markdown","xml","xquery"]);n.configure({tabReplace:" "}),e.setOptions({sanitize:!1,gfm:!0,highlight:a()});var d=o("section, .issue, .note, .req");return{run:function(e,t,n){if("markdown"===e.format){var a=t.getElementById("respec-ui");a.remove();var o=t.createElement("body");o.innerHTML=t.body.innerHTML,d(o);var l=s(o.innerHTML),p=l.replace(/

\s*<\/p>/gm,"").replace(/\n\s*"= 2.0.0-beta.1",7:">= 4.0.0"};t.REVISION_CHANGES=h;var m="[object Object]";r.prototype={constructor:r,logger:p.default,log:p.default.log,registerHelper:function(e,t){if(a.toString.call(e)===m){if(t)throw new o.default("Arg not supported with multiple helpers");a.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(a.toString.call(e)===m)a.extend(this.partials,e);else{if("undefined"==typeof t)throw new o.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if(a.toString.call(e)===m){if(t)throw new o.default("Arg not supported with multiple decorators");a.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]}};var g=p.default.log;t.log=g,t.createFrame=a.createFrame,t.logger=p.default},function(e,t){"use strict";function n(e){return u[e]}function r(e){for(var t=1;t":">",'"':""","'":"'","`":"`","=":"="},p=/[&<>"'`=]/g,d=/[&<>"'`=]/,f=Object.prototype.toString;t.toString=f;var h=function(e){return"function"==typeof e};h(/x/)&&(t.isFunction=h=function(e){return"function"==typeof e&&"[object Function]"===f.call(e)}),t.isFunction=h;var m=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===f.call(e)};t.isArray=m},function(e,t){"use strict";function n(e,t){var i=t&&t.loc,a=void 0,s=void 0;i&&(a=i.start.line,s=i.start.column,e+=" - "+a+":"+s);for(var o=Error.prototype.constructor.call(this,e),l=0;l0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):i(this);if(n.data&&n.ids){var s=r.createFrame(n.data);s.contextPath=r.appendContextPath(n.data.contextPath,n.name),n={data:s}}return a(t,n)})},e.exports=t.default},function(e,t,n){"use strict";var r=n(1).default;t.__esModule=!0;var i=n(5),a=n(6),s=r(a);t.default=function(e){e.registerHelper("each",function(e,t){function n(t,n,a){c&&(c.key=t,c.index=n,c.first=0===n,c.last=!!a,u&&(c.contextPath=u+t)),l+=r(e[t],{data:c,blockParams:i.blockParams([e[t],t],[u+t,null])})}if(!t)throw new s.default("Must pass iterator to #each");var r=t.fn,a=t.inverse,o=0,l="",c=void 0,u=void 0;if(t.data&&t.ids&&(u=i.appendContextPath(t.data.contextPath,t.ids[0])+"."),i.isFunction(e)&&(e=e.call(this)),t.data&&(c=i.createFrame(t.data)),e&&"object"==typeof e)if(i.isArray(e))for(var p=e.length;o=0?t:parseInt(e,10)}return e},log:function(e){if(e=i.lookupLevel(e),"undefined"!=typeof console&&i.lookupLevel(i.level)<=e){var t=i.methodMap[e];console[t]||(t="log");for(var n=arguments.length,r=Array(n>1?n-1:0),a=1;a2&&x.push("'"+this.terminals_[v]+"'");k=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:p,expected:x})}}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:r.push(f),i.push(this.lexer.yytext),a.push(this.lexer.yylloc),r.push(g[1]),f=null,h?(f=h,h=null):(c=this.lexer.yyleng,o=this.lexer.yytext,l=this.lexer.yylineno,p=this.lexer.yylloc,u>0&&u--);break;case 2:if(y=this.productions_[g[1]][1],_.$=i[i.length-y],_._$={first_line:a[a.length-(y||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(y||1)].first_column,last_column:a[a.length-1].last_column},d&&(_._$.range=[a[a.length-(y||1)].range[0],a[a.length-1].range[1]]),b=this.performAction.call(_,o,c,l,this.yy,g[1],i,a),"undefined"!=typeof b)return b;y&&(r=r.slice(0,-1*y*2),i=i.slice(0,-1*y),a=a.slice(0,-1*y)),r.push(this.productions_[g[1]][0]),i.push(_.$),a.push(_._$),w=s[r[r.length-2]][r[r.length-1]],r.push(w);break;case 3:return!0}}return!0}},n=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);return t?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this},more:function(){return this._more=!0,this},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r,i;this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),s=0;st[0].length)||(t=n,r=s,this.options.flex));s++);return t?(i=t[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,a[r],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?e:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return"undefined"!=typeof e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,r){function i(e,n){return t.yytext=t.yytext.substr(e,t.yyleng-n)}switch(n){case 0:if("\\\\"===t.yytext.slice(-2)?(i(0,1),this.begin("mu")):"\\"===t.yytext.slice(-1)?(i(0,1),this.begin("emu")):this.begin("mu"),t.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(t.yytext=t.yytext.substr(5,t.yyleng-9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(t.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return t.yytext=i(1,2).replace(/\\"/g,'"'),80;case 32:return t.yytext=i(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return t.yytext=t.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},e.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],e.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},e}();return t.lexer=n,e.prototype=t,t.Parser=e,new e}();t.__esModule=!0,t.default=n},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=e}function i(e,t,n){void 0===t&&(t=e.length);var r=e[t-1],i=e[t-2];return r?"ContentStatement"===r.type?(i||!n?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(r.original):void 0:n}function a(e,t,n){void 0===t&&(t=-1);var r=e[t+1],i=e[t+2];return r?"ContentStatement"===r.type?(i||!n?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(r.original):void 0:n}function s(e,t,n){var r=e[null==t?0:t+1];if(r&&"ContentStatement"===r.type&&(n||!r.rightStripped)){var i=r.value;r.value=r.value.replace(n?/^\s+/:/^[ \t]*\r?\n?/,""),r.rightStripped=r.value!==i}}function o(e,t,n){var r=e[null==t?e.length-1:t-1];if(r&&"ContentStatement"===r.type&&(n||!r.leftStripped)){var i=r.value;return r.value=r.value.replace(n?/\s+$/:/[ \t]+$/,""),r.leftStripped=r.value!==i,r.leftStripped}}var l=n(1).default;t.__esModule=!0;var c=n(25),u=l(c);r.prototype=new u.default,r.prototype.Program=function(e){var t=!this.options.ignoreStandalone,n=!this.isRootSeen;this.isRootSeen=!0;for(var r=e.body,l=0,c=r.length;l0)throw new g.default("Invalid path: "+r,{loc:n});".."===c&&(a++,s+="../")}}return{type:"PathExpression",data:e,depth:a,parts:i,original:r,loc:n}}function c(e,t,n,r,i,a){var s=r.charAt(3)||r.charAt(2),o="{"!==s&&"&"!==s,l=/\*/.test(r);return{type:l?"Decorator":"MustacheStatement",path:e,params:t,hash:n,escaped:o,strip:i,loc:this.locInfo(a)}}function u(e,t,n,i){r(e,n),i=this.locInfo(i);var a={type:"Program",body:t,strip:{},loc:i};return{type:"BlockStatement",path:e.path,params:e.params,hash:e.hash,program:a,openStrip:{},inverseStrip:{},closeStrip:{},loc:i}}function p(e,t,n,i,a,s){i&&i.path&&r(e,i);var o=/\*/.test(e.open);t.blockParams=e.blockParams;var l=void 0,c=void 0;if(n){if(o)throw new g.default("Unexpected inverse block on decorator",n);n.chain&&(n.program.body[0].closeStrip=i.strip),c=n.strip,l=n.program}return a&&(a=l,l=t,t=a),{type:o?"DecoratorBlock":"BlockStatement",path:e.path,params:e.params,hash:e.hash,program:t,inverse:l,openStrip:e.strip,inverseStrip:c,closeStrip:i&&i.strip,loc:this.locInfo(s)}}function d(e,t){if(!t&&e.length){var n=e[0].loc,r=e[e.length-1].loc;n&&r&&(t={source:n.source,start:{line:n.start.line,column:n.start.column},end:{line:r.end.line,column:r.end.column}})}return{type:"Program",body:e,strip:{},loc:t}}function f(e,t,n,i){return r(e,n),{type:"PartialBlockStatement",name:e.path,params:e.params,hash:e.hash,program:t,openStrip:e.strip,closeStrip:n&&n.strip,loc:this.locInfo(i)}}var h=n(1).default;t.__esModule=!0,t.SourceLocation=i,t.id=a,t.stripFlags=s,t.stripComment=o,t.preparePath=l,t.prepareMustache=c,t.prepareRawBlock=u,t.prepareBlock=p,t.prepareProgram=d,t.preparePartialBlock=f;var m=n(6),g=h(m)},function(e,t,n){"use strict";function r(){}function i(e,t,n){if(null==e||"string"!=typeof e&&"Program"!==e.type)throw new u.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+e);t=t||{},"data"in t||(t.data=!0),t.compat&&(t.useDepths=!0);var r=n.parse(e,t),i=(new n.Compiler).compile(r,t);return(new n.JavaScriptCompiler).compile(i,t)}function a(e,t,n){function r(){var r=n.parse(e,t),i=(new n.Compiler).compile(r,t),a=(new n.JavaScriptCompiler).compile(i,t,void 0,!0);return n.template(a)}function i(e,t){return a||(a=r()),a.call(this,e,t)}if(void 0===t&&(t={}),null==e||"string"!=typeof e&&"Program"!==e.type)throw new u.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+e);"data"in t||(t.data=!0),t.compat&&(t.useDepths=!0);var a=void 0;return i._setup=function(e){return a||(a=r()),a._setup(e)},i._child=function(e,t,n,i){return a||(a=r()),a._child(e,t,n,i)},i}function s(e,t){if(e===t)return!0;if(p.isArray(e)&&p.isArray(t)&&e.length===t.length){for(var n=0;n1)throw new u.default("Unsupported number of partial arguments: "+n.length,e);n.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):n.push({type:"PathExpression",parts:[],depth:0}));var r=e.name.original,i="SubExpression"===e.name.type;i&&this.accept(e.name),this.setupFullMustacheParams(e,t,void 0,!0);var a=e.indent||"";this.options.preventIndent&&a&&(this.opcode("appendContent",a),a=""),this.opcode("invokePartial",i,r,a),this.opcode("append")},PartialBlockStatement:function(e){this.PartialStatement(e)},MustacheStatement:function(e){this.SubExpression(e),e.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(e){this.DecoratorBlock(e)},ContentStatement:function(e){e.value&&this.opcode("appendContent",e.value)},CommentStatement:function(){},SubExpression:function(e){o(e);var t=this.classifySexpr(e);"simple"===t?this.simpleSexpr(e):"helper"===t?this.helperSexpr(e):this.ambiguousSexpr(e)},ambiguousSexpr:function(e,t,n){var r=e.path,i=r.parts[0],a=null!=t||null!=n;this.opcode("getContext",r.depth),this.opcode("pushProgram",t),this.opcode("pushProgram",n),r.strict=!0,this.accept(r),this.opcode("invokeAmbiguous",i,a)},simpleSexpr:function(e){var t=e.path;t.strict=!0,this.accept(t),this.opcode("resolvePossibleLambda")},helperSexpr:function(e,t,n){var r=this.setupFullMustacheParams(e,t,n),i=e.path,a=i.parts[0];if(this.options.knownHelpers[a])this.opcode("invokeKnownHelper",r.length,a);else{if(this.options.knownHelpersOnly)throw new u.default("You specified knownHelpersOnly, but used the unknown helper "+a,e);i.strict=!0,i.falsy=!0,this.accept(i),this.opcode("invokeHelper",r.length,i.original,f.default.helpers.simpleId(i))}},PathExpression:function(e){this.addDepth(e.depth),this.opcode("getContext",e.depth);var t=e.parts[0],n=f.default.helpers.scopedId(e),r=!e.depth&&!n&&this.blockParamIndex(t);r?this.opcode("lookupBlockParam",r,e.parts):t?e.data?(this.options.data=!0,this.opcode("lookupData",e.depth,e.parts,e.strict)):this.opcode("lookupOnContext",e.parts,e.falsy,e.strict,n):this.opcode("pushContext")},StringLiteral:function(e){this.opcode("pushString",e.value)},NumberLiteral:function(e){this.opcode("pushLiteral",e.value)},BooleanLiteral:function(e){this.opcode("pushLiteral",e.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(e){var t=e.pairs,n=0,r=t.length;for(this.opcode("pushHash");n=0)return[t,i]}}}},function(e,t,n){"use strict";function r(e){this.value=e}function i(){}function a(e,t,n,r){var i=t.popStack(),a=0,s=n.length;for(e&&s--;a0&&(t+=", "+n.join(", "));var r=0;for(var i in this.aliases){var a=this.aliases[i];this.aliases.hasOwnProperty(i)&&a.children&&a.referenceCount>1&&(t+=", alias"+ ++r+"="+i,a.children[0]="alias"+r)}var s=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&s.push("blockParams"),this.useDepths&&s.push("depths");var o=this.mergeSource(t);return e?(s.push(o),Function.apply(this,s)):this.source.wrap(["function(",s.join(","),") {\n ",o,"}"])},mergeSource:function(e){var t=this.environment.isSimple,n=!this.forceBuffer,r=void 0,i=void 0,a=void 0,s=void 0;return this.source.each(function(e){e.appendToBuffer?(a?e.prepend(" + "):a=e,s=e):(a&&(i?a.prepend("buffer += "):r=!0,s.add(";"),a=s=void 0),i=!0,t||(n=!1))}),n?a?(a.prepend("return "),s.add(";")):i||this.source.push('return "";'):(e+=", buffer = "+(r?"":this.initializeBuffer()),a?(a.prepend("return buffer + "),s.add(";")):this.source.push("return buffer;")),e&&this.source.prepend("var "+e.substring(2)+(r?"":";\n")),this.source.merge()},blockValue:function(e){var t=this.aliasable("helpers.blockHelperMissing"),n=[this.contextName(0)];this.setupHelperArgs(e,0,n);var r=this.popStack();n.splice(1,0,r),this.push(this.source.functionCall(t,"call",n))},ambiguousBlockValue:function(){var e=this.aliasable("helpers.blockHelperMissing"),t=[this.contextName(0)];this.setupHelperArgs("",0,t,!0),this.flushInline();var n=this.topStack();t.splice(1,0,n),this.pushSource(["if (!",this.lastHelper,") { ",n," = ",this.source.functionCall(e,"call",t),"}"])},appendContent:function(e){this.pendingContent?e=this.pendingContent+e:this.pendingLocation=this.source.currentLocation,this.pendingContent=e},append:function(){if(this.isInline())this.replaceStack(function(e){return[" != null ? ",e,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var e=this.popStack();this.pushSource(["if (",e," != null) { ",this.appendToBuffer(e,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(e){this.lastContext=e},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(e,t,n,r){var i=0;r||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(e[i++])),this.resolvePath("context",e,i,t,n)},lookupBlockParam:function(e,t){this.useBlockParams=!0,this.push(["blockParams[",e[0],"][",e[1],"]"]),this.resolvePath("context",t,1)},lookupData:function(e,t,n){e?this.pushStackLiteral("container.data(data, "+e+")"):this.pushStackLiteral("data"),this.resolvePath("data",t,0,!0,n)},resolvePath:function(e,t,n,r,i){var s=this;if(this.options.strict||this.options.assumeObjects)return void this.push(a(this.options.strict&&i,this,t,e));for(var o=t.length;nthis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var e=this.inlineStack;this.inlineStack=[];for(var t=0,n=e.length;t\n

\n {{#if logos}}\n {{showLogos logos}}\n {{else}}\n {{#if prependW3C}}\n \n {{#if isMemberSubmission}}\n \"W3C\n {{/if}}\n {{#if isTeamSubmission}}\n \"W3C\n {{/if}}\n {{/if}}\n {{/if}}\n

\n

{{title}}

\n {{#if subtitle}}\n

{{subtitle}}

\n {{/if}}\n

{{#if prependW3C}}W3C {{/if}}{{textStatus}}

\n
\n {{#unless isNoTrack}}\n
{{l10n.this_version}}
\n
{{thisVersion}}
\n
{{l10n.latest_published_version}}
\n
{{#if latestVersion}}{{latestVersion}}{{else}}none{{/if}}
\n {{/unless}}\n {{#if edDraftURI}}\n
{{l10n.latest_editors_draft}}
\n
{{edDraftURI}}
\n {{/if}}\n {{#if testSuiteURI}}\n
Test suite:
\n
{{testSuiteURI}}
\n {{/if}}\n {{#if implementationReportURI}}\n
Implementation report:
\n
{{implementationReportURI}}
\n {{/if}}\n {{#if bugTrackerHTML}}\n
{{l10n.bug_tracker}}
\n
{{{bugTrackerHTML}}}
\n {{/if}}\n {{#if isED}}\n {{#if prevED}}\n
Previous editor's draft:
\n
{{prevED}}
\n {{/if}}\n {{/if}}\n {{#if showPreviousVersion}}\n
Previous version:
\n
{{prevVersion}}
\n {{/if}}\n {{#if prevRecURI}}\n {{#if isRec}}\n
Previous Recommendation:
\n
{{prevRecURI}}
\n {{else}}\n
Latest Recommendation:
\n
{{prevRecURI}}
\n {{/if}}\n {{/if}}\n
{{#if multipleEditors}}{{l10n.editors}}{{else}}{{l10n.editor}}{{/if}}
\n {{showPeople \"Editor\" editors}}\n {{#if authors}}\n
{{#if multipleAuthors}}{{l10n.authors}}{{else}}{{l10n.author}}{{/if}}
\n {{showPeople \"Author\" authors}}\n {{/if}}\n {{#if otherLinks}}\n {{#each otherLinks}}\n {{#if key}}\n
{{key}}:
\n {{#if data}}\n {{#each data}}\n {{#if value}}\n
\n {{#if href}}{{/if}}\n {{value}}\n {{#if href}}{{/if}}\n
\n {{else}}\n {{#if href}}\n
{{href}}
\n {{/if}}\n {{/if}}\n {{/each}}\n {{else}}\n {{#if value}}\n
\n {{#if href}}{{/if}}\n {{value}}\n {{#if href}}{{/if}}\n
\n {{else}}\n {{#if href}}\n
\n {{href}}\n
\n {{/if}}\n {{/if}}\n {{/if}}\n {{/if}}\n {{/each}}\n {{/if}}\n
\n {{#if errata}}\n

\n Please check the errata for any errors or issues\n reported since publication.\n

\n {{/if}}\n {{#if alternateFormats}}\n

\n {{#if multipleAlternates}}\n This document is also available in these non-normative formats:\n {{else}}\n This document is also available in this non-normative format:\n {{/if}}\n {{{alternatesHTML}}}\n

\n {{/if}}\n {{#if isRec}}\n

\n The English version of this specification is the only normative version. Non-normative\n translations may also be available.\n

\n {{/if}}\n {{#if isUnofficial}}\n {{#if additionalCopyrightHolders}}\n \n {{else}}\n {{#if overrideCopyright}}\n {{{overrideCopyright}}}\n {{else}}\n \n {{/if}}\n {{/if}}\n {{else}}\n {{#if overrideCopyright}}\n {{{overrideCopyright}}}\n {{else}}\n \n {{/if}}\n {{/if}}\n
\n\n")}),define("tmpl!w3c/templates/sotd.html",["deps/handlebars"],function(e){return e.compile("

{{l10n.sotd}}

\n {{#if isUnofficial}}\n

\n This document is merely a public working draft of a potential specification. It has\n no official standing of any kind and does not represent the support or consensus of any\n standards organisation.\n

\n {{{sotdCustomParagraph}}}\n {{else}}\n {{#if isTagFinding}}\n {{{sotdCustomParagraph}}}\n {{else}}\n {{#if isNoTrack}}\n

\n This document is merely a W3C-internal {{#if isMO}}member-confidential{{/if}} document. It\n has no official standing of any kind and does not represent consensus of the W3C\n Membership.\n

\n {{{sotdCustomParagraph}}}\n {{else}}\n

\n {{{l10n.status_at_publication}}}\n

\n {{#if isSubmission}}\n {{{sotdCustomParagraph}}}\n {{#if isMemberSubmission}}\n

By publishing this document, W3C acknowledges that the Submitting Members have made a formal Submission request to W3C for discussion. Publication of this document by W3C indicates no endorsement of its content by W3C, nor that W3C has, is, or will be allocating any resources to the issues addressed by it. This document is not the product of a chartered W3C group, but is published as potential input to the W3C Process. A W3C Team Comment has been published in conjunction with this Member Submission. Publication of acknowledged Member Submissions at the W3C site is one of the benefits of W3C Membership. Please consult the requirements associated with Member Submissions of section 3.3 of the W3C Patent Policy. Please consult the complete list of acknowledged W3C Member Submissions.

\n {{else}}\n {{#if isTeamSubmission}}\n

If you wish to make comments regarding this document, please send them to\n {{wgPublicList}}@w3.org\n (subscribe,\n archives){{#if subjectPrefix}}\n with {{subjectPrefix}} at the start of your email's subject{{/if}}.

\n

Please consult the complete list of Team Submissions.

\n {{/if}}\n {{/if}}\n {{else}}\n {{#unless sotdAfterWGinfo}}\n {{{sotdCustomParagraph}}}\n {{/unless}}\n {{#unless overrideStatus}}\n

\n This document was published by {{{wgHTML}}} as {{anOrA}} {{longStatus}}.\n {{#if notYetRec}}\n This document is intended to become a W3C Recommendation.\n {{/if}}\n {{#unless isPR}}\n If you wish to make comments regarding this document, please send them to\n {{wgPublicList}}@w3.org\n (subscribe,\n archives){{#if subjectPrefix}}\n with {{subjectPrefix}} at the start of your email's subject{{/if}}.\n {{/unless}}\n {{#if isLC}}The Last Call period ends {{humanLCEnd}}.{{/if}}\n {{#if isCR}}\n W3C publishes a Candidate Recommendation to indicate that the document is believed to be\n stable and to encourage implementation by the developer community. This Candidate\n Recommendation is expected to advance to Proposed Recommendation no earlier than\n {{humanCREnd}}.\n {{/if}}\n {{#if isPER}}\n W3C Advisory Committee Members are invited to\n send formal review comments on this Proposed\n Edited Recommendation to the W3C Team until\n {{humanPEREnd}}.\n Members of the Advisory Committee will find the\n appropriate review form for this document by\n consulting their list of current\n WBS questionnaires.\n {{/if}}\n {{#if isPR}}\n The W3C Membership and other interested parties are invited to review the document and\n send comments to\n {{wgPublicList}}@w3.org\n (subscribe,\n archives)\n through {{humanPREnd}}. Advisory Committee Representatives should consult their\n WBS questionnaires.\n Note that substantive technical comments were expected during the Last Call review\n period that ended {{humanLCEnd}}.\n {{else}}\n {{#unless isPER}}\n All comments are welcome.\n {{/unless}}\n {{/if}}\n

\n {{/unless}}\n {{#if implementationReportURI}}\n

\n Please see the Working Group's implementation\n report.\n

\n {{/if}}\n {{#if sotdAfterWGinfo}}\n {{{sotdCustomParagraph}}}\n {{/if}}\n {{#if notRec}}\n

\n Publication as {{anOrA}} {{textStatus}} does not imply endorsement by the W3C\n Membership. This is a draft document and may be updated, replaced or obsoleted by other\n documents at any time. It is inappropriate to cite this document as other than work in\n progress.\n

\n {{/if}}\n {{#if isRec}}\n

\n This document has been reviewed by W3C Members, by software developers, and by other W3C\n groups and interested parties, and is endorsed by the Director as a W3C Recommendation.\n It is a stable document and may be used as reference material or cited from another\n document. W3C's role in making the Recommendation is to draw attention to the\n specification and to promote its widespread deployment. This enhances the functionality\n and interoperability of the Web.\n

\n {{/if}}\n {{#if isLC}}\n

\n This is a Last Call Working Draft and thus the Working Group has determined that this\n document has satisfied the relevant technical requirements and is sufficiently stable to\n advance through the Technical Recommendation process.\n

\n {{/if}}\n

\n {{#unless isIGNote}}\n This document was produced by\n {{#if multipleWGs}}\n groups\n {{else}}\n a group\n {{/if}} operating under the\n 5 February 2004 W3C Patent\n Policy.\n {{/unless}}\n {{#if recNotExpected}}\n The group does not expect this document to become a W3C Recommendation.\n {{/if}}\n {{#unless isIGNote}}\n {{#if multipleWGs}}\n W3C maintains {{{wgPatentHTML}}}\n {{else}}\n W3C maintains a public list of any patent\n disclosures\n {{/if}}\n made in connection with the deliverables of\n {{#if multipleWGs}}\n each group; these pages also include\n {{else}}\n the group; that page also includes\n {{/if}}\n instructions for disclosing a patent. An individual who has actual knowledge of a patent\n which the individual believes contains\n Essential\n Claim(s) must disclose the information in accordance with\n section\n 6 of the W3C Patent Policy.\n {{/unless}}\n {{#if isIGNote}}\n The disclosure obligations of the Participants of this group are described in the\n charter.\n {{/if}}\n

\n {{#if isNewProcess}}\n

This document is governed by the 1 September 2015 W3C Process Document.\n

\n {{else}}\n

\n This document is governed by the 14 October 2005 W3C Process Document.\n

\n {{/if}}\n {{#if addPatentNote}}

{{{addPatentNote}}}

{{/if}}\n {{/if}}\n {{/if}}\n {{/if}}\n {{/if}}\n
\n")}),define("tmpl!w3c/templates/cgbg-headers.html",["deps/handlebars"],function(e){return e.compile("
\n

\n \n

\n

{{title}}

\n {{#if subtitle}}\n

{{subtitle}}

\n {{/if}}\n

{{longStatus}}

\n
\n {{#if thisVersion}}\n
{{l10n.this_version}}
\n
{{thisVersion}}
\n {{/if}}\n {{#if latestVersion}}\n
{{l10n.latest_published_version}}
\n
{{latestVersion}}
\n {{/if}}\n {{#if edDraftURI}}\n
{{l10n.latest_editors_draft}}
\n
{{edDraftURI}}
\n {{/if}}\n {{#if testSuiteURI}}\n
Test suite:
\n
{{testSuiteURI}}
\n {{/if}}\n {{#if implementationReportURI}}\n
Implementation report:
\n
{{implementationReportURI}}
\n {{/if}}\n {{#if bugTrackerHTML}}\n
{{l10n.bug_tracker}}
\n
{{{bugTrackerHTML}}}
\n {{/if}}\n {{#if prevVersion}}\n
Previous version:
\n
{{prevVersion}}
\n {{/if}}\n {{#unless isCGFinal}}\n {{#if prevED}}\n
Previous editor's draft:
\n
{{prevED}}
\n {{/if}}\n {{/unless}}\n
{{#if multipleEditors}}{{l10n.editors}}{{else}}{{l10n.editor}}{{/if}}
\n {{showPeople \"Editor\" editors}}\n {{#if authors}}\n
{{#if multipleAuthors}}{{l10n.authors}}{{else}}{{l10n.author}}{{/if}}
\n {{showPeople \"Author\" authors}}\n {{/if}}\n {{#if otherLinks}}\n {{#each otherLinks}}\n {{#if key}}\n
{{key}}:
\n {{#if data}}\n {{#each data}}\n {{#if value}}\n
\n {{#if href}}{{/if}}\n {{value}}\n {{#if href}}{{/if}}\n
\n {{else}}\n {{#if href}}\n
{{href}}
\n {{/if}}\n {{/if}}\n {{/each}}\n {{else}}\n {{#if value}}\n
\n {{#if href}}{{/if}}\n {{value}}\n {{#if href}}{{/if}}\n
\n {{else}}\n {{#if href}}\n
\n {{href}}\n
\n {{/if}}\n {{/if}}\n {{/if}}\n {{/if}}\n {{/each}}\n {{/if}}\n
\n {{#if alternateFormats}}\n

\n {{#if multipleAlternates}}\n This document is also available in these non-normative formats: \n {{else}}\n This document is also available in this non-normative format: \n {{/if}}\n {{{alternatesHTML}}}\n

\n {{/if}}\n \n
\n
\n")}),define("tmpl!w3c/templates/cgbg-sotd.html",["deps/handlebars"],function(e){return e.compile("

{{l10n.sotd}}

\n

\n This specification was published by the {{wg}}.\n It is not a W3C Standard nor is it on the W3C Standards Track.\n {{#if isCGFinal}}\n Please note that under the \n W3C Community Final Specification Agreement (FSA) \n other conditions apply.\n {{else}}\n Please note that under the \n W3C Community Contributor License Agreement (CLA)\n there is a limited opt-out and other conditions apply.\n {{/if}}\n Learn more about \n W3C Community and Business Groups.\n

\n {{#unless sotdAfterWGinfo}}\n {{{sotdCustomParagraph}}}\n {{/unless}}\n {{#if wgPublicList}}\n

If you wish to make comments regarding this document, please send them to \n {{wgPublicList}}@w3.org \n (subscribe,\n archives){{#if subjectPrefix}}\n with {{subjectPrefix}} at the start of your\n email's subject{{/if}}.

\n {{/if}}\n {{#if sotdAfterWGinfo}}\n {{{sotdCustomParagraph}}}\n {{/if}}\n
\n")}),define("w3c/headers",["deps/handlebars","core/utils","tmpl!w3c/templates/headers.html","tmpl!w3c/templates/sotd.html","tmpl!w3c/templates/cgbg-headers.html","tmpl!w3c/templates/cgbg-sotd.html","core/pubsubhub"],function(e,t,n,r,i,a,s){return e.registerHelper("showPeople",function(t,n){var r="",i="",a="",s="",o="",l="",c="",u="",p="";this.doRDFa&&("Editor"===t?(c="_:editor0",r=" property='bibo:editor' resource='"+c+"'",i=" property='rdf:first' typeof='foaf:Person'"):"Author"===t&&(i=" property='dc:contributor' typeof='foaf:Person'"),s=" property='foaf:name'",a=" property='foaf:mbox'",o=" property='foaf:workplaceHomepage'",l=" property='foaf:homepage'",p=" property='rdfs:seeAlso'");for(var d="",f=0,h=n.length;f","Editor"===t&&(c=f",d+=m.url?this.doRDFa?""+m.name+"":""+m.name+"":""+m.name+"",m.company&&(d+=", ",d+=m.companyURL?""+m.company+"":m.company),m.mailto&&(d+=", "),m.note&&(d+=" ("+m.note+")"),m.extras){var g=this,b=m.extras.filter(function(e){return e.name&&e.name.trim()}).map(function(e){var t=document.createElement("span"),n=t;if(e.class&&(t.className=e.class),e.href){var r=document.createElement("a");t.appendChild(r),r.href=e.href,n=r,g.doRDFa&&r.setAttribute("property","rdfs:seeAlso")}return n.innerHTML=e.name,t.outerHTML}).join(", ");d+=", "+b}this.doRDFa&&(d+="\n","Editor"===t&&(d+="\n")),d+="\n"}return new e.SafeString(d)}),e.registerHelper("showLogos",function(t){for(var n="

",r=0,i=t.length;r"),a.id&&(n+=""),a.src?(n+=""+a.alt+""),a.id&&(n+="")}return n+="

",new e.SafeString(n)}),{status2maturity:{FPWD:"WD",LC:"WD",FPLC:"WD","FPWD-NOTE":"NOTE","WD-NOTE":"WD","LC-NOTE":"LC","IG-NOTE":"NOTE","WG-NOTE":"NOTE"},status2rdf:{NOTE:"w3p:NOTE",WD:"w3p:WD",LC:"w3p:LastCall",CR:"w3p:CR",PR:"w3p:PR",REC:"w3p:REC",PER:"w3p:PER",RSCND:"w3p:RSCND"},status2text:{NOTE:"Working Group Note","WG-NOTE":"Working Group Note","CG-NOTE":"Co-ordination Group Note","IG-NOTE":"Interest Group Note","Member-SUBM":"Member Submission","Team-SUBM":"Team Submission",MO:"Member-Only Document",ED:"Editor's Draft",FPWD:"First Public Working Draft",WD:"Working Draft","FPWD-NOTE":"Working Group Note","WD-NOTE":"Working Draft","LC-NOTE":"Working Draft",FPLC:"First Public and Last Call Working Draft",LC:"Last Call Working Draft",CR:"Candidate Recommendation",PR:"Proposed Recommendation",PER:"Proposed Edited Recommendation",REC:"Recommendation",RSCND:"Rescinded Recommendation",unofficial:"Unofficial Draft",base:"Document",finding:"TAG Finding","draft-finding":"Draft TAG Finding","CG-DRAFT":"Draft Community Group Report","CG-FINAL":"Final Community Group Report","BG-DRAFT":"Draft Business Group Report","BG-FINAL":"Final Business Group Report"},status2long:{"FPWD-NOTE":"First Public Working Group Note","LC-NOTE":"Last Call Working Draft"},recTrackStatus:["FPWD","WD","FPLC","LC","CR","PR","PER","REC"],noTrackStatus:["MO","unofficial","base","finding","draft-finding","CG-DRAFT","CG-FINAL","BG-DRAFT","BG-FINAL","webspec"],cgbg:["CG-DRAFT","CG-FINAL","BG-DRAFT","BG-FINAL"],precededByAn:["ED","IG-NOTE"],licenses:{cc0:{name:"Creative Commons 0 Public Domain Dedication",short:"CC0",url:"https://creativecommons.org/publicdomain/zero/1.0/"},"w3c-software":{name:"W3C Software Notice and License",short:"W3C Software",url:"https://www.w3.org/Consortium/Legal/2002/copyright-software-20021231"},"w3c-software-doc":{name:"W3C Software and Document Notice and License",short:"W3C Software and Document",url:"https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document"},"cc-by":{name:"Creative Commons Attribution 4.0 International Public License",short:"CC-BY",url:"https://creativecommons.org/licenses/by/4.0/legalcode"}},run:function(e,o,l){void 0===e.doRDFa&&(e.doRDFa=!0),e.license||(e.license="webspec"===e.specStatus?"w3c-software":"w3c"),e.isCCBY="cc-by"===e.license,e.isW3CSoftAndDocLicense="w3c-software-doc"===e.license,"webspec"!==e.specStatus||$.inArray(e.license,["cc0","w3c-software"])||s.pub("error","You cannot use that license with WebSpecs."),"webspec"===e.specStatus||$.inArray(e.license,["cc-by","w3c"])||s.pub("error","You cannot use that license with that type of document."),e.licenseInfo=this.licenses[e.license],e.isCGBG=$.inArray(e.specStatus,this.cgbg)>=0,e.isCGFinal=e.isCGBG&&/G-FINAL$/.test(e.specStatus),e.isBasic="base"===e.specStatus,e.isRegular=!e.isCGBG&&!e.isBasic,e.specStatus||s.pub("error","Missing required configuration: specStatus"),e.isRegular&&!e.shortName&&s.pub("error","Missing required configuration: shortName"),e.title=o.title||"No Title",e.subtitle||(e.subtitle=""),e.publishDate?e.publishDate instanceof Date||(e.publishDate=t.parseSimpleDate(e.publishDate)):e.publishDate=t.parseLastModified(o.lastModified),e.publishYear=e.publishDate.getFullYear(),e.publishHumanDate=t.humanDate(e.publishDate),e.isNoTrack=$.inArray(e.specStatus,this.noTrackStatus)>=0,e.isRecTrack=!e.noRecTrack&&$.inArray(e.specStatus,this.recTrackStatus)>=0,e.isMemberSubmission="Member-SUBM"===e.specStatus,e.isTeamSubmission="Team-SUBM"===e.specStatus,e.isSubmission=e.isMemberSubmission||e.isTeamSubmission,e.anOrA=$.inArray(e.specStatus,this.precededByAn)>=0?"an":"a",e.isTagFinding="finding"===e.specStatus||"draft-finding"===e.specStatus,e.edDraftURI||(e.edDraftURI="","ED"===e.specStatus&&s.pub("warn","Editor's Drafts should set edDraftURI.")),e.maturity=this.status2maturity[e.specStatus]?this.status2maturity[e.specStatus]:e.specStatus;var c="TR";if("Member-SUBM"===e.specStatus?c="Submission":"Team-SUBM"===e.specStatus&&(c="TeamSubmission"),e.isRegular&&(e.thisVersion="https://www.w3.org/"+c+"/"+e.publishDate.getFullYear()+"/"+e.maturity+"-"+e.shortName+"-"+t.concatDate(e.publishDate)+"/"),"ED"===e.specStatus&&(e.thisVersion=e.edDraftURI),e.isRegular&&(e.latestVersion="https://www.w3.org/"+c+"/"+e.shortName+"/"),e.isTagFinding&&(e.latestVersion="https://www.w3.org/2001/tag/doc/"+e.shortName,e.thisVersion=e.latestVersion+"-"+t.concatDate(e.publishDate,"-")),e.previousPublishDate){e.previousMaturity||e.isTagFinding||s.pub("error","previousPublishDate is set, but not previousMaturity"),e.previousPublishDate instanceof Date||(e.previousPublishDate=t.parseSimpleDate(e.previousPublishDate));var u=this.status2maturity[e.previousMaturity]?this.status2maturity[e.previousMaturity]:e.previousMaturity;e.isTagFinding?e.prevVersion=e.latestVersion+"-"+t.concatDate(e.previousPublishDate,"-"):e.isCGBG?e.prevVersion=e.prevVersion||"":e.isBasic?e.prevVersion="":e.prevVersion="https://www.w3.org/TR/"+e.previousPublishDate.getFullYear()+"/"+u+"-"+e.shortName+"-"+t.concatDate(e.previousPublishDate)+"/"}else/NOTE$/.test(e.specStatus)||"FPWD"===e.specStatus||"FPLC"===e.specStatus||"ED"===e.specStatus||e.noRecTrack||e.isNoTrack||e.isSubmission||s.pub("error","Document on track but no previous version: Add previousMaturity previousPublishDate to ReSpec's config."),e.prevVersion||(e.prevVersion="");e.prevRecShortname&&!e.prevRecURI&&(e.prevRecURI="https://www.w3.org/TR/"+e.prevRecShortname),e.editors&&0!==e.editors.length||s.pub("error","At least one editor is required");var p=function(e){e.name||s.pub("error","All authors and editors must have a name.")};e.editors&&e.editors.forEach(p),e.authors&&e.authors.forEach(p),e.multipleEditors=e.editors&&e.editors.length>1,e.multipleAuthors=e.authors&&e.authors.length>1,$.each(e.alternateFormats||[],function(e,t){t.uri&&t.label||s.pub("error","All alternate formats must have a uri and a label.")}),e.multipleAlternates=e.alternateFormats&&e.alternateFormats.length>1,e.alternatesHTML=t.joinAnd(e.alternateFormats,function(e){var t=e.hasOwnProperty("lang")&&e.lang?" hreflang='"+e.lang+"'":"";return t+=e.hasOwnProperty("type")&&e.type?" type='"+e.type+"'":"",""+e.label+""}),e.bugTracker&&(e.bugTracker.new&&e.bugTracker.open?e.bugTrackerHTML=""+e.l10n.file_a_bug+" "+e.l10n.open_parens+""+e.l10n.open_bugs+""+e.l10n.close_parens:e.bugTracker.open?e.bugTrackerHTML="open bugs":e.bugTracker.new&&(e.bugTrackerHTML="file a bug")),e.copyrightStart&&e.copyrightStart==e.publishYear&&(e.copyrightStart="");for(var d in this.status2text)this.status2long[d]||(this.status2long[d]=this.status2text[d]);if(e.longStatus=this.status2long[e.specStatus],e.textStatus=this.status2text[e.specStatus],this.status2rdf[e.specStatus]&&(e.rdfStatus=this.status2rdf[e.specStatus]),e.showThisVersion=!e.isNoTrack||e.isTagFinding,e.showPreviousVersion="FPWD"!==e.specStatus&&"FPLC"!==e.specStatus&&"ED"!==e.specStatus&&!e.isNoTrack&&!e.isSubmission,/NOTE$/.test(e.specStatus)&&!e.prevVersion&&(e.showPreviousVersion=!1),e.isTagFinding&&(e.showPreviousVersion=!!e.previousPublishDate),e.notYetRec=e.isRecTrack&&"REC"!==e.specStatus,e.isRec=e.isRecTrack&&"REC"===e.specStatus,e.isRec&&!e.errata&&s.pub("error","Recommendations must have an errata link."),e.notRec="REC"!==e.specStatus,e.isUnofficial="unofficial"===e.specStatus,e.prependW3C=!e.isUnofficial,e.isED="ED"===e.specStatus,e.isLC="LC"===e.specStatus||"FPLC"===e.specStatus,e.isCR="CR"===e.specStatus,e.isPR="PR"===e.specStatus,e.isPER="PER"===e.specStatus,e.isMO="MO"===e.specStatus,e.isIGNote="IG-NOTE"===e.specStatus,e.dashDate=t.concatDate(e.publishDate,"-"),e.publishISODate=t.isoDate(e.publishDate),e.shortISODate=e.publishISODate.replace(/T.*/,""),e.processVersion=e.processVersion||"2015","2014"==e.processVersion&&(s.pub("warn","Process "+e.processVersion+" has been superceded by Process 2015."),e.processVersion="2015"),e.isNewProcess="2015"==e.processVersion,e.doRDFa){e.rdfStatus?$("html").attr("typeof","bibo:Document "+e.rdfStatus):$("html").attr("typeof","bibo:Document ");var f="bibo: http://purl.org/ontology/bibo/ w3p: http://www.w3.org/2001/02pd/rec54#";$("html").attr("prefix",f),$("html>head").prepend($(""))}var h;h=e.isCGBG?i(e):n(e),$("body",o).prepend($(h)).addClass("h-entry");var m=$("#sotd");!e.isCGBG&&e.isNoTrack&&!e.isTagFinding||m.length||s.pub("error","A custom SotD paragraph is required for your type of document."),e.sotdCustomParagraph=m.html(),m.remove();var g=[e.wg,e.wgURI,e.wgPatentURI];if(g.some(function(e){return $.isArray(e)})&&g.some(function(e){return!$.isArray(e)})&&s.pub("error","If one of 'wg', 'wgURI', or 'wgPatentURI' is an array, they all have to be."),$.isArray(e.wg)){e.multipleWGs=e.wg.length>1,e.wgHTML=t.joinAnd(e.wg,function(t,n){return"the "+t+""});for(var b=[],v=0,y=e.wg.length;vpublic list of any patent disclosures ("+e.wg[v]+")");e.wgPatentHTML=t.joinAnd(b)}else e.multipleWGs=!1,e.wgHTML="the "+e.wg+"";e.isLC&&!e.lcEnd&&s.pub("error","Status is LC but no lcEnd is specified"),"PR"!==e.specStatus||e.lcEnd||s.pub("error","Status is PR but no lcEnd is specified (needed to indicate end of previous LC)"),e.humanLCEnd=t.humanDate(e.lcEnd||""),"CR"!==e.specStatus||e.crEnd||s.pub("error","Status is CR but no crEnd is specified"),e.humanCREnd=t.humanDate(e.crEnd||""),"PR"!==e.specStatus||e.prEnd||s.pub("error","Status is PR but no prEnd is specified"),e.humanPREnd=t.humanDate(e.prEnd||""),e.humanPEREnd=t.humanDate(e.perEnd||""),"PER"!==e.specStatus||e.perEnd||s.pub("error","Status is PER but no perEnd is specified"),e.recNotExpected=!e.isRecTrack&&"WD"==e.maturity&&"FPWD-NOTE"!==e.specStatus,e.isIGNote&&!e.charterDisclosureURI&&s.pub("error","IG-NOTEs must link to charter's disclosure section using charterDisclosureURI"),""!==e.subjectPrefix&&(e.subjectPrefixEnc=encodeURIComponent(e.subjectPrefix));var w;w=e.isCGBG?a(e):r(e),w&&$(w).insertAfter($("#abstract")),!e.implementationReportURI&&(e.isCR||e.isPR||e.isRec)&&s.pub("error","CR, PR, and REC documents need to have an implementationReportURI defined."),e.isTagFinding&&!e.sotdCustomParagraph&&s.pub("error","ReSpec does not support automated SotD generation for TAG findings, please specify one using a
element with ID=sotd."),l()}}}),define("w3c/abstract",["core/pubsubhub"],function(e){return{run:function(t,n,r){var i=$("#abstract");if(i.length){if(0===i.find("p").length&&i.contents().wrapAll($("

")),i.prepend("

"+t.l10n.abstract+"

"),i.addClass("introductory"),t.doRDFa){var a="dc:abstract",s=i.attr("property");s&&(a=s+" "+a),i.attr({property:a})}}else e.pub("error","Document must have one element with ID 'abstract'");r()}}}),define("tmpl!w3c/templates/conformance.html",["deps/handlebars"],function(e){return e.compile("

Conformance

\n

\n As well as sections marked as non-normative, all authoring guidelines, diagrams, examples,\n and notes in this specification are non-normative. Everything else in this specification is\n normative.\n

\n

\n to be interpreted as described in [[!RFC2119]].\n

\n")}),define("w3c/conformance",["tmpl!w3c/templates/conformance.html","core/pubsubhub"],function(e,t){return{run:function(n,r,i){var a=$("#conformance");a.length&&a.prepend(e(n)),t.pub("end","w3c/conformance"),i()}}}),define("core/data-transform",["core/utils"],function(e){return{run:function(t,n,r){$("[data-transform]",n).each(function(t,n){var r=$(n),i=r.attr("data-transform");r.removeAttr("data-transform");var a;try{a=e.runTransforms(r.html(),i)}catch(e){console.error(e)}a&&r.html(a)}),r()}}}),define("core/data-include",["core/utils","core/pubsubhub"],function(e,t){return{run:function(n,r,i){var a=$("[data-include]"),s=a.length,o=function(e){if(e.removeAttr("data-include"),e.removeAttr("data-oninclude"),e.removeAttr("data-include-format"),e.removeAttr("data-include-replace"),s--,s<=0)return i()};return s?void a.each(function(){var n=$(this),i=n.attr("data-include"),a=n.attr("data-include-format")||"html",s=!!n.attr("data-include-replace");$.ajax({dataType:a,url:i,success:function(t){if(t){var l=n.attr("data-oninclude");l&&(t=e.runTransforms(t,l,i)),s?n.replaceWith("text"===a?r.createTextNode(t):t):"text"===a?n.text(t):n.html(t)}o(n)},error:function(e,r,a){t.pub("error","Error including URI="+i+": "+r+" ("+a+")"),o(n)}})}):i()}}}),define("core/inlines",["core/pubsubhub"],function(e){return{run:function(t,n,r){n.normalize(),t.normativeReferences||(t.normativeReferences={}),t.informativeReferences||(t.informativeReferences={}),t.respecRFC2119||(t.respecRFC2119={});var i={},a={};$("abbr[title]",n).each(function(){i[$(this).text()]=$(this).attr("title")}),$("acronym[title]",n).each(function(){a[$(this).text()]=$(this).attr("title")});var s=[];for(var o in i)s.push(o);for(var o in a)s.push(o);s.sort(function(e,t){return t.length").attr({class:"rfc2119",title:g}).text(g)[0]),t.respecRFC2119[g]=!0;else if(/^\[\[/.test(g)){var b=g;if(b=b.replace(/^\[\[/,""),b=b.replace(/\]\]$/,""),0===b.indexOf("\\"))h.appendChild(n.createTextNode("[["+b.replace(/^\\/,"")+"]]"));else{var v=!1;0===b.indexOf("!")&&(v=!0,b=b.replace(/^!/,"")),v?t.normativeReferences[b]=!0:t.informativeReferences[b]=!0,h.appendChild(n.createTextNode("[")),h.appendChild($("").wrapInner($("").attr({class:"bibref",href:"#bib-"+b}).text(b))[0]),h.appendChild(n.createTextNode("]"))}}else i[g]?$(d).parents("abbr").length?h.appendChild(n.createTextNode(g)):h.appendChild($("").attr({title:i[g]}).text(g)[0]):a[g]?$(d).parents("acronym").length?h.appendChild(n.createTextNode(g)):h.appendChild($("").attr({title:a[g]}).text(g)[0]):e.pub("error","Found token '"+g+"' but it does not correspond to anything")}d.parentNode.replaceChild(h,d)}}r()}}}),define("core/dfn",[],function(){return{run:function(e,t,n){t.normalize(),$("[dfn-for]").each(function(){this.setAttribute("data-dfn-for",this.getAttribute("dfn-for").toLowerCase()),this.removeAttribute("dfn-for")}),e.definitionMap||(e.definitionMap=Object.create(null)),$("dfn").each(function(){var t=$(this);t.attr("for")?(t.attr("data-dfn-for",t.attr("for").toLowerCase()),t.removeAttr("for")):t.attr("data-dfn-for",(t.closest("[data-dfn-for]").attr("data-dfn-for")||"").toLowerCase());var n=t.getDfnTitles({isDefinition:!0});n.forEach(function(n){e.definitionMap[n]||(e.definitionMap[n]=[]),e.definitionMap[n].push($(t[0]))})}),n()}}}),define("w3c/rfc2119",["core/utils"],function(e){return{run:function(t,n,r){var i=$("#respecRFC2119");if(i.length){var a=Object.getOwnPropertyNames(t.respecRFC2119).sort();if(a&&a.length){var s="The ",o=function(e){var t=""+e+"";return t};s+=a.length>1?"key words "+e.joinAnd(a,o)+" are ":"key word "+e.joinAnd(a,o)+" is ",s+=i[0].innerHTML,i[0].innerHTML=s}else i.remove()}r()}}}),define("deps/text!core/css/examples.css",[],function(){return"/* --- EXAMPLES --- */\ndiv.example-title {\n min-width: 7.5em;\n color: #b9ab2d;\n}\ndiv.example-title span {\n text-transform: uppercase;\n}\naside.example, div.example, div.illegal-example {\n padding: 0.5em;\n margin: 1em 0;\n position: relative;\n clear: both;\n}\ndiv.illegal-example { color: red }\ndiv.illegal-example p { color: black }\naside.example, div.example {\n padding: .5em;\n border-left-width: .5em;\n border-left-style: solid;\n border-color: #e0cb52;\n background: #fcfaee;\n}\n\naside.example div.example {\n border-left-width: .1em;\n border-color: #999;\n background: #fff;\n}\naside.example div.example div.example-title {\n color: #999;\n}\n"}),define("core/examples",["core/pubsubhub","deps/text!core/css/examples.css"],function(e,t){var n=function(e,t,n,r){var i=n>0?" "+n:"",a=$("
Example"+i+"
");return r.title=t.attr("title"),r.title&&(a.append($(": "+r.title+"")),t.removeAttr("title")),a.addClass("marker"),a};return{run:function(r,i,a){var s=$("pre.example, pre.illegal-example, aside.example"),o=0;s.length&&($(i).find("head link").first().before($("";$(n).find("head link").first().before(a);var s=$(n).find("h2, h3, h4, h5, h6");s.each(function(e,n){var r=$(n);if(!r.hasClass("nolink")){var a=r.attr("id"),s=r.parent();if((s.is("section")||s.is("div"))&&(a=s.hasClass("introductory")||s.hasClass("nolink")?null:s.attr("id")),null!=a){var o=$("");o.attr("class","permalink"),t.doRDFa&&o.attr("typeof","bookmark");var l=r.text(),c=$("
");c.attr({href:"#"+a,"aria-label":"Permalink for "+l,title:"Permalink for "+l}),t.doRDFa&&c.attr("property","url");var u=$("");t.doRDFa&&u.attr({property:"title",content:l}),u.append(i),c.append(u),o.append(c),t.permalinkEdge||r.append(" "),r.append(o)}}})}r()}}}),define("core/id-headers",[],function(){return{run:function(e,t,n){$("h2, h3, h4, h5, h6").each(function(){var e=$(this);if(!e.attr("id")){if(e.parent("section").attr("id")&&0===e.prev().length)return;e.makeID()}}),n()}}}),define("core/rdfa",[],function(){return{run:function(e,t,n){e.doRDFa&&$("section,nav").each(function(){var e=$(this),t="",n=e.children("h1,h2,h3,h4,h5,h6").first(),r=e.attr("id"),i=null;r?t="#"+r:n.length&&(r=n.attr("id"),r&&(t="#"+r,i=r));var a="bibo:hasPart";t.match(/#(abstract|sotd|toc)$/)||e.attr({typeof:"bibo:Chapter",resource:t,property:a}),n.length&&(i||(i=n.makeID("h",r)),n.attr({resource:"#"+i}),n.wrapInner(""))}),n()}}}),define("w3c/aria",[],function(){return{run:function(e,t,n){t.body.hasAttribute("role")||t.body.setAttribute("role","document"),t.body.hasAttribute("id")||t.body.setAttribute("id","respecDocument");var r=document.querySelector("div.head");r&&(r.setAttribute("role","contentinfo"),r.setAttribute("id","respecHeader"));var i=t.querySelector("#toc ol:first-of-type");i&&i.setAttribute("role","directory");var a=1,s=1,o=1;Array.from(t.querySelectorAll(".note-title, .ednote-title, .issue-title")).forEach(function(e){var t=$(e),n=e.classList.contains("issue-title"),r=e.classList.contains("ednote-title"),i=t.parents("section").length+2;e.setAttribute("aria-level",i),e.setAttribute("role","heading"),n?t.makeID("h","issue"+s++):r?t.makeID("h","ednote"+o++):t.makeID("h","note"+a++)}),n()}}}),define("core/shiv",[],function(){return{run:function(e,t,n){var r=t.createComment("[if lt IE 9]>

ReSpec is a document production toolchain, with a notable focus on W3C specifications.

");$("

You can find more information in the documentation.

").appendTo(t),$("

Found a bug in ReSpec? File it!.

").appendTo(t),e.freshModal("About ReSpec",t)}}}),define("ui/dfn-list",[],function(){return{show:function(e,t){var n=$("
    ");Object.keys(t.definitionMap).sort().forEach(function(r){t.definitionMap[r].forEach(function(t){var i=$(""+r+"").attr("href","#"+t.attr("id")).click(function(){e.closeModal()});$("
  • ").append(i).appendTo(n)})}),e.freshModal("List of Definitions",n)}}}),define("ui/save-html",["deps/beautify-html","core/beautify-options","core/pubsubhub","core/utils"],function(e,t,n,r){function i(e){return e.replace(/\n\s*\(-1,i=this,o=$("
    "),l={background:"#eee",border:"1px solid #000",borderRadius:"5px",padding:"5px",margin:"5px",display:"block",width:"100%",color:"#000",textDecoration:"none",textAlign:"center",fontSize:"inherit"},c=function(t){r?$("").appendTo(o).text(t.title).css(l).attr({id:t.id,href:t.url,download:t.fileName,type:t.type||""}).click(function(){e.closeModal()}):$("").appendTo(o).text(t.title).css(l).click(function(){t.popupContent(),e.closeModal()})};c({id:"respec-save-as-html",title:"Save as HTML",url:this.htmlToDataURL(this.toString()),popupContent:function(){i.toHTMLSource()},fileName:"index.html"}),c({id:"respec-save-as-xhtml5",fileName:"index.xhtml",popupContent:function(){i.toXHTMLSource(5)},title:"Save as XHTML5",url:this.htmlToDataURL(this.toXML(5))}),c({id:"respec-save-as-xhtml",fileName:"index.xhtml",popupContent:function(){i.toXHTMLSource(1)},title:"Save as XHTML 1.0",url:this.htmlToDataURL(this.toXML(1))}),c({id:"respec-save-as-epub",fileName:"spec.epub",popupContent:function(){window.open(i.makeEPubHref(),"_blank")},title:"Save as EPUB 3",type:"application/epub+zip",url:this.makeEPubHref()}),s.diffTool&&(s.previousDiffURI||s.previousURI)&&$("").appendTo(o).css(l).click(function(){i.toDiffHTML(),e.closeModal()}),e.freshModal("Save Snapshot",o)},htmlToDataURL:function(e){return e=encodeURIComponent(e),"data:text/html;charset=utf-8,"+e},makeEPubHref:function(){var e="https://labs.w3.org/epub-generator/cgi-bin/epub-generator.py",t=e+"?type=respec&";return t+="url="+encodeURIComponent(a.location.href)},toString:function(){n.pub("save","toString");var s="\n";var f=i(s),h=e.html_beautify(f,t);return h},toXML:function(l){n.pub("save","toXML"+l);var c=a.documentElement.cloneNode(!0);o(c),5!==l&&($.each("section figcaption figure aside".split(" "),function(e,t){$(t,c).renameElement("div").addClass(t)}),$("time",c).renameElement("span").addClass("time").removeAttr("datetime"),$("[role]",c).removeAttr("role"),$("[aria-level]",c).removeAttr("aria-level"),$("style:not([type])",c).attr("type","text/css"),$("script:not([type])",c).attr("type","text/javascript"));var u="\n"}}else 8===e.nodeType?t+="\n\n":3===e.nodeType||4===e.nodeType?t+=b[b.length-1]?e.nodeValue:r.xmlEscape(e.nodeValue):n.pub("warn","Cannot handle serialising nodes of type: "+e.nodeType);return t};u+=v(c)+"";var y=i(u),w=e.html_beautify(y,t);return w},toDiffHTML:function(){n.pub("save","toDiffHTML");var e=window.location.href.replace(/\/[^\/]*$/,"/"),t="\n\nDiff form\n
    \n\n";t+=s.previousDiffURI?"\n":"\n",t+='\n

    Submitting, please wait...

    \n';var i=window.open();i.document.write(t),i.document.close(),i.document.form.submit()},toHTMLSource:function(){var e=window.open();e.document.write("
    "+r.xmlEscape(this.toString())+"
    "),e.document.close()},toXHTMLSource:function(e){var t=window.open();t.document.write("
    "+r.xmlEscape(this.toXML(e))+"
    "),t.document.close()}}}),define("ui/search-specref",["core/biblio"],function(e){function t(e,t,n){return e+" "+(1==e?t:n)}function n(t){var n="",r=0;for(var i in t){var a=t[i];a.aliasOf||(r++,n+="
    ["+(a.id||i)+"]
    "+e.stringifyRef(a)+"
    ")}return{html:n,count:r}}function r(e,n){return n?"We found "+t(n,"result","results")+' for your search for "'+e+'".':'Your search for "'+e+"\" did not match any references in the Specref database.
    Sorry. :'("}function i(e,t){var n=new RegExp("(<[^>]+>)|("+t+")","gi");return(e||"").replace(n,function(e,t,n){return t?t:""+n+""})}return{show:function(e){var t=$("

    "),o=$("
    ");s.appendTo(t),o.appendTo(t),e.freshModal("Search Specref DB",t),a.focus(),t.find("form").on("submit",function(){s.html("Searching…");var e=a.val();return $.when($.getJSON("https://specref.herokuapp.com/search-refs",{q:e}),$.getJSON("https://specref.herokuapp.com/reverse-lookup",{ +urls:e})).done(function(t,l){var c;t=t[0],l=l[0];for(var u in l)c=l[u],t[c.id]=c;var p=n(t);o.html(i(p.html,e)),s.html(r(e,p.count)),a.select()}),!1})}}}),define("w3c/linter",["core/pubsubhub"],function(e){function t(e){return Array.from(e.querySelectorAll("h2, h3, h4, h5, h6")).map(function(e){return e.textContent}).some(function(e){var t=/(privacy|security)/gim,n=/(considerations)/gim;return t.test(e)&&n.test(e)})}function n(e,t){return Object.getOwnPropertyNames(e).filter(function(e){return e.endsWith("URI")||"prevED"===e}).filter(function(n){return new URL(e[n],t).href.startsWith("http://")})}return{run:function(r,i,a){if(!r.lint||"unofficial"===r.status)return a();var s=[],o="";t(i)||(o="This specification doesn't appear to have any 'Privacy' or 'Security' considerations sections. Please consider adding one, see https://w3ctag.github.io/security-questionnaire/",s.push(o));var l=n(r,i.location.href);l.length&&(o="There are insecure URLs in your respecConfig! Please change the following properties to use 'https://': "+l.join(", ")+".",s.push(o)),s.map(function(t){e.pub("warn",t)}),a()},rules:{findHTTPProps:n,hasPriSecConsiderations:t}}}),require.config({shim:{shortcut:{exports:"shortcut"},Promise:{exports:"Promise"},highlight:{exports:"hljs"},beautify:{exports:"beautify"}},paths:{"beautify-css":"deps/beautify-css","beautify-html":"deps/beautify-html"},deps:["deps/fetch","deps/jquery"]}),define("profile-w3c-common",["deps/domReady","core/base-runner","core/ui","core/respec-ready","core/include-config","core/override-configuration","core/default-root-attr","core/style","w3c/style","w3c/l10n","core/markdown","w3c/headers","w3c/abstract","w3c/conformance","core/data-transform","core/data-include","core/inlines","core/dfn","w3c/rfc2119","core/examples","core/issues-notes","core/requirements","core/best-practices","core/figures","core/biblio","core/webidl-contiguous","core/webidl-oldschool","core/link-to-dfn","core/highlight","core/contrib","core/fix-headers","core/structure","w3c/informative","w3c/permalinks","core/id-headers","core/rdfa","w3c/aria","core/shiv","core/remove-respec","core/location-hash","ui/about-respec","ui/dfn-list","ui/save-html","ui/search-specref","w3c/linter"],function(e,t,n){var r=Array.from(arguments);e(function(){t.runAll(r).then(document.respecIsReady).then(n.show).catch(function(e){console.error(e),n.show()}),n.addCommand("Save Snapshot","ui/save-html","Ctrl+Shift+Alt+S"),n.addCommand("About ReSpec","ui/about-respec","Ctrl+Shift+Alt+A"),n.addCommand("Definition List","ui/dfn-list","Ctrl+Shift+Alt+D"),n.addCommand("Search Specref DB","ui/search-specref","Ctrl+Shift+Alt+space")})}); +//# sourceMappingURL=respec-w3c-common.build.js.map +require(['profile-w3c-common']); \ No newline at end of file diff --git a/spec/docs/index.html b/spec/docs/index.html index ecff714..34d50e1 100644 --- a/spec/docs/index.html +++ b/spec/docs/index.html @@ -1,6 +1,6 @@ - + -Source & Target +RML-IO - + - - - - -Source & Target +RML-IO @@ -128,12 +128,6 @@ - - - -