Medical Imaging Interaction Toolkit  2018.4.99-936b789b
Medical Imaging Interaction Toolkit
mitkCustomTagParserTest.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 // Testing
14 #include "mitkTestFixture.h"
15 #include "mitkTestingMacros.h"
16 
17 // std includes
18 #include <string>
19 
20 // MITK includes
21 #include "mitkCustomTagParser.h"
22 #include "mitkCESTPropertyHelper.h"
24 
25 //itksys
26 #include <itksys/SystemTools.hxx>
27 #include <itkFileTools.h>
28 
29 // microservice includes
30 #include "usGetModuleContext.h"
31 #include "usModule.h"
32 #include "usModuleContext.h"
33 
34 // VTK includes
35 #include <vtkDebugLeaks.h>
36 
37 class mitkCustomTagParserTestSuite : public mitk::TestFixture
38 {
39  CPPUNIT_TEST_SUITE(mitkCustomTagParserTestSuite);
40 
41  // Test the dicom property parsing
42  MITK_TEST(ValidPropertyParsedToPropertyList_Success);
43  MITK_TEST(ValidPropertyMissingParametersParsedToEmptyPropertiesPropertyList_Success);
44  MITK_TEST(ValidPropertyRevisionVeryLow_UseDefault_Success);
45  MITK_TEST(ValidPropertyNoExactRevisionMatchUseInternal_Success);
46  MITK_TEST(ValidPropertyNoExactRevisionMatchUseExternal_Success);
47  MITK_TEST(ValidPropertyWindowsLineEndings_Success);
48  MITK_TEST(InvalidPropertyInvalidRevision_Failure);
49  MITK_TEST(InvalidPropertyNoCESTSequence_Failure);
50  MITK_TEST(InvalidPropertyGarbageInDelimiters_Failure);
51  MITK_TEST(ValidPropertyAlternatingOffset_Success);
52  MITK_TEST(ValidPropertySimpleOffset_Success);
53  MITK_TEST(ValidPropertyListOffset_Success);
54  MITK_TEST(ExtractRevision);
55  CPPUNIT_TEST_SUITE_END();
56 
57 private:
58  std::string m_PathToModule;
59  std::string m_ValidCESTCustomTag;
60  std::string m_ValidCESTCustomTagAllParametersMissing;
61  std::string m_ValidCESTCustomTagUnsupportedRevisionTooLow; // rev 12
62  std::string m_ValidCESTCustomTagUnsupportedRevisionNoExactJSONUseInternal; // rev 1417
63  std::string m_ValidCESTCustomTagUnsupportedRevisionNoExactJSONUseExternal; // rev 120
64  std::string m_InvalidCESTCustomTagRevisionNoNumber; //rev abc
65  std::string m_NonCESTCustomTag; // no CEST_Rev substring
66  std::string m_GarbageWithinDelimiters; // ASCII part of custom tag is just garbage
67  std::string m_ValidCESTCustomTagWindowsLineEndings; // have windows line endings encoded
68  std::string m_ValidCESTCustomTagAlternatingOffset;
69  std::string m_ValidCESTCustomTagSingleOffset;
70  std::string m_ValidCESTCustomTagListOffset;
71 
72 public:
73  void setUp() override
74  {
75  std::string moduleLocation = us::GetModuleContext()->GetModule()->GetLocation();
76  std::string libraryName;
77  itksys::SystemTools::SplitProgramPath(moduleLocation, m_PathToModule, libraryName);
78 
79  m_ValidCESTCustomTag = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\34\\31\\36\\22\\22\\0A\\74\\50\\72\\6F\\74\\6F\\63\\6F\\6C\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\57\\41\\53\\41\\42\\49\\2B\\41\\46\\38\\2D\\4D\\49\\54\\4B\\2D\\54\\45\\53\\54\\2B\\41\\46\\38\\2D\\37\\54\\2B\\41\\46\\38\\2D\\33\\73\\6C\\69\\63\\65\\73\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\74\\53\\79\\73\\74\\65\\6D\\54\\79\\70\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\30\\39\\35\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\66\\6C\\4E\\6F\\6D\\69\\6E\\61\\6C\\42\\30\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\2E\\39\\38\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\6C\\46\\72\\65\\71\\75\\65\\6E\\63\\79\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\39\\37\\31\\35\\34\\37\\35\\36\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\66\\6C\\52\\65\\66\\65\\72\\65\\6E\\63\\65\\41\\6D\\70\\6C\\69\\74\\75\\64\\65\\20\\3D\\20\\31\\36\\31\\2E\\34\\33\\35\\0A\\61\\6C\\54\\52\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\33\\30\\30\\30\\0A\\61\\6C\\54\\45\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\36\\34\\30\\0A\\6C\\41\\76\\65\\72\\61\\67\\65\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\6C\\52\\65\\70\\65\\74\\69\\74\\69\\6F\\6E\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\31\\0A\\61\\64\\46\\6C\\69\\70\\41\\6E\\67\\6C\\65\\44\\65\\67\\72\\65\\65\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\0A\\6C\\54\\6F\\74\\61\\6C\\53\\63\\61\\6E\\54\\69\\6D\\65\\53\\65\\63\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\39\\37\\0A\\73\\45\\46\\49\\53\\50\\45\\43\\2E\\62\\45\\46\\49\\44\\61\\74\\61\\56\\61\\6C\\69\\64\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\39\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\32\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\38\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\34\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\2E\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\31\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
80  m_ValidCESTCustomTagAllParametersMissing = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\34\\31\\36\\22\\22\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
81  m_ValidCESTCustomTagUnsupportedRevisionTooLow = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\32\\22\\22\\0A\\74\\50\\72\\6F\\74\\6F\\63\\6F\\6C\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\57\\41\\53\\41\\42\\49\\2B\\41\\46\\38\\2D\\4D\\49\\54\\4B\\2D\\54\\45\\53\\54\\2B\\41\\46\\38\\2D\\37\\54\\2B\\41\\46\\38\\2D\\33\\73\\6C\\69\\63\\65\\73\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\74\\53\\79\\73\\74\\65\\6D\\54\\79\\70\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\30\\39\\35\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\66\\6C\\4E\\6F\\6D\\69\\6E\\61\\6C\\42\\30\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\2E\\39\\38\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\6C\\46\\72\\65\\71\\75\\65\\6E\\63\\79\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\39\\37\\31\\35\\34\\37\\35\\36\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\66\\6C\\52\\65\\66\\65\\72\\65\\6E\\63\\65\\41\\6D\\70\\6C\\69\\74\\75\\64\\65\\20\\3D\\20\\31\\36\\31\\2E\\34\\33\\35\\0A\\61\\6C\\54\\52\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\33\\30\\30\\30\\0A\\61\\6C\\54\\45\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\36\\34\\30\\0A\\6C\\41\\76\\65\\72\\61\\67\\65\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\6C\\52\\65\\70\\65\\74\\69\\74\\69\\6F\\6E\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\31\\0A\\61\\64\\46\\6C\\69\\70\\41\\6E\\67\\6C\\65\\44\\65\\67\\72\\65\\65\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\0A\\6C\\54\\6F\\74\\61\\6C\\53\\63\\61\\6E\\54\\69\\6D\\65\\53\\65\\63\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\39\\37\\0A\\73\\45\\46\\49\\53\\50\\45\\43\\2E\\62\\45\\46\\49\\44\\61\\74\\61\\56\\61\\6C\\69\\64\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\39\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\32\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\38\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\34\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\2E\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\31\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
82  m_ValidCESTCustomTagUnsupportedRevisionNoExactJSONUseInternal = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\34\\31\\37\\22\\22\\0A\\74\\50\\72\\6F\\74\\6F\\63\\6F\\6C\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\57\\41\\53\\41\\42\\49\\2B\\41\\46\\38\\2D\\4D\\49\\54\\4B\\2D\\54\\45\\53\\54\\2B\\41\\46\\38\\2D\\37\\54\\2B\\41\\46\\38\\2D\\33\\73\\6C\\69\\63\\65\\73\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\74\\53\\79\\73\\74\\65\\6D\\54\\79\\70\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\30\\39\\35\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\66\\6C\\4E\\6F\\6D\\69\\6E\\61\\6C\\42\\30\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\2E\\39\\38\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\6C\\46\\72\\65\\71\\75\\65\\6E\\63\\79\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\39\\37\\31\\35\\34\\37\\35\\36\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\66\\6C\\52\\65\\66\\65\\72\\65\\6E\\63\\65\\41\\6D\\70\\6C\\69\\74\\75\\64\\65\\20\\3D\\20\\31\\36\\31\\2E\\34\\33\\35\\0A\\61\\6C\\54\\52\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\33\\30\\30\\30\\0A\\61\\6C\\54\\45\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\36\\34\\30\\0A\\6C\\41\\76\\65\\72\\61\\67\\65\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\6C\\52\\65\\70\\65\\74\\69\\74\\69\\6F\\6E\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\31\\0A\\61\\64\\46\\6C\\69\\70\\41\\6E\\67\\6C\\65\\44\\65\\67\\72\\65\\65\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\0A\\6C\\54\\6F\\74\\61\\6C\\53\\63\\61\\6E\\54\\69\\6D\\65\\53\\65\\63\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\39\\37\\0A\\73\\45\\46\\49\\53\\50\\45\\43\\2E\\62\\45\\46\\49\\44\\61\\74\\61\\56\\61\\6C\\69\\64\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\39\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\32\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\38\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\34\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\2E\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\31\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
83  m_ValidCESTCustomTagUnsupportedRevisionNoExactJSONUseExternal = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\32\\30\\22\\22\\0A\\74\\50\\72\\6F\\74\\6F\\63\\6F\\6C\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\57\\41\\53\\41\\42\\49\\2B\\41\\46\\38\\2D\\4D\\49\\54\\4B\\2D\\54\\45\\53\\54\\2B\\41\\46\\38\\2D\\37\\54\\2B\\41\\46\\38\\2D\\33\\73\\6C\\69\\63\\65\\73\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\74\\53\\79\\73\\74\\65\\6D\\54\\79\\70\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\30\\39\\35\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\66\\6C\\4E\\6F\\6D\\69\\6E\\61\\6C\\42\\30\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\2E\\39\\38\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\6C\\46\\72\\65\\71\\75\\65\\6E\\63\\79\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\39\\37\\31\\35\\34\\37\\35\\36\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\66\\6C\\52\\65\\66\\65\\72\\65\\6E\\63\\65\\41\\6D\\70\\6C\\69\\74\\75\\64\\65\\20\\3D\\20\\31\\36\\31\\2E\\34\\33\\35\\0A\\61\\6C\\54\\52\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\33\\30\\30\\30\\0A\\61\\6C\\54\\45\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\36\\34\\30\\0A\\6C\\41\\76\\65\\72\\61\\67\\65\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\6C\\52\\65\\70\\65\\74\\69\\74\\69\\6F\\6E\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\31\\0A\\61\\64\\46\\6C\\69\\70\\41\\6E\\67\\6C\\65\\44\\65\\67\\72\\65\\65\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\0A\\6C\\54\\6F\\74\\61\\6C\\53\\63\\61\\6E\\54\\69\\6D\\65\\53\\65\\63\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\39\\37\\0A\\73\\45\\46\\49\\53\\50\\45\\43\\2E\\62\\45\\46\\49\\44\\61\\74\\61\\56\\61\\6C\\69\\64\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\39\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\32\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\38\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\34\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\2E\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\31\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
84  m_InvalidCESTCustomTagRevisionNoNumber = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\61\\62\\63\\22\\22\\0A\\74\\50\\72\\6F\\74\\6F\\63\\6F\\6C\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\57\\41\\53\\41\\42\\49\\2B\\41\\46\\38\\2D\\4D\\49\\54\\4B\\2D\\54\\45\\53\\54\\2B\\41\\46\\38\\2D\\37\\54\\2B\\41\\46\\38\\2D\\33\\73\\6C\\69\\63\\65\\73\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\74\\53\\79\\73\\74\\65\\6D\\54\\79\\70\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\30\\39\\35\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\66\\6C\\4E\\6F\\6D\\69\\6E\\61\\6C\\42\\30\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\2E\\39\\38\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\6C\\46\\72\\65\\71\\75\\65\\6E\\63\\79\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\39\\37\\31\\35\\34\\37\\35\\36\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\66\\6C\\52\\65\\66\\65\\72\\65\\6E\\63\\65\\41\\6D\\70\\6C\\69\\74\\75\\64\\65\\20\\3D\\20\\31\\36\\31\\2E\\34\\33\\35\\0A\\61\\6C\\54\\52\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\33\\30\\30\\30\\0A\\61\\6C\\54\\45\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\36\\34\\30\\0A\\6C\\41\\76\\65\\72\\61\\67\\65\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\6C\\52\\65\\70\\65\\74\\69\\74\\69\\6F\\6E\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\31\\0A\\61\\64\\46\\6C\\69\\70\\41\\6E\\67\\6C\\65\\44\\65\\67\\72\\65\\65\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\0A\\6C\\54\\6F\\74\\61\\6C\\53\\63\\61\\6E\\54\\69\\6D\\65\\53\\65\\63\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\39\\37\\0A\\73\\45\\46\\49\\53\\50\\45\\43\\2E\\62\\45\\46\\49\\44\\61\\74\\61\\56\\61\\6C\\69\\64\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\39\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\32\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\38\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\34\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\2E\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\31\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
85  m_NonCESTCustomTag = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\59\\59\\59\\59\\5F\\5A\\5A\\5A\\5A\\5A\\5A\\5A\\22\\22\\0A\\74\\50\\72\\6F\\74\\6F\\63\\6F\\6C\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\57\\41\\53\\41\\42\\49\\2B\\41\\46\\38\\2D\\4D\\49\\54\\4B\\2D\\54\\45\\53\\54\\2B\\41\\46\\38\\2D\\37\\54\\2B\\41\\46\\38\\2D\\33\\73\\6C\\69\\63\\65\\73\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\74\\53\\79\\73\\74\\65\\6D\\54\\79\\70\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\30\\39\\35\\22\\22\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\66\\6C\\4E\\6F\\6D\\69\\6E\\61\\6C\\42\\30\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\2E\\39\\38\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\6C\\46\\72\\65\\71\\75\\65\\6E\\63\\79\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\39\\37\\31\\35\\34\\37\\35\\36\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\66\\6C\\52\\65\\66\\65\\72\\65\\6E\\63\\65\\41\\6D\\70\\6C\\69\\74\\75\\64\\65\\20\\3D\\20\\31\\36\\31\\2E\\34\\33\\35\\0A\\61\\6C\\54\\52\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\33\\30\\30\\30\\0A\\61\\6C\\54\\45\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\36\\34\\30\\0A\\6C\\41\\76\\65\\72\\61\\67\\65\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\6C\\52\\65\\70\\65\\74\\69\\74\\69\\6F\\6E\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\31\\0A\\61\\64\\46\\6C\\69\\70\\41\\6E\\67\\6C\\65\\44\\65\\67\\72\\65\\65\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\0A\\6C\\54\\6F\\74\\61\\6C\\53\\63\\61\\6E\\54\\69\\6D\\65\\53\\65\\63\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\39\\37\\0A\\73\\45\\46\\49\\53\\50\\45\\43\\2E\\62\\45\\46\\49\\44\\61\\74\\61\\56\\61\\6C\\69\\64\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\39\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\32\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\38\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\34\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\2E\\31\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\31\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
86  m_GarbageWithinDelimiters = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\32\\33\\39\\37\\34\\30\\32\\62\\76\\30\\77\\6E\\65\\72\\62\\66\\6B\\3C\\73\\79\\64\\68\\66\\6A\\6F\\5A\\49\\47\\28\\3D\\2F\\51\\22\\26\\54\\24\\29\\28\\2F\\26\\54\\C2\\A7\\51\\3D\\28\\25\\2F\\36\\7A\\C3\\9F\\61\\62\\72\\6E\\65\\62\\74\\6C\\61\\6B\\73\\64\\20\\76\\6E\\66\\6C\\61\\69\\72\\62\\74\\7A\\38\\33\\34\\35\\74\\31\\38\\33\\30\\37\\34\\7A\\62\\74\\28\\2F\\54\\26\\3D\\26\\28\\51\\50\\57\\C2\\A7\\45\\25\\3D\\51\\57\\C2\\A7\\62\\70\\39\\38\\65\\72\\74\\76\\68\\6E\\38\\39\\33\\34\\36\\7A\\31\\76\\C3\\9F\\30\\35\\39\\34\\75\\31\\6E\\30\\20\\74\\76\\6C\\61\\62\\72\\7A\\70\\39\\30\\65\\77\\35\\37\\32\\33\\38\\34\\36\\30\\39\\74\\7A\\C3\\9F\\39\\42\\20\\4E\\50\\29\\28\\20\\4E\\26\\2F\\3D\\2F\\24\\22\\26\\20\\50\\29\\4E\\72\\65\\74\\62\\68\\61\\70\\74\\6E\\76\\61\\70\\39\\72\\38\\74\\7A\\76\\42\\20\\26\\60\\3F\\29\\C2\\A7\\3D\\57\\26\\2F\\28\\29\\3F\\57\\26\\2F\\42\\20\\56\\24\\45\\57\\28\\26\\3F\\20\\4E\\62\\38\\34\\77\\7A\\61\\77\\C3\\9F\\20\\38\\34\\62\\6D\\C3\\9F\\61\\39\\65\\6D\\63\\36\\7A\\76\\77\\75\\69\\35\\34\\62\\36\\C3\\9F\\61\\38\\39\\6E\\36\\7A\\34\\35\\76\\6D\\38\\20\\6E\\75\\20\\20\\20\\20\\38\\33\\7A\\6E\\36\\76\\30\\33\\7A\\35\\36\\76\\C3\\9F\\5E\\5E\\39\\20\\5E\\62\\74\\7A\\C3\\9F\\34\\39\\38\\62\\7A\\6E\\20\\71\\38\\34\\65\\36\\7A\\76\\37\\38\\39\\C3\\9F\\C3\\9F\\20\\28\\2F\\20\\24\\3F\\57\\20\\26\\2F\\5A\\3F\\4E\\57\\24\\42\\20\\4D\\48\\4A\\55\\20\\28\\24\\2F\\20\\56\\4E\\5A\\3F\\57\\29\\28\\24\\29\\42\\26\\24\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0A\\20\\20\\20\\20\\7D\\0A\\20\\20\\7D\\0A\\7D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
87  m_ValidCESTCustomTagWindowsLineEndings = "20\\20\\20\\20\\20\\20\\20\\20\\3C\\43\\6F\\6E\\6E\\65\\63\\74\\69\\6F\\6E\\2E\\22\\22\\63\\31\\22\\22\\3E\\20\\20\\7B\\20\\22\\22\\49\\6D\\61\\67\\65\\52\\65\\61\\64\\79\\22\\22\\20\\22\\22\\22\\22\\20\\22\\22\\43\\6F\\6D\\70\\75\\74\\65\\49\\6D\\61\\67\\65\\22\\22\\20\\20\\7D\\0D\\0A\\20\\20\\20\\20\\20\\20\\7D\\0D\\0A\\20\\20\\20\\20\\7D\\0D\\0A\\20\\20\\7D\\0D\\0A\\7D\\0D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0D\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0D\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\34\\31\\36\\22\\22\\0D\\0A\\74\\50\\72\\6F\\74\\6F\\63\\6F\\6C\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\57\\41\\53\\41\\42\\49\\2B\\41\\46\\38\\2D\\4D\\49\\54\\4B\\2D\\54\\45\\53\\54\\2B\\41\\46\\38\\2D\\37\\54\\2B\\41\\46\\38\\2D\\33\\73\\6C\\69\\63\\65\\73\\22\\22\\0D\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\74\\53\\79\\73\\74\\65\\6D\\54\\79\\70\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\30\\39\\35\\22\\22\\0D\\0A\\73\\50\\72\\6F\\74\\43\\6F\\6E\\73\\69\\73\\74\\65\\6E\\63\\79\\49\\6E\\66\\6F\\2E\\66\\6C\\4E\\6F\\6D\\69\\6E\\61\\6C\\42\\30\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\2E\\39\\38\\0D\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\6C\\46\\72\\65\\71\\75\\65\\6E\\63\\79\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\39\\37\\31\\35\\34\\37\\35\\36\\0D\\0A\\73\\54\\58\\53\\50\\45\\43\\2E\\61\\73\\4E\\75\\63\\6C\\65\\75\\73\\49\\6E\\66\\6F\\5B\\30\\5D\\2E\\66\\6C\\52\\65\\66\\65\\72\\65\\6E\\63\\65\\41\\6D\\70\\6C\\69\\74\\75\\64\\65\\20\\3D\\20\\31\\36\\31\\2E\\34\\33\\35\\0D\\0A\\61\\6C\\54\\52\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\33\\30\\30\\30\\0D\\0A\\61\\6C\\54\\45\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\36\\34\\30\\0D\\0A\\6C\\41\\76\\65\\72\\61\\67\\65\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\6C\\52\\65\\70\\65\\74\\69\\74\\69\\6F\\6E\\73\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\31\\0D\\0A\\61\\64\\46\\6C\\69\\70\\41\\6E\\67\\6C\\65\\44\\65\\67\\72\\65\\65\\5B\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\0D\\0A\\6C\\54\\6F\\74\\61\\6C\\53\\63\\61\\6E\\54\\69\\6D\\65\\53\\65\\63\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\39\\37\\0D\\0A\\73\\45\\46\\49\\53\\50\\45\\43\\2E\\62\\45\\46\\49\\44\\61\\74\\61\\56\\61\\6C\\69\\64\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\36\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\30\\30\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\39\\30\\30\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\30\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\32\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\32\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\33\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\36\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\34\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\32\\30\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\35\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\38\\30\\30\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\36\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\34\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\37\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\2E\\31\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\31\\32\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\39\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\35\\30\\30\\30\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\2E\\37\\0D\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\31\\0D\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22\\20\\0D\\0A\\20\\20\\20\\20\\7D\\0D\\0A\\20\\20\\7D\\0D\\0A\\7D\\0D\\0A\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\47\\72\\61\\64\\69\\65\\6E\\74\\4D\\6F\\64\\65\\20\\72\\6D\\61\\6E\\63\\65\\43\\61\\63\\68\\65\\2E\\69\\6E\\6C\\69\\6E\\65\\5F\\70\\6F\\73\\64\\69\\73\\70\\5F\\63\\61\\6E\\5F\\73\\65\\74\\22\\22\\20\\3C\\44\\6C\\6C\\3E\\20\\22\\22\\4D\\72\\4D\\75\\6C\\74\\01\\20\\20\\20\\53\\48\\20\\20\\16\\20\\20\\20\\06\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\05\\20\\20\\20\\4D\\20\\20\\20\\05\\20\\20\\20\\46\\61\\73\\74\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\CD\\A0\\20\\20\\20\\20\\20\\20\\46\\6C\\6F\\77\\43\\6F\\6D\\70\\65\\6E\\73\\61\\74\\69\\6F\\6E\\20\\72\\65\\53\\6F\\75\\6E\\64\\22\\22\\20\\22\\22\\50\\72\\6F\\70\\65\\72\\74\\69\\65\\73\\2E\\53\\6F\\75\\6E\\64\\2E\\50\\6F\\73\\74\\53\\6F\\75\\6E\\64\\22\\22";
88  m_ValidCESTCustomTagAlternatingOffset = "36\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\34\\31\\36\\22\\22\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22";
89  m_ValidCESTCustomTagSingleOffset = "36\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\34\\31\\36\\22\\22\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\34\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22";
90  m_ValidCESTCustomTagListOffset = "36\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\42\\45\\47\\49\\4E\\20\\23\\23\\23\\0A\\75\\6C\\56\\65\\72\\73\\69\\6F\\6E\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\30\\78\\31\\34\\62\\34\\34\\62\\36\\0A\\74\\53\\65\\71\\75\\65\\6E\\63\\65\\46\\69\\6C\\65\\4E\\61\\6D\\65\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\22\\22\\25\\43\\75\\73\\74\\6F\\6D\\65\\72\\53\\65\\71\\25\\5C\\58\\58\\58\\58\\58\\5F\\43\\45\\53\\54\\5F\\52\\65\\76\\31\\34\\31\\36\\22\\22\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\38\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\6C\\46\\72\\65\\65\\5B\\31\\30\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\33\\32\\0A\\73\\57\\69\\50\\4D\\65\\6D\\42\\6C\\6F\\63\\6B\\2E\\61\\64\\46\\72\\65\\65\\5B\\31\\5D\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\20\\3D\\20\\32\\0A\\23\\23\\23\\20\\41\\53\\43\\43\\4F\\4E\\56\\20\\45\\4E\\44\\20\\23\\23\\23\\22";
91  }
92 
93  void tearDown() override
94  {
95  }
96 
97  void ValidPropertyParsedToPropertyList_Success()
98  {
99  mitk::CustomTagParser tagParser(m_PathToModule);
100  auto tsproperty = mitk::TemporoSpatialStringProperty::New();
101  tsproperty->SetValue(0, 0, m_ValidCESTCustomTag);
102  auto parsedPropertyList = tagParser.ParseDicomProperty(tsproperty);
103 
104  std::string sampling = "";
105  std::string offset = "";
106  std::string offsets = "";
107  std::string measurements = "";
108  std::string revision = "";
109  std::string jsonRevision = "";
110  bool hasRevision = parsedPropertyList->GetStringProperty("CEST.Revision", revision);
111  parsedPropertyList->GetStringProperty("CEST.Offset", offset);
112  parsedPropertyList->GetStringProperty(mitk::CEST_PROPERTY_NAME_OFFSETS().c_str(), offsets);
113  parsedPropertyList->GetStringProperty("CEST.measurements", measurements);
114  parsedPropertyList->GetStringProperty("CEST.SamplingType", sampling);
115  parsedPropertyList->GetStringProperty("CEST.revision_json", jsonRevision);
116 
117  bool offsetsMatch =( offsets == "-300 -2 -1.86667 -1.73333 -1.6 -1.46667 -1.33333 -1.2 -1.06667 -0.933333 -0.8 -0.666667 -0.533333 -0.4 -0.266667 -0.133333 0 0.133333 0.266667 0.4 0.533333 0.666667 0.8 0.933333 1.06667 1.2 1.33333 1.46667 1.6 1.73333 1.86667 2");
118 
119  CPPUNIT_ASSERT_MESSAGE("Verify we found a revision.", hasRevision);
120  CPPUNIT_ASSERT_MESSAGE("Verify the revision is the one we expect.", revision == "1416");
121  CPPUNIT_ASSERT_MESSAGE("Verify the revision and the json revision match.", revision == jsonRevision);
122  CPPUNIT_ASSERT_MESSAGE("Verify a couple of resulting properties match our expectation.", offset == "2" && sampling == "1" && measurements == "32");
123  CPPUNIT_ASSERT_MESSAGE("Verify offsets are correctly parsed.", offsetsMatch);
124  }
125 
126  void ValidPropertyMissingParametersParsedToEmptyPropertiesPropertyList_Success()
127  {
128  mitk::CustomTagParser tagParser(m_PathToModule);
129  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_ValidCESTCustomTagAllParametersMissing);
130  std::string revision = "";
131  std::string jsonRevision = "";
132  bool hasRevision = parsedPropertyList->GetStringProperty("CEST.Revision", revision);
133  bool hasJsonRevision = parsedPropertyList->GetStringProperty("CEST.revision_json", jsonRevision);
134 
135  auto propertyMap = parsedPropertyList->GetMap();
136  bool propertiesEmpty = true;
137  for (auto const &prop : *propertyMap)
138  {
139  std::string key = prop.first;
140  if (key != "CEST.Revision" && key != "CEST.revision_json")
141  {
142  propertiesEmpty = propertiesEmpty && prop.second->GetValueAsString() == "";
143  }
144  }
145 
146  CPPUNIT_ASSERT_MESSAGE("Verify we found a revision.", hasRevision);
147  CPPUNIT_ASSERT_MESSAGE("Verify we found a json revision.", hasJsonRevision);
148  CPPUNIT_ASSERT_MESSAGE("Property list properties are empty but for the revision information", propertiesEmpty);
149  }
150 
151  void ValidPropertyRevisionVeryLow_UseDefault_Success()
152  {
153  mitk::CustomTagParser tagParser(m_PathToModule);
154  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_ValidCESTCustomTagUnsupportedRevisionTooLow);
155  std::string revision = "";
156  std::string jsonRevision = "";
157  bool hasRevision = parsedPropertyList->GetStringProperty("CEST.Revision", revision);
158  bool hasJsonRevision = parsedPropertyList->GetStringProperty("CEST.revision_json", jsonRevision);
159  bool usedDefault = (jsonRevision == "default mapping, corresponds to revision 1416");
160 
161  CPPUNIT_ASSERT_MESSAGE("Verify we found a revision.", hasRevision);
162  CPPUNIT_ASSERT_MESSAGE("Verify we found a json revision.", hasJsonRevision);
163  CPPUNIT_ASSERT_MESSAGE("Verify we used default mapping.", usedDefault);
164  }
165 
166  void ValidPropertyNoExactRevisionMatchUseInternal_Success()
167  {
168  mitk::CustomTagParser tagParser(m_PathToModule);
169  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_ValidCESTCustomTagUnsupportedRevisionNoExactJSONUseInternal);
170  std::string revision = "";
171  std::string jsonRevision = "";
172  bool hasRevision = parsedPropertyList->GetStringProperty("CEST.Revision", revision);
173  bool hasJsonRevision = parsedPropertyList->GetStringProperty("CEST.revision_json", jsonRevision);
174  bool usedInternal = (jsonRevision == "1416");
175 
176  CPPUNIT_ASSERT_MESSAGE("Verify we found a revision.", hasRevision);
177  CPPUNIT_ASSERT_MESSAGE("Verify we found a json revision.", hasJsonRevision);
178  CPPUNIT_ASSERT_MESSAGE("Verify we used internal mapping.", usedInternal);
179  }
180 
181  void ValidPropertyNoExactRevisionMatchUseExternal_Success()
182  {
183  std::string externalMappingString =
184  "{\n"
185  " \"external mapping for test\" : \"revision_json\",\n"
186  " \"sWiPMemBlock.alFree[1]\" : \"AdvancedMode\"\n"
187  "}";
188 
189  // we assume the test library will be in the same location as the MitkCEST library on windows
190  // on linux the test driver should have a relative path of ../bin/
191 #ifdef _WIN32
192  std::string dirname = m_PathToModule + "/CESTRevisionMapping";
193 #else
194  std::string dirname = m_PathToModule + "/../lib/CESTRevisionMapping";
195 #endif
196 
197  //bool dirWasThere = itksys::SystemTools::FileIsDirectory(dirname);
198 
199  std::string filename = dirname + "/118.json";
200 
201  itk::FileTools::CreateDirectory(dirname);
202 
203  std::ofstream externalFile(filename.c_str());
204 
205  if (externalFile.is_open())
206  {
207  externalFile << externalMappingString;
208  externalFile.close();
209  }
210 
211  mitk::CustomTagParser tagParser(m_PathToModule);
212  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_ValidCESTCustomTagUnsupportedRevisionNoExactJSONUseExternal);
213  std::string revision = "";
214  std::string jsonRevision = "";
215  bool hasRevision = parsedPropertyList->GetStringProperty("CEST.Revision", revision);
216  bool hasJsonRevision = parsedPropertyList->GetStringProperty("CEST.revision_json", jsonRevision);
217  bool usedExternal = (jsonRevision == "external mapping for test");
218 
219  CPPUNIT_ASSERT_MESSAGE("Verify we found a revision.", hasRevision);
220  CPPUNIT_ASSERT_MESSAGE("Verify we found a json revision.", hasJsonRevision);
221  CPPUNIT_ASSERT_MESSAGE("Verify we used external mapping.", usedExternal);
222 
223  bool wasError = std::remove(filename.c_str());
224 
225  if (wasError)
226  {
227  MITK_ERROR << "Could not delete test revision file";
228  }
229  }
230 
231  void ValidPropertyWindowsLineEndings_Success()
232  {
233  mitk::CustomTagParser tagParser(m_PathToModule);
234  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_ValidCESTCustomTagWindowsLineEndings);
235  std::string sampling = "";
236  std::string offset = "";
237  std::string offsets = "";
238  std::string measurements = "";
239  std::string revision = "";
240  std::string jsonRevision = "";
241  bool hasRevision = parsedPropertyList->GetStringProperty("CEST.Revision", revision);
242  parsedPropertyList->GetStringProperty("CEST.Offset", offset);
243  parsedPropertyList->GetStringProperty(mitk::CEST_PROPERTY_NAME_OFFSETS().c_str(), offsets);
244  parsedPropertyList->GetStringProperty("CEST.measurements", measurements);
245  parsedPropertyList->GetStringProperty("CEST.SamplingType", sampling);
246  parsedPropertyList->GetStringProperty("CEST.revision_json", jsonRevision);
247 
248  bool offsetsMatch = (offsets == "-300 -2 -1.86667 -1.73333 -1.6 -1.46667 -1.33333 -1.2 -1.06667 -0.933333 -0.8 -0.666667 -0.533333 -0.4 -0.266667 -0.133333 0 0.133333 0.266667 0.4 0.533333 0.666667 0.8 0.933333 1.06667 1.2 1.33333 1.46667 1.6 1.73333 1.86667 2");
249 
250  CPPUNIT_ASSERT_MESSAGE("Verify we found a revision.", hasRevision);
251  CPPUNIT_ASSERT_MESSAGE("Verify the revision is the one we expect.", revision == "1416");
252  CPPUNIT_ASSERT_MESSAGE("Verify the revision and the json revision match.", revision == jsonRevision);
253  CPPUNIT_ASSERT_MESSAGE("Verify a couple of resulting properties match our expectation.", offset == "2" && sampling == "1" && measurements == "32");
254  CPPUNIT_ASSERT_MESSAGE("Verify offsets are correctly parsed.", offsetsMatch);
255  }
256 
257  void InvalidPropertyInvalidRevision_Failure()
258  {
259  mitk::CustomTagParser tagParser(m_PathToModule);
260  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_InvalidCESTCustomTagRevisionNoNumber);
261  std::string revision = "";
262  std::string jsonRevision = "";
263  bool hasRevision = parsedPropertyList->GetStringProperty("CEST.Revision", revision);
264  bool hasJsonRevision = parsedPropertyList->GetStringProperty("CEST.revision_json", jsonRevision);
265  bool usedDefault = (jsonRevision == "default mapping, corresponds to revision 1416");
266 
267  CPPUNIT_ASSERT_MESSAGE("Verify we found a revision.", hasRevision);
268  CPPUNIT_ASSERT_MESSAGE("Verify we found a json revision.", hasJsonRevision);
269  CPPUNIT_ASSERT_MESSAGE("Verify we used default mapping.", usedDefault);
270  }
271 
272  void InvalidPropertyNoCESTSequence_Failure()
273  {
274  mitk::CustomTagParser tagParser(m_PathToModule);
275  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_NonCESTCustomTag);
276 
277  auto size = parsedPropertyList->GetMap()->size();
278 
279  CPPUNIT_ASSERT_MESSAGE("Property list is empty", mitk::Equal(size, 0));
280  }
281 
282  void InvalidPropertyGarbageInDelimiters_Failure()
283  {
284  mitk::CustomTagParser tagParser(m_PathToModule);
285  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_GarbageWithinDelimiters);
286 
287  auto size = parsedPropertyList->GetMap()->size();
288 
289  CPPUNIT_ASSERT_MESSAGE("Property list is empty", mitk::Equal(size, 0));
290  }
291 
292  void ValidPropertyAlternatingOffset_Success()
293  {
294  mitk::CustomTagParser tagParser(m_PathToModule);
295  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_ValidCESTCustomTagAlternatingOffset);
296  std::string offsets = "";
297  parsedPropertyList->GetStringProperty(mitk::CEST_PROPERTY_NAME_OFFSETS().c_str(), offsets);
298 
299  bool offsetsMatch = (offsets == "-300 2 -2 1.86667 -1.86667 1.73333 -1.73333 1.6 -1.6 1.46667 -1.46667 1.33333 -1.33333 1.2 -1.2 1.06667 -1.06667 0.933333 -0.933333 0.8 -0.8 0.666667 -0.666667 0.533333 -0.533333 0.4 -0.4 0.266667 -0.266667 0.133333 -0.133333 0");
300 
301  CPPUNIT_ASSERT_MESSAGE("Verify offsets are correctly parsed.", offsetsMatch);
302  }
303  void ValidPropertySimpleOffset_Success()
304  {
305  mitk::CustomTagParser tagParser(m_PathToModule);
306  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_ValidCESTCustomTagSingleOffset);
307  std::string offsets = "";
308  parsedPropertyList->GetStringProperty(mitk::CEST_PROPERTY_NAME_OFFSETS().c_str(), offsets);
309 
310  bool offsetsMatch = (offsets == "-300 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2");
311 
312  CPPUNIT_ASSERT_MESSAGE("Verify offsets are correctly parsed.", offsetsMatch);
313  }
314  void ValidPropertyListOffset_Success()
315  {
316 
317  std::string offsetList = "-300\n -100 \n -50 \n -35\n -25 \n -17\n -12\n -9.5 \n -8.25\n -7\n -6.1 \n -5.4 \n -4.7 \n -4\n -3.3\n -2.7\n -2\n -1.7\n -1.5 \n -1.1 \n -0.9\n -300\n -0.6 \n -0.4\n -0.2\n 0 \n 0.2\n 0.4\n 0.6\n 0.95 \n 1.1 \n 1.25 \n 1.4\n 1.55\n 1.7\n 1.85 \n 2 \n 2.15 \n 2.3\n 2.45 \n 2.6\n 2.75 \n 2.9 \n 3.05\n -300 \n 3.2\n 3.35 \n 3.5\n 3.65 \n 3.8 \n 3.95\n 4.1 \n 4.25\n 4.4 \n 4.7\n 5.2\n 6\n 7\n 9\n 12 \n 17\n 25\n 35\n 50 \n 100\n -300" ;
318  std::string filename = m_PathToModule + "/" + "LIST.txt";
319  std::ofstream externalFile(filename.c_str());
320 
321  if (externalFile.is_open())
322  {
323  externalFile << offsetList;
324  externalFile.close();
325  }
326 
327  mitk::CustomTagParser tagParser(m_PathToModule);
328  auto parsedPropertyList = tagParser.ParseDicomPropertyString(m_ValidCESTCustomTagListOffset);
329  std::string offsets = "";
330  parsedPropertyList->GetStringProperty(mitk::CEST_PROPERTY_NAME_OFFSETS().c_str(), offsets);
331  std::string referenceString = "-300 -100 -50 -35 -25 -17 -12 -9.5 -8.25 -7 -6.1 -5.4 -4.7 -4 -3.3 -2.7 -2 -1.7 -1.5 -1.1 -0.9 -300 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.95 1.1 1.25 1.4 1.55 1.7 1.85 2 2.15 2.3 2.45 2.6 2.75 2.9 3.05 -300 3.2 3.35 3.5 3.65 3.8 3.95 4.1 4.25 4.4 4.7 5.2 6 7 9 12 17 25 35 50 100 -300";
332  bool offsetsMatch = (offsets == referenceString);
333 
334  CPPUNIT_ASSERT_MESSAGE("Verify offsets are correctly parsed.", offsetsMatch);
335 
336  bool wasError = std::remove(filename.c_str());
337 
338  if (wasError)
339  {
340  MITK_ERROR << "Could not delete test offset list file";
341  }
342  }
343 
344  void ExtractRevision()
345  {
346  std::string empty = "";
347  std::string invalidRule1a = "CESaaaaaaa";
348  std::string invalidRule1b = "aaaCESTaaa";
349  std::string invalidRule2a = "CESTaaaa";
350  std::string invalidRule2b = "aaa_CESTaaa";
351  std::string invalidRule3a = "CESTaaa_REVaaaa";
352  std::string valid1 = "CEST_REV12345";
353  std::string valid2 = "aaa_CESTaaaa_REV2";
354  std::string valid3 = "CESTaaaa_REV3_c";
355  std::string valid4 = "cest_rev4";
356  std::string valid5 = "aaa_cestaaaa_rev5";
357  std::string valid6 = "cestaaaa_rev6_c";
358 
359  CPPUNIT_ASSERT_THROW_MESSAGE("Verify exception on empty", mitk::CustomTagParser::ExtractRevision(empty), mitk::Exception);
360  CPPUNIT_ASSERT_THROW_MESSAGE("Verify exception on invalidRule1a", mitk::CustomTagParser::ExtractRevision(invalidRule1a), mitk::Exception);
361  CPPUNIT_ASSERT_THROW_MESSAGE("Verify exception on invalidRule1b", mitk::CustomTagParser::ExtractRevision(invalidRule1b), mitk::Exception);
362  CPPUNIT_ASSERT_THROW_MESSAGE("Verify exception on invalidRule2a", mitk::CustomTagParser::ExtractRevision(invalidRule2a), mitk::Exception);
363  CPPUNIT_ASSERT_THROW_MESSAGE("Verify exception on invalidRule2b", mitk::CustomTagParser::ExtractRevision(invalidRule2b), mitk::Exception);
364  CPPUNIT_ASSERT_MESSAGE("Verify empty revision on invalidRule3a", mitk::CustomTagParser::ExtractRevision(invalidRule3a) == "");
365  CPPUNIT_ASSERT_MESSAGE("Extract revision from valid1.", mitk::CustomTagParser::ExtractRevision(valid1) == "12345");
366  CPPUNIT_ASSERT_MESSAGE("Extract revision from valid2.", mitk::CustomTagParser::ExtractRevision(valid2) == "2");
367  CPPUNIT_ASSERT_MESSAGE("Extract revision from valid3.", mitk::CustomTagParser::ExtractRevision(valid3) == "3");
368  CPPUNIT_ASSERT_MESSAGE("Extract revision from valid4.", mitk::CustomTagParser::ExtractRevision(valid4) == "4");
369  CPPUNIT_ASSERT_MESSAGE("Extract revision from valid5.", mitk::CustomTagParser::ExtractRevision(valid5) == "5");
370  CPPUNIT_ASSERT_MESSAGE("Extract revision from valid6.", mitk::CustomTagParser::ExtractRevision(valid6) == "6");
371 
372  }
373 };
374 
375 MITK_TEST_SUITE_REGISTRATION(mitkCustomTagParser)
static std::string ExtractRevision(std::string sequenceFileName)
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
#define MITK_ERROR
Definition: mitkLogMacros.h:20
const std::string MITKCEST_EXPORT CEST_PROPERTY_NAME_OFFSETS()
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
static Vector3D offset
An object of this class represents an exception of MITK. Please don&#39;t instantiate exceptions manually...
Definition: mitkException.h:45
Module * GetModule() const
Test fixture for parameterized tests.
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.
static ModuleContext * GetModuleContext()
Returns the module context of the calling module.