public void apply()

in languages/languageDesign/behavior/languages/behavior/generator/source_gen/jetbrains/mps/lang/behavior/generator/template/main/Template_BehaviorDescriptor.java [45:1597]


  public void apply(TemplateContext context, ApplySink sink) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    final SNode tnode1 = environment.createOutputNode(myConcepts[0]);
    {
      environment.nodeCopied(context, tnode1, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7385785963572922999");
      tnode1.setProperty(myProperties[0], "true");
      tnode1.setProperty(myProperties[1], "");
      SNodeAccessUtil.setPropertyValue(tnode1, myProperties[2], QueriesGenerated.propertyMacro_GetValue_6_14(new PropertyMacroContext(context, "BehaviorDescriptor", propertyMacro)));
      TemplateContext context1 = context.subContext();
      {
        final SNode tnode2 = environment.createOutputNode(myConcepts[1]);
        {
          environment.nodeCopied(context1, tnode2, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4006517209906245669");
          tnode2.setProperty(myProperties[3], "false");
          tnode2.setProperty(myProperties[4], "false");
          tnode2.setProperty(myProperties[2], "CONCEPT");
          tnode2.setProperty(myProperties[5], "true");
          TemplateContext context2 = context1.subContext();
          {
            final SNode tnode3 = environment.createOutputNode(myConcepts[2]);
            environment.aggregate(tnode2, myAggregationLinks[0], tnode3);
          }
          {
            final SNode tnode4 = environment.createOutputNode(myConcepts[3]);
            environment.resolve(new RefResolver(tnode4, myAssociationLinks[0], context2, new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4006517209906256416"), "BaseConcept") {
              @Override
              public Object resolve() {
                return QueriesGenerated.referenceMacro_GetReferent_6_0(createQueryContext());
              }
            });
            environment.aggregate(tnode2, myAggregationLinks[1], tnode4);
          }
          {
            final SNode tnode5 = environment.createOutputNode(myConcepts[4]);
            environment.associate(tnode5, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)", "~SAbstractConcept");
            environment.aggregate(tnode2, myAggregationLinks[2], tnode5);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tnode2);
      }
      {
        final SNode tnode6 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode6);
      }
      {
        final List<SNode> tlist7 = new ArrayList<SNode>();
        final Iterable<SNode> loopList7 = QueriesGenerated.sourceNodesQuery_6_1(new SourceSubstituteMacroNodesContext(context1, loopMacroRef));
        for (SNode itnode7 : loopList7) {
          if (itnode7 == null) {
            continue;
          }
          TemplateContext context3 = context1.subContext("BHMethodInDescriptor", itnode7);
          Collection<SNode> tlist8 = null;
          TemplateContext context4 = context3;
          context4 = context4.withVariable("var:methodHelper", QueriesGenerated.varMacro_Value_6_0(new TemplateVarContext(context4, new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "7012992644621797278"))));
          context4 = context4.withVariable("var:langUUID", QueriesGenerated.varMacro_Value_6_1(new TemplateVarContext(context4, new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "7012992644622249927"))));
          final SNode tnode9 = environment.createOutputNode(myConcepts[1]);
          {
            environment.nodeCopied(context4, tnode9, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/3176885412940615040");
            tnode9.setProperty(myProperties[5], "true");
            SNodeAccessUtil.setPropertyValue(tnode9, myProperties[2], QueriesGenerated.propertyMacro_GetValue_6_5(new PropertyMacroContext(context4, "BH_METHOD", propertyMacro1)));
            TemplateContext context5 = context4.subContext();
            {
              final SNode tnode10 = environment.createOutputNode(myConcepts[4]);
              {
                environment.associate(tnode10, myAssociationLinks[1], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~SMethod");
                TemplateContext context6 = context5.subContext();
                {
                  Collection<SNode> tlist11 = null;
                  final SNode copySrcInput11 = QueriesGenerated.sourceNodeQuery_6_0(new SourceSubstituteMacroNodeContext(context6, copySrcMacro));
                  tlist11 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput11), copySrcMacro, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/3176885412940615042", context6);
                  environment.aggregate(tnode10, myAggregationLinks[4], tlist11);
                }
              }
              environment.aggregate(tnode9, myAggregationLinks[2], tnode10);
            }
            {
              Collection<SNode> tlist12 = Collections.emptyList();
              if (QueriesGenerated.ifMacro_Condition_6_0(new IfMacroContext(context5, ifMacroRef))) {
                final SNode tnode13 = environment.createOutputNode(myConcepts[6]);
                tlist12 = TemplateUtil.singletonList(tnode13);
              }
              environment.aggregate(tnode9, myAggregationLinks[0], tlist12);
            }
            {
              final SNode tnode14 = environment.createOutputNode(myConcepts[7]);
              {
                TemplateContext context7 = context5.subContext();
                {
                  final SNode tnode15 = environment.createOutputNode(myConcepts[7]);
                  {
                    TemplateContext context8 = context7.subContext();
                    {
                      final SNode tnode16 = environment.createOutputNode(myConcepts[7]);
                      {
                        TemplateContext context9 = context8.subContext();
                        {
                          final SNode tnode17 = environment.createOutputNode(myConcepts[7]);
                          {
                            TemplateContext context10 = context9.subContext();
                            {
                              final SNode tnode18 = environment.createOutputNode(myConcepts[7]);
                              {
                                TemplateContext context11 = context10.subContext();
                                {
                                  final SNode tnode19 = environment.createOutputNode(myConcepts[7]);
                                  {
                                    TemplateContext context12 = context11.subContext();
                                    {
                                      final SNode tnode20 = environment.createOutputNode(myConcepts[8]);
                                      {
                                        TemplateContext context13 = context12.subContext();
                                        {
                                          final SNode tnode21 = environment.createOutputNode(myConcepts[9]);
                                          {
                                            environment.associate(tnode21, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~SMethodBuilder.<init>(jetbrains.mps.core.aspects.behaviour.api.SAbstractType)");
                                            TemplateContext context14 = context13.subContext();
                                            {
                                              final SNode tnode22 = environment.createOutputNode(myConcepts[8]);
                                              {
                                                TemplateContext context15 = context14.subContext();
                                                {
                                                  final SNode tnode23 = environment.createOutputNode(myConcepts[9]);
                                                  {
                                                    environment.associate(tnode23, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~SJavaCompoundTypeImpl.<init>(java.lang.Class)");
                                                    TemplateContext context16 = context15.subContext();
                                                    {
                                                      Collection<SNode> tlist24 = null;
                                                      {
                                                        final SNode switchInput24 = QueriesGenerated.sourceNodeQuery_6_1(new SourceSubstituteMacroNodeContext(context16, switchMacroRef));
                                                        if (switchInput24 == null) {
                                                          tlist24 = Collections.emptyList();
                                                        } else {
                                                          TemplateContext switchContext24 = context16;
                                                          switchContext24 = switchContext24.subContext(null, switchInput24);
                                                          tlist24 = environment.trySwitch(templateSwitchNode, switchContext24);
                                                          if (tlist24 == null) {
                                                            final SNode tnode25 = environment.createOutputNode(myConcepts[10]);
                                                            tlist24 = TemplateUtil.singletonList(tnode25);
                                                          }
                                                        }
                                                      }
                                                      environment.aggregate(tnode23, myAggregationLinks[5], tlist24);
                                                    }
                                                  }
                                                  environment.aggregate(tnode22, myAggregationLinks[6], tnode23);
                                                }
                                              }
                                              environment.aggregate(tnode21, myAggregationLinks[5], tnode22);
                                            }
                                            {
                                              Collection<SNode> tlist26 = null;
                                              final SNode copySrcInput26 = QueriesGenerated.sourceNodeQuery_6_2(new SourceSubstituteMacroNodeContext(context14, copySrcMacro1));
                                              tlist26 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput26), copySrcMacro1, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7433446194418124032", context14);
                                              environment.aggregate(tnode21, myAggregationLinks[7], tlist26);
                                            }
                                          }
                                          environment.aggregate(tnode20, myAggregationLinks[6], tnode21);
                                        }
                                      }
                                      environment.aggregate(tnode19, myAggregationLinks[8], tnode20);
                                    }
                                    {
                                      final SNode tnode27 = environment.createOutputNode(myConcepts[11]);
                                      {
                                        environment.associate(tnode27, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~SMethodBuilder.name(java.lang.String)");
                                        TemplateContext context17 = context12.subContext();
                                        {
                                          final SNode tnode28 = environment.createOutputNode(myConcepts[12]);
                                          SNodeAccessUtil.setPropertyValue(tnode28, myProperties[6], QueriesGenerated.propertyMacro_GetValue_6_0(new PropertyMacroContext(context17, "methodName", propertyMacro2)));
                                          environment.aggregate(tnode27, myAggregationLinks[5], tnode28);
                                        }
                                      }
                                      environment.aggregate(tnode19, myAggregationLinks[9], tnode27);
                                    }
                                  }
                                  environment.aggregate(tnode18, myAggregationLinks[8], tnode19);
                                }
                                {
                                  final SNode tnode29 = environment.createOutputNode(myConcepts[11]);
                                  {
                                    environment.associate(tnode29, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~SMethodBuilder.modifiers(int,jetbrains.mps.core.aspects.behaviour.AccessPrivileges)");
                                    TemplateContext context18 = context11.subContext();
                                    {
                                      final SNode tnode30 = environment.createOutputNode(myConcepts[13]);
                                      SNodeAccessUtil.setPropertyValue(tnode30, myProperties[7], QueriesGenerated.propertyMacro_GetValue_6_1(new PropertyMacroContext(context18, "0", propertyMacro3)));
                                      environment.aggregate(tnode29, myAggregationLinks[5], tnode30);
                                    }
                                    {
                                      final SNode tnode31 = environment.createOutputNode(myConcepts[14]);
                                      environment.associate(tnode31, myAssociationLinks[3], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~AccessPrivileges");
                                      environment.resolve(new RefResolver(tnode31, myAssociationLinks[4], context18, new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "2386721254951859759"), "PRIVATE") {
                                        @Override
                                        public Object resolve() {
                                          return QueriesGenerated.referenceMacro_GetReferent_6_1(createQueryContext());
                                        }
                                      });
                                      environment.aggregate(tnode29, myAggregationLinks[5], tnode31);
                                    }
                                  }
                                  environment.aggregate(tnode18, myAggregationLinks[9], tnode29);
                                }
                              }
                              environment.aggregate(tnode17, myAggregationLinks[8], tnode18);
                            }
                            {
                              final SNode tnode32 = environment.createOutputNode(myConcepts[11]);
                              {
                                environment.associate(tnode32, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~SMethodBuilder.concept(org.jetbrains.mps.openapi.language.SAbstractConcept)");
                                TemplateContext context19 = context10.subContext();
                                {
                                  final SNode tnode33 = environment.createOutputNode(myConcepts[15]);
                                  environment.resolveInTemplateLater(tnode33, myAssociationLinks[5], templateNode, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4006517209906245669", "CONCEPT", context19);
                                  environment.aggregate(tnode32, myAggregationLinks[5], tnode33);
                                }
                              }
                              environment.aggregate(tnode17, myAggregationLinks[9], tnode32);
                            }
                          }
                          environment.aggregate(tnode16, myAggregationLinks[8], tnode17);
                        }
                        {
                          final SNode tnode34 = environment.createOutputNode(myConcepts[11]);
                          {
                            environment.associate(tnode34, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~SMethodBuilder.baseMethodId(long)");
                            TemplateContext context20 = context9.subContext();
                            {
                              final SNode tnode35 = environment.createOutputNode(myConcepts[16]);
                              SNodeAccessUtil.setPropertyValue(tnode35, myProperties[8], QueriesGenerated.propertyMacro_GetValue_6_2(new PropertyMacroContext(context20, "0L", propertyMacro4)));
                              environment.aggregate(tnode34, myAggregationLinks[5], tnode35);
                            }
                          }
                          environment.aggregate(tnode16, myAggregationLinks[9], tnode34);
                        }
                      }
                      environment.aggregate(tnode15, myAggregationLinks[8], tnode16);
                    }
                    {
                      final SNode tnode36 = environment.createOutputNode(myConcepts[11]);
                      {
                        environment.associate(tnode36, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~SMethodBuilder.languageId(long,long)");
                        TemplateContext context21 = context8.subContext();
                        {
                          final SNode tnode37 = environment.createOutputNode(myConcepts[17]);
                          SNodeAccessUtil.setPropertyValue(tnode37, myProperties[9], QueriesGenerated.propertyMacro_GetValue_6_3(new PropertyMacroContext(context21, "1L", propertyMacro5)));
                          environment.aggregate(tnode36, myAggregationLinks[5], tnode37);
                        }
                        {
                          final SNode tnode38 = environment.createOutputNode(myConcepts[17]);
                          SNodeAccessUtil.setPropertyValue(tnode38, myProperties[9], QueriesGenerated.propertyMacro_GetValue_6_4(new PropertyMacroContext(context21, "0L", propertyMacro6)));
                          environment.aggregate(tnode36, myAggregationLinks[5], tnode38);
                        }
                      }
                      environment.aggregate(tnode15, myAggregationLinks[9], tnode36);
                    }
                  }
                  environment.aggregate(tnode14, myAggregationLinks[8], tnode15);
                }
                {
                  final SNode tnode39 = environment.createOutputNode(myConcepts[11]);
                  {
                    environment.associate(tnode39, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~SMethodBuilder.build2(jetbrains.mps.core.aspects.behaviour.api.SParameter...)");
                    TemplateContext context22 = context7.subContext();
                    {
                      final List<SNode> tlist40 = new ArrayList<SNode>();
                      final Iterable<SNode> loopList40 = QueriesGenerated.sourceNodesQuery_6_0(new SourceSubstituteMacroNodesContext(context22, loopMacroRef1));
                      for (SNode itnode40 : loopList40) {
                        if (itnode40 == null) {
                          continue;
                        }
                        TemplateContext context23 = context22.subContext(itnode40);
                        Collection<SNode> tlist41 = null;
                        try {
                          TemplateContext switchContext41 = context23;
                          tlist41 = environment.trySwitch(templateSwitchNodeNoInput, switchContext41);
                          if (tlist41 == null) {
                            final SNode tnode42 = environment.createOutputNode(myConcepts[10]);
                            tlist41 = TemplateUtil.singletonList(tnode42);
                          }
                        } finally {
                        }
                        tlist40.addAll(tlist41);
                      }
                      environment.aggregate(tnode39, myAggregationLinks[5], tlist40);
                    }
                  }
                  environment.aggregate(tnode14, myAggregationLinks[9], tnode39);
                }
              }
              environment.aggregate(tnode9, myAggregationLinks[1], tnode14);
            }
          }
          tlist8 = TemplateUtil.singletonList(tnode9);
          environment.registerLabel(itnode7, tlist8, "BHMethodInDescriptor");
          tlist7.addAll(tlist8);
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tlist7);
      }
      {
        final SNode tnode43 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode43);
      }
      {
        final SNode tnode44 = environment.createOutputNode(myConcepts[1]);
        {
          environment.nodeCopied(context1, tnode44, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/6029283687668622501");
          tnode44.setProperty(myProperties[2], "BH_METHODS");
          tnode44.setProperty(myProperties[5], "true");
          TemplateContext context24 = context1.subContext();
          {
            final SNode tnode45 = environment.createOutputNode(myConcepts[4]);
            {
              environment.associate(tnode45, myAssociationLinks[1], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~List");
              TemplateContext context25 = context24.subContext();
              {
                final SNode tnode46 = environment.createOutputNode(myConcepts[4]);
                {
                  environment.associate(tnode46, myAssociationLinks[1], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~SMethod");
                  TemplateContext context26 = context25.subContext();
                  {
                    final SNode tnode47 = environment.createOutputNode(myConcepts[18]);
                    environment.aggregate(tnode46, myAggregationLinks[4], tnode47);
                  }
                }
                environment.aggregate(tnode45, myAggregationLinks[4], tnode46);
              }
            }
            environment.aggregate(tnode44, myAggregationLinks[2], tnode45);
          }
          {
            final SNode tnode48 = environment.createOutputNode(myConcepts[2]);
            environment.aggregate(tnode44, myAggregationLinks[0], tnode48);
          }
          {
            final SNode tnode49 = environment.createOutputNode(myConcepts[19]);
            {
              environment.associate(tnode49, myAssociationLinks[2], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~Arrays.asList(java.lang.Object...)");
              environment.associate(tnode49, myAssociationLinks[6], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~Arrays");
              TemplateContext context27 = context24.subContext();
              {
                final List<SNode> tlist50 = new ArrayList<SNode>();
                final Iterable<SNode> loopList50 = QueriesGenerated.sourceNodesQuery_6_2(new SourceSubstituteMacroNodesContext(context27, loopMacroRef2));
                for (SNode itnode50 : loopList50) {
                  if (itnode50 == null) {
                    continue;
                  }
                  TemplateContext context28 = context27.subContext(itnode50);
                  final SNode tnode51 = environment.createOutputNode(myConcepts[15]);
                  environment.resolve(new RefResolver(tnode51, myAssociationLinks[5], context28, new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "737333977598577048"), "BH_METHOD") {
                    @Override
                    public Object resolve() {
                      return QueriesGenerated.referenceMacro_GetReferent_6_2(createQueryContext());
                    }
                  });
                  tlist50.add(tnode51);
                }
                environment.aggregate(tnode49, myAggregationLinks[5], tlist50);
              }
              {
                final SNode tnode52 = environment.createOutputNode(myConcepts[4]);
                {
                  environment.associate(tnode52, myAssociationLinks[1], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~SMethod");
                  TemplateContext context29 = context27.subContext();
                  {
                    final SNode tnode53 = environment.createOutputNode(myConcepts[18]);
                    environment.aggregate(tnode52, myAggregationLinks[4], tnode53);
                  }
                }
                environment.aggregate(tnode49, myAggregationLinks[10], tnode52);
              }
            }
            environment.aggregate(tnode44, myAggregationLinks[1], tnode49);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tnode44);
      }
      {
        final SNode tnode54 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode54);
      }
      {
        final SNode tnode55 = environment.createOutputNode(myConcepts[20]);
        {
          environment.nodeCopied(context1, tnode55, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/1843690775058889163");
          SNodeAccessUtil.setPropertyValue(tnode55, myProperties[2], QueriesGenerated.propertyMacro_GetValue_6_7(new PropertyMacroContext(context1, "__init__", propertyMacro7)));
          TemplateContext context30 = context1.subContext();
          {
            final SNode tnode56 = environment.createOutputNode(myConcepts[2]);
            environment.aggregate(tnode55, myAggregationLinks[0], tnode56);
          }
          {
            final SNode tnode57 = environment.createOutputNode(myConcepts[21]);
            environment.aggregate(tnode55, myAggregationLinks[11], tnode57);
          }
          {
            final SNode tnode58 = environment.createOutputNode(myConcepts[22]);
            {
              TemplateContext context31 = context30.subContext();
              {
                Collection<SNode> tlist59 = null;
                final Iterable<SNode> copyListInput59 = QueriesGenerated.sourceNodesQuery_6_3(new SourceSubstituteMacroNodesContext(context31, copySrcListMacro));
                tlist59 = environment.copyNodes(copyListInput59, copySrcListMacro, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/737333977599945405", context31);
                environment.aggregate(tnode58, myAggregationLinks[12], tlist59);
              }
            }
            environment.aggregate(tnode55, myAggregationLinks[13], tnode58);
          }
          {
            final SNode tnode60 = environment.createOutputNode(myConcepts[23]);
            {
              SNodeAccessUtil.setPropertyValue(tnode60, myProperties[2], QueriesGenerated.propertyMacro_GetValue_6_6(new PropertyMacroContext(context30, "thisNode", propertyMacro8)));
              TemplateContext context32 = context30.subContext();
              {
                final SNode tnode61 = environment.createOutputNode(myConcepts[4]);
                environment.associate(tnode61, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNode");
                environment.aggregate(tnode60, myAggregationLinks[2], tnode61);
              }
              {
                final SNode tnode62 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode62, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                environment.aggregate(tnode60, myAggregationLinks[14], tnode62);
              }
            }
            environment.aggregate(tnode55, myAggregationLinks[15], tnode60);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tnode55);
      }
      {
        final SNode tnode63 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode63);
      }
      {
        final List<SNode> tlist64 = new ArrayList<SNode>();
        final Iterable<SNode> loopList64 = QueriesGenerated.sourceNodesQuery_6_6(new SourceSubstituteMacroNodesContext(context1, loopMacroRef3));
        for (SNode itnode64 : loopList64) {
          if (itnode64 == null) {
            continue;
          }
          TemplateContext context33 = context1.subContext("BHMethodImpl", itnode64);
          final SNode tnode65 = environment.createOutputNode(myConcepts[20]);
          {
            environment.nodeCopied(context33, tnode65, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/1843690775058968398");
            SNodeAccessUtil.setPropertyValue(tnode65, myProperties[2], QueriesGenerated.propertyMacro_GetValue_6_8(new PropertyMacroContext(context33, "bhMethodImpl", propertyMacro9)));
            TemplateContext context34 = context33.subContext();
            {
              Collection<SNode> tlist66 = null;
              final SNode copySrcInput66 = QueriesGenerated.sourceNodeQuery_6_3(new SourceSubstituteMacroNodeContext(context34, copySrcMacro2));
              tlist66 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput66), copySrcMacro2, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/1843690775058968444", context34);
              environment.aggregate(tnode65, myAggregationLinks[11], tlist66);
            }
            {
              Collection<SNode> tlist67 = Collections.emptyList();
              if (QueriesGenerated.ifMacro_Condition_6_1(new IfMacroContext(context34, ifMacroRef1))) {
                final SNode tnode68 = environment.createOutputNode(myConcepts[23]);
                {
                  SNodeAccessUtil.setPropertyValue(tnode68, myProperties[2], QueriesGenerated.propertyMacro_GetValue_6_9(new PropertyMacroContext(context34, "thisNode", propertyMacro10)));
                  TemplateContext context35 = context34.subContext();
                  {
                    final SNode tnode69 = environment.createOutputNode(myConcepts[4]);
                    environment.associate(tnode69, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNode");
                    environment.aggregate(tnode68, myAggregationLinks[2], tnode69);
                  }
                  {
                    final SNode tnode70 = environment.createOutputNode(myConcepts[24]);
                    environment.associate(tnode70, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                    environment.aggregate(tnode68, myAggregationLinks[14], tnode70);
                  }
                }
                tlist67 = TemplateUtil.singletonList(tnode68);
              } else {
                final SNode tnode71 = environment.createOutputNode(myConcepts[23]);
                {
                  SNodeAccessUtil.setPropertyValue(tnode71, myProperties[2], QueriesGenerated.propertyMacro_GetValue_6_10(new PropertyMacroContext(context34, "thisConcept", propertyMacro11)));
                  TemplateContext context36 = context34.subContext();
                  {
                    final SNode tnode72 = environment.createOutputNode(myConcepts[4]);
                    environment.associate(tnode72, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)", "~SAbstractConcept");
                    environment.aggregate(tnode71, myAggregationLinks[2], tnode72);
                  }
                  {
                    final SNode tnode73 = environment.createOutputNode(myConcepts[24]);
                    environment.associate(tnode73, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                    environment.aggregate(tnode71, myAggregationLinks[14], tnode73);
                  }
                }
                tlist67 = TemplateUtil.singletonList(tnode71);
              }
              environment.aggregate(tnode65, myAggregationLinks[15], tlist67);
            }
            {
              final List<SNode> tlist74 = new ArrayList<SNode>();
              final Iterable<SNode> loopList74 = QueriesGenerated.sourceNodesQuery_6_4(new SourceSubstituteMacroNodesContext(context34, loopMacroRef4));
              for (SNode itnode74 : loopList74) {
                if (itnode74 == null) {
                  continue;
                }
                TemplateContext context37 = context34.subContext(itnode74);
                Collection<SNode> tlist75 = null;
                final SNode copySrcInput75 = QueriesGenerated.sourceNodeQuery_6_4(new SourceSubstituteMacroNodeContext(context37, copySrcMacro3));
                tlist75 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput75), copySrcMacro3, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/163705066662147889", context37);
                tlist74.addAll(tlist75);
              }
              environment.aggregate(tnode65, myAggregationLinks[15], tlist74);
            }
            {
              Collection<SNode> tlist76 = null;
              final Iterable<SNode> copyListInput76 = QueriesGenerated.sourceNodesQuery_6_5(new SourceSubstituteMacroNodesContext(context34, copySrcListMacro1));
              tlist76 = environment.copyNodes(copyListInput76, copySrcListMacro1, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/1843690775058968474", context34);
              environment.aggregate(tnode65, myAggregationLinks[14], tlist76);
            }
            {
              Collection<SNode> tlist77 = null;
              final SNode copySrcInput77 = QueriesGenerated.sourceNodeQuery_6_5(new SourceSubstituteMacroNodeContext(context34, copySrcMacro4));
              tlist77 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput77), copySrcMacro4, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/737333977599628618", context34);
              environment.aggregate(tnode65, myAggregationLinks[13], tlist77);
            }
          }
          environment.registerLabel(itnode64, tnode65, "BHMethodImpl");
          tlist64.add(tnode65);
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tlist64);
      }
      {
        final SNode tnode78 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode78);
      }
      {
        Collection<SNode> tlist79 = null;
        TemplateContext context38 = context1.subContext("BHClassConstructor");
        final SNode tnode80 = environment.createOutputNode(myConcepts[25]);
        {
          TemplateContext context39 = context38.subContext();
          {
            final SNode tnode81 = environment.createOutputNode(myConcepts[21]);
            environment.aggregate(tnode80, myAggregationLinks[11], tnode81);
          }
          {
            final SNode tnode82 = environment.createOutputNode(myConcepts[22]);
            environment.aggregate(tnode80, myAggregationLinks[13], tnode82);
          }
        }
        tlist79 = TemplateUtil.singletonList(tnode80);
        environment.registerLabel(context1.getInput(), tlist79, "BHClassConstructor");
        environment.aggregate(tnode1, myAggregationLinks[3], tlist79);
      }
      {
        final SNode tnode83 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode83);
      }
      {
        final SNode tnode84 = environment.createOutputNode(myConcepts[4]);
        environment.associate(tnode84, myAssociationLinks[1], "d936855b-48da-4812-a8a0-2bfddd633ac4/java:jetbrains.mps.core.aspects.behaviour(jetbrains.mps.lang.behavior.runtime/)", "~BaseBHDescriptor");
        environment.aggregate(tnode1, myAggregationLinks[16], tnode84);
      }
      {
        final SNode tnode85 = environment.createOutputNode(myConcepts[26]);
        {
          tnode85.setProperty(myProperties[10], "false");
          tnode85.setProperty(myProperties[2], "initNode");
          tnode85.setProperty(myProperties[11], "false");
          tnode85.setProperty(myProperties[12], "false");
          TemplateContext context40 = context1.subContext();
          {
            final SNode tnode86 = environment.createOutputNode(myConcepts[27]);
            environment.aggregate(tnode85, myAggregationLinks[0], tnode86);
          }
          {
            final SNode tnode87 = environment.createOutputNode(myConcepts[21]);
            environment.aggregate(tnode85, myAggregationLinks[11], tnode87);
          }
          {
            final SNode tnode88 = environment.createOutputNode(myConcepts[23]);
            {
              environment.nodeCopied(context40, tnode88, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843787");
              tnode88.setProperty(myProperties[2], "node");
              TemplateContext context41 = context40.subContext();
              {
                final SNode tnode89 = environment.createOutputNode(myConcepts[4]);
                environment.associate(tnode89, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNode");
                environment.aggregate(tnode88, myAggregationLinks[2], tnode89);
              }
              {
                final SNode tnode90 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode90, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                environment.aggregate(tnode88, myAggregationLinks[14], tnode90);
              }
            }
            environment.aggregate(tnode85, myAggregationLinks[15], tnode88);
          }
          {
            final SNode tnode91 = environment.createOutputNode(myConcepts[23]);
            {
              tnode91.setProperty(myProperties[2], "constructor");
              TemplateContext context42 = context40.subContext();
              {
                final SNode tnode92 = environment.createOutputNode(myConcepts[4]);
                environment.associate(tnode92, myAssociationLinks[1], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~SConstructor");
                environment.aggregate(tnode91, myAggregationLinks[2], tnode92);
              }
              {
                final SNode tnode93 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode93, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                environment.aggregate(tnode91, myAggregationLinks[14], tnode93);
              }
            }
            environment.aggregate(tnode85, myAggregationLinks[15], tnode91);
          }
          {
            final SNode tnode94 = environment.createOutputNode(myConcepts[23]);
            {
              tnode94.setProperty(myProperties[2], "parameters");
              TemplateContext context43 = context40.subContext();
              {
                final SNode tnode95 = environment.createOutputNode(myConcepts[28]);
                {
                  TemplateContext context44 = context43.subContext();
                  {
                    final SNode tnode96 = environment.createOutputNode(myConcepts[4]);
                    environment.associate(tnode96, myAssociationLinks[1], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)", "~Object");
                    environment.aggregate(tnode95, myAggregationLinks[17], tnode96);
                  }
                }
                environment.aggregate(tnode94, myAggregationLinks[2], tnode95);
              }
              {
                final SNode tnode97 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode97, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~Nullable");
                environment.aggregate(tnode94, myAggregationLinks[14], tnode97);
              }
            }
            environment.aggregate(tnode85, myAggregationLinks[15], tnode94);
          }
          {
            final SNode tnode98 = environment.createOutputNode(myConcepts[22]);
            {
              TemplateContext context45 = context40.subContext();
              {
                final SNode tnode99 = environment.createOutputNode(myConcepts[29]);
                {
                  TemplateContext context46 = context45.subContext();
                  {
                    final SNode tnode100 = environment.createOutputNode(myConcepts[30]);
                    {
                      environment.resolveInTemplateLater(tnode100, myAssociationLinks[2], templateNode1, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/1843690775058889163", "__init__", context46);
                      TemplateContext context47 = context46.subContext();
                      {
                        final SNode tnode101 = environment.createOutputNode(myConcepts[15]);
                        environment.resolveInTemplateLater(tnode101, myAssociationLinks[5], templateNode2, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843787", "node", context47);
                        environment.aggregate(tnode100, myAggregationLinks[5], tnode101);
                      }
                    }
                    environment.aggregate(tnode99, myAggregationLinks[18], tnode100);
                  }
                }
                environment.aggregate(tnode98, myAggregationLinks[12], tnode99);
              }
            }
            environment.aggregate(tnode85, myAggregationLinks[13], tnode98);
          }
          {
            final SNode tnode102 = environment.createOutputNode(myConcepts[24]);
            environment.associate(tnode102, myAssociationLinks[7], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)", "~Override");
            environment.aggregate(tnode85, myAggregationLinks[14], tnode102);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tnode85);
      }
      {
        final SNode tnode103 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode103);
      }
      {
        final SNode tnode104 = environment.createOutputNode(myConcepts[26]);
        {
          tnode104.setProperty(myProperties[10], "false");
          tnode104.setProperty(myProperties[2], "invokeSpecial0");
          tnode104.setProperty(myProperties[11], "false");
          tnode104.setProperty(myProperties[12], "false");
          TemplateContext context48 = context1.subContext();
          {
            final SNode tnode105 = environment.createOutputNode(myConcepts[27]);
            environment.aggregate(tnode104, myAggregationLinks[0], tnode105);
          }
          {
            final SNode tnode106 = environment.createOutputNode(myConcepts[31]);
            environment.nodeCopied(context48, tnode106, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843801");
            tnode106.setProperty(myProperties[2], "T");
            environment.aggregate(tnode104, myAggregationLinks[19], tnode106);
          }
          {
            final SNode tnode107 = environment.createOutputNode(myConcepts[32]);
            environment.resolveInTemplateLater(tnode107, myAssociationLinks[8], templateNode3, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843801", "T", context48);
            environment.aggregate(tnode104, myAggregationLinks[11], tnode107);
          }
          {
            final SNode tnode108 = environment.createOutputNode(myConcepts[23]);
            {
              environment.nodeCopied(context48, tnode108, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843803");
              tnode108.setProperty(myProperties[2], "node");
              TemplateContext context49 = context48.subContext();
              {
                final SNode tnode109 = environment.createOutputNode(myConcepts[4]);
                environment.associate(tnode109, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNode");
                environment.aggregate(tnode108, myAggregationLinks[2], tnode109);
              }
              {
                final SNode tnode110 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode110, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                environment.aggregate(tnode108, myAggregationLinks[14], tnode110);
              }
            }
            environment.aggregate(tnode104, myAggregationLinks[15], tnode108);
          }
          {
            final SNode tnode111 = environment.createOutputNode(myConcepts[23]);
            {
              environment.nodeCopied(context48, tnode111, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843806");
              tnode111.setProperty(myProperties[2], "method");
              TemplateContext context50 = context48.subContext();
              {
                final SNode tnode112 = environment.createOutputNode(myConcepts[4]);
                {
                  environment.associate(tnode112, myAssociationLinks[1], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~SMethod");
                  TemplateContext context51 = context50.subContext();
                  {
                    final SNode tnode113 = environment.createOutputNode(myConcepts[32]);
                    environment.resolveInTemplateLater(tnode113, myAssociationLinks[8], templateNode4, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843801", "T", context51);
                    environment.aggregate(tnode112, myAggregationLinks[4], tnode113);
                  }
                }
                environment.aggregate(tnode111, myAggregationLinks[2], tnode112);
              }
              {
                final SNode tnode114 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode114, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                environment.aggregate(tnode111, myAggregationLinks[14], tnode114);
              }
            }
            environment.aggregate(tnode104, myAggregationLinks[15], tnode111);
          }
          {
            final SNode tnode115 = environment.createOutputNode(myConcepts[23]);
            {
              environment.nodeCopied(context48, tnode115, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843810");
              tnode115.setProperty(myProperties[2], "parameters");
              TemplateContext context52 = context48.subContext();
              {
                final SNode tnode116 = environment.createOutputNode(myConcepts[28]);
                {
                  TemplateContext context53 = context52.subContext();
                  {
                    final SNode tnode117 = environment.createOutputNode(myConcepts[4]);
                    environment.associate(tnode117, myAssociationLinks[1], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)", "~Object");
                    environment.aggregate(tnode116, myAggregationLinks[17], tnode117);
                  }
                }
                environment.aggregate(tnode115, myAggregationLinks[2], tnode116);
              }
              {
                final SNode tnode118 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode118, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~Nullable");
                environment.aggregate(tnode115, myAggregationLinks[14], tnode118);
              }
            }
            environment.aggregate(tnode104, myAggregationLinks[15], tnode115);
          }
          {
            final SNode tnode119 = environment.createOutputNode(myConcepts[22]);
            {
              TemplateContext context54 = context48.subContext();
              {
                final SNode tnode120 = environment.createOutputNode(myConcepts[33]);
                {
                  TemplateContext context55 = context54.subContext();
                  {
                    final SNode tnode121 = environment.createOutputNode(myConcepts[34]);
                    {
                      environment.nodeCopied(context55, tnode121, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686911546");
                      tnode121.setProperty(myProperties[2], "methodIndex");
                      TemplateContext context56 = context55.subContext();
                      {
                        final SNode tnode122 = environment.createOutputNode(myConcepts[35]);
                        environment.aggregate(tnode121, myAggregationLinks[2], tnode122);
                      }
                      {
                        final SNode tnode123 = environment.createOutputNode(myConcepts[7]);
                        {
                          TemplateContext context57 = context56.subContext();
                          {
                            final SNode tnode124 = environment.createOutputNode(myConcepts[15]);
                            environment.resolveInTemplateLater(tnode124, myAssociationLinks[5], templateNode5, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/6029283687668622501", "BH_METHODS", context57);
                            environment.aggregate(tnode123, myAggregationLinks[8], tnode124);
                          }
                          {
                            final SNode tnode125 = environment.createOutputNode(myConcepts[11]);
                            {
                              environment.associate(tnode125, myAssociationLinks[2], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~List.indexOf(java.lang.Object)");
                              TemplateContext context58 = context57.subContext();
                              {
                                final SNode tnode126 = environment.createOutputNode(myConcepts[15]);
                                environment.resolveInTemplateLater(tnode126, myAssociationLinks[5], templateNode6, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843806", "method", context58);
                                environment.aggregate(tnode125, myAggregationLinks[5], tnode126);
                              }
                            }
                            environment.aggregate(tnode123, myAggregationLinks[9], tnode125);
                          }
                        }
                        environment.aggregate(tnode121, myAggregationLinks[1], tnode123);
                      }
                    }
                    environment.aggregate(tnode120, myAggregationLinks[20], tnode121);
                  }
                }
                environment.aggregate(tnode119, myAggregationLinks[12], tnode120);
              }
              {
                final SNode tnode127 = environment.createOutputNode(myConcepts[36]);
                {
                  TemplateContext context59 = context54.subContext();
                  {
                    final SNode tnode128 = environment.createOutputNode(myConcepts[22]);
                    {
                      TemplateContext context60 = context59.subContext();
                      {
                        final SNode tnode129 = environment.createOutputNode(myConcepts[37]);
                        {
                          TemplateContext context61 = context60.subContext();
                          {
                            final SNode tnode130 = environment.createOutputNode(myConcepts[8]);
                            {
                              TemplateContext context62 = context61.subContext();
                              {
                                final SNode tnode131 = environment.createOutputNode(myConcepts[9]);
                                {
                                  environment.associate(tnode131, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~BHMethodNotFoundException.<init>(jetbrains.mps.core.aspects.behaviour.api.BHDescriptor,jetbrains.mps.core.aspects.behaviour.api.SMethod)");
                                  TemplateContext context63 = context62.subContext();
                                  {
                                    final SNode tnode132 = environment.createOutputNode(myConcepts[38]);
                                    environment.aggregate(tnode131, myAggregationLinks[5], tnode132);
                                  }
                                  {
                                    final SNode tnode133 = environment.createOutputNode(myConcepts[15]);
                                    environment.resolveInTemplateLater(tnode133, myAssociationLinks[5], templateNode7, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843806", "method", context63);
                                    environment.aggregate(tnode131, myAggregationLinks[5], tnode133);
                                  }
                                }
                                environment.aggregate(tnode130, myAggregationLinks[6], tnode131);
                              }
                            }
                            environment.aggregate(tnode129, myAggregationLinks[21], tnode130);
                          }
                        }
                        environment.aggregate(tnode128, myAggregationLinks[12], tnode129);
                      }
                    }
                    environment.aggregate(tnode127, myAggregationLinks[22], tnode128);
                  }
                  {
                    final SNode tnode134 = environment.createOutputNode(myConcepts[39]);
                    {
                      TemplateContext context64 = context59.subContext();
                      {
                        final SNode tnode135 = environment.createOutputNode(myConcepts[13]);
                        tnode135.setProperty(myProperties[7], "0");
                        environment.aggregate(tnode134, myAggregationLinks[23], tnode135);
                      }
                      {
                        final SNode tnode136 = environment.createOutputNode(myConcepts[15]);
                        environment.resolveInTemplateLater(tnode136, myAssociationLinks[5], templateNode8, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686911546", "methodIndex", context64);
                        environment.aggregate(tnode134, myAggregationLinks[24], tnode136);
                      }
                    }
                    environment.aggregate(tnode127, myAggregationLinks[25], tnode134);
                  }
                }
                environment.aggregate(tnode119, myAggregationLinks[12], tnode127);
              }
              {
                final SNode tnode137 = environment.createOutputNode(myConcepts[40]);
                {
                  TemplateContext context65 = context54.subContext();
                  {
                    final List<SNode> tlist138 = new ArrayList<SNode>();
                    final Iterable<SNode> loopList138 = QueriesGenerated.sourceNodesQuery_6_7(new SourceSubstituteMacroNodesContext(context65, loopMacroRef5));
                    int loopIndex_138 = 0;
                    for (SNode itnode138 : loopList138) {
                      if (itnode138 == null) {
                        continue;
                      }
                      TemplateContext context66 = context65.subContext(itnode138);
                      context66 = context66.withVariable("loop:index", loopIndex_138);
                      loopIndex_138++;
                      Collection<SNode> tlist139 = Collections.emptyList();
                      if (QueriesGenerated.ifMacro_Condition_6_4(new IfMacroContext(context66, ifMacroRef4))) {
                        final SNode tnode140 = environment.createOutputNode(myConcepts[41]);
                        {
                          TemplateContext context67 = context66.subContext();
                          {
                            final SNode tnode141 = environment.createOutputNode(myConcepts[13]);
                            SNodeAccessUtil.setPropertyValue(tnode141, myProperties[7], QueriesGenerated.propertyMacro_GetValue_6_12(new PropertyMacroContext(context67, "1", propertyMacro12)));
                            environment.aggregate(tnode140, myAggregationLinks[26], tnode141);
                          }
                          {
                            final SNode tnode142 = environment.createOutputNode(myConcepts[22]);
                            {
                              TemplateContext context68 = context67.subContext();
                              {
                                Collection<SNode> tlist143 = Collections.emptyList();
                                if (QueriesGenerated.ifMacro_Condition_6_2(new IfMacroContext(context68, ifMacroRef2))) {
                                  final SNode tnode144 = environment.createOutputNode(myConcepts[42]);
                                  {
                                    TemplateContext context69 = context68.subContext();
                                    {
                                      final SNode tnode145 = environment.createOutputNode(myConcepts[43]);
                                      {
                                        TemplateContext context70 = context69.subContext();
                                        {
                                          final SNode tnode146 = environment.createOutputNode(myConcepts[44]);
                                          {
                                            TemplateContext context71 = context70.subContext();
                                            {
                                              final SNode tnode147 = environment.createOutputNode(myConcepts[43]);
                                              {
                                                TemplateContext context72 = context71.subContext();
                                                {
                                                  Collection<SNode> tlist148 = null;
                                                  tlist148 = environment.callSite(new Template_reduce_MethodInvocation(), new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4547736967711224779")).apply(context72);
                                                  environment.aggregate(tnode147, myAggregationLinks[27], tlist148);
                                                }
                                                {
                                                  Collection<SNode> tlist149 = null;
                                                  final SNode copySrcInput149 = QueriesGenerated.sourceNodeQuery_6_6(new SourceSubstituteMacroNodeContext(context72, copySrcMacro5));
                                                  tlist149 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput149), copySrcMacro5, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4547736967711224780", context72);
                                                  environment.aggregate(tnode147, myAggregationLinks[28], tlist149);
                                                }
                                              }
                                              environment.aggregate(tnode146, myAggregationLinks[29], tnode147);
                                            }
                                          }
                                          environment.aggregate(tnode145, myAggregationLinks[27], tnode146);
                                        }
                                        {
                                          final SNode tnode150 = environment.createOutputNode(myConcepts[32]);
                                          environment.resolveInTemplateLater(tnode150, myAssociationLinks[8], templateNode9, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843801", "T", context70);
                                          environment.aggregate(tnode145, myAggregationLinks[28], tnode150);
                                        }
                                      }
                                      environment.aggregate(tnode144, myAggregationLinks[30], tnode145);
                                    }
                                  }
                                  tlist143 = TemplateUtil.singletonList(tnode144);
                                } else {
                                  final SNode tnode151 = environment.createOutputNode(myConcepts[29]);
                                  {
                                    TemplateContext context73 = context68.subContext();
                                    {
                                      Collection<SNode> tlist152 = null;
                                      tlist152 = environment.callSite(new Template_reduce_MethodInvocation(), new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4547736967710643505")).apply(context73);
                                      environment.aggregate(tnode151, myAggregationLinks[18], tlist152);
                                    }
                                  }
                                  tlist143 = TemplateUtil.singletonList(tnode151);
                                }
                                environment.aggregate(tnode142, myAggregationLinks[12], tlist143);
                              }
                              {
                                Collection<SNode> tlist153 = Collections.emptyList();
                                if (QueriesGenerated.ifMacro_Condition_6_3(new IfMacroContext(context68, ifMacroRef3))) {
                                  final SNode tnode154 = environment.createOutputNode(myConcepts[42]);
                                  {
                                    TemplateContext context74 = context68.subContext();
                                    {
                                      final SNode tnode155 = environment.createOutputNode(myConcepts[10]);
                                      environment.aggregate(tnode154, myAggregationLinks[30], tnode155);
                                    }
                                  }
                                  tlist153 = TemplateUtil.singletonList(tnode154);
                                }
                                environment.aggregate(tnode142, myAggregationLinks[12], tlist153);
                              }
                            }
                            environment.aggregate(tnode140, myAggregationLinks[31], tnode142);
                          }
                        }
                        tlist139 = TemplateUtil.singletonList(tnode140);
                      }
                      tlist138.addAll(tlist139);
                    }
                    environment.aggregate(tnode137, myAggregationLinks[32], tlist138);
                  }
                  {
                    final SNode tnode156 = environment.createOutputNode(myConcepts[22]);
                    {
                      TemplateContext context75 = context65.subContext();
                      {
                        final SNode tnode157 = environment.createOutputNode(myConcepts[37]);
                        {
                          TemplateContext context76 = context75.subContext();
                          {
                            final SNode tnode158 = environment.createOutputNode(myConcepts[8]);
                            {
                              TemplateContext context77 = context76.subContext();
                              {
                                final SNode tnode159 = environment.createOutputNode(myConcepts[9]);
                                {
                                  environment.associate(tnode159, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~BHMethodNotFoundException.<init>(jetbrains.mps.core.aspects.behaviour.api.BHDescriptor,jetbrains.mps.core.aspects.behaviour.api.SMethod)");
                                  TemplateContext context78 = context77.subContext();
                                  {
                                    final SNode tnode160 = environment.createOutputNode(myConcepts[38]);
                                    environment.aggregate(tnode159, myAggregationLinks[5], tnode160);
                                  }
                                  {
                                    final SNode tnode161 = environment.createOutputNode(myConcepts[15]);
                                    environment.resolveInTemplateLater(tnode161, myAssociationLinks[5], templateNode10, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843806", "method", context78);
                                    environment.aggregate(tnode159, myAggregationLinks[5], tnode161);
                                  }
                                }
                                environment.aggregate(tnode158, myAggregationLinks[6], tnode159);
                              }
                            }
                            environment.aggregate(tnode157, myAggregationLinks[21], tnode158);
                          }
                        }
                        environment.aggregate(tnode156, myAggregationLinks[12], tnode157);
                      }
                    }
                    environment.aggregate(tnode137, myAggregationLinks[33], tnode156);
                  }
                  {
                    final SNode tnode162 = environment.createOutputNode(myConcepts[15]);
                    environment.resolveInTemplateLater(tnode162, myAssociationLinks[5], templateNode11, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686911546", "methodIndex", context65);
                    environment.aggregate(tnode137, myAggregationLinks[34], tnode162);
                  }
                }
                environment.aggregate(tnode119, myAggregationLinks[12], tnode137);
              }
            }
            environment.aggregate(tnode104, myAggregationLinks[13], tnode119);
          }
          {
            final SNode tnode163 = environment.createOutputNode(myConcepts[24]);
            environment.associate(tnode163, myAssociationLinks[7], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)", "~Override");
            environment.aggregate(tnode104, myAggregationLinks[14], tnode163);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tnode104);
      }
      {
        final SNode tnode164 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode164);
      }
      {
        final SNode tnode165 = environment.createOutputNode(myConcepts[26]);
        {
          tnode165.setProperty(myProperties[10], "false");
          tnode165.setProperty(myProperties[2], "invokeSpecial0");
          tnode165.setProperty(myProperties[11], "false");
          tnode165.setProperty(myProperties[12], "false");
          TemplateContext context79 = context1.subContext();
          {
            final SNode tnode166 = environment.createOutputNode(myConcepts[27]);
            environment.aggregate(tnode165, myAggregationLinks[0], tnode166);
          }
          {
            final SNode tnode167 = environment.createOutputNode(myConcepts[31]);
            environment.nodeCopied(context79, tnode167, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843818");
            tnode167.setProperty(myProperties[2], "T");
            environment.aggregate(tnode165, myAggregationLinks[19], tnode167);
          }
          {
            final SNode tnode168 = environment.createOutputNode(myConcepts[32]);
            environment.resolveInTemplateLater(tnode168, myAssociationLinks[8], templateNode12, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843818", "T", context79);
            environment.aggregate(tnode165, myAggregationLinks[11], tnode168);
          }
          {
            final SNode tnode169 = environment.createOutputNode(myConcepts[23]);
            {
              tnode169.setProperty(myProperties[2], "concept");
              TemplateContext context80 = context79.subContext();
              {
                final SNode tnode170 = environment.createOutputNode(myConcepts[4]);
                environment.associate(tnode170, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)", "~SAbstractConcept");
                environment.aggregate(tnode169, myAggregationLinks[2], tnode170);
              }
              {
                final SNode tnode171 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode171, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                environment.aggregate(tnode169, myAggregationLinks[14], tnode171);
              }
            }
            environment.aggregate(tnode165, myAggregationLinks[15], tnode169);
          }
          {
            final SNode tnode172 = environment.createOutputNode(myConcepts[23]);
            {
              environment.nodeCopied(context79, tnode172, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843823");
              tnode172.setProperty(myProperties[2], "method");
              TemplateContext context81 = context79.subContext();
              {
                final SNode tnode173 = environment.createOutputNode(myConcepts[4]);
                {
                  environment.associate(tnode173, myAssociationLinks[1], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~SMethod");
                  TemplateContext context82 = context81.subContext();
                  {
                    final SNode tnode174 = environment.createOutputNode(myConcepts[32]);
                    environment.resolveInTemplateLater(tnode174, myAssociationLinks[8], templateNode13, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843818", "T", context82);
                    environment.aggregate(tnode173, myAggregationLinks[4], tnode174);
                  }
                }
                environment.aggregate(tnode172, myAggregationLinks[2], tnode173);
              }
              {
                final SNode tnode175 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode175, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
                environment.aggregate(tnode172, myAggregationLinks[14], tnode175);
              }
            }
            environment.aggregate(tnode165, myAggregationLinks[15], tnode172);
          }
          {
            final SNode tnode176 = environment.createOutputNode(myConcepts[23]);
            {
              environment.nodeCopied(context79, tnode176, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843827");
              tnode176.setProperty(myProperties[2], "parameters");
              TemplateContext context83 = context79.subContext();
              {
                final SNode tnode177 = environment.createOutputNode(myConcepts[28]);
                {
                  TemplateContext context84 = context83.subContext();
                  {
                    final SNode tnode178 = environment.createOutputNode(myConcepts[4]);
                    environment.associate(tnode178, myAssociationLinks[1], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)", "~Object");
                    environment.aggregate(tnode177, myAggregationLinks[17], tnode178);
                  }
                }
                environment.aggregate(tnode176, myAggregationLinks[2], tnode177);
              }
              {
                final SNode tnode179 = environment.createOutputNode(myConcepts[24]);
                environment.associate(tnode179, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~Nullable");
                environment.aggregate(tnode176, myAggregationLinks[14], tnode179);
              }
            }
            environment.aggregate(tnode165, myAggregationLinks[15], tnode176);
          }
          {
            final SNode tnode180 = environment.createOutputNode(myConcepts[22]);
            {
              TemplateContext context85 = context79.subContext();
              {
                final SNode tnode181 = environment.createOutputNode(myConcepts[33]);
                {
                  TemplateContext context86 = context85.subContext();
                  {
                    final SNode tnode182 = environment.createOutputNode(myConcepts[34]);
                    {
                      environment.nodeCopied(context86, tnode182, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/6862765979524954332");
                      tnode182.setProperty(myProperties[2], "methodIndex");
                      TemplateContext context87 = context86.subContext();
                      {
                        final SNode tnode183 = environment.createOutputNode(myConcepts[35]);
                        environment.aggregate(tnode182, myAggregationLinks[2], tnode183);
                      }
                      {
                        final SNode tnode184 = environment.createOutputNode(myConcepts[7]);
                        {
                          TemplateContext context88 = context87.subContext();
                          {
                            final SNode tnode185 = environment.createOutputNode(myConcepts[15]);
                            environment.resolveInTemplateLater(tnode185, myAssociationLinks[5], templateNode14, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/6029283687668622501", "BH_METHODS", context88);
                            environment.aggregate(tnode184, myAggregationLinks[8], tnode185);
                          }
                          {
                            final SNode tnode186 = environment.createOutputNode(myConcepts[11]);
                            {
                              environment.associate(tnode186, myAssociationLinks[2], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~List.indexOf(java.lang.Object)");
                              TemplateContext context89 = context88.subContext();
                              {
                                final SNode tnode187 = environment.createOutputNode(myConcepts[15]);
                                environment.resolveInTemplateLater(tnode187, myAssociationLinks[5], templateNode15, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843823", "method", context89);
                                environment.aggregate(tnode186, myAggregationLinks[5], tnode187);
                              }
                            }
                            environment.aggregate(tnode184, myAggregationLinks[9], tnode186);
                          }
                        }
                        environment.aggregate(tnode182, myAggregationLinks[1], tnode184);
                      }
                    }
                    environment.aggregate(tnode181, myAggregationLinks[20], tnode182);
                  }
                }
                environment.aggregate(tnode180, myAggregationLinks[12], tnode181);
              }
              {
                final SNode tnode188 = environment.createOutputNode(myConcepts[36]);
                {
                  TemplateContext context90 = context85.subContext();
                  {
                    final SNode tnode189 = environment.createOutputNode(myConcepts[22]);
                    {
                      TemplateContext context91 = context90.subContext();
                      {
                        final SNode tnode190 = environment.createOutputNode(myConcepts[37]);
                        {
                          TemplateContext context92 = context91.subContext();
                          {
                            final SNode tnode191 = environment.createOutputNode(myConcepts[8]);
                            {
                              TemplateContext context93 = context92.subContext();
                              {
                                final SNode tnode192 = environment.createOutputNode(myConcepts[9]);
                                {
                                  environment.associate(tnode192, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~BHMethodNotFoundException.<init>(jetbrains.mps.core.aspects.behaviour.api.BHDescriptor,jetbrains.mps.core.aspects.behaviour.api.SMethod)");
                                  TemplateContext context94 = context93.subContext();
                                  {
                                    final SNode tnode193 = environment.createOutputNode(myConcepts[38]);
                                    environment.aggregate(tnode192, myAggregationLinks[5], tnode193);
                                  }
                                  {
                                    final SNode tnode194 = environment.createOutputNode(myConcepts[15]);
                                    environment.resolveInTemplateLater(tnode194, myAssociationLinks[5], templateNode16, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843823", "method", context94);
                                    environment.aggregate(tnode192, myAggregationLinks[5], tnode194);
                                  }
                                }
                                environment.aggregate(tnode191, myAggregationLinks[6], tnode192);
                              }
                            }
                            environment.aggregate(tnode190, myAggregationLinks[21], tnode191);
                          }
                        }
                        environment.aggregate(tnode189, myAggregationLinks[12], tnode190);
                      }
                    }
                    environment.aggregate(tnode188, myAggregationLinks[22], tnode189);
                  }
                  {
                    final SNode tnode195 = environment.createOutputNode(myConcepts[39]);
                    {
                      TemplateContext context95 = context90.subContext();
                      {
                        final SNode tnode196 = environment.createOutputNode(myConcepts[13]);
                        tnode196.setProperty(myProperties[7], "0");
                        environment.aggregate(tnode195, myAggregationLinks[23], tnode196);
                      }
                      {
                        final SNode tnode197 = environment.createOutputNode(myConcepts[15]);
                        environment.resolveInTemplateLater(tnode197, myAssociationLinks[5], templateNode17, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/6862765979524954332", "methodIndex", context95);
                        environment.aggregate(tnode195, myAggregationLinks[24], tnode197);
                      }
                    }
                    environment.aggregate(tnode188, myAggregationLinks[25], tnode195);
                  }
                }
                environment.aggregate(tnode180, myAggregationLinks[12], tnode188);
              }
              {
                final SNode tnode198 = environment.createOutputNode(myConcepts[40]);
                {
                  TemplateContext context96 = context85.subContext();
                  {
                    final List<SNode> tlist199 = new ArrayList<SNode>();
                    final Iterable<SNode> loopList199 = QueriesGenerated.sourceNodesQuery_6_8(new SourceSubstituteMacroNodesContext(context96, loopMacroRef6));
                    int loopIndex_199 = 0;
                    for (SNode itnode199 : loopList199) {
                      if (itnode199 == null) {
                        continue;
                      }
                      TemplateContext context97 = context96.subContext(itnode199);
                      context97 = context97.withVariable("loop:index", loopIndex_199);
                      loopIndex_199++;
                      Collection<SNode> tlist200 = Collections.emptyList();
                      if (QueriesGenerated.ifMacro_Condition_6_7(new IfMacroContext(context97, ifMacroRef7))) {
                        final SNode tnode201 = environment.createOutputNode(myConcepts[41]);
                        {
                          TemplateContext context98 = context97.subContext();
                          {
                            final SNode tnode202 = environment.createOutputNode(myConcepts[13]);
                            SNodeAccessUtil.setPropertyValue(tnode202, myProperties[7], QueriesGenerated.propertyMacro_GetValue_6_13(new PropertyMacroContext(context98, "1", propertyMacro13)));
                            environment.aggregate(tnode201, myAggregationLinks[26], tnode202);
                          }
                          {
                            final SNode tnode203 = environment.createOutputNode(myConcepts[22]);
                            {
                              TemplateContext context99 = context98.subContext();
                              {
                                Collection<SNode> tlist204 = Collections.emptyList();
                                if (QueriesGenerated.ifMacro_Condition_6_5(new IfMacroContext(context99, ifMacroRef5))) {
                                  final SNode tnode205 = environment.createOutputNode(myConcepts[42]);
                                  {
                                    TemplateContext context100 = context99.subContext();
                                    {
                                      final SNode tnode206 = environment.createOutputNode(myConcepts[43]);
                                      {
                                        TemplateContext context101 = context100.subContext();
                                        {
                                          final SNode tnode207 = environment.createOutputNode(myConcepts[44]);
                                          {
                                            TemplateContext context102 = context101.subContext();
                                            {
                                              final SNode tnode208 = environment.createOutputNode(myConcepts[43]);
                                              {
                                                TemplateContext context103 = context102.subContext();
                                                {
                                                  Collection<SNode> tlist209 = null;
                                                  tlist209 = environment.callSite(new Template_reduce_MethodInvocation(), new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4547736967710992679")).apply(context103);
                                                  environment.aggregate(tnode208, myAggregationLinks[27], tlist209);
                                                }
                                                {
                                                  Collection<SNode> tlist210 = null;
                                                  final SNode copySrcInput210 = QueriesGenerated.sourceNodeQuery_6_7(new SourceSubstituteMacroNodeContext(context103, copySrcMacro6));
                                                  tlist210 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput210), copySrcMacro6, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7830995205626821824", context103);
                                                  environment.aggregate(tnode208, myAggregationLinks[28], tlist210);
                                                }
                                              }
                                              environment.aggregate(tnode207, myAggregationLinks[29], tnode208);
                                            }
                                          }
                                          environment.aggregate(tnode206, myAggregationLinks[27], tnode207);
                                        }
                                        {
                                          final SNode tnode211 = environment.createOutputNode(myConcepts[32]);
                                          environment.resolveInTemplateLater(tnode211, myAssociationLinks[8], templateNode18, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843818", "T", context101);
                                          environment.aggregate(tnode206, myAggregationLinks[28], tnode211);
                                        }
                                      }
                                      environment.aggregate(tnode205, myAggregationLinks[30], tnode206);
                                    }
                                  }
                                  tlist204 = TemplateUtil.singletonList(tnode205);
                                } else {
                                  final SNode tnode212 = environment.createOutputNode(myConcepts[29]);
                                  {
                                    TemplateContext context104 = context99.subContext();
                                    {
                                      Collection<SNode> tlist213 = null;
                                      tlist213 = environment.callSite(new Template_reduce_MethodInvocation(), new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4547736967711027188")).apply(context104);
                                      environment.aggregate(tnode212, myAggregationLinks[18], tlist213);
                                    }
                                  }
                                  tlist204 = TemplateUtil.singletonList(tnode212);
                                }
                                environment.aggregate(tnode203, myAggregationLinks[12], tlist204);
                              }
                              {
                                Collection<SNode> tlist214 = Collections.emptyList();
                                if (QueriesGenerated.ifMacro_Condition_6_6(new IfMacroContext(context99, ifMacroRef6))) {
                                  final SNode tnode215 = environment.createOutputNode(myConcepts[42]);
                                  {
                                    TemplateContext context105 = context99.subContext();
                                    {
                                      final SNode tnode216 = environment.createOutputNode(myConcepts[10]);
                                      environment.aggregate(tnode215, myAggregationLinks[30], tnode216);
                                    }
                                  }
                                  tlist214 = TemplateUtil.singletonList(tnode215);
                                }
                                environment.aggregate(tnode203, myAggregationLinks[12], tlist214);
                              }
                            }
                            environment.aggregate(tnode201, myAggregationLinks[31], tnode203);
                          }
                        }
                        tlist200 = TemplateUtil.singletonList(tnode201);
                      }
                      tlist199.addAll(tlist200);
                    }
                    environment.aggregate(tnode198, myAggregationLinks[32], tlist199);
                  }
                  {
                    final SNode tnode217 = environment.createOutputNode(myConcepts[22]);
                    {
                      TemplateContext context106 = context96.subContext();
                      {
                        final SNode tnode218 = environment.createOutputNode(myConcepts[37]);
                        {
                          TemplateContext context107 = context106.subContext();
                          {
                            final SNode tnode219 = environment.createOutputNode(myConcepts[8]);
                            {
                              TemplateContext context108 = context107.subContext();
                              {
                                final SNode tnode220 = environment.createOutputNode(myConcepts[9]);
                                {
                                  environment.associate(tnode220, myAssociationLinks[2], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~BHMethodNotFoundException.<init>(jetbrains.mps.core.aspects.behaviour.api.BHDescriptor,jetbrains.mps.core.aspects.behaviour.api.SMethod)");
                                  TemplateContext context109 = context108.subContext();
                                  {
                                    final SNode tnode221 = environment.createOutputNode(myConcepts[38]);
                                    environment.aggregate(tnode220, myAggregationLinks[5], tnode221);
                                  }
                                  {
                                    final SNode tnode222 = environment.createOutputNode(myConcepts[15]);
                                    environment.resolveInTemplateLater(tnode222, myAssociationLinks[5], templateNode19, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7977232384686843823", "method", context109);
                                    environment.aggregate(tnode220, myAggregationLinks[5], tnode222);
                                  }
                                }
                                environment.aggregate(tnode219, myAggregationLinks[6], tnode220);
                              }
                            }
                            environment.aggregate(tnode218, myAggregationLinks[21], tnode219);
                          }
                        }
                        environment.aggregate(tnode217, myAggregationLinks[12], tnode218);
                      }
                    }
                    environment.aggregate(tnode198, myAggregationLinks[33], tnode217);
                  }
                  {
                    final SNode tnode223 = environment.createOutputNode(myConcepts[15]);
                    environment.resolveInTemplateLater(tnode223, myAssociationLinks[5], templateNode20, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/6862765979524954332", "methodIndex", context96);
                    environment.aggregate(tnode198, myAggregationLinks[34], tnode223);
                  }
                }
                environment.aggregate(tnode180, myAggregationLinks[12], tnode198);
              }
            }
            environment.aggregate(tnode165, myAggregationLinks[13], tnode180);
          }
          {
            final SNode tnode224 = environment.createOutputNode(myConcepts[24]);
            environment.associate(tnode224, myAssociationLinks[7], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)", "~Override");
            environment.aggregate(tnode165, myAggregationLinks[14], tnode224);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tnode165);
      }
      {
        final SNode tnode225 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode225);
      }
      {
        final SNode tnode226 = environment.createOutputNode(myConcepts[26]);
        {
          tnode226.setProperty(myProperties[10], "false");
          tnode226.setProperty(myProperties[2], "getDeclaredMethods");
          tnode226.setProperty(myProperties[11], "false");
          TemplateContext context110 = context1.subContext();
          {
            final SNode tnode227 = environment.createOutputNode(myConcepts[6]);
            environment.aggregate(tnode226, myAggregationLinks[0], tnode227);
          }
          {
            final SNode tnode228 = environment.createOutputNode(myConcepts[4]);
            {
              environment.associate(tnode228, myAssociationLinks[1], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)", "~List");
              TemplateContext context111 = context110.subContext();
              {
                final SNode tnode229 = environment.createOutputNode(myConcepts[4]);
                {
                  environment.associate(tnode229, myAssociationLinks[1], "d936855b-48da-4812-a8a0-2bfddd633ac5/java:jetbrains.mps.core.aspects.behaviour.api(jetbrains.mps.lang.behavior.api/)", "~SMethod");
                  TemplateContext context112 = context111.subContext();
                  {
                    final SNode tnode230 = environment.createOutputNode(myConcepts[18]);
                    environment.aggregate(tnode229, myAggregationLinks[4], tnode230);
                  }
                }
                environment.aggregate(tnode228, myAggregationLinks[4], tnode229);
              }
            }
            environment.aggregate(tnode226, myAggregationLinks[11], tnode228);
          }
          {
            final SNode tnode231 = environment.createOutputNode(myConcepts[22]);
            {
              TemplateContext context113 = context110.subContext();
              {
                final SNode tnode232 = environment.createOutputNode(myConcepts[42]);
                {
                  TemplateContext context114 = context113.subContext();
                  {
                    final SNode tnode233 = environment.createOutputNode(myConcepts[15]);
                    environment.resolveInTemplateLater(tnode233, myAssociationLinks[5], templateNode21, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/6029283687668622501", "BH_METHODS", context114);
                    environment.aggregate(tnode232, myAggregationLinks[30], tnode233);
                  }
                }
                environment.aggregate(tnode231, myAggregationLinks[12], tnode232);
              }
            }
            environment.aggregate(tnode226, myAggregationLinks[13], tnode231);
          }
          {
            final SNode tnode234 = environment.createOutputNode(myConcepts[24]);
            environment.associate(tnode234, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
            environment.aggregate(tnode226, myAggregationLinks[14], tnode234);
          }
          {
            final SNode tnode235 = environment.createOutputNode(myConcepts[24]);
            environment.associate(tnode235, myAssociationLinks[7], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)", "~Override");
            environment.aggregate(tnode226, myAggregationLinks[14], tnode235);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tnode226);
      }
      {
        final SNode tnode236 = environment.createOutputNode(myConcepts[5]);
        environment.aggregate(tnode1, myAggregationLinks[3], tnode236);
      }
      {
        final SNode tnode237 = environment.createOutputNode(myConcepts[26]);
        {
          tnode237.setProperty(myProperties[10], "false");
          tnode237.setProperty(myProperties[2], "getConcept");
          tnode237.setProperty(myProperties[11], "false");
          TemplateContext context115 = context1.subContext();
          {
            final SNode tnode238 = environment.createOutputNode(myConcepts[6]);
            environment.aggregate(tnode237, myAggregationLinks[0], tnode238);
          }
          {
            final SNode tnode239 = environment.createOutputNode(myConcepts[4]);
            environment.associate(tnode239, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)", "~SAbstractConcept");
            environment.aggregate(tnode237, myAggregationLinks[11], tnode239);
          }
          {
            final SNode tnode240 = environment.createOutputNode(myConcepts[24]);
            environment.associate(tnode240, myAssociationLinks[7], "3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)", "~NotNull");
            environment.aggregate(tnode237, myAggregationLinks[14], tnode240);
          }
          {
            final SNode tnode241 = environment.createOutputNode(myConcepts[22]);
            {
              TemplateContext context116 = context115.subContext();
              {
                final SNode tnode242 = environment.createOutputNode(myConcepts[42]);
                {
                  TemplateContext context117 = context116.subContext();
                  {
                    final SNode tnode243 = environment.createOutputNode(myConcepts[15]);
                    environment.resolveInTemplateLater(tnode243, myAssociationLinks[5], templateNode22, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4006517209906245669", "CONCEPT", context117);
                    environment.aggregate(tnode242, myAggregationLinks[30], tnode243);
                  }
                }
                environment.aggregate(tnode241, myAggregationLinks[12], tnode242);
              }
            }
            environment.aggregate(tnode237, myAggregationLinks[13], tnode241);
          }
          {
            final SNode tnode244 = environment.createOutputNode(myConcepts[24]);
            environment.associate(tnode244, myAssociationLinks[7], "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)", "~Override");
            environment.aggregate(tnode237, myAggregationLinks[14], tnode244);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[3], tnode237);
      }
      {
        final SNode tnode245 = environment.createOutputNode(myConcepts[6]);
        environment.aggregate(tnode1, myAggregationLinks[0], tnode245);
      }
    }
    sink.add(null, TemplateUtil.singletonList(tnode1));
  }