arelle-release 2.37.48__tar.gz → 2.37.49__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arelle-release might be problematic. Click here for more details.
- {arelle_release-2.37.48 → arelle_release-2.37.49}/PKG-INFO +3 -1
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/_version.py +2 -2
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/Constants.py +6 -0
- arelle_release-2.37.49/arelle/plugin/validate/EDINET/PluginValidationDataExtension.py +247 -0
- arelle_release-2.37.49/arelle/plugin/validate/EDINET/Statement.py +139 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/contexts.py +5 -10
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/edinet.py +89 -51
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/gfm.py +41 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle_release.egg-info/PKG-INFO +3 -1
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle_release.egg-info/SOURCES.txt +1 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle_release.egg-info/requires.txt +2 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/pyproject.toml +2 -0
- arelle_release-2.37.48/arelle/plugin/validate/EDINET/PluginValidationDataExtension.py +0 -120
- {arelle_release-2.37.48 → arelle_release-2.37.49}/.gitignore +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/CONTRIBUTING.md +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/COPYRIGHT.md +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/LICENSE.md +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/MANIFEST.in +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/README.md +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/Aspect.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/BetaFeatures.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/Cntlr.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/CntlrCmdLine.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/CntlrComServer.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/CntlrProfiler.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/CntlrQuickBooks.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/CntlrWebMain.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/CntlrWinMain.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/CntlrWinTooltip.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogAbout.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogArcroleGroup.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogFind.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogFormulaParameters.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogLanguage.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogNewFactItem.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogOpenArchive.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogPackageManager.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogPluginManager.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogRssWatch.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogURL.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DialogUserPassword.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/DisclosureSystem.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ErrorManager.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/FileSource.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/FunctionCustom.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/FunctionFn.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/FunctionIxt.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/FunctionUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/FunctionXfi.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/FunctionXs.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/HashUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/HtmlUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/InstanceAspectsEvaluator.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/LeiUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/LinkbaseType.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/LocalViewer.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/Locale.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelDocument.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelDtsObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelFormulaObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelInstanceObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelManager.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelObjectFactory.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelRelationshipSet.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelRenderingObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelRssItem.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelRssObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelTestcaseObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelValue.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelVersObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelVersReport.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ModelXbrl.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/PackageManager.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/PluginManager.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/PluginUtils.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/PrototypeDtsObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/PrototypeInstanceObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/PythonUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/RuntimeOptions.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/SocketUtils.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/SystemInfo.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/TableStructure.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/TkTableWrapper.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/UITkTable.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/UiUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/Updater.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/UrlUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/Validate.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateDuplicateFacts.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateFilingText.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateInfoset.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateUtr.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateVersReport.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateXbrl.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateXbrlCalcs.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateXbrlDTS.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ValidateXbrlDimensions.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/Version.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFile.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileConcepts.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileDTS.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileFactList.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileFactTable.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileFormulae.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileRelationshipSet.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileRenderedGrid.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileRenderedLayout.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileRenderedStructure.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileRoleTypes.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileRssFeed.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewFileTests.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewUtilFormulae.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinConcepts.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinDTS.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinDiffs.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinFactGrid.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinFactList.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinFactTable.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinFormulae.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinGrid.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinList.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinPane.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinProperties.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinRelationshipSet.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinRenderedGrid.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinRoleTypes.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinRssFeed.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinTests.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinTkTable.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinTree.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinTupleGrid.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinVersReport.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/ViewWinXml.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/WatchRss.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/WebCache.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/XbrlConst.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/XbrlUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/XhtmlValidate.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/XmlUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/XmlValidate.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/XmlValidateConst.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/XmlValidateParticles.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/XmlValidateSchema.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/api/Session.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/creationSoftwareNames.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/disclosuresystems.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/disclosuresystems.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/edbody.dtd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/empty-instance.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/erxl.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/mappings.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/mappings.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/sbr-text-formatting.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/xbrlschemafiles.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/xhtml-lat1.ent +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/xhtml-special.ent +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/xhtml-symbol.ent +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/xhtml1-strict-ix.dtd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/config/xhtml1_1-strict-ix.dtd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/conformance/CSVTestcaseLoader.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/doc/messagesCatalog.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/doc/messagesCatalog.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/formula/FactAspectsCache.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/formula/FormulaConsisAsser.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/formula/FormulaEvaluator.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/formula/ValidateFormula.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/formula/XPathContext.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/formula/XPathParser.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/formula/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle-full-word.ico +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle-mac-icon-4.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle-rtd.png +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle-word-only.ico +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle.icns +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle.icns.zip +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle.ico +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle.xbm +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle128.psd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle16.psd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle16x16and32x32.ico +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/arelle32.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/columnSortDown.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/columnSortUp.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/dmg_background.png +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/favicon.ico +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/octocat.png +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/python-clear.png +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/python-icon-pack-crystalxp.net-842.zip +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarClose.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarCompare.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarDelete.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarFindMenu.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarLogClear - 1-piece-top.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarLogClear-orig.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarLogClear.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarNewFile.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarOpenDatabase.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarOpenFile.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarOpenWeb.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarProperties.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarQuit.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarReopen.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarSaveFile.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/toolbarValidate.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/xbrl.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/xbrl.psd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/xbrl128-2.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/xbrl128.gif +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/xbrl16.ico +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/images/xbrl32.ico +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/ar_EG/LC_MESSAGES/ar_EG.po +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/ar_EG/LC_MESSAGES/arelle.mo +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/es/LC_MESSAGES/arelle.mo +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/fr/LC_MESSAGES/arelle.mo +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/fr/LC_MESSAGES/fr.po +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/messages.mo +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/messages.pot +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/ru/LC_MESSAGES/arelle.mo +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/locale/ru/LC_MESSAGES/ru.po +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/logging/formatters/LogFormatter.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/logging/handlers/LogHandlerWithXml.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/logging/handlers/LogToBufferHandler.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/logging/handlers/LogToPrintHandler.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/logging/handlers/LogToXmlHandler.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/logging/handlers/StructuredMessageLogHandler.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/model/CommentBase.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/model/ElementBase.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/model/PIBase.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/model/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/oim/Load.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/oim/Validate.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/oim/xml/Save.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/packages/PackageConst.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/packages/PackageType.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/packages/PackageUtils.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/packages/PackageValidation.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/packages/report/DetectReportPackage.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/packages/report/ReportPackage.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/packages/report/ReportPackageConst.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/packages/report/ReportPackageValidator.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/CacheBuilder.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/EdgarRendererAllReports.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/ModelValueMore.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/ValidateDTS.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/ViewXbrlTxmyObj.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlAbstract.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlConcept.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlConst.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlCube.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlDimension.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlDts.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlEntity.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlGroup.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlImportedTaxonomy.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlLabel.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlNetwork.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlProperty.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlReference.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlReport.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlTableTemplate.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlTaxonomy.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlTaxonomyObject.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlTransform.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlTypes.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/XbrlUnit.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/resources/iso4217.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/resources/oim-taxonomy-schema.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/resources/ref.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/resources/transform-types.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/resources/types.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/resources/utr.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/OimTaxonomy/resources/xbrlSpec.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/SECCorrespondenceLoader.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/TDnetLoader.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/UKCompaniesHouseLoader.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/formulaLoader.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/formulaSaver.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/formulaXPathChecker.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/functionsMath.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/inlineXbrlDocumentSet.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/internet/proxyNTLM/HTTPNtlmAuthHandler.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/internet/proxyNTLM/U32.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/internet/proxyNTLM/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/internet/proxyNTLM/des.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/internet/proxyNTLM/des_c.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/internet/proxyNTLM/des_data.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/internet/proxyNTLM/lgpl-3.0-standalone.html +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/internet/proxyNTLM/ntlm.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/loadFromExcel.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/loadFromOIM.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/logging/dpmSignature.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/logging/dqcParameters.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/logging/saveMessages.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/profileCmdLine.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/profileFormula.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/saveCHComponentFile.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/saveDTS.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/saveHtmlEBAtables.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/saveLoadableExcel.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/saveLoadableOIM.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/saveOIMTaxonomy.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/saveSKOS.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/saveSampleInstance.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/security/cryptAES_CBC.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/security/cryptAES_EAX.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/streamingExtensions.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/systemInfo.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/transforms/tester.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/unpackSecEisFile.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/CIPC/Const.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/CIPC/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/CIPC/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/DisclosureSystems.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/PluginValidationDataExtension.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/ValidationPluginExtension.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/resources/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/rules/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/rules/fr.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/rules/tc.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/rules/th.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/rules/tm.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/DBA/rules/tr.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EBA/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EBA/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/ControllerPluginData.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/DisclosureSystems.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/InstanceType.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/ManifestInstance.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/UploadContents.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/ValidationPluginExtension.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/resources/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/resources/edinet-taxonomies.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/frta.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/manifests.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/upload.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/Const.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/Dimensions.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/ESEF_2021/DTS.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/ESEF_2021/Image.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/ESEF_2021/ValidateXbrlFinally.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/ESEF_2021/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/ESEF_Current/DTS.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/ESEF_Current/ValidateXbrlFinally.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/ESEF_Current/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/Util.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/resources/authority-validations.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ESEF/resources/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/FERC/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/FERC/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/FERC/resources/ferc-utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/DisclosureSystems.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/PluginValidationDataExtension.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/ValidationPluginExtension.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/resources/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/rules/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/rules/br_kvk.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/rules/fg_nl.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/rules/fr_kvk.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/rules/fr_nl.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/NL/rules/nl_kvk.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ROS/DisclosureSystems.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ROS/PluginValidationDataExtension.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ROS/ValidationPluginExtension.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ROS/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ROS/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ROS/resources/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ROS/rules/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/ROS/rules/ros.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/UK/ValidateUK.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/UK/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/UK/config.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/UK/consistencyChecksByName.json +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/UK/hmrc-taxonomies.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/DialogRssWatchExtender.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/SqlDb.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/XbrlDpmSqlDB.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/XbrlOpenSqlDB.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/XbrlPublicPostgresDB.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/XbrlSemanticGraphDB.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/XbrlSemanticJsonDB.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/XbrlSemanticRdfDB.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/XbrlSemanticSqlDB.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/entityInformation.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/ext/china.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/ext/edgar.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/ext/xdc.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/primaryDocumentFacts.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/open/ext/chinaPostgresDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/open/ext/edgarPostgresDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/open/ext/xdcPostgresDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/open/xbrlOpenPostgresDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/open2/xbrlOpen2PostgresDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/public/xbrlPublicPostgresDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/semantic/secDatabaseModelViews.sql +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/semantic/xbrlSemanticColumnComments.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/semantic/xbrlSemanticMSSqlDB.sql +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/semantic/xbrlSemanticMySqlDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/semantic/xbrlSemanticOracleDB.sql +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/semantic/xbrlSemanticPostgresDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/sql/semantic/xbrlSemanticSQLiteDB.ddl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xbrlDB/tableFacts.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/xuleSaver.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/rendering/RenderingEvaluator.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/rendering/RenderingLayout.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/rendering/RenderingResolution.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.eurofiling.info/eu/fr/xbrl/ext/filing-indicators.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.w3.org/2001/03/xml.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.w3.org/2001/XMLSchema.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.w3.org/2001/xml.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2003/xl-2003-12-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2003/xlink-2003-12-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2004/ref-2004-08-10.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2005/xbrldt-2005.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2006/ref-2006-02-27.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2006/xbrldi-2006.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/boolean-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/concept-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/conformance.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/conformanceFunction.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/consistency-assertion.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/dimension-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/entity-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/existence-assertion.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/formula.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/function.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/general-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/generic-label.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/generic-link.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/generic-reference.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xbrl/xbrl-instance-2003-12-31-ixmod.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xbrl/xbrl-linkbase-2003-12-31-ixmod.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xbrl/xl-2003-12-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xbrl/xlink-2003-12-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xframes-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-applet-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-attribs-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-base-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic-form-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic-table-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic10-model-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic10-module-redefines-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic10-modules-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic10.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-bdo-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-blkphras-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-blkpres-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-blkstruct-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-charent-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-copyright-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-csismap-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-datatypes-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-edit-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-events-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-form-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-frames-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-framework-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-hypertext-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-iframe-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-image-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-inlphras-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-inlpres-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-inlstruct-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-inlstyle-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-legacy-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-link-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-list-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-meta-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-misc-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-nameident-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-notations-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-object-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-param-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-pres-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-ruby-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-ruby-basic-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-script-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-ssismap-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-struct-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-style-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-table-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-target-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-text-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml11-model-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml11-module-redefines-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml11-modules-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml11.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-attribs-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-attribs-2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-copyright-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-copyright-2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-handlers-2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml-inlinexbrl-1_0-definitions.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml-inlinexbrl-1_0-model.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml-inlinexbrl-1_0-modules.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml-inlinexbrl-1_0.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/match-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/period-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/registry.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/relative-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/segment-scenario-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/tuple-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/unit-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/validation.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/value-assertion.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/value-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2008/variable.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2010/aspect-cover-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2010/concept-relation-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2010/custom-function-implementation.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2010/generic-message.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2010/validation-message.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xbrl/xbrl-instance-2003-12-31-ixmod.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xbrl/xbrl-linkbase-2003-12-31-ixmod.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xbrl/xl-2003-12-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xbrl/xlink-2003-12-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xframes-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-applet-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-attribs-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-base-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic-form-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic-table-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic10-model-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic10-module-redefines-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic10-modules-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic10.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-bdo-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-blkphras-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-blkpres-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-blkstruct-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-charent-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-copyright-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-csismap-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-datatypes-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-edit-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-events-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-form-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-frames-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-framework-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-hypertext-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-iframe-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-image-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-inlphras-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-inlpres-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-inlstruct-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-inlstyle-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-legacy-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-link-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-list-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-meta-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-misc-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-nameident-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-notations-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-object-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-param-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-pres-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-ruby-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-ruby-basic-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-script-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-ssismap-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-struct-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-style-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-table-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-target-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-text-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml11-model-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml11-module-redefines-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml11-modules-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml11.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-attribs-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-attribs-2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-copyright-1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-copyright-2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-handlers-2.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml-inlinexbrl-1_1-definitions.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml-inlinexbrl-1_1-model.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml-inlinexbrl-1_1-modules.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml-inlinexbrl-1_1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/match-filter.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/preferred-label.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/versioning-base.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/versioning-concept-details.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/versioning-concept-use.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2013/versioning-dimensions.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2014/extensible-enumerations.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2014/table.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2014/tablemodel.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2016/assertion-severity.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2016/severities.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2016/taxonomy-package-catalog.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2016/taxonomy-package.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2022/assertion-severity.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/2022/severities.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/dtr/type/numeric-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/accounting-arcrole-2023-01-04.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/deprecated-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/jpfr-arcrole-2007-11-07.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/parent-child-2013-09-19.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/deprecated-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/jpfr-role-2007-11-07.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/negated-2008-03-31.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/negated-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/negative-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/net-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/positive-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/property-2022-09-28.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/reference-2009-12-16.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/lrr/role/restated-2006-02-21.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2012-01-30/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2012-10-31/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2012-11-30/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2013-02-28/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2013-05-17/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2016-08-10/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2017-07-12/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2021-02-16/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2021-12-08/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2022-02-16/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2022-07-20/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2023-12-20/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2024-01-31/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/2024-10-22/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/http/www.xbrl.org/utr/utr.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/2005/conformance.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/2020/extensible-enumerations-2.0.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/2023/calculation-1.1.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/dtr/type/2020-01-21/types.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/dtr/type/2022-03-31/types.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/dtr/type/2024-01-31/types.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/taxonomy/int/filing-indicators/REC/2021-02-03/filing-indicators-def.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/taxonomy/int/filing-indicators/REC/2021-02-03/filing-indicators-label.xml +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/cache/https/www.xbrl.org/taxonomy/int/filing-indicators/REC/2021-02-03/filing-indicators.xsd +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/linux-x86_64/README.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/linux-x86_64/html/tkTable.html +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/linux-x86_64/libTktable2.11.so +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/linux-x86_64/license.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/linux-x86_64/pkgIndex.tcl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/linux-x86_64/tkTable.tcl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/linux-x86_64/tktable.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-arm64/README.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-arm64/html/tkTable.html +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-arm64/libTktable2.11.dylib +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-arm64/license.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-arm64/pkgIndex.tcl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-arm64/tkTable.tcl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-arm64/tktable.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-x86_64/README.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-x86_64/html/tkTable.html +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-x86_64/libTktable2.11.dylib +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-x86_64/license.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-x86_64/pkgIndex.tcl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-x86_64/tkTable.tcl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/macos-x86_64/tktable.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/win-x86_64/Tktable.dll +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/win-x86_64/pkgIndex.tcl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/resources/libs/Tktable2.11/win-x86_64/tkTable.tcl +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/typing.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/Contexts.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/EntryPointDetection.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/Equivalence.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/PluginData.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/PluginHooks.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/Units.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/validate/Decorator.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/validate/DetectScriptsInXhtml.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/validate/ESEFImage.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/validate/Validation.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/validate/ValidationPlugin.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/validate/ValidationUtil.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/utils/validate/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/webserver/__init__.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/webserver/bottle.py +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle_release.egg-info/dependency_links.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle_release.egg-info/entry_points.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/arelle_release.egg-info/top_level.txt +0 -0
- {arelle_release-2.37.48 → arelle_release-2.37.49}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arelle-release
|
|
3
|
-
Version: 2.37.
|
|
3
|
+
Version: 2.37.49
|
|
4
4
|
Summary: An open source XBRL platform.
|
|
5
5
|
Author-email: "arelle.org" <support@arelle.org>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -50,7 +50,9 @@ Requires-Dist: PyMySQL==1.*; extra == "db"
|
|
|
50
50
|
Requires-Dist: pyodbc<6,>=4; extra == "db"
|
|
51
51
|
Requires-Dist: rdflib<8,>=5; extra == "db"
|
|
52
52
|
Provides-Extra: efm
|
|
53
|
+
Requires-Dist: aniso8601==10.*; extra == "efm"
|
|
53
54
|
Requires-Dist: holidays==0.*; extra == "efm"
|
|
55
|
+
Requires-Dist: Matplotlib==3.*; extra == "efm"
|
|
54
56
|
Requires-Dist: pytz; extra == "efm"
|
|
55
57
|
Provides-Extra: esef
|
|
56
58
|
Requires-Dist: tinycss2==1.*; extra == "esef"
|
{arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/Constants.py
RENAMED
|
@@ -5,6 +5,11 @@ from enum import Enum
|
|
|
5
5
|
|
|
6
6
|
from arelle.ModelValue import qname
|
|
7
7
|
|
|
8
|
+
class AccountingStandard(Enum):
|
|
9
|
+
IFRS = 'IFRS'
|
|
10
|
+
JAPAN_GAAP = 'Japan GAAP'
|
|
11
|
+
US_GAAP = 'US GAAP'
|
|
12
|
+
|
|
8
13
|
class FormType(Enum):
|
|
9
14
|
FORM_2_4 = '第二号の四様式'
|
|
10
15
|
FORM_2_7 = '第二号の七様式'
|
|
@@ -22,3 +27,4 @@ qnEdinetManifestIxbrl = qname("{http://disclosure.edinet-fsa.go.jp/2013/manifest
|
|
|
22
27
|
qnEdinetManifestList = qname("{http://disclosure.edinet-fsa.go.jp/2013/manifest}list")
|
|
23
28
|
qnEdinetManifestTitle = qname("{http://disclosure.edinet-fsa.go.jp/2013/manifest}title")
|
|
24
29
|
qnEdinetManifestTocComposition = qname("{http://disclosure.edinet-fsa.go.jp/2013/manifest}tocComposition")
|
|
30
|
+
xhtmlDtdExtension = "xhtml1-strict-ix.dtd"
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"""
|
|
2
|
+
See COPYRIGHT.md for copyright information.
|
|
3
|
+
"""
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from collections import defaultdict
|
|
7
|
+
from dataclasses import dataclass
|
|
8
|
+
from decimal import Decimal
|
|
9
|
+
from functools import lru_cache
|
|
10
|
+
from operator import attrgetter
|
|
11
|
+
from typing import Callable, Hashable, Iterable, cast
|
|
12
|
+
|
|
13
|
+
import regex
|
|
14
|
+
|
|
15
|
+
from arelle.LinkbaseType import LinkbaseType
|
|
16
|
+
from arelle.ModelDocument import Type as ModelDocumentType
|
|
17
|
+
from arelle.ModelDtsObject import ModelConcept
|
|
18
|
+
from arelle.ModelInstanceObject import ModelFact, ModelUnit, ModelContext
|
|
19
|
+
from arelle.ModelObject import ModelObject
|
|
20
|
+
from arelle.ModelValue import QName, qname
|
|
21
|
+
from arelle.ModelXbrl import ModelXbrl
|
|
22
|
+
from arelle.PrototypeDtsObject import LinkPrototype
|
|
23
|
+
from arelle.ValidateDuplicateFacts import getDeduplicatedFacts, DeduplicationType
|
|
24
|
+
from arelle.XmlValidate import VALID
|
|
25
|
+
from arelle.typing import TypeGetText
|
|
26
|
+
from arelle.utils.PluginData import PluginData
|
|
27
|
+
from .Constants import CORPORATE_FORMS
|
|
28
|
+
from .ControllerPluginData import ControllerPluginData
|
|
29
|
+
from .ManifestInstance import ManifestInstance
|
|
30
|
+
from .Statement import Statement, STATEMENTS, BalanceSheet, StatementInstance, StatementType
|
|
31
|
+
|
|
32
|
+
_: TypeGetText
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
_DEBIT_QNAME_PATTERN = regex.compile('.*(Liability|Liabilities|Equity)')
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@dataclass
|
|
39
|
+
class PluginValidationDataExtension(PluginData):
|
|
40
|
+
accountingStandardsDeiQn: QName
|
|
41
|
+
assetsIfrsQn: QName
|
|
42
|
+
consolidatedOrNonConsolidatedAxisQn: QName
|
|
43
|
+
documentTypeDeiQn: QName
|
|
44
|
+
jpcrpEsrFilingDateCoverPageQn: QName
|
|
45
|
+
jpcrpFilingDateCoverPageQn: QName
|
|
46
|
+
jpspsFilingDateCoverPageQn: QName
|
|
47
|
+
nonConsolidatedMemberQn: QName
|
|
48
|
+
ratioOfFemaleDirectorsAndOtherOfficersQn: QName
|
|
49
|
+
|
|
50
|
+
contextIdPattern: regex.Pattern[str]
|
|
51
|
+
|
|
52
|
+
_primaryModelXbrl: ModelXbrl | None = None
|
|
53
|
+
|
|
54
|
+
def __init__(self, name: str):
|
|
55
|
+
super().__init__(name)
|
|
56
|
+
jpcrpEsrNamespace = "http://disclosure.edinet-fsa.go.jp/taxonomy/jpcrp-esr/2024-11-01/jpcrp-esr_cor"
|
|
57
|
+
jpcrpNamespace = 'http://disclosure.edinet-fsa.go.jp/taxonomy/jpcrp/2024-11-01/jpcrp_cor'
|
|
58
|
+
jpdeiNamespace = 'http://disclosure.edinet-fsa.go.jp/taxonomy/jpdei/2013-08-31/jpdei_cor'
|
|
59
|
+
jpigpNamespace = "http://disclosure.edinet-fsa.go.jp/taxonomy/jpigp/2024-11-01/jpigp_cor"
|
|
60
|
+
jppfsNamespace = "http://disclosure.edinet-fsa.go.jp/taxonomy/jppfs/2024-11-01/jppfs_cor"
|
|
61
|
+
jpspsNamespace = 'http://disclosure.edinet-fsa.go.jp/taxonomy/jpsps/2024-11-01/jpsps_cor'
|
|
62
|
+
self.accountingStandardsDeiQn = qname(jpdeiNamespace, 'AccountingStandardsDEI')
|
|
63
|
+
self.assetsIfrsQn = qname(jpigpNamespace, 'AssetsIFRS')
|
|
64
|
+
self.consolidatedOrNonConsolidatedAxisQn = qname(jppfsNamespace, 'ConsolidatedOrNonConsolidatedAxis')
|
|
65
|
+
self.documentTypeDeiQn = qname(jpdeiNamespace, 'DocumentTypeDEI')
|
|
66
|
+
self.jpcrpEsrFilingDateCoverPageQn = qname(jpcrpEsrNamespace, 'FilingDateCoverPage')
|
|
67
|
+
self.jpcrpFilingDateCoverPageQn = qname(jpcrpNamespace, 'FilingDateCoverPage')
|
|
68
|
+
self.jpspsFilingDateCoverPageQn = qname(jpspsNamespace, 'FilingDateCoverPage')
|
|
69
|
+
self.nonConsolidatedMemberQn = qname(jppfsNamespace, "NonConsolidatedMember")
|
|
70
|
+
self.ratioOfFemaleDirectorsAndOtherOfficersQn = qname(jpcrpNamespace, "RatioOfFemaleDirectorsAndOtherOfficers")
|
|
71
|
+
|
|
72
|
+
self.contextIdPattern = regex.compile(r'(Prior[1-9]Year|CurrentYear|Prior[1-9]Interim|Interim)(Duration|Instant)')
|
|
73
|
+
|
|
74
|
+
# Identity hash for caching.
|
|
75
|
+
def __hash__(self) -> int:
|
|
76
|
+
return id(self)
|
|
77
|
+
|
|
78
|
+
@lru_cache(1)
|
|
79
|
+
def _contextMatchesStatement(self, modelXbrl: ModelXbrl, contextId: str, statement: Statement) -> bool:
|
|
80
|
+
"""
|
|
81
|
+
:return: Whether the context's facts are applicable to the given statement.
|
|
82
|
+
"""
|
|
83
|
+
if 'Interim' in contextId:
|
|
84
|
+
# valid06.zip suggests "interim"" contexts are not considered for balance sheets.
|
|
85
|
+
return False
|
|
86
|
+
context = modelXbrl.contexts[contextId]
|
|
87
|
+
if not all(dimQn == self.consolidatedOrNonConsolidatedAxisQn for dimQn in context.qnameDims):
|
|
88
|
+
return False
|
|
89
|
+
memberValue = context.dimMemberQname(self.consolidatedOrNonConsolidatedAxisQn, includeDefaults=True)
|
|
90
|
+
contextIsConsolidated = memberValue != self.nonConsolidatedMemberQn
|
|
91
|
+
return bool(statement.isConsolidated == contextIsConsolidated)
|
|
92
|
+
|
|
93
|
+
def _isDebitConcept(self, concept: ModelConcept) -> bool:
|
|
94
|
+
"""
|
|
95
|
+
:return: Whether the given concept is a debit concept.
|
|
96
|
+
"""
|
|
97
|
+
return bool(_DEBIT_QNAME_PATTERN.match(concept.qname.localName))
|
|
98
|
+
|
|
99
|
+
@lru_cache(1)
|
|
100
|
+
def isCorporateForm(self, modelXbrl: ModelXbrl) -> bool:
|
|
101
|
+
documentTypes = self.getDocumentTypes(modelXbrl)
|
|
102
|
+
if any(documentType == form.value for form in CORPORATE_FORMS for documentType in documentTypes):
|
|
103
|
+
return True
|
|
104
|
+
return False
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def getBalanceSheets(self, modelXbrl: ModelXbrl, statement: Statement) -> list[BalanceSheet]:
|
|
108
|
+
"""
|
|
109
|
+
:return: Balance sheet data for each context/unit pairing the given statement.
|
|
110
|
+
"""
|
|
111
|
+
balanceSheets: list[BalanceSheet] = []
|
|
112
|
+
if statement.roleUri not in modelXbrl.roleTypes:
|
|
113
|
+
return balanceSheets
|
|
114
|
+
if statement.statementType not in (
|
|
115
|
+
StatementType.BALANCE_SHEET,
|
|
116
|
+
StatementType.STATEMENT_OF_FINANCIAL_POSITION
|
|
117
|
+
):
|
|
118
|
+
return balanceSheets
|
|
119
|
+
|
|
120
|
+
relSet = modelXbrl.relationshipSet(
|
|
121
|
+
tuple(LinkbaseType.CALCULATION.getArcroles()),
|
|
122
|
+
linkrole=statement.roleUri
|
|
123
|
+
)
|
|
124
|
+
rootConcepts = relSet.rootConcepts
|
|
125
|
+
if len(rootConcepts) == 0:
|
|
126
|
+
return balanceSheets
|
|
127
|
+
|
|
128
|
+
# GFM 1.2.7 and 1.2.10 asserts no duplicate contexts and units, respectively,
|
|
129
|
+
# so context and unit IDs can be used as a key.
|
|
130
|
+
factsByContextIdAndUnitId = self.getFactsByContextAndUnit(
|
|
131
|
+
modelXbrl,
|
|
132
|
+
attrgetter("id"),
|
|
133
|
+
attrgetter("id"),
|
|
134
|
+
tuple(concept.qname for concept in rootConcepts)
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
for (contextId, unitId), facts in factsByContextIdAndUnitId.items():
|
|
138
|
+
if not self._contextMatchesStatement(modelXbrl, contextId, statement):
|
|
139
|
+
continue
|
|
140
|
+
assetSum = Decimal(0)
|
|
141
|
+
liabilitiesAndEquitySum = Decimal(0)
|
|
142
|
+
for fact in facts:
|
|
143
|
+
if isinstance(fact.xValue, float):
|
|
144
|
+
value = Decimal(fact.xValue)
|
|
145
|
+
else:
|
|
146
|
+
value = cast(Decimal, fact.xValue)
|
|
147
|
+
if self._isDebitConcept(fact.concept):
|
|
148
|
+
liabilitiesAndEquitySum += value
|
|
149
|
+
else:
|
|
150
|
+
assetSum += value
|
|
151
|
+
balanceSheets.append(
|
|
152
|
+
BalanceSheet(
|
|
153
|
+
assetsTotal=assetSum,
|
|
154
|
+
contextId=str(contextId),
|
|
155
|
+
facts=facts,
|
|
156
|
+
liabilitiesAndEquityTotal=liabilitiesAndEquitySum,
|
|
157
|
+
unitId=str(unitId),
|
|
158
|
+
)
|
|
159
|
+
)
|
|
160
|
+
return balanceSheets
|
|
161
|
+
|
|
162
|
+
@lru_cache(1)
|
|
163
|
+
def getStatementInstance(self, modelXbrl: ModelXbrl, statement: Statement) -> StatementInstance | None:
|
|
164
|
+
if statement.roleUri not in modelXbrl.roleTypes:
|
|
165
|
+
return None
|
|
166
|
+
return StatementInstance(
|
|
167
|
+
balanceSheets=self.getBalanceSheets(modelXbrl, statement),
|
|
168
|
+
statement=statement,
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
@lru_cache(1)
|
|
172
|
+
def getStatementInstances(self, modelXbrl: ModelXbrl) -> list[StatementInstance]:
|
|
173
|
+
return [
|
|
174
|
+
statementInstance
|
|
175
|
+
for statement in STATEMENTS
|
|
176
|
+
if (statementInstance := self.getStatementInstance(modelXbrl, statement)) is not None
|
|
177
|
+
]
|
|
178
|
+
|
|
179
|
+
@lru_cache(1)
|
|
180
|
+
def getDeduplicatedFacts(self, modelXbrl: ModelXbrl) -> list[ModelFact]:
|
|
181
|
+
return getDeduplicatedFacts(modelXbrl, DeduplicationType.CONSISTENT_PAIRS)
|
|
182
|
+
|
|
183
|
+
@lru_cache(1)
|
|
184
|
+
def getDocumentTypes(self, modelXbrl: ModelXbrl) -> set[str]:
|
|
185
|
+
documentFacts = modelXbrl.factsByQname.get(self.documentTypeDeiQn, set())
|
|
186
|
+
documentTypes = set()
|
|
187
|
+
for fact in documentFacts:
|
|
188
|
+
if fact.xValid >= VALID:
|
|
189
|
+
documentTypes.add(fact.textValue)
|
|
190
|
+
return documentTypes
|
|
191
|
+
|
|
192
|
+
def getFactsByContextAndUnit(
|
|
193
|
+
self, modelXbrl: ModelXbrl,
|
|
194
|
+
getContextKey: Callable[[ModelContext], Hashable],
|
|
195
|
+
getUnitKey: Callable[[ModelUnit], Hashable],
|
|
196
|
+
qnames: tuple[QName, ...] | None = None,
|
|
197
|
+
) -> dict[tuple[Hashable, Hashable], list[ModelFact]]:
|
|
198
|
+
deduplicatedFacts = self.getDeduplicatedFacts(modelXbrl)
|
|
199
|
+
getFactsByContextAndUnit = defaultdict(list)
|
|
200
|
+
for fact in deduplicatedFacts:
|
|
201
|
+
if qnames is not None and fact.qname not in qnames:
|
|
202
|
+
continue
|
|
203
|
+
if fact.context is None or fact.unit is None:
|
|
204
|
+
continue
|
|
205
|
+
contextKey = getContextKey(fact.context)
|
|
206
|
+
unitKey = getUnitKey(fact.unit)
|
|
207
|
+
getFactsByContextAndUnit[(contextKey, unitKey)].append(fact)
|
|
208
|
+
return dict(getFactsByContextAndUnit)
|
|
209
|
+
|
|
210
|
+
@lru_cache(1)
|
|
211
|
+
def getFootnoteLinkElements(self, modelXbrl: ModelXbrl) -> list[ModelObject | LinkPrototype]:
|
|
212
|
+
# TODO: Consolidate with similar implementations in EDGAR and FERC
|
|
213
|
+
doc = modelXbrl.modelDocument
|
|
214
|
+
if doc is None:
|
|
215
|
+
return []
|
|
216
|
+
if doc.type in (ModelDocumentType.INLINEXBRL, ModelDocumentType.INLINEXBRLDOCUMENTSET):
|
|
217
|
+
elts = (linkPrototype
|
|
218
|
+
for linkKey, links in modelXbrl.baseSets.items()
|
|
219
|
+
for linkPrototype in links
|
|
220
|
+
if linkPrototype.modelDocument.type in (ModelDocumentType.INLINEXBRL, ModelDocumentType.INLINEXBRLDOCUMENTSET)
|
|
221
|
+
and linkKey[1] and linkKey[2] and linkKey[3] # fully specified roles
|
|
222
|
+
and linkKey[0] != "XBRL-footnotes")
|
|
223
|
+
else:
|
|
224
|
+
rootElt = doc.xmlDocument.getroot()
|
|
225
|
+
elts = rootElt.iterdescendants(tag="{http://www.xbrl.org/2003/linkbase}footnoteLink")
|
|
226
|
+
return [
|
|
227
|
+
elt
|
|
228
|
+
for elt in elts
|
|
229
|
+
if isinstance(elt, (ModelObject, LinkPrototype))
|
|
230
|
+
]
|
|
231
|
+
|
|
232
|
+
@lru_cache(1)
|
|
233
|
+
def getManifestInstance(self, modelXbrl: ModelXbrl) -> ManifestInstance | None:
|
|
234
|
+
controllerPluginData = ControllerPluginData.get(modelXbrl.modelManager.cntlr, self.name)
|
|
235
|
+
return controllerPluginData.matchManifestInstance(modelXbrl.ixdsDocUrls)
|
|
236
|
+
|
|
237
|
+
def hasValidNonNilFact(self, modelXbrl: ModelXbrl, qname: QName) -> bool:
|
|
238
|
+
return any(fact is not None for fact in self.iterValidNonNilFacts(modelXbrl, qname))
|
|
239
|
+
|
|
240
|
+
def isStandardTaxonomyUrl(self, uri: str, modelXbrl: ModelXbrl) -> bool:
|
|
241
|
+
return modelXbrl.modelManager.disclosureSystem.hrefValidForDisclosureSystem(uri)
|
|
242
|
+
|
|
243
|
+
def iterValidNonNilFacts(self, modelXbrl: ModelXbrl, qname: QName) -> Iterable[ModelFact]:
|
|
244
|
+
facts = modelXbrl.factsByQname.get(qname, set())
|
|
245
|
+
for fact in facts:
|
|
246
|
+
if fact.xValid >= VALID and not fact.isNil:
|
|
247
|
+
yield fact
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
from decimal import Decimal
|
|
3
|
+
from enum import Enum
|
|
4
|
+
|
|
5
|
+
from regex import regex
|
|
6
|
+
|
|
7
|
+
from arelle.ModelInstanceObject import ModelFact
|
|
8
|
+
|
|
9
|
+
CONSOLIDATED_ROLE_URI_PATTERN = regex.compile(r'.*rol_[\w]*Consolidated')
|
|
10
|
+
|
|
11
|
+
STATEMENT_ROLE_URIS = frozenset([
|
|
12
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterPeriodConsolidatedStatementOfComprehensiveIncomeIFRS',
|
|
13
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterPeriodConsolidatedStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
14
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterPeriodConsolidatedStatementOfProfitOrLossIFRS',
|
|
15
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterPeriodStatementOfComprehensiveIncomeIFRS',
|
|
16
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterPeriodStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
17
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterPeriodStatementOfProfitOrLossIFRS',
|
|
18
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyConsolidatedStatementOfCashFlowsIFRS',
|
|
19
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyConsolidatedStatementOfChangesInEquityIFRS',
|
|
20
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyConsolidatedStatementOfComprehensiveIncomeIFRS',
|
|
21
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyConsolidatedStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
22
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyConsolidatedStatementOfFinancialPositionIFRS',
|
|
23
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyConsolidatedStatementOfProfitOrLossIFRS',
|
|
24
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyStatementOfCashFlowsIFRS',
|
|
25
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyStatementOfChangesInEquityIFRS',
|
|
26
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyStatementOfComprehensiveIncomeIFRS',
|
|
27
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
28
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyStatementOfFinancialPositionIFRS',
|
|
29
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedQuarterlyStatementOfProfitOrLossIFRS',
|
|
30
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualConsolidatedStatementOfCashFlowsIFRS',
|
|
31
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualConsolidatedStatementOfChangesInEquityIFRS',
|
|
32
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualConsolidatedStatementOfComprehensiveIncomeIFRS',
|
|
33
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualConsolidatedStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
34
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualConsolidatedStatementOfFinancialPositionIFRS',
|
|
35
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualConsolidatedStatementOfProfitOrLossIFRS',
|
|
36
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualStatementOfCashFlowsIFRS',
|
|
37
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualStatementOfChangesInEquityIFRS',
|
|
38
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualStatementOfComprehensiveIncomeIFRS',
|
|
39
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
40
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualStatementOfFinancialPositionIFRS',
|
|
41
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedSemiAnnualStatementOfProfitOrLossIFRS',
|
|
42
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedYearToQuarterEndConsolidatedStatementOfComprehensiveIncomeIFRS',
|
|
43
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedYearToQuarterEndConsolidatedStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
44
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedYearToQuarterEndConsolidatedStatementOfProfitOrLossIFRS',
|
|
45
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedYearToQuarterEndStatementOfComprehensiveIncomeIFRS',
|
|
46
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedYearToQuarterEndStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
47
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_CondensedYearToQuarterEndStatementOfProfitOrLossIFRS',
|
|
48
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_ConsolidatedStatementOfCashFlowsIFRS',
|
|
49
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_ConsolidatedStatementOfChangesInEquityIFRS',
|
|
50
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_ConsolidatedStatementOfComprehensiveIncomeIFRS',
|
|
51
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_ConsolidatedStatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
52
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_ConsolidatedStatementOfFinancialPositionIFRS',
|
|
53
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_ConsolidatedStatementOfProfitOrLossIFRS',
|
|
54
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_StatementOfCashFlowsIFRS',
|
|
55
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_StatementOfChangesInEquityIFRS',
|
|
56
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_StatementOfComprehensiveIncomeIFRS',
|
|
57
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_StatementOfComprehensiveIncomeSingleStatementIFRS',
|
|
58
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_StatementOfFinancialPositionIFRS',
|
|
59
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_StatementOfProfitOrLossIFRS',
|
|
60
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_std_ConsolidatedStatementOfCashFlowsIFRS',
|
|
61
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_std_ConsolidatedStatementOfChangesInEquityIFRS',
|
|
62
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_std_ConsolidatedStatementOfComprehensiveIncomeIFRS',
|
|
63
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_std_ConsolidatedStatementOfFinancialPositionIFRS',
|
|
64
|
+
'http://disclosure.edinet-fsa.go.jp/role/jpigp/rol_std_ConsolidatedStatementOfProfitOrLossIFRS',
|
|
65
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_BalanceSheet',
|
|
66
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_ConsolidatedBalanceSheet',
|
|
67
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_QuarterlyBalanceSheet',
|
|
68
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_QuarterlyConsolidatedBalanceSheet',
|
|
69
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_SemiAnnualBalanceSheet',
|
|
70
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_SemiAnnualConsolidatedBalanceSheet',
|
|
71
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_Type1SemiAnnualBalanceSheet',
|
|
72
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_Type1SemiAnnualConsolidatedBalanceSheet',
|
|
73
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_std_BalanceSheet',
|
|
74
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_std_ConsolidatedBalanceSheet',
|
|
75
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_std_QuarterlyBalanceSheet',
|
|
76
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_std_QuarterlyConsolidatedBalanceSheet',
|
|
77
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_std_SemiAnnualBalanceSheet',
|
|
78
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_std_SemiAnnualConsolidatedBalanceSheet',
|
|
79
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_std_Type1SemiAnnualBalanceSheet',
|
|
80
|
+
'http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_std_Type1SemiAnnualConsolidatedBalanceSheet',
|
|
81
|
+
])
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class StatementType(Enum):
|
|
85
|
+
BALANCE_SHEET = 'BalanceSheet'
|
|
86
|
+
CONSOLIDATED_BALANCE_SHEET = 'ConsolidatedBalanceSheetIFRS'
|
|
87
|
+
STATEMENT_OF_CASH_FLOWS = 'StatementOfCashFlowsIFRS'
|
|
88
|
+
STATEMENT_OF_CHANGES_IN_EQUITY = 'StatementOfChangesInEquityIFRS'
|
|
89
|
+
STATEMENT_OF_COMPREHENSIVE_INCOME = 'StatementOfComprehensiveIncomeIFRS'
|
|
90
|
+
STATEMENT_OF_COMPREHENSIVE_INCOME_SINGLE_STATEMENT = 'StatementOfComprehensiveIncomeSingleStatementIFRS'
|
|
91
|
+
STATEMENT_OF_FINANCIAL_POSITION = 'StatementOfFinancialPositionIFRS'
|
|
92
|
+
STATEMENT_OF_PROFIT_OR_LOSS = 'StatementOfProfitOrLossIFRS'
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@dataclass(frozen=True)
|
|
96
|
+
class Statement:
|
|
97
|
+
isConsolidated: bool
|
|
98
|
+
roleUri: str
|
|
99
|
+
statementType: StatementType
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
@dataclass(frozen=True)
|
|
103
|
+
class BalanceSheet:
|
|
104
|
+
assetsTotal: Decimal
|
|
105
|
+
contextId: str
|
|
106
|
+
facts: list[ModelFact]
|
|
107
|
+
liabilitiesAndEquityTotal: Decimal
|
|
108
|
+
unitId: str
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
@dataclass(frozen=True)
|
|
112
|
+
class StatementInstance:
|
|
113
|
+
balanceSheets: list[BalanceSheet]
|
|
114
|
+
statement: Statement
|
|
115
|
+
|
|
116
|
+
def _buildStatements() -> frozenset[Statement]:
|
|
117
|
+
"""
|
|
118
|
+
Build a frozenset of Statement objects from the STATEMENT_ROLE_URIS.
|
|
119
|
+
This is done to avoid re-evaluating the set comprehension multiple times.
|
|
120
|
+
"""
|
|
121
|
+
statements = []
|
|
122
|
+
for roleUri in STATEMENT_ROLE_URIS:
|
|
123
|
+
isConsolidated = bool(CONSOLIDATED_ROLE_URI_PATTERN.match(roleUri))
|
|
124
|
+
statementType=next(
|
|
125
|
+
statementType
|
|
126
|
+
for statementType in StatementType
|
|
127
|
+
if roleUri.endswith(statementType.value)
|
|
128
|
+
)
|
|
129
|
+
statements.append(
|
|
130
|
+
Statement(
|
|
131
|
+
isConsolidated=isConsolidated,
|
|
132
|
+
roleUri=roleUri,
|
|
133
|
+
statementType=statementType
|
|
134
|
+
)
|
|
135
|
+
)
|
|
136
|
+
return frozenset(statements)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
STATEMENTS = _buildStatements()
|
{arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/contexts.py
RENAMED
|
@@ -6,8 +6,6 @@ from __future__ import annotations
|
|
|
6
6
|
from collections import defaultdict
|
|
7
7
|
from typing import Any, Iterable
|
|
8
8
|
|
|
9
|
-
import regex
|
|
10
|
-
|
|
11
9
|
from arelle import XbrlConst
|
|
12
10
|
from arelle.ModelDtsObject import ModelConcept
|
|
13
11
|
from arelle.ValidateXbrl import ValidateXbrl
|
|
@@ -166,14 +164,11 @@ def rule_EC8054W(
|
|
|
166
164
|
for context in val.modelXbrl.contexts.values():
|
|
167
165
|
if pluginData.nonConsolidatedMemberQn.localName not in context.id:
|
|
168
166
|
continue
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
):
|
|
175
|
-
memberQnames.add(memberElt.xValue)
|
|
176
|
-
if pluginData.nonConsolidatedMemberQn not in memberQnames:
|
|
167
|
+
member = context.dimMemberQname(
|
|
168
|
+
pluginData.consolidatedOrNonConsolidatedAxisQn,
|
|
169
|
+
includeDefaults=True
|
|
170
|
+
)
|
|
171
|
+
if member != pluginData.nonConsolidatedMemberQn:
|
|
177
172
|
yield Validation.warning(
|
|
178
173
|
codes='EDINET.EC8054W',
|
|
179
174
|
msg=_("For the context ID (%(contextId)s), \"NonConsolidatedMember\" "
|
{arelle_release-2.37.48 → arelle_release-2.37.49}/arelle/plugin/validate/EDINET/rules/edinet.py
RENAMED
|
@@ -3,9 +3,7 @@ See COPYRIGHT.md for copyright information.
|
|
|
3
3
|
"""
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from decimal import Decimal
|
|
8
|
-
from typing import Any, Iterable, cast
|
|
6
|
+
from typing import Any, Iterable
|
|
9
7
|
|
|
10
8
|
from arelle import XbrlConst, ValidateDuplicateFacts
|
|
11
9
|
from arelle.LinkbaseType import LinkbaseType
|
|
@@ -15,12 +13,71 @@ from arelle.typing import TypeGetText
|
|
|
15
13
|
from arelle.utils.PluginHooks import ValidationHook
|
|
16
14
|
from arelle.utils.validate.Decorator import validation
|
|
17
15
|
from arelle.utils.validate.Validation import Validation
|
|
16
|
+
from ..Constants import AccountingStandard
|
|
18
17
|
from ..DisclosureSystems import (DISCLOSURE_SYSTEM_EDINET)
|
|
19
18
|
from ..PluginValidationDataExtension import PluginValidationDataExtension
|
|
19
|
+
from ..Statement import StatementType
|
|
20
20
|
|
|
21
21
|
_: TypeGetText
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
@validation(
|
|
25
|
+
hook=ValidationHook.XBRL_FINALLY,
|
|
26
|
+
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
27
|
+
)
|
|
28
|
+
def rule_balances(
|
|
29
|
+
pluginData: PluginValidationDataExtension,
|
|
30
|
+
val: ValidateXbrl,
|
|
31
|
+
*args: Any,
|
|
32
|
+
**kwargs: Any,
|
|
33
|
+
) -> Iterable[Validation]:
|
|
34
|
+
"""
|
|
35
|
+
EDINET.EC8057W: On the consolidated balance sheet, the sum of all liabilities and
|
|
36
|
+
equity must equal the sum of all assets.
|
|
37
|
+
EDINET.EC8058W: On the nonconsolidated balance sheet, the sum of all liabilities and
|
|
38
|
+
equity must equal the sum of all assets.
|
|
39
|
+
EDINET.EC8062W: On the consolidated statement of financial position, the sum of all liabilities and
|
|
40
|
+
equity must equal the sum of all assets.
|
|
41
|
+
EDINET.EC8064W: On the nonconsolidated statement of financial position, the sum of all liabilities and
|
|
42
|
+
equity must equal the sum of all assets.
|
|
43
|
+
"""
|
|
44
|
+
for statementInstance in pluginData.getStatementInstances(val.modelXbrl):
|
|
45
|
+
statement = statementInstance.statement
|
|
46
|
+
for balanceSheet in statementInstance.balanceSheets:
|
|
47
|
+
if balanceSheet.assetsTotal == balanceSheet.liabilitiesAndEquityTotal:
|
|
48
|
+
continue
|
|
49
|
+
code = None
|
|
50
|
+
if statement.statementType == StatementType.BALANCE_SHEET:
|
|
51
|
+
if statement.isConsolidated:
|
|
52
|
+
code = "EDINET.EC8057W"
|
|
53
|
+
else:
|
|
54
|
+
code = "EDINET.EC8058W"
|
|
55
|
+
elif statement.statementType == StatementType.STATEMENT_OF_FINANCIAL_POSITION:
|
|
56
|
+
if statement.isConsolidated:
|
|
57
|
+
code = "EDINET.EC8062W"
|
|
58
|
+
else:
|
|
59
|
+
code = "EDINET.EC8064W"
|
|
60
|
+
assert code is not None, "Unknown balance sheet encountered."
|
|
61
|
+
yield Validation.warning(
|
|
62
|
+
codes=code,
|
|
63
|
+
msg=_("The %(consolidated)s %(balanceSheet)s is not balanced. "
|
|
64
|
+
"The sum of all liabilities and equity must equal the sum of all assets. "
|
|
65
|
+
"Please correct the debit (%(liabilitiesAndEquitySum)s) and credit (%(assetSum)s) "
|
|
66
|
+
"values so that they match "
|
|
67
|
+
"<roleUri=%(roleUri)s> <contextID=%(contextId)s> <unitID=%(unitId)s>."),
|
|
68
|
+
consolidated=_("consolidated") if statement.isConsolidated
|
|
69
|
+
else _("nonconsolidated"),
|
|
70
|
+
balanceSheet=_("balance sheet") if statement.statementType == StatementType.BALANCE_SHEET
|
|
71
|
+
else _("statement of financial position"),
|
|
72
|
+
liabilitiesAndEquitySum=f"{balanceSheet.liabilitiesAndEquityTotal:,}",
|
|
73
|
+
assetSum=f"{balanceSheet.assetsTotal:,}",
|
|
74
|
+
roleUri=statement.roleUri,
|
|
75
|
+
contextId=balanceSheet.contextId,
|
|
76
|
+
unitId=balanceSheet.unitId,
|
|
77
|
+
modelObject=balanceSheet.facts,
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
|
|
24
81
|
@validation(
|
|
25
82
|
hook=ValidationHook.XBRL_FINALLY,
|
|
26
83
|
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
@@ -90,6 +147,35 @@ def rule_EC5002E(
|
|
|
90
147
|
)
|
|
91
148
|
|
|
92
149
|
|
|
150
|
+
@validation(
|
|
151
|
+
hook=ValidationHook.XBRL_FINALLY,
|
|
152
|
+
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
153
|
+
)
|
|
154
|
+
def rule_EC5613W(
|
|
155
|
+
pluginData: PluginValidationDataExtension,
|
|
156
|
+
val: ValidateXbrl,
|
|
157
|
+
*args: Any,
|
|
158
|
+
**kwargs: Any,
|
|
159
|
+
) -> Iterable[Validation]:
|
|
160
|
+
"""
|
|
161
|
+
EDINET.EC5613W: Please set the DEI "Accounting Standard" value to one
|
|
162
|
+
of the following: "Japan GAAP", "US GAAP", "IFRS".
|
|
163
|
+
"""
|
|
164
|
+
validAccountingStandards = {s.value for s in AccountingStandard}
|
|
165
|
+
errorFacts = [
|
|
166
|
+
fact for fact in pluginData.iterValidNonNilFacts(val.modelXbrl, pluginData.accountingStandardsDeiQn)
|
|
167
|
+
if fact.xValue not in validAccountingStandards
|
|
168
|
+
]
|
|
169
|
+
if len(errorFacts) > 0:
|
|
170
|
+
yield Validation.warning(
|
|
171
|
+
codes='EDINET.EC5613W',
|
|
172
|
+
msg=_("Please set the DEI \"Accounting Standard\" value to one "
|
|
173
|
+
"of the following: %(values)s."),
|
|
174
|
+
values=', '.join(f'"{s.value}"' for s in AccountingStandard),
|
|
175
|
+
modelObject=errorFacts,
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
|
|
93
179
|
@validation(
|
|
94
180
|
hook=ValidationHook.XBRL_FINALLY,
|
|
95
181
|
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
@@ -175,54 +261,6 @@ def rule_EC8027W(
|
|
|
175
261
|
)
|
|
176
262
|
|
|
177
263
|
|
|
178
|
-
@validation(
|
|
179
|
-
hook=ValidationHook.XBRL_FINALLY,
|
|
180
|
-
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
181
|
-
)
|
|
182
|
-
def rule_EC8062W(
|
|
183
|
-
pluginData: PluginValidationDataExtension,
|
|
184
|
-
val: ValidateXbrl,
|
|
185
|
-
*args: Any,
|
|
186
|
-
**kwargs: Any,
|
|
187
|
-
) -> Iterable[Validation]:
|
|
188
|
-
"""
|
|
189
|
-
EDINET.EC8062W: The sum of all liabilities and equity must equal the sum of all assets.
|
|
190
|
-
"""
|
|
191
|
-
deduplicatedFacts = pluginData.getDeduplicatedFacts(val.modelXbrl)
|
|
192
|
-
|
|
193
|
-
factsByContextId = defaultdict(list)
|
|
194
|
-
for fact in deduplicatedFacts:
|
|
195
|
-
if fact.qname not in (pluginData.assetsIfrsQn, pluginData.liabilitiesAndEquityIfrsQn):
|
|
196
|
-
continue
|
|
197
|
-
if fact.contextID is None or not pluginData.contextIdPattern.fullmatch(fact.contextID):
|
|
198
|
-
continue
|
|
199
|
-
factsByContextId[fact.contextID].append(fact)
|
|
200
|
-
|
|
201
|
-
for facts in factsByContextId.values():
|
|
202
|
-
assetSum = Decimal(0)
|
|
203
|
-
liabilitiesAndEquitySum = Decimal(0)
|
|
204
|
-
for fact in facts:
|
|
205
|
-
if isinstance(fact.xValue, float):
|
|
206
|
-
value = Decimal(fact.xValue)
|
|
207
|
-
else:
|
|
208
|
-
value = cast(Decimal, fact.xValue)
|
|
209
|
-
if fact.qname == pluginData.assetsIfrsQn:
|
|
210
|
-
assetSum += value
|
|
211
|
-
elif fact.qname == pluginData.liabilitiesAndEquityIfrsQn:
|
|
212
|
-
liabilitiesAndEquitySum += value
|
|
213
|
-
if assetSum != liabilitiesAndEquitySum:
|
|
214
|
-
yield Validation.warning(
|
|
215
|
-
codes='EDINET.EC8062W',
|
|
216
|
-
msg=_("The consolidated statement of financial position is not reconciled. "
|
|
217
|
-
"The sum of all liabilities and equity must equal the sum of all assets. "
|
|
218
|
-
"Please correct the debit (%(liabilitiesAndEquitySum)s) and credit (%(assetSum)s) "
|
|
219
|
-
"values so that they match."),
|
|
220
|
-
liabilitiesAndEquitySum=f"{liabilitiesAndEquitySum:,}",
|
|
221
|
-
assetSum=f"{assetSum:,}",
|
|
222
|
-
modelObject=facts,
|
|
223
|
-
)
|
|
224
|
-
|
|
225
|
-
|
|
226
264
|
@validation(
|
|
227
265
|
hook=ValidationHook.XBRL_FINALLY,
|
|
228
266
|
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|