Fix rule name generation (consider query rules also). Sort results of principals analyzers

Also deprecate unsude 'queryName' prop in QueryTemplate
(it inherits from INamed.. so it has name, which is used)
This commit is contained in:
Grigorii Kirgizov 2020-07-01 13:37:20 +03:00
parent 7e996c8772
commit ad9f02dd7d
2 changed files with 270 additions and 140 deletions

View File

@ -466,11 +466,6 @@
<child id="1218047638032" name="baseName" index="2piZGb" />
<child id="1218049772449" name="contextNode" index="2pr8EU" />
</concept>
<concept id="1187483539462121947" name="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_CreateIndexedName" flags="nn" index="32eq0B">
<property id="1187483539462194806" name="skipFirstIndex" index="32f$Ya" />
<child id="1187483539462121948" name="baseName" index="32eq0w" />
<child id="1187483539462121949" name="contextNode" index="32eq0x" />
</concept>
<concept id="1229477454423" name="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOriginalCopiedInputByOutput" flags="nn" index="12$id9">
<child id="1229477520175" name="outputNode" index="12$y8L" />
</concept>
@ -670,13 +665,6 @@
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
<concept id="709746936026466394" name="jetbrains.mps.lang.core.structure.ChildAttribute" flags="ng" index="3VBwX9">
<property id="709746936026609031" name="linkId" index="3V$3ak" />
<property id="709746936026609029" name="role_DebugInfo" index="3V$3am" />
</concept>
<concept id="4452961908202556907" name="jetbrains.mps.lang.core.structure.BaseCommentAttribute" flags="ng" index="1X3_iC">
<child id="3078666699043039389" name="commentedNode" index="8Wnug" />
</concept>
</language>
<language id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text">
<concept id="155656958578482948" name="jetbrains.mps.lang.text.structure.Word" flags="ng" index="3oM_SD">
@ -714,12 +702,16 @@
</concept>
<concept id="1227026082377" name="jetbrains.mps.baseLanguage.collections.structure.RemoveFirstElementOperation" flags="nn" index="2Kt2Hk" />
<concept id="1203518072036" name="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" flags="ig" index="Rh6nW" />
<concept id="1205679737078" name="jetbrains.mps.baseLanguage.collections.structure.SortOperation" flags="nn" index="2S7cBI">
<child id="1205679832066" name="ascending" index="2S7zOq" />
</concept>
<concept id="1160600644654" name="jetbrains.mps.baseLanguage.collections.structure.ListCreatorWithInit" flags="nn" index="Tc6Ow" />
<concept id="1160612413312" name="jetbrains.mps.baseLanguage.collections.structure.AddElementOperation" flags="nn" index="TSZUe" />
<concept id="1171391069720" name="jetbrains.mps.baseLanguage.collections.structure.GetIndexOfOperation" flags="nn" index="2WmjW8" />
<concept id="1162934736510" name="jetbrains.mps.baseLanguage.collections.structure.GetElementOperation" flags="nn" index="34jXtK" />
<concept id="1162935959151" name="jetbrains.mps.baseLanguage.collections.structure.GetSizeOperation" flags="nn" index="34oBXx" />
<concept id="1201792049884" name="jetbrains.mps.baseLanguage.collections.structure.TranslateOperation" flags="nn" index="3goQfb" />
<concept id="1178286324487" name="jetbrains.mps.baseLanguage.collections.structure.SortDirection" flags="nn" index="1nlBCl" />
<concept id="1165525191778" name="jetbrains.mps.baseLanguage.collections.structure.GetFirstOperation" flags="nn" index="1uHKPH" />
<concept id="1165530316231" name="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" flags="nn" index="1v1jN8" />
<concept id="7125221305512719026" name="jetbrains.mps.baseLanguage.collections.structure.CollectionType" flags="in" index="3vKaQO" />
@ -12718,15 +12710,40 @@
<node concept="3JmXsc" id="19q1ULB0LBu" role="3Jn$fo">
<node concept="3clFbS" id="19q1ULB0LBv" role="2VODD2">
<node concept="3clFbF" id="19q1ULB0QgH" role="3cqZAp">
<node concept="2OqwBi" id="19q1ULB0QFc" role="3clFbG">
<node concept="2OqwBi" id="19q1ULB0QrW" role="2Oq$k0">
<node concept="1iwH7S" id="19q1ULB0QgG" role="2Oq$k0" />
<node concept="1psM6Z" id="19q1ULB0Qzr" role="2OqNvi">
<ref role="1psM6Y" node="19q1ULB0ORc" resolve="genImpl" />
<node concept="2OqwBi" id="5BtuWK5yN82" role="3clFbG">
<node concept="2OqwBi" id="19q1ULB0QFc" role="2Oq$k0">
<node concept="2OqwBi" id="19q1ULB0QrW" role="2Oq$k0">
<node concept="1iwH7S" id="19q1ULB0QgG" role="2Oq$k0" />
<node concept="1psM6Z" id="19q1ULB0Qzr" role="2OqNvi">
<ref role="1psM6Y" node="19q1ULB0ORc" resolve="genImpl" />
</node>
</node>
<node concept="liA8E" id="19q1ULB0QTw" role="2OqNvi">
<ref role="37wK5l" to="7ed7:19q1ULB0sY2" resolve="getPrincipalCtrs" />
</node>
</node>
<node concept="liA8E" id="19q1ULB0QTw" role="2OqNvi">
<ref role="37wK5l" to="7ed7:19q1ULB0sY2" resolve="getPrincipalCtrs" />
<node concept="2S7cBI" id="5BtuWK5yNWR" role="2OqNvi">
<node concept="1bVj0M" id="5BtuWK5yNWT" role="23t8la">
<node concept="3clFbS" id="5BtuWK5yNWU" role="1bW5cS">
<node concept="3clFbF" id="5BtuWK5z0ou" role="3cqZAp">
<node concept="2OqwBi" id="5BtuWK5z0Ge" role="3clFbG">
<node concept="37vLTw" id="5BtuWK5z0ot" role="2Oq$k0">
<ref role="3cqZAo" node="5BtuWK5yNWV" resolve="it" />
</node>
<node concept="3TrcHB" id="5BtuWK5z13S" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="5BtuWK5yNWV" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="5BtuWK5yNWW" role="1tU5fm" />
</node>
</node>
<node concept="1nlBCl" id="5BtuWK5yNWX" role="2S7zOq">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
</node>
@ -12763,15 +12780,40 @@
<node concept="3JmXsc" id="19q1ULB0QZi" role="3Jn$fo">
<node concept="3clFbS" id="19q1ULB0QZj" role="2VODD2">
<node concept="3clFbF" id="19q1ULB0QZk" role="3cqZAp">
<node concept="2OqwBi" id="19q1ULB0Shd" role="3clFbG">
<node concept="2OqwBi" id="19q1ULB0QZl" role="2Oq$k0">
<node concept="1iwH7S" id="19q1ULB0QZm" role="2Oq$k0" />
<node concept="1psM6Z" id="19q1ULB0RSQ" role="2OqNvi">
<ref role="1psM6Y" node="19q1ULB0ORc" resolve="genImpl" />
<node concept="2OqwBi" id="5BtuWK5yE2b" role="3clFbG">
<node concept="2OqwBi" id="19q1ULB0Shd" role="2Oq$k0">
<node concept="2OqwBi" id="19q1ULB0QZl" role="2Oq$k0">
<node concept="1iwH7S" id="19q1ULB0QZm" role="2Oq$k0" />
<node concept="1psM6Z" id="19q1ULB0RSQ" role="2OqNvi">
<ref role="1psM6Y" node="19q1ULB0ORc" resolve="genImpl" />
</node>
</node>
<node concept="liA8E" id="19q1ULB0SxP" role="2OqNvi">
<ref role="37wK5l" to="7ed7:19q1ULB0x36" resolve="getPrincipalRules" />
</node>
</node>
<node concept="liA8E" id="19q1ULB0SxP" role="2OqNvi">
<ref role="37wK5l" to="7ed7:19q1ULB0x36" resolve="getPrincipalRules" />
<node concept="2S7cBI" id="5BtuWK5yEHI" role="2OqNvi">
<node concept="1bVj0M" id="5BtuWK5yEHK" role="23t8la">
<node concept="3clFbS" id="5BtuWK5yEHL" role="1bW5cS">
<node concept="3clFbF" id="5BtuWK5z7aj" role="3cqZAp">
<node concept="2OqwBi" id="5BtuWK5zMfe" role="3clFbG">
<node concept="37vLTw" id="5BtuWK5zLXe" role="2Oq$k0">
<ref role="3cqZAo" node="5BtuWK5yEHM" resolve="it" />
</node>
<node concept="2qgKlT" id="5BtuWK5zMBL" role="2OqNvi">
<ref role="37wK5l" to="x5bw:5BtuWK5zJKH" resolve="baseName" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="5BtuWK5yEHM" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="5BtuWK5yEHN" role="1tU5fm" />
</node>
</node>
<node concept="1nlBCl" id="5BtuWK5yEHO" role="2S7zOq">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
</node>
@ -12902,120 +12944,11 @@
<property role="2qtEX9" value="value" />
<node concept="3zFVjK" id="6xVZN2upvmR" role="3zH0cK">
<node concept="3clFbS" id="6xVZN2upvmS" role="2VODD2">
<node concept="3cpWs8" id="6xVZN2upvmT" role="3cqZAp">
<node concept="3cpWsn" id="6xVZN2upvmU" role="3cpWs9">
<property role="TrG5h" value="rt" />
<node concept="3Tqbb2" id="6xVZN2upvmV" role="1tU5fm">
<ref role="ehGHo" to="wq2x:36tQV5AmIsf" resolve="RuleTemplate" />
</node>
<node concept="2OqwBi" id="6xVZN2upvmW" role="33vP2m">
<node concept="30H73N" id="6xVZN2upvmX" role="2Oq$k0" />
<node concept="2Xjw5R" id="6xVZN2upvmY" role="2OqNvi">
<node concept="1xMEDy" id="6xVZN2upvmZ" role="1xVPHs">
<node concept="chp4Y" id="6xVZN2upvn0" role="ri$Ld">
<ref role="cht4Q" to="wq2x:36tQV5AmIsf" resolve="RuleTemplate" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="6xVZN2uq2cq" role="3cqZAp" />
<node concept="3cpWs8" id="6xVZN2upvXl" role="3cqZAp">
<node concept="3cpWsn" id="6xVZN2upvXo" role="3cpWs9">
<property role="TrG5h" value="rtRules" />
<node concept="2OqwBi" id="6xVZN2upvn2" role="33vP2m">
<node concept="37vLTw" id="6xVZN2upvn3" role="2Oq$k0">
<ref role="3cqZAo" node="6xVZN2upvmU" resolve="rt" />
</node>
<node concept="2Rf3mk" id="6xVZN2upvn4" role="2OqNvi">
<node concept="1xMEDy" id="6xVZN2upvn5" role="1xVPHs">
<node concept="chp4Y" id="6xVZN2upvn6" role="ri$Ld">
<ref role="cht4Q" to="wq2x:36tQV5AmIsB" resolve="ConstraintRule" />
</node>
</node>
</node>
</node>
<node concept="A3Dl8" id="6xVZN2upwMB" role="1tU5fm">
<node concept="3Tqbb2" id="6xVZN2upvXj" role="A3Ik2">
<ref role="ehGHo" to="wq2x:36tQV5AmIsB" resolve="ConstraintRule" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="6xVZN2ut40K" role="3cqZAp">
<node concept="3cpWsn" id="6xVZN2ut40N" role="3cpWs9">
<property role="TrG5h" value="order" />
<node concept="10Oyi0" id="6xVZN2ut40I" role="1tU5fm" />
<node concept="2OqwBi" id="6xVZN2upDG4" role="33vP2m">
<node concept="37vLTw" id="6xVZN2upDlF" role="2Oq$k0">
<ref role="3cqZAo" node="6xVZN2upvXo" resolve="rtRules" />
</node>
<node concept="2WmjW8" id="6xVZN2upEfp" role="2OqNvi">
<node concept="30H73N" id="6xVZN2upEJV" role="25WWJ7" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="6xVZN2up$Pv" role="3cqZAp">
<node concept="3K4zz7" id="6xVZN2up$Pn" role="3clFbG">
<node concept="2OqwBi" id="6xVZN2upBfm" role="3K4E3e">
<node concept="37vLTw" id="6xVZN2upB6$" role="2Oq$k0">
<ref role="3cqZAo" node="6xVZN2upvmU" resolve="rt" />
</node>
<node concept="3TrcHB" id="6xVZN2upBiz" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
<node concept="3cpWs3" id="78KKpPfl1Dl" role="3K4GZi">
<node concept="37vLTw" id="6xVZN2ut8D7" role="3uHU7w">
<ref role="3cqZAo" node="6xVZN2ut40N" resolve="order" />
</node>
<node concept="3cpWs3" id="6xVZN2upDi_" role="3uHU7B">
<node concept="2OqwBi" id="6xVZN2upCwZ" role="3uHU7B">
<node concept="37vLTw" id="6xVZN2upBI4" role="2Oq$k0">
<ref role="3cqZAo" node="6xVZN2upvmU" resolve="rt" />
</node>
<node concept="3TrcHB" id="6xVZN2upCXA" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
<node concept="Xl_RD" id="78KKpPfl2eZ" role="3uHU7w">
<property role="Xl_RC" value="#" />
</node>
</node>
</node>
<node concept="3clFbC" id="6xVZN2ut87m" role="3K4Cdx">
<node concept="3cmrfG" id="6xVZN2ut8AH" role="3uHU7w">
<property role="3cmrfH" value="0" />
</node>
<node concept="37vLTw" id="6xVZN2ut78y" role="3uHU7B">
<ref role="3cqZAo" node="6xVZN2ut40N" resolve="order" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="6xVZN2uq1G6" role="3cqZAp" />
<node concept="1X3_iC" id="6xVZN2upFw1" role="lGtFl">
<property role="3V$3am" value="statement" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
<node concept="3clFbF" id="6xVZN2upvn7" role="8Wnug">
<node concept="2OqwBi" id="6xVZN2upvn8" role="3clFbG">
<node concept="1iwH7S" id="6xVZN2upvn9" role="2Oq$k0" />
<node concept="32eq0B" id="6xVZN2upvna" role="2OqNvi">
<property role="32f$Ya" value="true" />
<node concept="2OqwBi" id="6xVZN2upvnb" role="32eq0w">
<node concept="37vLTw" id="6xVZN2upvnc" role="2Oq$k0">
<ref role="3cqZAo" node="6xVZN2upvmU" resolve="rt" />
</node>
<node concept="3TrcHB" id="6xVZN2upvnd" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
<node concept="37vLTw" id="6xVZN2upvne" role="32eq0x">
<ref role="3cqZAo" node="6xVZN2upvmU" resolve="rt" />
</node>
</node>
<node concept="3clFbF" id="5BtuWK5zLce" role="3cqZAp">
<node concept="2OqwBi" id="5BtuWK5zLju" role="3clFbG">
<node concept="30H73N" id="5BtuWK5zLcd" role="2Oq$k0" />
<node concept="2qgKlT" id="5BtuWK5zLpL" role="2OqNvi">
<ref role="37wK5l" to="x5bw:5BtuWK5zJKH" resolve="baseName" />
</node>
</node>
</node>

View File

@ -51,6 +51,7 @@
<child id="1068498886297" name="rValue" index="37vLTx" />
<child id="1068498886295" name="lValue" index="37vLTJ" />
</concept>
<concept id="1215695189714" name="jetbrains.mps.baseLanguage.structure.PlusAssignmentExpression" flags="nn" index="d57v9" />
<concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1076505808687" name="jetbrains.mps.baseLanguage.structure.WhileStatement" flags="nn" index="2$JKZl">
@ -73,6 +74,7 @@
<property id="1070475926801" name="value" index="Xl_RC" />
</concept>
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
<child id="1068431790190" name="initializer" index="33vP2m" />
@ -100,6 +102,7 @@
<concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
<child id="1068580123160" name="condition" index="3clFbw" />
<child id="1068580123161" name="ifTrue" index="3clFbx" />
<child id="1206060520071" name="elsifClauses" index="3eNLev" />
</concept>
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
<child id="1068581517665" name="statement" index="3cqZAp" />
@ -107,6 +110,9 @@
<concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
<property id="1068580123138" name="value" index="3clFbU" />
</concept>
<concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
<property id="1068580320021" name="value" index="3cmrfH" />
</concept>
<concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
<concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
<child id="1068581517676" name="expression" index="3cqZAk" />
@ -116,6 +122,11 @@
</concept>
<concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
<concept id="1068581517677" name="jetbrains.mps.baseLanguage.structure.VoidType" flags="in" index="3cqZAl" />
<concept id="1206060495898" name="jetbrains.mps.baseLanguage.structure.ElsifClause" flags="ng" index="3eNFk2">
<child id="1206060619838" name="condition" index="3eO9$A" />
<child id="1206060644605" name="statementList" index="3eOfB_" />
</concept>
<concept id="1081506762703" name="jetbrains.mps.baseLanguage.structure.GreaterThanExpression" flags="nn" index="3eOSWO" />
<concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
<child id="1081516765348" name="expression" index="3fr31v" />
</concept>
@ -171,6 +182,7 @@
<concept id="1212008292747" name="jetbrains.mps.lang.smodel.structure.Model_GetLongNameOperation" flags="nn" index="LkI2h" />
<concept id="7504436213544206332" name="jetbrains.mps.lang.smodel.structure.Node_ContainingLinkOperation" flags="nn" index="2NL2c5" />
<concept id="1171305280644" name="jetbrains.mps.lang.smodel.structure.Node_GetDescendantsOperation" flags="nn" index="2Rf3mk" />
<concept id="1171310072040" name="jetbrains.mps.lang.smodel.structure.Node_GetContainingRootOperation" flags="nn" index="2Rxl7S" />
<concept id="1145567426890" name="jetbrains.mps.lang.smodel.structure.SNodeListCreator" flags="nn" index="2T8Vx0">
<child id="1145567471833" name="createdType" index="2T96Bj" />
</concept>
@ -241,6 +253,7 @@
<concept id="1227022159410" name="jetbrains.mps.baseLanguage.collections.structure.AddFirstElementOperation" flags="nn" index="2Ke4WJ" />
<concept id="1203518072036" name="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" flags="ig" index="Rh6nW" />
<concept id="1160612413312" name="jetbrains.mps.baseLanguage.collections.structure.AddElementOperation" flags="nn" index="TSZUe" />
<concept id="1171391069720" name="jetbrains.mps.baseLanguage.collections.structure.GetIndexOfOperation" flags="nn" index="2WmjW8" />
<concept id="1201792049884" name="jetbrains.mps.baseLanguage.collections.structure.TranslateOperation" flags="nn" index="3goQfb" />
<concept id="1202120902084" name="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" flags="nn" index="3zZkjj" />
<concept id="1172254888721" name="jetbrains.mps.baseLanguage.collections.structure.ContainsOperation" flags="nn" index="3JPx81" />
@ -811,6 +824,190 @@
</node>
</node>
</node>
<node concept="13i0hz" id="5BtuWK5zJKH" role="13h7CS">
<property role="TrG5h" value="baseName" />
<node concept="3Tm1VV" id="5BtuWK5zJKI" role="1B3o_S" />
<node concept="17QB3L" id="5BtuWK5zK5F" role="3clF45" />
<node concept="3clFbS" id="5BtuWK5zJKK" role="3clF47">
<node concept="3cpWs8" id="5BtuWK5z21x" role="3cqZAp">
<node concept="3cpWsn" id="5BtuWK5z21$" role="3cpWs9">
<property role="TrG5h" value="ruleName" />
<node concept="17QB3L" id="5BtuWK5z21v" role="1tU5fm" />
<node concept="Xl_RD" id="5BtuWK5zeF9" role="33vP2m">
<property role="Xl_RC" value="__anonymous__" />
</node>
</node>
</node>
<node concept="3clFbH" id="5BtuWK5zF3R" role="3cqZAp" />
<node concept="3cpWs8" id="5BtuWK5zd88" role="3cqZAp">
<node concept="3cpWsn" id="5BtuWK5zd8b" role="3cpWs9">
<property role="TrG5h" value="root" />
<node concept="3Tqbb2" id="5BtuWK5zd86" role="1tU5fm" />
<node concept="2OqwBi" id="5BtuWK5zbqC" role="33vP2m">
<node concept="2Rxl7S" id="5BtuWK5zbzb" role="2OqNvi" />
<node concept="13iPFW" id="5BtuWK5zK$V" role="2Oq$k0" />
</node>
</node>
</node>
<node concept="3clFbJ" id="5BtuWK5zaCW" role="3cqZAp">
<node concept="3clFbS" id="5BtuWK5zaCY" role="3clFbx">
<node concept="3cpWs8" id="6xVZN2upvmT" role="3cqZAp">
<node concept="3cpWsn" id="6xVZN2upvmU" role="3cpWs9">
<property role="TrG5h" value="rt" />
<node concept="3Tqbb2" id="6xVZN2upvmV" role="1tU5fm">
<ref role="ehGHo" to="wq2x:36tQV5AmIsf" resolve="RuleTemplate" />
</node>
<node concept="2OqwBi" id="6xVZN2upvmW" role="33vP2m">
<node concept="13iPFW" id="5BtuWK5zKGu" role="2Oq$k0" />
<node concept="2Xjw5R" id="6xVZN2upvmY" role="2OqNvi">
<node concept="1xMEDy" id="6xVZN2upvmZ" role="1xVPHs">
<node concept="chp4Y" id="6xVZN2upvn0" role="ri$Ld">
<ref role="cht4Q" to="wq2x:36tQV5AmIsf" resolve="RuleTemplate" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="5BtuWK5zmdI" role="3cqZAp">
<node concept="37vLTI" id="5BtuWK5zosk" role="3clFbG">
<node concept="2OqwBi" id="5BtuWK5zoUH" role="37vLTx">
<node concept="37vLTw" id="5BtuWK5zoHh" role="2Oq$k0">
<ref role="3cqZAo" node="6xVZN2upvmU" resolve="rt" />
</node>
<node concept="3TrcHB" id="5BtuWK5zpNk" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
<node concept="37vLTw" id="5BtuWK5zmdG" role="37vLTJ">
<ref role="3cqZAo" node="5BtuWK5z21$" resolve="ruleName" />
</node>
</node>
</node>
<node concept="3cpWs8" id="6xVZN2upvXl" role="3cqZAp">
<node concept="3cpWsn" id="6xVZN2upvXo" role="3cpWs9">
<property role="TrG5h" value="rtRules" />
<node concept="2OqwBi" id="6xVZN2upvn2" role="33vP2m">
<node concept="37vLTw" id="6xVZN2upvn3" role="2Oq$k0">
<ref role="3cqZAo" node="6xVZN2upvmU" resolve="rt" />
</node>
<node concept="2Rf3mk" id="6xVZN2upvn4" role="2OqNvi">
<node concept="1xMEDy" id="6xVZN2upvn5" role="1xVPHs">
<node concept="chp4Y" id="6xVZN2upvn6" role="ri$Ld">
<ref role="cht4Q" to="wq2x:36tQV5AmIsB" resolve="ConstraintRule" />
</node>
</node>
</node>
</node>
<node concept="A3Dl8" id="6xVZN2upwMB" role="1tU5fm">
<node concept="3Tqbb2" id="6xVZN2upvXj" role="A3Ik2">
<ref role="ehGHo" to="wq2x:36tQV5AmIsB" resolve="ConstraintRule" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="6xVZN2ut40K" role="3cqZAp">
<node concept="3cpWsn" id="6xVZN2ut40N" role="3cpWs9">
<property role="TrG5h" value="order" />
<node concept="10Oyi0" id="6xVZN2ut40I" role="1tU5fm" />
<node concept="2OqwBi" id="6xVZN2upDG4" role="33vP2m">
<node concept="37vLTw" id="6xVZN2upDlF" role="2Oq$k0">
<ref role="3cqZAo" node="6xVZN2upvXo" resolve="rtRules" />
</node>
<node concept="2WmjW8" id="6xVZN2upEfp" role="2OqNvi">
<node concept="13iPFW" id="5BtuWK5zKL6" role="25WWJ7" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="5BtuWK5zzbS" role="3cqZAp">
<node concept="3clFbS" id="5BtuWK5zzbU" role="3clFbx">
<node concept="3clFbF" id="5BtuWK5zAPr" role="3cqZAp">
<node concept="d57v9" id="5BtuWK5zC0x" role="3clFbG">
<node concept="3cpWs3" id="5BtuWK5zDAJ" role="37vLTx">
<node concept="37vLTw" id="5BtuWK5zDE$" role="3uHU7w">
<ref role="3cqZAo" node="6xVZN2ut40N" resolve="order" />
</node>
<node concept="Xl_RD" id="5BtuWK5zC9_" role="3uHU7B">
<property role="Xl_RC" value="#" />
</node>
</node>
<node concept="37vLTw" id="5BtuWK5zAPp" role="37vLTJ">
<ref role="3cqZAo" node="5BtuWK5z21$" resolve="ruleName" />
</node>
</node>
</node>
</node>
<node concept="3eOSWO" id="5BtuWK5zAEy" role="3clFbw">
<node concept="3cmrfG" id="5BtuWK5zAEA" role="3uHU7w">
<property role="3cmrfH" value="0" />
</node>
<node concept="37vLTw" id="5BtuWK5zzgK" role="3uHU7B">
<ref role="3cqZAo" node="6xVZN2ut40N" resolve="order" />
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="5BtuWK5zcen" role="3clFbw">
<node concept="1mIQ4w" id="5BtuWK5zcmq" role="2OqNvi">
<node concept="chp4Y" id="5BtuWK5zcqN" role="cj9EA">
<ref role="cht4Q" to="wq2x:7eGEHDlgPKk" resolve="RulesList" />
</node>
</node>
<node concept="37vLTw" id="5BtuWK5zdUB" role="2Oq$k0">
<ref role="3cqZAo" node="5BtuWK5zd8b" resolve="root" />
</node>
</node>
<node concept="3eNFk2" id="5BtuWK5zd1N" role="3eNLev">
<node concept="2OqwBi" id="5BtuWK5zfBN" role="3eO9$A">
<node concept="37vLTw" id="5BtuWK5zf_8" role="2Oq$k0">
<ref role="3cqZAo" node="5BtuWK5zd8b" resolve="root" />
</node>
<node concept="1mIQ4w" id="5BtuWK5zfPN" role="2OqNvi">
<node concept="chp4Y" id="5BtuWK5zgsa" role="cj9EA">
<ref role="cht4Q" to="wq2x:5EDW3XE0OAL" resolve="QueryTable" />
</node>
</node>
</node>
<node concept="3clFbS" id="5BtuWK5zd1P" role="3eOfB_">
<node concept="3clFbF" id="5BtuWK5zpUC" role="3cqZAp">
<node concept="37vLTI" id="5BtuWK5zqtg" role="3clFbG">
<node concept="3cpWs3" id="5BtuWK5zuJu" role="37vLTx">
<node concept="Xl_RD" id="5BtuWK5zuOT" role="3uHU7B">
<property role="Xl_RC" value="query." />
</node>
<node concept="2OqwBi" id="5BtuWK5zs$V" role="3uHU7w">
<node concept="2OqwBi" id="5BtuWK5zrju" role="2Oq$k0">
<node concept="13iPFW" id="5BtuWK5zKMo" role="2Oq$k0" />
<node concept="2Xjw5R" id="5BtuWK5zs4p" role="2OqNvi">
<node concept="1xMEDy" id="5BtuWK5zs4r" role="1xVPHs">
<node concept="chp4Y" id="5BtuWK5zs9U" role="ri$Ld">
<ref role="cht4Q" to="wq2x:7P_FdVQ_S6B" resolve="QueryTemplate" />
</node>
</node>
</node>
</node>
<node concept="3TrcHB" id="5kd4gAC11El" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
<node concept="37vLTw" id="5BtuWK5zpUB" role="37vLTJ">
<ref role="3cqZAo" node="5BtuWK5z21$" resolve="ruleName" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="6xVZN2uq2cq" role="3cqZAp" />
<node concept="3cpWs6" id="5BtuWK5zEEV" role="3cqZAp">
<node concept="37vLTw" id="5BtuWK5zF06" role="3cqZAk">
<ref role="3cqZAo" node="5BtuWK5z21$" resolve="ruleName" />
</node>
</node>
</node>
</node>
</node>
<node concept="13h7C7" id="34$A1Mf3_W$">
<property role="3GE5qa" value="rule" />