[{"data":1,"prerenderedAt":1588},["ShallowReactive",2],{"navigation-docsEN":3,"navigation-blogEN":657,"docs-EN-\u002Fdocs\u002Fdigital-product-passport\u002Fsigned-passports":675,"docsNav-EN-\u002Fdocs":1126,"docsSecNav-EN-\u002Fdocs\u002Fdigital-product-passport\u002Fsigned-passports":1309},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,22,41,53,74,88,114,128,156,167,182,206,412,428,560,635,650],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":14},"Documentation","docs\u002Findex","Introduction to documentation on EPCIS and OpenEPCIS tools","heroicons-outline:document-text",[15,16,17,18,19,20,21],"openepcis","epcis-2-0","epcis-documentation","epcis-standard","open-core","open-source","epcis-tools",{"title":23,"path":24,"stem":25,"children":26,"description":28,"icon":29,"tags":40},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction\u002Findex",[27],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":30},"Why EPCIS is necessary and how it can help organizations of all sizes and types.","heroicons-outline:globe-alt",[16,31,32,33,34,35,36,37,38,39],"epcis","epcis-1-2","gs1-epcis-standard","supply-chain","traceability","data-sharing","tracking","tracing","visibility-events",[16,31,32,33,34,35,36,37,38,39],{"title":42,"path":43,"stem":44,"children":45,"description":47,"icon":48,"tags":52},"EPCIS","\u002Fdocs\u002Fepcis","docs\u002F02.epcis\u002Findex",[46],{"title":42,"path":43,"stem":44,"description":47,"icon":48,"tags":49},"Discover the specifics of EPCIS, how it works, and what OpenEPCIS is.","i-custom-open-epcis",[16,31,32,33,50,51,39],"iso-iec-19987","iso-iec-19988",[16,31,32,33,50,51,39],{"title":54,"path":55,"stem":56,"children":57,"description":59,"icon":60,"tags":73},"Format Converter","\u002Fdocs\u002Fformat-converter","docs\u002F03.format-converter\u002Findex",[58],{"title":54,"path":55,"stem":56,"description":59,"icon":60,"tags":61},"OpenEPCIS solution to convert EPCIS 2.0 and 1.2 document or single event from XML to JSON\u002FJSON-LD and vice versa.","heroicons-outline:arrows-right-left",[16,62,63,64,65,66,67,21,68,69,70,71,72],"json","json-ld","xml","events","format-converter","convert","convert-epcis-events","format","converter","epcis-tool","tools",[16,62,63,64,65,66,67,21,68,69,70,71,72],{"title":75,"path":76,"stem":77,"children":78,"description":80,"icon":81,"tags":87},"Version Converter","\u002Fdocs\u002Fversion-converter","docs\u002F04.version-converter\u002Findex",[79],{"title":75,"path":76,"stem":77,"description":80,"icon":81,"tags":82},"OpenEPCIS solution to convert EPCIS XML document from version 1.2 to 2.0 and vice versa.","heroicons:arrows-up-down",[16,32,62,63,64,65,83,67,21,84,85,86,70,71,72],"version-converter","convert-epcis-version","version","epcis-version",[16,32,62,63,64,65,83,67,21,84,85,86,70,71,72],{"title":89,"path":90,"stem":91,"children":92,"description":94,"icon":95,"tags":113},"Identifier Converter","\u002Fdocs\u002Fidentifier-converter","docs\u002F05.identifier-converter\u002Findex",[93],{"title":89,"path":90,"stem":91,"description":94,"icon":95,"tags":96},"OpenEPCIS solution to convert EPCIS instance or class identifier from URN to digital link WebURI and vice versa.","i-heroicons-link",[16,97,98,99,100,101,21,102,103,104,105,106,107,108,109,110,111,112],"gs1-digital-link","urn-format","epc-uri","epc","weburi","gs1-standard","gs1","sscc","gtin","giai","grai","gdti","lgtin","sgtin","gln","gcp",[16,97,98,99,100,101,21,102,103,104,105,106,107,108,109,110,111,112],{"title":115,"path":116,"stem":117,"children":118,"description":120,"icon":121,"tags":127},"Event Hash Generator","\u002Fdocs\u002Fevent-hash-generator","docs\u002F06.event-hash-generator\u002Findex",[119],{"title":115,"path":116,"stem":117,"description":120,"icon":121,"tags":122},"OpenEPCIS solution to generate unique event hash for EPCIS XML or JSON\u002FJSON-LD document or event list.","heroicons-outline:finger-print",[16,123,62,63,64,65,21,124,125,126,71,72],"event-hash","event","hash","generator",[16,123,62,63,64,65,21,124,125,126,71,72],{"title":129,"path":130,"stem":131,"children":132,"description":134,"icon":135,"tags":155},"Test Data Generator","\u002Fdocs\u002Ftest-data-generator","docs\u002F07.test-data-generator\u002Findex",[133,137],{"title":129,"path":130,"stem":131,"description":134,"icon":135,"tags":136},"OpenEPCIS solution to generate a large set of EPCIS test data events for all use cases\u002Fsupply chain requirements.","heroicons-outline:cog",[16,123,62,63,64,65,21,124,125,126,71,72],{"title":138,"path":139,"stem":140,"children":141,"description":143,"icon":144,"tags":154},"EPCIS Implementation Guidelines","\u002Fdocs\u002Ftest-data-generator\u002Fgs1-epcis-implementation-guidelines","docs\u002F07.test-data-generator\u002F01.gs1-epcis-implementation-guidelines\u002Findex",[142],{"title":138,"path":139,"stem":140,"description":143,"icon":144,"tags":145},"EPCIS event examples from the GS1 EPCIS and CBV implementation guidelines, modeled with the OpenEPCIS Test Data Generator.","heroicons-outline:badge-check",[16,62,63,146,21,147,148,149,35,150,151,152,153],"testing","test-data-generator","design","design-template","process-automation","compliance","supply-chain-management","load-tests",[16,62,63,146,21,147,148,149,35,150,151,152,153],[16,123,62,63,64,65,21,124,125,126,71,72],{"title":157,"path":158,"stem":159,"children":160,"description":162,"icon":163,"tags":166},"Test Resource Management","\u002Fdocs\u002Ftest-resource-management","docs\u002F08.test-resource-management\u002Findex",[161],{"title":157,"path":158,"stem":159,"description":162,"icon":163,"tags":164},"Collection of EPCIS 1.2\u002F2.0 documents\u002Fevents in XML\u002FJSON\u002FJSON-LD formats, intended for various testing purposes","heroicons-outline:archive-box",[16,62,63,146,21,165,35,150,151,152,153],"performance-tests",[16,62,63,146,21,165,35,150,151,152,153],{"title":168,"path":169,"stem":170,"children":171,"description":173,"icon":174,"tags":181},"Vocabulary Management","\u002Fdocs\u002Fvocabulary-management","docs\u002F09.vocabulary-management\u002Findex",[172],{"title":168,"path":169,"stem":170,"description":173,"icon":174,"tags":175},"Collection of standardized constants and strings for EPCIS event data.","heroicons-outline:book-open",[16,176,15,177,21,178,35,179,151,152,180],"constants","centralization","standardization","vocabulary","data-dictionary",[16,176,15,177,21,178,35,179,151,152,180],{"title":183,"path":184,"stem":185,"children":186,"description":188,"icon":189,"tags":205},"Dependency Management","\u002Fdocs\u002Fdependency-management","docs\u002F10.dependency-management\u002Findex",[187],{"title":183,"path":184,"stem":185,"description":188,"icon":189,"tags":190},"Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules.","heroicons-outline:folder",[191,15,192,193,194,195,196,31,197,198,199,200,201,202,203,204],"maven-bom","dependency-management","java-dependencies","pom","software-dependencies","version-control","open-source-java","build-management","modular-software","dependency-resolution","java-libraries","maven-project","centralized-dependencies","dependency-consistency",[191,15,192,193,194,195,196,31,197,198,199,200,201,202,203,204],{"title":207,"path":208,"stem":209,"children":210,"description":212,"icon":213,"tags":411},"Digital Product Passport","\u002Fdocs\u002Fdigital-product-passport","docs\u002F11.digital-product-passport\u002Findex",[211,221,234,269,307,334,348,356,363,373,400],{"title":207,"path":208,"stem":209,"description":212,"icon":213,"tags":214},"Introduction to Digital Product Passport and how EPCIS enables product traceability for DPP compliance.","heroicons-outline:identification",[215,216,217,31,218,35,219,220],"digital-product-passport","dpp","eu-regulation","sustainability","circular-economy","gs1-web-vocabulary",{"title":222,"path":223,"stem":224,"children":225,"description":227,"icon":228,"tags":233},"ESPR Framework","\u002Fdocs\u002Fdigital-product-passport\u002Fespr-framework","docs\u002F11.digital-product-passport\u002F00.espr-framework\u002Findex",[226],{"title":222,"path":223,"stem":224,"description":227,"icon":228,"tags":229},"Guide to the EU Ecodesign for Sustainable Products Regulation (ESPR) 2024\u002F1781 and how OpenEPCIS supports Digital Product Passport requirements.","heroicons-outline:shield-check",[230,231,218,216,217,232],"espr","ecodesign","en-standards",[230,231,218,216,217,232],{"title":235,"path":236,"stem":237,"children":238,"description":240,"icon":241,"tags":268},"Battery DPP","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002Findex",[239,246,252,259],{"title":235,"path":236,"stem":237,"description":240,"icon":241,"tags":242},"GS1-native implementation of EU Battery Regulation 2023\u002F1542 Digital Product Passport using EPCIS 2.0","heroicons:battery-100",[243,244,216,31,103,35,218,245],"battery","eu-battery-regulation","due-diligence",{"title":247,"path":248,"stem":249,"description":250,"icon":174,"tags":251},"Implementation Guide","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F01.implementation-guide","Step-by-step guide for implementing a GS1-native Battery Digital Product Passport with OpenEPCIS extensions",[243,244,216,31,220],{"title":253,"path":254,"stem":255,"description":256,"icon":257,"tags":258},"Event Types","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fevent-types","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F02.event-types","Complete reference for all EPCIS event types and sensor measurements in the Battery DPP","heroicons-outline:collection",[243,31,65,39,216],{"title":260,"path":261,"stem":262,"description":263,"icon":13,"tags":264},"Complete Examples","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F05.complete-examples","Reference Battery Digital Product Passport examples mapped to EU Battery Regulation 2023\u002F1542 Annex XIII",[243,265,266,63,267,245],"examples","annex-xiii","carbon-footprint",[243,244,216,31,103,35,218,245],{"title":270,"path":271,"stem":272,"children":273,"description":275,"icon":276,"tags":306},"EUDR","\u002Fdocs\u002Fdigital-product-passport\u002Feudr","docs\u002F11.digital-product-passport\u002F02.eudr\u002Findex",[274,281,287,292,300],{"title":270,"path":271,"stem":272,"description":275,"icon":276,"tags":277},"GS1-native implementation of EU Deforestation Regulation 2023\u002F1115 compliance using EPCIS 2.0","heroicons-outline:globe-europe-africa",[278,279,280,216,31,103,35,218,245],"eudr","deforestation","timber",{"title":247,"path":282,"stem":283,"description":284,"icon":285,"tags":286},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F02.eudr\u002F01.implementation-guide","Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards",null,[278,279,280,216,31,245],{"title":253,"path":288,"stem":289,"description":290,"icon":285,"tags":291},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fevent-types","docs\u002F11.digital-product-passport\u002F02.eudr\u002F02.event-types","EPCIS event types for EU Deforestation Regulation compliance",[278,31,65,39,216],{"title":293,"path":294,"stem":295,"description":296,"icon":285,"tags":297},"URL Patterns","\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Furl-patterns","docs\u002F11.digital-product-passport\u002F02.eudr\u002F03.url-patterns","GS1 Digital Link URL patterns for EUDR implementations",[278,97,298,299,216,245],"resolver","linkset",{"title":260,"path":301,"stem":302,"description":303,"icon":13,"tags":304},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F02.eudr\u002F04.complete-examples","Reference EUDR examples — timber product passport, derived product, regulatory notification, harvesting \u002F origin-declaration \u002F processing \u002F supply-chain-transfer \u002F exemption events",[278,265,280,245,305],"geolocation",[278,279,280,216,31,103,35,218,245],{"title":308,"path":309,"stem":310,"children":311,"description":313,"icon":314,"tags":333},"Textile DPP","\u002Fdocs\u002Fdigital-product-passport\u002Ftextile","docs\u002F11.digital-product-passport\u002F03.textile\u002Findex",[312,320,327],{"title":308,"path":309,"stem":310,"description":313,"icon":314,"tags":315},"Digital Product Passport vocabulary for textiles and apparel under the EU Sustainable Textiles Strategy and ESPR 2024\u002F1781.","heroicons-outline:sparkles",[316,317,318,216,218,319],"textile","apparel","footwear","fibre-composition",{"title":247,"path":321,"stem":322,"description":323,"icon":324,"tags":325},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F03.textile\u002F01.implementation-guide","How to assemble a Textile Digital Product Passport against the published openepcis-dpp-ready textile vocabulary","heroicons-outline:scissors",[316,317,318,326],"implementation",{"title":260,"path":328,"stem":329,"description":330,"icon":13,"tags":331},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F03.textile\u002F02.complete-examples","Reference Textile Digital Product Passport documents covering apparel and footwear",[316,265,317,318,332,63],"fiber-composition",[316,317,318,216,218,319],{"title":335,"path":336,"stem":337,"children":338,"description":340,"icon":60,"tags":347},"Interoperability","\u002Fdocs\u002Fdigital-product-passport\u002Finteroperability","docs\u002F11.digital-product-passport\u002F04.interoperability\u002Findex",[339],{"title":335,"path":336,"stem":337,"description":340,"icon":60,"tags":341},"Guide to OpenEPCIS DPP interoperability with GS1, UNTP, CIRPASS2, and ESPR standards.",[342,343,103,344,230,345,346,220],"interoperability","untp","cirpass2","standards","alignment",[342,343,103,344,230,345,346,220],{"title":349,"path":350,"stem":351,"description":352,"icon":29,"tags":353},"DPP Resolution Flow","\u002Fdocs\u002Fdigital-product-passport\u002Fdpp-resolution-flow","docs\u002F11.digital-product-passport\u002F05.dpp-resolution-flow","How OpenEPCIS combined GS1 Digital Link, the IETF linkset format and content negotiation into one DPP resolution flow",[354,97,299,355,298],"walkthrough","content-negotiation",{"title":357,"path":358,"stem":359,"description":360,"icon":361,"tags":362},"Resolver Setup","\u002Fdocs\u002Fdigital-product-passport\u002Fresolver-setup","docs\u002F11.digital-product-passport\u002F06.resolver-setup","How to expose your DPP behind a GS1 Digital Link resolver","heroicons-outline:server",[298,97,299],{"title":364,"path":365,"stem":366,"description":367,"icon":368,"tags":369},"Multi-Component Example","\u002Fdocs\u002Fdigital-product-passport\u002Fmulti-component-example","docs\u002F11.digital-product-passport\u002F07.multi-component-example","How a composite product references separately-passported components via standard GS1 Digital Link and EPCIS aggregation","heroicons-outline:puzzle-piece",[370,371,372,344],"example","components","aggregation",{"title":374,"path":375,"stem":376,"children":377,"description":379,"icon":380,"tags":399},"Electronics DPP","\u002Fdocs\u002Fdigital-product-passport\u002Felectronics","docs\u002F11.digital-product-passport\u002F08.electronics\u002Findex",[378,387,392],{"title":374,"path":375,"stem":376,"description":379,"icon":380,"tags":381},"Digital Product Passport vocabulary for electronic devices under ESPR, the French Repairability Index, EU Right to Repair and WEEE.","heroicons-outline:device-phone-mobile",[382,383,384,385,386],"electronics","repairability","weee","energy-label","right-to-repair",{"title":247,"path":388,"stem":389,"description":390,"icon":174,"tags":391},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F08.electronics\u002F01.implementation-guide","How to assemble an Electronics Digital Product Passport against the published openepcis-dpp-ready electronics vocabulary",[382,326,383,384,385],{"title":260,"path":393,"stem":394,"description":395,"icon":13,"tags":396},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F08.electronics\u002F02.complete-examples","Reference Electronics Digital Product Passport documents covering smartphone, laptop, display and server",[382,265,397,398,63],"smartphone","laptop",[382,383,384,385,386],{"title":401,"path":402,"stem":403,"description":404,"icon":228,"tags":405},"Signed Passports","\u002Fdocs\u002Fdigital-product-passport\u002Fsigned-passports","docs\u002F11.digital-product-passport\u002F09.signed-passports","How OpenEPCIS signs product passports so that software nobody here wrote can verify them — W3C Data Integrity, did:web, and the canonicalization layer that decides whether a signature travels.",[406,407,408,409,342,410],"verifiable-credentials","data-integrity","did-web","canonicalization","trust",[215,216,217,31,218,35,219,220],{"title":413,"path":414,"stem":415,"children":416,"description":418,"icon":419,"tags":427},"Profile Checker","\u002Fdocs\u002Fprofile-checker","docs\u002F12.profile-checker\u002Findex",[417],{"title":413,"path":414,"stem":415,"description":418,"icon":419,"tags":420},"OpenEPCIS tool to define EPCIS event profiles as JSON Schema and validate EPCIS documents or events against them.","heroicons-outline:clipboard-document-check",[16,421,422,423,424,425,426,21,72],"event-profile","profile-checker","json-schema","validation","data-quality","conformance",[16,421,422,423,424,425,426,21,72],{"title":429,"path":430,"stem":431,"children":432,"description":434,"icon":435,"tags":559},"Digital Data Management","\u002Fdocs\u002Fdigital-data-management","docs\u002F13.digital-data-management\u002Findex",[433,440,452,462,473,484,493,505,515,526,535,547],{"title":429,"path":430,"stem":431,"description":434,"icon":435,"tags":436},"End-user guide to OpenEPCIS Digital Data Management — curate GS1 master data, publish digital product passports, manage resolver links and analyze scans.","heroicons-outline:circle-stack",[437,438,215,97,439,298],"ddm","master-data","catalog",{"title":441,"path":442,"stem":443,"description":444,"icon":445,"tags":446},"Getting Started","\u002Fdocs\u002Fdigital-data-management\u002Fgetting-started","docs\u002F13.digital-data-management\u002F01.getting-started","Signing in to Digital Data Management, finding your way around the catalog workspace, and setting up your profile and integration tokens.","heroicons-outline:rocket-launch",[437,447,448,449,450,451],"login","keycloak","workspace","roles","profile",{"title":453,"path":454,"stem":455,"description":456,"icon":457,"tags":458},"Products","\u002Fdocs\u002Fdigital-data-management\u002Fproduct-catalog","docs\u002F13.digital-data-management\u002F02.product-catalog","The DDM product catalog — creating products from a passport type, importing in bulk, and keeping the catalog tidy.","heroicons-outline:cube",[437,459,105,460,461,439],"products","passport-type","bulk-import",{"title":463,"path":464,"stem":465,"description":466,"icon":467,"tags":468},"Passport Editor","\u002Fdocs\u002Fdigital-data-management\u002Fpassport-editor","docs\u002F13.digital-data-management\u002F03.passport-editor","One editor for products, organizations and places — ontology-generated forms, rich field widgets, GS1 validation, access levels and full version history.","heroicons-outline:pencil-square",[437,469,63,424,470,471,472],"editor","gpc","access-level","versions",{"title":474,"path":475,"stem":476,"description":477,"icon":478,"tags":479},"Organizations & Places","\u002Fdocs\u002Fdigital-data-management\u002Forganizations-and-places","docs\u002F13.digital-data-management\u002F04.organizations-and-places","GLN-keyed party and location records in DDM — organization roles, primary locations, and the public GLN information pages.","heroicons-outline:building-office-2",[437,480,481,111,482,483],"organizations","places","party","location",{"title":485,"path":486,"stem":487,"description":488,"icon":489,"tags":490},"Linksets","\u002Fdocs\u002Fdigital-data-management\u002Flinksets","docs\u002F13.digital-data-management\u002F05.linksets","Managing the resolver links behind every scan — the linkset explorer, the ownership model, and templated links that adapt to the scanned code.","heroicons-outline:link",[437,299,97,298,491,492],"linktype","templated-links",{"title":494,"path":495,"stem":496,"description":497,"icon":498,"tags":499},"Public Passports","\u002Fdocs\u002Fdigital-data-management\u002Fpublic-passports","docs\u002F13.digital-data-management\u002F06.public-passports","What consumers see — the demo gallery, the passport viewer at model, lot and item level, and template-driven rendering.","heroicons-outline:qr-code",[437,500,501,502,503,504],"passport","qr-code","consumer","templates","digital-link",{"title":506,"path":507,"stem":508,"description":509,"icon":419,"tags":510},"Passport Templates","\u002Fdocs\u002Fdigital-data-management\u002Fpassport-templates","docs\u002F13.digital-data-management\u002F07.passport-templates","What each passport type asks for — field obligations, hidden fields and creation defaults, layered from shipped defaults to deployment and tenant overrides.",[437,503,511,512,513,514],"requirements","obligations","creation-defaults","dpp-ready",{"title":516,"path":517,"stem":518,"description":519,"icon":520,"tags":521},"Field Access","\u002Fdocs\u002Fdigital-data-management\u002Ffield-access","docs\u002F13.digital-data-management\u002F08.field-access","Deciding which data fields consumers, operators and authorities can see — tier by tier, with persona preview and a reviewer workflow.","heroicons-outline:lock-closed",[437,522,523,230,524,525],"field-access","access-tiers","governance","skos",{"title":527,"path":528,"stem":529,"description":530,"icon":29,"tags":531},"Resolver Domains","\u002Fdocs\u002Fdigital-data-management\u002Fresolver-domains","docs\u002F13.digital-data-management\u002F09.resolver-domains","Serving GS1 Digital Links from your own hostname — CNAME setup, verification, and test prefixes to try it without a GS1 license.",[437,298,532,533,534,112],"custom-domain","cname","dns",{"title":536,"path":537,"stem":538,"description":539,"icon":540,"tags":541},"GS1 Sync","\u002Fdocs\u002Fdigital-data-management\u002Fgs1-sync","docs\u002F13.digital-data-management\u002F10.gs1-sync","Publishing your catalog to GS1 Germany — service tokens, licensed prefixes, the key pool, Verified by GS1, and the per-record Sync tab.","heroicons-outline:arrow-path",[437,542,543,544,545,546],"gs1-germany","sync","service-token","key-pool","verified-by-gs1",{"title":548,"path":549,"stem":550,"description":551,"icon":552,"tags":553},"Scan Analytics","\u002Fdocs\u002Fdigital-data-management\u002Fscan-analytics","docs\u002F13.digital-data-management\u002F11.scan-analytics","What only a resolver can know — anonymous scan statistics, demand insights, and a live privacy report that shows exactly what is and is not collected.","heroicons-outline:chart-bar",[437,554,555,556,557,558],"scans","analytics","privacy","k-anonymity","insights",[437,438,215,97,439,298],{"title":561,"path":562,"stem":563,"children":564,"description":566,"icon":567},"OpenEPCIS Overview","\u002Fdocs\u002Fplatform-overview","docs\u002F14.platform-overview\u002Findex",[565,568,574,580],{"title":561,"path":562,"stem":563,"description":566,"icon":567},"A GS1-conformant supply-chain data platform — Resolver, Masterdata, EPCIS Events — in open source and business editions.","lucide:layout-dashboard",{"title":569,"path":570,"stem":571,"description":572,"icon":573},"Architecture","\u002Fdocs\u002Fplatform-overview\u002Farchitecture","docs\u002F14.platform-overview\u002F01.architecture","How OpenEPCIS handles identity, isolation, events, and GS1 conformance — the four things that distinguish the platform.","lucide:cpu",{"title":575,"path":576,"stem":577,"description":578,"icon":579},"Feature Matrix","\u002Fdocs\u002Fplatform-overview\u002Ffeature-matrix","docs\u002F14.platform-overview\u002F02.feature-matrix","OpenEPCIS capabilities by edition, aligned to the relevant GS1 standards.","lucide:check-square",{"title":581,"path":582,"stem":583,"children":584,"description":586,"icon":587},"Modules","\u002Fdocs\u002Fplatform-overview\u002Fmodules","docs\u002F14.platform-overview\u002Fmodules\u002Findex",[585,588,595,603,611,617,623,629],{"title":581,"path":582,"stem":583,"description":586,"icon":587},"Seven module families that organise the OpenEPCIS platform — Resolver, Masterdata, EPCIS Events, Formats & Validation, Integration, Testdata, Platform.","lucide:layers",{"title":589,"path":590,"stem":591,"description":592,"icon":593,"tags":594},"GS1 Conformant Resolver","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fresolver","docs\u002F14.platform-overview\u002Fmodules\u002F01.resolver","Resolves GS1 Digital Link URIs to product information, masterdata, EPCIS endpoints, and twelve more standard link types.","lucide:link-2",[298,97,103,299,220],{"title":596,"path":597,"stem":598,"description":599,"icon":600,"tags":601},"GS1 Web Vocabulary & Masterdata","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fmasterdata","docs\u002F14.platform-overview\u002Fmodules\u002F02.masterdata","Web Vocabulary models, masterdata-to-resolver REST pattern, GS1 Germany Activate Plus \u002F GEPIR sync, and the event-driven masterdata bus.","lucide:database",[220,602,103,298,63],"masterdata",{"title":604,"path":605,"stem":606,"description":607,"icon":608,"tags":609},"EPCIS Events — Capture, Query, Subscriptions","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fepcis-events","docs\u002F14.platform-overview\u002Fmodules\u002F03.epcis-events","EPCIS 2.0 REST and SOAP, live streaming subscriptions, resilient pagination, OpenSearch event store.","lucide:activity",[39,16,31,65,610,35],"subscriptions",{"title":612,"path":613,"stem":614,"description":615,"icon":616},"Formats, Validation & Identity","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fformats","docs\u002F14.platform-overview\u002Fmodules\u002F04.formats","XML ↔ JSON-LD conversion, multi-layer validation, identifier translation, idempotent event hashing.","lucide:file-check",{"title":618,"path":619,"stem":620,"description":621,"icon":622},"Integration & Gateways","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fintegration","docs\u002F14.platform-overview\u002Fmodules\u002F05.integration","AS2 gateway for EDI partners, cloud storage, file service, natural-language AI assistant.","lucide:plug",{"title":624,"path":625,"stem":626,"description":627,"icon":628},"Testdata & Developer Tooling","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Ftestdata","docs\u002F14.platform-overview\u002Fmodules\u002F06.testdata","Synthetic EPCIS test event generation, reference event collections, conformance test suite, SDKs.","lucide:wrench",{"title":630,"path":631,"stem":632,"description":633,"icon":634},"Platform, Build & Observability","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fplatform","docs\u002F14.platform-overview\u002Fmodules\u002F07.platform","How OpenEPCIS is built, deployed, and observed.","lucide:server",{"title":636,"path":637,"stem":638,"children":639,"description":641,"icon":29,"tags":649},"Vision","\u002Fdocs\u002Fvision","docs\u002F15.vision\u002Findex",[640],{"title":636,"path":637,"stem":638,"description":641,"icon":29,"tags":642},"How UNTP, DIDs, Verifiable Credentials, and EPCIS work together to create unified product identity infrastructure for the connected supply chain.",[643,644,645,406,343,646,647,648],"vision","digital-twin","did","rfid","industry-4-0","web-3-0",[643,644,645,406,343,646,647,648],{"title":651,"path":652,"stem":653,"children":654,"description":656,"icon":622},"API Reference","\u002Fdocs\u002Fapi-reference","docs\u002F16.api-reference\u002Findex",[655],{"title":651,"path":652,"stem":653,"description":656,"icon":622},"Interactive OpenAPI references for the GS1 Digital Link Resolver and the EPCIS 2.0 REST bindings.",[658],{"title":659,"path":660,"stem":661,"children":662,"page":674},"Blog","\u002Fblog","blog",[663,669],{"title":664,"path":665,"stem":666,"description":667,"icon":668},"The Web-based DPP doesn't need new infrastructure","\u002Fblog\u002Fdpp-stack-for-agents","blog\u002F01.dpp-stack-for-agents","Three GS1 standards — Digital Link, Web Vocabulary, Conformant Resolver — plus EPCIS 2.0 already cover the agent-facing layer of the Digital Product Passport.","heroicons-outline:newspaper",{"title":670,"path":671,"stem":672,"description":673,"icon":668},"Fascinating in Theory. It Just Doesn't Work in Practice.","\u002Fblog\u002Fblockchain-traceability","blog\u002F02.blockchain-traceability","Why blockchain is the wrong answer to traceability, and why it refuses to die anyway.",false,{"doc":676,"usedFallback":674},{"id":677,"title":678,"body":679,"description":404,"extension":1105,"icon":228,"lastUpdated":1106,"meta":1107,"navigation":1118,"path":402,"seo":1120,"sitemap":1121,"stem":403,"__hash__":1125},"docsEN\u002Fdocs\u002F11.digital-product-passport\u002F09.signed-passports.md","Signed Passports: Verified Outside Our Own Stack",{"type":680,"value":681,"toc":1095},"minimark",[682,687,696,699,707,711,714,720,731,734,738,747,756,760,763,769,772,782,785,796,800,803,818,825,892,899,910,914,917,927,930,934,937,1032,1039,1062,1066,1091],[683,684,686],"h2",{"id":685},"what-this-page-is","What this page is",[688,689,690,691,695],"p",{},"A digital product passport is worth exactly as much as the confidence that\nnobody altered it. That confidence comes from a signature — and a signature is\nonly worth something if ",[692,693,694],"strong",{},"someone else's"," software can check it. Anyone can\nsign. The question is whether a regulator, a recycler or a customs authority can\nverify without installing anything of ours.",[688,697,698],{},"This page describes how OpenEPCIS signs passports, and why the hardest part of\ngetting a signature to travel is not the cryptography.",[688,700,701,702,706],{},"It sits alongside ",[703,704,705],"a",{"href":336},"Standards\nInteroperability",", which covers\nvocabulary alignment — whether our terms line up with UNTP, CIRPASS-2 and ESPR.\nThis page is about cryptographic interoperability: same word, different question.",[683,708,710],{"id":709},"demonstrated-in-both-directions","Demonstrated in both directions",[688,712,713],{},"On the OpenEPCIS reference deployment, both directions have been exercised\nagainst implementations written by other people.",[688,715,716,719],{},[692,717,718],{},"Reading."," A real GS1 licence credential, fetched from GS1's live service and\nchecked against GS1's own published key document, verifies in the OpenEPCIS\nengine — and stops verifying the moment a single byte changes. GS1 is the root\nof trust for GS1 Digital Link, and no part of their issuing stack is ours.",[688,721,722,725,726,730],{},[692,723,724],{},"Writing."," A battery passport credential issued by OpenEPCIS is accepted by an\nindependent third-party verifier running on an unrelated library stack, which\nreports the proof as ",[727,728,729],"code",{},"ecdsa-rdfc-2019 | verified: true",".",[688,732,733],{},"The second one is the harder claim, and it is the one most implementations\ncannot make. Signing is easy. Being verifiable by a stranger is the point.",[683,735,737],{"id":736},"how-it-is-put-together","How it is put together",[688,739,740,746],{},[692,741,742,743,730],{},"W3C Data Integrity, ",[727,744,745],{},"ecdsa-rdfc-2019"," The proof covers the passport as a\ngraph rather than as a byte stream, so it survives reserialisation: reformat the\nJSON, reorder the keys, convert to another RDF syntax, and the proof still holds.\nA passport that has passed through three systems is still the passport that was\nsigned.",[688,748,749,755],{},[692,750,751,754],{},[727,752,753],{},"did:web"," for the issuer key."," A verifier resolves the key over ordinary\nHTTPS from a domain the issuer controls. No registry to join and no consortium\nto be admitted to: a verifier needs the published contexts and the DID document,\nboth public, and nothing else from us.",[683,757,759],{"id":758},"the-layer-that-decides-whether-a-signature-travels","The layer that decides whether a signature travels",[688,761,762],{},"This is the part worth understanding, because it is where cross-vendor\nverification is won or lost, and it stays invisible until it bites.",[688,764,765,766,768],{},"Parts of a passport carry no identifier of their own: the individual material\nentries, the hazard statements, the footprint figures. Before signing, they must\nbe numbered so that any two readers see them in the same order. That step is\ncalled ",[692,767,409],{},", it is specified exactly, and the signature is a hash\nover its result.",[688,770,771],{},"Two implementations that number them differently produce different bytes from\nidentical data — and the verifier reports an invalid signature although nothing\nwas tampered with. The whole failure mode fits in four lines. Two nodes pointing\nat a third is the classic case where the numbering rules decide:",[773,774,780],"pre",{"className":775,"code":777,"language":778,"meta":779},[776],"language-text","one implementation      the standard\n\n#test #A _:c14n0        #test #A _:c14n2\n#test #B _:c14n1        #test #B _:c14n0\n_:c14n0 #next _:c14n2   _:c14n0 #next _:c14n1\n_:c14n1 #next _:c14n2   _:c14n2 #next _:c14n1\n","text","",[727,781,777],{"__ignoreMap":779},[688,783,784],{},"Same graph, different labels, and a signature that verifies nowhere but at home.\nOn a real battery passport with 92 unnamed parts there is no prospect of\naccidental agreement.",[688,786,787,788,795],{},"OpenEPCIS therefore holds its signing path to the ",[692,789,790,791,794],{},"W3C ",[727,792,793],{},"rdf-canon"," conformance\nsuite in the build",", rather than to its own round-trip, and pins the canonical\noutput of a fixed example across both runtimes it uses. Conformance at this layer\nis a test result here, not an assumption — and that is why the signatures verify\nelsewhere.",[683,797,799],{"id":798},"where-wallets-fit","Where wallets fit",[688,801,802],{},"There is an intuitive assumption worth correcting, because it sends\nimplementations down the wrong path: that a product passport is something a\nwallet carries.",[688,804,805,806,810,811,814,815,817],{},"It usually is not. A passport is an assertion ",[807,808,809],"em",{},"about a thing",", published so that\nanyone scanning the product can read it — not a personal attestation a holder\npresents about themselves. The credential formats a wallet must accept\n(IETF SD-JWT VC and ISO\u002FIEC 18013-5 mdoc are the two the EU wallet ecosystem is\nbuilt around) matter when a ",[692,812,813],{},"holder"," is in the picture. A wallet accepts a\n",[807,816,69],{},", never \"a Verifiable Credential\" in the abstract, so format is the lever\n— which is why OpenEPCIS issues Data Integrity for machine-to-machine\nverification and UNTP alignment, and SD-JWT VC where a holder is involved.",[688,819,820,821,824],{},"The more interesting direction is the reverse one: wallets as how the ",[692,822,823],{},"actors","\nprove who they are and what they may see.",[826,827,828,844],"table",{},[829,830,831],"thead",{},[832,833,834,838,841],"tr",{},[835,836,837],"th",{},"Scenario",[835,839,840],{},"What is presented",[835,842,843],{},"What it replaces",[845,846,847,859,870,881],"tbody",{},[832,848,849,853,856],{},[850,851,852],"td",{},"Onboarding an economic operator",[850,854,855],{},"A legal-person attestation from an organisational wallet",[850,857,858],{},"A self-asserted company name on an account form",[832,860,861,864,867],{},[850,862,863],{},"Acting on behalf of a brand",[850,865,866],{},"A mandate \u002F power-of-representation attestation",[850,868,869],{},"A support ticket and a manual role grant",[832,871,872,875,878],{},[850,873,874],{},"Proving prefix entitlement",[850,876,877],{},"The brand owner's GS1 prefix licence credential",[850,879,880],{},"Trusting that the GTINs written are the ones licensed",[832,882,883,886,889],{},[850,884,885],{},"Unlocking a restricted access tier",[850,887,888],{},"A credential showing the holder is an authorised treatment or repair operator",[850,890,891],{},"Provisioning an account per facility, per country",[688,893,894,895,898],{},"The last row is the one to watch, because it is ESPR Article 9 followed through.\nAccess tiers exist today and are enforced at the data layer; what a presented\ncredential adds is that the ",[807,896,897],{},"entitlement"," travels with the holder instead of\nbeing administered by us. A recycler in another member state proves what they\nare and reads what that entitles them to — no account, no onboarding call.",[688,900,901,902,905,906,909],{},"Two of the four pieces are already in place: the passport side is signed and\nindependently verifiable, and GS1 licence credentials are verified today,\nincluding the delegation chain. What the scenarios above need in addition is the\npresentation exchange — which is why credential ",[807,903,904],{},"presentation"," rather than\ncredential ",[807,907,908],{},"issuance"," is the part of the wallet story worth building next.",[683,911,913],{"id":912},"why-the-published-contexts-are-part-of-the-signature","Why the published contexts are part of the signature",[688,915,916],{},"One consequence of signing a graph is worth stating plainly, because it shapes\nhow the reference site is operated.",[688,918,919,920,926],{},"The translation into canonical form is driven by the JSON-LD context documents\npublished on ",[703,921,925],{"href":922,"rel":923},"https:\u002F\u002Fref.openepcis.io",[924],"nofollow","ref.openepcis.io",". Every credential names\nthem by URL, and a verifier fetches those URLs and repeats the translation. If\nwhat is served differs from what the issuer used — even by one term definition —\nthe verifier reconstructs different bytes and rejects a perfectly good passport.",[688,928,929],{},"So those documents are not documentation. They are an input to the cryptography.\nPublished versions are treated as records rather than as something to quietly\ncorrect, and the issuer and the reference site are kept in step deliberately.",[683,931,933],{"id":932},"checking-a-credential-yourself","Checking a credential yourself",[688,935,936],{},"Nothing here has to be taken on trust. A credential is publicly dereferenceable,\nand public verifier APIs exist that share none of our code — substitute the\nissuer host of the deployment you are looking at and a verifier you trust:",[773,938,942],{"className":939,"code":940,"language":941,"meta":779,"style":779},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast monokai","curl -s https:\u002F\u002Fissuer.example.com\u002Fvc\u002Fcredentials\u002F\u003Ccredential-id> \\\n | python3 -c 'import json,sys;print(json.dumps([json.load(sys.stdin)]))' \\\n | curl -s -X POST -H 'Content-Type: application\u002Fjson' --data @- \\\n        https:\u002F\u002Fverifier.example.org\u002Fapi\u002Fverify\n","bash",[727,943,944,979,996,1026],{"__ignoreMap":779},[945,946,949,953,957,961,965,968,972,975],"span",{"class":947,"line":948},"line",1,[945,950,952],{"class":951},"sqej0","curl",[945,954,956],{"class":955},"sCHB2"," -s",[945,958,960],{"class":959},"sQH_i"," https:\u002F\u002Fissuer.example.com\u002Fvc\u002Fcredentials\u002F",[945,962,964],{"class":963},"skuvz","\u003C",[945,966,967],{"class":959},"credential-i",[945,969,971],{"class":970},"se58z","d",[945,973,974],{"class":963},">",[945,976,978],{"class":977},"sCYDO"," \\\n",[945,980,982,985,988,991,994],{"class":947,"line":981},2,[945,983,984],{"class":963}," |",[945,986,987],{"class":951}," python3",[945,989,990],{"class":955}," -c",[945,992,993],{"class":959}," 'import json,sys;print(json.dumps([json.load(sys.stdin)]))'",[945,995,978],{"class":977},[945,997,999,1001,1004,1006,1009,1012,1015,1018,1021,1024],{"class":947,"line":998},3,[945,1000,984],{"class":963},[945,1002,1003],{"class":951}," curl",[945,1005,956],{"class":955},[945,1007,1008],{"class":955}," -X",[945,1010,1011],{"class":959}," POST",[945,1013,1014],{"class":955}," -H",[945,1016,1017],{"class":959}," 'Content-Type: application\u002Fjson'",[945,1019,1020],{"class":955}," --data",[945,1022,1023],{"class":959}," @-",[945,1025,978],{"class":977},[945,1027,1029],{"class":947,"line":1028},4,[945,1030,1031],{"class":959},"        https:\u002F\u002Fverifier.example.org\u002Fapi\u002Fverify\n",[688,1033,1034,1035,1038],{},"The credential id sits in the ",[727,1036,1037],{},"gs1:dpp"," entry of the product's linkset, next to\nthe passport API itself:",[773,1040,1042],{"className":939,"code":1041,"language":941,"meta":779,"style":779},"curl -s -H 'Accept: application\u002Flinkset+json' \\\n  https:\u002F\u002Fid.example.com\u002F01\u002F09521002005004\n",[727,1043,1044,1057],{"__ignoreMap":779},[945,1045,1046,1048,1050,1052,1055],{"class":947,"line":948},[945,1047,952],{"class":951},[945,1049,956],{"class":955},[945,1051,1014],{"class":955},[945,1053,1054],{"class":959}," 'Accept: application\u002Flinkset+json'",[945,1056,978],{"class":977},[945,1058,1059],{"class":947,"line":981},[945,1060,1061],{"class":959},"  https:\u002F\u002Fid.example.com\u002F01\u002F09521002005004\n",[683,1063,1065],{"id":1064},"next-steps","Next steps",[1067,1068,1069,1075,1081],"ul",{},[1070,1071,1072,1074],"li",{},[703,1073,349],{"href":350}," — how\na scanned QR code reaches a typed passport response in the first place",[1070,1076,1077,1080],{},[703,1078,1079],{"href":336},"Standards Interoperability"," —\nthe vocabulary side of the same question",[1070,1082,1083,1090],{},[703,1084,1087],{"href":1085,"rel":1086},"https:\u002F\u002Fgithub.com\u002Fopenepcis\u002Fopenepcis-dpp-ready\u002Fblob\u002Fmain\u002Fextensions\u002Fcommon\u002Finterop\u002Fdocs\u002FVC_INTEROPERABILITY.md",[924],[727,1088,1089],{},"VC_INTEROPERABILITY.md","\n— the engineering evidence page, layer by layer, with the measurements behind\neverything summarised here",[1092,1093,1094],"style",{},"html pre.shiki code .sqej0, html code.shiki .sqej0{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757;--shiki-sepia:#A6E22E}html pre.shiki code .sCHB2, html code.shiki .sCHB2{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF;--shiki-sepia:#AE81FF}html pre.shiki code .sQH_i, html code.shiki .sQH_i{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF;--shiki-sepia:#E6DB74}html pre.shiki code .skuvz, html code.shiki .skuvz{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF9492;--shiki-sepia:#F92672}html pre.shiki code .se58z, html code.shiki .se58z{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6;--shiki-sepia:#F8F8F2}html pre.shiki code .sCYDO, html code.shiki .sCYDO{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF9492;--shiki-sepia:#AE81FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":779,"searchDepth":981,"depth":981,"links":1096},[1097,1098,1099,1100,1101,1102,1103,1104],{"id":685,"depth":981,"text":686},{"id":709,"depth":981,"text":710},{"id":736,"depth":981,"text":737},{"id":758,"depth":981,"text":759},{"id":798,"depth":981,"text":799},{"id":912,"depth":981,"text":913},{"id":932,"depth":981,"text":933},{"id":1064,"depth":981,"text":1065},"md","2026-08-23T00:00:00.000Z",{"head":1108,"readingTime":1113},{"meta":1109},[1110],{"name":1111,"content":1112},"keywords","verifiable credentials, W3C Data Integrity, ecdsa-rdfc-2019, did:web, RDF canonicalization, DPP signature verification",{"text":1114,"minutes":1115,"time":1116,"words":1117},"6 min read",5.855,351300,1171,{"title":401,"tags":1119},[406,407,408,409,342,410],{"title":678,"description":404},{"loc":402,"lastmod":1122,"changefreq":1123,"priority":1124},"2026-08-23","monthly",0.8,"Q-02bl1sL-vVe0IIGSn8WqZYAw8G0h36QNkHkmlMJsM",[1127],{"title":5,"path":6,"stem":7,"children":1128},[1129,1131,1136,1141,1146,1151,1156,1161,1171,1176,1181,1186,1251,1256,1283,1301,1306],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":1130},[15,16,17,18,19,20,21],{"title":23,"path":24,"stem":25,"children":1132,"description":28,"icon":29,"tags":1135},[1133],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":1134},[16,31,32,33,34,35,36,37,38,39],[16,31,32,33,34,35,36,37,38,39],{"title":42,"path":43,"stem":44,"children":1137,"description":47,"icon":48,"tags":1140},[1138],{"title":42,"path":43,"stem":44,"description":47,"icon":48,"tags":1139},[16,31,32,33,50,51,39],[16,31,32,33,50,51,39],{"title":54,"path":55,"stem":56,"children":1142,"description":59,"icon":60,"tags":1145},[1143],{"title":54,"path":55,"stem":56,"description":59,"icon":60,"tags":1144},[16,62,63,64,65,66,67,21,68,69,70,71,72],[16,62,63,64,65,66,67,21,68,69,70,71,72],{"title":75,"path":76,"stem":77,"children":1147,"description":80,"icon":81,"tags":1150},[1148],{"title":75,"path":76,"stem":77,"description":80,"icon":81,"tags":1149},[16,32,62,63,64,65,83,67,21,84,85,86,70,71,72],[16,32,62,63,64,65,83,67,21,84,85,86,70,71,72],{"title":89,"path":90,"stem":91,"children":1152,"description":94,"icon":95,"tags":1155},[1153],{"title":89,"path":90,"stem":91,"description":94,"icon":95,"tags":1154},[16,97,98,99,100,101,21,102,103,104,105,106,107,108,109,110,111,112],[16,97,98,99,100,101,21,102,103,104,105,106,107,108,109,110,111,112],{"title":115,"path":116,"stem":117,"children":1157,"description":120,"icon":121,"tags":1160},[1158],{"title":115,"path":116,"stem":117,"description":120,"icon":121,"tags":1159},[16,123,62,63,64,65,21,124,125,126,71,72],[16,123,62,63,64,65,21,124,125,126,71,72],{"title":129,"path":130,"stem":131,"children":1162,"description":134,"icon":135,"tags":1170},[1163,1165],{"title":129,"path":130,"stem":131,"description":134,"icon":135,"tags":1164},[16,123,62,63,64,65,21,124,125,126,71,72],{"title":138,"path":139,"stem":140,"children":1166,"description":143,"icon":144,"tags":1169},[1167],{"title":138,"path":139,"stem":140,"description":143,"icon":144,"tags":1168},[16,62,63,146,21,147,148,149,35,150,151,152,153],[16,62,63,146,21,147,148,149,35,150,151,152,153],[16,123,62,63,64,65,21,124,125,126,71,72],{"title":157,"path":158,"stem":159,"children":1172,"description":162,"icon":163,"tags":1175},[1173],{"title":157,"path":158,"stem":159,"description":162,"icon":163,"tags":1174},[16,62,63,146,21,165,35,150,151,152,153],[16,62,63,146,21,165,35,150,151,152,153],{"title":168,"path":169,"stem":170,"children":1177,"description":173,"icon":174,"tags":1180},[1178],{"title":168,"path":169,"stem":170,"description":173,"icon":174,"tags":1179},[16,176,15,177,21,178,35,179,151,152,180],[16,176,15,177,21,178,35,179,151,152,180],{"title":183,"path":184,"stem":185,"children":1182,"description":188,"icon":189,"tags":1185},[1183],{"title":183,"path":184,"stem":185,"description":188,"icon":189,"tags":1184},[191,15,192,193,194,195,196,31,197,198,199,200,201,202,203,204],[191,15,192,193,194,195,196,31,197,198,199,200,201,202,203,204],{"title":207,"path":208,"stem":209,"children":1187,"description":212,"icon":213,"tags":1250},[1188,1190,1195,1206,1219,1228,1233,1235,1237,1239,1248],{"title":207,"path":208,"stem":209,"description":212,"icon":213,"tags":1189},[215,216,217,31,218,35,219,220],{"title":222,"path":223,"stem":224,"children":1191,"description":227,"icon":228,"tags":1194},[1192],{"title":222,"path":223,"stem":224,"description":227,"icon":228,"tags":1193},[230,231,218,216,217,232],[230,231,218,216,217,232],{"title":235,"path":236,"stem":237,"children":1196,"description":240,"icon":241,"tags":1205},[1197,1199,1201,1203],{"title":235,"path":236,"stem":237,"description":240,"icon":241,"tags":1198},[243,244,216,31,103,35,218,245],{"title":247,"path":248,"stem":249,"description":250,"icon":174,"tags":1200},[243,244,216,31,220],{"title":253,"path":254,"stem":255,"description":256,"icon":257,"tags":1202},[243,31,65,39,216],{"title":260,"path":261,"stem":262,"description":263,"icon":13,"tags":1204},[243,265,266,63,267,245],[243,244,216,31,103,35,218,245],{"title":270,"path":271,"stem":272,"children":1207,"description":275,"icon":276,"tags":1218},[1208,1210,1212,1214,1216],{"title":270,"path":271,"stem":272,"description":275,"icon":276,"tags":1209},[278,279,280,216,31,103,35,218,245],{"title":247,"path":282,"stem":283,"description":284,"icon":285,"tags":1211},[278,279,280,216,31,245],{"title":253,"path":288,"stem":289,"description":290,"icon":285,"tags":1213},[278,31,65,39,216],{"title":293,"path":294,"stem":295,"description":296,"icon":285,"tags":1215},[278,97,298,299,216,245],{"title":260,"path":301,"stem":302,"description":303,"icon":13,"tags":1217},[278,265,280,245,305],[278,279,280,216,31,103,35,218,245],{"title":308,"path":309,"stem":310,"children":1220,"description":313,"icon":314,"tags":1227},[1221,1223,1225],{"title":308,"path":309,"stem":310,"description":313,"icon":314,"tags":1222},[316,317,318,216,218,319],{"title":247,"path":321,"stem":322,"description":323,"icon":324,"tags":1224},[316,317,318,326],{"title":260,"path":328,"stem":329,"description":330,"icon":13,"tags":1226},[316,265,317,318,332,63],[316,317,318,216,218,319],{"title":335,"path":336,"stem":337,"children":1229,"description":340,"icon":60,"tags":1232},[1230],{"title":335,"path":336,"stem":337,"description":340,"icon":60,"tags":1231},[342,343,103,344,230,345,346,220],[342,343,103,344,230,345,346,220],{"title":349,"path":350,"stem":351,"description":352,"icon":29,"tags":1234},[354,97,299,355,298],{"title":357,"path":358,"stem":359,"description":360,"icon":361,"tags":1236},[298,97,299],{"title":364,"path":365,"stem":366,"description":367,"icon":368,"tags":1238},[370,371,372,344],{"title":374,"path":375,"stem":376,"children":1240,"description":379,"icon":380,"tags":1247},[1241,1243,1245],{"title":374,"path":375,"stem":376,"description":379,"icon":380,"tags":1242},[382,383,384,385,386],{"title":247,"path":388,"stem":389,"description":390,"icon":174,"tags":1244},[382,326,383,384,385],{"title":260,"path":393,"stem":394,"description":395,"icon":13,"tags":1246},[382,265,397,398,63],[382,383,384,385,386],{"title":401,"path":402,"stem":403,"description":404,"icon":228,"tags":1249},[406,407,408,409,342,410],[215,216,217,31,218,35,219,220],{"title":413,"path":414,"stem":415,"children":1252,"description":418,"icon":419,"tags":1255},[1253],{"title":413,"path":414,"stem":415,"description":418,"icon":419,"tags":1254},[16,421,422,423,424,425,426,21,72],[16,421,422,423,424,425,426,21,72],{"title":429,"path":430,"stem":431,"children":1257,"description":434,"icon":435,"tags":1282},[1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280],{"title":429,"path":430,"stem":431,"description":434,"icon":435,"tags":1259},[437,438,215,97,439,298],{"title":441,"path":442,"stem":443,"description":444,"icon":445,"tags":1261},[437,447,448,449,450,451],{"title":453,"path":454,"stem":455,"description":456,"icon":457,"tags":1263},[437,459,105,460,461,439],{"title":463,"path":464,"stem":465,"description":466,"icon":467,"tags":1265},[437,469,63,424,470,471,472],{"title":474,"path":475,"stem":476,"description":477,"icon":478,"tags":1267},[437,480,481,111,482,483],{"title":485,"path":486,"stem":487,"description":488,"icon":489,"tags":1269},[437,299,97,298,491,492],{"title":494,"path":495,"stem":496,"description":497,"icon":498,"tags":1271},[437,500,501,502,503,504],{"title":506,"path":507,"stem":508,"description":509,"icon":419,"tags":1273},[437,503,511,512,513,514],{"title":516,"path":517,"stem":518,"description":519,"icon":520,"tags":1275},[437,522,523,230,524,525],{"title":527,"path":528,"stem":529,"description":530,"icon":29,"tags":1277},[437,298,532,533,534,112],{"title":536,"path":537,"stem":538,"description":539,"icon":540,"tags":1279},[437,542,543,544,545,546],{"title":548,"path":549,"stem":550,"description":551,"icon":552,"tags":1281},[437,554,555,556,557,558],[437,438,215,97,439,298],{"title":561,"path":562,"stem":563,"children":1284,"description":566,"icon":567},[1285,1286,1287,1288],{"title":561,"path":562,"stem":563,"description":566,"icon":567},{"title":569,"path":570,"stem":571,"description":572,"icon":573},{"title":575,"path":576,"stem":577,"description":578,"icon":579},{"title":581,"path":582,"stem":583,"children":1289,"description":586,"icon":587},[1290,1291,1293,1295,1297,1298,1299,1300],{"title":581,"path":582,"stem":583,"description":586,"icon":587},{"title":589,"path":590,"stem":591,"description":592,"icon":593,"tags":1292},[298,97,103,299,220],{"title":596,"path":597,"stem":598,"description":599,"icon":600,"tags":1294},[220,602,103,298,63],{"title":604,"path":605,"stem":606,"description":607,"icon":608,"tags":1296},[39,16,31,65,610,35],{"title":612,"path":613,"stem":614,"description":615,"icon":616},{"title":618,"path":619,"stem":620,"description":621,"icon":622},{"title":624,"path":625,"stem":626,"description":627,"icon":628},{"title":630,"path":631,"stem":632,"description":633,"icon":634},{"title":636,"path":637,"stem":638,"children":1302,"description":641,"icon":29,"tags":1305},[1303],{"title":636,"path":637,"stem":638,"description":641,"icon":29,"tags":1304},[643,644,645,406,343,646,647,648],[643,644,645,406,343,646,647,648],{"title":651,"path":652,"stem":653,"children":1307,"description":656,"icon":622},[1308],{"title":651,"path":652,"stem":653,"description":656,"icon":622},{"id":677,"title":678,"body":1310,"description":404,"extension":1105,"icon":228,"lastUpdated":1106,"meta":1579,"navigation":1584,"path":402,"seo":1586,"sitemap":1587,"stem":403,"__hash__":1125},{"type":680,"value":1311,"toc":1569},[1312,1314,1318,1320,1324,1326,1328,1332,1338,1340,1342,1348,1354,1356,1358,1362,1364,1369,1371,1377,1379,1381,1389,1393,1439,1443,1449,1451,1453,1458,1460,1462,1464,1524,1528,1548,1550,1567],[683,1313,686],{"id":685},[688,1315,690,1316,695],{},[692,1317,694],{},[688,1319,698],{},[688,1321,701,1322,706],{},[703,1323,705],{"href":336},[683,1325,710],{"id":709},[688,1327,713],{},[688,1329,1330,719],{},[692,1331,718],{},[688,1333,1334,725,1336,730],{},[692,1335,724],{},[727,1337,729],{},[688,1339,733],{},[683,1341,737],{"id":736},[688,1343,1344,746],{},[692,1345,742,1346,730],{},[727,1347,745],{},[688,1349,1350,755],{},[692,1351,1352,754],{},[727,1353,753],{},[683,1355,759],{"id":758},[688,1357,762],{},[688,1359,765,1360,768],{},[692,1361,409],{},[688,1363,771],{},[773,1365,1367],{"className":1366,"code":777,"language":778,"meta":779},[776],[727,1368,777],{"__ignoreMap":779},[688,1370,784],{},[688,1372,787,1373,795],{},[692,1374,790,1375,794],{},[727,1376,793],{},[683,1378,799],{"id":798},[688,1380,802],{},[688,1382,805,1383,810,1385,814,1387,817],{},[807,1384,809],{},[692,1386,813],{},[807,1388,69],{},[688,1390,820,1391,824],{},[692,1392,823],{},[826,1394,1395,1405],{},[829,1396,1397],{},[832,1398,1399,1401,1403],{},[835,1400,837],{},[835,1402,840],{},[835,1404,843],{},[845,1406,1407,1415,1423,1431],{},[832,1408,1409,1411,1413],{},[850,1410,852],{},[850,1412,855],{},[850,1414,858],{},[832,1416,1417,1419,1421],{},[850,1418,863],{},[850,1420,866],{},[850,1422,869],{},[832,1424,1425,1427,1429],{},[850,1426,874],{},[850,1428,877],{},[850,1430,880],{},[832,1432,1433,1435,1437],{},[850,1434,885],{},[850,1436,888],{},[850,1438,891],{},[688,1440,894,1441,898],{},[807,1442,897],{},[688,1444,901,1445,905,1447,909],{},[807,1446,904],{},[807,1448,908],{},[683,1450,913],{"id":912},[688,1452,916],{},[688,1454,919,1455,926],{},[703,1456,925],{"href":922,"rel":1457},[924],[688,1459,929],{},[683,1461,933],{"id":932},[688,1463,936],{},[773,1465,1466],{"className":939,"code":940,"language":941,"meta":779,"style":779},[727,1467,1468,1486,1498,1520],{"__ignoreMap":779},[945,1469,1470,1472,1474,1476,1478,1480,1482,1484],{"class":947,"line":948},[945,1471,952],{"class":951},[945,1473,956],{"class":955},[945,1475,960],{"class":959},[945,1477,964],{"class":963},[945,1479,967],{"class":959},[945,1481,971],{"class":970},[945,1483,974],{"class":963},[945,1485,978],{"class":977},[945,1487,1488,1490,1492,1494,1496],{"class":947,"line":981},[945,1489,984],{"class":963},[945,1491,987],{"class":951},[945,1493,990],{"class":955},[945,1495,993],{"class":959},[945,1497,978],{"class":977},[945,1499,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518],{"class":947,"line":998},[945,1501,984],{"class":963},[945,1503,1003],{"class":951},[945,1505,956],{"class":955},[945,1507,1008],{"class":955},[945,1509,1011],{"class":959},[945,1511,1014],{"class":955},[945,1513,1017],{"class":959},[945,1515,1020],{"class":955},[945,1517,1023],{"class":959},[945,1519,978],{"class":977},[945,1521,1522],{"class":947,"line":1028},[945,1523,1031],{"class":959},[688,1525,1034,1526,1038],{},[727,1527,1037],{},[773,1529,1530],{"className":939,"code":1041,"language":941,"meta":779,"style":779},[727,1531,1532,1544],{"__ignoreMap":779},[945,1533,1534,1536,1538,1540,1542],{"class":947,"line":948},[945,1535,952],{"class":951},[945,1537,956],{"class":955},[945,1539,1014],{"class":955},[945,1541,1054],{"class":959},[945,1543,978],{"class":977},[945,1545,1546],{"class":947,"line":981},[945,1547,1061],{"class":959},[683,1549,1065],{"id":1064},[1067,1551,1552,1556,1560],{},[1070,1553,1554,1074],{},[703,1555,349],{"href":350},[1070,1557,1558,1080],{},[703,1559,1079],{"href":336},[1070,1561,1562,1090],{},[703,1563,1565],{"href":1085,"rel":1564},[924],[727,1566,1089],{},[1092,1568,1094],{},{"title":779,"searchDepth":981,"depth":981,"links":1570},[1571,1572,1573,1574,1575,1576,1577,1578],{"id":685,"depth":981,"text":686},{"id":709,"depth":981,"text":710},{"id":736,"depth":981,"text":737},{"id":758,"depth":981,"text":759},{"id":798,"depth":981,"text":799},{"id":912,"depth":981,"text":913},{"id":932,"depth":981,"text":933},{"id":1064,"depth":981,"text":1065},{"head":1580,"readingTime":1583},{"meta":1581},[1582],{"name":1111,"content":1112},{"text":1114,"minutes":1115,"time":1116,"words":1117},{"title":401,"tags":1585},[406,407,408,409,342,410],{"title":678,"description":404},{"loc":402,"lastmod":1122,"changefreq":1123,"priority":1124},1787775044988]