From 57b16fc34e40d636778167d1fc30014e4994531a Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Mon, 26 Aug 2024 22:56:40 -0400 Subject: [PATCH] add some more stuff to MCL and mocha system --- mocha-common/build | 1 + mocha-common/compilers/yaml2mcl/Program.py | 9 +++ .../compilers/yaml2mcl/mocha/core/__init__.py | 18 +++++ .../mocha/library/editormini/DataFormat.py | 20 +++++ .../editormini/dataformats/McxDataFormat.py | 22 +++++ .../library/manager/sectionfile/Section.py | 18 ++++- .../manager/sectionfile/SectionFile.py | 9 ++- .../library/manager/sectionfile/__init__.py | 2 +- .../000-EntityDefinitions/002-Attributes.yaml | 1 + .../003-Relationships.yaml | 23 +++--- .../003-Classes/00020-NumericAttribute.yaml | 3 + .../003-Classes/00041-Application.yaml | 18 +++++ .../00085-ReturnElementMethodBinding.yaml | 28 +++++++ .../003-Classes/00361-Tenant.yaml | 51 +++++++++++- .../00922-DerivedElementContent.yaml | 37 +++++++++ .../003-Classes/01502-Translation.yaml | 34 ++++++++ .../003-Classes/01509-TranslationValue.yaml | 34 ++++++++ .../Elements/000000-LoginPageSubedit.yaml | 5 ++ .../000-EntityDefinitions/001-Classes.yaml | 3 - .../000-EntityDefinitions/002-Attributes.yaml | 2 - .../003-Relationships.yaml | 7 -- .../001-Classes/00434-Route.yaml | 80 +++++++++++++++++++ .../003-Classes/00434-Route.yaml | 66 --------------- .../libraries/yaml/test/003-Relationship.yaml | 2 +- 24 files changed, 395 insertions(+), 98 deletions(-) create mode 100644 mocha-common/compilers/yaml2mcl/mocha/core/__init__.py create mode 100644 mocha-common/compilers/yaml2mcl/mocha/library/editormini/DataFormat.py create mode 100644 mocha-common/compilers/yaml2mcl/mocha/library/editormini/dataformats/McxDataFormat.py create mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00085-ReturnElementMethodBinding.yaml create mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00922-DerivedElementContent.yaml create mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01502-Translation.yaml create mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01509-TranslationValue.yaml delete mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/001-Classes.yaml delete mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/002-Attributes.yaml delete mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/003-Relationships.yaml create mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/001-Classes/00434-Route.yaml delete mode 100644 mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/003-Classes/00434-Route.yaml diff --git a/mocha-common/build b/mocha-common/build index 2d729b6..059a777 100755 --- a/mocha-common/build +++ b/mocha-common/build @@ -5,3 +5,4 @@ if [ ! -d output ]; then fi ./yaml2mcl --export-entities=output/net.alcetech.Mocha.System.cs -o output/net.alcetech.Mocha.System.mcl data/libraries/yaml/net.alcetech.Mocha.System +./yaml2mcl --reference output/net.alcetech.Mocha.System.mcl --export-entities=output/net.alcetech.Mocha.Web.cs -o output/net.alcetech.Mocha.Web.mcl data/libraries/yaml/net.alcetech.Mocha.Web diff --git a/mocha-common/compilers/yaml2mcl/Program.py b/mocha-common/compilers/yaml2mcl/Program.py index ad3e153..48b0483 100644 --- a/mocha-common/compilers/yaml2mcl/Program.py +++ b/mocha-common/compilers/yaml2mcl/Program.py @@ -29,10 +29,12 @@ class Yaml2Mcl: def start(self): args = sys.argv[1:] + # args = [ '-o', '/tmp/net.alcetech.Mocha.System.mcl', '/home/beckermj/Documents/Projects/mochapowered/mocha-dotnet/mocha-common/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System' ] filenames = [ ] outputFileName = "" exportEntitiesFileName = None + libraryReferences = [ ] while (len(args) > 0): # print (args[0]) @@ -45,6 +47,9 @@ class Yaml2Mcl: elif args[0].startswith("--export-entities="): exportEntitiesFileName = args[0].split('=', 2)[1] args = args[1:] + elif args[0] == "--reference": + libraryReferences.append(args[1]) + args = args[2:] else: filenames.append(args[0]) args = args[1:] @@ -54,6 +59,10 @@ class Yaml2Mcl: print ("Version 1.0") print ("") + print ("refs: ") + print (libraryReferences) + print ("") + print (filenames) print ("output to: " + outputFileName) diff --git a/mocha-common/compilers/yaml2mcl/mocha/core/__init__.py b/mocha-common/compilers/yaml2mcl/mocha/core/__init__.py new file mode 100644 index 0000000..3beccd1 --- /dev/null +++ b/mocha-common/compilers/yaml2mcl/mocha/core/__init__.py @@ -0,0 +1,18 @@ +# Copyright (C) 2024 Michael Becker +# +# This file is part of yaml2mcl. +# +# yaml2mcl is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# yaml2mcl is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with yaml2mcl. If not, see . + +from .Guid import Guid diff --git a/mocha-common/compilers/yaml2mcl/mocha/library/editormini/DataFormat.py b/mocha-common/compilers/yaml2mcl/mocha/library/editormini/DataFormat.py new file mode 100644 index 0000000..8f711da --- /dev/null +++ b/mocha-common/compilers/yaml2mcl/mocha/library/editormini/DataFormat.py @@ -0,0 +1,20 @@ +# Copyright (C) 2024 Michael Becker +# +# This file is part of yaml2mcl. +# +# yaml2mcl is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# yaml2mcl is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with yaml2mcl. If not, see . + +class DataFormat: + + pass \ No newline at end of file diff --git a/mocha-common/compilers/yaml2mcl/mocha/library/editormini/dataformats/McxDataFormat.py b/mocha-common/compilers/yaml2mcl/mocha/library/editormini/dataformats/McxDataFormat.py new file mode 100644 index 0000000..3da29f6 --- /dev/null +++ b/mocha-common/compilers/yaml2mcl/mocha/library/editormini/dataformats/McxDataFormat.py @@ -0,0 +1,22 @@ +# Copyright (C) 2024 Michael Becker +# +# This file is part of yaml2mcl. +# +# yaml2mcl is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# yaml2mcl is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with yaml2mcl. If not, see . + +class McxDataFormat (DataFormat): + + def load_internal(self, stream): + + r = Reader(stream) \ No newline at end of file diff --git a/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/Section.py b/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/Section.py index 2d503db..6d3ae8f 100644 --- a/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/Section.py +++ b/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/Section.py @@ -105,4 +105,20 @@ class ResourcesSection (Section): def write_data(self, f): for rsrc in self.data: - f.write(rsrc) \ No newline at end of file + f.write(rsrc) + +class DefinitionsSection(Section): + def __init__(self, data: list): + Section.__init__(self, 'Defs', data, 0) + + def get_length(self): + length = 4 + for item in self.data: + length += len(item) + 1 + 32 + return length + def write_data(self, f): + for item in self.data: + f.write(item[0].encode('utf-8')) + f.write(int.to_bytes(0, 1)) + f.write(item[1].encode('utf-8')) + f.write(int.to_bytes(0, 1)) \ No newline at end of file diff --git a/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/SectionFile.py b/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/SectionFile.py index ff0801a..d7ae043 100644 --- a/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/SectionFile.py +++ b/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/SectionFile.py @@ -15,6 +15,7 @@ # You should have received a copy of the GNU General Public License # along with yaml2mcl. If not, see . +from mocha.core import Guid from .Section import Section class SectionFile: @@ -47,7 +48,9 @@ class SectionFile: section_count = len(self.sections) f.write(int.to_bytes(section_count, 4, 'little')) - offset = 16 + (section_count * 32) + f.write(Guid.create().to_bytes()) + + offset = 32 + (section_count * 32) lastLength = 0 for sect in self.sections: offset += lastLength @@ -55,9 +58,9 @@ class SectionFile: f.write(str(sect.name).ljust(16, '\0').encode("utf-8")) f.write(int.to_bytes(offset, 4, 'little')) - f.write(int.to_bytes(length, 4, 'little')) + f.write(int.to_bytes(length, 4, 'little')) # compressed length for compressed sections + f.write(int.to_bytes(length, 4, 'little')) # decompressed length for compressed sections f.write(int.to_bytes(len(sect.data), 4, 'little')) - f.write(int.to_bytes(0, 4, 'little')) # reserved or padding lastLength = length diff --git a/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/__init__.py b/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/__init__.py index c9291d8..9077d42 100644 --- a/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/__init__.py +++ b/mocha-common/compilers/yaml2mcl/mocha/library/manager/sectionfile/__init__.py @@ -13,4 +13,4 @@ # limitations under the License. from .SectionFile import SectionFile -from .Section import Section, GuidSection, InstancesSection, AttributesSection, RelationshipsSection, StringTableSection, ResourcesSection \ No newline at end of file +from .Section import Section, GuidSection, InstancesSection, AttributesSection, RelationshipsSection, StringTableSection, ResourcesSection, DefinitionsSection \ No newline at end of file diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/002-Attributes.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/002-Attributes.yaml index 44c2a67..07c76ae 100644 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/002-Attributes.yaml +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/002-Attributes.yaml @@ -16,6 +16,7 @@ - IDA_Comment: '{a70cbe2b-9e17-45d0-a109-e250b5d500f1}' - IDA_MethodName: '{de275bb8-5281-48ab-9919-6fa2d790549e}' - IDA_NotInUse: '{55777441-33b5-4303-93bf-20a77dec3b6f}' + - IDA_MinimumLength: '{8590e809-3947-418a-a32d-fdbfc0776a55}' - IDA_MaximumLength: '{6d69fee2-f220-4aad-ab89-01bfa491dae1}' - IDA_MinimumValueNumeric: '{bc90ffdf-9b6e-444a-a484-f9d06d7f3c31}' - IDA_MaximumValueNumeric: '{b9353b1c-2597-4097-96eb-449a6fafcdab}' diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/003-Relationships.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/003-Relationships.yaml index 8b006b9..4f0abf1 100644 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/003-Relationships.yaml +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/003-Relationships.yaml @@ -41,9 +41,6 @@ - IDR_Relationship__has_sibling__Relationship: "{656110FF-4502-48B8-A7F3-D07F017AEA3F}" - IDR_Relationship__is_sibling__Relationship: "{FA08B2A4-71E2-44CB-9252-8CE336E2E1AD}" - - IDR_Translation__has__Translation_Value: "{F9B60C00-FF1D-438F-AC74-6EDFA8DD7324}" - - IDR_Translation_Value__has__Language: "{3655AEC2-E2C9-4DDE-8D98-0C4D3CE1E569}" - - IDR_Element_Content__built_from__BEM_Process: '{3d7094ff-33e5-4800-9e4e-93dde0d1d331}' - IDR_BEM_Process__builds__Element_Content: '{9d3220a3-6919-4ebe-97be-49bb9c304c2d}' @@ -139,7 +136,7 @@ - IDR_Prompt_Value__has__Prompt: "{7CD62362-DDCE-4BFC-87B9-B5499B0BC141}" - - IDR_User__has_display_name__Translatable_Text_Constant: "{6C29856C-3B10-4F5B-A291-DD3CA4C04A2F}" + - IDR_User__has_display_name__Translation: "{6C29856C-3B10-4F5B-A291-DD3CA4C04A2F}" - IDR_User_Login__has__User: "{85B40E4B-849B-4006-A9C0-4E201B25975F}" - IDR_System_Account__for__Person: "{f0c07f27-7601-4760-ab3d-851395aa325e}" @@ -168,13 +165,15 @@ - IDR_Tenant__has__Application: "{22936f51-2629-4503-a30b-a02d61a6c0e0}" + - IDR_Application__for__Tenant: '{c4ac2f1f-56c8-496f-9f93-3a0a2bb9a54c}' + - IDR_Tenant__has_sidebar__Menu: "{D62DFB9F-48D5-4697-AAAD-1CAD0EA7ECFA}" - IDR_Tenant__has__Tenant_Type: "{E94B6C9D-3307-4858-9726-F24B7DB21E2D}" - IDR_Tenant__has_company_logo_image__File: "{3540c81c-b229-4eac-b9b5-9d4b4c6ad1eb}" - IDR_Menu__has__Menu_Section: "{a22d949f-f8d1-4dcc-a3eb-d9f910228dfd}" - - IDR_Menu_Item__has_title__Translatable_Text_Constant: "{65E3C87E-A2F7-4A33-9FA7-781EFA801E02}" + - IDR_Menu_Item__has_title__Translation: "{65E3C87E-A2F7-4A33-9FA7-781EFA801E02}" - IDR_Menu_Section__has__Menu_Item: "{5b659d7c-58f9-453c-9826-dd3205c3c97f}" - IDR_Command_Menu_Item__has__Icon: "{8859DAEF-01F7-46FA-8F3E-7B2F28E0A520}" @@ -194,7 +193,7 @@ - IDR_Page_Component__has__Style: "{818CFF50-7D42-43B2-B6A7-92C3C54D450D}" - IDR_Style__for__Page_Component: "{007563E7-7277-4436-8C82-06D5F156D8E1}" - - IDR_Button_Page_Component__has_text__Translatable_Text_Constant: "{C25230B1-4D23-4CFE-8B75-56C33E8293AF}" + - IDR_Button_Page_Component__has_text__Translation: "{C25230B1-4D23-4CFE-8B75-56C33E8293AF}" - IDR_Image_Page_Component__has_source__Method: "{481E3FBE-B82A-4C76-9DDF-D66C6BA8C590}" - IDR_Sequential_Container_Page_Component__has__Sequential_Container_Orientation: "{DD55F506-8718-4240-A894-21346656E804}" @@ -213,18 +212,16 @@ - IDR_Tenant__has_logo_image__File: "{4C399E80-ECA2-4A68-BFB4-26A5E6E97047}" - IDR_Tenant__has_background_image__File: "{39B0D963-4BE0-49C8-BFA2-607051CB0101}" - IDR_Tenant__has_icon_image__File: "{CC4E65BD-7AAA-40DA-AECA-C607D7042CE3}" - - IDR_Tenant__has_login_header__Translatable_Text_Constant: "{41D66ACB-AFDE-4B6F-892D-E66255F10DEB}" - - IDR_Tenant__has_login_footer__Translatable_Text_Constant: "{A6203B6B-5BEB-4008-AE49-DB5E7DDBA45B}" - IDR_Tenant__has_application_title__Translation: "{76683437-67ba-46d9-a5e7-2945be635345}" - IDR_Tenant__has_mega__Menu: "{cdd743cb-c74a-4671-9922-652c7db9f2d8}" - - IDR_Tenant_Type__has_title__Translatable_Text_Constant: "{79AAE09C-5690-471C-8442-1B230610456C}" + - IDR_Tenant_Type__has_title__Translation: "{79AAE09C-5690-471C-8442-1B230610456C}" - - IDR_Prompt__has_title__Translatable_Text_Constant: "{081ee211-7534-43c4-99b5-24bd9537babc}" + - IDR_Prompt__has_title__Translation: "{081ee211-7534-43c4-99b5-24bd9537babc}" - - IDR_Report__has_title__Translatable_Text_Constant: "{DF93EFB0-8B5E-49E7-8BC0-553F9E7602F9}" - - IDR_Report__has_description__Translatable_Text_Constant: "{D5AA18A7-7ACD-4792-B039-6C620A151BAD}" - - IDR_Report_Field__has_title__Translatable_Text_Constant: "{6780BFC2-DBC0-40AE-83EE-BFEF979F0054}" + - IDR_Report__has_title__Translation: "{DF93EFB0-8B5E-49E7-8BC0-553F9E7602F9}" + - IDR_Report__has_description__Translation: "{D5AA18A7-7ACD-4792-B039-6C620A151BAD}" + - IDR_Report_Field__has_title__Translation: "{6780BFC2-DBC0-40AE-83EE-BFEF979F0054}" - IDR_Content_Page_Component__gets_content_from__Method: "{0E002E6F-AA79-457C-93B8-2CCE1AEF5F7E}" - IDR_Method__provides_content_for__Content_Page_Component: "{5E75000D-2421-4AD4-9E5F-B9FDD9CB4744}" diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00020-NumericAttribute.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00020-NumericAttribute.yaml index 4497ec2..481615a 100644 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00020-NumericAttribute.yaml +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00020-NumericAttribute.yaml @@ -32,6 +32,9 @@ - numericAttribute: '&IDA_MaximumLength;' name: 'Maximum Length' index: 4 + - numericAttribute: '&IDA_MinimumLength;' + name: 'Minimum Length' + index: 8 - numericAttribute: '&IDA_WholeNumber;' name: 'Whole Number' decimalPositions: 0 diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00041-Application.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00041-Application.yaml index 11d3659..4101858 100644 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00041-Application.yaml +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00041-Application.yaml @@ -1,8 +1,26 @@ - entityDefinitions: - IDC_Application: '{06b6e9bc-812d-49fa-aab2-33654069f815}' + - IDR_Application__has_title__Translation: '{17e7437a-95bb-472f-a068-c433b715c3e4}' + - IDR_Translation__title_for__Application: '{79aca30e-ddf9-4d3b-8be7-80b4aaf82c1f}' + - library: '&IDL_MochaBaseSystem;' instances: - class: '&IDC_Application;' name: Application index: 41 + + + - relationship: '&IDR_Application__has_title__Translation;' + sourceClassId: '&IDC_Application;' + type: 'has title' + destinationClassId: '&IDC_Translation;' + siblingRelationshipId: '&IDR_Translation__title_for__Application;' + singular: yes + + - relationship: '&IDR_Translation__title_for__Application;' + sourceClassId: '&IDC_Translation;' + type: 'title for' + destinationClassId: '&IDC_Application;' + siblingRelationshipId: '&IDR_Application__has_title__Translation;' + singular: no diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00085-ReturnElementMethodBinding.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00085-ReturnElementMethodBinding.yaml new file mode 100644 index 0000000..0855a12 --- /dev/null +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00085-ReturnElementMethodBinding.yaml @@ -0,0 +1,28 @@ +--- +- library: '&IDL_MochaBaseSystem;' + instances: + - class: '&IDC_ReturnElementMethodBinding;' + name: Return Element Method Binding + index: 85 + customTagName: returnElementMethodBinding + superclasses: + - instance: '&IDC_MethodBinding;' + # - instance: '&IDC_ExecutableReturningElement;' + instancesLabeledByRAMB: '&IDMB_Method_Binding__get__Executes_Method_and_Method_Type_RAMB;' + # defaultTask: '&IDI_Task_ViewReturnElementMethodBinding;' + # relatedTasks: + # - instance: '&IDI_Task_ViewReturnElementMethodBinding;' + # - instance: '&IDI_Task_EditReturnElementMethodBinding;' + # - instance: '&IDI_Task_TestMethodBinding;' + # - instance: '&IDI_Task_CloneMethodBinding;' + translations: + - relationship: '&IDR_Class__has_title__Translation;' + values: + - languageInstanceId: '&IDI_Language_English;' + value: 'Return Element Method Binding' + relationships: # FIXME: remove this when we can properly inherit definitions in zq-python + - instance: '&IDR_Method_Binding__executes__Method;' + customTagName: 'executesMethod' + - instance: '&IDR_Method_Binding__has__Parameter_Assignment;' + customTagName: 'parameterAssignments' + customTagNameCreatesInstanceOf: '&IDC_ParameterAssignment;' diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00361-Tenant.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00361-Tenant.yaml index d522b8d..a96865e 100644 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00361-Tenant.yaml +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00361-Tenant.yaml @@ -1,3 +1,9 @@ +- entityDefinitions: + - IDR_Tenant__has_login_header__Translation: "{41D66ACB-AFDE-4B6F-892D-E66255F10DEB}" + - IDR_Translation__login_header_for__Tenant: "{c17cb672-22e1-43b7-af67-79175200631b}" + - IDR_Tenant__has_login_footer__Translation: "{A6203B6B-5BEB-4008-AE49-DB5E7DDBA45B}" + - IDR_Translation__login_footer_for__Tenant: "{5d4c15f9-fa08-4369-99df-585e1adfc9e4}" + - library: '&IDL_MochaBaseSystem;' instances: - class: '&IDC_Tenant;' @@ -9,4 +15,47 @@ - tenant: '&IDI_Tenant_Singleton;' index: 1 - \ No newline at end of file + + - relationship: '&IDR_Tenant__has__Application;' + sourceClassId: '&IDC_Tenant;' + type: 'has' + destinationClassId: '&IDC_Application;' + siblingRelationshipId: '&IDR_Application__for__Tenant;' + singular: yes + + - relationship: '&IDR_Application__for__Tenant;' + sourceClassId: '&IDC_Application;' + type: 'for' + destinationClassId: '&IDC_Tenant;' + siblingRelationshipId: '&IDR_Tenant__has__Application;' + singular: no + + - relationship: '&IDR_Tenant__has_login_header__Translation;' + sourceClassId: '&IDC_Tenant;' + type: 'has login header' + destinationClassId: '&IDC_Translation;' + siblingRelationshipId: '&IDR_Translation__login_header_for__Tenant;' + singular: yes + + - relationship: '&IDR_Translation__login_header_for__Tenant;' + sourceClassId: '&IDC_Translation;' + type: 'login header for' + destinationClassId: '&IDC_Tenant;' + siblingRelationshipId: '&IDR_Tenant__has_login_header__Translation;' + singular: no + + + - relationship: '&IDR_Tenant__has_login_footer__Translation;' + sourceClassId: '&IDC_Tenant;' + type: 'has login footer' + destinationClassId: '&IDC_Translation;' + siblingRelationshipId: '&IDR_Translation__login_footer_for__Tenant;' + singular: yes + + - relationship: '&IDR_Translation__login_footer_for__Tenant;' + sourceClassId: '&IDC_Translation;' + type: 'login footer for' + destinationClassId: '&IDC_Tenant;' + siblingRelationshipId: '&IDR_Tenant__has_login_footer__Translation;' + singular: no + diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00922-DerivedElementContent.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00922-DerivedElementContent.yaml new file mode 100644 index 0000000..e8f878a --- /dev/null +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00922-DerivedElementContent.yaml @@ -0,0 +1,37 @@ +--- +- entityDefinitions: + - IDC_DerivedElementContent: '{6c0b11ff-fea0-4376-a58a-e993fddd2f39}' + +- library: '&IDL_MochaBaseSystem;' + instances: + - class: '&IDC_DerivedElementContent;' + name: Derived Element Content + index: 922 + customTagName: 'derivedElementContent' + registerForTemplate: yes + defaultTask: '&IDI_Task_ViewElementContent;' + superclasses: + - instance: '&IDC_ElementContent;' + instancesLabeledByRAMB: '&IDMB_Element_Content__get__Fully_Qualified_Name;' + relatedTasks: + - instance: '&IDI_Task_ViewElementContent;' + - instance: '&IDI_Task_EditElementContent;' + relationships: + - instance: '&IDR_Element_Content__has__Instance;' + customTagName: 'defaultDataType' + - instance: '&IDR_Element_Content__has__Element_Content_Display_Option;' + customTagName: 'displayOptions' + - instance: '&IDR_Element_Content__has__Layout;' + customTagName: 'layout' + - instance: '&IDR_Element_Content__built_from__BEM_Process;' + customTagName: 'builtFromBEMProcess' + customTagNameCreatesInstanceOf: '&IDC_BEMProcess;' + - instance: '&IDR_Derived_Element_Content__update_with__Executable_returning_Work_Data;' + customTagName: 'value' + - instance: '&IDR_Element_Content__has__EC_Dynamic_Display_Option;' + customTagName: 'dynamicDisplayOptions' + customTagNameCreatesInstanceOf: '&IDC_ECDynamicDisplayOption;' + - instance: '&IDR_Element_Content__has__Parameter_Assignment;' + customTagName: 'parameterAssignments' + customTagNameCreatesInstanceOf: '&IDC_ParameterAssignment;' + \ No newline at end of file diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01502-Translation.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01502-Translation.yaml new file mode 100644 index 0000000..c95ba07 --- /dev/null +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01502-Translation.yaml @@ -0,0 +1,34 @@ +--- +- entityDefinitions: + - IDR_Translation__has__Translation_Value: '{F9B60C00-FF1D-438F-AC74-6EDFA8DD7324}' + - IDR_Translation_Value__for__Translation: '{458c218a-9965-44ba-884b-deda5bf2931d}' + +- library: '&IDL_MochaBaseSystem;' + instances: + - class: '&IDC_Translation;' + name: Translation + index: 1502 + registerForTemplate: yes + # customTagName: translation + # instancesLabeledByRAMB: '&IDMB_Method_Binding__get__Executes_Method_and_Method_Type_RAMB;' + # defaultTask: '&IDI_Task_ViewTranslation;' + # relatedTasks: + # - instance: '&IDI_Task_ViewTranslation;' + # - instance: '&IDI_Task_EditTranslation;' + relationships: # FIXME: remove this when we can properly inherit definitions in zq-python + - instance: '&IDR_Translation__has__Translation_Value;' + customTagName: 'values' + + - relationship: '&IDR_Translation__has__Translation_Value;' + sourceClassId: '&IDC_Translation;' + type: 'has' + destinationClassId: '&IDC_TranslationValue;' + siblingRelationshipId: '&IDR_Translation_Value__for__Translation;' + singular: no + + - relationship: '&IDR_Translation_Value__for__Translation;' + sourceClassId: '&IDC_TranslationValue;' + type: 'for' + destinationClassId: '&IDC_Translation;' + siblingRelationshipId: '&IDR_Translation__has__Translation_Value;' + singular: no diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01509-TranslationValue.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01509-TranslationValue.yaml new file mode 100644 index 0000000..33c3df8 --- /dev/null +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01509-TranslationValue.yaml @@ -0,0 +1,34 @@ +--- +- entityDefinitions: + - IDR_Translation_Value__has__Language: '{3655AEC2-E2C9-4DDE-8D98-0C4D3CE1E569}' + - IDR_Language__for__Translation_Value: '{bf885bb1-da84-447c-95dc-143ce9deac65}' + +- library: '&IDL_MochaBaseSystem;' + instances: + - class: '&IDC_TranslationValue;' + name: Translation Value + index: 1509 + registerForTemplate: yes + # customTagName: translation + # instancesLabeledByRAMB: '&IDMB_Method_Binding__get__Executes_Method_and_Method_Type_RAMB;' + # defaultTask: '&IDI_Task_ViewTranslation;' + # relatedTasks: + # - instance: '&IDI_Task_ViewTranslation;' + # - instance: '&IDI_Task_EditTranslation;' + relationships: # FIXME: remove this when we can properly inherit definitions in zq-python + - instance: '&IDR_Translation_Value__has__Language;' + customTagName: 'language' + + - relationship: '&IDR_Translation_Value__has__Language;' + sourceClassId: '&IDC_TranslationValue;' + type: 'has' + destinationClassId: '&IDC_Language;' + siblingRelationshipId: '&IDR_Language__for__Translation_Value;' + singular: yes + + - relationship: '&IDR_Language__for__Translation_Value;' + sourceClassId: '&IDC_Language;' + type: 'for' + destinationClassId: '&IDC_TranslationValue;' + siblingRelationshipId: '&IDR_Translation_Value__has__Language;' + singular: no diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Elements/000000-LoginPageSubedit.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Elements/000000-LoginPageSubedit.yaml index f13c3cc..c8a33cb 100644 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Elements/000000-LoginPageSubedit.yaml +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Elements/000000-LoginPageSubedit.yaml @@ -15,6 +15,11 @@ # use ' base64 -w 0 < file.svg | xc ' to copy base64 converted file #data: 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9InN2Zzg3MCIgd2lkdGg9IjIzMC4xNTk4OG1tIiBoZWlnaHQ9IjIzMC4wNzI2Nm1tIiB2aWV3Qm94PSIwIDAgODY5Ljg5NTYzIDg2OS41NjU5OSIgc29kaXBvZGk6ZG9jbmFtZT0iQ29mZmVlQ3VwLnN2ZyIgaW5rc2NhcGU6dmVyc2lvbj0iMS4xLjIgKDBhMDBjZjUzMzksIDIwMjItMDItMDQpIiB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxzY3JpcHQgeG1sbnM9IiIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ii8+CiAgPGRlZnMgaWQ9ImRlZnM4NzQiLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3IGlkPSJuYW1lZHZpZXc4NzIiIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgYm9yZGVyY29sb3I9IiM2NjY2NjYiIGJvcmRlcm9wYWNpdHk9IjEuMCIgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIgc2hvd2dyaWQ9ImZhbHNlIiBmaXQtbWFyZ2luLXRvcD0iNSIgZml0LW1hcmdpbi1sZWZ0PSI1IiBmaXQtbWFyZ2luLXJpZ2h0PSI1IiBmaXQtbWFyZ2luLWJvdHRvbT0iNSIgdW5pdHM9Im1tIiBpbmtzY2FwZTp6b29tPSIwLjY2NDc3Mjc3IiBpbmtzY2FwZTpjeD0iMzc2LjgyMDQ5IiBpbmtzY2FwZTpjeT0iMzc5LjA3NjkiIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTg1MiIgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iOTg5IiBpbmtzY2FwZTp3aW5kb3cteD0iNjgiIGlua3NjYXBlOndpbmRvdy15PSIyNyIgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0iZzg3NiIgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIi8+CiAgPGcgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIgaW5rc2NhcGU6bGFiZWw9IkltYWdlIiBpZD0iZzg3NiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTk3Ljk0OTAyNSwtNTQuMzE3MDUpIj4KICAgIDxwYXRoIHN0eWxlPSJmaWxsOiM0MDI1MDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjEuMzMzMzMiIGQ9Ik0gNDg2LjI0OTc1LDkwMy4xMjA2NSBDIDM1My40NjYyMSw4ODcuOTA4NTIgMjM3LjkxNzk1LDgxMS40MzE4NCAxNzAuMjU5Miw2OTMuOTc5MzcgMTQ4LjIzNzY4LDY1NS43NTEwMSAxMzAuNTIwMTEsNjA2LjU4NjQxIDEyMi44ODU3MSw1NjIuNTIyMzQgYyAtOC4wNTE0NCwtNDYuNDcxMSAtOC4wNTIwMiwtMTAwLjE2NzkxIC0wLjAwMiwtMTQ2LjY2NjY2IDIzLjE5OSwtMTMzLjk5NTcxIDExNS40ODQwNywtMjUxLjYwMTk2IDI0MS4xNTgwNCwtMzA3LjMyNjk2IDU0LjU1MTE4LC0yNC4xODg1MTIgMTA3Ljc1NDIzLC0zNS4zMTQwMzIgMTY4Ljg3NDI1LC0zNS4zMTQwMzIgNjEuMTIwMDEsMCAxMTQuMzIzMDYsMTEuMTI1NTIgMTY4Ljg3NDIzLDM1LjMxNDAzMiAxMjUuNjczOTcsNTUuNzI1IDIxNy45NTkwNCwxNzMuMzMxMjUgMjQxLjE1ODA0LDMwNy4zMjY5NiA4LjA1NDIyLDQ2LjUyMDUxIDcuOTkzOCwxMDMuNjE3MTIgLTAuMTU2NTgsMTQ4IC0xNC45MzQ3NSw4MS4zMjY5MyAtNTMuMDYyNjcsMTU1LjEwMzg0IC0xMTEuMjA1MzUsMjE1LjE4MDUxIC02Ny41NzAzNCw2OS44MTc5MiAtMTU2LjYzMzUyLDExMy40NjAzOCAtMjUzLjMzNzAxLDEyNC4xMzkzNiAtMjIuMDY0MTMsMi40MzY2IC03MC41MDQ2NCwyLjQwNzYgLTkyLjAwMDAxLC0wLjA1NSB6IG0gOTYuMTY2NDksLTYzLjc4Nzk0IGMgODAuNDQ3NzYsLTEyLjcxNTYgMTQ2LjUwODcsLTQ2LjA1MTk1IDIwMS40NjAxNSwtMTAxLjY2Mjg3IDUzLjY0OTAxLC01NC4yOTI4NSA4Ni4wMDAxLC0xMTguNDA5NDYgOTguNjg0NTQsLTE5NS41ODI3OSA0LjIwMSwtMjUuNTU5MjggNC4yMDEsLTgwLjIzNjggMCwtMTA1Ljc5NjA4IEMgODY5Ljg3NjQ5LDM1OS4xMTc2NCA4MzcuNTI1NCwyOTUuMDAxMDIgNzgzLjg3NjM5LDI0MC43MDgxOCA3MjcuOTUzNzYsMTg0LjExNDQyIDY1OS42MTI1NSwxNTAuMTg1NjIgNTc3LjU4MzEsMTM4LjI5MTQ0IGMgLTE1Ljk0NTQ3LC0yLjMxMjA4IC03My4zODc4NywtMi4zMTIwOCAtODkuMzMzMzUsMCAtODIuMDI5NDUsMTEuODk0MTggLTE1MC4zNzA2Nyw0NS44MjI5OCAtMjA2LjI5MzMsMTAyLjQxNjc0IC01My42NDkwMSw1NC4yOTI4NCAtODYuMDAwMSwxMTguNDA5NDYgLTk4LjY4NDU0LDE5NS41ODI3OSAtNC4yMDEsMjUuNTU5MjggLTQuMjAxLDgwLjIzNjggMCwxMDUuNzk2MDggMTIuNjg0NDQsNzcuMTczMzMgNDUuMDM1NTMsMTQxLjI4OTk0IDk4LjY4NDU0LDE5NS41ODI3OSA1OS45NDAwNSw2MC42NTkzOSAxMzMuMTg5OTMsOTQuOTQzNTUgMjIyLjI5MzMxLDEwNC4wNDMwMyAxMS44NjUzNSwxLjIxMTcyIDY1LjgzOTc1LC0wLjQzMTggNzguMTY2NDgsLTIuMzgwMTYgeiBtIC04NC44MzMxNSwtNTUuNTA0MjcgYyAtNzkuNjg2NzYsLTUuMzk4MzYgLTEzNS40MzkzNywtMjAuMjk4ODUgLTE0NC44MTcwNSwtMzguNzAzOTMgLTMuMDIxMTksLTUuOTI5NTUgLTIuMDM2NiwtMTAuNjQ3NDUgMy4zODc2LC0xNi4yMzI1OSA3LjE4NjMzLC03LjM5OTUyIDI5LjIzNTQ4LC0xNy4zNTk1IDQ0Ljc2Mjc4LC0yMC4yMjAxMiA0LjEwMDQ3LC0wLjc1NTQ0IDQuMzQ5MzksLTAuNjU0ODkgMi4wNTE2NCwwLjgyODcyIC0xMC42NjY5Niw2Ljg4NzQ3IC0xMy4wNzYyNCwxNC45NTg0OCAtNi4zODAyNiwyMS4zNzM2NCA3LjY5NTA0LDcuMzcyMzEgMzEuMjgzODQsMTUuNTE3MjcgNTguNjI2MTQsMjAuMjQyOTggNDMuNDM2ODQsNy41MDc0MSAxMTQuNzQzNDIsOC4zMzYyMiAxNjUuNzAyNDksMS45MjYgMjUuNjY1NjUsLTMuMjI4NTIgNTQuNDEwNjIsLTEwLjk5MTgyIDY2LjEzMDczLC0xNy44NjAyNiAxMy4yNjg2OCwtNy43NzU5NiAxMy4yMjk2LC0xNS4zMjUzNCAtMC4xMzA2NywtMjUuMjU5NTcgLTMuODYxMTcsLTIuODcxMDMgLTAuOTIzNDgsLTIuNTIwNTMgMTEuNTk3ODQsMS4zODM3MSA1MS44NTk4OCwxNi4xNzAyOSA1Mi44NTcxOCwzOC45ODMyNSAyLjQwMjE2LDU0Ljk0OTQ0IC0yMi45ODM5NCw3LjI3MzEzIC00OC40MjEwNCwxMS45MTQxIC04NS42NTgwOSwxNS42MjgyNCAtMjQuNDM2NTcsMi40MzczNyAtOTMuNTM5NTgsMy41Nzg4IC0xMTcuNjc1MjUsMS45NDM3NCB6IG0gMjIuNTMxNywtNTkuMjQ3OSBjIC0zNy40MzY2NSwtNS44MTU1NCAtNjguOTI2OTEsLTI0Ljk0Nzk5IC04Ny43NTg3NSwtNTMuMzE5MzcgLTMuNzQzMTksLTUuNjM5MzQgLTYuMzcyODgsLTguMDU3MDIgLTEwLjU0NjQyLC05LjY5NjExIC0yMi45NjYyOSwtOS4wMTk2NCAtNDkuMjAyNjQsLTI1Ljk5OTQ0IC02NS41NTk4NiwtNDIuNDI5NDMgLTEyLjg2NzQ2LC0xMi45MjQ2OSAtMTguOTg1NjMsLTIyLjAxMDYxIC0yNC40MzczMSwtMzYuMjkxMjIgLTMuMDA1NjIsLTcuODczMTkgLTMuNDM5NjQsLTExLjA2MTA1IC0zLjQ5NzA5LC0yNS42ODY4NCAtMC4wNjAzLC0xNS4zMjYxNSAwLjIxMjg3LC0xNy4yNDMyOCAzLjMyMzYsLTIzLjMzMzMzIDMuNzk1NSwtNy40MzA3IDEyLjU4MTY5LC0xNC4yMzkxNSAyMS43MzQzNCwtMTYuODQyMDMgNi4wNjIwNCwtMS43MjM5NSAyNy40NjA3NSwtMi4yMDU2NSAzMy4wNDAyOCwtMC43NDM3NiAzLjM2NzgyLDAuODgyMzkgMy41MzA5NSwwLjY2MTY4IDQuNDEwMjgsLTUuOTY3MDUgMC43Mzc3MiwtNS41NjEyNyAxLjg5MjU2LC03Ljg2Mjc4IDYuMDEyNjQsLTExLjk4Mjg2IGwgNS4wOTk1NCwtNS4wOTk1MyBoIDE0NC4yMjMwNyBjIDE1Ni41NDI3NiwwIDE0Ny41MzgwOSwtMC40MjYyOCAxNTQuNzU3MzIsNy4zMjYxNiAzLjE3ODQ5LDMuNDEzMjggMy4zMjc0OCw0LjMwMTY3IDMuMjA3NTUsMTkuMTI2NjkgLTAuMTk3OTYsMjQuNDcxNjYgLTYuMTA5NjIsNTcuNzE5ODQgLTE1LjQ0NzY5LDg2Ljg4MDQ4IC0xNS45OTMwOCw0OS45NDI2NyAtNDQuMzE0NTQsODcuNDk0NDEgLTc5LjM4OTk4LDEwNS4yNjQwOCAtMjUuNDUwMzMsMTIuODkzNDUgLTU4LjI0MzYxLDE3LjU5ODU2IC04OS4xNzE1MiwxMi43OTQxMiB6IG0gOTYuODAxNjgsLTUzLjYwMzc3IGMgMTUuNjk2OTYsLTE2Ljc4MDExIDI3LjQ1MTMyLC0zNy43MTkwMyAzNi43MzkzMiwtNjUuNDQ2NTEgNy4yMTAxOCwtMjEuNTI0NTYgMTMuODg0NjIsLTU4LjI5ODUyIDEzLjkxNjM3LC03Ni42NzQ1OCBsIDAuMDEwOSwtNi4zMzMzNCBoIC04LjY2NjY2IC04LjY2NjY3IHYgMTkuOTMxNzEgYyAwLDQwLjIzOTA3IC03LjMwOSw3My42MzcwNCAtMjIuODU4ODQsMTA0LjQ1MTg5IC01LjA4ODkzLDEwLjA4NDY1IC0xNS43MjEwMywyNi4wMDkxMSAtMjIuMjkxNDcsMzMuMzg3NTUgLTQuODAxMDgsNS4zOTE0OSAtNC44MDgyOSw1LjQxNzEzIC0wLjcxOTg0LDIuNTU4MjQgMi4yNzE0MiwtMS41ODgzMiA3LjkxMywtNi45MzIwNiAxMi41MzY4NiwtMTEuODc0OTYgeiBtIC0yMDAuNTQ2MTUsLTUwLjcxMjQgYyAtMS4xMjgwNiwtMTEuMDEwNTUgLTEwLjg5NDUyLC00OS45MTQ0MSAtMTQuNDA1ODMsLTU3LjM4NDQgLTEuNDkyLC0zLjE3NDA4IC01LjM1MTQxLC04LjcwNTkzIC04LjU3NjQ5LC0xMi4yOTI5OSAtMTAuNDk3MTgsLTExLjY3NTM4IC0yMi41OTMxNCwtMTQuOTcyNjIgLTMzLjA5ODgyLC05LjAyMjQgLTEyLjM5NzQyLDcuMDIxNjcgLTE1LjA5MjE4LDIxLjA3Njg0IC03LjEwODg2LDM3LjA3ODE0IDguMjI5NjUsMTYuNDk1MDMgNDEuNDYzMjUsNDYuNDQwODIgNTUuNzM2MSw1MC4yMjIxIDcuNjM4MTgsMi4wMjM1NyA4LjQ0Njc4LDEuMDkwNiA3LjQ1MzksLTguNjAwNDUgeiBtIDEyMi41NDYxMSwtMTQ3LjAxODggYyAtMzEuMzUwNDQsLTguMjc0MDUgLTUyLjA3NTYsLTIyLjExMjc3IC02MC44MzAwMSwtNDAuNjE3NzcgLTkuOTc4NzUsLTIxLjA5Mjk3IC0wLjk1OTcxLC0zNS41NzU4OSA0Ni44MzAwMSwtNzUuMjAwMzYgNTUuOTY2NzksLTQ2LjQwNDQzIDY3LjU4MDM3LC02NC4yNzM2OSA1Ni44ODExNSwtODcuNTIwMTkgLTcuNDYyNjQsLTE2LjIxNDI4IC0yMy4xMzk4MywtMzEuODkxNzUgLTQ4LjEzNjk1LC00OC4xMzc3OSAtMTIuMzc0MjUsLTguMDQyMjQgLTQwLjY5Njk0LC0yMy4wMTg4OCAtNDguNjI3MDksLTI1LjcxMzMzIC0yLjUwMjI0LC0wLjg1MDIgLTQuMjMyNTcsLTEuODYyNzcgLTMuODQ1MTcsLTIuMjUwMTcgMC45OTk3MywtMC45OTk3NSAyNC4zMDAwNiw0LjE5MjM4IDQyLjQ1MDY5LDkuNDU5NSA3MS44Mjc5NywyMC44NDM3MiAxMDguNzgzNDcsNTIuNjE4NjggOTkuMzA5MTUsODUuMzg3NzIgLTYuMjgyNTcsMjEuNzI5NzEgLTI2LjU0NzU0LDQyLjg3NzU3IC04Ni42OTg0NSw5MC40NzU2MyAtMjMuMzg2MDIsMTguNTA1NjMgLTM3LjY2NDY1LDMyLjQ4NzQzIC00MS4xNjQxNSw0MC4zMDg0OCAtNC45MDY5LDEwLjk2NjQyIDAuNTQwNjIsMjQuMzMxNDQgMTQuMjAxNDcsMzQuODQyMSA3LjQzMzI0LDUuNzE5MTMgMjQuODQ4MDcsMTQuODEzNzQgMzMuNjI5MzUsMTcuNTYyMzcgNS4xMzkxMiwxLjYwODYgOS4zMDc3MSw0LjA5NzQ0IDYuNiwzLjk0MDUgLTAuNjk2NjcsLTAuMDQwNCAtNS40NjY2NywtMS4xODE4OSAtMTAuNiwtMi41MzY2OSB6IG0gLTQuMDUxOTMsLTIwLjM4OTg5IGMgLTguOTAyNywtMTAuMjQwNDcgLTExLjI4MzMxLC0yMC45NzM0IC02Ljc2NDI4LC0zMC40OTY1MyAzLjQ1OTM3LC03LjI5MDA4IDIwLjE0MDg4LC0yMi45Nzg1OCA0OC44MTYyMSwtNDUuOTEwMzEgNDguODM1MzYsLTM5LjA1MzczIDY1LjAzODUyLC01NS4xMzExMyA3NC4zMjY1MiwtNzMuNzQ5NjUgNi43MjA4LC0xMy40NzIzOCA3LjQyMDc3LC0yMy40NTA4NSAyLjQxMzA2LC0zNC4zOTk3NiAtMS45NTYzNiwtNC4yNzc0IC00LjkwMzEsLTkuMjc3MDkgLTYuNTQ4MzIsLTExLjExMDQyIC0xLjY0NTIxLC0xLjgzMzM0IC0zLjg2MTI5LC00LjUwNDcgLTQuOTI0NjEsLTUuOTM2MzggLTQuMjY4MjgsLTUuNzQ2ODIgNC40NjI5MywxLjc3MTkgMTAuMzE4Miw4Ljg4NTM0IDI2LjU4ODE5LDMyLjMwMTQ2IDEyLjI2ODU2LDU4LjUwMzQ5IC02Ni4yNTE1MiwxMjEuMjI2ODggLTUzLjgzNzY5LDQzLjAwNjYyIC01OS45NjU5OCw1Mi4wNzQzNiAtNDcuOTczNjQsNzAuOTg0MzQgNC44OTkxOCw3LjcyNTE3IDMuMDk2NjgsNy45OTI3OCAtMy40MTE2MiwwLjUwNjQ5IHogbSAtNzcuOTA0MywtMTkuODQ5NjMgYyAtMy45OTM1OSwtNi40NzIyNSAtNi45ODE0MywtMTcuNTY1ODggLTUuOTMxMzQsLTIyLjAyMjYxIDMuMzEyMDMsLTE0LjA1Njc1IDE4LjYyNzY1LC0zMS4wODAyNyA1NS4yMDY5NCwtNjEuMzYzMjYgMjYuNDkzNzQsLTIxLjkzMzQ2IDM3LjE5Mzk5LC0zMi4wNjY5MiA0NS4zNzcwNCwtNDIuOTczNDQgMTAuNDI5MSwtMTMuOTAwMDkgMTMuMTI3OTgsLTI1Ljg0NDY3IDguNDcwMDIsLTM3LjQ4NjA3IC0zLjQ3NTM0LC04LjY4NTczIC0xLjA2ODk4LC03LjY3MTcgMy43MDIxOCwxLjU2MDA4IDMuNzIyMjQsNy4yMDIyMiA0LjM3NjgzLDkuODYzNjMgNC4zNzgzNiwxNy44MDE1OSAwLjAwMywxMS4zMTk3MyAtMy4xMzQ1LDE4LjA5MzE3IC0xNC43ODM0NiwzMS45MjM2NCAtNy4xNDMsOC40ODA3IC0xNi40MjUyNCwxNi44MDc2NCAtNjAuNjg1ODUsNTQuNDQwMjMgLTI5LjY2NTg0LDI1LjIyMzM5IC0zOS44MTY2OCw0Mi4wNTUwNiAtMzMuOTAxMDUsNTYuMjEzMTYgMi43NjkwNSw2LjYyNzI4IDEuNzQwMjgsNy42OTc1IC0xLjgzMjg0LDEuOTA2NjggeiIgaWQ9InBhdGgxNDgyIiBzb2RpcG9kaTpub2RldHlwZXM9ImNzc2Nzc3Nzc3NzY2Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NjY3Nzc3Njc3Nzc3Nzc3NzY2Njc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzY3Nzc3MiLz4KICA8L2c+Cjwvc3ZnPg==' data: 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZzpzdmcKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODcwIgogICB3aWR0aD0iMjMwLjE1OTg4bW0iCiAgIGhlaWdodD0iMjMwLjA3MjY2bW0iCiAgIHZpZXdCb3g9IjAgMCA4NjkuODk1NjMgODY5LjU2NTk5IgogICBzb2RpcG9kaTpkb2NuYW1lPSJsb2dvLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHNjcmlwdAogICAgIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KICA8c3ZnOmRlZnMKICAgICBpZD0iZGVmczg3NCI+CiAgICA8c3ZnOmxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ4NjkiPgogICAgICA8c3ZnOnN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmYzA2MTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A4NjUiIC8+CiAgICAgIDxzdmc6c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojODA0YjAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDg2NyIgLz4KICAgIDwvc3ZnOmxpbmVhckdyYWRpZW50PgogICAgPHN2ZzpyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50ODY5IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50ODcxIgogICAgICAgY3g9IjYzMC43MjUxIgogICAgICAgY3k9IjQxMi40ODM0OSIKICAgICAgIGZ4PSI2MzAuNzI1MSIKICAgICAgIGZ5PSI0MTIuNDgzNDkiCiAgICAgICByPSI0MTYuMDUwMTYiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuOTk5NjAzODcsMCwwLjE5Mzc0NjA1KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogIDwvc3ZnOmRlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJuYW1lZHZpZXc4NzIiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjUiCiAgICAgZml0LW1hcmdpbi1sZWZ0PSI1IgogICAgIGZpdC1tYXJnaW4tcmlnaHQ9IjUiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjUiCiAgICAgdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOnpvb209IjAuNTczOTY2NjgiCiAgICAgaW5rc2NhcGU6Y3g9IjM5Ni4zNjQ0NyIKICAgICBpbmtzY2FwZTpjeT0iMzc1LjQ1NzM0IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTQ1MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI3NTIiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEzNCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMTE0IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0iZzg3NiIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIiAvPgogIDxzdmc6ZwogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkltYWdlIgogICAgIGlkPSJnODc2IgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05Ny45NDkwMjUsLTU0LjMxNzA1KSI+CiAgICA8c3ZnOnBhdGgKICAgICAgIHN0eWxlPSJmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQ4NzEpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDoxLjMzMzMzIgogICAgICAgZD0iTSA0ODYuMjQ5NzUsOTAzLjEyMDY1IEMgMzUzLjQ2NjIxLDg4Ny45MDg1MiAyMzcuOTE3OTUsODExLjQzMTg0IDE3MC4yNTkyLDY5My45NzkzNyAxNDguMjM3NjgsNjU1Ljc1MTAxIDEzMC41MjAxMSw2MDYuNTg2NDEgMTIyLjg4NTcxLDU2Mi41MjIzNCBjIC04LjA1MTQ0LC00Ni40NzExIC04LjA1MjAyLC0xMDAuMTY3OTEgLTAuMDAyLC0xNDYuNjY2NjYgMjMuMTk5LC0xMzMuOTk1NzEgMTE1LjQ4NDA3LC0yNTEuNjAxOTYgMjQxLjE1ODA0LC0zMDcuMzI2OTYgNTQuNTUxMTgsLTI0LjE4ODUxMiAxMDcuNzU0MjMsLTM1LjMxNDAzMiAxNjguODc0MjUsLTM1LjMxNDAzMiA2MS4xMjAwMSwwIDExNC4zMjMwNiwxMS4xMjU1MiAxNjguODc0MjMsMzUuMzE0MDMyIDEyNS42NzM5Nyw1NS43MjUgMjE3Ljk1OTA0LDE3My4zMzEyNSAyNDEuMTU4MDQsMzA3LjMyNjk2IDguMDU0MjIsNDYuNTIwNTEgNy45OTM4LDEwMy42MTcxMiAtMC4xNTY1OCwxNDggLTE0LjkzNDc1LDgxLjMyNjkzIC01My4wNjI2NywxNTUuMTAzODQgLTExMS4yMDUzNSwyMTUuMTgwNTEgLTY3LjU3MDM0LDY5LjgxNzkyIC0xNTYuNjMzNTIsMTEzLjQ2MDM4IC0yNTMuMzM3MDEsMTI0LjEzOTM2IC0yMi4wNjQxMywyLjQzNjYgLTcwLjUwNDY0LDIuNDA3NiAtOTIuMDAwMDEsLTAuMDU1IHogbSA5Ni4xNjY0OSwtNjMuNzg3OTQgYyA4MC40NDc3NiwtMTIuNzE1NiAxNDYuNTA4NywtNDYuMDUxOTUgMjAxLjQ2MDE1LC0xMDEuNjYyODcgNTMuNjQ5MDEsLTU0LjI5Mjg1IDg2LjAwMDEsLTExOC40MDk0NiA5OC42ODQ1NCwtMTk1LjU4Mjc5IDQuMjAxLC0yNS41NTkyOCA0LjIwMSwtODAuMjM2OCAwLC0xMDUuNzk2MDggQyA4NjkuODc2NDksMzU5LjExNzY0IDgzNy41MjU0LDI5NS4wMDEwMiA3ODMuODc2MzksMjQwLjcwODE4IDcyNy45NTM3NiwxODQuMTE0NDIgNjU5LjYxMjU1LDE1MC4xODU2MiA1NzcuNTgzMSwxMzguMjkxNDQgYyAtMTUuOTQ1NDcsLTIuMzEyMDggLTczLjM4Nzg3LC0yLjMxMjA4IC04OS4zMzMzNSwwIC04Mi4wMjk0NSwxMS44OTQxOCAtMTUwLjM3MDY3LDQ1LjgyMjk4IC0yMDYuMjkzMywxMDIuNDE2NzQgLTUzLjY0OTAxLDU0LjI5Mjg0IC04Ni4wMDAxLDExOC40MDk0NiAtOTguNjg0NTQsMTk1LjU4Mjc5IC00LjIwMSwyNS41NTkyOCAtNC4yMDEsODAuMjM2OCAwLDEwNS43OTYwOCAxMi42ODQ0NCw3Ny4xNzMzMyA0NS4wMzU1MywxNDEuMjg5OTQgOTguNjg0NTQsMTk1LjU4Mjc5IDU5Ljk0MDA1LDYwLjY1OTM5IDEzMy4xODk5Myw5NC45NDM1NSAyMjIuMjkzMzEsMTA0LjA0MzAzIDExLjg2NTM1LDEuMjExNzIgNjUuODM5NzUsLTAuNDMxOCA3OC4xNjY0OCwtMi4zODAxNiB6IG0gLTg0LjgzMzE1LC01NS41MDQyNyBjIC03OS42ODY3NiwtNS4zOTgzNiAtMTM1LjQzOTM3LC0yMC4yOTg4NSAtMTQ0LjgxNzA1LC0zOC43MDM5MyAtMy4wMjExOSwtNS45Mjk1NSAtMi4wMzY2LC0xMC42NDc0NSAzLjM4NzYsLTE2LjIzMjU5IDcuMTg2MzMsLTcuMzk5NTIgMjkuMjM1NDgsLTE3LjM1OTUgNDQuNzYyNzgsLTIwLjIyMDEyIDQuMTAwNDcsLTAuNzU1NDQgNC4zNDkzOSwtMC42NTQ4OSAyLjA1MTY0LDAuODI4NzIgLTEwLjY2Njk2LDYuODg3NDcgLTEzLjA3NjI0LDE0Ljk1ODQ4IC02LjM4MDI2LDIxLjM3MzY0IDcuNjk1MDQsNy4zNzIzMSAzMS4yODM4NCwxNS41MTcyNyA1OC42MjYxNCwyMC4yNDI5OCA0My40MzY4NCw3LjUwNzQxIDExNC43NDM0Miw4LjMzNjIyIDE2NS43MDI0OSwxLjkyNiAyNS42NjU2NSwtMy4yMjg1MiA1NC40MTA2MiwtMTAuOTkxODIgNjYuMTMwNzMsLTE3Ljg2MDI2IDEzLjI2ODY4LC03Ljc3NTk2IDEzLjIyOTYsLTE1LjMyNTM0IC0wLjEzMDY3LC0yNS4yNTk1NyAtMy44NjExNywtMi44NzEwMyAtMC45MjM0OCwtMi41MjA1MyAxMS41OTc4NCwxLjM4MzcxIDUxLjg1OTg4LDE2LjE3MDI5IDUyLjg1NzE4LDM4Ljk4MzI1IDIuNDAyMTYsNTQuOTQ5NDQgLTIyLjk4Mzk0LDcuMjczMTMgLTQ4LjQyMTA0LDExLjkxNDEgLTg1LjY1ODA5LDE1LjYyODI0IC0yNC40MzY1NywyLjQzNzM3IC05My41Mzk1OCwzLjU3ODggLTExNy42NzUyNSwxLjk0Mzc0IHogbSAyMi41MzE3LC01OS4yNDc5IGMgLTM3LjQzNjY1LC01LjgxNTU0IC02OC45MjY5MSwtMjQuOTQ3OTkgLTg3Ljc1ODc1LC01My4zMTkzNyAtMy43NDMxOSwtNS42MzkzNCAtNi4zNzI4OCwtOC4wNTcwMiAtMTAuNTQ2NDIsLTkuNjk2MTEgLTIyLjk2NjI5LC05LjAxOTY0IC00OS4yMDI2NCwtMjUuOTk5NDQgLTY1LjU1OTg2LC00Mi40Mjk0MyAtMTIuODY3NDYsLTEyLjkyNDY5IC0xOC45ODU2MywtMjIuMDEwNjEgLTI0LjQzNzMxLC0zNi4yOTEyMiAtMy4wMDU2MiwtNy44NzMxOSAtMy40Mzk2NCwtMTEuMDYxMDUgLTMuNDk3MDksLTI1LjY4Njg0IC0wLjA2MDMsLTE1LjMyNjE1IDAuMjEyODcsLTE3LjI0MzI4IDMuMzIzNiwtMjMuMzMzMzMgMy43OTU1LC03LjQzMDcgMTIuNTgxNjksLTE0LjIzOTE1IDIxLjczNDM0LC0xNi44NDIwMyA2LjA2MjA0LC0xLjcyMzk1IDI3LjQ2MDc1LC0yLjIwNTY1IDMzLjA0MDI4LC0wLjc0Mzc2IDMuMzY3ODIsMC44ODIzOSAzLjUzMDk1LDAuNjYxNjggNC40MTAyOCwtNS45NjcwNSAwLjczNzcyLC01LjU2MTI3IDEuODkyNTYsLTcuODYyNzggNi4wMTI2NCwtMTEuOTgyODYgbCA1LjA5OTU0LC01LjA5OTUzIGggMTQ0LjIyMzA3IGMgMTU2LjU0Mjc2LDAgMTQ3LjUzODA5LC0wLjQyNjI4IDE1NC43NTczMiw3LjMyNjE2IDMuMTc4NDksMy40MTMyOCAzLjMyNzQ4LDQuMzAxNjcgMy4yMDc1NSwxOS4xMjY2OSAtMC4xOTc5NiwyNC40NzE2NiAtNi4xMDk2Miw1Ny43MTk4NCAtMTUuNDQ3NjksODYuODgwNDggLTE1Ljk5MzA4LDQ5Ljk0MjY3IC00NC4zMTQ1NCw4Ny40OTQ0MSAtNzkuMzg5OTgsMTA1LjI2NDA4IC0yNS40NTAzMywxMi44OTM0NSAtNTguMjQzNjEsMTcuNTk4NTYgLTg5LjE3MTUyLDEyLjc5NDEyIHogbSA5Ni44MDE2OCwtNTMuNjAzNzcgYyAxNS42OTY5NiwtMTYuNzgwMTEgMjcuNDUxMzIsLTM3LjcxOTAzIDM2LjczOTMyLC02NS40NDY1MSA3LjIxMDE4LC0yMS41MjQ1NiAxMy44ODQ2MiwtNTguMjk4NTIgMTMuOTE2MzcsLTc2LjY3NDU4IGwgMC4wMTA5LC02LjMzMzM0IGggLTguNjY2NjYgLTguNjY2NjcgdiAxOS45MzE3MSBjIDAsNDAuMjM5MDcgLTcuMzA5LDczLjYzNzA0IC0yMi44NTg4NCwxMDQuNDUxODkgLTUuMDg4OTMsMTAuMDg0NjUgLTE1LjcyMTAzLDI2LjAwOTExIC0yMi4yOTE0NywzMy4zODc1NSAtNC44MDEwOCw1LjM5MTQ5IC00LjgwODI5LDUuNDE3MTMgLTAuNzE5ODQsMi41NTgyNCAyLjI3MTQyLC0xLjU4ODMyIDcuOTEzLC02LjkzMjA2IDEyLjUzNjg2LC0xMS44NzQ5NiB6IG0gLTIwMC41NDYxNSwtNTAuNzEyNCBjIC0xLjEyODA2LC0xMS4wMTA1NSAtMTAuODk0NTIsLTQ5LjkxNDQxIC0xNC40MDU4MywtNTcuMzg0NCAtMS40OTIsLTMuMTc0MDggLTUuMzUxNDEsLTguNzA1OTMgLTguNTc2NDksLTEyLjI5Mjk5IC0xMC40OTcxOCwtMTEuNjc1MzggLTIyLjU5MzE0LC0xNC45NzI2MiAtMzMuMDk4ODIsLTkuMDIyNCAtMTIuMzk3NDIsNy4wMjE2NyAtMTUuMDkyMTgsMjEuMDc2ODQgLTcuMTA4ODYsMzcuMDc4MTQgOC4yMjk2NSwxNi40OTUwMyA0MS40NjMyNSw0Ni40NDA4MiA1NS43MzYxLDUwLjIyMjEgNy42MzgxOCwyLjAyMzU3IDguNDQ2NzgsMS4wOTA2IDcuNDUzOSwtOC42MDA0NSB6IG0gMTIyLjU0NjExLC0xNDcuMDE4OCBjIC0zMS4zNTA0NCwtOC4yNzQwNSAtNTIuMDc1NiwtMjIuMTEyNzcgLTYwLjgzMDAxLC00MC42MTc3NyAtOS45Nzg3NSwtMjEuMDkyOTcgLTAuOTU5NzEsLTM1LjU3NTg5IDQ2LjgzMDAxLC03NS4yMDAzNiA1NS45NjY3OSwtNDYuNDA0NDMgNjcuNTgwMzcsLTY0LjI3MzY5IDU2Ljg4MTE1LC04Ny41MjAxOSAtNy40NjI2NCwtMTYuMjE0MjggLTIzLjEzOTgzLC0zMS44OTE3NSAtNDguMTM2OTUsLTQ4LjEzNzc5IC0xMi4zNzQyNSwtOC4wNDIyNCAtNDAuNjk2OTQsLTIzLjAxODg4IC00OC42MjcwOSwtMjUuNzEzMzMgLTIuNTAyMjQsLTAuODUwMiAtNC4yMzI1NywtMS44NjI3NyAtMy44NDUxNywtMi4yNTAxNyAwLjk5OTczLC0wLjk5OTc1IDI0LjMwMDA2LDQuMTkyMzggNDIuNDUwNjksOS40NTk1IDcxLjgyNzk3LDIwLjg0MzcyIDEwOC43ODM0Nyw1Mi42MTg2OCA5OS4zMDkxNSw4NS4zODc3MiAtNi4yODI1NywyMS43Mjk3MSAtMjYuNTQ3NTQsNDIuODc3NTcgLTg2LjY5ODQ1LDkwLjQ3NTYzIC0yMy4zODYwMiwxOC41MDU2MyAtMzcuNjY0NjUsMzIuNDg3NDMgLTQxLjE2NDE1LDQwLjMwODQ4IC00LjkwNjksMTAuOTY2NDIgMC41NDA2MiwyNC4zMzE0NCAxNC4yMDE0NywzNC44NDIxIDcuNDMzMjQsNS43MTkxMyAyNC44NDgwNywxNC44MTM3NCAzMy42MjkzNSwxNy41NjIzNyA1LjEzOTEyLDEuNjA4NiA5LjMwNzcxLDQuMDk3NDQgNi42LDMuOTQwNSAtMC42OTY2NywtMC4wNDA0IC01LjQ2NjY3LC0xLjE4MTg5IC0xMC42LC0yLjUzNjY5IHogbSAtNC4wNTE5MywtMjAuMzg5ODkgYyAtOC45MDI3LC0xMC4yNDA0NyAtMTEuMjgzMzEsLTIwLjk3MzQgLTYuNzY0MjgsLTMwLjQ5NjUzIDMuNDU5MzcsLTcuMjkwMDggMjAuMTQwODgsLTIyLjk3ODU4IDQ4LjgxNjIxLC00NS45MTAzMSA0OC44MzUzNiwtMzkuMDUzNzMgNjUuMDM4NTIsLTU1LjEzMTEzIDc0LjMyNjUyLC03My43NDk2NSA2LjcyMDgsLTEzLjQ3MjM4IDcuNDIwNzcsLTIzLjQ1MDg1IDIuNDEzMDYsLTM0LjM5OTc2IC0xLjk1NjM2LC00LjI3NzQgLTQuOTAzMSwtOS4yNzcwOSAtNi41NDgzMiwtMTEuMTEwNDIgLTEuNjQ1MjEsLTEuODMzMzQgLTMuODYxMjksLTQuNTA0NyAtNC45MjQ2MSwtNS45MzYzOCAtNC4yNjgyOCwtNS43NDY4MiA0LjQ2MjkzLDEuNzcxOSAxMC4zMTgyLDguODg1MzQgMjYuNTg4MTksMzIuMzAxNDYgMTIuMjY4NTYsNTguNTAzNDkgLTY2LjI1MTUyLDEyMS4yMjY4OCAtNTMuODM3NjksNDMuMDA2NjIgLTU5Ljk2NTk4LDUyLjA3NDM2IC00Ny45NzM2NCw3MC45ODQzNCA0Ljg5OTE4LDcuNzI1MTcgMy4wOTY2OCw3Ljk5Mjc4IC0zLjQxMTYyLDAuNTA2NDkgeiBtIC03Ny45MDQzLC0xOS44NDk2MyBjIC0zLjk5MzU5LC02LjQ3MjI1IC02Ljk4MTQzLC0xNy41NjU4OCAtNS45MzEzNCwtMjIuMDIyNjEgMy4zMTIwMywtMTQuMDU2NzUgMTguNjI3NjUsLTMxLjA4MDI3IDU1LjIwNjk0LC02MS4zNjMyNiAyNi40OTM3NCwtMjEuOTMzNDYgMzcuMTkzOTksLTMyLjA2NjkyIDQ1LjM3NzA0LC00Mi45NzM0NCAxMC40MjkxLC0xMy45MDAwOSAxMy4xMjc5OCwtMjUuODQ0NjcgOC40NzAwMiwtMzcuNDg2MDcgLTMuNDc1MzQsLTguNjg1NzMgLTEuMDY4OTgsLTcuNjcxNyAzLjcwMjE4LDEuNTYwMDggMy43MjIyNCw3LjIwMjIyIDQuMzc2ODMsOS44NjM2MyA0LjM3ODM2LDE3LjgwMTU5IDAuMDAzLDExLjMxOTczIC0zLjEzNDUsMTguMDkzMTcgLTE0Ljc4MzQ2LDMxLjkyMzY0IC03LjE0Myw4LjQ4MDcgLTE2LjQyNTI0LDE2LjgwNzY0IC02MC42ODU4NSw1NC40NDAyMyAtMjkuNjY1ODQsMjUuMjIzMzkgLTM5LjgxNjY4LDQyLjA1NTA2IC0zMy45MDEwNSw1Ni4yMTMxNiAyLjc2OTA1LDYuNjI3MjggMS43NDAyOCw3LjY5NzUgLTEuODMyODQsMS45MDY2OCB6IgogICAgICAgaWQ9InBhdGgxNDgyIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Njc3Nzc3Nzc2Njc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzY2Nzc3NzY3Nzc3Nzc3Nzc2NjY3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc2Nzc3NzIiAvPgogIDwvc3ZnOmc+Cjwvc3ZnOnN2Zz4K' + + # FIXME! :: Define an embedded MCX resource like this: + #data: + # resource: '' + # encoding: 'base64' contentType: 'image/svg+xml' contentEncoding: 'base64' # emits "background-image: url('data:$contentType;$contentEncoding,$data');" diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/001-Classes.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/001-Classes.yaml deleted file mode 100644 index c560b24..0000000 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/001-Classes.yaml +++ /dev/null @@ -1,3 +0,0 @@ -- entityDefinitions: - - IDC_Route: '{6c589422-3f1e-4402-afc7-27b6956aa588}' - - IDC_RouteTable: '{76e5ce90-5f64-4355-a0ee-f659cf615a63}' diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/002-Attributes.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/002-Attributes.yaml deleted file mode 100644 index 06b2f10..0000000 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/002-Attributes.yaml +++ /dev/null @@ -1,2 +0,0 @@ -- entityDefinitions: - - IDA_RouteURL: '{304d9fb0-a5fc-4503-b6e5-96842b856bb1}' diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/003-Relationships.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/003-Relationships.yaml deleted file mode 100644 index a599f88..0000000 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/000-EntityDefinitions/003-Relationships.yaml +++ /dev/null @@ -1,7 +0,0 @@ -- entityDefinitions: - - IDR_Route_Table__has__Route: '{551efe23-f97c-4e11-b5cc-e3c99117a9cc}' - - IDR_Route__for__Route_Table: '{1d38259e-b4f4-4bf9-a7ab-1cb09561bf3b}' - - - IDR_Tenant__has__Route_Table: '{1af6c245-2faa-4f31-9368-4148b3051c04}' - - IDR_Route_Table__for__Tenant: '{e55755c3-3574-41f5-b8e7-ed634050fe67}' - \ No newline at end of file diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/001-Classes/00434-Route.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/001-Classes/00434-Route.yaml new file mode 100644 index 0000000..ef382b5 --- /dev/null +++ b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/001-Classes/00434-Route.yaml @@ -0,0 +1,80 @@ +--- #definitions for YAML +- entityDefinitions: + - IDC_Route: '{6c589422-3f1e-4402-afc7-27b6956aa588}' + - IDC_RouteTable: '{76e5ce90-5f64-4355-a0ee-f659cf615a63}' + + - IDA_RouteURL: '{304d9fb0-a5fc-4503-b6e5-96842b856bb1}' + + - IDR_Route_Table__has__Route: '{551efe23-f97c-4e11-b5cc-e3c99117a9cc}' + - IDR_Route__for__Route_Table: '{1d38259e-b4f4-4bf9-a7ab-1cb09561bf3b}' + + - IDR_Tenant__has__Route_Table: '{1af6c245-2faa-4f31-9368-4148b3051c04}' + - IDR_Route_Table__for__Tenant: '{e55755c3-3574-41f5-b8e7-ed634050fe67}' + +- library: '&IDL_MochaWeb;' + instances: + - textAttribute: '&IDA_RouteURL;' + name: 'Route URL' + index: 438 + + - class: '&IDC_Route;' + name: Route + index: 434 + customTagName: 'route' + attributes: + - instance: '&IDA_Name;' + customTagName: 'name' + - instance: '&IDA_RouteURL;' + customTagName: 'url' + + - class: '&IDC_RouteTable;' + name: Route Table + index: 439 + customTagName: 'routeTable' + attributes: + - instance: '&IDA_Name;' + customTagName: 'name' + relationships: + - instance: '&IDR_Route_Table__has__Route;' + customTagName: 'routes' + + - relationship: '&IDR_Route_Table__has__Route;' + sourceClassId: '&IDC_RouteTable;' + type: 'has' + destinationClassId: '&IDC_Route;' + siblingRelationshipId: '&IDR_Route__for__Route_Table;' + singular: no + + - relationship: '&IDR_Route__for__Route_Table;' + sourceClassId: '&IDC_Route;' + type: 'for' + destinationClassId: '&IDC_RouteTable;' + siblingRelationshipId: '&IDR_Route_Table__has__Route;' + singular: no + + - relationship: '&IDR_Tenant__has__Route_Table;' + sourceClassId: '&IDC_Tenant;' + type: 'has' + destinationClassId: '&IDC_RouteTable;' + siblingRelationshipId: '&IDR_Route_Table__for__Tenant;' + singular: yes + + - relationship: '&IDR_Route_Table__for__Tenant;' + sourceClassId: '&IDC_RouteTable;' + type: 'for' + destinationClassId: '&IDC_Tenant;' + siblingRelationshipId: '&IDR_Tenant__has__Route_Table;' + singular: no + + - routeTable: '{641ea97b-a1c2-4005-9bda-c0111a254365}' + routes: + - instance: '{1184d102-0710-4632-bf64-6362b9485a0f}' + - instance: '{88de14b6-53ca-4394-8500-bd4120499875}' + + - route: '{1184d102-0710-4632-bf64-6362b9485a0f}' + name: MADI Authentication Gateway Login + url: 'madi/authgwy/{tenant}/login.htmld' + + - route: '{88de14b6-53ca-4394-8500-bd4120499875}' + name: MADI Authentication Gateway Login + url: 'madi/authgwy/{tenant}/login.htmld' diff --git a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/003-Classes/00434-Route.yaml b/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/003-Classes/00434-Route.yaml deleted file mode 100644 index 4f9b660..0000000 --- a/mocha-common/data/libraries/yaml/net.alcetech.Mocha.Web/003-Classes/00434-Route.yaml +++ /dev/null @@ -1,66 +0,0 @@ ---- #definitions for YAML -- textAttribute: '&IDA_RouteURL;' - name: 'Route URL' - index: 438 - -- instance: '&IDC_Route;' - name: Route - index: 434 - customTagName: 'route' - attributes: - - instance: '&IDA_Name;' - customTagName: 'name' - - instance: '&IDA_RouteURL;' - customTagName: 'url' - -- instance: '&IDC_RouteTable;' - name: Route Table - index: 439 - customTagName: 'routeTable' - attributes: - - instance: '&IDA_Name;' - customTagName: 'name' - relationships: - - instance: '&IDR_Route_Table__has__Route;' - customTagName: 'routes' - -- relationship: '&IDR_Route_Table__has__Route;' - sourceClassId: '&IDC_RouteTable;' - type: 'has' - destinationClassId: '&IDC_Route;' - siblingRelationshipId: '&IDR_Route__for__Route_Table;' - singular: no - -- relationship: '&IDR_Route__for__Route_Table;' - sourceClassId: '&IDC_Route;' - type: 'for' - destinationClassId: '&IDC_RouteTable;' - siblingRelationshipId: '&IDR_Route_Table__has__Route;' - singular: no - -- relationship: '&IDR_Tenant__has__Route_Table;' - sourceClassId: '&IDC_Tenant;' - type: 'has' - destinationClassId: '&IDC_RouteTable;' - siblingRelationshipId: '&IDR_Route_Table__for__Tenant;' - singular: yes - -- relationship: '&IDR_Route_Table__for__Tenant;' - sourceClassId: '&IDC_RouteTable;' - type: 'for' - destinationClassId: '&IDC_Tenant;' - siblingRelationshipId: '&IDR_Tenant__has__Route_Table;' - singular: no - -- routeTable: '{641ea97b-a1c2-4005-9bda-c0111a254365}' - routes: - - instance: '{1184d102-0710-4632-bf64-6362b9485a0f}' - - instance: '{88de14b6-53ca-4394-8500-bd4120499875}' - -- route: '{1184d102-0710-4632-bf64-6362b9485a0f}' - name: MADI Authentication Gateway Login - url: 'madi/authgwy/{tenant}/login.htmld' - -- route: '{88de14b6-53ca-4394-8500-bd4120499875}' - name: MADI Authentication Gateway Login - url: 'madi/authgwy/{tenant}/login.htmld' diff --git a/mocha-common/data/libraries/yaml/test/003-Relationship.yaml b/mocha-common/data/libraries/yaml/test/003-Relationship.yaml index 2d3945b..69b0cb7 100644 --- a/mocha-common/data/libraries/yaml/test/003-Relationship.yaml +++ b/mocha-common/data/libraries/yaml/test/003-Relationship.yaml @@ -17,7 +17,7 @@ - IDR_Relationship__has_destination__Class: "{F220F1C2-0499-4E87-A32E-BDBF80C1F8A4}" - IDR_Relationship__has_sibling__Relationship: "{656110FF-4502-48B8-A7F3-D07F017AEA3F}" - - IDR_Class__has_super__Class: "{100F0308-855D-4EC5-99FA-D8976CA20053}" + - IDR_Class__has_super__Class: "{100f0308-855d-4ec5-99fa-d8976ca20053}" - IDR_Class__has_sub__Class: "{C14BC80D-879C-4E6F-9123-E8DFB13F4666}" - relationship: '&IDR_Relationship__has_source__Class;'