{"data":{"id":"10.5281/zenodo.19879680","type":"dois","attributes":{"doi":"10.5281/zenodo.19879680","prefix":"10.5281","suffix":"zenodo.19879680","identifiers":[{"identifier":"oai:zenodo.org:19879680","identifierType":"oai"}],"alternateIdentifiers":[{"alternateIdentifierType":"oai","alternateIdentifier":"oai:zenodo.org:19879680"}],"creators":[{"name":"Reil, Christian","nameType":"Personal","givenName":"Christian","familyName":"Reil","affiliation":["Ostbayerische Technische Hochschule Amberg-Weiden"],"nameIdentifiers":[{"nameIdentifier":"0000-0001-6686-562X","nameIdentifierScheme":"ORCID"}]},{"name":"Schafberger, Tobias","nameType":"Personal","givenName":"Tobias","familyName":"Schafberger","affiliation":["Ostbayerische Technische Hochschule Amberg-Weiden"],"nameIdentifiers":[{"nameIdentifier":"0009-0003-7022-0324","nameIdentifierScheme":"ORCID"}]},{"name":"Prinz, Alexander","nameType":"Personal","givenName":"Alexander","familyName":"Prinz","affiliation":["Ostbayerische Technische Hochschule Amberg-Weiden"],"nameIdentifiers":[{"nameIdentifier":"0009-0001-0535-8672","nameIdentifierScheme":"ORCID"}]},{"name":"Hoess, Alfred","nameType":"Personal","givenName":"Alfred","familyName":"Hoess","affiliation":["Ostbayerische Technische Hochschule Amberg-Weiden"],"nameIdentifiers":[{"nameIdentifier":"0000-0002-1962-0096","nameIdentifierScheme":"ORCID"}]}],"titles":[{"title":"Synthetic Lithium-Ion Battery Degradation Dataset for Remaining Useful Life Estimation"}],"publisher":"Zenodo","container":{},"publicationYear":2026,"subjects":[{"subject":"PowerizeD"},{"subject":"Synthetic Data"},{"subject":"Degradation"},{"subject":"PyBaMM"},{"subject":"Simulation"},{"subject":"WLTC"},{"subject":"RUL Estimation"},{"subject":"Battery"},{"subject":"Lithium-Ion"},{"subject":"Remaining Capacity"},{"subject":"State of Health"}],"contributors":[{"name":"Lepke, Heike","nameType":"Personal","givenName":"Heike","familyName":"Lepke","affiliation":["Ostbayerische Technische Hochschule Amberg-Weiden"],"contributorType":"ContactPerson","nameIdentifiers":[{"nameIdentifier":"0000-0001-8840-0081","nameIdentifierScheme":"ORCID"}]}],"dates":[{"date":"2026-05","dateType":"Issued"},{"date":"2024/2025","dateType":"Created","dateInformation":"Period during which the simulations were performed."}],"language":"en","types":{"ris":"DATA","bibtex":"misc","citeproc":"dataset","schemaOrg":"Dataset","resourceType":"","resourceTypeGeneral":"Dataset"},"relatedIdentifiers":[{"relationType":"IsVersionOf","relatedIdentifier":"10.5281/zenodo.19879679","relatedIdentifierType":"DOI"}],"relatedItems":[],"sizes":[],"formats":[],"version":null,"rightsList":[{"rights":"Creative Commons Attribution Non Commercial Share Alike 4.0 International","rightsUri":"https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode","schemeUri":"https://spdx.org/licenses/","rightsIdentifier":"cc-by-nc-sa-4.0","rightsIdentifierScheme":"SPDX"}],"descriptions":[{"description":"Motivation\n\nThe \"Synthetic Lithium-Ion Battery Degradation Dataset for Remaining Useful Life Estimation\" was created to support the development of machine learning models that can predict the remaining service life of lithium-ion based batteries. Due to the limited availability of real-world ageing data and freely accessible measurement data on battery ageing, synthetic ageing data was generated using physics-based simulation.\n\nDescription\n\nThis dataset contains ageing simulations of lithium-ion batteries, which were carried out using the PyBaMM framework (https://pybamm.org) . The simulations covered cell ageing during simple charge-discharge cycles as well as WLTC driving cycle simulations. The ageing simulations are based on the official PyBaMM example \"Modelling coupled degradation mechanisms in PyBaMM\" (https://docs.pybamm.org/en/v25.8.0/source/examples/notebooks/models/coupled-degradation.html). The simulations use the built-in DFN (Doyle-Fuller-Newman) model in PyBaMM with degradation mechanisms enabled. The \"OKane2022\" parameter set for the LG M50 cell, which is built into PyBaMM, was used as the starting point for parameterising the simulation model. However, to vary the ageing process, some of the ageing parameters were adjusted, as can be seen in the simulation metadata.\n\nDataset Structure\n\nThe dataset comprises multiple studies, each of which consists of several simulations of individual battery cells. The simulations within a given study share certain parameters, such as the type of the test cycle. The differences between the simulations within a study lie in the details.  Therefore, the metadata for each individual simulation must always be consulted.\n\n\n\nREADME.md: This description.\n\nstudy_X.zip: Zip folder containing simulations of one study.\n\n\n\nmetadata.json: Study metadata.\n\nsimulation_XX.hdf5: HDF5 file containing data of one individual simulation.\n\n\n\nATTRIBUTE \"metadata\": Simulation metadata formatted (json string)\n\nDATASET \"cycle_data\": Data on a test cycle by test cycle basis (e.g. SoH parameters)\n\n\n\nATTRIBUTE \"columns\": Column names of the dataset table (json string)\n\nATTRIBUTE \"units\": Units of the columns (json string)\n\n\n\nDATASET \"time_series_data\": Time series data based on the simulation time steps (e.g. voltage, current, etc.)\n\n\n\nATTRIBUTE \"columns\": Column names of the dataset table (json string)\n\nATTRIBUTE \"units\": Units of the columns (json string)\n\n\n\n\n\n\n\nimport_simulation.py: Example python script importing the data of one simulation.\n\nRequirements.txt: List of required python packages to execute `import_simulation.py`.\n\n\nCycle Data\n\n\n\n\nColumn\nDescription\nUnit\n\n\nTestCycle\nTest cycle number\n \n\n\nTime [s]\nSimulation time in seconds (simulated cell age)\ns\n\n\nBatteryCycle\nNumber of equivalent full cycles (EFC) $N_{\\text{EFC}} = \\frac{Q_{\\text{throughput}}}{2 \\cdot Q_{\\text{rated}}}$\n \n\n\nCapacity [A.h]\nRemaining max capacity\nAh\n\n\nMaximum theoretical energy [W.h]\nRemaining max energy\nWh\n\n\n\n\nTime Series Data\n\n\n\n\nColumn\nDescription\nUnit\n\n\nTime [s]\nSimulation time in seconds (simulated cell age)\ns\n\n\nBatteryCycle\nNumber of equivalent full cycles (EFC) $N_{\\text{EFC}} = \\frac{Q_{\\text{throughput}}}{2 \\cdot Q_{\\text{rated}}}$\n \n\n\nVoltage [V]\nBattery terminal voltage\nV\n\n\nBattery open-circuit voltage [V]\nBattery open-circuit voltage (OCV)\nV\n\n\nCurrent [A]\nBattery current (positive == discharge; negative == charge)\nV\n\n\nVolume-averaged cell temperature [C]\nCell temperature (averaged)\n°C\n\n\nAmbient temperature [C]\nAmbient temperature\n°C\n\n\nTotal heating [W]\nTotal cell heating\nW\n\n\n\n\nMetadata structure\n\n\n\n\"study\"/ \"simulation\": General information about the study or simulation\n\n\n\n\"batteryCyclesSimulated\": Number of equivalent full cycles = throughput_capacity / (2 * rated_capacity)\n\n\"testCyclesSimulated\": The number of times the test cycle was repeated\n\n\"timeDurationSimulated\": The cell age simulated in seconds\n\n\n\n\"experiment\": Parameters describing the conducted experiment\n\n\n\n\"testCycleType\": \"CC_CCCV\" (constant current discharge and constant current constant voltage charge) or \"DRIVE_CYCLE\" (performing drive cycle)\n\n\"isVariableTestCycle\": When true, the test cycle parameters changes with each cycle (see test cycle variation)\n\n\"startCycle\": Parameters of the start cycle, which is performed once at the beginning\n\n\"ccCccvCycle\": Parameters of the CC-CCCV test cycle\n\n\"driveCycle\": Parameters of the performed drive cycles when `\"testCycleType\"` == \"DRIVE_CYCLE\"\n\n\"chargeCycle\": Parameters of the charge cycle, which is performed when simulating drive cycles\n\n\n\n\"battery\": Battery data, such as rated capacity or the remaining capacity at the end of the simulation\n\n\"model\": Information about the used simulation model (e.g. parameters, options, etc.)\n\n\n\n\"parameterSet\": The parameter set used to parameterize the model\n\n\"parameter\": Parameters listed here, override the ones in the parameter set\n\n\n\n\"solver\": Information about the used solver\n\n\"mesh\": Parameter of the used mesh\n\n\nNote: Not all fields may be present!\n\nStudy Variation:\n\nThe study metadata can contain fields with the name `\"studyVariation\"`, which indicates that the value of the parent field was varied between simulations of that study.\n\nTest Cycle Variation:\n\nThe study and simulation metadata can contain fields with the name `\"testCycleVariation\"`, which contains the parameters that are varied between test cycles (only if \"isVariableTestCycle\" == true).\n\nFurther Explanation\n\nThroughput capacity is the cumulative amount of charge that has flowed into and out of the battery.\n\n$$Q_{\\text{throughput}} = \\int |I(t)| \\, dt$$\n\n \n\nThe throughput capacity is not provided in the data, but can be reconstructed from the battery cycles (equivalent full cycles - EFC) using the following formula:\n\n$$Q_{\\text{throughput}} = 2 \\cdot Q_{rated} \\cdot N_{\\text{EFC}}$$\n\n \n\nThe term test cycle refers to one iteration of the simulated stress profile. This can vary depending on the test cycle type:\n\n\n\nIn the case of \"testCycleType\" == \"DRIVE_CYCLE\", the battery is discharged by performing several consecutive driving cycles before being recharged. This whole process constitutes one test cycle. After that, the next test cycle begins.\n\nIn the case of \"testCycleType\" == \"CC_CCCV\" and \"isVariableTestCycle\" == false, one test cycle equals one discharge combined with the consecutive recharging.\n\nIf \"testCycleType\" == \"CC_CCCV\" and \"isVariableTestCycle\" == true, one test cycle equals one discharge or charge, as several charging operations or discharging operations may be carried out in succession.\n\n\nLicense\n\nAll datasets are copyright by Ostbayerische Technische Hochschule Amberg-Weiden and published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. This means that you must attribute the work in the manner specified by the authors, you may not use this work for commercial purposes and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same license. This dataset is made available for academic use only. However, we take your privacy seriously! If you find yourself or personal belongings in this dataset and feel unwell about it, please contact us at automotive@oth-aw.de and we will immediately remove the respective data from our server.\n\nAcknowledgement\n\nThe authors gratefully acknowledge the following European Union -- Chips Joint Undertaking project for financial support including funding by the German Federal Ministry of Research, Technology and Space (BMFTR): PowerizeD (Grant Agreement No. 101096387, funding code 16MEE0217).","descriptionType":"Abstract"}],"geoLocations":[],"fundingReferences":[{"awardTitle":"Digitalization of Power Electronic Applications within Key Technology Value Chains","funderName":"European Commission","awardNumber":"101096387","funderIdentifier":"10.13039/501100000780","funderIdentifierType":"Crossref Funder ID"}],"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTI4MS9aRU5PRE8uMTk4Nzk2ODA8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPlJlaWwsIENocmlzdGlhbjwvY3JlYXRvck5hbWU+CiAgICAgIDxnaXZlbk5hbWU+Q2hyaXN0aWFuPC9naXZlbk5hbWU+CiAgICAgIDxmYW1pbHlOYW1lPlJlaWw8L2ZhbWlseU5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiIHNjaGVtZVVSST0iIj4wMDAwLTAwMDEtNjY4Ni01NjJYPC9uYW1lSWRlbnRpZmllcj4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzAwZ20wYXc0MCIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiPk9zdGJheWVyaXNjaGUgVGVjaG5pc2NoZSBIb2Noc2NodWxlIEFtYmVyZy1XZWlkZW48L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPlNjaGFmYmVyZ2VyLCBUb2JpYXM8L2NyZWF0b3JOYW1lPgogICAgICA8Z2l2ZW5OYW1lPlRvYmlhczwvZ2l2ZW5OYW1lPgogICAgICA8ZmFtaWx5TmFtZT5TY2hhZmJlcmdlcjwvZmFtaWx5TmFtZT4KICAgICAgPG5hbWVJZGVudGlmaWVyIG5hbWVJZGVudGlmaWVyU2NoZW1lPSJPUkNJRCIgc2NoZW1lVVJJPSIiPjAwMDktMDAwMy03MDIyLTAzMjQ8L25hbWVJZGVudGlmaWVyPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDBnbTBhdzQwIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiI+T3N0YmF5ZXJpc2NoZSBUZWNobmlzY2hlIEhvY2hzY2h1bGUgQW1iZXJnLVdlaWRlbjwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+UHJpbnosIEFsZXhhbmRlcjwvY3JlYXRvck5hbWU+CiAgICAgIDxnaXZlbk5hbWU+QWxleGFuZGVyPC9naXZlbk5hbWU+CiAgICAgIDxmYW1pbHlOYW1lPlByaW56PC9mYW1pbHlOYW1lPgogICAgICA8bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9IiI+MDAwOS0wMDAxLTA1MzUtODY3MjwvbmFtZUlkZW50aWZpZXI+CiAgICAgIDxhZmZpbGlhdGlvbj5Pc3RiYXllcmlzY2hlIFRlY2huaXNjaGUgSG9jaHNjaHVsZSBBbWJlcmctV2VpZGVuPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5Ib2VzcywgQWxmcmVkPC9jcmVhdG9yTmFtZT4KICAgICAgPGdpdmVuTmFtZT5BbGZyZWQ8L2dpdmVuTmFtZT4KICAgICAgPGZhbWlseU5hbWU+SG9lc3M8L2ZhbWlseU5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiIHNjaGVtZVVSST0iIj4wMDAwLTAwMDItMTk2Mi0wMDk2PC9uYW1lSWRlbnRpZmllcj4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzAwZ20wYXc0MCIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiPk9zdGJheWVyaXNjaGUgVGVjaG5pc2NoZSBIb2Noc2NodWxlIEFtYmVyZy1XZWlkZW48L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogIDwvY3JlYXRvcnM+CiAgPHRpdGxlcz4KICAgIDx0aXRsZT5TeW50aGV0aWMgTGl0aGl1bS1Jb24gQmF0dGVyeSBEZWdyYWRhdGlvbiBEYXRhc2V0IGZvciBSZW1haW5pbmcgVXNlZnVsIExpZmUgRXN0aW1hdGlvbjwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5aZW5vZG88L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMjY8L3B1YmxpY2F0aW9uWWVhcj4KICA8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IkRhdGFzZXQiLz4KICA8c3ViamVjdHM+CiAgICA8c3ViamVjdD5Qb3dlcml6ZUQ8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5TeW50aGV0aWMgRGF0YTwvc3ViamVjdD4KICAgIDxzdWJqZWN0PkRlZ3JhZGF0aW9uPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+UHlCYU1NPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+U2ltdWxhdGlvbjwvc3ViamVjdD4KICAgIDxzdWJqZWN0PldMVEM8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5SVUwgRXN0aW1hdGlvbjwvc3ViamVjdD4KICAgIDxzdWJqZWN0PkJhdHRlcnk8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5MaXRoaXVtLUlvbjwvc3ViamVjdD4KICAgIDxzdWJqZWN0PlJlbWFpbmluZyBDYXBhY2l0eTwvc3ViamVjdD4KICAgIDxzdWJqZWN0PlN0YXRlIG9mIEhlYWx0aDwvc3ViamVjdD4KICA8L3N1YmplY3RzPgogIDxjb250cmlidXRvcnM+CiAgICA8Y29udHJpYnV0b3IgY29udHJpYnV0b3JUeXBlPSJDb250YWN0UGVyc29uIj4KICAgICAgPGNvbnRyaWJ1dG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPkxlcGtlLCBIZWlrZTwvY29udHJpYnV0b3JOYW1lPgogICAgICA8Z2l2ZW5OYW1lPkhlaWtlPC9naXZlbk5hbWU+CiAgICAgIDxmYW1pbHlOYW1lPkxlcGtlPC9mYW1pbHlOYW1lPgogICAgICA8bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9IiI+MDAwMC0wMDAxLTg4NDAtMDA4MTwvbmFtZUlkZW50aWZpZXI+CiAgICAgIDxhZmZpbGlhdGlvbiBhZmZpbGlhdGlvbklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wMGdtMGF3NDAiIGFmZmlsaWF0aW9uSWRlbnRpZmllclNjaGVtZT0iUk9SIj5Pc3RiYXllcmlzY2hlIFRlY2huaXNjaGUgSG9jaHNjaHVsZSBBbWJlcmctV2VpZGVuPC9hZmZpbGlhdGlvbj4KICAgIDwvY29udHJpYnV0b3I+CiAgPC9jb250cmlidXRvcnM+CiAgPGRhdGVzPgogICAgPGRhdGUgZGF0ZVR5cGU9Iklzc3VlZCI+MjAyNi0wNTwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJDcmVhdGVkIiBkYXRlSW5mb3JtYXRpb249IlBlcmlvZCBkdXJpbmcgd2hpY2ggdGhlIHNpbXVsYXRpb25zIHdlcmUgcGVyZm9ybWVkLiI+MjAyNC8yMDI1PC9kYXRlPgogIDwvZGF0ZXM+CiAgPGxhbmd1YWdlPmVuZzwvbGFuZ3VhZ2U+CiAgPGFsdGVybmF0ZUlkZW50aWZpZXJzPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9Im9haSI+b2FpOnplbm9kby5vcmc6MTk4Nzk2ODA8L2FsdGVybmF0ZUlkZW50aWZpZXI+CiAgPC9hbHRlcm5hdGVJZGVudGlmaWVycz4KICA8cmVsYXRlZElkZW50aWZpZXJzPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IklzVmVyc2lvbk9mIj4xMC41MjgxL3plbm9kby4xOTg3OTY3OTwvcmVsYXRlZElkZW50aWZpZXI+CiAgPC9yZWxhdGVkSWRlbnRpZmllcnM+CiAgPHNpemVzLz4KICA8Zm9ybWF0cy8+CiAgPHZlcnNpb24vPgogIDxyaWdodHNMaXN0PgogICAgPHJpZ2h0cyByaWdodHNVUkk9Imh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1uYy1zYS80LjAvbGVnYWxjb2RlIiByaWdodHNJZGVudGlmaWVyPSJjYy1ieS1uYy1zYS00LjAiIHJpZ2h0c0lkZW50aWZpZXJTY2hlbWU9InNwZHgiPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gTm9uIENvbW1lcmNpYWwgU2hhcmUgQWxpa2UgNC4wIEludGVybmF0aW9uYWw8L3JpZ2h0cz4KICA8L3JpZ2h0c0xpc3Q+CiAgPGRlc2NyaXB0aW9ucz4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij5Nb3RpdmF0aW9uCgpUaGUgIlN5bnRoZXRpYyBMaXRoaXVtLUlvbiBCYXR0ZXJ5IERlZ3JhZGF0aW9uIERhdGFzZXQgZm9yIFJlbWFpbmluZyBVc2VmdWwgTGlmZSBFc3RpbWF0aW9uIiB3YXMgY3JlYXRlZCB0byBzdXBwb3J0IHRoZSBkZXZlbG9wbWVudCBvZiBtYWNoaW5lIGxlYXJuaW5nIG1vZGVscyB0aGF0IGNhbiBwcmVkaWN0IHRoZSByZW1haW5pbmcgc2VydmljZSBsaWZlIG9mIGxpdGhpdW0taW9uIGJhc2VkIGJhdHRlcmllcy4gRHVlIHRvIHRoZSBsaW1pdGVkIGF2YWlsYWJpbGl0eSBvZiByZWFsLXdvcmxkIGFnZWluZyBkYXRhIGFuZCBmcmVlbHkgYWNjZXNzaWJsZSBtZWFzdXJlbWVudCBkYXRhIG9uIGJhdHRlcnkgYWdlaW5nLCBzeW50aGV0aWMgYWdlaW5nIGRhdGEgd2FzIGdlbmVyYXRlZCB1c2luZyBwaHlzaWNzLWJhc2VkIHNpbXVsYXRpb24uCgpEZXNjcmlwdGlvbgoKVGhpcyBkYXRhc2V0IGNvbnRhaW5zIGFnZWluZyBzaW11bGF0aW9ucyBvZiBsaXRoaXVtLWlvbiBiYXR0ZXJpZXMsIHdoaWNoIHdlcmUgY2FycmllZCBvdXQgdXNpbmcgdGhlIFB5QmFNTSBmcmFtZXdvcmsgKGh0dHBzOi8vcHliYW1tLm9yZykgLiBUaGUgc2ltdWxhdGlvbnMgY292ZXJlZCBjZWxsIGFnZWluZyBkdXJpbmcgc2ltcGxlIGNoYXJnZS1kaXNjaGFyZ2UgY3ljbGVzIGFzIHdlbGwgYXMgV0xUQyBkcml2aW5nIGN5Y2xlIHNpbXVsYXRpb25zLiBUaGUgYWdlaW5nIHNpbXVsYXRpb25zIGFyZSBiYXNlZCBvbiB0aGUgb2ZmaWNpYWwgUHlCYU1NIGV4YW1wbGUgIk1vZGVsbGluZyBjb3VwbGVkIGRlZ3JhZGF0aW9uIG1lY2hhbmlzbXMgaW4gUHlCYU1NIiAoaHR0cHM6Ly9kb2NzLnB5YmFtbS5vcmcvZW4vdjI1LjguMC9zb3VyY2UvZXhhbXBsZXMvbm90ZWJvb2tzL21vZGVscy9jb3VwbGVkLWRlZ3JhZGF0aW9uLmh0bWwpLiBUaGUgc2ltdWxhdGlvbnMgdXNlIHRoZSBidWlsdC1pbiBERk4gKERveWxlLUZ1bGxlci1OZXdtYW4pIG1vZGVsIGluIFB5QmFNTSB3aXRoIGRlZ3JhZGF0aW9uIG1lY2hhbmlzbXMgZW5hYmxlZC4gVGhlICJPS2FuZTIwMjIiIHBhcmFtZXRlciBzZXQgZm9yIHRoZSBMRyBNNTAgY2VsbCwgd2hpY2ggaXMgYnVpbHQgaW50byBQeUJhTU0sIHdhcyB1c2VkIGFzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgcGFyYW1ldGVyaXNpbmcgdGhlIHNpbXVsYXRpb24gbW9kZWwuIEhvd2V2ZXIsIHRvIHZhcnkgdGhlIGFnZWluZyBwcm9jZXNzLCBzb21lIG9mIHRoZSBhZ2VpbmcgcGFyYW1ldGVycyB3ZXJlIGFkanVzdGVkLCBhcyBjYW4gYmUgc2VlbiBpbiB0aGUgc2ltdWxhdGlvbiBtZXRhZGF0YS4KCkRhdGFzZXQgU3RydWN0dXJlCgpUaGUgZGF0YXNldCBjb21wcmlzZXMgbXVsdGlwbGUgc3R1ZGllcywgZWFjaCBvZiB3aGljaCBjb25zaXN0cyBvZiBzZXZlcmFsIHNpbXVsYXRpb25zIG9mIGluZGl2aWR1YWwgYmF0dGVyeSBjZWxscy4gVGhlIHNpbXVsYXRpb25zIHdpdGhpbiBhIGdpdmVuIHN0dWR5IHNoYXJlIGNlcnRhaW4gcGFyYW1ldGVycywgc3VjaCBhcyB0aGUgdHlwZSBvZiB0aGUgdGVzdCBjeWNsZS4gVGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHNpbXVsYXRpb25zIHdpdGhpbiBhIHN0dWR5IGxpZSBpbiB0aGUgZGV0YWlscy4gwqBUaGVyZWZvcmUsIHRoZSBtZXRhZGF0YSBmb3IgZWFjaCBpbmRpdmlkdWFsIHNpbXVsYXRpb24gbXVzdCBhbHdheXMgYmUgY29uc3VsdGVkLgoKCgpSRUFETUUubWQ6IFRoaXMgZGVzY3JpcHRpb24uCgpzdHVkeV9YLnppcDogWmlwIGZvbGRlciBjb250YWluaW5nIHNpbXVsYXRpb25zIG9mIG9uZSBzdHVkeS4KCgoKbWV0YWRhdGEuanNvbjogU3R1ZHkgbWV0YWRhdGEuCgpzaW11bGF0aW9uX1hYLmhkZjU6IEhERjUgZmlsZSBjb250YWluaW5nIGRhdGEgb2Ygb25lIGluZGl2aWR1YWwgc2ltdWxhdGlvbi4KCgoKQVRUUklCVVRFICJtZXRhZGF0YSI6IFNpbXVsYXRpb24gbWV0YWRhdGEgZm9ybWF0dGVkIChqc29uIHN0cmluZykKCkRBVEFTRVQgImN5Y2xlX2RhdGEiOiBEYXRhIG9uIGEgdGVzdCBjeWNsZSBieSB0ZXN0IGN5Y2xlIGJhc2lzIChlLmcuIFNvSCBwYXJhbWV0ZXJzKQoKCgpBVFRSSUJVVEUgImNvbHVtbnMiOiBDb2x1bW4gbmFtZXMgb2YgdGhlIGRhdGFzZXQgdGFibGUgKGpzb24gc3RyaW5nKQoKQVRUUklCVVRFICJ1bml0cyI6IFVuaXRzIG9mIHRoZSBjb2x1bW5zIChqc29uIHN0cmluZykKCgoKREFUQVNFVCAidGltZV9zZXJpZXNfZGF0YSI6IFRpbWUgc2VyaWVzIGRhdGEgYmFzZWQgb24gdGhlIHNpbXVsYXRpb24gdGltZSBzdGVwcyAoZS5nLiB2b2x0YWdlLCBjdXJyZW50LCBldGMuKQoKCgpBVFRSSUJVVEUgImNvbHVtbnMiOiBDb2x1bW4gbmFtZXMgb2YgdGhlIGRhdGFzZXQgdGFibGUgKGpzb24gc3RyaW5nKQoKQVRUUklCVVRFICJ1bml0cyI6IFVuaXRzIG9mIHRoZSBjb2x1bW5zIChqc29uIHN0cmluZykKCgoKCgoKCmltcG9ydF9zaW11bGF0aW9uLnB5OiBFeGFtcGxlIHB5dGhvbiBzY3JpcHQgaW1wb3J0aW5nIHRoZSBkYXRhIG9mIG9uZSBzaW11bGF0aW9uLgoKUmVxdWlyZW1lbnRzLnR4dDogTGlzdCBvZiByZXF1aXJlZCBweXRob24gcGFja2FnZXMgdG8gZXhlY3V0ZSBgaW1wb3J0X3NpbXVsYXRpb24ucHlgLgoKCkN5Y2xlIERhdGEKCgoKCkNvbHVtbgpEZXNjcmlwdGlvbgpVbml0CgoKVGVzdEN5Y2xlClRlc3QgY3ljbGUgbnVtYmVyCsKgCgoKVGltZSBbc10KU2ltdWxhdGlvbiB0aW1lIGluIHNlY29uZHMgKHNpbXVsYXRlZCBjZWxsIGFnZSkKcwoKCkJhdHRlcnlDeWNsZQpOdW1iZXIgb2YgZXF1aXZhbGVudCBmdWxsIGN5Y2xlcyAoRUZDKSAkTl97XHRleHR7RUZDfX0gPSBcZnJhY3tRX3tcdGV4dHt0aHJvdWdocHV0fX19ezIgXGNkb3QgUV97XHRleHR7cmF0ZWR9fX0kCsKgCgoKQ2FwYWNpdHkgW0EuaF0KUmVtYWluaW5nIG1heCBjYXBhY2l0eQpBaAoKCk1heGltdW0gdGhlb3JldGljYWwgZW5lcmd5IFtXLmhdClJlbWFpbmluZyBtYXggZW5lcmd5CldoCgoKCgpUaW1lIFNlcmllcyBEYXRhCgoKCgpDb2x1bW4KRGVzY3JpcHRpb24KVW5pdAoKClRpbWUgW3NdClNpbXVsYXRpb24gdGltZSBpbiBzZWNvbmRzIChzaW11bGF0ZWQgY2VsbCBhZ2UpCnMKCgpCYXR0ZXJ5Q3ljbGUKTnVtYmVyIG9mIGVxdWl2YWxlbnQgZnVsbCBjeWNsZXMgKEVGQykgJE5fe1x0ZXh0e0VGQ319ID0gXGZyYWN7UV97XHRleHR7dGhyb3VnaHB1dH19fXsyIFxjZG90IFFfe1x0ZXh0e3JhdGVkfX19JArCoAoKClZvbHRhZ2UgW1ZdCkJhdHRlcnkgdGVybWluYWwgdm9sdGFnZQpWCgoKQmF0dGVyeSBvcGVuLWNpcmN1aXQgdm9sdGFnZSBbVl0KQmF0dGVyeSBvcGVuLWNpcmN1aXQgdm9sdGFnZSAoT0NWKQpWCgoKQ3VycmVudCBbQV0KQmF0dGVyeSBjdXJyZW50IChwb3NpdGl2ZSA9PSBkaXNjaGFyZ2U7IG5lZ2F0aXZlID09IGNoYXJnZSkKVgoKClZvbHVtZS1hdmVyYWdlZCBjZWxsIHRlbXBlcmF0dXJlIFtDXQpDZWxsIHRlbXBlcmF0dXJlIChhdmVyYWdlZCkKwrBDCgoKQW1iaWVudCB0ZW1wZXJhdHVyZSBbQ10KQW1iaWVudCB0ZW1wZXJhdHVyZQrCsEMKCgpUb3RhbCBoZWF0aW5nIFtXXQpUb3RhbCBjZWxsIGhlYXRpbmcKVwoKCgoKTWV0YWRhdGEgc3RydWN0dXJlCgoKCiJzdHVkeSIvICJzaW11bGF0aW9uIjogR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3R1ZHkgb3Igc2ltdWxhdGlvbgoKCgoiYmF0dGVyeUN5Y2xlc1NpbXVsYXRlZCI6IE51bWJlciBvZiBlcXVpdmFsZW50IGZ1bGwgY3ljbGVzID0gdGhyb3VnaHB1dF9jYXBhY2l0eSAvICgyICogcmF0ZWRfY2FwYWNpdHkpCgoidGVzdEN5Y2xlc1NpbXVsYXRlZCI6IFRoZSBudW1iZXIgb2YgdGltZXMgdGhlIHRlc3QgY3ljbGUgd2FzIHJlcGVhdGVkCgoidGltZUR1cmF0aW9uU2ltdWxhdGVkIjogVGhlIGNlbGwgYWdlIHNpbXVsYXRlZCBpbiBzZWNvbmRzCgoKCiJleHBlcmltZW50IjogUGFyYW1ldGVycyBkZXNjcmliaW5nIHRoZSBjb25kdWN0ZWQgZXhwZXJpbWVudAoKCgoidGVzdEN5Y2xlVHlwZSI6ICJDQ19DQ0NWIiAoY29uc3RhbnQgY3VycmVudCBkaXNjaGFyZ2UgYW5kIGNvbnN0YW50IGN1cnJlbnQgY29uc3RhbnQgdm9sdGFnZSBjaGFyZ2UpIG9yICJEUklWRV9DWUNMRSIgKHBlcmZvcm1pbmcgZHJpdmUgY3ljbGUpCgoiaXNWYXJpYWJsZVRlc3RDeWNsZSI6IFdoZW4gdHJ1ZSwgdGhlIHRlc3QgY3ljbGUgcGFyYW1ldGVycyBjaGFuZ2VzIHdpdGggZWFjaCBjeWNsZSAoc2VlIHRlc3QgY3ljbGUgdmFyaWF0aW9uKQoKInN0YXJ0Q3ljbGUiOiBQYXJhbWV0ZXJzIG9mIHRoZSBzdGFydCBjeWNsZSwgd2hpY2ggaXMgcGVyZm9ybWVkIG9uY2UgYXQgdGhlIGJlZ2lubmluZwoKImNjQ2NjdkN5Y2xlIjogUGFyYW1ldGVycyBvZiB0aGUgQ0MtQ0NDViB0ZXN0IGN5Y2xlCgoiZHJpdmVDeWNsZSI6IFBhcmFtZXRlcnMgb2YgdGhlIHBlcmZvcm1lZCBkcml2ZSBjeWNsZXMgd2hlbiBgInRlc3RDeWNsZVR5cGUiYCA9PSAiRFJJVkVfQ1lDTEUiCgoiY2hhcmdlQ3ljbGUiOiBQYXJhbWV0ZXJzIG9mIHRoZSBjaGFyZ2UgY3ljbGUsIHdoaWNoIGlzIHBlcmZvcm1lZCB3aGVuIHNpbXVsYXRpbmcgZHJpdmUgY3ljbGVzCgoKCiJiYXR0ZXJ5IjogQmF0dGVyeSBkYXRhLCBzdWNoIGFzIHJhdGVkIGNhcGFjaXR5IG9yIHRoZSByZW1haW5pbmcgY2FwYWNpdHkgYXQgdGhlIGVuZCBvZiB0aGUgc2ltdWxhdGlvbgoKIm1vZGVsIjogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzZWQgc2ltdWxhdGlvbiBtb2RlbCAoZS5nLiBwYXJhbWV0ZXJzLCBvcHRpb25zLCBldGMuKQoKCgoicGFyYW1ldGVyU2V0IjogVGhlIHBhcmFtZXRlciBzZXQgdXNlZCB0byBwYXJhbWV0ZXJpemUgdGhlIG1vZGVsCgoicGFyYW1ldGVyIjogUGFyYW1ldGVycyBsaXN0ZWQgaGVyZSwgb3ZlcnJpZGUgdGhlIG9uZXMgaW4gdGhlIHBhcmFtZXRlciBzZXQKCgoKInNvbHZlciI6IEluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VkIHNvbHZlcgoKIm1lc2giOiBQYXJhbWV0ZXIgb2YgdGhlIHVzZWQgbWVzaAoKCk5vdGU6IE5vdCBhbGwgZmllbGRzIG1heSBiZSBwcmVzZW50IQoKU3R1ZHkgVmFyaWF0aW9uOgoKVGhlIHN0dWR5IG1ldGFkYXRhIGNhbiBjb250YWluIGZpZWxkcyB3aXRoIHRoZSBuYW1lIGAic3R1ZHlWYXJpYXRpb24iYCwgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIHZhbHVlIG9mIHRoZSBwYXJlbnQgZmllbGQgd2FzIHZhcmllZCBiZXR3ZWVuIHNpbXVsYXRpb25zIG9mIHRoYXQgc3R1ZHkuCgpUZXN0IEN5Y2xlIFZhcmlhdGlvbjoKClRoZSBzdHVkeSBhbmQgc2ltdWxhdGlvbiBtZXRhZGF0YSBjYW4gY29udGFpbiBmaWVsZHMgd2l0aCB0aGUgbmFtZSBgInRlc3RDeWNsZVZhcmlhdGlvbiJgLCB3aGljaCBjb250YWlucyB0aGUgcGFyYW1ldGVycyB0aGF0IGFyZSB2YXJpZWQgYmV0d2VlbiB0ZXN0IGN5Y2xlcyAob25seSBpZiAiaXNWYXJpYWJsZVRlc3RDeWNsZSIgPT0gdHJ1ZSkuCgpGdXJ0aGVyIEV4cGxhbmF0aW9uCgpUaHJvdWdocHV0IGNhcGFjaXR5IGlzIHRoZSBjdW11bGF0aXZlIGFtb3VudCBvZiBjaGFyZ2UgdGhhdCBoYXMgZmxvd2VkIGludG8gYW5kIG91dCBvZiB0aGUgYmF0dGVyeS4KCiQkUV97XHRleHR7dGhyb3VnaHB1dH19ID0gXGludCB8SSh0KXwgXCwgZHQkJAoKwqAKClRoZSB0aHJvdWdocHV0IGNhcGFjaXR5IGlzIG5vdCBwcm92aWRlZCBpbiB0aGUgZGF0YSwgYnV0IGNhbiBiZSByZWNvbnN0cnVjdGVkIGZyb20gdGhlIGJhdHRlcnkgY3ljbGVzIChlcXVpdmFsZW50IGZ1bGwgY3ljbGVzIC0gRUZDKSB1c2luZyB0aGUgZm9sbG93aW5nIGZvcm11bGE6CgokJFFfe1x0ZXh0e3Rocm91Z2hwdXR9fSA9IDIgXGNkb3QgUV97cmF0ZWR9IFxjZG90IE5fe1x0ZXh0e0VGQ319JCQKCsKgCgpUaGUgdGVybcKgdGVzdCBjeWNsZSByZWZlcnMgdG8gb25lIGl0ZXJhdGlvbiBvZiB0aGUgc2ltdWxhdGVkIHN0cmVzcyBwcm9maWxlLiBUaGlzIGNhbiB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgdGVzdCBjeWNsZSB0eXBlOgoKCgpJbiB0aGUgY2FzZSBvZiAidGVzdEN5Y2xlVHlwZSIgPT0gIkRSSVZFX0NZQ0xFIiwgdGhlIGJhdHRlcnkgaXMgZGlzY2hhcmdlZCBieSBwZXJmb3JtaW5nIHNldmVyYWwgY29uc2VjdXRpdmUgZHJpdmluZyBjeWNsZXMgYmVmb3JlIGJlaW5nIHJlY2hhcmdlZC4gVGhpcyB3aG9sZSBwcm9jZXNzIGNvbnN0aXR1dGVzIG9uZSB0ZXN0IGN5Y2xlLiBBZnRlciB0aGF0LCB0aGUgbmV4dCB0ZXN0IGN5Y2xlIGJlZ2lucy4KCkluIHRoZSBjYXNlIG9mICJ0ZXN0Q3ljbGVUeXBlIiA9PSAiQ0NfQ0NDViIgYW5kICJpc1ZhcmlhYmxlVGVzdEN5Y2xlIiA9PSBmYWxzZSwgb25lIHRlc3QgY3ljbGUgZXF1YWxzIG9uZSBkaXNjaGFyZ2UgY29tYmluZWQgd2l0aCB0aGUgY29uc2VjdXRpdmUgcmVjaGFyZ2luZy4KCklmICJ0ZXN0Q3ljbGVUeXBlIiA9PSAiQ0NfQ0NDViIgYW5kICJpc1ZhcmlhYmxlVGVzdEN5Y2xlIiA9PSB0cnVlLCBvbmUgdGVzdCBjeWNsZSBlcXVhbHMgb25lIGRpc2NoYXJnZSBvciBjaGFyZ2UsIGFzIHNldmVyYWwgY2hhcmdpbmcgb3BlcmF0aW9ucyBvciBkaXNjaGFyZ2luZyBvcGVyYXRpb25zIG1heSBiZSBjYXJyaWVkIG91dCBpbiBzdWNjZXNzaW9uLgoKCkxpY2Vuc2UKCkFsbCBkYXRhc2V0cyBhcmUgY29weXJpZ2h0IGJ5IE9zdGJheWVyaXNjaGUgVGVjaG5pc2NoZSBIb2Noc2NodWxlIEFtYmVyZy1XZWlkZW4gYW5kIHB1Ymxpc2hlZCB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1Ob25Db21tZXJjaWFsLVNoYXJlQWxpa2UgNC4wIEludGVybmF0aW9uYWwuIFRoaXMgbWVhbnMgdGhhdCB5b3UgbXVzdCBhdHRyaWJ1dGUgdGhlIHdvcmsgaW4gdGhlIG1hbm5lciBzcGVjaWZpZWQgYnkgdGhlIGF1dGhvcnMsIHlvdSBtYXkgbm90IHVzZSB0aGlzIHdvcmsgZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMgYW5kIGlmIHlvdSBhbHRlciwgdHJhbnNmb3JtLCBvciBidWlsZCB1cG9uIHRoaXMgd29yaywgeW91IG1heSBkaXN0cmlidXRlIHRoZSByZXN1bHRpbmcgd29yayBvbmx5IHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UuIFRoaXMgZGF0YXNldCBpcyBtYWRlIGF2YWlsYWJsZSBmb3IgYWNhZGVtaWMgdXNlIG9ubHkuIEhvd2V2ZXIsIHdlIHRha2UgeW91ciBwcml2YWN5IHNlcmlvdXNseSEgSWYgeW91IGZpbmQgeW91cnNlbGYgb3IgcGVyc29uYWwgYmVsb25naW5ncyBpbiB0aGlzIGRhdGFzZXQgYW5kIGZlZWwgdW53ZWxsIGFib3V0IGl0LCBwbGVhc2UgY29udGFjdCB1cyBhdCBhdXRvbW90aXZlQG90aC1hdy5kZSBhbmQgd2Ugd2lsbCBpbW1lZGlhdGVseSByZW1vdmUgdGhlIHJlc3BlY3RpdmUgZGF0YSBmcm9tIG91ciBzZXJ2ZXIuCgpBY2tub3dsZWRnZW1lbnQKClRoZSBhdXRob3JzIGdyYXRlZnVsbHkgYWNrbm93bGVkZ2UgdGhlIGZvbGxvd2luZyBFdXJvcGVhbiBVbmlvbiAtLSBDaGlwcyBKb2ludCBVbmRlcnRha2luZyBwcm9qZWN0IGZvciBmaW5hbmNpYWwgc3VwcG9ydCBpbmNsdWRpbmcgZnVuZGluZyBieSB0aGUgR2VybWFuIEZlZGVyYWwgTWluaXN0cnkgb2YgUmVzZWFyY2gsIFRlY2hub2xvZ3kgYW5kIFNwYWNlIChCTUZUUik6IFBvd2VyaXplRCAoR3JhbnQgQWdyZWVtZW50IE5vLiAxMDEwOTYzODcsIGZ1bmRpbmcgY29kZSAxNk1FRTAyMTcpLjwvZGVzY3JpcHRpb24+CiAgPC9kZXNjcmlwdGlvbnM+CiAgPGZ1bmRpbmdSZWZlcmVuY2VzPgogICAgPGZ1bmRpbmdSZWZlcmVuY2U+CiAgICAgIDxmdW5kZXJOYW1lPkV1cm9wZWFuIENvbW1pc3Npb248L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJDcm9zc3JlZiBGdW5kZXIgSUQiPjEwLjEzMDM5LzUwMTEwMDAwMDc4MDwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkTnVtYmVyPjEwMTA5NjM4NzwvYXdhcmROdW1iZXI+CiAgICAgIDxhd2FyZFRpdGxlPkRpZ2l0YWxpemF0aW9uIG9mIFBvd2VyIEVsZWN0cm9uaWMgQXBwbGljYXRpb25zIHdpdGhpbiBLZXkgVGVjaG5vbG9neSBWYWx1ZSBDaGFpbnM8L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgPC9mdW5kaW5nUmVmZXJlbmNlcz4KPC9yZXNvdXJjZT4K","url":"https://zenodo.org/doi/10.5281/zenodo.19879680","contentUrl":null,"metadataVersion":0,"schemaVersion":"http://datacite.org/schema/kernel-4","source":"api","isActive":true,"state":"findable","reason":null,"viewCount":0,"viewsOverTime":[],"downloadCount":0,"downloadsOverTime":[],"referenceCount":0,"citationCount":0,"citationsOverTime":[],"partCount":0,"partOfCount":0,"versionCount":0,"versionOfCount":1,"created":"2026-05-19T15:29:26.000Z","registered":"2026-05-19T15:29:26.000Z","published":"2026","updated":"2026-08-17T18:02:22.000Z"},"relationships":{"client":{"data":{"id":"cern.zenodo","type":"clients"}},"provider":{"data":{"id":"cern","type":"providers"}},"media":{"data":{"id":"10.5281/zenodo.19879680","type":"media"}},"references":{"data":[]},"citations":{"data":[]},"parts":{"data":[]},"partOf":{"data":[]},"versions":{"data":[]},"versionOf":{"data":[{"id":"10.5281/zenodo.19879679","type":"dois"}]}}}}