sysml-v2-lsp 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/server/browserServerMain.js +28741 -0
- package/dist/server/mcpServer.js +1 -1
- package/dist/server/server.js +50 -50
- package/index.cjs +8 -1
- package/package.json +4 -3
package/dist/server/mcpServer.js
CHANGED
|
@@ -131,7 +131,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
131
131
|
`&&line++;return line}return 1}get inputStream(){return this.i<this.tokens.length?this.tokens[this.i].inputStream:this.eofToken!==null?this.eofToken.inputStream:this.tokens.length>0?this.tokens[this.tokens.length-1].inputStream:null}getSourceName(){if(this.sourceName!==null)return this.sourceName;let inputStream=this.inputStream;return inputStream!==null?inputStream.getSourceName():"List"}},InterpreterRuleContext=class extends ParserRuleContext{static{__name(this,"InterpreterRuleContext")}#ruleIndex;constructor(ruleIndex,parent,invokingStateNumber){super(parent,invokingStateNumber),this.#ruleIndex=ruleIndex}get ruleIndex(){return this.#ruleIndex}},TraceListener=class{static{__name(this,"TraceListener")}parser;constructor(parser){this.parser=parser}enterEveryRule(ctx2){console.log("enter "+this.parser.ruleNames[ctx2.ruleIndex]+", LT(1)="+this.parser.inputStream?.LT(1)?.text)}visitTerminal(node){console.log("consume "+node.getSymbol()+" rule "+this.parser.ruleNames[this.parser.context.ruleIndex])}exitEveryRule(ctx2){console.log("exit "+this.parser.ruleNames[ctx2.ruleIndex]+", LT(1)="+this.parser.inputStream?.LT(1)?.text)}visitErrorNode(_node){}},Parser=class extends Recognizer{static{__name(this,"Parser")}printer=null;buildParseTrees=!0;errorHandler=new DefaultErrorStrategy;context=null;precedenceStack=[];parseListeners=null;syntaxErrors=0;matchedEOF=!1;tracer=null;bypassAltsAtnCache=null;#inputStream;constructor(input){super(),this.precedenceStack.push(0),this.syntaxErrors=0,this.#inputStream=input}reset(rewindInputStream=!0){rewindInputStream&&this.inputStream.seek(0),this.errorHandler.reset(this),this.context=null,this.syntaxErrors=0,this.matchedEOF=!1,this.setTrace(!1),this.precedenceStack=[],this.precedenceStack.push(0),this.interpreter&&this.interpreter.reset()}match(ttype){let t=this.getCurrentToken();return t.type===ttype?(ttype===Token.EOF&&(this.matchedEOF=!0),this.errorHandler.reportMatch(this),this.consume()):(t=this.errorHandler.recoverInline(this),this.buildParseTrees&&t.tokenIndex===-1&&this.context.addErrorNode(this.createErrorNode(this.context,t))),t}matchWildcard(){let t=this.getCurrentToken();return t.type>0?(this.errorHandler.reportMatch(this),this.consume()):(t=this.errorHandler.recoverInline(this),this.buildParseTrees&&t.tokenIndex===-1&&this.context.addErrorNode(this.createErrorNode(this.context,t))),t}getParseListeners(){return this.parseListeners??[]}addParseListener(listener){if(listener===null)throw new Error("listener");this.parseListeners===null&&(this.parseListeners=[]),this.parseListeners.push(listener)}removeParseListener(listener){if(this.parseListeners!==null&&listener!==null){let idx=this.parseListeners.indexOf(listener);idx>=0&&this.parseListeners.splice(idx,1),this.parseListeners.length===0&&(this.parseListeners=null)}}removeParseListeners(){this.parseListeners=null}triggerEnterRuleEvent(){if(this.parseListeners!==null){let ctx2=this.context;this.parseListeners.forEach(listener=>{listener.enterEveryRule(ctx2),ctx2.enterRule(listener)})}}triggerExitRuleEvent(){if(this.parseListeners!==null){let ctx2=this.context;this.parseListeners.slice(0).reverse().forEach(listener=>{ctx2.exitRule(listener),listener.exitEveryRule(ctx2)})}}getTokenFactory(){return this.inputStream.tokenSource.tokenFactory}setTokenFactory(factory){this.inputStream.tokenSource.tokenFactory=factory}compileParseTreePattern(pattern,patternRuleIndex,lexer){if(!lexer&&this.tokenStream!==null){let tokenSource=this.tokenStream.tokenSource;tokenSource instanceof Lexer&&(lexer=tokenSource)}if(!lexer)throw new Error("Parser can't discover a lexer to use");return new ParseTreePatternMatcher(lexer,this).compile(pattern,patternRuleIndex)}getATNWithBypassAlts(){let serializedAtn=this.serializedATN;if(serializedAtn===null)throw new Error("The current parser does not support an ATN with bypass alternatives.");if(this.bypassAltsAtnCache!==null)return this.bypassAltsAtnCache;let deserializationOptions={readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!0};return this.bypassAltsAtnCache=new ATNDeserializer(deserializationOptions).deserialize(serializedAtn),this.bypassAltsAtnCache}get numberOfSyntaxErrors(){return this.syntaxErrors}get inputStream(){return this.#inputStream}set inputStream(input){this.tokenStream=input}get tokenStream(){return this.#inputStream}set tokenStream(input){this.reset(!1),this.#inputStream=input}getCurrentToken(){return this.inputStream.LT(1)}notifyErrorListeners(msg,offendingToken,err){offendingToken=offendingToken??null,err=err??null,offendingToken===null&&(offendingToken=this.getCurrentToken()),this.syntaxErrors+=1;let line=offendingToken.line,column=offendingToken.column;this.errorListenerDispatch.syntaxError(this,offendingToken,line,column,msg,err)}consume(){let o=this.getCurrentToken();o.type!==Token.EOF&&this.tokenStream.consume();let hasListener=this.parseListeners!==null&&this.parseListeners.length>0;if(this.buildParseTrees||hasListener){let node;this.errorHandler.inErrorRecoveryMode(this)?node=this.context.addErrorNode(this.createErrorNode(this.context,o)):node=this.context.addTokenNode(o),hasListener&&this.parseListeners.forEach(listener=>{node instanceof ErrorNode?listener.visitErrorNode(node):listener.visitTerminal(node)})}return o}addContextToParseTree(){this.context?.parent&&this.context.parent.addChild(this.context)}enterRule(localctx,state,_ruleIndex){this.state=state,this.context=localctx,this.context.start=this.inputStream.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this.matchedEOF?this.context.stop=this.inputStream.LT(1):this.context.stop=this.inputStream.LT(-1),this.triggerExitRuleEvent(),this.state=this.context.invokingState,this.context=this.context.parent}enterOuterAlt(localctx,altNum){localctx.setAltNumber(altNum),this.buildParseTrees&&this.context!==localctx&&this.context?.parent&&(this.context.parent.removeLastChild(),this.context.parent.addChild(localctx)),this.context=localctx}getPrecedence(){return this.precedenceStack.length===0?-1:this.precedenceStack[this.precedenceStack.length-1]}enterRecursionRule(localctx,state,ruleIndex,precedence){this.state=state,this.precedenceStack.push(precedence),this.context=localctx,this.context.start=this.inputStream.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(localctx,state,_ruleIndex){let previous=this.context;previous.parent=localctx,previous.invokingState=state,previous.stop=this.inputStream.LT(-1),this.context=localctx,this.context.start=previous.start,this.buildParseTrees&&this.context.addChild(previous),this.triggerEnterRuleEvent()}unrollRecursionContexts(parent){this.precedenceStack.pop(),this.context.stop=this.inputStream.LT(-1);let retCtx=this.context,parseListeners=this.getParseListeners();if(parseListeners!==null&&parseListeners.length>0)for(;this.context!==parent;)this.triggerExitRuleEvent(),this.context=this.context.parent;else this.context=parent;retCtx.parent=parent,this.buildParseTrees&&parent!==null&&parent.addChild(retCtx)}getInvokingContext(ruleIndex){let ctx2=this.context;for(;ctx2!==null;){if(ctx2.ruleIndex===ruleIndex)return ctx2;ctx2=ctx2.parent}return null}precpred(_localctx,precedence){return precedence>=this.precedenceStack[this.precedenceStack.length-1]}isExpectedToken(symbol2){let atn=this.interpreter.atn,ctx2=this.context,s=atn.states[this.state],following=atn.nextTokens(s);if(following.contains(symbol2))return!0;if(!following.contains(Token.EPSILON))return!1;for(;ctx2!==null&&ctx2.invokingState>=0&&following.contains(Token.EPSILON);){let rt=atn.states[ctx2.invokingState].transitions[0];if(following=atn.nextTokens(rt.followState),following.contains(symbol2))return!0;ctx2=ctx2.parent}return!!(following.contains(Token.EPSILON)&&symbol2===Token.EOF)}getExpectedTokens(){return this.interpreter.atn.getExpectedTokens(this.state,this.context)}getExpectedTokensWithinCurrentRule(){let atn=this.interpreter.atn,s=atn.states[this.state];return atn.nextTokens(s)}getRuleIndex(ruleName){return this.getRuleIndexMap().get(ruleName)??-1}getRuleInvocationStack(p){p=p??null,p===null&&(p=this.context);let stack=[];for(;p!==null;){let ruleIndex=p.ruleIndex;ruleIndex<0?stack.push("n/a"):stack.push(this.ruleNames[ruleIndex]),p=p.parent}return stack}getDFAStrings(){return this.interpreter.decisionToDFA.toString()}dumpDFA(){let seenOne=!1;for(let dfa of this.interpreter.decisionToDFA)dfa.length>0&&(seenOne&&console.log(),this.printer&&(this.printer.println("Decision "+dfa.decision+":"),this.printer.print(dfa.toString(this.vocabulary))),seenOne=!0)}getSourceName(){return this.inputStream.getSourceName()}getParseInfo(){let interp=this.interpreter;if(interp instanceof ProfilingATNSimulator)return new ParseInfo(interp)}setProfile(profile){let interp=this.interpreter,saveMode=interp.predictionMode;if(profile)interp instanceof ProfilingATNSimulator||(this.interpreter=new ProfilingATNSimulator(this));else if(interp instanceof ProfilingATNSimulator){let sharedContextCache=interp.sharedContextCache;if(sharedContextCache){let sim=new ParserATNSimulator(this,this.atn,interp.decisionToDFA,sharedContextCache);this.interpreter=sim}}this.interpreter.predictionMode=saveMode}setTrace(trace){trace?(this.tracer!==null&&this.removeParseListener(this.tracer),this.tracer=new TraceListener(this),this.addParseListener(this.tracer)):(this.removeParseListener(this.tracer),this.tracer=null)}createTerminalNode(parent,t){return new TerminalNode(t)}createErrorNode(parent,t){return new ErrorNode(t)}},ParserInterpreter=class extends Parser{static{__name(this,"ParserInterpreter")}rootContext;overrideDecisionRoot=null;parentContextStack=[];overrideDecisionAlt=-1;overrideDecisionReached=!1;decisionToDFA;sharedContextCache=new PredictionContextCache;pushRecursionContextStates;#overrideDecision=-1;#overrideDecisionInputIndex=-1;#grammarFileName;#atn;#ruleNames;#vocabulary;constructor(grammarFileName,vocabulary,ruleNames,atn,input){super(input),this.#grammarFileName=grammarFileName,this.#atn=atn,this.#ruleNames=ruleNames.slice(0),this.#vocabulary=vocabulary,this.pushRecursionContextStates=new BitSet;for(let state of atn.states)state instanceof StarLoopEntryState&&state.precedenceRuleDecision&&this.pushRecursionContextStates.set(state.stateNumber);this.decisionToDFA=atn.decisionToState.map((ds,i)=>new DFA(ds,i)),this.interpreter=new ParserATNSimulator(this,atn,this.decisionToDFA,this.sharedContextCache)}reset(){super.reset(),this.overrideDecisionReached=!1,this.overrideDecisionRoot=null}get atn(){return this.#atn}get vocabulary(){return this.#vocabulary}get ruleNames(){return this.#ruleNames}get grammarFileName(){return this.#grammarFileName}get atnState(){return this.#atn.states[this.state]}parse(startRuleIndex){let startRuleStartState=this.#atn.ruleToStartState[startRuleIndex];for(this.rootContext=this.createInterpreterRuleContext(null,ATNState.INVALID_STATE_NUMBER,startRuleIndex),startRuleStartState.isLeftRecursiveRule?this.enterRecursionRule(this.rootContext,startRuleStartState.stateNumber,startRuleIndex,0):this.enterRule(this.rootContext,startRuleStartState.stateNumber,startRuleIndex);;){let p=this.atnState;switch(p.constructor.stateType){case ATNState.RULE_STOP:{if(this.context?.isEmpty())if(startRuleStartState.isLeftRecursiveRule){let result=this.context,parentContext=this.parentContextStack.pop();return this.unrollRecursionContexts(parentContext[0]),result}else return this.exitRule(),this.rootContext;this.visitRuleStopState(p);break}default:{try{this.visitState(p)}catch(e){if(e instanceof RecognitionException)this.state=this.#atn.ruleToStopState[p.ruleIndex].stateNumber,this.errorHandler.reportError(this,e),this.recover(e);else throw e}break}}}}addDecisionOverride(decision,tokenIndex,forcedAlt){this.#overrideDecision=decision,this.#overrideDecisionInputIndex=tokenIndex,this.overrideDecisionAlt=forcedAlt}get overrideDecision(){return this.#overrideDecision}get overrideDecisionInputIndex(){return this.#overrideDecisionInputIndex}enterRecursionRule(localctx,state,ruleIndex,precedence){this.parentContextStack.push([this.context,localctx.invokingState]),super.enterRecursionRule(localctx,state,ruleIndex,precedence)}get serializedATN(){throw new Error("The ParserInterpreter does not support the serializedATN property.")}visitState(p){let predictedAlt=1;p instanceof DecisionState&&(predictedAlt=this.visitDecisionState(p));let transition=p.transitions[predictedAlt-1];switch(transition.transitionType){case Transition.EPSILON:if(this.pushRecursionContextStates.get(p.stateNumber)&&transition.target.constructor.stateType!==ATNState.LOOP_END){let parentContext=this.parentContextStack[this.parentContextStack.length-1],localctx=this.createInterpreterRuleContext(parentContext[0],parentContext[1],this.context.ruleIndex);this.pushNewRecursionContext(localctx,this.#atn.ruleToStartState[p.ruleIndex].stateNumber,this.context.ruleIndex)}break;case Transition.ATOM:this.match(transition.label.minElement);break;case Transition.RANGE:case Transition.SET:case Transition.NOT_SET:transition.matches(this.inputStream.LA(1),Token.MIN_USER_TOKEN_TYPE,65535)||this.recoverInline(),this.matchWildcard();break;case Transition.WILDCARD:this.matchWildcard();break;case Transition.RULE:let ruleStartState=transition.target,ruleIndex=ruleStartState.ruleIndex,newContext=this.createInterpreterRuleContext(this.context,p.stateNumber,ruleIndex);ruleStartState.isLeftRecursiveRule?this.enterRecursionRule(newContext,ruleStartState.stateNumber,ruleIndex,transition.precedence):this.enterRule(newContext,transition.target.stateNumber,ruleIndex);break;case Transition.PREDICATE:let predicateTransition=transition;if(!this.sempred(this.context,predicateTransition.ruleIndex,predicateTransition.predIndex))throw new FailedPredicateException(this);break;case Transition.ACTION:let actionTransition=transition;this.action(this.context,actionTransition.ruleIndex,actionTransition.actionIndex);break;case Transition.PRECEDENCE:if(!this.precpred(this.context,transition.precedence)){let precedence=transition.precedence;throw new FailedPredicateException(this,`precpred(_ctx, ${precedence})`)}break;default:throw new Error("UnsupportedOperationException: Unrecognized ATN transition type.")}this.state=transition.target.stateNumber}visitDecisionState(p){let predictedAlt=1;if(p.transitions.length>1){this.errorHandler.sync(this);let decision=p.decision;decision===this.#overrideDecision&&this.inputStream.index===this.#overrideDecisionInputIndex&&!this.overrideDecisionReached?(predictedAlt=this.overrideDecisionAlt,this.overrideDecisionReached=!0):predictedAlt=this.interpreter.adaptivePredict(this.inputStream,decision,this.context)}return predictedAlt}createInterpreterRuleContext(parent,invokingStateNumber,ruleIndex){return new InterpreterRuleContext(ruleIndex,parent,invokingStateNumber)}visitRuleStopState(p){if(this.#atn.ruleToStartState[p.ruleIndex].isLeftRecursiveRule){let[parentContext,state]=this.parentContextStack.pop();this.unrollRecursionContexts(parentContext),this.state=state}else this.exitRule();let ruleTransition=this.#atn.states[this.state].transitions[0];this.state=ruleTransition.followState.stateNumber}recover(e){let i=this.inputStream.index;if(this.errorHandler.recover(this,e),this.inputStream.index===i){let tok=e.offendingToken;if(!tok)throw new Error("Expected exception to have an offending token");let source=tok.tokenSource,stream=source?.inputStream??null,sourcePair=[source,stream];if(e instanceof InputMismatchException){let expectedTokens=e.getExpectedTokens();if(!expectedTokens)throw new Error("Expected the exception to provide expected tokens");let expectedTokenType=Token.INVALID_TYPE;expectedTokens.length!==0&&(expectedTokenType=expectedTokens.minElement);let errToken=this.getTokenFactory().create(sourcePair,expectedTokenType,tok.text,Token.DEFAULT_CHANNEL,-1,-1,tok.line,tok.column);this.context.addErrorNode(this.createErrorNode(this.context,errToken))}else{let errToken=this.getTokenFactory().create(sourcePair,Token.INVALID_TYPE,tok.text,Token.DEFAULT_CHANNEL,-1,-1,tok.line,tok.column);this.context.addErrorNode(this.createErrorNode(this.context,errToken))}}}recoverInline(){return this.errorHandler.recoverInline(this)}},MultiMap=class extends Map{static{__name(this,"MultiMap")}map(key,value){let elementsForKey=this.get(key);elementsForKey||(elementsForKey=new Array,this.set(key,elementsForKey)),elementsForKey.push(value)}getPairs(){let pairs=new Array;for(let key of this.keys()){let keys=this.get(key)??[];for(let value of keys)pairs.push([key,value])}return pairs}toString(){let entries=[];return this.forEach((value,key)=>{entries.push(`${key}=[${value.join(", ")}]`)}),`{${entries.join(", ")}}`}},CannotInvokeStartRuleError=class extends Error{static{__name(this,"CannotInvokeStartRuleError")}constructor(e){super(),this.cause=e}},RuleTagToken=class{static{__name(this,"RuleTagToken")}label;ruleName;bypassTokenType;constructor(ruleName,bypassTokenType,label){this.ruleName=ruleName,this.bypassTokenType=bypassTokenType,this.label=label}get channel(){return Token.DEFAULT_CHANNEL}get text(){return this.label!==void 0?"<"+this.label+":"+this.ruleName+">":"<"+this.ruleName+">"}get type(){return this.bypassTokenType}get line(){return 0}get column(){return-1}get tokenIndex(){return-1}get start(){return-1}get stop(){return-1}get tokenSource(){return null}get inputStream(){return null}toString(){return this.ruleName+":"+this.bypassTokenType}},StartRuleDoesNotConsumeFullPatternError=class extends Error{static{__name(this,"StartRuleDoesNotConsumeFullPatternError")}},TagChunk=class extends Chunk{static{__name(this,"TagChunk")}tag;label;constructor(...args){let label,tag;if(args.length===1?tag=args[0]:(label=args[0],tag=args[1]),super(),!tag)throw new Error("tag cannot be null or empty");this.label=label,this.tag=tag}toString(){return this.label!==void 0?this.label+":"+this.tag:this.tag}},TextChunk=class extends Chunk{static{__name(this,"TextChunk")}text;constructor(text){super(),this.text=text}toString(){return"'"+this.text+"'"}},TokenTagToken=class extends CommonToken{static{__name(this,"TokenTagToken")}tokenName;label;constructor(tokenName,type,label){super({type,source:CommonToken.EMPTY_SOURCE}),this.tokenName=tokenName,this.label=label}get text(){return this.label!==void 0?"<"+this.label+":"+this.tokenName+">":"<"+this.tokenName+">"}toString(){return this.tokenName+":"+this.type}},ParseTreePatternMatcher=class{static{__name(this,"ParseTreePatternMatcher")}start="<";stop=">";escape="\\";lexer;parser;constructor(lexer,parser){this.lexer=lexer,this.parser=parser}setDelimiters(start,stop,escapeLeft){if(start===null||start.length===0)throw new Error("start cannot be null or empty");if(stop===null||stop.length===0)throw new Error("stop cannot be null or empty");this.start=start,this.stop=stop,this.escape=escapeLeft}matches(...args){switch(args.length){case 2:{let[tree,pattern]=args,labels=new MultiMap;return this.matchImpl(tree,pattern.getPatternTree(),labels)===null}case 3:{let[tree,pattern,patternRuleIndex]=args,p=this.compile(pattern,patternRuleIndex);return this.matches(tree,p)}default:throw new Error("Invalid number of arguments")}}match(...args){switch(args.length){case 2:{let[tree,pattern]=args,labels=new MultiMap,mismatchedNode=this.matchImpl(tree,pattern.getPatternTree(),labels);return new ParseTreeMatch(tree,pattern,labels,mismatchedNode)}case 3:{let[tree,pattern,patternRuleIndex]=args,p=this.compile(pattern,patternRuleIndex);return this.match(tree,p)}default:throw new Error("Invalid number of arguments")}}compile(pattern,patternRuleIndex){let tokenList=this.tokenize(pattern),tokenSrc=new ListTokenSource(tokenList),tokens=new CommonTokenStream(tokenSrc),parserInterp=new ParserInterpreter(this.parser.grammarFileName,this.parser.vocabulary,this.parser.ruleNames,this.parser.getATNWithBypassAlts(),tokens);parserInterp.removeErrorListeners();let tree=null;try{parserInterp.errorHandler=new BailErrorStrategy,tree=parserInterp.parse(patternRuleIndex)}catch(error51){throw error51 instanceof ParseCancellationException?error51.cause:error51 instanceof RecognitionException?error51:error51 instanceof Error?new CannotInvokeStartRuleError(error51):error51}if(tokens.LA(1)!==Token.EOF)throw new StartRuleDoesNotConsumeFullPatternError;return new ParseTreePattern(this,pattern,patternRuleIndex,tree)}getLexer(){return this.lexer}getParser(){return this.parser}tokenize(pattern){let chunks=this.split(pattern),tokens=new Array;for(let chunk of chunks)if(chunk instanceof TagChunk){let tagChunk=chunk,char=tagChunk.tag[0];if(char===char.toUpperCase()){let ttype=this.parser.getTokenType(tagChunk.tag);if(ttype===Token.INVALID_TYPE)throw new Error("Unknown token "+tagChunk.tag+" in pattern: "+pattern);let t=new TokenTagToken(tagChunk.tag,ttype,tagChunk.label);tokens.push(t)}else if(char===char.toLowerCase()){let ruleIndex=this.parser.getRuleIndex(tagChunk.tag);if(ruleIndex===-1)throw new Error("Unknown rule "+tagChunk.tag+" in pattern: "+pattern);let ruleImaginaryTokenType=this.parser.getATNWithBypassAlts().ruleToTokenType[ruleIndex];tokens.push(new RuleTagToken(tagChunk.tag,ruleImaginaryTokenType,tagChunk.label))}else throw new Error("invalid tag: "+tagChunk.tag+" in pattern: "+pattern)}else{let textChunk=chunk,input=CharStream.fromString(textChunk.text);this.lexer.inputStream=input;let t=this.lexer.nextToken();for(;t.type!==Token.EOF;)tokens.push(t),t=this.lexer.nextToken()}return tokens}split(pattern){let p=0,n2=pattern.length,chunks=new Array,starts=new Array,stops=new Array;for(;p<n2;)p===pattern.indexOf(this.escape+this.start,p)?p+=this.escape.length+this.start.length:p===pattern.indexOf(this.escape+this.stop,p)?p+=this.escape.length+this.stop.length:p===pattern.indexOf(this.start,p)?(starts.push(p),p+=this.start.length):p===pattern.indexOf(this.stop,p)?(stops.push(p),p+=this.stop.length):p++;if(starts.length>stops.length)throw new Error("unterminated tag in pattern: "+pattern);if(starts.length<stops.length)throw new Error("missing start tag in pattern: "+pattern);let tagCount=starts.length;for(let i=0;i<tagCount;i++)if(starts[i]>=stops[i])throw new Error("tag delimiters out of order in pattern: "+pattern);if(tagCount===0){let text=pattern.substring(0,n2);chunks.push(new TextChunk(text))}if(tagCount>0&&starts[0]>0){let text=pattern.substring(0,starts[0]);chunks.push(new TextChunk(text))}for(let i=0;i<tagCount;i++){let tag=pattern.substring(starts[i]+this.start.length,stops[i]),ruleOrToken=tag,label,colon=tag.indexOf(":");if(colon>=0&&(label=tag.substring(0,colon),ruleOrToken=tag.substring(colon+1,tag.length)),chunks.push(new TagChunk(label,ruleOrToken)),i+1<tagCount){let text=pattern.substring(stops[i]+this.stop.length,starts[i+1]);chunks.push(new TextChunk(text))}}if(tagCount>0){let afterLastTag=stops[tagCount-1]+this.stop.length;if(afterLastTag<n2){let text=pattern.substring(afterLastTag,n2);chunks.push(new TextChunk(text))}}for(let i=0;i<chunks.length;i++){let c=chunks[i];if(c instanceof TextChunk){let tc=c,unescaped=tc.text.replaceAll(this.escape,"");unescaped.length<tc.text.length&&(chunks[i]=new TextChunk(unescaped))}}return chunks}matchImpl(tree,patternTree,labels){if(tree instanceof TerminalNode&&patternTree instanceof TerminalNode){let t1=tree,t2=patternTree,mismatchedNode;if(t1.getSymbol().type===t2.getSymbol().type)if(t2.getSymbol()instanceof TokenTagToken){let tokenTagToken=t2.getSymbol();labels.map(tokenTagToken.tokenName,tree),tokenTagToken.label!==void 0&&labels.map(tokenTagToken.label,tree)}else t1.getText()===t2.getText()||mismatchedNode||(mismatchedNode=t1);else mismatchedNode||(mismatchedNode=t1);return mismatchedNode}if(tree instanceof ParserRuleContext&&patternTree instanceof ParserRuleContext){let mismatchedNode,ruleTagToken=this.getRuleTagToken(patternTree);if(ruleTagToken)return tree.ruleIndex===patternTree.ruleIndex?(labels.map(ruleTagToken.ruleName,tree),ruleTagToken.label&&labels.map(ruleTagToken.label,tree)):mismatchedNode||(mismatchedNode=tree),mismatchedNode;if(tree.getChildCount()!==patternTree.getChildCount())return mismatchedNode||(mismatchedNode=tree),mismatchedNode;let n2=tree.getChildCount();for(let i=0;i<n2;i++){let childMatch=this.matchImpl(tree.getChild(i),patternTree.getChild(i),labels);if(childMatch)return childMatch}return mismatchedNode}return tree}getRuleTagToken(t){if(t instanceof ParserRuleContext&&t.getChildCount()===1&&t.getChild(0)instanceof TerminalNode){let c=t.getChild(0);if(c.getSymbol()instanceof RuleTagToken)return c.getSymbol()}}},DiagnosticErrorListener=class extends BaseErrorListener{static{__name(this,"DiagnosticErrorListener")}exactOnly;constructor(exactOnly){super(),this.exactOnly=exactOnly??!0}reportAmbiguity=__name((recognizer,dfa,startIndex,stopIndex,exact,ambigAlts,configs)=>{if(this.exactOnly&&!exact)return;let decision=this.getDecisionDescription(recognizer,dfa),conflictingAlts=this.getConflictingAlts(ambigAlts,configs),text=recognizer.tokenStream?.getTextFromInterval(Interval.of(startIndex,stopIndex)),message=`reportAmbiguity d=${decision}: ambigAlts=${conflictingAlts}, input='${text}'`;recognizer.notifyErrorListeners(message,null,null)},"reportAmbiguity");reportAttemptingFullContext=__name((recognizer,dfa,startIndex,stopIndex,_conflictingAlts,_configs)=>{let decision=this.getDecisionDescription(recognizer,dfa),text=recognizer.tokenStream?.getTextFromInterval(Interval.of(startIndex,stopIndex)),message=`reportAttemptingFullContext d=${decision}, input='${text}'`;recognizer.notifyErrorListeners(message,null,null)},"reportAttemptingFullContext");reportContextSensitivity=__name((recognizer,dfa,startIndex,stopIndex,_prediction,_configs)=>{let decision=this.getDecisionDescription(recognizer,dfa),text=recognizer.tokenStream?.getTextFromInterval(Interval.of(startIndex,stopIndex)),message=`reportContextSensitivity d=${decision}, input='${text}'`;recognizer.notifyErrorListeners(message,null,null)},"reportContextSensitivity");getDecisionDescription=__name((recognizer,dfa)=>{let decision=dfa.decision,ruleIndex=dfa.atnStartState.ruleIndex,ruleNames=recognizer.ruleNames;if(ruleIndex<0||ruleIndex>=ruleNames.length)return decision.toString();let ruleName=ruleNames[ruleIndex];return ruleName.length===0?decision.toString():`${decision} (${ruleName})`},"getDecisionDescription");getConflictingAlts=__name((reportedAlts,configs)=>{if(reportedAlts)return reportedAlts;let result=new BitSet;for(let i=0;i<configs.configs.length;i++)result.set(configs.configs[i].alt);return result},"getConflictingAlts")},LexerInterpreter=class extends Lexer{static{__name(this,"LexerInterpreter")}decisionToDFA;sharedContextCache=new PredictionContextCache;#grammarFileName;#atn;#ruleNames;#channelNames;#modeNames;#vocabulary;constructor(grammarFileName,vocabulary,ruleNames,channelNames,modeNames,atn,input){if(super(input),atn.grammarType!==ATN.LEXER)throw new Error("IllegalArgumentException: The ATN must be a lexer ATN.");this.#grammarFileName=grammarFileName,this.#atn=atn,this.#ruleNames=ruleNames.slice(0),this.#channelNames=channelNames.slice(0),this.#modeNames=modeNames.slice(0),this.#vocabulary=vocabulary,this.decisionToDFA=atn.decisionToState.map((ds,i)=>new DFA(ds,i)),this.interpreter=new LexerATNSimulator(this,atn,this.decisionToDFA,this.sharedContextCache)}get atn(){return this.#atn}get grammarFileName(){return this.#grammarFileName}get ruleNames(){return this.#ruleNames}get channelNames(){return this.#channelNames}get modeNames(){return this.#modeNames}get vocabulary(){return this.#vocabulary}get serializedATN(){throw new Error("The LexerInterpreter does not support the serializedATN property.")}},RuntimeMetaData=class _RuntimeMetaData{static{__name(this,"RuntimeMetaData")}static VERSION="4.13.1";static getRuntimeVersion(){return _RuntimeMetaData.VERSION}static checkVersion(generatingToolVersion,compileTimeVersion){let runtimeVersion=_RuntimeMetaData.VERSION,runtimeConflictsWithGeneratingTool=!1,runtimeConflictsWithCompileTimeTool=!1;runtimeConflictsWithGeneratingTool=runtimeVersion!==generatingToolVersion&&_RuntimeMetaData.getMajorMinorVersion(runtimeVersion)!==_RuntimeMetaData.getMajorMinorVersion(generatingToolVersion),runtimeConflictsWithCompileTimeTool=runtimeVersion!==compileTimeVersion&&_RuntimeMetaData.getMajorMinorVersion(runtimeVersion)!==_RuntimeMetaData.getMajorMinorVersion(compileTimeVersion),runtimeConflictsWithGeneratingTool&&console.error(`ANTLR Tool version ${generatingToolVersion} used for code generation does not match the current runtime version ${runtimeVersion}`),runtimeConflictsWithCompileTimeTool&&console.error(`ANTLR Runtime version ${compileTimeVersion} used for parser compilation does not match the current runtime version ${runtimeVersion}`)}static getMajorMinorVersion(version2){let firstDot=version2.indexOf("."),secondDot=firstDot>=0?version2.indexOf(".",firstDot+1):-1,firstDash=version2.indexOf("-"),referenceLength=version2.length;return secondDot>=0&&(referenceLength=Math.min(referenceLength,secondDot)),firstDash>=0&&(referenceLength=Math.min(referenceLength,firstDash)),version2.substring(0,referenceLength)}},TokenStreamRewriter=class _TokenStreamRewriter{static{__name(this,"TokenStreamRewriter")}static DEFAULT_PROGRAM_NAME="default";static PROGRAM_INIT_SIZE=100;static MIN_TOKEN_INDEX=0;tokens;programs=new Map;lastRewriteTokenIndexes;constructor(tokens){this.tokens=tokens}getTokenStream(){return this.tokens}insertAfter(tokenOrIndex,text,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){let index2;typeof tokenOrIndex=="number"?index2=tokenOrIndex:index2=tokenOrIndex.tokenIndex;let rewrites=this.getProgram(programName),op=new InsertAfterOp(this.tokens,index2,rewrites.length,text);rewrites.push(op)}insertBefore(tokenOrIndex,text,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){let index2;typeof tokenOrIndex=="number"?index2=tokenOrIndex:index2=tokenOrIndex.tokenIndex;let rewrites=this.getProgram(programName),op=new InsertBeforeOp(this.tokens,index2,rewrites.length,text);rewrites.push(op)}replaceSingle(tokenOrIndex,text,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){this.replace(tokenOrIndex,tokenOrIndex,text,programName)}replace(from,to,text,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){if(typeof from!="number"&&(from=from.tokenIndex),typeof to!="number"&&(to=to.tokenIndex),from>to||from<0||to<0||to>=this.tokens.size)throw new RangeError(`replace: range invalid: ${from}..${to}(size=${this.tokens.size})`);let rewrites=this.getProgram(programName),op=new ReplaceOp(this.tokens,from,to,rewrites.length,text);rewrites.push(op)}delete(from,to,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){to==null&&(to=from),this.replace(from,to,null,programName)}getProgram(name){let is=this.programs.get(name);return is==null&&(is=this.initializeProgram(name)),is}initializeProgram(name){let is=[];return this.programs.set(name,is),is}getText(intervalOrProgram,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){let interval;intervalOrProgram instanceof Interval?interval=intervalOrProgram:interval=new Interval(0,this.tokens.size-1),typeof intervalOrProgram=="string"&&(programName=intervalOrProgram);let rewrites=this.programs.get(programName),start=interval.start,stop=interval.stop;if(stop>this.tokens.size-1&&(stop=this.tokens.size-1),start<0&&(start=0),rewrites==null||rewrites.length===0)return this.tokens.getTextFromInterval(new Interval(start,stop));let buf=[],indexToOp=this.reduceToSingleOperationPerIndex(rewrites),i=start;for(;i<=stop&&i<this.tokens.size;){let op=indexToOp.get(i);indexToOp.delete(i);let t=this.tokens.get(i);op==null?(t.type!==Token.EOF&&buf.push(String(t.text)),i++):i=op.execute(buf)}if(stop===this.tokens.size-1)for(let op of indexToOp.values())op&&op.index>=this.tokens.size-1&&buf.push(String(op.text));return buf.join("")}reduceToSingleOperationPerIndex(rewrites){for(let i=0;i<rewrites.length;i++){let op=rewrites[i];if(op==null||!(op instanceof ReplaceOp))continue;let rop=op,inserts=this.getKindOfOps(rewrites,InsertBeforeOp,i);for(let iop of inserts)iop.index===rop.index?(rewrites[iop.instructionIndex]=null,rop.text=String(iop.text)+(rop.text!=null?rop.text.toString():"")):iop.index>rop.index&&iop.index<=rop.lastIndex&&(rewrites[iop.instructionIndex]=null);let prevReplaces=this.getKindOfOps(rewrites,ReplaceOp,i);for(let prevRop of prevReplaces){if(prevRop.index>=rop.index&&prevRop.lastIndex<=rop.lastIndex){rewrites[prevRop.instructionIndex]=null;continue}let disjoint=prevRop.lastIndex<rop.index||prevRop.index>rop.lastIndex;if(prevRop.text==null&&rop.text==null&&!disjoint)rewrites[prevRop.instructionIndex]=null,rop.index=Math.min(prevRop.index,rop.index),rop.lastIndex=Math.max(prevRop.lastIndex,rop.lastIndex);else if(!disjoint)throw new Error(`replace op boundaries of ${rop} overlap with previous ${prevRop}`)}}for(let i=0;i<rewrites.length;i++){let op=rewrites[i];if(op==null||!(op instanceof InsertBeforeOp))continue;let iop=op,prevInserts=this.getKindOfOps(rewrites,InsertBeforeOp,i);for(let prevIop of prevInserts)prevIop.index===iop.index&&(prevIop instanceof InsertAfterOp?(iop.text=this.catOpText(prevIop.text,iop.text),rewrites[prevIop.instructionIndex]=null):prevIop instanceof InsertBeforeOp&&(iop.text=this.catOpText(iop.text,prevIop.text),rewrites[prevIop.instructionIndex]=null));let prevReplaces=this.getKindOfOps(rewrites,ReplaceOp,i);for(let rop of prevReplaces){if(iop.index===rop.index){rop.text=this.catOpText(iop.text,rop.text),rewrites[i]=null;continue}if(iop.index>=rop.index&&iop.index<=rop.lastIndex)throw new Error(`insert op ${iop} within boundaries of previous ${rop}`)}}let m2=new Map;for(let op of rewrites)if(op!=null){if(m2.get(op.index)!=null)throw new Error("should only be one op per index");m2.set(op.index,op)}return m2}catOpText(a,b){let x="",y="";return a!=null&&(x=a.toString()),b!=null&&(y=b.toString()),x+y}getKindOfOps(rewrites,kind,before){return rewrites.slice(0,before).filter(op=>op&&op instanceof kind)}},RewriteOperation=class{static{__name(this,"RewriteOperation")}instructionIndex;index;text;tokens;constructor(tokens,index2,instructionIndex,text){this.tokens=tokens,this.instructionIndex=instructionIndex,this.index=index2,this.text=text===void 0?"":text}execute(_buf){return this.index}toString(){return"<RewriteOperation@"+this.tokens.get(this.index)+':"'+this.text+'">'}},InsertBeforeOp=class extends RewriteOperation{static{__name(this,"InsertBeforeOp")}constructor(tokens,index2,instructionIndex,text){super(tokens,index2,instructionIndex,text)}execute(buf){return this.text&&buf.push(this.text.toString()),this.tokens.get(this.index).type!==Token.EOF&&buf.push(String(this.tokens.get(this.index).text)),this.index+1}toString(){return"<InsertBeforeOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},InsertAfterOp=class extends InsertBeforeOp{static{__name(this,"InsertAfterOp")}constructor(tokens,index2,instructionIndex,text){super(tokens,index2+1,instructionIndex,text)}toString(){return"<InsertAfterOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},ReplaceOp=class extends RewriteOperation{static{__name(this,"ReplaceOp")}lastIndex;constructor(tokens,from,to,instructionIndex,text){super(tokens,from,instructionIndex,text),this.lastIndex=to}execute(buf){return this.text&&buf.push(this.text.toString()),this.lastIndex+1}toString(){return this.text==null?"<DeleteOp@"+this.tokens.get(this.index)+".."+this.tokens.get(this.lastIndex)+">":"<ReplaceOp@"+this.tokens.get(this.index)+".."+this.tokens.get(this.lastIndex)+':"'+this.text+'">'}},UnbufferedTokenStream=class{static{__name(this,"UnbufferedTokenStream")}tokenSource;tokens;n;p=0;numMarkers=0;lastToken;lastTokenBufferStart;currentTokenIndex=0;constructor(tokenSource,bufferSize){this.tokenSource=tokenSource,bufferSize=bufferSize??256,this.tokens=new Array(bufferSize),this.n=0,this.fill(1)}get(i){let bufferStartIndex=this.getBufferStartIndex();if(i<bufferStartIndex||i>=bufferStartIndex+this.n)throw new Error("get("+i+") outside buffer: "+bufferStartIndex+".."+(bufferStartIndex+this.n));return this.tokens[i-bufferStartIndex]}LT(i){if(i===-1)return this.lastToken;this.sync(i);let index2=this.p+i-1;if(index2<0)throw new Error("LT("+i+") gives negative index");return index2>=this.n?this.tokens[this.n-1]:this.tokens[index2]}LA(i){return this.LT(i).type}getText(){return""}getTextFromContext(ctx2){return this.getTextFromInterval(ctx2.getSourceInterval())}getTextFromInterval(interval){let bufferStartIndex=this.getBufferStartIndex(),bufferStopIndex=bufferStartIndex+this.tokens.length-1,start=interval.start,stop=interval.stop;if(start<bufferStartIndex||stop>bufferStopIndex)throw new Error("interval "+interval+" not in token buffer window: "+bufferStartIndex+".."+bufferStopIndex);let a=start-bufferStartIndex,b=stop-bufferStartIndex,result="";for(let i=a;i<=b;i++){let t=this.tokens[i];result+=t.text}return result}getTextFromRange(start,stop){return this.getTextFromInterval(Interval.of(start.tokenIndex,stop.tokenIndex))}consume(){if(this.LA(1)===Token.EOF)throw new Error("cannot consume EOF");this.lastToken=this.tokens[this.p],this.p===this.n-1&&this.numMarkers===0&&(this.n=0,this.p=-1,this.lastTokenBufferStart=this.lastToken),this.p++,this.currentTokenIndex++,this.sync(1)}mark(){this.numMarkers===0&&(this.lastTokenBufferStart=this.lastToken);let mark=-this.numMarkers-1;return this.numMarkers++,mark}release(marker){let expectedMark=-this.numMarkers;if(marker!==expectedMark)throw new Error("release() called with an invalid marker.");this.numMarkers--,this.numMarkers===0&&(this.p>0&&(this.tokens.copyWithin(0,this.p,this.n),this.n=this.n-this.p,this.p=0),this.lastTokenBufferStart=this.lastToken)}get index(){return this.currentTokenIndex}seek(index2){if(index2===this.currentTokenIndex)return;index2>this.currentTokenIndex&&(this.sync(index2-this.currentTokenIndex),index2=Math.min(index2,this.getBufferStartIndex()+this.n-1));let bufferStartIndex=this.getBufferStartIndex(),i=index2-bufferStartIndex;if(i<0)throw new Error("cannot seek to negative index "+index2);if(i>=this.n)throw new Error("seek to index outside buffer: "+index2+" not in "+bufferStartIndex+".."+(bufferStartIndex+this.n));this.p=i,this.currentTokenIndex=index2,this.p===0?this.lastToken=this.lastTokenBufferStart:this.lastToken=this.tokens[this.p-1]}get size(){throw new Error("Unbuffered stream cannot know its size")}getSourceName(){return this.tokenSource.sourceName}setLine(line){this.tokenSource.line=line}setColumn(column){this.tokenSource.column=column}sync(want){let need=this.p+want-1-this.n+1;need>0&&this.fill(need)}fill(n2){for(let i=0;i<n2;i++){if(this.n>0&&this.tokens[this.n-1].type===Token.EOF)return i;let t=this.tokenSource.nextToken();this.add(t)}return n2}add(t){this.n>=this.tokens.length&&(this.tokens.length=this.tokens.length*2),isWritableToken(t)&&t.setTokenIndex(this.getBufferStartIndex()+this.n),this.tokens[this.n++]=t}getBufferStartIndex(){return this.currentTokenIndex-this.p}};var SysMLv2Lexer=class _SysMLv2Lexer extends Lexer{static ABOUT=1;static ABSTRACT=2;static ACCEPT=3;static ACTION=4;static ACTOR=5;static AFTER=6;static ALIAS=7;static ALL=8;static ALLOCATE=9;static ALLOCATION=10;static ANALYSIS=11;static AND=12;static AS=13;static ASSERT=14;static ASSIGN=15;static ASSOC=16;static ASSUME=17;static AT=18;static ATTRIBUTE=19;static BEHAVIOR=20;static BIND=21;static BINDING=22;static BOOL=23;static BY=24;static CALC=25;static CASE=26;static CHAINS=27;static CLASS=28;static CLASSIFIER=29;static COMMENT=30;static COMPOSITE=31;static CONCERN=32;static CONJUGATE=33;static CONJUGATES=34;static CONJUGATION=35;static CONNECT=36;static CONNECTION=37;static CONNECTOR=38;static CONST=39;static CONSTANT=40;static CONSTRAINT=41;static CROSSES=42;static DATATYPE=43;static DECIDE=44;static DEF=45;static DEFAULT=46;static DEFINED=47;static DEPENDENCY=48;static DERIVED=49;static DIFFERENCES=50;static DISJOINING=51;static DISJOINT=52;static DO=53;static DOC=54;static ELSE=55;static END=56;static ENTRY=57;static ENUM=58;static EVENT=59;static EXHIBIT=60;static EXIT=61;static EXPOSE=62;static EXPR=63;static FALSE=64;static FEATURE=65;static FEATURED=66;static FEATURING=67;static FILTER=68;static FIRST=69;static FLOW=70;static FOR=71;static FORK=72;static FRAME=73;static FROM=74;static FUNCTION=75;static HASTYPE=76;static IF=77;static IMPLIES=78;static IMPORT=79;static IN=80;static INCLUDE=81;static INDIVIDUAL=82;static INOUT=83;static INTERACTION=84;static INTERFACE=85;static INTERSECTS=86;static INV=87;static INVERSE=88;static INVERTING=89;static ISTYPE=90;static ITEM=91;static JOIN=92;static LANGUAGE=93;static LIBRARY=94;static LOCALE=95;static LOOP=96;static MEMBER=97;static MERGE=98;static MESSAGE=99;static META=100;static METACLASS=101;static METADATA=102;static MULTIPLICITY=103;static NAMESPACE=104;static NEW=105;static NONUNIQUE=106;static NOT=107;static NULL=108;static OBJECTIVE=109;static OCCURRENCE=110;static OF=111;static OR=112;static ORDERED=113;static OUT=114;static PACKAGE=115;static PARALLEL=116;static PART=117;static PERFORM=118;static PORT=119;static PORTION=120;static PREDICATE=121;static PRIVATE=122;static PROTECTED=123;static PUBLIC=124;static REDEFINES=125;static REDEFINITION=126;static REF=127;static REFERENCES=128;static RENDER=129;static RENDERING=130;static REP=131;static REQUIRE=132;static REQUIREMENT=133;static RETURN=134;static SATISFY=135;static SEND=136;static SNAPSHOT=137;static SPECIALIZATION=138;static SPECIALIZES=139;static STAKEHOLDER=140;static STANDARD=141;static STATE=142;static STEP=143;static STRUCT=144;static SUBCLASSIFIER=145;static SUBJECT=146;static SUBSET=147;static SUBSETS=148;static SUBTYPE=149;static SUCCESSION=150;static TERMINATE=151;static THEN=152;static TIMESLICE=153;static TO=154;static TRANSITION=155;static TRUE=156;static TYPE=157;static TYPED=158;static TYPING=159;static UNIONS=160;static UNTIL=161;static USE=162;static VAR=163;static VARIANT=164;static VARIATION=165;static VERIFICATION=166;static VERIFY=167;static VIA=168;static VIEW=169;static VIEWPOINT=170;static WHEN=171;static WHILE=172;static XOR=173;static BANG_EQ_EQ=174;static COLON_COLON_GT=175;static COLON_GT_GT=176;static EQ_EQ_EQ=177;static BANG_EQ=178;static STAR_STAR=179;static ARROW=180;static DOT_DOT=181;static DOT_QUESTION=182;static COLON_COLON=183;static COLON_EQ=184;static COLON_GT=185;static LE=186;static EQ_EQ=187;static FAT_ARROW=188;static GE=189;static QUESTION_QUESTION=190;static AT_AT=191;static HASH=192;static DOLLAR=193;static PERCENT=194;static AMP=195;static LPAREN=196;static RPAREN=197;static STAR=198;static PLUS=199;static COMMA=200;static MINUS=201;static DOT=202;static SLASH=203;static COLON=204;static SEMI=205;static LT=206;static EQ=207;static GT=208;static QUESTION=209;static AT_SIGN=210;static LBRACK=211;static RBRACK=212;static CARET=213;static LBRACE=214;static PIPE=215;static RBRACE=216;static TILDE=217;static IDENTIFIER=218;static STRING=219;static DOUBLE_STRING=220;static INTEGER=221;static REAL=222;static REGULAR_COMMENT=223;static SINGLE_LINE_NOTE=224;static BARE_LINE_COMMENT=225;static WS=226;static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static literalNames=[null,"'about'","'abstract'","'accept'","'action'","'actor'","'after'","'alias'","'all'","'allocate'","'allocation'","'analysis'","'and'","'as'","'assert'","'assign'","'assoc'","'assume'","'at'","'attribute'","'behavior'","'bind'","'binding'","'bool'","'by'","'calc'","'case'","'chains'","'class'","'classifier'","'comment'","'composite'","'concern'","'conjugate'","'conjugates'","'conjugation'","'connect'","'connection'","'connector'","'const'","'constant'","'constraint'","'crosses'","'datatype'","'decide'","'def'","'default'","'defined'","'dependency'","'derived'","'differences'","'disjoining'","'disjoint'","'do'","'doc'","'else'","'end'","'entry'","'enum'","'event'","'exhibit'","'exit'","'expose'","'expr'","'false'","'feature'","'featured'","'featuring'","'filter'","'first'","'flow'","'for'","'fork'","'frame'","'from'","'function'","'hastype'","'if'","'implies'","'import'","'in'","'include'","'individual'","'inout'","'interaction'","'interface'","'intersects'","'inv'","'inverse'","'inverting'","'istype'","'item'","'join'","'language'","'library'","'locale'","'loop'","'member'","'merge'","'message'","'meta'","'metaclass'","'metadata'","'multiplicity'","'namespace'","'new'","'nonunique'","'not'","'null'","'objective'","'occurrence'","'of'","'or'","'ordered'","'out'","'package'","'parallel'","'part'","'perform'","'port'","'portion'","'predicate'","'private'","'protected'","'public'","'redefines'","'redefinition'","'ref'","'references'","'render'","'rendering'","'rep'","'require'","'requirement'","'return'","'satisfy'","'send'","'snapshot'","'specialization'","'specializes'","'stakeholder'","'standard'","'state'","'step'","'struct'","'subclassifier'","'subject'","'subset'","'subsets'","'subtype'","'succession'","'terminate'","'then'","'timeslice'","'to'","'transition'","'true'","'type'","'typed'","'typing'","'unions'","'until'","'use'","'var'","'variant'","'variation'","'verification'","'verify'","'via'","'view'","'viewpoint'","'when'","'while'","'xor'","'!=='","'::>'","':>>'","'==='","'!='","'**'","'->'","'..'","'.?'","'::'","':='","':>'","'<='","'=='","'=>'","'>='","'??'","'@@'","'#'","'$'","'%'","'&'","'('","')'","'*'","'+'","','","'-'","'.'","'/'","':'","';'","'<'","'='","'>'","'?'","'@'","'['","']'","'^'","'{'","'|'","'}'","'~'",null,null,null,null,null,null,null,"'//'"];static symbolicNames=[null,"ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","BARE_LINE_COMMENT","WS"];static modeNames=["DEFAULT_MODE"];static ruleNames=["ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","BARE_LINE_COMMENT","WS"];constructor(input){super(input),this.interpreter=new LexerATNSimulator(this,_SysMLv2Lexer._ATN,_SysMLv2Lexer.decisionsToDFA,new PredictionContextCache)}get grammarFileName(){return"SysMLv2Lexer.g4"}get literalNames(){return _SysMLv2Lexer.literalNames}get symbolicNames(){return _SysMLv2Lexer.symbolicNames}get ruleNames(){return _SysMLv2Lexer.ruleNames}get serializedATN(){return _SysMLv2Lexer._serializedATN}get channelNames(){return _SysMLv2Lexer.channelNames}get modeNames(){return _SysMLv2Lexer.modeNames}static _serializedATN=[4,0,226,1971,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,178,1,178,1,178,1,179,1,179,1,179,1,180,1,180,1,180,1,181,1,181,1,181,1,182,1,182,1,182,1,183,1,183,1,183,1,184,1,184,1,184,1,185,1,185,1,185,1,186,1,186,1,186,1,187,1,187,1,187,1,188,1,188,1,188,1,189,1,189,1,189,1,190,1,190,1,190,1,191,1,191,1,192,1,192,1,193,1,193,1,194,1,194,1,195,1,195,1,196,1,196,1,197,1,197,1,198,1,198,1,199,1,199,1,200,1,200,1,201,1,201,1,202,1,202,1,203,1,203,1,204,1,204,1,205,1,205,1,206,1,206,1,207,1,207,1,208,1,208,1,209,1,209,1,210,1,210,1,211,1,211,1,212,1,212,1,213,1,213,1,214,1,214,1,215,1,215,1,216,1,216,1,217,1,217,5,217,1852,8,217,10,217,12,217,1855,9,217,1,218,1,218,1,218,1,218,5,218,1861,8,218,10,218,12,218,1864,9,218,1,218,1,218,1,219,1,219,1,219,1,219,5,219,1872,8,219,10,219,12,219,1875,9,219,1,219,1,219,1,220,4,220,1880,8,220,11,220,12,220,1881,1,221,5,221,1885,8,221,10,221,12,221,1888,9,221,1,221,1,221,4,221,1892,8,221,11,221,12,221,1893,1,221,1,221,3,221,1898,8,221,1,221,4,221,1901,8,221,11,221,12,221,1902,3,221,1905,8,221,1,221,4,221,1908,8,221,11,221,12,221,1909,1,221,1,221,3,221,1914,8,221,1,221,4,221,1917,8,221,11,221,12,221,1918,3,221,1921,8,221,1,222,1,222,1,222,1,222,5,222,1927,8,222,10,222,12,222,1930,9,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,5,222,1939,8,222,10,222,12,222,1942,9,222,1,222,1,222,3,222,1946,8,222,1,223,1,223,1,223,1,223,1,223,5,223,1953,8,223,10,223,12,223,1956,9,223,1,223,1,223,1,224,1,224,1,224,1,224,1,224,1,225,4,225,1966,8,225,11,225,12,225,1967,1,225,1,225,2,1928,1940,0,226,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,197,99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,213,107,215,108,217,109,219,110,221,111,223,112,225,113,227,114,229,115,231,116,233,117,235,118,237,119,239,120,241,121,243,122,245,123,247,124,249,125,251,126,253,127,255,128,257,129,259,130,261,131,263,132,265,133,267,134,269,135,271,136,273,137,275,138,277,139,279,140,281,141,283,142,285,143,287,144,289,145,291,146,293,147,295,148,297,149,299,150,301,151,303,152,305,153,307,154,309,155,311,156,313,157,315,158,317,159,319,160,321,161,323,162,325,163,327,164,329,165,331,166,333,167,335,168,337,169,339,170,341,171,343,172,345,173,347,174,349,175,351,176,353,177,355,178,357,179,359,180,361,181,363,182,365,183,367,184,369,185,371,186,373,187,375,188,377,189,379,190,381,191,383,192,385,193,387,194,389,195,391,196,393,197,395,198,397,199,399,200,401,201,403,202,405,203,407,204,409,205,411,206,413,207,415,208,417,209,419,210,421,211,423,212,425,213,427,214,429,215,431,216,433,217,435,218,437,219,439,220,441,221,443,222,445,223,447,224,449,225,451,226,1,0,10,3,0,65,90,95,95,97,122,4,0,48,57,65,90,95,95,97,122,2,0,39,39,92,92,2,0,34,34,92,92,1,0,48,57,2,0,69,69,101,101,2,0,43,43,45,45,3,0,10,10,13,13,42,42,2,0,10,10,13,13,3,0,9,10,13,13,32,32,1990,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,0,451,1,0,0,0,1,453,1,0,0,0,3,459,1,0,0,0,5,468,1,0,0,0,7,475,1,0,0,0,9,482,1,0,0,0,11,488,1,0,0,0,13,494,1,0,0,0,15,500,1,0,0,0,17,504,1,0,0,0,19,513,1,0,0,0,21,524,1,0,0,0,23,533,1,0,0,0,25,537,1,0,0,0,27,540,1,0,0,0,29,547,1,0,0,0,31,554,1,0,0,0,33,560,1,0,0,0,35,567,1,0,0,0,37,570,1,0,0,0,39,580,1,0,0,0,41,589,1,0,0,0,43,594,1,0,0,0,45,602,1,0,0,0,47,607,1,0,0,0,49,610,1,0,0,0,51,615,1,0,0,0,53,620,1,0,0,0,55,627,1,0,0,0,57,633,1,0,0,0,59,644,1,0,0,0,61,652,1,0,0,0,63,662,1,0,0,0,65,670,1,0,0,0,67,680,1,0,0,0,69,691,1,0,0,0,71,703,1,0,0,0,73,711,1,0,0,0,75,722,1,0,0,0,77,732,1,0,0,0,79,738,1,0,0,0,81,747,1,0,0,0,83,758,1,0,0,0,85,766,1,0,0,0,87,775,1,0,0,0,89,782,1,0,0,0,91,786,1,0,0,0,93,794,1,0,0,0,95,802,1,0,0,0,97,813,1,0,0,0,99,821,1,0,0,0,101,833,1,0,0,0,103,844,1,0,0,0,105,853,1,0,0,0,107,856,1,0,0,0,109,860,1,0,0,0,111,865,1,0,0,0,113,869,1,0,0,0,115,875,1,0,0,0,117,880,1,0,0,0,119,886,1,0,0,0,121,894,1,0,0,0,123,899,1,0,0,0,125,906,1,0,0,0,127,911,1,0,0,0,129,917,1,0,0,0,131,925,1,0,0,0,133,934,1,0,0,0,135,944,1,0,0,0,137,951,1,0,0,0,139,957,1,0,0,0,141,962,1,0,0,0,143,966,1,0,0,0,145,971,1,0,0,0,147,977,1,0,0,0,149,982,1,0,0,0,151,991,1,0,0,0,153,999,1,0,0,0,155,1002,1,0,0,0,157,1010,1,0,0,0,159,1017,1,0,0,0,161,1020,1,0,0,0,163,1028,1,0,0,0,165,1039,1,0,0,0,167,1045,1,0,0,0,169,1057,1,0,0,0,171,1067,1,0,0,0,173,1078,1,0,0,0,175,1082,1,0,0,0,177,1090,1,0,0,0,179,1100,1,0,0,0,181,1107,1,0,0,0,183,1112,1,0,0,0,185,1117,1,0,0,0,187,1126,1,0,0,0,189,1134,1,0,0,0,191,1141,1,0,0,0,193,1146,1,0,0,0,195,1153,1,0,0,0,197,1159,1,0,0,0,199,1167,1,0,0,0,201,1172,1,0,0,0,203,1182,1,0,0,0,205,1191,1,0,0,0,207,1204,1,0,0,0,209,1214,1,0,0,0,211,1218,1,0,0,0,213,1228,1,0,0,0,215,1232,1,0,0,0,217,1237,1,0,0,0,219,1247,1,0,0,0,221,1258,1,0,0,0,223,1261,1,0,0,0,225,1264,1,0,0,0,227,1272,1,0,0,0,229,1276,1,0,0,0,231,1284,1,0,0,0,233,1293,1,0,0,0,235,1298,1,0,0,0,237,1306,1,0,0,0,239,1311,1,0,0,0,241,1319,1,0,0,0,243,1329,1,0,0,0,245,1337,1,0,0,0,247,1347,1,0,0,0,249,1354,1,0,0,0,251,1364,1,0,0,0,253,1377,1,0,0,0,255,1381,1,0,0,0,257,1392,1,0,0,0,259,1399,1,0,0,0,261,1409,1,0,0,0,263,1413,1,0,0,0,265,1421,1,0,0,0,267,1433,1,0,0,0,269,1440,1,0,0,0,271,1448,1,0,0,0,273,1453,1,0,0,0,275,1462,1,0,0,0,277,1477,1,0,0,0,279,1489,1,0,0,0,281,1501,1,0,0,0,283,1510,1,0,0,0,285,1516,1,0,0,0,287,1521,1,0,0,0,289,1528,1,0,0,0,291,1542,1,0,0,0,293,1550,1,0,0,0,295,1557,1,0,0,0,297,1565,1,0,0,0,299,1573,1,0,0,0,301,1584,1,0,0,0,303,1594,1,0,0,0,305,1599,1,0,0,0,307,1609,1,0,0,0,309,1612,1,0,0,0,311,1623,1,0,0,0,313,1628,1,0,0,0,315,1633,1,0,0,0,317,1639,1,0,0,0,319,1646,1,0,0,0,321,1653,1,0,0,0,323,1659,1,0,0,0,325,1663,1,0,0,0,327,1667,1,0,0,0,329,1675,1,0,0,0,331,1685,1,0,0,0,333,1698,1,0,0,0,335,1705,1,0,0,0,337,1709,1,0,0,0,339,1714,1,0,0,0,341,1724,1,0,0,0,343,1729,1,0,0,0,345,1735,1,0,0,0,347,1739,1,0,0,0,349,1743,1,0,0,0,351,1747,1,0,0,0,353,1751,1,0,0,0,355,1755,1,0,0,0,357,1758,1,0,0,0,359,1761,1,0,0,0,361,1764,1,0,0,0,363,1767,1,0,0,0,365,1770,1,0,0,0,367,1773,1,0,0,0,369,1776,1,0,0,0,371,1779,1,0,0,0,373,1782,1,0,0,0,375,1785,1,0,0,0,377,1788,1,0,0,0,379,1791,1,0,0,0,381,1794,1,0,0,0,383,1797,1,0,0,0,385,1799,1,0,0,0,387,1801,1,0,0,0,389,1803,1,0,0,0,391,1805,1,0,0,0,393,1807,1,0,0,0,395,1809,1,0,0,0,397,1811,1,0,0,0,399,1813,1,0,0,0,401,1815,1,0,0,0,403,1817,1,0,0,0,405,1819,1,0,0,0,407,1821,1,0,0,0,409,1823,1,0,0,0,411,1825,1,0,0,0,413,1827,1,0,0,0,415,1829,1,0,0,0,417,1831,1,0,0,0,419,1833,1,0,0,0,421,1835,1,0,0,0,423,1837,1,0,0,0,425,1839,1,0,0,0,427,1841,1,0,0,0,429,1843,1,0,0,0,431,1845,1,0,0,0,433,1847,1,0,0,0,435,1849,1,0,0,0,437,1856,1,0,0,0,439,1867,1,0,0,0,441,1879,1,0,0,0,443,1920,1,0,0,0,445,1945,1,0,0,0,447,1947,1,0,0,0,449,1959,1,0,0,0,451,1965,1,0,0,0,453,454,5,97,0,0,454,455,5,98,0,0,455,456,5,111,0,0,456,457,5,117,0,0,457,458,5,116,0,0,458,2,1,0,0,0,459,460,5,97,0,0,460,461,5,98,0,0,461,462,5,115,0,0,462,463,5,116,0,0,463,464,5,114,0,0,464,465,5,97,0,0,465,466,5,99,0,0,466,467,5,116,0,0,467,4,1,0,0,0,468,469,5,97,0,0,469,470,5,99,0,0,470,471,5,99,0,0,471,472,5,101,0,0,472,473,5,112,0,0,473,474,5,116,0,0,474,6,1,0,0,0,475,476,5,97,0,0,476,477,5,99,0,0,477,478,5,116,0,0,478,479,5,105,0,0,479,480,5,111,0,0,480,481,5,110,0,0,481,8,1,0,0,0,482,483,5,97,0,0,483,484,5,99,0,0,484,485,5,116,0,0,485,486,5,111,0,0,486,487,5,114,0,0,487,10,1,0,0,0,488,489,5,97,0,0,489,490,5,102,0,0,490,491,5,116,0,0,491,492,5,101,0,0,492,493,5,114,0,0,493,12,1,0,0,0,494,495,5,97,0,0,495,496,5,108,0,0,496,497,5,105,0,0,497,498,5,97,0,0,498,499,5,115,0,0,499,14,1,0,0,0,500,501,5,97,0,0,501,502,5,108,0,0,502,503,5,108,0,0,503,16,1,0,0,0,504,505,5,97,0,0,505,506,5,108,0,0,506,507,5,108,0,0,507,508,5,111,0,0,508,509,5,99,0,0,509,510,5,97,0,0,510,511,5,116,0,0,511,512,5,101,0,0,512,18,1,0,0,0,513,514,5,97,0,0,514,515,5,108,0,0,515,516,5,108,0,0,516,517,5,111,0,0,517,518,5,99,0,0,518,519,5,97,0,0,519,520,5,116,0,0,520,521,5,105,0,0,521,522,5,111,0,0,522,523,5,110,0,0,523,20,1,0,0,0,524,525,5,97,0,0,525,526,5,110,0,0,526,527,5,97,0,0,527,528,5,108,0,0,528,529,5,121,0,0,529,530,5,115,0,0,530,531,5,105,0,0,531,532,5,115,0,0,532,22,1,0,0,0,533,534,5,97,0,0,534,535,5,110,0,0,535,536,5,100,0,0,536,24,1,0,0,0,537,538,5,97,0,0,538,539,5,115,0,0,539,26,1,0,0,0,540,541,5,97,0,0,541,542,5,115,0,0,542,543,5,115,0,0,543,544,5,101,0,0,544,545,5,114,0,0,545,546,5,116,0,0,546,28,1,0,0,0,547,548,5,97,0,0,548,549,5,115,0,0,549,550,5,115,0,0,550,551,5,105,0,0,551,552,5,103,0,0,552,553,5,110,0,0,553,30,1,0,0,0,554,555,5,97,0,0,555,556,5,115,0,0,556,557,5,115,0,0,557,558,5,111,0,0,558,559,5,99,0,0,559,32,1,0,0,0,560,561,5,97,0,0,561,562,5,115,0,0,562,563,5,115,0,0,563,564,5,117,0,0,564,565,5,109,0,0,565,566,5,101,0,0,566,34,1,0,0,0,567,568,5,97,0,0,568,569,5,116,0,0,569,36,1,0,0,0,570,571,5,97,0,0,571,572,5,116,0,0,572,573,5,116,0,0,573,574,5,114,0,0,574,575,5,105,0,0,575,576,5,98,0,0,576,577,5,117,0,0,577,578,5,116,0,0,578,579,5,101,0,0,579,38,1,0,0,0,580,581,5,98,0,0,581,582,5,101,0,0,582,583,5,104,0,0,583,584,5,97,0,0,584,585,5,118,0,0,585,586,5,105,0,0,586,587,5,111,0,0,587,588,5,114,0,0,588,40,1,0,0,0,589,590,5,98,0,0,590,591,5,105,0,0,591,592,5,110,0,0,592,593,5,100,0,0,593,42,1,0,0,0,594,595,5,98,0,0,595,596,5,105,0,0,596,597,5,110,0,0,597,598,5,100,0,0,598,599,5,105,0,0,599,600,5,110,0,0,600,601,5,103,0,0,601,44,1,0,0,0,602,603,5,98,0,0,603,604,5,111,0,0,604,605,5,111,0,0,605,606,5,108,0,0,606,46,1,0,0,0,607,608,5,98,0,0,608,609,5,121,0,0,609,48,1,0,0,0,610,611,5,99,0,0,611,612,5,97,0,0,612,613,5,108,0,0,613,614,5,99,0,0,614,50,1,0,0,0,615,616,5,99,0,0,616,617,5,97,0,0,617,618,5,115,0,0,618,619,5,101,0,0,619,52,1,0,0,0,620,621,5,99,0,0,621,622,5,104,0,0,622,623,5,97,0,0,623,624,5,105,0,0,624,625,5,110,0,0,625,626,5,115,0,0,626,54,1,0,0,0,627,628,5,99,0,0,628,629,5,108,0,0,629,630,5,97,0,0,630,631,5,115,0,0,631,632,5,115,0,0,632,56,1,0,0,0,633,634,5,99,0,0,634,635,5,108,0,0,635,636,5,97,0,0,636,637,5,115,0,0,637,638,5,115,0,0,638,639,5,105,0,0,639,640,5,102,0,0,640,641,5,105,0,0,641,642,5,101,0,0,642,643,5,114,0,0,643,58,1,0,0,0,644,645,5,99,0,0,645,646,5,111,0,0,646,647,5,109,0,0,647,648,5,109,0,0,648,649,5,101,0,0,649,650,5,110,0,0,650,651,5,116,0,0,651,60,1,0,0,0,652,653,5,99,0,0,653,654,5,111,0,0,654,655,5,109,0,0,655,656,5,112,0,0,656,657,5,111,0,0,657,658,5,115,0,0,658,659,5,105,0,0,659,660,5,116,0,0,660,661,5,101,0,0,661,62,1,0,0,0,662,663,5,99,0,0,663,664,5,111,0,0,664,665,5,110,0,0,665,666,5,99,0,0,666,667,5,101,0,0,667,668,5,114,0,0,668,669,5,110,0,0,669,64,1,0,0,0,670,671,5,99,0,0,671,672,5,111,0,0,672,673,5,110,0,0,673,674,5,106,0,0,674,675,5,117,0,0,675,676,5,103,0,0,676,677,5,97,0,0,677,678,5,116,0,0,678,679,5,101,0,0,679,66,1,0,0,0,680,681,5,99,0,0,681,682,5,111,0,0,682,683,5,110,0,0,683,684,5,106,0,0,684,685,5,117,0,0,685,686,5,103,0,0,686,687,5,97,0,0,687,688,5,116,0,0,688,689,5,101,0,0,689,690,5,115,0,0,690,68,1,0,0,0,691,692,5,99,0,0,692,693,5,111,0,0,693,694,5,110,0,0,694,695,5,106,0,0,695,696,5,117,0,0,696,697,5,103,0,0,697,698,5,97,0,0,698,699,5,116,0,0,699,700,5,105,0,0,700,701,5,111,0,0,701,702,5,110,0,0,702,70,1,0,0,0,703,704,5,99,0,0,704,705,5,111,0,0,705,706,5,110,0,0,706,707,5,110,0,0,707,708,5,101,0,0,708,709,5,99,0,0,709,710,5,116,0,0,710,72,1,0,0,0,711,712,5,99,0,0,712,713,5,111,0,0,713,714,5,110,0,0,714,715,5,110,0,0,715,716,5,101,0,0,716,717,5,99,0,0,717,718,5,116,0,0,718,719,5,105,0,0,719,720,5,111,0,0,720,721,5,110,0,0,721,74,1,0,0,0,722,723,5,99,0,0,723,724,5,111,0,0,724,725,5,110,0,0,725,726,5,110,0,0,726,727,5,101,0,0,727,728,5,99,0,0,728,729,5,116,0,0,729,730,5,111,0,0,730,731,5,114,0,0,731,76,1,0,0,0,732,733,5,99,0,0,733,734,5,111,0,0,734,735,5,110,0,0,735,736,5,115,0,0,736,737,5,116,0,0,737,78,1,0,0,0,738,739,5,99,0,0,739,740,5,111,0,0,740,741,5,110,0,0,741,742,5,115,0,0,742,743,5,116,0,0,743,744,5,97,0,0,744,745,5,110,0,0,745,746,5,116,0,0,746,80,1,0,0,0,747,748,5,99,0,0,748,749,5,111,0,0,749,750,5,110,0,0,750,751,5,115,0,0,751,752,5,116,0,0,752,753,5,114,0,0,753,754,5,97,0,0,754,755,5,105,0,0,755,756,5,110,0,0,756,757,5,116,0,0,757,82,1,0,0,0,758,759,5,99,0,0,759,760,5,114,0,0,760,761,5,111,0,0,761,762,5,115,0,0,762,763,5,115,0,0,763,764,5,101,0,0,764,765,5,115,0,0,765,84,1,0,0,0,766,767,5,100,0,0,767,768,5,97,0,0,768,769,5,116,0,0,769,770,5,97,0,0,770,771,5,116,0,0,771,772,5,121,0,0,772,773,5,112,0,0,773,774,5,101,0,0,774,86,1,0,0,0,775,776,5,100,0,0,776,777,5,101,0,0,777,778,5,99,0,0,778,779,5,105,0,0,779,780,5,100,0,0,780,781,5,101,0,0,781,88,1,0,0,0,782,783,5,100,0,0,783,784,5,101,0,0,784,785,5,102,0,0,785,90,1,0,0,0,786,787,5,100,0,0,787,788,5,101,0,0,788,789,5,102,0,0,789,790,5,97,0,0,790,791,5,117,0,0,791,792,5,108,0,0,792,793,5,116,0,0,793,92,1,0,0,0,794,795,5,100,0,0,795,796,5,101,0,0,796,797,5,102,0,0,797,798,5,105,0,0,798,799,5,110,0,0,799,800,5,101,0,0,800,801,5,100,0,0,801,94,1,0,0,0,802,803,5,100,0,0,803,804,5,101,0,0,804,805,5,112,0,0,805,806,5,101,0,0,806,807,5,110,0,0,807,808,5,100,0,0,808,809,5,101,0,0,809,810,5,110,0,0,810,811,5,99,0,0,811,812,5,121,0,0,812,96,1,0,0,0,813,814,5,100,0,0,814,815,5,101,0,0,815,816,5,114,0,0,816,817,5,105,0,0,817,818,5,118,0,0,818,819,5,101,0,0,819,820,5,100,0,0,820,98,1,0,0,0,821,822,5,100,0,0,822,823,5,105,0,0,823,824,5,102,0,0,824,825,5,102,0,0,825,826,5,101,0,0,826,827,5,114,0,0,827,828,5,101,0,0,828,829,5,110,0,0,829,830,5,99,0,0,830,831,5,101,0,0,831,832,5,115,0,0,832,100,1,0,0,0,833,834,5,100,0,0,834,835,5,105,0,0,835,836,5,115,0,0,836,837,5,106,0,0,837,838,5,111,0,0,838,839,5,105,0,0,839,840,5,110,0,0,840,841,5,105,0,0,841,842,5,110,0,0,842,843,5,103,0,0,843,102,1,0,0,0,844,845,5,100,0,0,845,846,5,105,0,0,846,847,5,115,0,0,847,848,5,106,0,0,848,849,5,111,0,0,849,850,5,105,0,0,850,851,5,110,0,0,851,852,5,116,0,0,852,104,1,0,0,0,853,854,5,100,0,0,854,855,5,111,0,0,855,106,1,0,0,0,856,857,5,100,0,0,857,858,5,111,0,0,858,859,5,99,0,0,859,108,1,0,0,0,860,861,5,101,0,0,861,862,5,108,0,0,862,863,5,115,0,0,863,864,5,101,0,0,864,110,1,0,0,0,865,866,5,101,0,0,866,867,5,110,0,0,867,868,5,100,0,0,868,112,1,0,0,0,869,870,5,101,0,0,870,871,5,110,0,0,871,872,5,116,0,0,872,873,5,114,0,0,873,874,5,121,0,0,874,114,1,0,0,0,875,876,5,101,0,0,876,877,5,110,0,0,877,878,5,117,0,0,878,879,5,109,0,0,879,116,1,0,0,0,880,881,5,101,0,0,881,882,5,118,0,0,882,883,5,101,0,0,883,884,5,110,0,0,884,885,5,116,0,0,885,118,1,0,0,0,886,887,5,101,0,0,887,888,5,120,0,0,888,889,5,104,0,0,889,890,5,105,0,0,890,891,5,98,0,0,891,892,5,105,0,0,892,893,5,116,0,0,893,120,1,0,0,0,894,895,5,101,0,0,895,896,5,120,0,0,896,897,5,105,0,0,897,898,5,116,0,0,898,122,1,0,0,0,899,900,5,101,0,0,900,901,5,120,0,0,901,902,5,112,0,0,902,903,5,111,0,0,903,904,5,115,0,0,904,905,5,101,0,0,905,124,1,0,0,0,906,907,5,101,0,0,907,908,5,120,0,0,908,909,5,112,0,0,909,910,5,114,0,0,910,126,1,0,0,0,911,912,5,102,0,0,912,913,5,97,0,0,913,914,5,108,0,0,914,915,5,115,0,0,915,916,5,101,0,0,916,128,1,0,0,0,917,918,5,102,0,0,918,919,5,101,0,0,919,920,5,97,0,0,920,921,5,116,0,0,921,922,5,117,0,0,922,923,5,114,0,0,923,924,5,101,0,0,924,130,1,0,0,0,925,926,5,102,0,0,926,927,5,101,0,0,927,928,5,97,0,0,928,929,5,116,0,0,929,930,5,117,0,0,930,931,5,114,0,0,931,932,5,101,0,0,932,933,5,100,0,0,933,132,1,0,0,0,934,935,5,102,0,0,935,936,5,101,0,0,936,937,5,97,0,0,937,938,5,116,0,0,938,939,5,117,0,0,939,940,5,114,0,0,940,941,5,105,0,0,941,942,5,110,0,0,942,943,5,103,0,0,943,134,1,0,0,0,944,945,5,102,0,0,945,946,5,105,0,0,946,947,5,108,0,0,947,948,5,116,0,0,948,949,5,101,0,0,949,950,5,114,0,0,950,136,1,0,0,0,951,952,5,102,0,0,952,953,5,105,0,0,953,954,5,114,0,0,954,955,5,115,0,0,955,956,5,116,0,0,956,138,1,0,0,0,957,958,5,102,0,0,958,959,5,108,0,0,959,960,5,111,0,0,960,961,5,119,0,0,961,140,1,0,0,0,962,963,5,102,0,0,963,964,5,111,0,0,964,965,5,114,0,0,965,142,1,0,0,0,966,967,5,102,0,0,967,968,5,111,0,0,968,969,5,114,0,0,969,970,5,107,0,0,970,144,1,0,0,0,971,972,5,102,0,0,972,973,5,114,0,0,973,974,5,97,0,0,974,975,5,109,0,0,975,976,5,101,0,0,976,146,1,0,0,0,977,978,5,102,0,0,978,979,5,114,0,0,979,980,5,111,0,0,980,981,5,109,0,0,981,148,1,0,0,0,982,983,5,102,0,0,983,984,5,117,0,0,984,985,5,110,0,0,985,986,5,99,0,0,986,987,5,116,0,0,987,988,5,105,0,0,988,989,5,111,0,0,989,990,5,110,0,0,990,150,1,0,0,0,991,992,5,104,0,0,992,993,5,97,0,0,993,994,5,115,0,0,994,995,5,116,0,0,995,996,5,121,0,0,996,997,5,112,0,0,997,998,5,101,0,0,998,152,1,0,0,0,999,1e3,5,105,0,0,1e3,1001,5,102,0,0,1001,154,1,0,0,0,1002,1003,5,105,0,0,1003,1004,5,109,0,0,1004,1005,5,112,0,0,1005,1006,5,108,0,0,1006,1007,5,105,0,0,1007,1008,5,101,0,0,1008,1009,5,115,0,0,1009,156,1,0,0,0,1010,1011,5,105,0,0,1011,1012,5,109,0,0,1012,1013,5,112,0,0,1013,1014,5,111,0,0,1014,1015,5,114,0,0,1015,1016,5,116,0,0,1016,158,1,0,0,0,1017,1018,5,105,0,0,1018,1019,5,110,0,0,1019,160,1,0,0,0,1020,1021,5,105,0,0,1021,1022,5,110,0,0,1022,1023,5,99,0,0,1023,1024,5,108,0,0,1024,1025,5,117,0,0,1025,1026,5,100,0,0,1026,1027,5,101,0,0,1027,162,1,0,0,0,1028,1029,5,105,0,0,1029,1030,5,110,0,0,1030,1031,5,100,0,0,1031,1032,5,105,0,0,1032,1033,5,118,0,0,1033,1034,5,105,0,0,1034,1035,5,100,0,0,1035,1036,5,117,0,0,1036,1037,5,97,0,0,1037,1038,5,108,0,0,1038,164,1,0,0,0,1039,1040,5,105,0,0,1040,1041,5,110,0,0,1041,1042,5,111,0,0,1042,1043,5,117,0,0,1043,1044,5,116,0,0,1044,166,1,0,0,0,1045,1046,5,105,0,0,1046,1047,5,110,0,0,1047,1048,5,116,0,0,1048,1049,5,101,0,0,1049,1050,5,114,0,0,1050,1051,5,97,0,0,1051,1052,5,99,0,0,1052,1053,5,116,0,0,1053,1054,5,105,0,0,1054,1055,5,111,0,0,1055,1056,5,110,0,0,1056,168,1,0,0,0,1057,1058,5,105,0,0,1058,1059,5,110,0,0,1059,1060,5,116,0,0,1060,1061,5,101,0,0,1061,1062,5,114,0,0,1062,1063,5,102,0,0,1063,1064,5,97,0,0,1064,1065,5,99,0,0,1065,1066,5,101,0,0,1066,170,1,0,0,0,1067,1068,5,105,0,0,1068,1069,5,110,0,0,1069,1070,5,116,0,0,1070,1071,5,101,0,0,1071,1072,5,114,0,0,1072,1073,5,115,0,0,1073,1074,5,101,0,0,1074,1075,5,99,0,0,1075,1076,5,116,0,0,1076,1077,5,115,0,0,1077,172,1,0,0,0,1078,1079,5,105,0,0,1079,1080,5,110,0,0,1080,1081,5,118,0,0,1081,174,1,0,0,0,1082,1083,5,105,0,0,1083,1084,5,110,0,0,1084,1085,5,118,0,0,1085,1086,5,101,0,0,1086,1087,5,114,0,0,1087,1088,5,115,0,0,1088,1089,5,101,0,0,1089,176,1,0,0,0,1090,1091,5,105,0,0,1091,1092,5,110,0,0,1092,1093,5,118,0,0,1093,1094,5,101,0,0,1094,1095,5,114,0,0,1095,1096,5,116,0,0,1096,1097,5,105,0,0,1097,1098,5,110,0,0,1098,1099,5,103,0,0,1099,178,1,0,0,0,1100,1101,5,105,0,0,1101,1102,5,115,0,0,1102,1103,5,116,0,0,1103,1104,5,121,0,0,1104,1105,5,112,0,0,1105,1106,5,101,0,0,1106,180,1,0,0,0,1107,1108,5,105,0,0,1108,1109,5,116,0,0,1109,1110,5,101,0,0,1110,1111,5,109,0,0,1111,182,1,0,0,0,1112,1113,5,106,0,0,1113,1114,5,111,0,0,1114,1115,5,105,0,0,1115,1116,5,110,0,0,1116,184,1,0,0,0,1117,1118,5,108,0,0,1118,1119,5,97,0,0,1119,1120,5,110,0,0,1120,1121,5,103,0,0,1121,1122,5,117,0,0,1122,1123,5,97,0,0,1123,1124,5,103,0,0,1124,1125,5,101,0,0,1125,186,1,0,0,0,1126,1127,5,108,0,0,1127,1128,5,105,0,0,1128,1129,5,98,0,0,1129,1130,5,114,0,0,1130,1131,5,97,0,0,1131,1132,5,114,0,0,1132,1133,5,121,0,0,1133,188,1,0,0,0,1134,1135,5,108,0,0,1135,1136,5,111,0,0,1136,1137,5,99,0,0,1137,1138,5,97,0,0,1138,1139,5,108,0,0,1139,1140,5,101,0,0,1140,190,1,0,0,0,1141,1142,5,108,0,0,1142,1143,5,111,0,0,1143,1144,5,111,0,0,1144,1145,5,112,0,0,1145,192,1,0,0,0,1146,1147,5,109,0,0,1147,1148,5,101,0,0,1148,1149,5,109,0,0,1149,1150,5,98,0,0,1150,1151,5,101,0,0,1151,1152,5,114,0,0,1152,194,1,0,0,0,1153,1154,5,109,0,0,1154,1155,5,101,0,0,1155,1156,5,114,0,0,1156,1157,5,103,0,0,1157,1158,5,101,0,0,1158,196,1,0,0,0,1159,1160,5,109,0,0,1160,1161,5,101,0,0,1161,1162,5,115,0,0,1162,1163,5,115,0,0,1163,1164,5,97,0,0,1164,1165,5,103,0,0,1165,1166,5,101,0,0,1166,198,1,0,0,0,1167,1168,5,109,0,0,1168,1169,5,101,0,0,1169,1170,5,116,0,0,1170,1171,5,97,0,0,1171,200,1,0,0,0,1172,1173,5,109,0,0,1173,1174,5,101,0,0,1174,1175,5,116,0,0,1175,1176,5,97,0,0,1176,1177,5,99,0,0,1177,1178,5,108,0,0,1178,1179,5,97,0,0,1179,1180,5,115,0,0,1180,1181,5,115,0,0,1181,202,1,0,0,0,1182,1183,5,109,0,0,1183,1184,5,101,0,0,1184,1185,5,116,0,0,1185,1186,5,97,0,0,1186,1187,5,100,0,0,1187,1188,5,97,0,0,1188,1189,5,116,0,0,1189,1190,5,97,0,0,1190,204,1,0,0,0,1191,1192,5,109,0,0,1192,1193,5,117,0,0,1193,1194,5,108,0,0,1194,1195,5,116,0,0,1195,1196,5,105,0,0,1196,1197,5,112,0,0,1197,1198,5,108,0,0,1198,1199,5,105,0,0,1199,1200,5,99,0,0,1200,1201,5,105,0,0,1201,1202,5,116,0,0,1202,1203,5,121,0,0,1203,206,1,0,0,0,1204,1205,5,110,0,0,1205,1206,5,97,0,0,1206,1207,5,109,0,0,1207,1208,5,101,0,0,1208,1209,5,115,0,0,1209,1210,5,112,0,0,1210,1211,5,97,0,0,1211,1212,5,99,0,0,1212,1213,5,101,0,0,1213,208,1,0,0,0,1214,1215,5,110,0,0,1215,1216,5,101,0,0,1216,1217,5,119,0,0,1217,210,1,0,0,0,1218,1219,5,110,0,0,1219,1220,5,111,0,0,1220,1221,5,110,0,0,1221,1222,5,117,0,0,1222,1223,5,110,0,0,1223,1224,5,105,0,0,1224,1225,5,113,0,0,1225,1226,5,117,0,0,1226,1227,5,101,0,0,1227,212,1,0,0,0,1228,1229,5,110,0,0,1229,1230,5,111,0,0,1230,1231,5,116,0,0,1231,214,1,0,0,0,1232,1233,5,110,0,0,1233,1234,5,117,0,0,1234,1235,5,108,0,0,1235,1236,5,108,0,0,1236,216,1,0,0,0,1237,1238,5,111,0,0,1238,1239,5,98,0,0,1239,1240,5,106,0,0,1240,1241,5,101,0,0,1241,1242,5,99,0,0,1242,1243,5,116,0,0,1243,1244,5,105,0,0,1244,1245,5,118,0,0,1245,1246,5,101,0,0,1246,218,1,0,0,0,1247,1248,5,111,0,0,1248,1249,5,99,0,0,1249,1250,5,99,0,0,1250,1251,5,117,0,0,1251,1252,5,114,0,0,1252,1253,5,114,0,0,1253,1254,5,101,0,0,1254,1255,5,110,0,0,1255,1256,5,99,0,0,1256,1257,5,101,0,0,1257,220,1,0,0,0,1258,1259,5,111,0,0,1259,1260,5,102,0,0,1260,222,1,0,0,0,1261,1262,5,111,0,0,1262,1263,5,114,0,0,1263,224,1,0,0,0,1264,1265,5,111,0,0,1265,1266,5,114,0,0,1266,1267,5,100,0,0,1267,1268,5,101,0,0,1268,1269,5,114,0,0,1269,1270,5,101,0,0,1270,1271,5,100,0,0,1271,226,1,0,0,0,1272,1273,5,111,0,0,1273,1274,5,117,0,0,1274,1275,5,116,0,0,1275,228,1,0,0,0,1276,1277,5,112,0,0,1277,1278,5,97,0,0,1278,1279,5,99,0,0,1279,1280,5,107,0,0,1280,1281,5,97,0,0,1281,1282,5,103,0,0,1282,1283,5,101,0,0,1283,230,1,0,0,0,1284,1285,5,112,0,0,1285,1286,5,97,0,0,1286,1287,5,114,0,0,1287,1288,5,97,0,0,1288,1289,5,108,0,0,1289,1290,5,108,0,0,1290,1291,5,101,0,0,1291,1292,5,108,0,0,1292,232,1,0,0,0,1293,1294,5,112,0,0,1294,1295,5,97,0,0,1295,1296,5,114,0,0,1296,1297,5,116,0,0,1297,234,1,0,0,0,1298,1299,5,112,0,0,1299,1300,5,101,0,0,1300,1301,5,114,0,0,1301,1302,5,102,0,0,1302,1303,5,111,0,0,1303,1304,5,114,0,0,1304,1305,5,109,0,0,1305,236,1,0,0,0,1306,1307,5,112,0,0,1307,1308,5,111,0,0,1308,1309,5,114,0,0,1309,1310,5,116,0,0,1310,238,1,0,0,0,1311,1312,5,112,0,0,1312,1313,5,111,0,0,1313,1314,5,114,0,0,1314,1315,5,116,0,0,1315,1316,5,105,0,0,1316,1317,5,111,0,0,1317,1318,5,110,0,0,1318,240,1,0,0,0,1319,1320,5,112,0,0,1320,1321,5,114,0,0,1321,1322,5,101,0,0,1322,1323,5,100,0,0,1323,1324,5,105,0,0,1324,1325,5,99,0,0,1325,1326,5,97,0,0,1326,1327,5,116,0,0,1327,1328,5,101,0,0,1328,242,1,0,0,0,1329,1330,5,112,0,0,1330,1331,5,114,0,0,1331,1332,5,105,0,0,1332,1333,5,118,0,0,1333,1334,5,97,0,0,1334,1335,5,116,0,0,1335,1336,5,101,0,0,1336,244,1,0,0,0,1337,1338,5,112,0,0,1338,1339,5,114,0,0,1339,1340,5,111,0,0,1340,1341,5,116,0,0,1341,1342,5,101,0,0,1342,1343,5,99,0,0,1343,1344,5,116,0,0,1344,1345,5,101,0,0,1345,1346,5,100,0,0,1346,246,1,0,0,0,1347,1348,5,112,0,0,1348,1349,5,117,0,0,1349,1350,5,98,0,0,1350,1351,5,108,0,0,1351,1352,5,105,0,0,1352,1353,5,99,0,0,1353,248,1,0,0,0,1354,1355,5,114,0,0,1355,1356,5,101,0,0,1356,1357,5,100,0,0,1357,1358,5,101,0,0,1358,1359,5,102,0,0,1359,1360,5,105,0,0,1360,1361,5,110,0,0,1361,1362,5,101,0,0,1362,1363,5,115,0,0,1363,250,1,0,0,0,1364,1365,5,114,0,0,1365,1366,5,101,0,0,1366,1367,5,100,0,0,1367,1368,5,101,0,0,1368,1369,5,102,0,0,1369,1370,5,105,0,0,1370,1371,5,110,0,0,1371,1372,5,105,0,0,1372,1373,5,116,0,0,1373,1374,5,105,0,0,1374,1375,5,111,0,0,1375,1376,5,110,0,0,1376,252,1,0,0,0,1377,1378,5,114,0,0,1378,1379,5,101,0,0,1379,1380,5,102,0,0,1380,254,1,0,0,0,1381,1382,5,114,0,0,1382,1383,5,101,0,0,1383,1384,5,102,0,0,1384,1385,5,101,0,0,1385,1386,5,114,0,0,1386,1387,5,101,0,0,1387,1388,5,110,0,0,1388,1389,5,99,0,0,1389,1390,5,101,0,0,1390,1391,5,115,0,0,1391,256,1,0,0,0,1392,1393,5,114,0,0,1393,1394,5,101,0,0,1394,1395,5,110,0,0,1395,1396,5,100,0,0,1396,1397,5,101,0,0,1397,1398,5,114,0,0,1398,258,1,0,0,0,1399,1400,5,114,0,0,1400,1401,5,101,0,0,1401,1402,5,110,0,0,1402,1403,5,100,0,0,1403,1404,5,101,0,0,1404,1405,5,114,0,0,1405,1406,5,105,0,0,1406,1407,5,110,0,0,1407,1408,5,103,0,0,1408,260,1,0,0,0,1409,1410,5,114,0,0,1410,1411,5,101,0,0,1411,1412,5,112,0,0,1412,262,1,0,0,0,1413,1414,5,114,0,0,1414,1415,5,101,0,0,1415,1416,5,113,0,0,1416,1417,5,117,0,0,1417,1418,5,105,0,0,1418,1419,5,114,0,0,1419,1420,5,101,0,0,1420,264,1,0,0,0,1421,1422,5,114,0,0,1422,1423,5,101,0,0,1423,1424,5,113,0,0,1424,1425,5,117,0,0,1425,1426,5,105,0,0,1426,1427,5,114,0,0,1427,1428,5,101,0,0,1428,1429,5,109,0,0,1429,1430,5,101,0,0,1430,1431,5,110,0,0,1431,1432,5,116,0,0,1432,266,1,0,0,0,1433,1434,5,114,0,0,1434,1435,5,101,0,0,1435,1436,5,116,0,0,1436,1437,5,117,0,0,1437,1438,5,114,0,0,1438,1439,5,110,0,0,1439,268,1,0,0,0,1440,1441,5,115,0,0,1441,1442,5,97,0,0,1442,1443,5,116,0,0,1443,1444,5,105,0,0,1444,1445,5,115,0,0,1445,1446,5,102,0,0,1446,1447,5,121,0,0,1447,270,1,0,0,0,1448,1449,5,115,0,0,1449,1450,5,101,0,0,1450,1451,5,110,0,0,1451,1452,5,100,0,0,1452,272,1,0,0,0,1453,1454,5,115,0,0,1454,1455,5,110,0,0,1455,1456,5,97,0,0,1456,1457,5,112,0,0,1457,1458,5,115,0,0,1458,1459,5,104,0,0,1459,1460,5,111,0,0,1460,1461,5,116,0,0,1461,274,1,0,0,0,1462,1463,5,115,0,0,1463,1464,5,112,0,0,1464,1465,5,101,0,0,1465,1466,5,99,0,0,1466,1467,5,105,0,0,1467,1468,5,97,0,0,1468,1469,5,108,0,0,1469,1470,5,105,0,0,1470,1471,5,122,0,0,1471,1472,5,97,0,0,1472,1473,5,116,0,0,1473,1474,5,105,0,0,1474,1475,5,111,0,0,1475,1476,5,110,0,0,1476,276,1,0,0,0,1477,1478,5,115,0,0,1478,1479,5,112,0,0,1479,1480,5,101,0,0,1480,1481,5,99,0,0,1481,1482,5,105,0,0,1482,1483,5,97,0,0,1483,1484,5,108,0,0,1484,1485,5,105,0,0,1485,1486,5,122,0,0,1486,1487,5,101,0,0,1487,1488,5,115,0,0,1488,278,1,0,0,0,1489,1490,5,115,0,0,1490,1491,5,116,0,0,1491,1492,5,97,0,0,1492,1493,5,107,0,0,1493,1494,5,101,0,0,1494,1495,5,104,0,0,1495,1496,5,111,0,0,1496,1497,5,108,0,0,1497,1498,5,100,0,0,1498,1499,5,101,0,0,1499,1500,5,114,0,0,1500,280,1,0,0,0,1501,1502,5,115,0,0,1502,1503,5,116,0,0,1503,1504,5,97,0,0,1504,1505,5,110,0,0,1505,1506,5,100,0,0,1506,1507,5,97,0,0,1507,1508,5,114,0,0,1508,1509,5,100,0,0,1509,282,1,0,0,0,1510,1511,5,115,0,0,1511,1512,5,116,0,0,1512,1513,5,97,0,0,1513,1514,5,116,0,0,1514,1515,5,101,0,0,1515,284,1,0,0,0,1516,1517,5,115,0,0,1517,1518,5,116,0,0,1518,1519,5,101,0,0,1519,1520,5,112,0,0,1520,286,1,0,0,0,1521,1522,5,115,0,0,1522,1523,5,116,0,0,1523,1524,5,114,0,0,1524,1525,5,117,0,0,1525,1526,5,99,0,0,1526,1527,5,116,0,0,1527,288,1,0,0,0,1528,1529,5,115,0,0,1529,1530,5,117,0,0,1530,1531,5,98,0,0,1531,1532,5,99,0,0,1532,1533,5,108,0,0,1533,1534,5,97,0,0,1534,1535,5,115,0,0,1535,1536,5,115,0,0,1536,1537,5,105,0,0,1537,1538,5,102,0,0,1538,1539,5,105,0,0,1539,1540,5,101,0,0,1540,1541,5,114,0,0,1541,290,1,0,0,0,1542,1543,5,115,0,0,1543,1544,5,117,0,0,1544,1545,5,98,0,0,1545,1546,5,106,0,0,1546,1547,5,101,0,0,1547,1548,5,99,0,0,1548,1549,5,116,0,0,1549,292,1,0,0,0,1550,1551,5,115,0,0,1551,1552,5,117,0,0,1552,1553,5,98,0,0,1553,1554,5,115,0,0,1554,1555,5,101,0,0,1555,1556,5,116,0,0,1556,294,1,0,0,0,1557,1558,5,115,0,0,1558,1559,5,117,0,0,1559,1560,5,98,0,0,1560,1561,5,115,0,0,1561,1562,5,101,0,0,1562,1563,5,116,0,0,1563,1564,5,115,0,0,1564,296,1,0,0,0,1565,1566,5,115,0,0,1566,1567,5,117,0,0,1567,1568,5,98,0,0,1568,1569,5,116,0,0,1569,1570,5,121,0,0,1570,1571,5,112,0,0,1571,1572,5,101,0,0,1572,298,1,0,0,0,1573,1574,5,115,0,0,1574,1575,5,117,0,0,1575,1576,5,99,0,0,1576,1577,5,99,0,0,1577,1578,5,101,0,0,1578,1579,5,115,0,0,1579,1580,5,115,0,0,1580,1581,5,105,0,0,1581,1582,5,111,0,0,1582,1583,5,110,0,0,1583,300,1,0,0,0,1584,1585,5,116,0,0,1585,1586,5,101,0,0,1586,1587,5,114,0,0,1587,1588,5,109,0,0,1588,1589,5,105,0,0,1589,1590,5,110,0,0,1590,1591,5,97,0,0,1591,1592,5,116,0,0,1592,1593,5,101,0,0,1593,302,1,0,0,0,1594,1595,5,116,0,0,1595,1596,5,104,0,0,1596,1597,5,101,0,0,1597,1598,5,110,0,0,1598,304,1,0,0,0,1599,1600,5,116,0,0,1600,1601,5,105,0,0,1601,1602,5,109,0,0,1602,1603,5,101,0,0,1603,1604,5,115,0,0,1604,1605,5,108,0,0,1605,1606,5,105,0,0,1606,1607,5,99,0,0,1607,1608,5,101,0,0,1608,306,1,0,0,0,1609,1610,5,116,0,0,1610,1611,5,111,0,0,1611,308,1,0,0,0,1612,1613,5,116,0,0,1613,1614,5,114,0,0,1614,1615,5,97,0,0,1615,1616,5,110,0,0,1616,1617,5,115,0,0,1617,1618,5,105,0,0,1618,1619,5,116,0,0,1619,1620,5,105,0,0,1620,1621,5,111,0,0,1621,1622,5,110,0,0,1622,310,1,0,0,0,1623,1624,5,116,0,0,1624,1625,5,114,0,0,1625,1626,5,117,0,0,1626,1627,5,101,0,0,1627,312,1,0,0,0,1628,1629,5,116,0,0,1629,1630,5,121,0,0,1630,1631,5,112,0,0,1631,1632,5,101,0,0,1632,314,1,0,0,0,1633,1634,5,116,0,0,1634,1635,5,121,0,0,1635,1636,5,112,0,0,1636,1637,5,101,0,0,1637,1638,5,100,0,0,1638,316,1,0,0,0,1639,1640,5,116,0,0,1640,1641,5,121,0,0,1641,1642,5,112,0,0,1642,1643,5,105,0,0,1643,1644,5,110,0,0,1644,1645,5,103,0,0,1645,318,1,0,0,0,1646,1647,5,117,0,0,1647,1648,5,110,0,0,1648,1649,5,105,0,0,1649,1650,5,111,0,0,1650,1651,5,110,0,0,1651,1652,5,115,0,0,1652,320,1,0,0,0,1653,1654,5,117,0,0,1654,1655,5,110,0,0,1655,1656,5,116,0,0,1656,1657,5,105,0,0,1657,1658,5,108,0,0,1658,322,1,0,0,0,1659,1660,5,117,0,0,1660,1661,5,115,0,0,1661,1662,5,101,0,0,1662,324,1,0,0,0,1663,1664,5,118,0,0,1664,1665,5,97,0,0,1665,1666,5,114,0,0,1666,326,1,0,0,0,1667,1668,5,118,0,0,1668,1669,5,97,0,0,1669,1670,5,114,0,0,1670,1671,5,105,0,0,1671,1672,5,97,0,0,1672,1673,5,110,0,0,1673,1674,5,116,0,0,1674,328,1,0,0,0,1675,1676,5,118,0,0,1676,1677,5,97,0,0,1677,1678,5,114,0,0,1678,1679,5,105,0,0,1679,1680,5,97,0,0,1680,1681,5,116,0,0,1681,1682,5,105,0,0,1682,1683,5,111,0,0,1683,1684,5,110,0,0,1684,330,1,0,0,0,1685,1686,5,118,0,0,1686,1687,5,101,0,0,1687,1688,5,114,0,0,1688,1689,5,105,0,0,1689,1690,5,102,0,0,1690,1691,5,105,0,0,1691,1692,5,99,0,0,1692,1693,5,97,0,0,1693,1694,5,116,0,0,1694,1695,5,105,0,0,1695,1696,5,111,0,0,1696,1697,5,110,0,0,1697,332,1,0,0,0,1698,1699,5,118,0,0,1699,1700,5,101,0,0,1700,1701,5,114,0,0,1701,1702,5,105,0,0,1702,1703,5,102,0,0,1703,1704,5,121,0,0,1704,334,1,0,0,0,1705,1706,5,118,0,0,1706,1707,5,105,0,0,1707,1708,5,97,0,0,1708,336,1,0,0,0,1709,1710,5,118,0,0,1710,1711,5,105,0,0,1711,1712,5,101,0,0,1712,1713,5,119,0,0,1713,338,1,0,0,0,1714,1715,5,118,0,0,1715,1716,5,105,0,0,1716,1717,5,101,0,0,1717,1718,5,119,0,0,1718,1719,5,112,0,0,1719,1720,5,111,0,0,1720,1721,5,105,0,0,1721,1722,5,110,0,0,1722,1723,5,116,0,0,1723,340,1,0,0,0,1724,1725,5,119,0,0,1725,1726,5,104,0,0,1726,1727,5,101,0,0,1727,1728,5,110,0,0,1728,342,1,0,0,0,1729,1730,5,119,0,0,1730,1731,5,104,0,0,1731,1732,5,105,0,0,1732,1733,5,108,0,0,1733,1734,5,101,0,0,1734,344,1,0,0,0,1735,1736,5,120,0,0,1736,1737,5,111,0,0,1737,1738,5,114,0,0,1738,346,1,0,0,0,1739,1740,5,33,0,0,1740,1741,5,61,0,0,1741,1742,5,61,0,0,1742,348,1,0,0,0,1743,1744,5,58,0,0,1744,1745,5,58,0,0,1745,1746,5,62,0,0,1746,350,1,0,0,0,1747,1748,5,58,0,0,1748,1749,5,62,0,0,1749,1750,5,62,0,0,1750,352,1,0,0,0,1751,1752,5,61,0,0,1752,1753,5,61,0,0,1753,1754,5,61,0,0,1754,354,1,0,0,0,1755,1756,5,33,0,0,1756,1757,5,61,0,0,1757,356,1,0,0,0,1758,1759,5,42,0,0,1759,1760,5,42,0,0,1760,358,1,0,0,0,1761,1762,5,45,0,0,1762,1763,5,62,0,0,1763,360,1,0,0,0,1764,1765,5,46,0,0,1765,1766,5,46,0,0,1766,362,1,0,0,0,1767,1768,5,46,0,0,1768,1769,5,63,0,0,1769,364,1,0,0,0,1770,1771,5,58,0,0,1771,1772,5,58,0,0,1772,366,1,0,0,0,1773,1774,5,58,0,0,1774,1775,5,61,0,0,1775,368,1,0,0,0,1776,1777,5,58,0,0,1777,1778,5,62,0,0,1778,370,1,0,0,0,1779,1780,5,60,0,0,1780,1781,5,61,0,0,1781,372,1,0,0,0,1782,1783,5,61,0,0,1783,1784,5,61,0,0,1784,374,1,0,0,0,1785,1786,5,61,0,0,1786,1787,5,62,0,0,1787,376,1,0,0,0,1788,1789,5,62,0,0,1789,1790,5,61,0,0,1790,378,1,0,0,0,1791,1792,5,63,0,0,1792,1793,5,63,0,0,1793,380,1,0,0,0,1794,1795,5,64,0,0,1795,1796,5,64,0,0,1796,382,1,0,0,0,1797,1798,5,35,0,0,1798,384,1,0,0,0,1799,1800,5,36,0,0,1800,386,1,0,0,0,1801,1802,5,37,0,0,1802,388,1,0,0,0,1803,1804,5,38,0,0,1804,390,1,0,0,0,1805,1806,5,40,0,0,1806,392,1,0,0,0,1807,1808,5,41,0,0,1808,394,1,0,0,0,1809,1810,5,42,0,0,1810,396,1,0,0,0,1811,1812,5,43,0,0,1812,398,1,0,0,0,1813,1814,5,44,0,0,1814,400,1,0,0,0,1815,1816,5,45,0,0,1816,402,1,0,0,0,1817,1818,5,46,0,0,1818,404,1,0,0,0,1819,1820,5,47,0,0,1820,406,1,0,0,0,1821,1822,5,58,0,0,1822,408,1,0,0,0,1823,1824,5,59,0,0,1824,410,1,0,0,0,1825,1826,5,60,0,0,1826,412,1,0,0,0,1827,1828,5,61,0,0,1828,414,1,0,0,0,1829,1830,5,62,0,0,1830,416,1,0,0,0,1831,1832,5,63,0,0,1832,418,1,0,0,0,1833,1834,5,64,0,0,1834,420,1,0,0,0,1835,1836,5,91,0,0,1836,422,1,0,0,0,1837,1838,5,93,0,0,1838,424,1,0,0,0,1839,1840,5,94,0,0,1840,426,1,0,0,0,1841,1842,5,123,0,0,1842,428,1,0,0,0,1843,1844,5,124,0,0,1844,430,1,0,0,0,1845,1846,5,125,0,0,1846,432,1,0,0,0,1847,1848,5,126,0,0,1848,434,1,0,0,0,1849,1853,7,0,0,0,1850,1852,7,1,0,0,1851,1850,1,0,0,0,1852,1855,1,0,0,0,1853,1851,1,0,0,0,1853,1854,1,0,0,0,1854,436,1,0,0,0,1855,1853,1,0,0,0,1856,1862,5,39,0,0,1857,1858,5,92,0,0,1858,1861,9,0,0,0,1859,1861,8,2,0,0,1860,1857,1,0,0,0,1860,1859,1,0,0,0,1861,1864,1,0,0,0,1862,1860,1,0,0,0,1862,1863,1,0,0,0,1863,1865,1,0,0,0,1864,1862,1,0,0,0,1865,1866,5,39,0,0,1866,438,1,0,0,0,1867,1873,5,34,0,0,1868,1869,5,92,0,0,1869,1872,9,0,0,0,1870,1872,8,3,0,0,1871,1868,1,0,0,0,1871,1870,1,0,0,0,1872,1875,1,0,0,0,1873,1871,1,0,0,0,1873,1874,1,0,0,0,1874,1876,1,0,0,0,1875,1873,1,0,0,0,1876,1877,5,34,0,0,1877,440,1,0,0,0,1878,1880,7,4,0,0,1879,1878,1,0,0,0,1880,1881,1,0,0,0,1881,1879,1,0,0,0,1881,1882,1,0,0,0,1882,442,1,0,0,0,1883,1885,7,4,0,0,1884,1883,1,0,0,0,1885,1888,1,0,0,0,1886,1884,1,0,0,0,1886,1887,1,0,0,0,1887,1889,1,0,0,0,1888,1886,1,0,0,0,1889,1891,5,46,0,0,1890,1892,7,4,0,0,1891,1890,1,0,0,0,1892,1893,1,0,0,0,1893,1891,1,0,0,0,1893,1894,1,0,0,0,1894,1904,1,0,0,0,1895,1897,7,5,0,0,1896,1898,7,6,0,0,1897,1896,1,0,0,0,1897,1898,1,0,0,0,1898,1900,1,0,0,0,1899,1901,7,4,0,0,1900,1899,1,0,0,0,1901,1902,1,0,0,0,1902,1900,1,0,0,0,1902,1903,1,0,0,0,1903,1905,1,0,0,0,1904,1895,1,0,0,0,1904,1905,1,0,0,0,1905,1921,1,0,0,0,1906,1908,7,4,0,0,1907,1906,1,0,0,0,1908,1909,1,0,0,0,1909,1907,1,0,0,0,1909,1910,1,0,0,0,1910,1911,1,0,0,0,1911,1913,7,5,0,0,1912,1914,7,6,0,0,1913,1912,1,0,0,0,1913,1914,1,0,0,0,1914,1916,1,0,0,0,1915,1917,7,4,0,0,1916,1915,1,0,0,0,1917,1918,1,0,0,0,1918,1916,1,0,0,0,1918,1919,1,0,0,0,1919,1921,1,0,0,0,1920,1886,1,0,0,0,1920,1907,1,0,0,0,1921,444,1,0,0,0,1922,1923,5,47,0,0,1923,1924,5,42,0,0,1924,1928,1,0,0,0,1925,1927,9,0,0,0,1926,1925,1,0,0,0,1927,1930,1,0,0,0,1928,1929,1,0,0,0,1928,1926,1,0,0,0,1929,1931,1,0,0,0,1930,1928,1,0,0,0,1931,1932,5,42,0,0,1932,1946,5,47,0,0,1933,1934,5,47,0,0,1934,1935,5,47,0,0,1935,1936,5,42,0,0,1936,1940,1,0,0,0,1937,1939,9,0,0,0,1938,1937,1,0,0,0,1939,1942,1,0,0,0,1940,1941,1,0,0,0,1940,1938,1,0,0,0,1941,1943,1,0,0,0,1942,1940,1,0,0,0,1943,1944,5,42,0,0,1944,1946,5,47,0,0,1945,1922,1,0,0,0,1945,1933,1,0,0,0,1946,446,1,0,0,0,1947,1948,5,47,0,0,1948,1949,5,47,0,0,1949,1950,1,0,0,0,1950,1954,8,7,0,0,1951,1953,8,8,0,0,1952,1951,1,0,0,0,1953,1956,1,0,0,0,1954,1952,1,0,0,0,1954,1955,1,0,0,0,1955,1957,1,0,0,0,1956,1954,1,0,0,0,1957,1958,6,223,0,0,1958,448,1,0,0,0,1959,1960,5,47,0,0,1960,1961,5,47,0,0,1961,1962,1,0,0,0,1962,1963,6,224,0,0,1963,450,1,0,0,0,1964,1966,7,9,0,0,1965,1964,1,0,0,0,1966,1967,1,0,0,0,1967,1965,1,0,0,0,1967,1968,1,0,0,0,1968,1969,1,0,0,0,1969,1970,6,225,0,0,1970,452,1,0,0,0,21,0,1853,1860,1862,1871,1873,1881,1886,1893,1897,1902,1904,1909,1913,1918,1920,1928,1940,1945,1954,1967,1,6,0,0];static __ATN;static get _ATN(){return _SysMLv2Lexer.__ATN||(_SysMLv2Lexer.__ATN=new ATNDeserializer().deserialize(_SysMLv2Lexer._serializedATN)),_SysMLv2Lexer.__ATN}static vocabulary=new Vocabulary(_SysMLv2Lexer.literalNames,_SysMLv2Lexer.symbolicNames,[]);get vocabulary(){return _SysMLv2Lexer.vocabulary}static decisionsToDFA=_SysMLv2Lexer._ATN.decisionToState.map((ds,index2)=>new DFA(ds,index2))};var SysMLv2Parser=class _SysMLv2Parser extends Parser{static ABOUT=1;static ABSTRACT=2;static ACCEPT=3;static ACTION=4;static ACTOR=5;static AFTER=6;static ALIAS=7;static ALL=8;static ALLOCATE=9;static ALLOCATION=10;static ANALYSIS=11;static AND=12;static AS=13;static ASSERT=14;static ASSIGN=15;static ASSOC=16;static ASSUME=17;static AT=18;static ATTRIBUTE=19;static BEHAVIOR=20;static BIND=21;static BINDING=22;static BOOL=23;static BY=24;static CALC=25;static CASE=26;static CHAINS=27;static CLASS=28;static CLASSIFIER=29;static COMMENT=30;static COMPOSITE=31;static CONCERN=32;static CONJUGATE=33;static CONJUGATES=34;static CONJUGATION=35;static CONNECT=36;static CONNECTION=37;static CONNECTOR=38;static CONST=39;static CONSTANT=40;static CONSTRAINT=41;static CROSSES=42;static DATATYPE=43;static DECIDE=44;static DEF=45;static DEFAULT=46;static DEFINED=47;static DEPENDENCY=48;static DERIVED=49;static DIFFERENCES=50;static DISJOINING=51;static DISJOINT=52;static DO=53;static DOC=54;static ELSE=55;static END=56;static ENTRY=57;static ENUM=58;static EVENT=59;static EXHIBIT=60;static EXIT=61;static EXPOSE=62;static EXPR=63;static FALSE=64;static FEATURE=65;static FEATURED=66;static FEATURING=67;static FILTER=68;static FIRST=69;static FLOW=70;static FOR=71;static FORK=72;static FRAME=73;static FROM=74;static FUNCTION=75;static HASTYPE=76;static IF=77;static IMPLIES=78;static IMPORT=79;static IN=80;static INCLUDE=81;static INDIVIDUAL=82;static INOUT=83;static INTERACTION=84;static INTERFACE=85;static INTERSECTS=86;static INV=87;static INVERSE=88;static INVERTING=89;static ISTYPE=90;static ITEM=91;static JOIN=92;static LANGUAGE=93;static LIBRARY=94;static LOCALE=95;static LOOP=96;static MEMBER=97;static MERGE=98;static MESSAGE=99;static META=100;static METACLASS=101;static METADATA=102;static MULTIPLICITY=103;static NAMESPACE=104;static NEW=105;static NONUNIQUE=106;static NOT=107;static NULL=108;static OBJECTIVE=109;static OCCURRENCE=110;static OF=111;static OR=112;static ORDERED=113;static OUT=114;static PACKAGE=115;static PARALLEL=116;static PART=117;static PERFORM=118;static PORT=119;static PORTION=120;static PREDICATE=121;static PRIVATE=122;static PROTECTED=123;static PUBLIC=124;static REDEFINES=125;static REDEFINITION=126;static REF=127;static REFERENCES=128;static RENDER=129;static RENDERING=130;static REP=131;static REQUIRE=132;static REQUIREMENT=133;static RETURN=134;static SATISFY=135;static SEND=136;static SNAPSHOT=137;static SPECIALIZATION=138;static SPECIALIZES=139;static STAKEHOLDER=140;static STANDARD=141;static STATE=142;static STEP=143;static STRUCT=144;static SUBCLASSIFIER=145;static SUBJECT=146;static SUBSET=147;static SUBSETS=148;static SUBTYPE=149;static SUCCESSION=150;static TERMINATE=151;static THEN=152;static TIMESLICE=153;static TO=154;static TRANSITION=155;static TRUE=156;static TYPE=157;static TYPED=158;static TYPING=159;static UNIONS=160;static UNTIL=161;static USE=162;static VAR=163;static VARIANT=164;static VARIATION=165;static VERIFICATION=166;static VERIFY=167;static VIA=168;static VIEW=169;static VIEWPOINT=170;static WHEN=171;static WHILE=172;static XOR=173;static BANG_EQ_EQ=174;static COLON_COLON_GT=175;static COLON_GT_GT=176;static EQ_EQ_EQ=177;static BANG_EQ=178;static STAR_STAR=179;static ARROW=180;static DOT_DOT=181;static DOT_QUESTION=182;static COLON_COLON=183;static COLON_EQ=184;static COLON_GT=185;static LE=186;static EQ_EQ=187;static FAT_ARROW=188;static GE=189;static QUESTION_QUESTION=190;static AT_AT=191;static HASH=192;static DOLLAR=193;static PERCENT=194;static AMP=195;static LPAREN=196;static RPAREN=197;static STAR=198;static PLUS=199;static COMMA=200;static MINUS=201;static DOT=202;static SLASH=203;static COLON=204;static SEMI=205;static LT=206;static EQ=207;static GT=208;static QUESTION=209;static AT_SIGN=210;static LBRACK=211;static RBRACK=212;static CARET=213;static LBRACE=214;static PIPE=215;static RBRACE=216;static TILDE=217;static IDENTIFIER=218;static STRING=219;static DOUBLE_STRING=220;static INTEGER=221;static REAL=222;static REGULAR_COMMENT=223;static SINGLE_LINE_NOTE=224;static BARE_LINE_COMMENT=225;static WS=226;static RULE_ownedExpression=0;static RULE_typeReference=1;static RULE_sequenceExpressionList=2;static RULE_baseExpression=3;static RULE_nullExpression=4;static RULE_featureReferenceExpression=5;static RULE_constructorExpression=6;static RULE_bodyExpression=7;static RULE_argumentList=8;static RULE_positionalArgumentList=9;static RULE_namedArgumentList=10;static RULE_namedArgument=11;static RULE_literalExpression=12;static RULE_literalBoolean=13;static RULE_literalString=14;static RULE_literalInteger=15;static RULE_literalReal=16;static RULE_literalInfinity=17;static RULE_argumentMember=18;static RULE_argumentExpressionMember=19;static RULE_name=20;static RULE_unreservedKeyword=21;static RULE_identification=22;static RULE_relationshipBody=23;static RULE_relationshipOwnedElement=24;static RULE_ownedRelatedElement=25;static RULE_dependency=26;static RULE_annotation=27;static RULE_ownedAnnotation=28;static RULE_annotatingElement=29;static RULE_comment=30;static RULE_documentation=31;static RULE_textualRepresentation=32;static RULE_rootNamespace=33;static RULE_namespace=34;static RULE_namespaceDeclaration=35;static RULE_namespaceBody=36;static RULE_namespaceBodyElement=37;static RULE_memberPrefix=38;static RULE_visibilityIndicator=39;static RULE_namespaceMember=40;static RULE_nonFeatureMember=41;static RULE_namespaceFeatureMember=42;static RULE_aliasMember=43;static RULE_qualifiedName=44;static RULE_importRule=45;static RULE_importDeclaration=46;static RULE_membershipImport=47;static RULE_namespaceImport=48;static RULE_filterPackage=49;static RULE_filterPackageMember=50;static RULE_memberElement=51;static RULE_nonFeatureElement=52;static RULE_featureElement=53;static RULE_type=54;static RULE_typePrefix=55;static RULE_typeDeclaration=56;static RULE_specializationPart=57;static RULE_conjugationPart=58;static RULE_typeRelationshipPart=59;static RULE_disjoiningPart=60;static RULE_unioningPart=61;static RULE_intersectingPart=62;static RULE_differencingPart=63;static RULE_typeBody=64;static RULE_typeBodyElement=65;static RULE_specialization=66;static RULE_ownedSpecialization=67;static RULE_specificType=68;static RULE_generalType=69;static RULE_conjugation=70;static RULE_ownedConjugation=71;static RULE_disjoining=72;static RULE_ownedDisjoining=73;static RULE_unioning=74;static RULE_intersecting=75;static RULE_differencing=76;static RULE_featureMember=77;static RULE_typeFeatureMember=78;static RULE_ownedFeatureMember=79;static RULE_classifier=80;static RULE_classifierDeclaration=81;static RULE_superclassingPart=82;static RULE_subclassification=83;static RULE_ownedSubclassification=84;static RULE_feature=85;static RULE_endFeaturePrefix=86;static RULE_basicFeaturePrefix=87;static RULE_featurePrefix=88;static RULE_ownedCrossFeatureMember=89;static RULE_ownedCrossFeature=90;static RULE_featureDirection=91;static RULE_featureDeclaration=92;static RULE_featureIdentification=93;static RULE_featureRelationshipPart=94;static RULE_chainingPart=95;static RULE_invertingPart=96;static RULE_typeFeaturingPart=97;static RULE_featureSpecializationPart=98;static RULE_multiplicityPart=99;static RULE_featureSpecialization=100;static RULE_typings=101;static RULE_typedBy=102;static RULE_subsettings=103;static RULE_subsets=104;static RULE_references=105;static RULE_crosses=106;static RULE_redefinitions=107;static RULE_redefines=108;static RULE_featureTyping=109;static RULE_ownedFeatureTyping=110;static RULE_subsetting=111;static RULE_ownedSubsetting=112;static RULE_ownedReferenceSubsetting=113;static RULE_ownedCrossSubsetting=114;static RULE_redefinition=115;static RULE_ownedRedefinition=116;static RULE_featureInverting=117;static RULE_ownedFeatureInverting=118;static RULE_typeFeaturing=119;static RULE_ownedTypeFeaturing=120;static RULE_dataType=121;static RULE_class=122;static RULE_structure=123;static RULE_association=124;static RULE_associationStructure=125;static RULE_connector=126;static RULE_connectorDeclaration=127;static RULE_binaryConnectorDeclaration=128;static RULE_naryConnectorDeclaration=129;static RULE_connectorEndMember=130;static RULE_connectorEnd=131;static RULE_ownedCrossMultiplicityMember=132;static RULE_ownedCrossMultiplicity=133;static RULE_bindingConnector=134;static RULE_bindingConnectorDeclaration=135;static RULE_succession=136;static RULE_successionDeclaration=137;static RULE_behavior=138;static RULE_step=139;static RULE_function=140;static RULE_functionBody=141;static RULE_functionBodyPart=142;static RULE_returnFeatureMember=143;static RULE_resultExpressionMember=144;static RULE_expression=145;static RULE_predicate=146;static RULE_booleanExpression=147;static RULE_invariant=148;static RULE_featureChainMember=149;static RULE_interaction=150;static RULE_flow=151;static RULE_successionFlow=152;static RULE_flowDeclaration=153;static RULE_payloadFeatureMember=154;static RULE_payloadFeature=155;static RULE_payloadFeatureSpecializationPart=156;static RULE_flowEndMember=157;static RULE_flowEnd=158;static RULE_valuePart=159;static RULE_featureValue=160;static RULE_multiplicity=161;static RULE_multiplicitySubset=162;static RULE_multiplicityRange=163;static RULE_ownedMultiplicity=164;static RULE_ownedMultiplicityRange=165;static RULE_multiplicityBounds=166;static RULE_multiplicityExpressionMember=167;static RULE_metaclass=168;static RULE_prefixMetadataAnnotation=169;static RULE_prefixMetadataMember=170;static RULE_prefixMetadataFeature=171;static RULE_metadataFeature=172;static RULE_metadataFeatureDeclaration=173;static RULE_metadataBody=174;static RULE_metadataBodyElement=175;static RULE_metadataBodyFeatureMember=176;static RULE_metadataBodyFeature=177;static RULE_package=178;static RULE_libraryPackage=179;static RULE_packageDeclaration=180;static RULE_packageBody=181;static RULE_elementFilterMember=182;static RULE_dependencyDeclaration=183;static RULE_annotatingMember=184;static RULE_packageBodyElement=185;static RULE_packageMember=186;static RULE_definitionElement=187;static RULE_usageElement=188;static RULE_basicDefinitionPrefix=189;static RULE_definitionExtensionKeyword=190;static RULE_definitionPrefix=191;static RULE_definition=192;static RULE_definitionDeclaration=193;static RULE_definitionBody=194;static RULE_definitionBodyItem=195;static RULE_definitionBodyItemContent=196;static RULE_definitionMember=197;static RULE_variantUsageMember=198;static RULE_nonOccurrenceUsageMember=199;static RULE_structureUsageMember=200;static RULE_behaviorUsageMember=201;static RULE_refPrefix=202;static RULE_basicUsagePrefix=203;static RULE_endUsagePrefix=204;static RULE_usageExtensionKeyword=205;static RULE_unextendedUsagePrefix=206;static RULE_usagePrefix=207;static RULE_usage=208;static RULE_usageDeclaration=209;static RULE_usageCompletion=210;static RULE_usageBody=211;static RULE_defaultReferenceUsage=212;static RULE_referenceUsage=213;static RULE_endFeatureUsage=214;static RULE_variantReference=215;static RULE_nonOccurrenceUsageElement=216;static RULE_endOccurrenceUsageElement=217;static RULE_occurrenceUsageElement=218;static RULE_structureUsageElement=219;static RULE_behaviorUsageElement=220;static RULE_variantUsageElement=221;static RULE_subclassificationPart=222;static RULE_attributeDefinition=223;static RULE_attributeUsage=224;static RULE_enumerationDefinition=225;static RULE_enumerationBody=226;static RULE_enumerationUsageMember=227;static RULE_enumeratedValue=228;static RULE_enumerationUsage=229;static RULE_occurrenceDefinitionPrefix=230;static RULE_occurrenceDefinition=231;static RULE_individualDefinition=232;static RULE_emptyMultiplicityMember=233;static RULE_occurrenceUsagePrefix=234;static RULE_occurrenceUsage=235;static RULE_individualUsage=236;static RULE_portionUsage=237;static RULE_portionKind=238;static RULE_eventOccurrenceUsage=239;static RULE_sourceSuccessionMember=240;static RULE_sourceSuccession=241;static RULE_sourceEndMember=242;static RULE_sourceEnd=243;static RULE_itemDefinition=244;static RULE_itemUsage=245;static RULE_partDefinition=246;static RULE_partUsage=247;static RULE_portDefinition=248;static RULE_conjugatedPortDefinitionMember=249;static RULE_conjugatedPortDefinition=250;static RULE_portUsage=251;static RULE_conjugatedPortTyping=252;static RULE_connectionDefinition=253;static RULE_connectionUsage=254;static RULE_connectorPart=255;static RULE_binaryConnectorPart=256;static RULE_naryConnectorPart=257;static RULE_bindingConnectorAsUsage=258;static RULE_successionAsUsage=259;static RULE_interfaceDefinition=260;static RULE_interfaceBody=261;static RULE_interfaceBodyItem=262;static RULE_interfaceNonOccurrenceUsageMember=263;static RULE_interfaceNonOccurrenceUsageElement=264;static RULE_interfaceOccurrenceUsageMember=265;static RULE_interfaceOccurrenceUsageElement=266;static RULE_defaultInterfaceEnd=267;static RULE_interfaceUsage=268;static RULE_interfaceUsageDeclaration=269;static RULE_interfacePart=270;static RULE_binaryInterfacePart=271;static RULE_naryInterfacePart=272;static RULE_interfaceEndMember=273;static RULE_interfaceEnd=274;static RULE_allocationDefinition=275;static RULE_allocationUsage=276;static RULE_allocationUsageDeclaration=277;static RULE_flowDefinition=278;static RULE_message=279;static RULE_messageDeclaration=280;static RULE_messageEventMember=281;static RULE_messageEvent=282;static RULE_flowUsage=283;static RULE_successionFlowUsage=284;static RULE_flowPayloadFeatureMember=285;static RULE_flowPayloadFeature=286;static RULE_actionDefinition=287;static RULE_actionBody=288;static RULE_actionBodyItem=289;static RULE_nonBehaviorBodyItem=290;static RULE_actionBehaviorMember=291;static RULE_initialNodeMember=292;static RULE_actionNodeMember=293;static RULE_actionTargetSuccessionMember=294;static RULE_guardedSuccessionMember=295;static RULE_actionUsage=296;static RULE_actionUsageDeclaration=297;static RULE_performActionUsage=298;static RULE_performActionUsageDeclaration=299;static RULE_actionNode=300;static RULE_actionNodeUsageDeclaration=301;static RULE_actionNodePrefix=302;static RULE_controlNode=303;static RULE_controlNodePrefix=304;static RULE_mergeNode=305;static RULE_decisionNode=306;static RULE_joinNode=307;static RULE_forkNode=308;static RULE_acceptNode=309;static RULE_acceptNodeDeclaration=310;static RULE_acceptParameterPart=311;static RULE_payloadParameterMember=312;static RULE_payloadParameter=313;static RULE_triggerValuePart=314;static RULE_triggerFeatureValue=315;static RULE_triggerExpression=316;static RULE_sendNode=317;static RULE_sendNodeDeclaration=318;static RULE_senderReceiverPart=319;static RULE_nodeParameterMember=320;static RULE_nodeParameter=321;static RULE_featureBinding=322;static RULE_emptyParameterMember=323;static RULE_assignmentNode=324;static RULE_assignmentNodeDeclaration=325;static RULE_assignmentTargetMember=326;static RULE_assignmentTargetParameter=327;static RULE_assignmentTargetBinding=328;static RULE_terminateNode=329;static RULE_ifNode=330;static RULE_expressionParameterMember=331;static RULE_actionBodyParameterMember=332;static RULE_actionBodyParameter=333;static RULE_ifNodeParameterMember=334;static RULE_whileLoopNode=335;static RULE_forLoopNode=336;static RULE_forVariableDeclarationMember=337;static RULE_actionTargetSuccession=338;static RULE_targetSuccession=339;static RULE_guardedTargetSuccession=340;static RULE_defaultTargetSuccession=341;static RULE_guardedSuccession=342;static RULE_stateDefinition=343;static RULE_stateDefBody=344;static RULE_stateBodyItem=345;static RULE_entryActionMember=346;static RULE_doActionMember=347;static RULE_exitActionMember=348;static RULE_entryTransitionMember=349;static RULE_stateActionUsage=350;static RULE_statePerformActionUsage=351;static RULE_stateAcceptActionUsage=352;static RULE_stateSendActionUsage=353;static RULE_stateAssignmentActionUsage=354;static RULE_transitionUsageMember=355;static RULE_targetTransitionUsageMember=356;static RULE_stateUsage=357;static RULE_stateUsageBody=358;static RULE_exhibitStateUsage=359;static RULE_transitionUsage=360;static RULE_targetTransitionUsage=361;static RULE_triggerActionMember=362;static RULE_triggerAction=363;static RULE_guardExpressionMember=364;static RULE_effectBehaviorMember=365;static RULE_effectBehaviorUsage=366;static RULE_transitionPerformActionUsage=367;static RULE_transitionAcceptActionUsage=368;static RULE_transitionSendActionUsage=369;static RULE_transitionAssignmentActionUsage=370;static RULE_transitionSuccessionMember=371;static RULE_transitionSuccession=372;static RULE_emptyEndMember=373;static RULE_calculationDefinition=374;static RULE_calculationUsage=375;static RULE_calculationBody=376;static RULE_calculationBodyPart=377;static RULE_calculationBodyItem=378;static RULE_returnParameterMember=379;static RULE_constraintDefinition=380;static RULE_constraintUsage=381;static RULE_assertConstraintUsage=382;static RULE_constraintUsageDeclaration=383;static RULE_requirementDefinition=384;static RULE_requirementBody=385;static RULE_requirementBodyItem=386;static RULE_subjectMember=387;static RULE_subjectUsage=388;static RULE_requirementConstraintMember=389;static RULE_requirementKind=390;static RULE_requirementConstraintUsage=391;static RULE_framedConcernMember=392;static RULE_framedConcernUsage=393;static RULE_actorMember=394;static RULE_actorUsage=395;static RULE_stakeholderMember=396;static RULE_stakeholderUsage=397;static RULE_requirementUsage=398;static RULE_satisfyRequirementUsage=399;static RULE_satisfactionSubjectMember=400;static RULE_satisfactionParameter=401;static RULE_satisfactionFeatureValue=402;static RULE_satisfactionReferenceExpression=403;static RULE_concernDefinition=404;static RULE_concernUsage=405;static RULE_caseDefinition=406;static RULE_caseUsage=407;static RULE_caseBody=408;static RULE_caseBodyItem=409;static RULE_objectiveMember=410;static RULE_objectiveRequirementUsage=411;static RULE_analysisCaseDefinition=412;static RULE_analysisCaseUsage=413;static RULE_verificationCaseDefinition=414;static RULE_verificationCaseUsage=415;static RULE_requirementVerificationMember=416;static RULE_requirementVerificationUsage=417;static RULE_useCaseDefinition=418;static RULE_useCaseUsage=419;static RULE_includeUseCaseUsage=420;static RULE_viewDefinition=421;static RULE_viewDefinitionBody=422;static RULE_viewDefinitionBodyItem=423;static RULE_viewRenderingMember=424;static RULE_viewRenderingUsage=425;static RULE_viewUsage=426;static RULE_viewBody=427;static RULE_viewBodyItem=428;static RULE_expose=429;static RULE_membershipExpose=430;static RULE_namespaceExpose=431;static RULE_viewpointDefinition=432;static RULE_viewpointUsage=433;static RULE_renderingDefinition=434;static RULE_renderingUsage=435;static RULE_metadataDefinition=436;static RULE_prefixMetadataUsage=437;static RULE_metadataBodyUsageMember=438;static RULE_metadataBodyUsage=439;static RULE_extendedDefinition=440;static RULE_extendedUsage=441;static RULE_filterPackageImportDeclaration=442;static RULE_namespaceImportDirect=443;static RULE_calculationUsageDeclaration=444;static RULE_emptyActionUsage_=445;static RULE_emptyFeature_=446;static RULE_emptyMultiplicity_=447;static RULE_emptyUsage_=448;static RULE_filterPackageImport=449;static RULE_nonFeatureChainPrimaryExpression=450;static RULE_portConjugation=451;static literalNames=[null,"'about'","'abstract'","'accept'","'action'","'actor'","'after'","'alias'","'all'","'allocate'","'allocation'","'analysis'","'and'","'as'","'assert'","'assign'","'assoc'","'assume'","'at'","'attribute'","'behavior'","'bind'","'binding'","'bool'","'by'","'calc'","'case'","'chains'","'class'","'classifier'","'comment'","'composite'","'concern'","'conjugate'","'conjugates'","'conjugation'","'connect'","'connection'","'connector'","'const'","'constant'","'constraint'","'crosses'","'datatype'","'decide'","'def'","'default'","'defined'","'dependency'","'derived'","'differences'","'disjoining'","'disjoint'","'do'","'doc'","'else'","'end'","'entry'","'enum'","'event'","'exhibit'","'exit'","'expose'","'expr'","'false'","'feature'","'featured'","'featuring'","'filter'","'first'","'flow'","'for'","'fork'","'frame'","'from'","'function'","'hastype'","'if'","'implies'","'import'","'in'","'include'","'individual'","'inout'","'interaction'","'interface'","'intersects'","'inv'","'inverse'","'inverting'","'istype'","'item'","'join'","'language'","'library'","'locale'","'loop'","'member'","'merge'","'message'","'meta'","'metaclass'","'metadata'","'multiplicity'","'namespace'","'new'","'nonunique'","'not'","'null'","'objective'","'occurrence'","'of'","'or'","'ordered'","'out'","'package'","'parallel'","'part'","'perform'","'port'","'portion'","'predicate'","'private'","'protected'","'public'","'redefines'","'redefinition'","'ref'","'references'","'render'","'rendering'","'rep'","'require'","'requirement'","'return'","'satisfy'","'send'","'snapshot'","'specialization'","'specializes'","'stakeholder'","'standard'","'state'","'step'","'struct'","'subclassifier'","'subject'","'subset'","'subsets'","'subtype'","'succession'","'terminate'","'then'","'timeslice'","'to'","'transition'","'true'","'type'","'typed'","'typing'","'unions'","'until'","'use'","'var'","'variant'","'variation'","'verification'","'verify'","'via'","'view'","'viewpoint'","'when'","'while'","'xor'","'!=='","'::>'","':>>'","'==='","'!='","'**'","'->'","'..'","'.?'","'::'","':='","':>'","'<='","'=='","'=>'","'>='","'??'","'@@'","'#'","'$'","'%'","'&'","'('","')'","'*'","'+'","','","'-'","'.'","'/'","':'","';'","'<'","'='","'>'","'?'","'@'","'['","']'","'^'","'{'","'|'","'}'","'~'",null,null,null,null,null,null,null,"'//'"];static symbolicNames=[null,"ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","BARE_LINE_COMMENT","WS"];static ruleNames=["ownedExpression","typeReference","sequenceExpressionList","baseExpression","nullExpression","featureReferenceExpression","constructorExpression","bodyExpression","argumentList","positionalArgumentList","namedArgumentList","namedArgument","literalExpression","literalBoolean","literalString","literalInteger","literalReal","literalInfinity","argumentMember","argumentExpressionMember","name","unreservedKeyword","identification","relationshipBody","relationshipOwnedElement","ownedRelatedElement","dependency","annotation","ownedAnnotation","annotatingElement","comment","documentation","textualRepresentation","rootNamespace","namespace","namespaceDeclaration","namespaceBody","namespaceBodyElement","memberPrefix","visibilityIndicator","namespaceMember","nonFeatureMember","namespaceFeatureMember","aliasMember","qualifiedName","importRule","importDeclaration","membershipImport","namespaceImport","filterPackage","filterPackageMember","memberElement","nonFeatureElement","featureElement","type","typePrefix","typeDeclaration","specializationPart","conjugationPart","typeRelationshipPart","disjoiningPart","unioningPart","intersectingPart","differencingPart","typeBody","typeBodyElement","specialization","ownedSpecialization","specificType","generalType","conjugation","ownedConjugation","disjoining","ownedDisjoining","unioning","intersecting","differencing","featureMember","typeFeatureMember","ownedFeatureMember","classifier","classifierDeclaration","superclassingPart","subclassification","ownedSubclassification","feature","endFeaturePrefix","basicFeaturePrefix","featurePrefix","ownedCrossFeatureMember","ownedCrossFeature","featureDirection","featureDeclaration","featureIdentification","featureRelationshipPart","chainingPart","invertingPart","typeFeaturingPart","featureSpecializationPart","multiplicityPart","featureSpecialization","typings","typedBy","subsettings","subsets","references","crosses","redefinitions","redefines","featureTyping","ownedFeatureTyping","subsetting","ownedSubsetting","ownedReferenceSubsetting","ownedCrossSubsetting","redefinition","ownedRedefinition","featureInverting","ownedFeatureInverting","typeFeaturing","ownedTypeFeaturing","dataType","class","structure","association","associationStructure","connector","connectorDeclaration","binaryConnectorDeclaration","naryConnectorDeclaration","connectorEndMember","connectorEnd","ownedCrossMultiplicityMember","ownedCrossMultiplicity","bindingConnector","bindingConnectorDeclaration","succession","successionDeclaration","behavior","step","function","functionBody","functionBodyPart","returnFeatureMember","resultExpressionMember","expression","predicate","booleanExpression","invariant","featureChainMember","interaction","flow","successionFlow","flowDeclaration","payloadFeatureMember","payloadFeature","payloadFeatureSpecializationPart","flowEndMember","flowEnd","valuePart","featureValue","multiplicity","multiplicitySubset","multiplicityRange","ownedMultiplicity","ownedMultiplicityRange","multiplicityBounds","multiplicityExpressionMember","metaclass","prefixMetadataAnnotation","prefixMetadataMember","prefixMetadataFeature","metadataFeature","metadataFeatureDeclaration","metadataBody","metadataBodyElement","metadataBodyFeatureMember","metadataBodyFeature","package","libraryPackage","packageDeclaration","packageBody","elementFilterMember","dependencyDeclaration","annotatingMember","packageBodyElement","packageMember","definitionElement","usageElement","basicDefinitionPrefix","definitionExtensionKeyword","definitionPrefix","definition","definitionDeclaration","definitionBody","definitionBodyItem","definitionBodyItemContent","definitionMember","variantUsageMember","nonOccurrenceUsageMember","structureUsageMember","behaviorUsageMember","refPrefix","basicUsagePrefix","endUsagePrefix","usageExtensionKeyword","unextendedUsagePrefix","usagePrefix","usage","usageDeclaration","usageCompletion","usageBody","defaultReferenceUsage","referenceUsage","endFeatureUsage","variantReference","nonOccurrenceUsageElement","endOccurrenceUsageElement","occurrenceUsageElement","structureUsageElement","behaviorUsageElement","variantUsageElement","subclassificationPart","attributeDefinition","attributeUsage","enumerationDefinition","enumerationBody","enumerationUsageMember","enumeratedValue","enumerationUsage","occurrenceDefinitionPrefix","occurrenceDefinition","individualDefinition","emptyMultiplicityMember","occurrenceUsagePrefix","occurrenceUsage","individualUsage","portionUsage","portionKind","eventOccurrenceUsage","sourceSuccessionMember","sourceSuccession","sourceEndMember","sourceEnd","itemDefinition","itemUsage","partDefinition","partUsage","portDefinition","conjugatedPortDefinitionMember","conjugatedPortDefinition","portUsage","conjugatedPortTyping","connectionDefinition","connectionUsage","connectorPart","binaryConnectorPart","naryConnectorPart","bindingConnectorAsUsage","successionAsUsage","interfaceDefinition","interfaceBody","interfaceBodyItem","interfaceNonOccurrenceUsageMember","interfaceNonOccurrenceUsageElement","interfaceOccurrenceUsageMember","interfaceOccurrenceUsageElement","defaultInterfaceEnd","interfaceUsage","interfaceUsageDeclaration","interfacePart","binaryInterfacePart","naryInterfacePart","interfaceEndMember","interfaceEnd","allocationDefinition","allocationUsage","allocationUsageDeclaration","flowDefinition","message","messageDeclaration","messageEventMember","messageEvent","flowUsage","successionFlowUsage","flowPayloadFeatureMember","flowPayloadFeature","actionDefinition","actionBody","actionBodyItem","nonBehaviorBodyItem","actionBehaviorMember","initialNodeMember","actionNodeMember","actionTargetSuccessionMember","guardedSuccessionMember","actionUsage","actionUsageDeclaration","performActionUsage","performActionUsageDeclaration","actionNode","actionNodeUsageDeclaration","actionNodePrefix","controlNode","controlNodePrefix","mergeNode","decisionNode","joinNode","forkNode","acceptNode","acceptNodeDeclaration","acceptParameterPart","payloadParameterMember","payloadParameter","triggerValuePart","triggerFeatureValue","triggerExpression","sendNode","sendNodeDeclaration","senderReceiverPart","nodeParameterMember","nodeParameter","featureBinding","emptyParameterMember","assignmentNode","assignmentNodeDeclaration","assignmentTargetMember","assignmentTargetParameter","assignmentTargetBinding","terminateNode","ifNode","expressionParameterMember","actionBodyParameterMember","actionBodyParameter","ifNodeParameterMember","whileLoopNode","forLoopNode","forVariableDeclarationMember","actionTargetSuccession","targetSuccession","guardedTargetSuccession","defaultTargetSuccession","guardedSuccession","stateDefinition","stateDefBody","stateBodyItem","entryActionMember","doActionMember","exitActionMember","entryTransitionMember","stateActionUsage","statePerformActionUsage","stateAcceptActionUsage","stateSendActionUsage","stateAssignmentActionUsage","transitionUsageMember","targetTransitionUsageMember","stateUsage","stateUsageBody","exhibitStateUsage","transitionUsage","targetTransitionUsage","triggerActionMember","triggerAction","guardExpressionMember","effectBehaviorMember","effectBehaviorUsage","transitionPerformActionUsage","transitionAcceptActionUsage","transitionSendActionUsage","transitionAssignmentActionUsage","transitionSuccessionMember","transitionSuccession","emptyEndMember","calculationDefinition","calculationUsage","calculationBody","calculationBodyPart","calculationBodyItem","returnParameterMember","constraintDefinition","constraintUsage","assertConstraintUsage","constraintUsageDeclaration","requirementDefinition","requirementBody","requirementBodyItem","subjectMember","subjectUsage","requirementConstraintMember","requirementKind","requirementConstraintUsage","framedConcernMember","framedConcernUsage","actorMember","actorUsage","stakeholderMember","stakeholderUsage","requirementUsage","satisfyRequirementUsage","satisfactionSubjectMember","satisfactionParameter","satisfactionFeatureValue","satisfactionReferenceExpression","concernDefinition","concernUsage","caseDefinition","caseUsage","caseBody","caseBodyItem","objectiveMember","objectiveRequirementUsage","analysisCaseDefinition","analysisCaseUsage","verificationCaseDefinition","verificationCaseUsage","requirementVerificationMember","requirementVerificationUsage","useCaseDefinition","useCaseUsage","includeUseCaseUsage","viewDefinition","viewDefinitionBody","viewDefinitionBodyItem","viewRenderingMember","viewRenderingUsage","viewUsage","viewBody","viewBodyItem","expose","membershipExpose","namespaceExpose","viewpointDefinition","viewpointUsage","renderingDefinition","renderingUsage","metadataDefinition","prefixMetadataUsage","metadataBodyUsageMember","metadataBodyUsage","extendedDefinition","extendedUsage","filterPackageImportDeclaration","namespaceImportDirect","calculationUsageDeclaration","emptyActionUsage_","emptyFeature_","emptyMultiplicity_","emptyUsage_","filterPackageImport","nonFeatureChainPrimaryExpression","portConjugation"];get grammarFileName(){return"SysMLv2Parser.g4"}get literalNames(){return _SysMLv2Parser.literalNames}get symbolicNames(){return _SysMLv2Parser.symbolicNames}get ruleNames(){return _SysMLv2Parser.ruleNames}get serializedATN(){return _SysMLv2Parser._serializedATN}createFailedPredicateException(predicate,message){return new FailedPredicateException(this,predicate,message)}constructor(input){super(input),this.interpreter=new ParserATNSimulator(this,_SysMLv2Parser._ATN,_SysMLv2Parser.decisionsToDFA,new PredictionContextCache)}ownedExpression(_p){_p===void 0&&(_p=0);let parentContext=this.context,parentState=this.state,localContext=new OwnedExpressionContext(this.context,parentState),previousContext=localContext,_startState=0;this.enterRecursionRule(localContext,0,_SysMLv2Parser.RULE_ownedExpression,_p);let _la;try{let alternative;this.enterOuterAlt(localContext,1);{switch(this.state=919,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.IF:this.state=905,this.match(_SysMLv2Parser.IF),this.state=906,this.ownedExpression(0),this.state=907,this.match(_SysMLv2Parser.QUESTION),this.state=908,this.ownedExpression(0),this.state=909,this.match(_SysMLv2Parser.ELSE),this.state=910,this.ownedExpression(28);break;case _SysMLv2Parser.NOT:case _SysMLv2Parser.PLUS:case _SysMLv2Parser.MINUS:case _SysMLv2Parser.TILDE:this.state=912,_la=this.tokenStream.LA(1),_la===107||(_la-199&-32)===0&&(1<<_la-199&262149)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=913,this.ownedExpression(14);break;case _SysMLv2Parser.AT_AT:case _SysMLv2Parser.AT_SIGN:this.state=914,_la=this.tokenStream.LA(1),_la===191||_la===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=915,this.typeReference();break;case _SysMLv2Parser.ALL:this.state=916,this.match(_SysMLv2Parser.ALL),this.state=917,this.typeReference();break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FALSE:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.NEW:case _SysMLv2Parser.NULL:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TRUE:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.LPAREN:case _SysMLv2Parser.STAR:case _SysMLv2Parser.LBRACE:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:case _SysMLv2Parser.DOUBLE_STRING:case _SysMLv2Parser.INTEGER:case _SysMLv2Parser.REAL:case _SysMLv2Parser.REGULAR_COMMENT:this.state=918,this.baseExpression();break;default:throw new NoViableAltException(this)}for(this.context.stop=this.tokenStream.LT(-1),this.state=1002,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,5,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;){if(alternative===1)switch(this.parseListeners!=null&&this.triggerExitRuleEvent(),previousContext=localContext,this.state=1e3,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,4,this.context)){case 1:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=921,!this.precpred(this.context,27))throw this.createFailedPredicateException("this.precpred(this.context, 27)");this.state=922,this.match(_SysMLv2Parser.QUESTION_QUESTION),this.state=923,this.ownedExpression(28)}break;case 2:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=924,!this.precpred(this.context,26))throw this.createFailedPredicateException("this.precpred(this.context, 26)");this.state=925,this.match(_SysMLv2Parser.IMPLIES),this.state=926,this.ownedExpression(27)}break;case 3:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=927,!this.precpred(this.context,25))throw this.createFailedPredicateException("this.precpred(this.context, 25)");this.state=928,this.match(_SysMLv2Parser.OR),this.state=929,this.ownedExpression(26)}break;case 4:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=930,!this.precpred(this.context,24))throw this.createFailedPredicateException("this.precpred(this.context, 24)");this.state=931,this.match(_SysMLv2Parser.AND),this.state=932,this.ownedExpression(25)}break;case 5:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=933,!this.precpred(this.context,23))throw this.createFailedPredicateException("this.precpred(this.context, 23)");this.state=934,this.match(_SysMLv2Parser.XOR),this.state=935,this.ownedExpression(24)}break;case 6:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=936,!this.precpred(this.context,22))throw this.createFailedPredicateException("this.precpred(this.context, 22)");this.state=937,this.match(_SysMLv2Parser.PIPE),this.state=938,this.ownedExpression(23)}break;case 7:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=939,!this.precpred(this.context,21))throw this.createFailedPredicateException("this.precpred(this.context, 21)");this.state=940,this.match(_SysMLv2Parser.AMP),this.state=941,this.ownedExpression(22)}break;case 8:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=942,!this.precpred(this.context,20))throw this.createFailedPredicateException("this.precpred(this.context, 20)");this.state=943,_la=this.tokenStream.LA(1),(_la-174&-32)===0&&(1<<_la-174&8217)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=944,this.ownedExpression(21)}break;case 9:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=945,!this.precpred(this.context,19))throw this.createFailedPredicateException("this.precpred(this.context, 19)");this.state=946,_la=this.tokenStream.LA(1),(_la-186&-32)===0&&(1<<_la-186&5242889)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=947,this.ownedExpression(20)}break;case 10:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=948,!this.precpred(this.context,18))throw this.createFailedPredicateException("this.precpred(this.context, 18)");this.state=949,this.match(_SysMLv2Parser.DOT_DOT),this.state=950,this.ownedExpression(19)}break;case 11:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=951,!this.precpred(this.context,17))throw this.createFailedPredicateException("this.precpred(this.context, 17)");this.state=952,_la=this.tokenStream.LA(1),_la===199||_la===201?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=953,this.ownedExpression(18)}break;case 12:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=954,!this.precpred(this.context,16))throw this.createFailedPredicateException("this.precpred(this.context, 16)");this.state=955,_la=this.tokenStream.LA(1),(_la-194&-32)===0&&(1<<_la-194&529)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=956,this.ownedExpression(17)}break;case 13:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=957,!this.precpred(this.context,15))throw this.createFailedPredicateException("this.precpred(this.context, 15)");this.state=958,_la=this.tokenStream.LA(1),_la===179||_la===213?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=959,this.ownedExpression(15)}break;case 14:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=960,!this.precpred(this.context,12))throw this.createFailedPredicateException("this.precpred(this.context, 12)");this.state=961,_la=this.tokenStream.LA(1),_la===76||_la===90||_la===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=962,this.typeReference()}break;case 15:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=963,!this.precpred(this.context,11))throw this.createFailedPredicateException("this.precpred(this.context, 11)");this.state=964,this.match(_SysMLv2Parser.AS),this.state=965,this.typeReference()}break;case 16:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=966,!this.precpred(this.context,10))throw this.createFailedPredicateException("this.precpred(this.context, 10)");this.state=967,this.match(_SysMLv2Parser.AT_AT),this.state=968,this.typeReference()}break;case 17:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=969,!this.precpred(this.context,9))throw this.createFailedPredicateException("this.precpred(this.context, 9)");this.state=970,this.match(_SysMLv2Parser.META),this.state=971,this.typeReference()}break;case 18:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=972,!this.precpred(this.context,8))throw this.createFailedPredicateException("this.precpred(this.context, 8)");this.state=973,this.match(_SysMLv2Parser.LBRACK),this.state=975,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&16387)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=974,this.sequenceExpressionList()),this.state=977,this.match(_SysMLv2Parser.RBRACK)}break;case 19:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=978,!this.precpred(this.context,7))throw this.createFailedPredicateException("this.precpred(this.context, 7)");this.state=979,this.match(_SysMLv2Parser.HASH),this.state=980,this.match(_SysMLv2Parser.LPAREN),this.state=982,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&16387)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=981,this.sequenceExpressionList()),this.state=984,this.match(_SysMLv2Parser.RPAREN)}break;case 20:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=985,!this.precpred(this.context,6))throw this.createFailedPredicateException("this.precpred(this.context, 6)");this.state=986,this.argumentList()}break;case 21:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=987,!this.precpred(this.context,5))throw this.createFailedPredicateException("this.precpred(this.context, 5)");this.state=988,this.match(_SysMLv2Parser.DOT),this.state=989,this.qualifiedName()}break;case 22:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=990,!this.precpred(this.context,4))throw this.createFailedPredicateException("this.precpred(this.context, 4)");this.state=991,this.match(_SysMLv2Parser.DOT_QUESTION),this.state=992,this.bodyExpression()}break;case 23:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=993,!this.precpred(this.context,3))throw this.createFailedPredicateException("this.precpred(this.context, 3)");switch(this.state=994,this.match(_SysMLv2Parser.ARROW),this.state=995,this.qualifiedName(),this.state=998,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.LBRACE:this.state=996,this.bodyExpression();break;case _SysMLv2Parser.LPAREN:this.state=997,this.argumentList();break;default:throw new NoViableAltException(this)}}break}this.state=1004,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,5,this.context)}}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.unrollRecursionContexts(parentContext)}return localContext}typeReference(){let localContext=new TypeReferenceContext(this.context,this.state);this.enterRule(localContext,2,_SysMLv2Parser.RULE_typeReference);try{this.enterOuterAlt(localContext,1),this.state=1005,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sequenceExpressionList(){let localContext=new SequenceExpressionListContext(this.context,this.state);this.enterRule(localContext,4,_SysMLv2Parser.RULE_sequenceExpressionList);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1007,this.ownedExpression(0),this.state=1012,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1008,this.match(_SysMLv2Parser.COMMA),this.state=1009,this.ownedExpression(0),this.state=1014,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}baseExpression(){let localContext=new BaseExpressionContext(this.context,this.state);this.enterRule(localContext,6,_SysMLv2Parser.RULE_baseExpression);let _la;try{switch(this.state=1036,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,9,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1015,this.nullExpression();break;case 2:this.enterOuterAlt(localContext,2),this.state=1016,this.match(_SysMLv2Parser.REGULAR_COMMENT);break;case 3:this.enterOuterAlt(localContext,3),this.state=1017,this.literalExpression();break;case 4:switch(this.enterOuterAlt(localContext,4),this.state=1018,this.qualifiedName(),this.state=1022,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,7,this.context)){case 1:this.state=1019,this.argumentList();break;case 2:this.state=1020,this.match(_SysMLv2Parser.DOT),this.state=1021,this.match(_SysMLv2Parser.METADATA);break}break;case 5:this.enterOuterAlt(localContext,5),this.state=1024,this.constructorExpression();break;case 6:this.enterOuterAlt(localContext,6),this.state=1025,this.bodyExpression();break;case 7:this.enterOuterAlt(localContext,7),this.state=1026,this.match(_SysMLv2Parser.LPAREN),this.state=1027,this.match(_SysMLv2Parser.AS),this.state=1028,this.typeReference(),this.state=1029,this.match(_SysMLv2Parser.RPAREN);break;case 8:this.enterOuterAlt(localContext,8),this.state=1031,this.match(_SysMLv2Parser.LPAREN),this.state=1033,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&16387)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=1032,this.sequenceExpressionList()),this.state=1035,this.match(_SysMLv2Parser.RPAREN);break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nullExpression(){let localContext=new NullExpressionContext(this.context,this.state);this.enterRule(localContext,8,_SysMLv2Parser.RULE_nullExpression);try{switch(this.state=1041,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.NULL:this.enterOuterAlt(localContext,1),this.state=1038,this.match(_SysMLv2Parser.NULL);break;case _SysMLv2Parser.LPAREN:this.enterOuterAlt(localContext,2),this.state=1039,this.match(_SysMLv2Parser.LPAREN),this.state=1040,this.match(_SysMLv2Parser.RPAREN);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureReferenceExpression(){let localContext=new FeatureReferenceExpressionContext(this.context,this.state);this.enterRule(localContext,10,_SysMLv2Parser.RULE_featureReferenceExpression);try{this.enterOuterAlt(localContext,1),this.state=1043,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constructorExpression(){let localContext=new ConstructorExpressionContext(this.context,this.state);this.enterRule(localContext,12,_SysMLv2Parser.RULE_constructorExpression);try{this.enterOuterAlt(localContext,1),this.state=1045,this.match(_SysMLv2Parser.NEW),this.state=1046,this.qualifiedName(),this.state=1047,this.argumentList()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bodyExpression(){let localContext=new BodyExpressionContext(this.context,this.state);this.enterRule(localContext,14,_SysMLv2Parser.RULE_bodyExpression);try{this.enterOuterAlt(localContext,1),this.state=1049,this.match(_SysMLv2Parser.LBRACE),this.state=1050,this.functionBodyPart(),this.state=1051,this.match(_SysMLv2Parser.RBRACE)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}argumentList(){let localContext=new ArgumentListContext(this.context,this.state);this.enterRule(localContext,16,_SysMLv2Parser.RULE_argumentList);try{this.enterOuterAlt(localContext,1);{switch(this.state=1053,this.match(_SysMLv2Parser.LPAREN),this.state=1056,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,11,this.context)){case 1:this.state=1054,this.positionalArgumentList();break;case 2:this.state=1055,this.namedArgumentList();break}this.state=1058,this.match(_SysMLv2Parser.RPAREN)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}positionalArgumentList(){let localContext=new PositionalArgumentListContext(this.context,this.state);this.enterRule(localContext,18,_SysMLv2Parser.RULE_positionalArgumentList);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1060,this.ownedExpression(0),this.state=1065,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1061,this.match(_SysMLv2Parser.COMMA),this.state=1062,this.ownedExpression(0),this.state=1067,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namedArgumentList(){let localContext=new NamedArgumentListContext(this.context,this.state);this.enterRule(localContext,20,_SysMLv2Parser.RULE_namedArgumentList);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1068,this.namedArgument(),this.state=1073,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1069,this.match(_SysMLv2Parser.COMMA),this.state=1070,this.namedArgument(),this.state=1075,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namedArgument(){let localContext=new NamedArgumentContext(this.context,this.state);this.enterRule(localContext,22,_SysMLv2Parser.RULE_namedArgument);try{this.enterOuterAlt(localContext,1),this.state=1076,this.qualifiedName(),this.state=1077,this.match(_SysMLv2Parser.EQ),this.state=1078,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalExpression(){let localContext=new LiteralExpressionContext(this.context,this.state);this.enterRule(localContext,24,_SysMLv2Parser.RULE_literalExpression);try{switch(this.state=1085,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.FALSE:case _SysMLv2Parser.TRUE:this.enterOuterAlt(localContext,1),this.state=1080,this.literalBoolean();break;case _SysMLv2Parser.DOUBLE_STRING:this.enterOuterAlt(localContext,2),this.state=1081,this.literalString();break;case _SysMLv2Parser.INTEGER:this.enterOuterAlt(localContext,3),this.state=1082,this.literalInteger();break;case _SysMLv2Parser.REAL:this.enterOuterAlt(localContext,4),this.state=1083,this.literalReal();break;case _SysMLv2Parser.STAR:this.enterOuterAlt(localContext,5),this.state=1084,this.literalInfinity();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalBoolean(){let localContext=new LiteralBooleanContext(this.context,this.state);this.enterRule(localContext,26,_SysMLv2Parser.RULE_literalBoolean);let _la;try{this.enterOuterAlt(localContext,1),this.state=1087,_la=this.tokenStream.LA(1),_la===64||_la===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalString(){let localContext=new LiteralStringContext(this.context,this.state);this.enterRule(localContext,28,_SysMLv2Parser.RULE_literalString);try{this.enterOuterAlt(localContext,1),this.state=1089,this.match(_SysMLv2Parser.DOUBLE_STRING)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalInteger(){let localContext=new LiteralIntegerContext(this.context,this.state);this.enterRule(localContext,30,_SysMLv2Parser.RULE_literalInteger);try{this.enterOuterAlt(localContext,1),this.state=1091,this.match(_SysMLv2Parser.INTEGER)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalReal(){let localContext=new LiteralRealContext(this.context,this.state);this.enterRule(localContext,32,_SysMLv2Parser.RULE_literalReal);try{this.enterOuterAlt(localContext,1),this.state=1093,this.match(_SysMLv2Parser.REAL)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalInfinity(){let localContext=new LiteralInfinityContext(this.context,this.state);this.enterRule(localContext,34,_SysMLv2Parser.RULE_literalInfinity);try{this.enterOuterAlt(localContext,1),this.state=1095,this.match(_SysMLv2Parser.STAR)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}argumentMember(){let localContext=new ArgumentMemberContext(this.context,this.state);this.enterRule(localContext,36,_SysMLv2Parser.RULE_argumentMember);try{this.enterOuterAlt(localContext,1),this.state=1097,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}argumentExpressionMember(){let localContext=new ArgumentExpressionMemberContext(this.context,this.state);this.enterRule(localContext,38,_SysMLv2Parser.RULE_argumentExpressionMember);try{this.enterOuterAlt(localContext,1),this.state=1099,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}name(){let localContext=new NameContext(this.context,this.state);this.enterRule(localContext,40,_SysMLv2Parser.RULE_name);try{switch(this.state=1104,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.IDENTIFIER:this.enterOuterAlt(localContext,1),this.state=1101,this.match(_SysMLv2Parser.IDENTIFIER);break;case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,2),this.state=1102,this.match(_SysMLv2Parser.STRING);break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:this.enterOuterAlt(localContext,3),this.state=1103,this.unreservedKeyword();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}unreservedKeyword(){let localContext=new UnreservedKeywordContext(this.context,this.state);this.enterRule(localContext,42,_SysMLv2Parser.RULE_unreservedKeyword);let _la;try{this.enterOuterAlt(localContext,1),this.state=1106,_la=this.tokenStream.LA(1),_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}identification(){let localContext=new IdentificationContext(this.context,this.state);this.enterRule(localContext,44,_SysMLv2Parser.RULE_identification);try{switch(this.state=1118,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,16,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1108,this.match(_SysMLv2Parser.LT),this.state=1109,this.name(),this.state=1110,this.match(_SysMLv2Parser.GT),this.state=1111,this.name();break;case 2:this.enterOuterAlt(localContext,2),this.state=1113,this.match(_SysMLv2Parser.LT),this.state=1114,this.name(),this.state=1115,this.match(_SysMLv2Parser.GT);break;case 3:this.enterOuterAlt(localContext,3),this.state=1117,this.name();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}relationshipBody(){let localContext=new RelationshipBodyContext(this.context,this.state);this.enterRule(localContext,46,_SysMLv2Parser.RULE_relationshipBody);let _la;try{switch(this.state=1137,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,19,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1120,this.match(_SysMLv2Parser.SEMI);break;case 2:this.enterOuterAlt(localContext,2);{for(this.state=1121,this.match(_SysMLv2Parser.LBRACE),this.state=1125,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&4040229124)!==0||(_la-33&-32)===0&&(1<<_la-33&1085130343)!==0||(_la-65&-32)===0&&(1<<_la-65&1909228581)!==0||(_la-97&-32)===0&&(1<<_la-97&4052157169)!==0||(_la-131&-32)===0&&(1<<_la-131&470774913)!==0||(_la-163&-32)===0&&(1<<_la-163&1648373761)!==0||(_la-204&-32)===0&&(1<<_la-204&581829)!==0;)this.state=1122,this.relationshipOwnedElement(),this.state=1127,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1128,this.match(_SysMLv2Parser.RBRACE)}break;case 3:this.enterOuterAlt(localContext,3);{for(this.state=1129,this.match(_SysMLv2Parser.LBRACE),this.state=1133,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===30||_la===54||(_la-93&-32)===0&&(1<<_la-93&517)!==0||_la===131||(_la-192&-32)===0&&(1<<_la-192&2147745793)!==0;)this.state=1130,this.ownedAnnotation(),this.state=1135,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1136,this.match(_SysMLv2Parser.RBRACE)}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}relationshipOwnedElement(){let localContext=new RelationshipOwnedElementContext(this.context,this.state);this.enterRule(localContext,48,_SysMLv2Parser.RULE_relationshipOwnedElement);try{switch(this.state=1141,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,20,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1139,this.ownedRelatedElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=1140,this.ownedAnnotation();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedRelatedElement(){let localContext=new OwnedRelatedElementContext(this.context,this.state);this.enterRule(localContext,50,_SysMLv2Parser.RULE_ownedRelatedElement);try{switch(this.state=1145,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,21,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1143,this.nonFeatureElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=1144,this.featureElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}dependency(){let localContext=new DependencyContext(this.context,this.state);this.enterRule(localContext,52,_SysMLv2Parser.RULE_dependency);let _la;try{switch(this.state=1189,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,28,this.context)){case 1:this.enterOuterAlt(localContext,1);{for(this.state=1150,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=1147,this.prefixMetadataAnnotation(),this.state=1152,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=1153,this.match(_SysMLv2Parser.DEPENDENCY),this.state=1158,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,24,this.context)===1&&(this.state=1155,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1154,this.identification()),this.state=1157,this.match(_SysMLv2Parser.FROM)),this.state=1160,this.qualifiedName(),this.state=1165,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1161,this.match(_SysMLv2Parser.COMMA),this.state=1162,this.qualifiedName(),this.state=1167,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=1168,this.match(_SysMLv2Parser.TO),this.state=1169,this.qualifiedName(),this.state=1174,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1170,this.match(_SysMLv2Parser.COMMA),this.state=1171,this.qualifiedName(),this.state=1176,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1177,this.relationshipBody()}break;case 2:this.enterOuterAlt(localContext,2);{for(this.state=1182,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=1179,this.prefixMetadataAnnotation(),this.state=1184,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1185,this.match(_SysMLv2Parser.DEPENDENCY),this.state=1186,this.dependencyDeclaration(),this.state=1187,this.relationshipBody()}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}annotation(){let localContext=new AnnotationContext(this.context,this.state);this.enterRule(localContext,54,_SysMLv2Parser.RULE_annotation);try{this.enterOuterAlt(localContext,1),this.state=1191,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedAnnotation(){let localContext=new OwnedAnnotationContext(this.context,this.state);this.enterRule(localContext,56,_SysMLv2Parser.RULE_ownedAnnotation);try{this.enterOuterAlt(localContext,1),this.state=1193,this.annotatingElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}annotatingElement(){let localContext=new AnnotatingElementContext(this.context,this.state);this.enterRule(localContext,58,_SysMLv2Parser.RULE_annotatingElement);try{switch(this.state=1199,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COMMENT:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.REGULAR_COMMENT:this.enterOuterAlt(localContext,1),this.state=1195,this.comment();break;case _SysMLv2Parser.DOC:this.enterOuterAlt(localContext,2),this.state=1196,this.documentation();break;case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.REP:this.enterOuterAlt(localContext,3),this.state=1197,this.textualRepresentation();break;case _SysMLv2Parser.METADATA:case _SysMLv2Parser.HASH:case _SysMLv2Parser.AT_SIGN:this.enterOuterAlt(localContext,4),this.state=1198,this.metadataFeature();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}comment(){let localContext=new CommentContext(this.context,this.state);this.enterRule(localContext,60,_SysMLv2Parser.RULE_comment);let _la;try{this.enterOuterAlt(localContext,1);{if(this.state=1216,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===30&&(this.state=1201,this.match(_SysMLv2Parser.COMMENT),this.state=1203,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,30,this.context)===1&&(this.state=1202,this.identification()),this.state=1214,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===1))for(this.state=1205,this.match(_SysMLv2Parser.ABOUT),this.state=1206,this.annotation(),this.state=1211,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1207,this.match(_SysMLv2Parser.COMMA),this.state=1208,this.annotation(),this.state=1213,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1220,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===95&&(this.state=1218,this.match(_SysMLv2Parser.LOCALE),this.state=1219,this.match(_SysMLv2Parser.DOUBLE_STRING)),this.state=1222,this.match(_SysMLv2Parser.REGULAR_COMMENT)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}documentation(){let localContext=new DocumentationContext(this.context,this.state);this.enterRule(localContext,62,_SysMLv2Parser.RULE_documentation);let _la;try{this.enterOuterAlt(localContext,1),this.state=1224,this.match(_SysMLv2Parser.DOC),this.state=1226,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,35,this.context)===1&&(this.state=1225,this.identification()),this.state=1230,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===95&&(this.state=1228,this.match(_SysMLv2Parser.LOCALE),this.state=1229,this.match(_SysMLv2Parser.DOUBLE_STRING)),this.state=1232,this.match(_SysMLv2Parser.REGULAR_COMMENT)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}textualRepresentation(){let localContext=new TextualRepresentationContext(this.context,this.state);this.enterRule(localContext,64,_SysMLv2Parser.RULE_textualRepresentation);let _la;try{this.enterOuterAlt(localContext,1),this.state=1238,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===131&&(this.state=1234,this.match(_SysMLv2Parser.REP),this.state=1236,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,37,this.context)===1&&(this.state=1235,this.identification())),this.state=1240,this.match(_SysMLv2Parser.LANGUAGE),this.state=1241,this.match(_SysMLv2Parser.DOUBLE_STRING),this.state=1242,this.match(_SysMLv2Parser.REGULAR_COMMENT)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}rootNamespace(){let localContext=new RootNamespaceContext(this.context,this.state);this.enterRule(localContext,66,_SysMLv2Parser.RULE_rootNamespace);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=1247,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238905)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&412367019)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458587)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=1244,this.packageBodyElement(),this.state=1249,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1250,this.match(_SysMLv2Parser.EOF)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespace(){let localContext=new NamespaceContext(this.context,this.state);this.enterRule(localContext,68,_SysMLv2Parser.RULE_namespace);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=1255,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=1252,this.prefixMetadataMember(),this.state=1257,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1258,this.namespaceDeclaration(),this.state=1259,this.namespaceBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceDeclaration(){let localContext=new NamespaceDeclarationContext(this.context,this.state);this.enterRule(localContext,70,_SysMLv2Parser.RULE_namespaceDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=1261,this.match(_SysMLv2Parser.NAMESPACE),this.state=1263,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1262,this.identification())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceBody(){let localContext=new NamespaceBodyContext(this.context,this.state);this.enterRule(localContext,72,_SysMLv2Parser.RULE_namespaceBody);let _la;try{switch(this.state=1274,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=1265,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=1266,this.match(_SysMLv2Parser.LBRACE),this.state=1270,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&4040229252)!==0||(_la-33&-32)===0&&(1<<_la-33&1085130343)!==0||(_la-65&-32)===0&&(1<<_la-65&1909244965)!==0||(_la-97&-32)===0&&(1<<_la-97&4287038193)!==0||(_la-131&-32)===0&&(1<<_la-131&470774913)!==0||(_la-163&-32)===0&&(1<<_la-163&1648373761)!==0||(_la-204&-32)===0&&(1<<_la-204&581829)!==0;)this.state=1267,this.namespaceBodyElement(),this.state=1272,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1273,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceBodyElement(){let localContext=new NamespaceBodyElementContext(this.context,this.state);this.enterRule(localContext,74,_SysMLv2Parser.RULE_namespaceBodyElement);try{switch(this.state=1279,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,44,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1276,this.namespaceMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=1277,this.aliasMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=1278,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}memberPrefix(){let localContext=new MemberPrefixContext(this.context,this.state);this.enterRule(localContext,76,_SysMLv2Parser.RULE_memberPrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=1282,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la-122&-32)===0&&(1<<_la-122&7)!==0&&(this.state=1281,this.visibilityIndicator())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}visibilityIndicator(){let localContext=new VisibilityIndicatorContext(this.context,this.state);this.enterRule(localContext,78,_SysMLv2Parser.RULE_visibilityIndicator);let _la;try{this.enterOuterAlt(localContext,1),this.state=1284,_la=this.tokenStream.LA(1),(_la-122&-32)===0&&(1<<_la-122&7)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceMember(){let localContext=new NamespaceMemberContext(this.context,this.state);this.enterRule(localContext,80,_SysMLv2Parser.RULE_namespaceMember);try{switch(this.state=1288,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,46,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1286,this.nonFeatureMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=1287,this.namespaceFeatureMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonFeatureMember(){let localContext=new NonFeatureMemberContext(this.context,this.state);this.enterRule(localContext,82,_SysMLv2Parser.RULE_nonFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1290,this.memberPrefix(),this.state=1291,this.memberElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceFeatureMember(){let localContext=new NamespaceFeatureMemberContext(this.context,this.state);this.enterRule(localContext,84,_SysMLv2Parser.RULE_namespaceFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1293,this.memberPrefix(),this.state=1294,this.featureElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}aliasMember(){let localContext=new AliasMemberContext(this.context,this.state);this.enterRule(localContext,86,_SysMLv2Parser.RULE_aliasMember);let _la;try{this.enterOuterAlt(localContext,1),this.state=1296,this.memberPrefix(),this.state=1297,this.match(_SysMLv2Parser.ALIAS),this.state=1302,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===206&&(this.state=1298,this.match(_SysMLv2Parser.LT),this.state=1299,this.name(),this.state=1300,this.match(_SysMLv2Parser.GT)),this.state=1305,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||_la===218||_la===219)&&(this.state=1304,this.name()),this.state=1307,this.match(_SysMLv2Parser.FOR),this.state=1308,this.qualifiedName(),this.state=1309,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}qualifiedName(){let localContext=new QualifiedNameContext(this.context,this.state);this.enterRule(localContext,88,_SysMLv2Parser.RULE_qualifiedName);let _la;try{let alternative;this.enterOuterAlt(localContext,1);{for(this.state=1313,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===193&&(this.state=1311,this.match(_SysMLv2Parser.DOLLAR),this.state=1312,this.match(_SysMLv2Parser.COLON_COLON)),this.state=1320,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,50,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=1315,this.name(),this.state=1316,this.match(_SysMLv2Parser.COLON_COLON)),this.state=1322,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,50,this.context);this.state=1323,this.name()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}importRule(){let localContext=new ImportRuleContext(this.context,this.state);this.enterRule(localContext,90,_SysMLv2Parser.RULE_importRule);let _la;try{this.enterOuterAlt(localContext,1),this.state=1326,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la-122&-32)===0&&(1<<_la-122&7)!==0&&(this.state=1325,this.visibilityIndicator()),this.state=1328,this.match(_SysMLv2Parser.IMPORT),this.state=1330,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=1329,this.match(_SysMLv2Parser.ALL)),this.state=1332,this.importDeclaration(),this.state=1333,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}importDeclaration(){let localContext=new ImportDeclarationContext(this.context,this.state);this.enterRule(localContext,92,_SysMLv2Parser.RULE_importDeclaration);try{switch(this.state=1337,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,53,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1335,this.membershipImport();break;case 2:this.enterOuterAlt(localContext,2),this.state=1336,this.namespaceImport();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}membershipImport(){let localContext=new MembershipImportContext(this.context,this.state);this.enterRule(localContext,94,_SysMLv2Parser.RULE_membershipImport);let _la;try{this.enterOuterAlt(localContext,1),this.state=1339,this.qualifiedName(),this.state=1342,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===183&&(this.state=1340,this.match(_SysMLv2Parser.COLON_COLON),this.state=1341,this.match(_SysMLv2Parser.STAR_STAR))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceImport(){let localContext=new NamespaceImportContext(this.context,this.state);this.enterRule(localContext,96,_SysMLv2Parser.RULE_namespaceImport);let _la;try{switch(this.state=1352,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,56,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1344,this.qualifiedName(),this.state=1345,this.match(_SysMLv2Parser.COLON_COLON),this.state=1346,this.match(_SysMLv2Parser.STAR),this.state=1349,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===183&&(this.state=1347,this.match(_SysMLv2Parser.COLON_COLON),this.state=1348,this.match(_SysMLv2Parser.STAR_STAR));break;case 2:this.enterOuterAlt(localContext,2),this.state=1351,this.filterPackage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}filterPackage(){let localContext=new FilterPackageContext(this.context,this.state);this.enterRule(localContext,98,_SysMLv2Parser.RULE_filterPackage);let _la;try{switch(this.state=1366,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,59,this.context)){case 1:this.enterOuterAlt(localContext,1);{this.state=1354,this.filterPackageImportDeclaration(),this.state=1356,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=1355,this.filterPackageMember(),this.state=1358,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===211)}break;case 2:this.enterOuterAlt(localContext,2);{this.state=1360,this.filterPackageImport(),this.state=1362,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=1361,this.filterPackageMember(),this.state=1364,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===211)}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}filterPackageMember(){let localContext=new FilterPackageMemberContext(this.context,this.state);this.enterRule(localContext,100,_SysMLv2Parser.RULE_filterPackageMember);try{this.enterOuterAlt(localContext,1),this.state=1368,this.match(_SysMLv2Parser.LBRACK),this.state=1369,this.ownedExpression(0),this.state=1370,this.match(_SysMLv2Parser.RBRACK)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}memberElement(){let localContext=new MemberElementContext(this.context,this.state);this.enterRule(localContext,102,_SysMLv2Parser.RULE_memberElement);try{switch(this.state=1374,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,60,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1372,this.annotatingElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=1373,this.nonFeatureElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonFeatureElement(){let localContext=new NonFeatureElementContext(this.context,this.state);this.enterRule(localContext,104,_SysMLv2Parser.RULE_nonFeatureElement);try{switch(this.state=1402,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,61,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1376,this.dependency();break;case 2:this.enterOuterAlt(localContext,2),this.state=1377,this.namespace();break;case 3:this.enterOuterAlt(localContext,3),this.state=1378,this.type_();break;case 4:this.enterOuterAlt(localContext,4),this.state=1379,this.classifier();break;case 5:this.enterOuterAlt(localContext,5),this.state=1380,this.dataType();break;case 6:this.enterOuterAlt(localContext,6),this.state=1381,this.class_();break;case 7:this.enterOuterAlt(localContext,7),this.state=1382,this.structure();break;case 8:this.enterOuterAlt(localContext,8),this.state=1383,this.metaclass();break;case 9:this.enterOuterAlt(localContext,9),this.state=1384,this.association();break;case 10:this.enterOuterAlt(localContext,10),this.state=1385,this.associationStructure();break;case 11:this.enterOuterAlt(localContext,11),this.state=1386,this.interaction();break;case 12:this.enterOuterAlt(localContext,12),this.state=1387,this.behavior();break;case 13:this.enterOuterAlt(localContext,13),this.state=1388,this.function_();break;case 14:this.enterOuterAlt(localContext,14),this.state=1389,this.predicate();break;case 15:this.enterOuterAlt(localContext,15),this.state=1390,this.multiplicity();break;case 16:this.enterOuterAlt(localContext,16),this.state=1391,this.package_();break;case 17:this.enterOuterAlt(localContext,17),this.state=1392,this.libraryPackage();break;case 18:this.enterOuterAlt(localContext,18),this.state=1393,this.specialization();break;case 19:this.enterOuterAlt(localContext,19),this.state=1394,this.conjugation();break;case 20:this.enterOuterAlt(localContext,20),this.state=1395,this.subclassification();break;case 21:this.enterOuterAlt(localContext,21),this.state=1396,this.disjoining();break;case 22:this.enterOuterAlt(localContext,22),this.state=1397,this.featureInverting();break;case 23:this.enterOuterAlt(localContext,23),this.state=1398,this.featureTyping();break;case 24:this.enterOuterAlt(localContext,24),this.state=1399,this.subsetting();break;case 25:this.enterOuterAlt(localContext,25),this.state=1400,this.redefinition();break;case 26:this.enterOuterAlt(localContext,26),this.state=1401,this.typeFeaturing();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureElement(){let localContext=new FeatureElementContext(this.context,this.state);this.enterRule(localContext,106,_SysMLv2Parser.RULE_featureElement);try{switch(this.state=1414,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,62,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1404,this.feature();break;case 2:this.enterOuterAlt(localContext,2),this.state=1405,this.step();break;case 3:this.enterOuterAlt(localContext,3),this.state=1406,this.expression();break;case 4:this.enterOuterAlt(localContext,4),this.state=1407,this.booleanExpression();break;case 5:this.enterOuterAlt(localContext,5),this.state=1408,this.invariant();break;case 6:this.enterOuterAlt(localContext,6),this.state=1409,this.connector();break;case 7:this.enterOuterAlt(localContext,7),this.state=1410,this.bindingConnector();break;case 8:this.enterOuterAlt(localContext,8),this.state=1411,this.succession();break;case 9:this.enterOuterAlt(localContext,9),this.state=1412,this.flow();break;case 10:this.enterOuterAlt(localContext,10),this.state=1413,this.successionFlow();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}type_(){let localContext=new TypeContext(this.context,this.state);this.enterRule(localContext,108,_SysMLv2Parser.RULE_type);try{this.enterOuterAlt(localContext,1),this.state=1416,this.typePrefix(),this.state=1417,this.match(_SysMLv2Parser.TYPE),this.state=1418,this.typeDeclaration(),this.state=1419,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typePrefix(){let localContext=new TypePrefixContext(this.context,this.state);this.enterRule(localContext,110,_SysMLv2Parser.RULE_typePrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1422,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===2&&(this.state=1421,this.match(_SysMLv2Parser.ABSTRACT)),this.state=1427,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=1424,this.prefixMetadataMember(),this.state=1429,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeDeclaration(){let localContext=new TypeDeclarationContext(this.context,this.state);this.enterRule(localContext,112,_SysMLv2Parser.RULE_typeDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{this.state=1431,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=1430,this.match(_SysMLv2Parser.ALL)),this.state=1434,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1433,this.identification()),this.state=1437,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=1436,this.ownedMultiplicity()),this.state=1441,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do{switch(this.state=1441,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SPECIALIZES:case _SysMLv2Parser.COLON_GT:this.state=1439,this.specializationPart();break;case _SysMLv2Parser.CONJUGATES:case _SysMLv2Parser.TILDE:this.state=1440,this.conjugationPart();break;default:throw new NoViableAltException(this)}this.state=1443,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}while(_la===34||_la===139||_la===185||_la===217);for(this.state=1448,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===50||_la===52||_la===86||_la===160;)this.state=1445,this.typeRelationshipPart(),this.state=1450,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}specializationPart(){let localContext=new SpecializationPartContext(this.context,this.state);this.enterRule(localContext,114,_SysMLv2Parser.RULE_specializationPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1451,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1452,this.ownedSpecialization(),this.state=1457,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1453,this.match(_SysMLv2Parser.COMMA),this.state=1454,this.ownedSpecialization(),this.state=1459,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugationPart(){let localContext=new ConjugationPartContext(this.context,this.state);this.enterRule(localContext,116,_SysMLv2Parser.RULE_conjugationPart);let _la;try{this.enterOuterAlt(localContext,1),this.state=1460,_la=this.tokenStream.LA(1),_la===34||_la===217?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1461,this.ownedConjugation()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeRelationshipPart(){let localContext=new TypeRelationshipPartContext(this.context,this.state);this.enterRule(localContext,118,_SysMLv2Parser.RULE_typeRelationshipPart);try{switch(this.state=1467,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.DISJOINT:this.enterOuterAlt(localContext,1),this.state=1463,this.disjoiningPart();break;case _SysMLv2Parser.UNIONS:this.enterOuterAlt(localContext,2),this.state=1464,this.unioningPart();break;case _SysMLv2Parser.INTERSECTS:this.enterOuterAlt(localContext,3),this.state=1465,this.intersectingPart();break;case _SysMLv2Parser.DIFFERENCES:this.enterOuterAlt(localContext,4),this.state=1466,this.differencingPart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}disjoiningPart(){let localContext=new DisjoiningPartContext(this.context,this.state);this.enterRule(localContext,120,_SysMLv2Parser.RULE_disjoiningPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1469,this.match(_SysMLv2Parser.DISJOINT),this.state=1470,this.match(_SysMLv2Parser.FROM),this.state=1471,this.ownedDisjoining(),this.state=1476,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1472,this.match(_SysMLv2Parser.COMMA),this.state=1473,this.ownedDisjoining(),this.state=1478,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}unioningPart(){let localContext=new UnioningPartContext(this.context,this.state);this.enterRule(localContext,122,_SysMLv2Parser.RULE_unioningPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1479,this.match(_SysMLv2Parser.UNIONS),this.state=1480,this.unioning(),this.state=1485,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1481,this.match(_SysMLv2Parser.COMMA),this.state=1482,this.unioning(),this.state=1487,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}intersectingPart(){let localContext=new IntersectingPartContext(this.context,this.state);this.enterRule(localContext,124,_SysMLv2Parser.RULE_intersectingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1488,this.match(_SysMLv2Parser.INTERSECTS),this.state=1489,this.intersecting(),this.state=1494,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1490,this.match(_SysMLv2Parser.COMMA),this.state=1491,this.intersecting(),this.state=1496,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}differencingPart(){let localContext=new DifferencingPartContext(this.context,this.state);this.enterRule(localContext,126,_SysMLv2Parser.RULE_differencingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1497,this.match(_SysMLv2Parser.DIFFERENCES),this.state=1498,this.differencing(),this.state=1503,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1499,this.match(_SysMLv2Parser.COMMA),this.state=1500,this.differencing(),this.state=1505,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeBody(){let localContext=new TypeBodyContext(this.context,this.state);this.enterRule(localContext,128,_SysMLv2Parser.RULE_typeBody);let _la;try{switch(this.state=1515,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=1506,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=1507,this.match(_SysMLv2Parser.LBRACE),this.state=1511,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&4040229252)!==0||(_la-33&-32)===0&&(1<<_la-33&1085130343)!==0||(_la-65&-32)===0&&(1<<_la-65&1909244965)!==0||(_la-97&-32)===0&&(1<<_la-97&4287038193)!==0||(_la-131&-32)===0&&(1<<_la-131&470774913)!==0||(_la-163&-32)===0&&(1<<_la-163&1648373761)!==0||(_la-204&-32)===0&&(1<<_la-204&581829)!==0;)this.state=1508,this.typeBodyElement(),this.state=1513,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1514,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeBodyElement(){let localContext=new TypeBodyElementContext(this.context,this.state);this.enterRule(localContext,130,_SysMLv2Parser.RULE_typeBodyElement);try{switch(this.state=1521,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,79,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1517,this.nonFeatureMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=1518,this.featureMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=1519,this.aliasMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=1520,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}specialization(){let localContext=new SpecializationContext(this.context,this.state);this.enterRule(localContext,132,_SysMLv2Parser.RULE_specialization);let _la;try{this.enterOuterAlt(localContext,1),this.state=1527,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=1523,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=1525,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1524,this.identification())),this.state=1529,this.match(_SysMLv2Parser.SUBTYPE),this.state=1530,this.specificType(),this.state=1531,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1532,this.generalType(),this.state=1533,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedSpecialization(){let localContext=new OwnedSpecializationContext(this.context,this.state);this.enterRule(localContext,134,_SysMLv2Parser.RULE_ownedSpecialization);try{this.enterOuterAlt(localContext,1),this.state=1535,this.generalType()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}specificType(){let localContext=new SpecificTypeContext(this.context,this.state);this.enterRule(localContext,136,_SysMLv2Parser.RULE_specificType);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1537,this.qualifiedName(),this.state=1542,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1538,this.match(_SysMLv2Parser.DOT),this.state=1539,this.qualifiedName(),this.state=1544,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}generalType(){let localContext=new GeneralTypeContext(this.context,this.state);this.enterRule(localContext,138,_SysMLv2Parser.RULE_generalType);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1545,this.qualifiedName(),this.state=1550,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1546,this.match(_SysMLv2Parser.DOT),this.state=1547,this.qualifiedName(),this.state=1552,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugation(){let localContext=new ConjugationContext(this.context,this.state);this.enterRule(localContext,140,_SysMLv2Parser.RULE_conjugation);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=1557,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===35&&(this.state=1553,this.match(_SysMLv2Parser.CONJUGATION),this.state=1555,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1554,this.identification())),this.state=1559,this.match(_SysMLv2Parser.CONJUGATE),this.state=1560,this.qualifiedName(),this.state=1565,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1561,this.match(_SysMLv2Parser.DOT),this.state=1562,this.qualifiedName(),this.state=1567,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=1568,_la=this.tokenStream.LA(1),_la===34||_la===217?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1569,this.qualifiedName(),this.state=1574,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1570,this.match(_SysMLv2Parser.DOT),this.state=1571,this.qualifiedName(),this.state=1576,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1577,this.relationshipBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedConjugation(){let localContext=new OwnedConjugationContext(this.context,this.state);this.enterRule(localContext,142,_SysMLv2Parser.RULE_ownedConjugation);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1579,this.qualifiedName(),this.state=1584,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1580,this.match(_SysMLv2Parser.DOT),this.state=1581,this.qualifiedName(),this.state=1586,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}disjoining(){let localContext=new DisjoiningContext(this.context,this.state);this.enterRule(localContext,144,_SysMLv2Parser.RULE_disjoining);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=1591,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===51&&(this.state=1587,this.match(_SysMLv2Parser.DISJOINING),this.state=1589,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1588,this.identification())),this.state=1593,this.match(_SysMLv2Parser.DISJOINT),this.state=1594,this.qualifiedName(),this.state=1599,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1595,this.match(_SysMLv2Parser.DOT),this.state=1596,this.qualifiedName(),this.state=1601,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=1602,this.match(_SysMLv2Parser.FROM),this.state=1603,this.qualifiedName(),this.state=1608,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1604,this.match(_SysMLv2Parser.DOT),this.state=1605,this.qualifiedName(),this.state=1610,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1611,this.relationshipBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedDisjoining(){let localContext=new OwnedDisjoiningContext(this.context,this.state);this.enterRule(localContext,146,_SysMLv2Parser.RULE_ownedDisjoining);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1613,this.qualifiedName(),this.state=1618,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1614,this.match(_SysMLv2Parser.DOT),this.state=1615,this.qualifiedName(),this.state=1620,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}unioning(){let localContext=new UnioningContext(this.context,this.state);this.enterRule(localContext,148,_SysMLv2Parser.RULE_unioning);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1621,this.qualifiedName(),this.state=1626,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1622,this.match(_SysMLv2Parser.DOT),this.state=1623,this.qualifiedName(),this.state=1628,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}intersecting(){let localContext=new IntersectingContext(this.context,this.state);this.enterRule(localContext,150,_SysMLv2Parser.RULE_intersecting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1629,this.qualifiedName(),this.state=1634,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1630,this.match(_SysMLv2Parser.DOT),this.state=1631,this.qualifiedName(),this.state=1636,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}differencing(){let localContext=new DifferencingContext(this.context,this.state);this.enterRule(localContext,152,_SysMLv2Parser.RULE_differencing);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1637,this.qualifiedName(),this.state=1642,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1638,this.match(_SysMLv2Parser.DOT),this.state=1639,this.qualifiedName(),this.state=1644,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureMember(){let localContext=new FeatureMemberContext(this.context,this.state);this.enterRule(localContext,154,_SysMLv2Parser.RULE_featureMember);try{switch(this.state=1647,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,97,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1645,this.typeFeatureMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=1646,this.ownedFeatureMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeFeatureMember(){let localContext=new TypeFeatureMemberContext(this.context,this.state);this.enterRule(localContext,156,_SysMLv2Parser.RULE_typeFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1649,this.memberPrefix(),this.state=1650,this.match(_SysMLv2Parser.MEMBER),this.state=1651,this.featureElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureMember(){let localContext=new OwnedFeatureMemberContext(this.context,this.state);this.enterRule(localContext,158,_SysMLv2Parser.RULE_ownedFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1653,this.memberPrefix(),this.state=1654,this.featureElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}classifier(){let localContext=new ClassifierContext(this.context,this.state);this.enterRule(localContext,160,_SysMLv2Parser.RULE_classifier);try{this.enterOuterAlt(localContext,1),this.state=1656,this.typePrefix(),this.state=1657,this.match(_SysMLv2Parser.CLASSIFIER),this.state=1658,this.classifierDeclaration(),this.state=1659,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}classifierDeclaration(){let localContext=new ClassifierDeclarationContext(this.context,this.state);this.enterRule(localContext,162,_SysMLv2Parser.RULE_classifierDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=1662,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=1661,this.match(_SysMLv2Parser.ALL)),this.state=1665,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1664,this.identification()),this.state=1668,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=1667,this.ownedMultiplicity()),this.state=1672,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SPECIALIZES:case _SysMLv2Parser.COLON_GT:this.state=1670,this.superclassingPart();break;case _SysMLv2Parser.CONJUGATES:case _SysMLv2Parser.TILDE:this.state=1671,this.conjugationPart();break;case _SysMLv2Parser.DIFFERENCES:case _SysMLv2Parser.DISJOINT:case _SysMLv2Parser.INTERSECTS:case _SysMLv2Parser.UNIONS:case _SysMLv2Parser.SEMI:case _SysMLv2Parser.LBRACE:break;default:break}for(this.state=1677,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===50||_la===52||_la===86||_la===160;)this.state=1674,this.typeRelationshipPart(),this.state=1679,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}superclassingPart(){let localContext=new SuperclassingPartContext(this.context,this.state);this.enterRule(localContext,164,_SysMLv2Parser.RULE_superclassingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1680,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1681,this.ownedSubclassification(),this.state=1686,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1682,this.match(_SysMLv2Parser.COMMA),this.state=1683,this.ownedSubclassification(),this.state=1688,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subclassification(){let localContext=new SubclassificationContext(this.context,this.state);this.enterRule(localContext,166,_SysMLv2Parser.RULE_subclassification);let _la;try{this.enterOuterAlt(localContext,1),this.state=1693,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=1689,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=1691,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1690,this.identification())),this.state=1695,this.match(_SysMLv2Parser.SUBCLASSIFIER),this.state=1696,this.qualifiedName(),this.state=1697,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1698,this.qualifiedName(),this.state=1699,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedSubclassification(){let localContext=new OwnedSubclassificationContext(this.context,this.state);this.enterRule(localContext,168,_SysMLv2Parser.RULE_ownedSubclassification);try{this.enterOuterAlt(localContext,1),this.state=1701,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}feature(){let localContext=new FeatureContext(this.context,this.state);this.enterRule(localContext,170,_SysMLv2Parser.RULE_feature);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=1720,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,110,this.context)){case 1:{switch(this.state=1703,this.featurePrefix(),this.state=1706,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.FEATURE:this.state=1704,this.match(_SysMLv2Parser.FEATURE);break;case _SysMLv2Parser.HASH:this.state=1705,this.prefixMetadataMember();break;default:throw new NoViableAltException(this)}this.state=1709,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-34&-32)===0&&(1<<_la-34&2147492097)!==0||(_la-75&-32)===0&&(1<<_la-75&2488533505)!==0||(_la-113&-32)===0&&(1<<_la-113&1073778945)!==0||(_la-148&-32)===0&&(1<<_la-148&402687489)!==0||(_la-185&-32)===0&&(1<<_la-185&69730313)!==0||(_la-217&-32)===0&&(1<<_la-217&7)!==0)&&(this.state=1708,this.featureDeclaration())}break;case 2:{switch(this.state=1713,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,108,this.context)){case 1:this.state=1711,this.endFeaturePrefix();break;case 2:this.state=1712,this.basicFeaturePrefix();break}this.state=1716,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===127&&(this.state=1715,this.match(_SysMLv2Parser.REF)),this.state=1718,this.featureDeclaration()}break}this.state=1723,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=1722,this.valuePart()),this.state=1725,this.typeBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}endFeaturePrefix(){let localContext=new EndFeaturePrefixContext(this.context,this.state);this.enterRule(localContext,172,_SysMLv2Parser.RULE_endFeaturePrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=1728,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===39&&(this.state=1727,this.match(_SysMLv2Parser.CONST)),this.state=1730,this.match(_SysMLv2Parser.END)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}basicFeaturePrefix(){let localContext=new BasicFeaturePrefixContext(this.context,this.state);this.enterRule(localContext,174,_SysMLv2Parser.RULE_basicFeaturePrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=1733,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===80||_la===83||_la===114)&&(this.state=1732,this.featureDirection()),this.state=1736,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===49&&(this.state=1735,this.match(_SysMLv2Parser.DERIVED)),this.state=1739,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===2&&(this.state=1738,this.match(_SysMLv2Parser.ABSTRACT)),this.state=1742,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===31||_la===120)&&(this.state=1741,_la=this.tokenStream.LA(1),_la===31||_la===120?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1745,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,117,this.context)===1&&(this.state=1744,_la=this.tokenStream.LA(1),_la===39||_la===163?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featurePrefix(){let localContext=new FeaturePrefixContext(this.context,this.state);this.enterRule(localContext,176,_SysMLv2Parser.RULE_featurePrefix);try{let alternative;this.enterOuterAlt(localContext,1);{switch(this.state=1751,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,118,this.context)){case 1:this.state=1747,this.endFeaturePrefix(),this.state=1748,this.ownedCrossFeatureMember();break;case 2:this.state=1750,this.basicFeaturePrefix();break}for(this.state=1756,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,119,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=1753,this.prefixMetadataMember()),this.state=1758,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,119,this.context)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossFeatureMember(){let localContext=new OwnedCrossFeatureMemberContext(this.context,this.state);this.enterRule(localContext,178,_SysMLv2Parser.RULE_ownedCrossFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1759,this.ownedCrossFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossFeature(){let localContext=new OwnedCrossFeatureContext(this.context,this.state);this.enterRule(localContext,180,_SysMLv2Parser.RULE_ownedCrossFeature);try{switch(this.state=1768,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,121,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1761,this.basicFeaturePrefix(),this.state=1762,this.featureDeclaration();break;case 2:this.enterOuterAlt(localContext,2),this.state=1764,this.basicUsagePrefix(),this.state=1766,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,120,this.context)===1&&(this.state=1765,this.usageDeclaration());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureDirection(){let localContext=new FeatureDirectionContext(this.context,this.state);this.enterRule(localContext,182,_SysMLv2Parser.RULE_featureDirection);let _la;try{this.enterOuterAlt(localContext,1),this.state=1770,_la=this.tokenStream.LA(1),_la===80||_la===83||_la===114?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureDeclaration(){let localContext=new FeatureDeclarationContext(this.context,this.state);this.enterRule(localContext,184,_SysMLv2Parser.RULE_featureDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=1773,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=1772,this.match(_SysMLv2Parser.ALL)),this.state=1782,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,124,this.context)){case 1:switch(this.state=1775,this.featureIdentification(),this.state=1778,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,123,this.context)){case 1:this.state=1776,this.featureSpecializationPart();break;case 2:this.state=1777,this.conjugationPart();break}break;case 2:this.state=1780,this.featureSpecializationPart();break;case 3:this.state=1781,this.conjugationPart();break}for(this.state=1787,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la-27&-32)===0&&(1<<_la-27&41943041)!==0||(_la-66&-32)===0&&(1<<_la-66&5242881)!==0||_la===160;)this.state=1784,this.featureRelationshipPart(),this.state=1789,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureIdentification(){let localContext=new FeatureIdentificationContext(this.context,this.state);this.enterRule(localContext,186,_SysMLv2Parser.RULE_featureIdentification);try{switch(this.state=1797,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.LT:this.enterOuterAlt(localContext,1),this.state=1790,this.match(_SysMLv2Parser.LT),this.state=1791,this.name(),this.state=1792,this.match(_SysMLv2Parser.GT),this.state=1794,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,126,this.context)===1&&(this.state=1793,this.name());break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,2),this.state=1796,this.name();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureRelationshipPart(){let localContext=new FeatureRelationshipPartContext(this.context,this.state);this.enterRule(localContext,188,_SysMLv2Parser.RULE_featureRelationshipPart);try{switch(this.state=1803,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.DIFFERENCES:case _SysMLv2Parser.DISJOINT:case _SysMLv2Parser.INTERSECTS:case _SysMLv2Parser.UNIONS:this.enterOuterAlt(localContext,1),this.state=1799,this.typeRelationshipPart();break;case _SysMLv2Parser.CHAINS:this.enterOuterAlt(localContext,2),this.state=1800,this.chainingPart();break;case _SysMLv2Parser.INVERSE:this.enterOuterAlt(localContext,3),this.state=1801,this.invertingPart();break;case _SysMLv2Parser.FEATURED:this.enterOuterAlt(localContext,4),this.state=1802,this.typeFeaturingPart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}chainingPart(){let localContext=new ChainingPartContext(this.context,this.state);this.enterRule(localContext,190,_SysMLv2Parser.RULE_chainingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1805,this.match(_SysMLv2Parser.CHAINS),this.state=1806,this.qualifiedName(),this.state=1811,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1807,this.match(_SysMLv2Parser.DOT),this.state=1808,this.qualifiedName(),this.state=1813,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}invertingPart(){let localContext=new InvertingPartContext(this.context,this.state);this.enterRule(localContext,192,_SysMLv2Parser.RULE_invertingPart);try{this.enterOuterAlt(localContext,1),this.state=1814,this.match(_SysMLv2Parser.INVERSE),this.state=1815,this.match(_SysMLv2Parser.OF),this.state=1816,this.ownedFeatureInverting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeFeaturingPart(){let localContext=new TypeFeaturingPartContext(this.context,this.state);this.enterRule(localContext,194,_SysMLv2Parser.RULE_typeFeaturingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1818,this.match(_SysMLv2Parser.FEATURED),this.state=1819,this.match(_SysMLv2Parser.BY),this.state=1820,this.ownedTypeFeaturing(),this.state=1825,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1821,this.match(_SysMLv2Parser.COMMA),this.state=1822,this.ownedTypeFeaturing(),this.state=1827,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureSpecializationPart(){let localContext=new FeatureSpecializationPartContext(this.context,this.state);this.enterRule(localContext,196,_SysMLv2Parser.RULE_featureSpecializationPart);try{let alternative;switch(this.state=1849,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.DEFINED:case _SysMLv2Parser.REDEFINES:case _SysMLv2Parser.REFERENCES:case _SysMLv2Parser.SUBSETS:case _SysMLv2Parser.TYPED:case _SysMLv2Parser.COLON_COLON_GT:case _SysMLv2Parser.COLON_GT_GT:case _SysMLv2Parser.COLON_GT:case _SysMLv2Parser.FAT_ARROW:case _SysMLv2Parser.COLON:this.enterOuterAlt(localContext,1);{this.state=1829,this.errorHandler.sync(this),alternative=1;do{if(alternative===1)this.state=1828,this.featureSpecialization();else throw new NoViableAltException(this);this.state=1831,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,131,this.context)}while(alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER);for(this.state=1834,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,132,this.context)===1&&(this.state=1833,this.multiplicityPart()),this.state=1839,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,133,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=1836,this.featureSpecialization()),this.state=1841,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,133,this.context)}break;case _SysMLv2Parser.NONUNIQUE:case _SysMLv2Parser.ORDERED:case _SysMLv2Parser.LBRACK:for(this.enterOuterAlt(localContext,2),this.state=1842,this.multiplicityPart(),this.state=1846,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,134,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=1843,this.featureSpecialization()),this.state=1848,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,134,this.context);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicityPart(){let localContext=new MultiplicityPartContext(this.context,this.state);this.enterRule(localContext,198,_SysMLv2Parser.RULE_multiplicityPart);try{switch(this.state=1872,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.LBRACK:switch(this.enterOuterAlt(localContext,1),this.state=1851,this.ownedMultiplicity(),this.state=1860,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,138,this.context)){case 1:this.state=1852,this.match(_SysMLv2Parser.ORDERED),this.state=1854,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,136,this.context)===1&&(this.state=1853,this.match(_SysMLv2Parser.NONUNIQUE));break;case 2:this.state=1856,this.match(_SysMLv2Parser.NONUNIQUE),this.state=1858,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,137,this.context)===1&&(this.state=1857,this.match(_SysMLv2Parser.ORDERED));break}break;case _SysMLv2Parser.NONUNIQUE:case _SysMLv2Parser.ORDERED:switch(this.enterOuterAlt(localContext,2),this.state=1870,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.ORDERED:this.state=1862,this.match(_SysMLv2Parser.ORDERED),this.state=1864,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,139,this.context)===1&&(this.state=1863,this.match(_SysMLv2Parser.NONUNIQUE));break;case _SysMLv2Parser.NONUNIQUE:this.state=1866,this.match(_SysMLv2Parser.NONUNIQUE),this.state=1868,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,140,this.context)===1&&(this.state=1867,this.match(_SysMLv2Parser.ORDERED));break;default:throw new NoViableAltException(this)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureSpecialization(){let localContext=new FeatureSpecializationContext(this.context,this.state);this.enterRule(localContext,200,_SysMLv2Parser.RULE_featureSpecialization);try{switch(this.state=1879,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.DEFINED:case _SysMLv2Parser.TYPED:case _SysMLv2Parser.COLON:this.enterOuterAlt(localContext,1),this.state=1874,this.typings();break;case _SysMLv2Parser.SUBSETS:case _SysMLv2Parser.COLON_GT:this.enterOuterAlt(localContext,2),this.state=1875,this.subsettings();break;case _SysMLv2Parser.REFERENCES:case _SysMLv2Parser.COLON_COLON_GT:this.enterOuterAlt(localContext,3),this.state=1876,this.references();break;case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FAT_ARROW:this.enterOuterAlt(localContext,4),this.state=1877,this.crosses();break;case _SysMLv2Parser.REDEFINES:case _SysMLv2Parser.COLON_GT_GT:this.enterOuterAlt(localContext,5),this.state=1878,this.redefinitions();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typings(){let localContext=new TypingsContext(this.context,this.state);this.enterRule(localContext,202,_SysMLv2Parser.RULE_typings);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1881,this.typedBy(),this.state=1886,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1882,this.match(_SysMLv2Parser.COMMA),this.state=1883,this.featureTyping(),this.state=1888,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typedBy(){let localContext=new TypedByContext(this.context,this.state);this.enterRule(localContext,204,_SysMLv2Parser.RULE_typedBy);try{this.enterOuterAlt(localContext,1);{switch(this.state=1894,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COLON:this.state=1889,this.match(_SysMLv2Parser.COLON);break;case _SysMLv2Parser.TYPED:this.state=1890,this.match(_SysMLv2Parser.TYPED),this.state=1891,this.match(_SysMLv2Parser.BY);break;case _SysMLv2Parser.DEFINED:this.state=1892,this.match(_SysMLv2Parser.DEFINED),this.state=1893,this.match(_SysMLv2Parser.BY);break;default:throw new NoViableAltException(this)}this.state=1896,this.featureTyping()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subsettings(){let localContext=new SubsettingsContext(this.context,this.state);this.enterRule(localContext,206,_SysMLv2Parser.RULE_subsettings);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1898,this.subsets(),this.state=1903,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1899,this.match(_SysMLv2Parser.COMMA),this.state=1900,this.ownedSubsetting(),this.state=1905,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subsets(){let localContext=new SubsetsContext(this.context,this.state);this.enterRule(localContext,208,_SysMLv2Parser.RULE_subsets);let _la;try{this.enterOuterAlt(localContext,1),this.state=1906,_la=this.tokenStream.LA(1),_la===148||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1907,this.ownedSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}references(){let localContext=new ReferencesContext(this.context,this.state);this.enterRule(localContext,210,_SysMLv2Parser.RULE_references);let _la;try{this.enterOuterAlt(localContext,1),this.state=1909,_la=this.tokenStream.LA(1),_la===128||_la===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1910,this.ownedReferenceSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}crosses(){let localContext=new CrossesContext(this.context,this.state);this.enterRule(localContext,212,_SysMLv2Parser.RULE_crosses);let _la;try{this.enterOuterAlt(localContext,1),this.state=1912,_la=this.tokenStream.LA(1),_la===42||_la===188?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1913,this.ownedCrossSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}redefinitions(){let localContext=new RedefinitionsContext(this.context,this.state);this.enterRule(localContext,214,_SysMLv2Parser.RULE_redefinitions);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1915,this.redefines(),this.state=1920,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1916,this.match(_SysMLv2Parser.COMMA),this.state=1917,this.ownedRedefinition(),this.state=1922,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}redefines(){let localContext=new RedefinesContext(this.context,this.state);this.enterRule(localContext,216,_SysMLv2Parser.RULE_redefines);let _la;try{this.enterOuterAlt(localContext,1),this.state=1923,_la=this.tokenStream.LA(1),_la===125||_la===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1924,this.ownedRedefinition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureTyping(){let localContext=new FeatureTypingContext(this.context,this.state);this.enterRule(localContext,218,_SysMLv2Parser.RULE_featureTyping);let _la;try{switch(this.state=1944,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SPECIALIZATION:case _SysMLv2Parser.TYPING:this.enterOuterAlt(localContext,1);{switch(this.state=1930,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=1926,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=1928,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1927,this.identification())),this.state=1932,this.match(_SysMLv2Parser.TYPING),this.state=1933,this.qualifiedName(),this.state=1937,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COLON:this.state=1934,this.match(_SysMLv2Parser.COLON);break;case _SysMLv2Parser.TYPED:this.state=1935,this.match(_SysMLv2Parser.TYPED),this.state=1936,this.match(_SysMLv2Parser.BY);break;default:throw new NoViableAltException(this)}this.state=1939,this.generalType(),this.state=1940,this.relationshipBody()}break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,2),this.state=1942,this.ownedFeatureTyping();break;case _SysMLv2Parser.TILDE:this.enterOuterAlt(localContext,3),this.state=1943,this.conjugatedPortTyping();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureTyping(){let localContext=new OwnedFeatureTypingContext(this.context,this.state);this.enterRule(localContext,220,_SysMLv2Parser.RULE_ownedFeatureTyping);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1946,this.qualifiedName(),this.state=1951,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1947,this.match(_SysMLv2Parser.DOT),this.state=1948,this.qualifiedName(),this.state=1953,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subsetting(){let localContext=new SubsettingContext(this.context,this.state);this.enterRule(localContext,222,_SysMLv2Parser.RULE_subsetting);let _la;try{this.enterOuterAlt(localContext,1),this.state=1958,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=1954,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=1956,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1955,this.identification())),this.state=1960,this.match(_SysMLv2Parser.SUBSET),this.state=1961,this.specificType(),this.state=1962,_la=this.tokenStream.LA(1),_la===148||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1963,this.generalType(),this.state=1964,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedSubsetting(){let localContext=new OwnedSubsettingContext(this.context,this.state);this.enterRule(localContext,224,_SysMLv2Parser.RULE_ownedSubsetting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1966,this.qualifiedName(),this.state=1971,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1967,this.match(_SysMLv2Parser.DOT),this.state=1968,this.qualifiedName(),this.state=1973,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedReferenceSubsetting(){let localContext=new OwnedReferenceSubsettingContext(this.context,this.state);this.enterRule(localContext,226,_SysMLv2Parser.RULE_ownedReferenceSubsetting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1974,this.qualifiedName(),this.state=1979,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1975,this.match(_SysMLv2Parser.DOT),this.state=1976,this.qualifiedName(),this.state=1981,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossSubsetting(){let localContext=new OwnedCrossSubsettingContext(this.context,this.state);this.enterRule(localContext,228,_SysMLv2Parser.RULE_ownedCrossSubsetting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1982,this.qualifiedName(),this.state=1987,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1983,this.match(_SysMLv2Parser.DOT),this.state=1984,this.qualifiedName(),this.state=1989,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}redefinition(){let localContext=new RedefinitionContext(this.context,this.state);this.enterRule(localContext,230,_SysMLv2Parser.RULE_redefinition);let _la;try{this.enterOuterAlt(localContext,1),this.state=1994,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=1990,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=1992,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1991,this.identification())),this.state=1996,this.match(_SysMLv2Parser.REDEFINITION),this.state=1997,this.specificType(),this.state=1998,_la=this.tokenStream.LA(1),_la===125||_la===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1999,this.generalType(),this.state=2e3,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedRedefinition(){let localContext=new OwnedRedefinitionContext(this.context,this.state);this.enterRule(localContext,232,_SysMLv2Parser.RULE_ownedRedefinition);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2002,this.qualifiedName(),this.state=2007,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2003,this.match(_SysMLv2Parser.DOT),this.state=2004,this.qualifiedName(),this.state=2009,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureInverting(){let localContext=new FeatureInvertingContext(this.context,this.state);this.enterRule(localContext,234,_SysMLv2Parser.RULE_featureInverting);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2014,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===89&&(this.state=2010,this.match(_SysMLv2Parser.INVERTING),this.state=2012,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2011,this.identification())),this.state=2016,this.match(_SysMLv2Parser.INVERSE),this.state=2017,this.qualifiedName(),this.state=2022,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2018,this.match(_SysMLv2Parser.DOT),this.state=2019,this.qualifiedName(),this.state=2024,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=2025,this.match(_SysMLv2Parser.OF),this.state=2026,this.qualifiedName(),this.state=2031,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2027,this.match(_SysMLv2Parser.DOT),this.state=2028,this.qualifiedName(),this.state=2033,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2034,this.relationshipBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureInverting(){let localContext=new OwnedFeatureInvertingContext(this.context,this.state);this.enterRule(localContext,236,_SysMLv2Parser.RULE_ownedFeatureInverting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2036,this.qualifiedName(),this.state=2041,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2037,this.match(_SysMLv2Parser.DOT),this.state=2038,this.qualifiedName(),this.state=2043,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeFeaturing(){let localContext=new TypeFeaturingContext(this.context,this.state);this.enterRule(localContext,238,_SysMLv2Parser.RULE_typeFeaturing);let _la;try{this.enterOuterAlt(localContext,1),this.state=2044,this.match(_SysMLv2Parser.FEATURING),this.state=2049,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,167,this.context)===1&&(this.state=2046,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2045,this.identification()),this.state=2048,this.match(_SysMLv2Parser.OF)),this.state=2051,this.qualifiedName(),this.state=2052,this.match(_SysMLv2Parser.BY),this.state=2053,this.qualifiedName(),this.state=2054,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedTypeFeaturing(){let localContext=new OwnedTypeFeaturingContext(this.context,this.state);this.enterRule(localContext,240,_SysMLv2Parser.RULE_ownedTypeFeaturing);try{this.enterOuterAlt(localContext,1),this.state=2056,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}dataType(){let localContext=new DataTypeContext(this.context,this.state);this.enterRule(localContext,242,_SysMLv2Parser.RULE_dataType);try{this.enterOuterAlt(localContext,1),this.state=2058,this.typePrefix(),this.state=2059,this.match(_SysMLv2Parser.DATATYPE),this.state=2060,this.classifierDeclaration(),this.state=2061,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}class_(){let localContext=new ClassContext(this.context,this.state);this.enterRule(localContext,244,_SysMLv2Parser.RULE_class);try{this.enterOuterAlt(localContext,1),this.state=2063,this.typePrefix(),this.state=2064,this.match(_SysMLv2Parser.CLASS),this.state=2065,this.classifierDeclaration(),this.state=2066,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}structure(){let localContext=new StructureContext(this.context,this.state);this.enterRule(localContext,246,_SysMLv2Parser.RULE_structure);try{this.enterOuterAlt(localContext,1),this.state=2068,this.typePrefix(),this.state=2069,this.match(_SysMLv2Parser.STRUCT),this.state=2070,this.classifierDeclaration(),this.state=2071,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}association(){let localContext=new AssociationContext(this.context,this.state);this.enterRule(localContext,248,_SysMLv2Parser.RULE_association);try{this.enterOuterAlt(localContext,1),this.state=2073,this.typePrefix(),this.state=2074,this.match(_SysMLv2Parser.ASSOC),this.state=2075,this.classifierDeclaration(),this.state=2076,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}associationStructure(){let localContext=new AssociationStructureContext(this.context,this.state);this.enterRule(localContext,250,_SysMLv2Parser.RULE_associationStructure);try{this.enterOuterAlt(localContext,1),this.state=2078,this.typePrefix(),this.state=2079,this.match(_SysMLv2Parser.ASSOC),this.state=2080,this.match(_SysMLv2Parser.STRUCT),this.state=2081,this.classifierDeclaration(),this.state=2082,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connector(){let localContext=new ConnectorContext(this.context,this.state);this.enterRule(localContext,252,_SysMLv2Parser.RULE_connector);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=2084,this.featurePrefix(),this.state=2085,this.match(_SysMLv2Parser.CONNECTOR),this.state=2093,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,170,this.context)){case 1:this.state=2087,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-34&-32)===0&&(1<<_la-34&2147492097)!==0||(_la-75&-32)===0&&(1<<_la-75&2488533505)!==0||(_la-113&-32)===0&&(1<<_la-113&1073778945)!==0||(_la-148&-32)===0&&(1<<_la-148&402687489)!==0||(_la-185&-32)===0&&(1<<_la-185&69730313)!==0||(_la-217&-32)===0&&(1<<_la-217&7)!==0)&&(this.state=2086,this.featureDeclaration()),this.state=2090,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2089,this.valuePart());break;case 2:this.state=2092,this.connectorDeclaration();break}this.state=2095,this.typeBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectorDeclaration(){let localContext=new ConnectorDeclarationContext(this.context,this.state);this.enterRule(localContext,254,_SysMLv2Parser.RULE_connectorDeclaration);try{switch(this.state=2099,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,171,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2097,this.binaryConnectorDeclaration();break;case 2:this.enterOuterAlt(localContext,2),this.state=2098,this.naryConnectorDeclaration();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}binaryConnectorDeclaration(){let localContext=new BinaryConnectorDeclarationContext(this.context,this.state);this.enterRule(localContext,256,_SysMLv2Parser.RULE_binaryConnectorDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=2109,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,174,this.context)){case 1:this.state=2102,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-34&-32)===0&&(1<<_la-34&2147492097)!==0||(_la-75&-32)===0&&(1<<_la-75&2488533505)!==0||(_la-113&-32)===0&&(1<<_la-113&1073778945)!==0||(_la-148&-32)===0&&(1<<_la-148&402687489)!==0||(_la-185&-32)===0&&(1<<_la-185&69730313)!==0||(_la-217&-32)===0&&(1<<_la-217&7)!==0)&&(this.state=2101,this.featureDeclaration()),this.state=2104,this.match(_SysMLv2Parser.FROM);break;case 2:this.state=2105,this.match(_SysMLv2Parser.ALL),this.state=2107,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===74&&(this.state=2106,this.match(_SysMLv2Parser.FROM));break}this.state=2111,this.connectorEndMember(),this.state=2112,this.match(_SysMLv2Parser.TO),this.state=2113,this.connectorEndMember()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}naryConnectorDeclaration(){let localContext=new NaryConnectorDeclarationContext(this.context,this.state);this.enterRule(localContext,258,_SysMLv2Parser.RULE_naryConnectorDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2116,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-34&-32)===0&&(1<<_la-34&2147492097)!==0||(_la-75&-32)===0&&(1<<_la-75&2488533505)!==0||(_la-113&-32)===0&&(1<<_la-113&1073778945)!==0||(_la-148&-32)===0&&(1<<_la-148&402687489)!==0||(_la-185&-32)===0&&(1<<_la-185&69730313)!==0||(_la-217&-32)===0&&(1<<_la-217&7)!==0)&&(this.state=2115,this.featureDeclaration()),this.state=2118,this.match(_SysMLv2Parser.LPAREN),this.state=2119,this.connectorEndMember(),this.state=2120,this.match(_SysMLv2Parser.COMMA),this.state=2121,this.connectorEndMember(),this.state=2126,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2122,this.match(_SysMLv2Parser.COMMA),this.state=2123,this.connectorEndMember(),this.state=2128,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2129,this.match(_SysMLv2Parser.RPAREN)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectorEndMember(){let localContext=new ConnectorEndMemberContext(this.context,this.state);this.enterRule(localContext,260,_SysMLv2Parser.RULE_connectorEndMember);try{this.enterOuterAlt(localContext,1),this.state=2131,this.connectorEnd()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectorEnd(){let localContext=new ConnectorEndContext(this.context,this.state);this.enterRule(localContext,262,_SysMLv2Parser.RULE_connectorEnd);let _la;try{this.enterOuterAlt(localContext,1),this.state=2134,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=2133,this.ownedCrossMultiplicityMember()),this.state=2139,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,178,this.context)===1&&(this.state=2136,this.name(),this.state=2137,_la=this.tokenStream.LA(1),_la===128||_la===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2141,this.ownedReferenceSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossMultiplicityMember(){let localContext=new OwnedCrossMultiplicityMemberContext(this.context,this.state);this.enterRule(localContext,264,_SysMLv2Parser.RULE_ownedCrossMultiplicityMember);try{this.enterOuterAlt(localContext,1),this.state=2143,this.ownedCrossMultiplicity()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossMultiplicity(){let localContext=new OwnedCrossMultiplicityContext(this.context,this.state);this.enterRule(localContext,266,_SysMLv2Parser.RULE_ownedCrossMultiplicity);try{this.enterOuterAlt(localContext,1),this.state=2145,this.ownedMultiplicity()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bindingConnector(){let localContext=new BindingConnectorContext(this.context,this.state);this.enterRule(localContext,268,_SysMLv2Parser.RULE_bindingConnector);try{this.enterOuterAlt(localContext,1),this.state=2147,this.featurePrefix(),this.state=2148,this.match(_SysMLv2Parser.BINDING),this.state=2149,this.bindingConnectorDeclaration(),this.state=2150,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bindingConnectorDeclaration(){let localContext=new BindingConnectorDeclarationContext(this.context,this.state);this.enterRule(localContext,270,_SysMLv2Parser.RULE_bindingConnectorDeclaration);let _la;try{switch(this.state=2172,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,183,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2152,this.featureDeclaration(),this.state=2158,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=2153,this.match(_SysMLv2Parser.OF),this.state=2154,this.connectorEndMember(),this.state=2155,this.match(_SysMLv2Parser.EQ),this.state=2156,this.connectorEndMember());break;case 2:this.enterOuterAlt(localContext,2),this.state=2161,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=2160,this.match(_SysMLv2Parser.ALL)),this.state=2170,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16793681)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-193&-32)===0&&(1<<_la-193&100925441)!==0)&&(this.state=2164,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=2163,this.match(_SysMLv2Parser.OF)),this.state=2166,this.connectorEndMember(),this.state=2167,this.match(_SysMLv2Parser.EQ),this.state=2168,this.connectorEndMember());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}succession(){let localContext=new SuccessionContext(this.context,this.state);this.enterRule(localContext,272,_SysMLv2Parser.RULE_succession);try{this.enterOuterAlt(localContext,1),this.state=2174,this.featurePrefix(),this.state=2175,this.match(_SysMLv2Parser.SUCCESSION),this.state=2176,this.successionDeclaration(),this.state=2177,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}successionDeclaration(){let localContext=new SuccessionDeclarationContext(this.context,this.state);this.enterRule(localContext,274,_SysMLv2Parser.RULE_successionDeclaration);let _la;try{switch(this.state=2199,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,188,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2179,this.featureDeclaration(),this.state=2185,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===69&&(this.state=2180,this.match(_SysMLv2Parser.FIRST),this.state=2181,this.connectorEndMember(),this.state=2182,this.match(_SysMLv2Parser.THEN),this.state=2183,this.connectorEndMember());break;case 2:this.enterOuterAlt(localContext,2),this.state=2188,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=2187,this.match(_SysMLv2Parser.ALL)),this.state=2197,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702609)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-193&-32)===0&&(1<<_la-193&100925441)!==0)&&(this.state=2191,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===69&&(this.state=2190,this.match(_SysMLv2Parser.FIRST)),this.state=2193,this.connectorEndMember(),this.state=2194,this.match(_SysMLv2Parser.THEN),this.state=2195,this.connectorEndMember());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}behavior(){let localContext=new BehaviorContext(this.context,this.state);this.enterRule(localContext,276,_SysMLv2Parser.RULE_behavior);try{this.enterOuterAlt(localContext,1),this.state=2201,this.typePrefix(),this.state=2202,this.match(_SysMLv2Parser.BEHAVIOR),this.state=2203,this.classifierDeclaration(),this.state=2204,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}step(){let localContext=new StepContext(this.context,this.state);this.enterRule(localContext,278,_SysMLv2Parser.RULE_step);let _la;try{this.enterOuterAlt(localContext,1),this.state=2206,this.featurePrefix(),this.state=2207,this.match(_SysMLv2Parser.STEP),this.state=2208,this.featureDeclaration(),this.state=2210,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2209,this.valuePart()),this.state=2212,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}function_(){let localContext=new FunctionContext(this.context,this.state);this.enterRule(localContext,280,_SysMLv2Parser.RULE_function);try{this.enterOuterAlt(localContext,1),this.state=2214,this.typePrefix(),this.state=2215,this.match(_SysMLv2Parser.FUNCTION),this.state=2216,this.classifierDeclaration(),this.state=2217,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionBody(){let localContext=new FunctionBodyContext(this.context,this.state);this.enterRule(localContext,282,_SysMLv2Parser.RULE_functionBody);try{switch(this.state=2224,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=2219,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2),this.state=2220,this.match(_SysMLv2Parser.LBRACE),this.state=2221,this.functionBodyPart(),this.state=2222,this.match(_SysMLv2Parser.RBRACE);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionBodyPart(){let localContext=new FunctionBodyPartContext(this.context,this.state);this.enterRule(localContext,284,_SysMLv2Parser.RULE_functionBodyPart);let _la;try{let alternative;this.enterOuterAlt(localContext,1);{for(this.state=2231,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,192,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;){if(alternative===1)switch(this.state=2229,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,191,this.context)){case 1:this.state=2226,this.definitionBodyItem();break;case 2:this.state=2227,this.typeBodyElement();break;case 3:this.state=2228,this.returnFeatureMember();break}this.state=2233,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,192,this.context)}this.state=2235,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&245763)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=2234,this.resultExpressionMember())}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}returnFeatureMember(){let localContext=new ReturnFeatureMemberContext(this.context,this.state);this.enterRule(localContext,286,_SysMLv2Parser.RULE_returnFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=2237,this.memberPrefix(),this.state=2238,this.match(_SysMLv2Parser.RETURN),this.state=2239,this.featureElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}resultExpressionMember(){let localContext=new ResultExpressionMemberContext(this.context,this.state);this.enterRule(localContext,288,_SysMLv2Parser.RULE_resultExpressionMember);try{this.enterOuterAlt(localContext,1),this.state=2241,this.memberPrefix(),this.state=2242,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}expression(){let localContext=new ExpressionContext(this.context,this.state);this.enterRule(localContext,290,_SysMLv2Parser.RULE_expression);let _la;try{this.enterOuterAlt(localContext,1),this.state=2244,this.featurePrefix(),this.state=2245,this.match(_SysMLv2Parser.EXPR),this.state=2246,this.featureDeclaration(),this.state=2248,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2247,this.valuePart()),this.state=2250,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}predicate(){let localContext=new PredicateContext(this.context,this.state);this.enterRule(localContext,292,_SysMLv2Parser.RULE_predicate);try{this.enterOuterAlt(localContext,1),this.state=2252,this.typePrefix(),this.state=2253,this.match(_SysMLv2Parser.PREDICATE),this.state=2254,this.classifierDeclaration(),this.state=2255,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}booleanExpression(){let localContext=new BooleanExpressionContext(this.context,this.state);this.enterRule(localContext,294,_SysMLv2Parser.RULE_booleanExpression);let _la;try{this.enterOuterAlt(localContext,1),this.state=2257,this.featurePrefix(),this.state=2258,this.match(_SysMLv2Parser.BOOL),this.state=2259,this.featureDeclaration(),this.state=2261,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2260,this.valuePart()),this.state=2263,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}invariant(){let localContext=new InvariantContext(this.context,this.state);this.enterRule(localContext,296,_SysMLv2Parser.RULE_invariant);let _la;try{this.enterOuterAlt(localContext,1),this.state=2265,this.featurePrefix(),this.state=2266,this.match(_SysMLv2Parser.INV),this.state=2268,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===64||_la===156)&&(this.state=2267,_la=this.tokenStream.LA(1),_la===64||_la===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2270,this.featureDeclaration(),this.state=2272,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2271,this.valuePart()),this.state=2274,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureChainMember(){let localContext=new FeatureChainMemberContext(this.context,this.state);this.enterRule(localContext,298,_SysMLv2Parser.RULE_featureChainMember);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2276,this.qualifiedName(),this.state=2281,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2277,this.match(_SysMLv2Parser.DOT),this.state=2278,this.qualifiedName(),this.state=2283,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interaction(){let localContext=new InteractionContext(this.context,this.state);this.enterRule(localContext,300,_SysMLv2Parser.RULE_interaction);try{this.enterOuterAlt(localContext,1),this.state=2284,this.typePrefix(),this.state=2285,this.match(_SysMLv2Parser.INTERACTION),this.state=2286,this.classifierDeclaration(),this.state=2287,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flow(){let localContext=new FlowContext(this.context,this.state);this.enterRule(localContext,302,_SysMLv2Parser.RULE_flow);try{this.enterOuterAlt(localContext,1),this.state=2289,this.featurePrefix(),this.state=2290,this.match(_SysMLv2Parser.FLOW),this.state=2291,this.flowDeclaration(),this.state=2292,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}successionFlow(){let localContext=new SuccessionFlowContext(this.context,this.state);this.enterRule(localContext,304,_SysMLv2Parser.RULE_successionFlow);try{this.enterOuterAlt(localContext,1),this.state=2294,this.featurePrefix(),this.state=2295,this.match(_SysMLv2Parser.SUCCESSION),this.state=2296,this.match(_SysMLv2Parser.FLOW),this.state=2297,this.flowDeclaration(),this.state=2298,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowDeclaration(){let localContext=new FlowDeclarationContext(this.context,this.state);this.enterRule(localContext,306,_SysMLv2Parser.RULE_flowDeclaration);let _la;try{switch(this.state=2339,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,207,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2300,this.featureDeclaration(),this.state=2302,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2301,this.valuePart()),this.state=2306,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=2304,this.match(_SysMLv2Parser.OF),this.state=2305,this.payloadFeatureMember()),this.state=2313,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===74&&(this.state=2308,this.match(_SysMLv2Parser.FROM),this.state=2309,this.flowEndMember(),this.state=2310,this.match(_SysMLv2Parser.TO),this.state=2311,this.flowEndMember());break;case 2:this.enterOuterAlt(localContext,2),this.state=2316,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=2315,this.match(_SysMLv2Parser.ALL)),this.state=2318,this.flowEndMember(),this.state=2319,this.match(_SysMLv2Parser.TO),this.state=2320,this.flowEndMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=2323,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=2322,this.usageDeclaration()),this.state=2326,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2325,this.valuePart()),this.state=2330,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=2328,this.match(_SysMLv2Parser.OF),this.state=2329,this.flowPayloadFeatureMember()),this.state=2337,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===74&&(this.state=2332,this.match(_SysMLv2Parser.FROM),this.state=2333,this.flowEndMember(),this.state=2334,this.match(_SysMLv2Parser.TO),this.state=2335,this.flowEndMember());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadFeatureMember(){let localContext=new PayloadFeatureMemberContext(this.context,this.state);this.enterRule(localContext,308,_SysMLv2Parser.RULE_payloadFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=2341,this.payloadFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadFeature(){let localContext=new PayloadFeatureContext(this.context,this.state);this.enterRule(localContext,310,_SysMLv2Parser.RULE_payloadFeature);let _la;try{switch(this.state=2362,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,213,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2344,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2343,this.identification()),this.state=2346,this.valuePart();break;case 2:this.enterOuterAlt(localContext,2),this.state=2348,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,209,this.context)===1&&(this.state=2347,this.identification()),this.state=2350,this.payloadFeatureSpecializationPart(),this.state=2352,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2351,this.valuePart());break;case 3:this.enterOuterAlt(localContext,3),this.state=2354,this.ownedFeatureTyping(),this.state=2356,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=2355,this.ownedMultiplicity());break;case 4:this.enterOuterAlt(localContext,4),this.state=2358,this.ownedMultiplicity(),this.state=2360,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-193&-32)===0&&(1<<_la-193&100663297)!==0)&&(this.state=2359,this.ownedFeatureTyping());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadFeatureSpecializationPart(){let localContext=new PayloadFeatureSpecializationPartContext(this.context,this.state);this.enterRule(localContext,312,_SysMLv2Parser.RULE_payloadFeatureSpecializationPart);let _la;try{let alternative;switch(this.state=2384,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.DEFINED:case _SysMLv2Parser.REDEFINES:case _SysMLv2Parser.REFERENCES:case _SysMLv2Parser.SUBSETS:case _SysMLv2Parser.TYPED:case _SysMLv2Parser.COLON_COLON_GT:case _SysMLv2Parser.COLON_GT_GT:case _SysMLv2Parser.COLON_GT:case _SysMLv2Parser.FAT_ARROW:case _SysMLv2Parser.COLON:this.enterOuterAlt(localContext,1);{this.state=2365,this.errorHandler.sync(this),alternative=1;do{if(alternative===1)this.state=2364,this.featureSpecialization();else throw new NoViableAltException(this);this.state=2367,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,214,this.context)}while(alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER);for(this.state=2370,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===106||_la===113||_la===211)&&(this.state=2369,this.multiplicityPart()),this.state=2375,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===42||_la===47||(_la-125&-32)===0&&(1<<_la-125&8388617)!==0||(_la-158&-32)===0&&(1<<_la-158&1208352769)!==0||_la===204;)this.state=2372,this.featureSpecialization(),this.state=2377,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}break;case _SysMLv2Parser.NONUNIQUE:case _SysMLv2Parser.ORDERED:case _SysMLv2Parser.LBRACK:this.enterOuterAlt(localContext,2);{this.state=2378,this.multiplicityPart(),this.state=2380,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=2379,this.featureSpecialization(),this.state=2382,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===42||_la===47||(_la-125&-32)===0&&(1<<_la-125&8388617)!==0||(_la-158&-32)===0&&(1<<_la-158&1208352769)!==0||_la===204)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowEndMember(){let localContext=new FlowEndMemberContext(this.context,this.state);this.enterRule(localContext,314,_SysMLv2Parser.RULE_flowEndMember);try{this.enterOuterAlt(localContext,1),this.state=2386,this.flowEnd()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowEnd(){let localContext=new FlowEndContext(this.context,this.state);this.enterRule(localContext,316,_SysMLv2Parser.RULE_flowEnd);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2388,this.qualifiedName(),this.state=2393,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2389,this.match(_SysMLv2Parser.DOT),this.state=2390,this.qualifiedName(),this.state=2395,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}valuePart(){let localContext=new ValuePartContext(this.context,this.state);this.enterRule(localContext,318,_SysMLv2Parser.RULE_valuePart);try{this.enterOuterAlt(localContext,1),this.state=2396,this.featureValue()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureValue(){let localContext=new FeatureValueContext(this.context,this.state);this.enterRule(localContext,320,_SysMLv2Parser.RULE_featureValue);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=2404,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.EQ:this.state=2398,this.match(_SysMLv2Parser.EQ);break;case _SysMLv2Parser.COLON_EQ:this.state=2399,this.match(_SysMLv2Parser.COLON_EQ);break;case _SysMLv2Parser.DEFAULT:this.state=2400,this.match(_SysMLv2Parser.DEFAULT),this.state=2402,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===184||_la===207)&&(this.state=2401,_la=this.tokenStream.LA(1),_la===184||_la===207?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;default:throw new NoViableAltException(this)}this.state=2406,this.ownedExpression(0)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicity(){let localContext=new MultiplicityContext(this.context,this.state);this.enterRule(localContext,322,_SysMLv2Parser.RULE_multiplicity);try{switch(this.state=2410,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,222,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2408,this.multiplicitySubset();break;case 2:this.enterOuterAlt(localContext,2),this.state=2409,this.multiplicityRange();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicitySubset(){let localContext=new MultiplicitySubsetContext(this.context,this.state);this.enterRule(localContext,324,_SysMLv2Parser.RULE_multiplicitySubset);let _la;try{this.enterOuterAlt(localContext,1),this.state=2412,this.match(_SysMLv2Parser.MULTIPLICITY),this.state=2414,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2413,this.identification()),this.state=2416,this.subsets(),this.state=2417,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicityRange(){let localContext=new MultiplicityRangeContext(this.context,this.state);this.enterRule(localContext,326,_SysMLv2Parser.RULE_multiplicityRange);let _la;try{this.enterOuterAlt(localContext,1),this.state=2419,this.match(_SysMLv2Parser.MULTIPLICITY),this.state=2421,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2420,this.identification()),this.state=2423,this.multiplicityBounds(),this.state=2424,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedMultiplicity(){let localContext=new OwnedMultiplicityContext(this.context,this.state);this.enterRule(localContext,328,_SysMLv2Parser.RULE_ownedMultiplicity);try{this.enterOuterAlt(localContext,1),this.state=2426,this.ownedMultiplicityRange()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedMultiplicityRange(){let localContext=new OwnedMultiplicityRangeContext(this.context,this.state);this.enterRule(localContext,330,_SysMLv2Parser.RULE_ownedMultiplicityRange);try{this.enterOuterAlt(localContext,1),this.state=2428,this.multiplicityBounds()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicityBounds(){let localContext=new MultiplicityBoundsContext(this.context,this.state);this.enterRule(localContext,332,_SysMLv2Parser.RULE_multiplicityBounds);try{this.enterOuterAlt(localContext,1),this.state=2430,this.match(_SysMLv2Parser.LBRACK),this.state=2434,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,225,this.context)===1&&(this.state=2431,this.multiplicityExpressionMember(),this.state=2432,this.match(_SysMLv2Parser.DOT_DOT)),this.state=2436,this.multiplicityExpressionMember(),this.state=2437,this.match(_SysMLv2Parser.RBRACK)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicityExpressionMember(){let localContext=new MultiplicityExpressionMemberContext(this.context,this.state);this.enterRule(localContext,334,_SysMLv2Parser.RULE_multiplicityExpressionMember);try{switch(this.enterOuterAlt(localContext,1),this.state=2441,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.FALSE:case _SysMLv2Parser.TRUE:case _SysMLv2Parser.STAR:case _SysMLv2Parser.DOUBLE_STRING:case _SysMLv2Parser.INTEGER:case _SysMLv2Parser.REAL:this.state=2439,this.literalExpression();break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=2440,this.featureReferenceExpression();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metaclass(){let localContext=new MetaclassContext(this.context,this.state);this.enterRule(localContext,336,_SysMLv2Parser.RULE_metaclass);try{this.enterOuterAlt(localContext,1),this.state=2443,this.typePrefix(),this.state=2444,this.match(_SysMLv2Parser.METACLASS),this.state=2445,this.classifierDeclaration(),this.state=2446,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}prefixMetadataAnnotation(){let localContext=new PrefixMetadataAnnotationContext(this.context,this.state);this.enterRule(localContext,338,_SysMLv2Parser.RULE_prefixMetadataAnnotation);try{switch(this.state=2452,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,227,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2448,this.match(_SysMLv2Parser.HASH),this.state=2449,this.prefixMetadataFeature();break;case 2:this.enterOuterAlt(localContext,2),this.state=2450,this.match(_SysMLv2Parser.HASH),this.state=2451,this.prefixMetadataUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}prefixMetadataMember(){let localContext=new PrefixMetadataMemberContext(this.context,this.state);this.enterRule(localContext,340,_SysMLv2Parser.RULE_prefixMetadataMember);try{switch(this.state=2458,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,228,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2454,this.match(_SysMLv2Parser.HASH),this.state=2455,this.prefixMetadataFeature();break;case 2:this.enterOuterAlt(localContext,2),this.state=2456,this.match(_SysMLv2Parser.HASH),this.state=2457,this.prefixMetadataUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}prefixMetadataFeature(){let localContext=new PrefixMetadataFeatureContext(this.context,this.state);this.enterRule(localContext,342,_SysMLv2Parser.RULE_prefixMetadataFeature);try{this.enterOuterAlt(localContext,1),this.state=2460,this.ownedFeatureTyping()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataFeature(){let localContext=new MetadataFeatureContext(this.context,this.state);this.enterRule(localContext,344,_SysMLv2Parser.RULE_metadataFeature);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2465,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2462,this.prefixMetadataMember(),this.state=2467,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);if(this.state=2468,_la=this.tokenStream.LA(1),_la===102||_la===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2469,this.metadataFeatureDeclaration(),this.state=2479,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===1)for(this.state=2470,this.match(_SysMLv2Parser.ABOUT),this.state=2471,this.annotation(),this.state=2476,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2472,this.match(_SysMLv2Parser.COMMA),this.state=2473,this.annotation(),this.state=2478,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2481,this.metadataBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataFeatureDeclaration(){let localContext=new MetadataFeatureDeclarationContext(this.context,this.state);this.enterRule(localContext,346,_SysMLv2Parser.RULE_metadataFeatureDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=2491,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,234,this.context)){case 1:switch(this.state=2484,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2483,this.identification()),this.state=2489,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COLON:this.state=2486,this.match(_SysMLv2Parser.COLON);break;case _SysMLv2Parser.TYPED:this.state=2487,this.match(_SysMLv2Parser.TYPED),this.state=2488,this.match(_SysMLv2Parser.BY);break;default:throw new NoViableAltException(this)}break}this.state=2493,this.ownedFeatureTyping()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBody(){let localContext=new MetadataBodyContext(this.context,this.state);this.enterRule(localContext,348,_SysMLv2Parser.RULE_metadataBody);let _la;try{switch(this.state=2515,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,238,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2495,this.match(_SysMLv2Parser.SEMI);break;case 2:this.enterOuterAlt(localContext,2);{for(this.state=2496,this.match(_SysMLv2Parser.LBRACE),this.state=2500,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1880162436)!==0||(_la-33&-32)===0&&(1<<_la-33&2917893)!==0||(_la-65&-32)===0&&(1<<_la-65&1904755717)!==0||(_la-97&-32)===0&&(1<<_la-97&1057226993)!==0||(_la-131&-32)===0&&(1<<_la-131&335901825)!==0||(_la-163&-32)===0&&(1<<_la-163&1610620929)!==0||(_la-210&-32)===0&&(1<<_la-210&9089)!==0;)this.state=2497,this.metadataBodyElement(),this.state=2502,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2503,this.match(_SysMLv2Parser.RBRACE)}break;case 3:this.enterOuterAlt(localContext,3);{for(this.state=2504,this.match(_SysMLv2Parser.LBRACE),this.state=2511,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1175981204)!==0||(_la-32&-32)===0&&(1<<_la-32&71370273)!==0||(_la-65&-32)===0&&(1<<_la-65&1947878433)!==0||(_la-97&-32)===0&&(1<<_la-97&1599348849)!==0||(_la-130&-32)===0&&(1<<_la-130&134232075)!==0||(_la-162&-32)===0&&(1<<_la-162&3221242267)!==0||(_la-210&-32)===0&&(1<<_la-210&8961)!==0;){switch(this.state=2509,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,236,this.context)){case 1:this.state=2505,this.definitionMember();break;case 2:this.state=2506,this.metadataBodyUsageMember();break;case 3:this.state=2507,this.aliasMember();break;case 4:this.state=2508,this.importRule();break}this.state=2513,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}this.state=2514,this.match(_SysMLv2Parser.RBRACE)}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyElement(){let localContext=new MetadataBodyElementContext(this.context,this.state);this.enterRule(localContext,350,_SysMLv2Parser.RULE_metadataBodyElement);try{switch(this.state=2521,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,239,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2517,this.nonFeatureMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=2518,this.metadataBodyFeatureMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=2519,this.aliasMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=2520,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyFeatureMember(){let localContext=new MetadataBodyFeatureMemberContext(this.context,this.state);this.enterRule(localContext,352,_SysMLv2Parser.RULE_metadataBodyFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=2523,this.metadataBodyFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyFeature(){let localContext=new MetadataBodyFeatureContext(this.context,this.state);this.enterRule(localContext,354,_SysMLv2Parser.RULE_metadataBodyFeature);let _la;try{this.enterOuterAlt(localContext,1),this.state=2526,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,240,this.context)===1&&(this.state=2525,this.match(_SysMLv2Parser.FEATURE)),this.state=2529,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===125||_la===176)&&(this.state=2528,_la=this.tokenStream.LA(1),_la===125||_la===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2531,this.ownedRedefinition(),this.state=2533,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=2532,this.featureSpecializationPart()),this.state=2536,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2535,this.valuePart()),this.state=2538,this.metadataBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}package_(){let localContext=new PackageContext(this.context,this.state);this.enterRule(localContext,356,_SysMLv2Parser.RULE_package);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2543,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2540,this.prefixMetadataMember(),this.state=2545,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2546,this.packageDeclaration(),this.state=2547,this.packageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}libraryPackage(){let localContext=new LibraryPackageContext(this.context,this.state);this.enterRule(localContext,358,_SysMLv2Parser.RULE_libraryPackage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2550,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===141&&(this.state=2549,this.match(_SysMLv2Parser.STANDARD)),this.state=2552,this.match(_SysMLv2Parser.LIBRARY),this.state=2556,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2553,this.prefixMetadataMember(),this.state=2558,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2559,this.packageDeclaration(),this.state=2560,this.packageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}packageDeclaration(){let localContext=new PackageDeclarationContext(this.context,this.state);this.enterRule(localContext,360,_SysMLv2Parser.RULE_packageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=2562,this.match(_SysMLv2Parser.PACKAGE),this.state=2564,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2563,this.identification())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}packageBody(){let localContext=new PackageBodyContext(this.context,this.state);this.enterRule(localContext,362,_SysMLv2Parser.RULE_packageBody);let _la;try{switch(this.state=2575,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=2566,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=2567,this.match(_SysMLv2Parser.LBRACE),this.state=2571,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238905)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&412367019)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458587)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=2568,this.packageBodyElement(),this.state=2573,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2574,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}elementFilterMember(){let localContext=new ElementFilterMemberContext(this.context,this.state);this.enterRule(localContext,364,_SysMLv2Parser.RULE_elementFilterMember);try{this.enterOuterAlt(localContext,1),this.state=2577,this.memberPrefix(),this.state=2578,this.match(_SysMLv2Parser.FILTER),this.state=2579,this.ownedExpression(0),this.state=2580,this.match(_SysMLv2Parser.SEMI)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}dependencyDeclaration(){let localContext=new DependencyDeclarationContext(this.context,this.state);this.enterRule(localContext,366,_SysMLv2Parser.RULE_dependencyDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2586,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,251,this.context)===1&&(this.state=2583,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2582,this.identification()),this.state=2585,this.match(_SysMLv2Parser.FROM)),this.state=2588,this.qualifiedName(),this.state=2593,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2589,this.match(_SysMLv2Parser.COMMA),this.state=2590,this.qualifiedName(),this.state=2595,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=2596,this.match(_SysMLv2Parser.TO),this.state=2597,this.qualifiedName(),this.state=2602,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2598,this.match(_SysMLv2Parser.COMMA),this.state=2599,this.qualifiedName(),this.state=2604,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}annotatingMember(){let localContext=new AnnotatingMemberContext(this.context,this.state);this.enterRule(localContext,368,_SysMLv2Parser.RULE_annotatingMember);try{this.enterOuterAlt(localContext,1),this.state=2605,this.annotatingElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}packageBodyElement(){let localContext=new PackageBodyElementContext(this.context,this.state);this.enterRule(localContext,370,_SysMLv2Parser.RULE_packageBodyElement);try{switch(this.state=2611,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,254,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2607,this.packageMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=2608,this.elementFilterMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=2609,this.aliasMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=2610,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}packageMember(){let localContext=new PackageMemberContext(this.context,this.state);this.enterRule(localContext,372,_SysMLv2Parser.RULE_packageMember);try{switch(this.enterOuterAlt(localContext,1),this.state=2613,this.memberPrefix(),this.state=2616,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,255,this.context)){case 1:this.state=2614,this.definitionElement();break;case 2:this.state=2615,this.usageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionElement(){let localContext=new DefinitionElementContext(this.context,this.state);this.enterRule(localContext,374,_SysMLv2Parser.RULE_definitionElement);try{switch(this.state=2648,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,256,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2618,this.package_();break;case 2:this.enterOuterAlt(localContext,2),this.state=2619,this.libraryPackage();break;case 3:this.enterOuterAlt(localContext,3),this.state=2620,this.annotatingElement();break;case 4:this.enterOuterAlt(localContext,4),this.state=2621,this.dependency();break;case 5:this.enterOuterAlt(localContext,5),this.state=2622,this.attributeDefinition();break;case 6:this.enterOuterAlt(localContext,6),this.state=2623,this.enumerationDefinition();break;case 7:this.enterOuterAlt(localContext,7),this.state=2624,this.occurrenceDefinition();break;case 8:this.enterOuterAlt(localContext,8),this.state=2625,this.individualDefinition();break;case 9:this.enterOuterAlt(localContext,9),this.state=2626,this.itemDefinition();break;case 10:this.enterOuterAlt(localContext,10),this.state=2627,this.partDefinition();break;case 11:this.enterOuterAlt(localContext,11),this.state=2628,this.connectionDefinition();break;case 12:this.enterOuterAlt(localContext,12),this.state=2629,this.flowDefinition();break;case 13:this.enterOuterAlt(localContext,13),this.state=2630,this.interfaceDefinition();break;case 14:this.enterOuterAlt(localContext,14),this.state=2631,this.portDefinition();break;case 15:this.enterOuterAlt(localContext,15),this.state=2632,this.actionDefinition();break;case 16:this.enterOuterAlt(localContext,16),this.state=2633,this.calculationDefinition();break;case 17:this.enterOuterAlt(localContext,17),this.state=2634,this.stateDefinition();break;case 18:this.enterOuterAlt(localContext,18),this.state=2635,this.constraintDefinition();break;case 19:this.enterOuterAlt(localContext,19),this.state=2636,this.requirementDefinition();break;case 20:this.enterOuterAlt(localContext,20),this.state=2637,this.concernDefinition();break;case 21:this.enterOuterAlt(localContext,21),this.state=2638,this.caseDefinition();break;case 22:this.enterOuterAlt(localContext,22),this.state=2639,this.analysisCaseDefinition();break;case 23:this.enterOuterAlt(localContext,23),this.state=2640,this.verificationCaseDefinition();break;case 24:this.enterOuterAlt(localContext,24),this.state=2641,this.useCaseDefinition();break;case 25:this.enterOuterAlt(localContext,25),this.state=2642,this.viewDefinition();break;case 26:this.enterOuterAlt(localContext,26),this.state=2643,this.viewpointDefinition();break;case 27:this.enterOuterAlt(localContext,27),this.state=2644,this.renderingDefinition();break;case 28:this.enterOuterAlt(localContext,28),this.state=2645,this.metadataDefinition();break;case 29:this.enterOuterAlt(localContext,29),this.state=2646,this.allocationDefinition();break;case 30:this.enterOuterAlt(localContext,30),this.state=2647,this.extendedDefinition();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageElement(){let localContext=new UsageElementContext(this.context,this.state);this.enterRule(localContext,376,_SysMLv2Parser.RULE_usageElement);try{switch(this.state=2652,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,257,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2650,this.nonOccurrenceUsageElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=2651,this.occurrenceUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}basicDefinitionPrefix(){let localContext=new BasicDefinitionPrefixContext(this.context,this.state);this.enterRule(localContext,378,_SysMLv2Parser.RULE_basicDefinitionPrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=2654,_la=this.tokenStream.LA(1),_la===2||_la===165?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionExtensionKeyword(){let localContext=new DefinitionExtensionKeywordContext(this.context,this.state);this.enterRule(localContext,380,_SysMLv2Parser.RULE_definitionExtensionKeyword);try{this.enterOuterAlt(localContext,1),this.state=2656,this.prefixMetadataMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionPrefix(){let localContext=new DefinitionPrefixContext(this.context,this.state);this.enterRule(localContext,382,_SysMLv2Parser.RULE_definitionPrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2659,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=2658,this.basicDefinitionPrefix()),this.state=2664,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2661,this.definitionExtensionKeyword(),this.state=2666,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definition(){let localContext=new DefinitionContext(this.context,this.state);this.enterRule(localContext,384,_SysMLv2Parser.RULE_definition);try{this.enterOuterAlt(localContext,1),this.state=2667,this.definitionDeclaration(),this.state=2668,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionDeclaration(){let localContext=new DefinitionDeclarationContext(this.context,this.state);this.enterRule(localContext,386,_SysMLv2Parser.RULE_definitionDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=2671,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2670,this.identification()),this.state=2674,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===139||_la===185)&&(this.state=2673,this.subclassificationPart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionBody(){let localContext=new DefinitionBodyContext(this.context,this.state);this.enterRule(localContext,388,_SysMLv2Parser.RULE_definitionBody);let _la;try{switch(this.state=2685,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=2676,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=2677,this.match(_SysMLv2Parser.LBRACE),this.state=2681,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238897)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&416561323)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=2678,this.definitionBodyItem(),this.state=2683,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2684,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionBodyItem(){let localContext=new DefinitionBodyItemContext(this.context,this.state);this.enterRule(localContext,390,_SysMLv2Parser.RULE_definitionBodyItem);let _la;try{switch(this.state=2703,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,266,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2687,this.importRule();break;case 2:this.enterOuterAlt(localContext,2),this.state=2688,this.memberPrefix(),this.state=2689,this.definitionBodyItemContent();break;case 3:this.enterOuterAlt(localContext,3),this.state=2692,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=2691,this.sourceSuccessionMember()),this.state=2694,this.memberPrefix(),this.state=2695,this.endOccurrenceUsageElement();break;case 4:this.enterOuterAlt(localContext,4),this.state=2698,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=2697,this.sourceSuccessionMember()),this.state=2700,this.memberPrefix(),this.state=2701,this.occurrenceUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionBodyItemContent(){let localContext=new DefinitionBodyItemContentContext(this.context,this.state);this.enterRule(localContext,392,_SysMLv2Parser.RULE_definitionBodyItemContent);let _la;try{switch(this.state=2723,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,269,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2705,this.match(_SysMLv2Parser.ALIAS),this.state=2710,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===206&&(this.state=2706,this.match(_SysMLv2Parser.LT),this.state=2707,this.name(),this.state=2708,this.match(_SysMLv2Parser.GT)),this.state=2713,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||_la===218||_la===219)&&(this.state=2712,this.name()),this.state=2715,this.match(_SysMLv2Parser.FOR),this.state=2716,this.qualifiedName(),this.state=2717,this.relationshipBody();break;case 2:this.enterOuterAlt(localContext,2),this.state=2719,this.match(_SysMLv2Parser.VARIANT),this.state=2720,this.variantUsageElement();break;case 3:this.enterOuterAlt(localContext,3),this.state=2721,this.definitionElement();break;case 4:this.enterOuterAlt(localContext,4),this.state=2722,this.nonOccurrenceUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionMember(){let localContext=new DefinitionMemberContext(this.context,this.state);this.enterRule(localContext,394,_SysMLv2Parser.RULE_definitionMember);try{this.enterOuterAlt(localContext,1),this.state=2725,this.memberPrefix(),this.state=2726,this.definitionElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}variantUsageMember(){let localContext=new VariantUsageMemberContext(this.context,this.state);this.enterRule(localContext,396,_SysMLv2Parser.RULE_variantUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2728,this.memberPrefix(),this.state=2729,this.match(_SysMLv2Parser.VARIANT),this.state=2730,this.variantUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonOccurrenceUsageMember(){let localContext=new NonOccurrenceUsageMemberContext(this.context,this.state);this.enterRule(localContext,398,_SysMLv2Parser.RULE_nonOccurrenceUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2732,this.memberPrefix(),this.state=2733,this.nonOccurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}structureUsageMember(){let localContext=new StructureUsageMemberContext(this.context,this.state);this.enterRule(localContext,400,_SysMLv2Parser.RULE_structureUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2735,this.memberPrefix(),this.state=2736,this.structureUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}behaviorUsageMember(){let localContext=new BehaviorUsageMemberContext(this.context,this.state);this.enterRule(localContext,402,_SysMLv2Parser.RULE_behaviorUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2738,this.memberPrefix(),this.state=2739,this.behaviorUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}refPrefix(){let localContext=new RefPrefixContext(this.context,this.state);this.enterRule(localContext,404,_SysMLv2Parser.RULE_refPrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=2742,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===80||_la===83||_la===114)&&(this.state=2741,this.featureDirection()),this.state=2745,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===49&&(this.state=2744,this.match(_SysMLv2Parser.DERIVED)),this.state=2748,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=2747,_la=this.tokenStream.LA(1),_la===2||_la===165?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2751,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===40&&(this.state=2750,this.match(_SysMLv2Parser.CONSTANT))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}basicUsagePrefix(){let localContext=new BasicUsagePrefixContext(this.context,this.state);this.enterRule(localContext,406,_SysMLv2Parser.RULE_basicUsagePrefix);try{this.enterOuterAlt(localContext,1),this.state=2753,this.refPrefix(),this.state=2755,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,274,this.context)===1&&(this.state=2754,this.match(_SysMLv2Parser.REF))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}endUsagePrefix(){let localContext=new EndUsagePrefixContext(this.context,this.state);this.enterRule(localContext,408,_SysMLv2Parser.RULE_endUsagePrefix);try{this.enterOuterAlt(localContext,1),this.state=2757,this.match(_SysMLv2Parser.END),this.state=2758,this.ownedCrossFeatureMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageExtensionKeyword(){let localContext=new UsageExtensionKeywordContext(this.context,this.state);this.enterRule(localContext,410,_SysMLv2Parser.RULE_usageExtensionKeyword);try{this.enterOuterAlt(localContext,1),this.state=2760,this.prefixMetadataMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}unextendedUsagePrefix(){let localContext=new UnextendedUsagePrefixContext(this.context,this.state);this.enterRule(localContext,412,_SysMLv2Parser.RULE_unextendedUsagePrefix);try{switch(this.state=2764,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.END:this.enterOuterAlt(localContext,1),this.state=2762,this.endUsagePrefix();break;case _SysMLv2Parser.ABSTRACT:case _SysMLv2Parser.ATTRIBUTE:case _SysMLv2Parser.BIND:case _SysMLv2Parser.BINDING:case _SysMLv2Parser.CONSTANT:case _SysMLv2Parser.DERIVED:case _SysMLv2Parser.ENUM:case _SysMLv2Parser.FIRST:case _SysMLv2Parser.IN:case _SysMLv2Parser.INOUT:case _SysMLv2Parser.OUT:case _SysMLv2Parser.REF:case _SysMLv2Parser.SUCCESSION:case _SysMLv2Parser.VARIATION:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2),this.state=2763,this.basicUsagePrefix();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usagePrefix(){let localContext=new UsagePrefixContext(this.context,this.state);this.enterRule(localContext,414,_SysMLv2Parser.RULE_usagePrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2766,this.unextendedUsagePrefix(),this.state=2770,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2767,this.usageExtensionKeyword(),this.state=2772,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usage(){let localContext=new UsageContext(this.context,this.state);this.enterRule(localContext,416,_SysMLv2Parser.RULE_usage);let _la;try{this.enterOuterAlt(localContext,1),this.state=2774,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=2773,this.usageDeclaration()),this.state=2776,this.usageCompletion()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageDeclaration(){let localContext=new UsageDeclarationContext(this.context,this.state);this.enterRule(localContext,418,_SysMLv2Parser.RULE_usageDeclaration);try{switch(this.state=2783,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,279,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2778,this.identification(),this.state=2780,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,278,this.context)===1&&(this.state=2779,this.featureSpecializationPart());break;case 2:this.enterOuterAlt(localContext,2),this.state=2782,this.featureSpecializationPart();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageCompletion(){let localContext=new UsageCompletionContext(this.context,this.state);this.enterRule(localContext,420,_SysMLv2Parser.RULE_usageCompletion);let _la;try{this.enterOuterAlt(localContext,1),this.state=2786,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2785,this.valuePart()),this.state=2788,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageBody(){let localContext=new UsageBodyContext(this.context,this.state);this.enterRule(localContext,422,_SysMLv2Parser.RULE_usageBody);try{this.enterOuterAlt(localContext,1),this.state=2790,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}defaultReferenceUsage(){let localContext=new DefaultReferenceUsageContext(this.context,this.state);this.enterRule(localContext,424,_SysMLv2Parser.RULE_defaultReferenceUsage);try{this.enterOuterAlt(localContext,1),this.state=2792,this.refPrefix(),this.state=2793,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}referenceUsage(){let localContext=new ReferenceUsageContext(this.context,this.state);this.enterRule(localContext,426,_SysMLv2Parser.RULE_referenceUsage);try{this.enterOuterAlt(localContext,1);{switch(this.state=2797,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.END:this.state=2795,this.endUsagePrefix();break;case _SysMLv2Parser.ABSTRACT:case _SysMLv2Parser.CONSTANT:case _SysMLv2Parser.DERIVED:case _SysMLv2Parser.IN:case _SysMLv2Parser.INOUT:case _SysMLv2Parser.OUT:case _SysMLv2Parser.REF:case _SysMLv2Parser.VARIATION:this.state=2796,this.refPrefix();break;default:throw new NoViableAltException(this)}this.state=2799,this.match(_SysMLv2Parser.REF),this.state=2800,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}endFeatureUsage(){let localContext=new EndFeatureUsageContext(this.context,this.state);this.enterRule(localContext,428,_SysMLv2Parser.RULE_endFeatureUsage);try{this.enterOuterAlt(localContext,1),this.state=2802,this.endUsagePrefix(),this.state=2803,this.featureDeclaration(),this.state=2804,this.usageCompletion()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}variantReference(){let localContext=new VariantReferenceContext(this.context,this.state);this.enterRule(localContext,430,_SysMLv2Parser.RULE_variantReference);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2806,this.ownedReferenceSubsetting(),this.state=2810,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===42||_la===47||(_la-125&-32)===0&&(1<<_la-125&8388617)!==0||(_la-158&-32)===0&&(1<<_la-158&1208352769)!==0||_la===204;)this.state=2807,this.featureSpecialization(),this.state=2812,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2813,this.usageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonOccurrenceUsageElement(){let localContext=new NonOccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,432,_SysMLv2Parser.RULE_nonOccurrenceUsageElement);try{switch(this.state=2823,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,283,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2815,this.referenceUsage();break;case 2:this.enterOuterAlt(localContext,2),this.state=2816,this.endFeatureUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=2817,this.attributeUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=2818,this.enumerationUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=2819,this.bindingConnectorAsUsage();break;case 6:this.enterOuterAlt(localContext,6),this.state=2820,this.successionAsUsage();break;case 7:this.enterOuterAlt(localContext,7),this.state=2821,this.extendedUsage();break;case 8:this.enterOuterAlt(localContext,8),this.state=2822,this.defaultReferenceUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}endOccurrenceUsageElement(){let localContext=new EndOccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,434,_SysMLv2Parser.RULE_endOccurrenceUsageElement);let _la;try{this.enterOuterAlt(localContext,1),this.state=2825,this.match(_SysMLv2Parser.END),this.state=2827,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||_la===218||_la===219)&&(this.state=2826,this.name()),this.state=2830,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=2829,this.ownedCrossMultiplicityMember()),this.state=2833,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===106&&(this.state=2832,this.match(_SysMLv2Parser.NONUNIQUE)),this.state=2835,this.occurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceUsageElement(){let localContext=new OccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,436,_SysMLv2Parser.RULE_occurrenceUsageElement);try{switch(this.state=2839,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,287,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2837,this.structureUsageElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=2838,this.behaviorUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}structureUsageElement(){let localContext=new StructureUsageElementContext(this.context,this.state);this.enterRule(localContext,438,_SysMLv2Parser.RULE_structureUsageElement);try{switch(this.state=2856,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,288,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2841,this.occurrenceUsage();break;case 2:this.enterOuterAlt(localContext,2),this.state=2842,this.individualUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=2843,this.portionUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=2844,this.eventOccurrenceUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=2845,this.itemUsage();break;case 6:this.enterOuterAlt(localContext,6),this.state=2846,this.partUsage();break;case 7:this.enterOuterAlt(localContext,7),this.state=2847,this.viewUsage();break;case 8:this.enterOuterAlt(localContext,8),this.state=2848,this.renderingUsage();break;case 9:this.enterOuterAlt(localContext,9),this.state=2849,this.portUsage();break;case 10:this.enterOuterAlt(localContext,10),this.state=2850,this.connectionUsage();break;case 11:this.enterOuterAlt(localContext,11),this.state=2851,this.interfaceUsage();break;case 12:this.enterOuterAlt(localContext,12),this.state=2852,this.allocationUsage();break;case 13:this.enterOuterAlt(localContext,13),this.state=2853,this.message();break;case 14:this.enterOuterAlt(localContext,14),this.state=2854,this.flowUsage();break;case 15:this.enterOuterAlt(localContext,15),this.state=2855,this.successionFlowUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}behaviorUsageElement(){let localContext=new BehaviorUsageElementContext(this.context,this.state);this.enterRule(localContext,440,_SysMLv2Parser.RULE_behaviorUsageElement);try{switch(this.state=2874,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,289,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2858,this.actionUsage();break;case 2:this.enterOuterAlt(localContext,2),this.state=2859,this.calculationUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=2860,this.stateUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=2861,this.constraintUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=2862,this.requirementUsage();break;case 6:this.enterOuterAlt(localContext,6),this.state=2863,this.concernUsage();break;case 7:this.enterOuterAlt(localContext,7),this.state=2864,this.caseUsage();break;case 8:this.enterOuterAlt(localContext,8),this.state=2865,this.analysisCaseUsage();break;case 9:this.enterOuterAlt(localContext,9),this.state=2866,this.verificationCaseUsage();break;case 10:this.enterOuterAlt(localContext,10),this.state=2867,this.useCaseUsage();break;case 11:this.enterOuterAlt(localContext,11),this.state=2868,this.viewpointUsage();break;case 12:this.enterOuterAlt(localContext,12),this.state=2869,this.performActionUsage();break;case 13:this.enterOuterAlt(localContext,13),this.state=2870,this.exhibitStateUsage();break;case 14:this.enterOuterAlt(localContext,14),this.state=2871,this.includeUseCaseUsage();break;case 15:this.enterOuterAlt(localContext,15),this.state=2872,this.assertConstraintUsage();break;case 16:this.enterOuterAlt(localContext,16),this.state=2873,this.satisfyRequirementUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}variantUsageElement(){let localContext=new VariantUsageElementContext(this.context,this.state);this.enterRule(localContext,442,_SysMLv2Parser.RULE_variantUsageElement);try{switch(this.state=2897,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,290,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2876,this.variantReference();break;case 2:this.enterOuterAlt(localContext,2),this.state=2877,this.referenceUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=2878,this.attributeUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=2879,this.bindingConnectorAsUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=2880,this.successionAsUsage();break;case 6:this.enterOuterAlt(localContext,6),this.state=2881,this.occurrenceUsage();break;case 7:this.enterOuterAlt(localContext,7),this.state=2882,this.individualUsage();break;case 8:this.enterOuterAlt(localContext,8),this.state=2883,this.portionUsage();break;case 9:this.enterOuterAlt(localContext,9),this.state=2884,this.eventOccurrenceUsage();break;case 10:this.enterOuterAlt(localContext,10),this.state=2885,this.itemUsage();break;case 11:this.enterOuterAlt(localContext,11),this.state=2886,this.partUsage();break;case 12:this.enterOuterAlt(localContext,12),this.state=2887,this.viewUsage();break;case 13:this.enterOuterAlt(localContext,13),this.state=2888,this.renderingUsage();break;case 14:this.enterOuterAlt(localContext,14),this.state=2889,this.portUsage();break;case 15:this.enterOuterAlt(localContext,15),this.state=2890,this.connectionUsage();break;case 16:this.enterOuterAlt(localContext,16),this.state=2891,this.interfaceUsage();break;case 17:this.enterOuterAlt(localContext,17),this.state=2892,this.allocationUsage();break;case 18:this.enterOuterAlt(localContext,18),this.state=2893,this.message();break;case 19:this.enterOuterAlt(localContext,19),this.state=2894,this.flowUsage();break;case 20:this.enterOuterAlt(localContext,20),this.state=2895,this.successionFlowUsage();break;case 21:this.enterOuterAlt(localContext,21),this.state=2896,this.behaviorUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subclassificationPart(){let localContext=new SubclassificationPartContext(this.context,this.state);this.enterRule(localContext,444,_SysMLv2Parser.RULE_subclassificationPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2899,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2900,this.ownedSubclassification(),this.state=2905,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2901,this.match(_SysMLv2Parser.COMMA),this.state=2902,this.ownedSubclassification(),this.state=2907,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}attributeDefinition(){let localContext=new AttributeDefinitionContext(this.context,this.state);this.enterRule(localContext,446,_SysMLv2Parser.RULE_attributeDefinition);try{this.enterOuterAlt(localContext,1),this.state=2908,this.definitionPrefix(),this.state=2909,this.match(_SysMLv2Parser.ATTRIBUTE),this.state=2910,this.match(_SysMLv2Parser.DEF),this.state=2911,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}attributeUsage(){let localContext=new AttributeUsageContext(this.context,this.state);this.enterRule(localContext,448,_SysMLv2Parser.RULE_attributeUsage);try{this.enterOuterAlt(localContext,1),this.state=2913,this.usagePrefix(),this.state=2914,this.match(_SysMLv2Parser.ATTRIBUTE),this.state=2915,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumerationDefinition(){let localContext=new EnumerationDefinitionContext(this.context,this.state);this.enterRule(localContext,450,_SysMLv2Parser.RULE_enumerationDefinition);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2920,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2917,this.definitionExtensionKeyword(),this.state=2922,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2923,this.match(_SysMLv2Parser.ENUM),this.state=2924,this.match(_SysMLv2Parser.DEF),this.state=2925,this.definitionDeclaration(),this.state=2926,this.enumerationBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumerationBody(){let localContext=new EnumerationBodyContext(this.context,this.state);this.enterRule(localContext,452,_SysMLv2Parser.RULE_enumerationBody);let _la;try{switch(this.state=2938,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=2928,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=2929,this.match(_SysMLv2Parser.LBRACE),this.state=2934,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la-20&-32)===0&&(1<<_la-20&205521921)!==0||(_la-54&-32)===0&&(1<<_la-54&1075841041)!==0||(_la-93&-32)===0&&(1<<_la-93&4027590421)!==0||(_la-125&-32)===0&&(1<<_la-125&8650825)!==0||(_la-157&-32)===0&&(1<<_la-157&2550923331)!==0||(_la-192&-32)===0&&(1<<_la-192&2353852417)!==0;){switch(this.state=2932,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,293,this.context)){case 1:this.state=2930,this.annotatingMember();break;case 2:this.state=2931,this.enumerationUsageMember();break}this.state=2936,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}this.state=2937,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumerationUsageMember(){let localContext=new EnumerationUsageMemberContext(this.context,this.state);this.enterRule(localContext,454,_SysMLv2Parser.RULE_enumerationUsageMember);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2943,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2940,this.prefixMetadataMember(),this.state=2945,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2946,this.memberPrefix(),this.state=2947,this.enumeratedValue()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumeratedValue(){let localContext=new EnumeratedValueContext(this.context,this.state);this.enterRule(localContext,456,_SysMLv2Parser.RULE_enumeratedValue);let _la;try{this.enterOuterAlt(localContext,1),this.state=2950,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===58&&(this.state=2949,this.match(_SysMLv2Parser.ENUM)),this.state=2952,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumerationUsage(){let localContext=new EnumerationUsageContext(this.context,this.state);this.enterRule(localContext,458,_SysMLv2Parser.RULE_enumerationUsage);try{this.enterOuterAlt(localContext,1),this.state=2954,this.usagePrefix(),this.state=2955,this.match(_SysMLv2Parser.ENUM),this.state=2956,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceDefinitionPrefix(){let localContext=new OccurrenceDefinitionPrefixContext(this.context,this.state);this.enterRule(localContext,460,_SysMLv2Parser.RULE_occurrenceDefinitionPrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2959,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=2958,this.basicDefinitionPrefix()),this.state=2963,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===82&&(this.state=2961,this.match(_SysMLv2Parser.INDIVIDUAL),this.state=2962,this.emptyMultiplicityMember()),this.state=2968,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2965,this.definitionExtensionKeyword(),this.state=2970,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceDefinition(){let localContext=new OccurrenceDefinitionContext(this.context,this.state);this.enterRule(localContext,462,_SysMLv2Parser.RULE_occurrenceDefinition);try{this.enterOuterAlt(localContext,1),this.state=2971,this.occurrenceDefinitionPrefix(),this.state=2972,this.match(_SysMLv2Parser.OCCURRENCE),this.state=2973,this.match(_SysMLv2Parser.DEF),this.state=2974,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}individualDefinition(){let localContext=new IndividualDefinitionContext(this.context,this.state);this.enterRule(localContext,464,_SysMLv2Parser.RULE_individualDefinition);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2977,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=2976,this.basicDefinitionPrefix()),this.state=2979,this.match(_SysMLv2Parser.INDIVIDUAL),this.state=2983,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2980,this.definitionExtensionKeyword(),this.state=2985,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2986,this.match(_SysMLv2Parser.DEF),this.state=2987,this.definition(),this.state=2988,this.emptyMultiplicityMember()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyMultiplicityMember(){let localContext=new EmptyMultiplicityMemberContext(this.context,this.state);this.enterRule(localContext,466,_SysMLv2Parser.RULE_emptyMultiplicityMember);try{this.enterOuterAlt(localContext,1),this.state=2990,this.emptyMultiplicity_()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceUsagePrefix(){let localContext=new OccurrenceUsagePrefixContext(this.context,this.state);this.enterRule(localContext,468,_SysMLv2Parser.RULE_occurrenceUsagePrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2992,this.basicUsagePrefix(),this.state=2994,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===82&&(this.state=2993,this.match(_SysMLv2Parser.INDIVIDUAL)),this.state=2997,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===137||_la===153)&&(this.state=2996,this.portionKind()),this.state=3002,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2999,this.usageExtensionKeyword(),this.state=3004,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceUsage(){let localContext=new OccurrenceUsageContext(this.context,this.state);this.enterRule(localContext,470,_SysMLv2Parser.RULE_occurrenceUsage);try{this.enterOuterAlt(localContext,1),this.state=3005,this.occurrenceUsagePrefix(),this.state=3006,this.match(_SysMLv2Parser.OCCURRENCE),this.state=3007,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}individualUsage(){let localContext=new IndividualUsageContext(this.context,this.state);this.enterRule(localContext,472,_SysMLv2Parser.RULE_individualUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3009,this.basicUsagePrefix(),this.state=3010,this.match(_SysMLv2Parser.INDIVIDUAL),this.state=3014,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3011,this.usageExtensionKeyword(),this.state=3016,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3017,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portionUsage(){let localContext=new PortionUsageContext(this.context,this.state);this.enterRule(localContext,474,_SysMLv2Parser.RULE_portionUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3019,this.basicUsagePrefix(),this.state=3021,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===82&&(this.state=3020,this.match(_SysMLv2Parser.INDIVIDUAL)),this.state=3023,this.portionKind(),this.state=3027,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3024,this.usageExtensionKeyword(),this.state=3029,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3030,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portionKind(){let localContext=new PortionKindContext(this.context,this.state);this.enterRule(localContext,476,_SysMLv2Parser.RULE_portionKind);let _la;try{this.enterOuterAlt(localContext,1),this.state=3032,_la=this.tokenStream.LA(1),_la===137||_la===153?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}eventOccurrenceUsage(){let localContext=new EventOccurrenceUsageContext(this.context,this.state);this.enterRule(localContext,478,_SysMLv2Parser.RULE_eventOccurrenceUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3034,this.occurrenceUsagePrefix(),this.state=3035,this.match(_SysMLv2Parser.EVENT),this.state=3044,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=3036,this.ownedReferenceSubsetting(),this.state=3038,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=3037,this.featureSpecializationPart());break;case _SysMLv2Parser.OCCURRENCE:this.state=3040,this.match(_SysMLv2Parser.OCCURRENCE),this.state=3042,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3041,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=3046,this.usageCompletion()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sourceSuccessionMember(){let localContext=new SourceSuccessionMemberContext(this.context,this.state);this.enterRule(localContext,480,_SysMLv2Parser.RULE_sourceSuccessionMember);try{this.enterOuterAlt(localContext,1),this.state=3048,this.match(_SysMLv2Parser.THEN),this.state=3049,this.sourceSuccession()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sourceSuccession(){let localContext=new SourceSuccessionContext(this.context,this.state);this.enterRule(localContext,482,_SysMLv2Parser.RULE_sourceSuccession);try{this.enterOuterAlt(localContext,1),this.state=3051,this.sourceEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sourceEndMember(){let localContext=new SourceEndMemberContext(this.context,this.state);this.enterRule(localContext,484,_SysMLv2Parser.RULE_sourceEndMember);try{this.enterOuterAlt(localContext,1),this.state=3053,this.sourceEnd()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sourceEnd(){let localContext=new SourceEndContext(this.context,this.state);this.enterRule(localContext,486,_SysMLv2Parser.RULE_sourceEnd);try{this.enterOuterAlt(localContext,1),this.state=3056,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,312,this.context)===1&&(this.state=3055,this.ownedMultiplicity())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}itemDefinition(){let localContext=new ItemDefinitionContext(this.context,this.state);this.enterRule(localContext,488,_SysMLv2Parser.RULE_itemDefinition);try{this.enterOuterAlt(localContext,1),this.state=3058,this.occurrenceDefinitionPrefix(),this.state=3059,this.match(_SysMLv2Parser.ITEM),this.state=3060,this.match(_SysMLv2Parser.DEF),this.state=3061,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}itemUsage(){let localContext=new ItemUsageContext(this.context,this.state);this.enterRule(localContext,490,_SysMLv2Parser.RULE_itemUsage);try{this.enterOuterAlt(localContext,1),this.state=3063,this.occurrenceUsagePrefix(),this.state=3064,this.match(_SysMLv2Parser.ITEM),this.state=3065,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}partDefinition(){let localContext=new PartDefinitionContext(this.context,this.state);this.enterRule(localContext,492,_SysMLv2Parser.RULE_partDefinition);try{this.enterOuterAlt(localContext,1),this.state=3067,this.occurrenceDefinitionPrefix(),this.state=3068,this.match(_SysMLv2Parser.PART),this.state=3069,this.match(_SysMLv2Parser.DEF),this.state=3070,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}partUsage(){let localContext=new PartUsageContext(this.context,this.state);this.enterRule(localContext,494,_SysMLv2Parser.RULE_partUsage);try{this.enterOuterAlt(localContext,1),this.state=3072,this.occurrenceUsagePrefix(),this.state=3073,this.match(_SysMLv2Parser.PART),this.state=3074,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portDefinition(){let localContext=new PortDefinitionContext(this.context,this.state);this.enterRule(localContext,496,_SysMLv2Parser.RULE_portDefinition);try{this.enterOuterAlt(localContext,1),this.state=3076,this.definitionPrefix(),this.state=3077,this.match(_SysMLv2Parser.PORT),this.state=3078,this.match(_SysMLv2Parser.DEF),this.state=3079,this.definition(),this.state=3080,this.conjugatedPortDefinitionMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugatedPortDefinitionMember(){let localContext=new ConjugatedPortDefinitionMemberContext(this.context,this.state);this.enterRule(localContext,498,_SysMLv2Parser.RULE_conjugatedPortDefinitionMember);try{this.enterOuterAlt(localContext,1),this.state=3082,this.conjugatedPortDefinition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugatedPortDefinition(){let localContext=new ConjugatedPortDefinitionContext(this.context,this.state);this.enterRule(localContext,500,_SysMLv2Parser.RULE_conjugatedPortDefinition);try{this.enterOuterAlt(localContext,1),this.state=3084,this.portConjugation()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portUsage(){let localContext=new PortUsageContext(this.context,this.state);this.enterRule(localContext,502,_SysMLv2Parser.RULE_portUsage);try{this.enterOuterAlt(localContext,1),this.state=3086,this.occurrenceUsagePrefix(),this.state=3087,this.match(_SysMLv2Parser.PORT),this.state=3088,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugatedPortTyping(){let localContext=new ConjugatedPortTypingContext(this.context,this.state);this.enterRule(localContext,504,_SysMLv2Parser.RULE_conjugatedPortTyping);try{this.enterOuterAlt(localContext,1),this.state=3090,this.match(_SysMLv2Parser.TILDE),this.state=3091,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectionDefinition(){let localContext=new ConnectionDefinitionContext(this.context,this.state);this.enterRule(localContext,506,_SysMLv2Parser.RULE_connectionDefinition);try{this.enterOuterAlt(localContext,1),this.state=3093,this.occurrenceDefinitionPrefix(),this.state=3094,this.match(_SysMLv2Parser.CONNECTION),this.state=3095,this.match(_SysMLv2Parser.DEF),this.state=3096,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectionUsage(){let localContext=new ConnectionUsageContext(this.context,this.state);this.enterRule(localContext,508,_SysMLv2Parser.RULE_connectionUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3098,this.occurrenceUsagePrefix(),this.state=3112,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.CONNECTION:this.state=3099,this.match(_SysMLv2Parser.CONNECTION),this.state=3101,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3100,this.usageDeclaration()),this.state=3104,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3103,this.valuePart()),this.state=3108,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===36&&(this.state=3106,this.match(_SysMLv2Parser.CONNECT),this.state=3107,this.connectorPart());break;case _SysMLv2Parser.CONNECT:this.state=3110,this.match(_SysMLv2Parser.CONNECT),this.state=3111,this.connectorPart();break;default:throw new NoViableAltException(this)}this.state=3114,this.usageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectorPart(){let localContext=new ConnectorPartContext(this.context,this.state);this.enterRule(localContext,510,_SysMLv2Parser.RULE_connectorPart);try{switch(this.state=3118,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.LBRACK:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=3116,this.binaryConnectorPart();break;case _SysMLv2Parser.LPAREN:this.enterOuterAlt(localContext,2),this.state=3117,this.naryConnectorPart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}binaryConnectorPart(){let localContext=new BinaryConnectorPartContext(this.context,this.state);this.enterRule(localContext,512,_SysMLv2Parser.RULE_binaryConnectorPart);try{this.enterOuterAlt(localContext,1),this.state=3120,this.connectorEndMember(),this.state=3121,this.match(_SysMLv2Parser.TO),this.state=3122,this.connectorEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}naryConnectorPart(){let localContext=new NaryConnectorPartContext(this.context,this.state);this.enterRule(localContext,514,_SysMLv2Parser.RULE_naryConnectorPart);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3124,this.match(_SysMLv2Parser.LPAREN),this.state=3125,this.connectorEndMember(),this.state=3126,this.match(_SysMLv2Parser.COMMA),this.state=3127,this.connectorEndMember(),this.state=3132,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=3128,this.match(_SysMLv2Parser.COMMA),this.state=3129,this.connectorEndMember(),this.state=3134,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3135,this.match(_SysMLv2Parser.RPAREN)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bindingConnectorAsUsage(){let localContext=new BindingConnectorAsUsageContext(this.context,this.state);this.enterRule(localContext,516,_SysMLv2Parser.RULE_bindingConnectorAsUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=3137,this.usagePrefix(),this.state=3142,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===22&&(this.state=3138,this.match(_SysMLv2Parser.BINDING),this.state=3140,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3139,this.usageDeclaration())),this.state=3144,this.match(_SysMLv2Parser.BIND),this.state=3145,this.connectorEndMember(),this.state=3146,this.match(_SysMLv2Parser.EQ),this.state=3147,this.connectorEndMember(),this.state=3148,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}successionAsUsage(){let localContext=new SuccessionAsUsageContext(this.context,this.state);this.enterRule(localContext,518,_SysMLv2Parser.RULE_successionAsUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=3150,this.usagePrefix(),this.state=3155,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===150&&(this.state=3151,this.match(_SysMLv2Parser.SUCCESSION),this.state=3153,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3152,this.usageDeclaration())),this.state=3157,this.match(_SysMLv2Parser.FIRST),this.state=3158,this.connectorEndMember(),this.state=3159,this.match(_SysMLv2Parser.THEN),this.state=3160,this.connectorEndMember(),this.state=3161,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceDefinition(){let localContext=new InterfaceDefinitionContext(this.context,this.state);this.enterRule(localContext,520,_SysMLv2Parser.RULE_interfaceDefinition);try{this.enterOuterAlt(localContext,1),this.state=3163,this.occurrenceDefinitionPrefix(),this.state=3164,this.match(_SysMLv2Parser.INTERFACE),this.state=3165,this.match(_SysMLv2Parser.DEF),this.state=3166,this.definitionDeclaration(),this.state=3167,this.interfaceBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceBody(){let localContext=new InterfaceBodyContext(this.context,this.state);this.enterRule(localContext,522,_SysMLv2Parser.RULE_interfaceBody);let _la;try{switch(this.state=3178,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3169,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=3170,this.match(_SysMLv2Parser.LBRACE),this.state=3174,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1181240980)!==0||(_la-32&-32)===0&&(1<<_la-32&490930993)!==0||(_la-69&-32)===0&&(1<<_la-69&1195473923)!==0||(_la-102&-32)===0&&(1<<_la-102&2993926433)!==0||(_la-135&-32)===0&&(1<<_la-135&3892740293)!==0||(_la-169&-32)===0&&(1<<_la-169&8388611)!==0||_la===210||_la===223;)this.state=3171,this.interfaceBodyItem(),this.state=3176,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3177,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceBodyItem(){let localContext=new InterfaceBodyItemContext(this.context,this.state);this.enterRule(localContext,524,_SysMLv2Parser.RULE_interfaceBodyItem);let _la;try{switch(this.state=3189,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,326,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3180,this.definitionMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=3181,this.variantUsageMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=3182,this.interfaceNonOccurrenceUsageMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=3184,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=3183,this.sourceSuccessionMember()),this.state=3186,this.interfaceOccurrenceUsageMember();break;case 5:this.enterOuterAlt(localContext,5),this.state=3187,this.aliasMember();break;case 6:this.enterOuterAlt(localContext,6),this.state=3188,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceNonOccurrenceUsageMember(){let localContext=new InterfaceNonOccurrenceUsageMemberContext(this.context,this.state);this.enterRule(localContext,526,_SysMLv2Parser.RULE_interfaceNonOccurrenceUsageMember);try{this.enterOuterAlt(localContext,1),this.state=3191,this.memberPrefix(),this.state=3192,this.interfaceNonOccurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceNonOccurrenceUsageElement(){let localContext=new InterfaceNonOccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,528,_SysMLv2Parser.RULE_interfaceNonOccurrenceUsageElement);try{switch(this.state=3199,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,327,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3194,this.referenceUsage();break;case 2:this.enterOuterAlt(localContext,2),this.state=3195,this.attributeUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3196,this.enumerationUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3197,this.bindingConnectorAsUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3198,this.successionAsUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceOccurrenceUsageMember(){let localContext=new InterfaceOccurrenceUsageMemberContext(this.context,this.state);this.enterRule(localContext,530,_SysMLv2Parser.RULE_interfaceOccurrenceUsageMember);try{this.enterOuterAlt(localContext,1),this.state=3201,this.memberPrefix(),this.state=3202,this.interfaceOccurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceOccurrenceUsageElement(){let localContext=new InterfaceOccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,532,_SysMLv2Parser.RULE_interfaceOccurrenceUsageElement);try{switch(this.state=3208,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,328,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3204,this.defaultInterfaceEnd();break;case 2:this.enterOuterAlt(localContext,2),this.state=3205,this.endOccurrenceUsageElement();break;case 3:this.enterOuterAlt(localContext,3),this.state=3206,this.structureUsageElement();break;case 4:this.enterOuterAlt(localContext,4),this.state=3207,this.behaviorUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}defaultInterfaceEnd(){let localContext=new DefaultInterfaceEndContext(this.context,this.state);this.enterRule(localContext,534,_SysMLv2Parser.RULE_defaultInterfaceEnd);try{this.enterOuterAlt(localContext,1),this.state=3210,this.match(_SysMLv2Parser.END),this.state=3211,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceUsage(){let localContext=new InterfaceUsageContext(this.context,this.state);this.enterRule(localContext,536,_SysMLv2Parser.RULE_interfaceUsage);try{this.enterOuterAlt(localContext,1),this.state=3213,this.occurrenceUsagePrefix(),this.state=3214,this.match(_SysMLv2Parser.INTERFACE),this.state=3215,this.interfaceUsageDeclaration(),this.state=3216,this.interfaceBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceUsageDeclaration(){let localContext=new InterfaceUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,538,_SysMLv2Parser.RULE_interfaceUsageDeclaration);let _la;try{switch(this.state=3229,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,332,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3219,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3218,this.usageDeclaration()),this.state=3222,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3221,this.valuePart()),this.state=3226,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===36&&(this.state=3224,this.match(_SysMLv2Parser.CONNECT),this.state=3225,this.interfacePart());break;case 2:this.enterOuterAlt(localContext,2),this.state=3228,this.interfacePart();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfacePart(){let localContext=new InterfacePartContext(this.context,this.state);this.enterRule(localContext,540,_SysMLv2Parser.RULE_interfacePart);try{switch(this.state=3233,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.LBRACK:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=3231,this.binaryInterfacePart();break;case _SysMLv2Parser.LPAREN:this.enterOuterAlt(localContext,2),this.state=3232,this.naryInterfacePart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}binaryInterfacePart(){let localContext=new BinaryInterfacePartContext(this.context,this.state);this.enterRule(localContext,542,_SysMLv2Parser.RULE_binaryInterfacePart);try{this.enterOuterAlt(localContext,1),this.state=3235,this.interfaceEndMember(),this.state=3236,this.match(_SysMLv2Parser.TO),this.state=3237,this.interfaceEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}naryInterfacePart(){let localContext=new NaryInterfacePartContext(this.context,this.state);this.enterRule(localContext,544,_SysMLv2Parser.RULE_naryInterfacePart);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3239,this.match(_SysMLv2Parser.LPAREN),this.state=3240,this.interfaceEndMember(),this.state=3241,this.match(_SysMLv2Parser.COMMA),this.state=3242,this.interfaceEndMember(),this.state=3247,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=3243,this.match(_SysMLv2Parser.COMMA),this.state=3244,this.interfaceEndMember(),this.state=3249,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3250,this.match(_SysMLv2Parser.RPAREN)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceEndMember(){let localContext=new InterfaceEndMemberContext(this.context,this.state);this.enterRule(localContext,546,_SysMLv2Parser.RULE_interfaceEndMember);try{this.enterOuterAlt(localContext,1),this.state=3252,this.interfaceEnd()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceEnd(){let localContext=new InterfaceEndContext(this.context,this.state);this.enterRule(localContext,548,_SysMLv2Parser.RULE_interfaceEnd);let _la;try{this.enterOuterAlt(localContext,1),this.state=3255,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=3254,this.ownedCrossMultiplicityMember()),this.state=3260,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,336,this.context)===1&&(this.state=3257,this.name(),this.state=3258,_la=this.tokenStream.LA(1),_la===128||_la===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=3262,this.ownedReferenceSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}allocationDefinition(){let localContext=new AllocationDefinitionContext(this.context,this.state);this.enterRule(localContext,550,_SysMLv2Parser.RULE_allocationDefinition);try{this.enterOuterAlt(localContext,1),this.state=3264,this.occurrenceDefinitionPrefix(),this.state=3265,this.match(_SysMLv2Parser.ALLOCATION),this.state=3266,this.match(_SysMLv2Parser.DEF),this.state=3267,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}allocationUsage(){let localContext=new AllocationUsageContext(this.context,this.state);this.enterRule(localContext,552,_SysMLv2Parser.RULE_allocationUsage);try{this.enterOuterAlt(localContext,1),this.state=3269,this.occurrenceUsagePrefix(),this.state=3270,this.allocationUsageDeclaration(),this.state=3271,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}allocationUsageDeclaration(){let localContext=new AllocationUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,554,_SysMLv2Parser.RULE_allocationUsageDeclaration);let _la;try{switch(this.state=3283,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.ALLOCATION:this.enterOuterAlt(localContext,1),this.state=3273,this.match(_SysMLv2Parser.ALLOCATION),this.state=3275,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3274,this.usageDeclaration()),this.state=3279,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===9&&(this.state=3277,this.match(_SysMLv2Parser.ALLOCATE),this.state=3278,this.connectorPart());break;case _SysMLv2Parser.ALLOCATE:this.enterOuterAlt(localContext,2),this.state=3281,this.match(_SysMLv2Parser.ALLOCATE),this.state=3282,this.connectorPart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowDefinition(){let localContext=new FlowDefinitionContext(this.context,this.state);this.enterRule(localContext,556,_SysMLv2Parser.RULE_flowDefinition);try{this.enterOuterAlt(localContext,1),this.state=3285,this.occurrenceDefinitionPrefix(),this.state=3286,this.match(_SysMLv2Parser.FLOW),this.state=3287,this.match(_SysMLv2Parser.DEF),this.state=3288,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}message(){let localContext=new MessageContext(this.context,this.state);this.enterRule(localContext,558,_SysMLv2Parser.RULE_message);try{this.enterOuterAlt(localContext,1),this.state=3290,this.occurrenceUsagePrefix(),this.state=3291,this.match(_SysMLv2Parser.MESSAGE),this.state=3292,this.messageDeclaration(),this.state=3293,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}messageDeclaration(){let localContext=new MessageDeclarationContext(this.context,this.state);this.enterRule(localContext,560,_SysMLv2Parser.RULE_messageDeclaration);let _la;try{switch(this.state=3316,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,344,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3296,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3295,this.usageDeclaration()),this.state=3299,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3298,this.valuePart()),this.state=3303,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=3301,this.match(_SysMLv2Parser.OF),this.state=3302,this.flowPayloadFeatureMember()),this.state=3310,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===74&&(this.state=3305,this.match(_SysMLv2Parser.FROM),this.state=3306,this.messageEventMember(),this.state=3307,this.match(_SysMLv2Parser.TO),this.state=3308,this.messageEventMember());break;case 2:this.enterOuterAlt(localContext,2),this.state=3312,this.messageEventMember(),this.state=3313,this.match(_SysMLv2Parser.TO),this.state=3314,this.messageEventMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}messageEventMember(){let localContext=new MessageEventMemberContext(this.context,this.state);this.enterRule(localContext,562,_SysMLv2Parser.RULE_messageEventMember);try{this.enterOuterAlt(localContext,1),this.state=3318,this.messageEvent()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}messageEvent(){let localContext=new MessageEventContext(this.context,this.state);this.enterRule(localContext,564,_SysMLv2Parser.RULE_messageEvent);try{this.enterOuterAlt(localContext,1),this.state=3320,this.ownedReferenceSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowUsage(){let localContext=new FlowUsageContext(this.context,this.state);this.enterRule(localContext,566,_SysMLv2Parser.RULE_flowUsage);try{this.enterOuterAlt(localContext,1),this.state=3322,this.occurrenceUsagePrefix(),this.state=3323,this.match(_SysMLv2Parser.FLOW),this.state=3324,this.flowDeclaration(),this.state=3325,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}successionFlowUsage(){let localContext=new SuccessionFlowUsageContext(this.context,this.state);this.enterRule(localContext,568,_SysMLv2Parser.RULE_successionFlowUsage);try{this.enterOuterAlt(localContext,1),this.state=3327,this.occurrenceUsagePrefix(),this.state=3328,this.match(_SysMLv2Parser.SUCCESSION),this.state=3329,this.match(_SysMLv2Parser.FLOW),this.state=3330,this.flowDeclaration(),this.state=3331,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowPayloadFeatureMember(){let localContext=new FlowPayloadFeatureMemberContext(this.context,this.state);this.enterRule(localContext,570,_SysMLv2Parser.RULE_flowPayloadFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=3333,this.flowPayloadFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowPayloadFeature(){let localContext=new FlowPayloadFeatureContext(this.context,this.state);this.enterRule(localContext,572,_SysMLv2Parser.RULE_flowPayloadFeature);try{this.enterOuterAlt(localContext,1),this.state=3335,this.payloadFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionDefinition(){let localContext=new ActionDefinitionContext(this.context,this.state);this.enterRule(localContext,574,_SysMLv2Parser.RULE_actionDefinition);try{this.enterOuterAlt(localContext,1),this.state=3337,this.occurrenceDefinitionPrefix(),this.state=3338,this.match(_SysMLv2Parser.ACTION),this.state=3339,this.match(_SysMLv2Parser.DEF),this.state=3340,this.definitionDeclaration(),this.state=3341,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBody(){let localContext=new ActionBodyContext(this.context,this.state);this.enterRule(localContext,576,_SysMLv2Parser.RULE_actionBody);let _la;try{switch(this.state=3352,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3343,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=3344,this.match(_SysMLv2Parser.LBRACE),this.state=3348,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3345,this.actionBodyItem(),this.state=3350,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3351,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBodyItem(){let localContext=new ActionBodyItemContext(this.context,this.state);this.enterRule(localContext,578,_SysMLv2Parser.RULE_actionBodyItem);let _la;try{let alternative;switch(this.state=3373,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,350,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3354,this.nonBehaviorBodyItem();break;case 2:for(this.enterOuterAlt(localContext,2),this.state=3355,this.initialNodeMember(),this.state=3359,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,347,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3356,this.actionTargetSuccessionMember()),this.state=3361,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,347,this.context);break;case 3:for(this.enterOuterAlt(localContext,3),this.state=3363,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=3362,this.sourceSuccessionMember()),this.state=3365,this.actionBehaviorMember(),this.state=3369,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,349,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3366,this.actionTargetSuccessionMember()),this.state=3371,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,349,this.context);break;case 4:this.enterOuterAlt(localContext,4),this.state=3372,this.guardedSuccessionMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonBehaviorBodyItem(){let localContext=new NonBehaviorBodyItemContext(this.context,this.state);this.enterRule(localContext,580,_SysMLv2Parser.RULE_nonBehaviorBodyItem);let _la;try{switch(this.state=3384,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,352,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3375,this.importRule();break;case 2:this.enterOuterAlt(localContext,2),this.state=3376,this.aliasMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=3377,this.definitionMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=3378,this.variantUsageMember();break;case 5:this.enterOuterAlt(localContext,5),this.state=3379,this.nonOccurrenceUsageMember();break;case 6:this.enterOuterAlt(localContext,6),this.state=3381,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=3380,this.sourceSuccessionMember()),this.state=3383,this.structureUsageMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBehaviorMember(){let localContext=new ActionBehaviorMemberContext(this.context,this.state);this.enterRule(localContext,582,_SysMLv2Parser.RULE_actionBehaviorMember);try{switch(this.state=3388,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,353,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3386,this.actionNodeMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=3387,this.behaviorUsageMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}initialNodeMember(){let localContext=new InitialNodeMemberContext(this.context,this.state);this.enterRule(localContext,584,_SysMLv2Parser.RULE_initialNodeMember);try{this.enterOuterAlt(localContext,1),this.state=3390,this.memberPrefix(),this.state=3391,this.match(_SysMLv2Parser.FIRST),this.state=3392,this.qualifiedName(),this.state=3393,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionNodeMember(){let localContext=new ActionNodeMemberContext(this.context,this.state);this.enterRule(localContext,586,_SysMLv2Parser.RULE_actionNodeMember);try{this.enterOuterAlt(localContext,1),this.state=3395,this.memberPrefix(),this.state=3396,this.actionNode()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionTargetSuccessionMember(){let localContext=new ActionTargetSuccessionMemberContext(this.context,this.state);this.enterRule(localContext,588,_SysMLv2Parser.RULE_actionTargetSuccessionMember);try{this.enterOuterAlt(localContext,1),this.state=3398,this.memberPrefix(),this.state=3399,this.actionTargetSuccession()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}guardedSuccessionMember(){let localContext=new GuardedSuccessionMemberContext(this.context,this.state);this.enterRule(localContext,590,_SysMLv2Parser.RULE_guardedSuccessionMember);try{this.enterOuterAlt(localContext,1),this.state=3401,this.memberPrefix(),this.state=3402,this.guardedSuccession()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionUsage(){let localContext=new ActionUsageContext(this.context,this.state);this.enterRule(localContext,592,_SysMLv2Parser.RULE_actionUsage);try{this.enterOuterAlt(localContext,1),this.state=3404,this.occurrenceUsagePrefix(),this.state=3405,this.match(_SysMLv2Parser.ACTION),this.state=3406,this.actionUsageDeclaration(),this.state=3407,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionUsageDeclaration(){let localContext=new ActionUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,594,_SysMLv2Parser.RULE_actionUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3410,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3409,this.usageDeclaration()),this.state=3413,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3412,this.valuePart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}performActionUsage(){let localContext=new PerformActionUsageContext(this.context,this.state);this.enterRule(localContext,596,_SysMLv2Parser.RULE_performActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3415,this.occurrenceUsagePrefix(),this.state=3416,this.match(_SysMLv2Parser.PERFORM),this.state=3417,this.performActionUsageDeclaration(),this.state=3418,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}performActionUsageDeclaration(){let localContext=new PerformActionUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,598,_SysMLv2Parser.RULE_performActionUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3428,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=3420,this.ownedReferenceSubsetting(),this.state=3422,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=3421,this.featureSpecializationPart());break;case _SysMLv2Parser.ACTION:this.state=3424,this.match(_SysMLv2Parser.ACTION),this.state=3426,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3425,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=3431,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3430,this.valuePart())}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionNode(){let localContext=new ActionNodeContext(this.context,this.state);this.enterRule(localContext,600,_SysMLv2Parser.RULE_actionNode);try{switch(this.state=3441,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,360,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3433,this.controlNode();break;case 2:this.enterOuterAlt(localContext,2),this.state=3434,this.sendNode();break;case 3:this.enterOuterAlt(localContext,3),this.state=3435,this.acceptNode();break;case 4:this.enterOuterAlt(localContext,4),this.state=3436,this.assignmentNode();break;case 5:this.enterOuterAlt(localContext,5),this.state=3437,this.terminateNode();break;case 6:this.enterOuterAlt(localContext,6),this.state=3438,this.ifNode();break;case 7:this.enterOuterAlt(localContext,7),this.state=3439,this.whileLoopNode();break;case 8:this.enterOuterAlt(localContext,8),this.state=3440,this.forLoopNode();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionNodeUsageDeclaration(){let localContext=new ActionNodeUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,602,_SysMLv2Parser.RULE_actionNodeUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3443,this.match(_SysMLv2Parser.ACTION),this.state=3445,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3444,this.usageDeclaration())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionNodePrefix(){let localContext=new ActionNodePrefixContext(this.context,this.state);this.enterRule(localContext,604,_SysMLv2Parser.RULE_actionNodePrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=3447,this.occurrenceUsagePrefix(),this.state=3449,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3448,this.actionNodeUsageDeclaration())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}controlNode(){let localContext=new ControlNodeContext(this.context,this.state);this.enterRule(localContext,606,_SysMLv2Parser.RULE_controlNode);try{switch(this.state=3455,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,363,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3451,this.mergeNode();break;case 2:this.enterOuterAlt(localContext,2),this.state=3452,this.decisionNode();break;case 3:this.enterOuterAlt(localContext,3),this.state=3453,this.joinNode();break;case 4:this.enterOuterAlt(localContext,4),this.state=3454,this.forkNode();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}controlNodePrefix(){let localContext=new ControlNodePrefixContext(this.context,this.state);this.enterRule(localContext,608,_SysMLv2Parser.RULE_controlNodePrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=3457,this.refPrefix(),this.state=3459,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===82&&(this.state=3458,this.match(_SysMLv2Parser.INDIVIDUAL)),this.state=3462,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===137||_la===153)&&(this.state=3461,this.portionKind()),this.state=3467,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3464,this.usageExtensionKeyword(),this.state=3469,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}mergeNode(){let localContext=new MergeNodeContext(this.context,this.state);this.enterRule(localContext,610,_SysMLv2Parser.RULE_mergeNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3470,this.controlNodePrefix(),this.state=3471,this.match(_SysMLv2Parser.MERGE),this.state=3473,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3472,this.usageDeclaration()),this.state=3475,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}decisionNode(){let localContext=new DecisionNodeContext(this.context,this.state);this.enterRule(localContext,612,_SysMLv2Parser.RULE_decisionNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3477,this.controlNodePrefix(),this.state=3478,this.match(_SysMLv2Parser.DECIDE),this.state=3480,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3479,this.usageDeclaration()),this.state=3482,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}joinNode(){let localContext=new JoinNodeContext(this.context,this.state);this.enterRule(localContext,614,_SysMLv2Parser.RULE_joinNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3484,this.controlNodePrefix(),this.state=3485,this.match(_SysMLv2Parser.JOIN),this.state=3487,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3486,this.usageDeclaration()),this.state=3489,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}forkNode(){let localContext=new ForkNodeContext(this.context,this.state);this.enterRule(localContext,616,_SysMLv2Parser.RULE_forkNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3491,this.controlNodePrefix(),this.state=3492,this.match(_SysMLv2Parser.FORK),this.state=3494,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3493,this.usageDeclaration()),this.state=3496,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}acceptNode(){let localContext=new AcceptNodeContext(this.context,this.state);this.enterRule(localContext,618,_SysMLv2Parser.RULE_acceptNode);try{this.enterOuterAlt(localContext,1),this.state=3498,this.occurrenceUsagePrefix(),this.state=3499,this.acceptNodeDeclaration(),this.state=3500,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}acceptNodeDeclaration(){let localContext=new AcceptNodeDeclarationContext(this.context,this.state);this.enterRule(localContext,620,_SysMLv2Parser.RULE_acceptNodeDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3503,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3502,this.actionNodeUsageDeclaration()),this.state=3505,this.match(_SysMLv2Parser.ACCEPT),this.state=3506,this.acceptParameterPart()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}acceptParameterPart(){let localContext=new AcceptParameterPartContext(this.context,this.state);this.enterRule(localContext,622,_SysMLv2Parser.RULE_acceptParameterPart);let _la;try{this.enterOuterAlt(localContext,1),this.state=3508,this.payloadParameterMember(),this.state=3511,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===168&&(this.state=3509,this.match(_SysMLv2Parser.VIA),this.state=3510,this.nodeParameterMember())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadParameterMember(){let localContext=new PayloadParameterMemberContext(this.context,this.state);this.enterRule(localContext,624,_SysMLv2Parser.RULE_payloadParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3513,this.payloadParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadParameter(){let localContext=new PayloadParameterContext(this.context,this.state);this.enterRule(localContext,626,_SysMLv2Parser.RULE_payloadParameter);let _la;try{switch(this.state=3523,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,375,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3515,this.payloadFeature();break;case 2:this.enterOuterAlt(localContext,2),this.state=3517,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,373,this.context)===1&&(this.state=3516,this.identification()),this.state=3520,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=3519,this.payloadFeatureSpecializationPart()),this.state=3522,this.triggerValuePart();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerValuePart(){let localContext=new TriggerValuePartContext(this.context,this.state);this.enterRule(localContext,628,_SysMLv2Parser.RULE_triggerValuePart);try{this.enterOuterAlt(localContext,1),this.state=3525,this.triggerFeatureValue()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerFeatureValue(){let localContext=new TriggerFeatureValueContext(this.context,this.state);this.enterRule(localContext,630,_SysMLv2Parser.RULE_triggerFeatureValue);try{this.enterOuterAlt(localContext,1),this.state=3527,this.triggerExpression()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerExpression(){let localContext=new TriggerExpressionContext(this.context,this.state);this.enterRule(localContext,632,_SysMLv2Parser.RULE_triggerExpression);let _la;try{switch(this.state=3533,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.AFTER:case _SysMLv2Parser.AT:this.enterOuterAlt(localContext,1),this.state=3529,_la=this.tokenStream.LA(1),_la===6||_la===18?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3530,this.argumentMember();break;case _SysMLv2Parser.WHEN:this.enterOuterAlt(localContext,2),this.state=3531,this.match(_SysMLv2Parser.WHEN),this.state=3532,this.argumentExpressionMember();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sendNode(){let localContext=new SendNodeContext(this.context,this.state);this.enterRule(localContext,634,_SysMLv2Parser.RULE_sendNode);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3535,this.occurrenceUsagePrefix(),this.state=3538,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.ACTION:this.state=3536,this.actionNodeUsageDeclaration();break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.DEFAULT:case _SysMLv2Parser.DEFINED:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.NONUNIQUE:case _SysMLv2Parser.ORDERED:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.REDEFINES:case _SysMLv2Parser.REFERENCES:case _SysMLv2Parser.SEND:case _SysMLv2Parser.STEP:case _SysMLv2Parser.SUBSETS:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.TYPED:case _SysMLv2Parser.VAR:case _SysMLv2Parser.COLON_COLON_GT:case _SysMLv2Parser.COLON_GT_GT:case _SysMLv2Parser.COLON_EQ:case _SysMLv2Parser.COLON_GT:case _SysMLv2Parser.FAT_ARROW:case _SysMLv2Parser.COLON:case _SysMLv2Parser.LT:case _SysMLv2Parser.EQ:case _SysMLv2Parser.LBRACK:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=3537,this.actionUsageDeclaration();break;default:throw new NoViableAltException(this)}switch(this.state=3540,this.match(_SysMLv2Parser.SEND),this.state=3549,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,380,this.context)){case 1:this.state=3541,this.nodeParameterMember(),this.state=3543,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===154||_la===168)&&(this.state=3542,this.senderReceiverPart());break;case 2:this.state=3545,this.emptyParameterMember(),this.state=3547,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===154||_la===168)&&(this.state=3546,this.senderReceiverPart());break}this.state=3551,this.actionBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sendNodeDeclaration(){let localContext=new SendNodeDeclarationContext(this.context,this.state);this.enterRule(localContext,636,_SysMLv2Parser.RULE_sendNodeDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3554,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3553,this.actionNodeUsageDeclaration()),this.state=3556,this.match(_SysMLv2Parser.SEND),this.state=3557,this.nodeParameterMember(),this.state=3559,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===154||_la===168)&&(this.state=3558,this.senderReceiverPart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}senderReceiverPart(){let localContext=new SenderReceiverPartContext(this.context,this.state);this.enterRule(localContext,638,_SysMLv2Parser.RULE_senderReceiverPart);let _la;try{switch(this.state=3571,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.VIA:this.enterOuterAlt(localContext,1),this.state=3561,this.match(_SysMLv2Parser.VIA),this.state=3562,this.nodeParameterMember(),this.state=3565,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===154&&(this.state=3563,this.match(_SysMLv2Parser.TO),this.state=3564,this.nodeParameterMember());break;case _SysMLv2Parser.TO:this.enterOuterAlt(localContext,2),this.state=3567,this.emptyParameterMember(),this.state=3568,this.match(_SysMLv2Parser.TO),this.state=3569,this.nodeParameterMember();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nodeParameterMember(){let localContext=new NodeParameterMemberContext(this.context,this.state);this.enterRule(localContext,640,_SysMLv2Parser.RULE_nodeParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3573,this.nodeParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nodeParameter(){let localContext=new NodeParameterContext(this.context,this.state);this.enterRule(localContext,642,_SysMLv2Parser.RULE_nodeParameter);try{this.enterOuterAlt(localContext,1),this.state=3575,this.featureBinding()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureBinding(){let localContext=new FeatureBindingContext(this.context,this.state);this.enterRule(localContext,644,_SysMLv2Parser.RULE_featureBinding);try{this.enterOuterAlt(localContext,1),this.state=3577,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyParameterMember(){let localContext=new EmptyParameterMemberContext(this.context,this.state);this.enterRule(localContext,646,_SysMLv2Parser.RULE_emptyParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3579,this.emptyUsage_()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentNode(){let localContext=new AssignmentNodeContext(this.context,this.state);this.enterRule(localContext,648,_SysMLv2Parser.RULE_assignmentNode);try{this.enterOuterAlt(localContext,1),this.state=3581,this.occurrenceUsagePrefix(),this.state=3582,this.assignmentNodeDeclaration(),this.state=3583,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentNodeDeclaration(){let localContext=new AssignmentNodeDeclarationContext(this.context,this.state);this.enterRule(localContext,650,_SysMLv2Parser.RULE_assignmentNodeDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3586,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3585,this.actionNodeUsageDeclaration()),this.state=3588,this.match(_SysMLv2Parser.ASSIGN),this.state=3589,this.assignmentTargetMember(),this.state=3590,this.featureChainMember(),this.state=3591,this.match(_SysMLv2Parser.COLON_EQ),this.state=3592,this.nodeParameterMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentTargetMember(){let localContext=new AssignmentTargetMemberContext(this.context,this.state);this.enterRule(localContext,652,_SysMLv2Parser.RULE_assignmentTargetMember);try{this.enterOuterAlt(localContext,1),this.state=3594,this.assignmentTargetParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentTargetParameter(){let localContext=new AssignmentTargetParameterContext(this.context,this.state);this.enterRule(localContext,654,_SysMLv2Parser.RULE_assignmentTargetParameter);try{this.enterOuterAlt(localContext,1),this.state=3599,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,386,this.context)===1&&(this.state=3596,this.assignmentTargetBinding(),this.state=3597,this.match(_SysMLv2Parser.DOT))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentTargetBinding(){let localContext=new AssignmentTargetBindingContext(this.context,this.state);this.enterRule(localContext,656,_SysMLv2Parser.RULE_assignmentTargetBinding);try{this.enterOuterAlt(localContext,1),this.state=3601,this.nonFeatureChainPrimaryExpression()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}terminateNode(){let localContext=new TerminateNodeContext(this.context,this.state);this.enterRule(localContext,658,_SysMLv2Parser.RULE_terminateNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3603,this.occurrenceUsagePrefix(),this.state=3605,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3604,this.actionNodeUsageDeclaration()),this.state=3607,this.match(_SysMLv2Parser.TERMINATE),this.state=3609,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,388,this.context)===1&&(this.state=3608,this.nodeParameterMember()),this.state=3611,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ifNode(){let localContext=new IfNodeContext(this.context,this.state);this.enterRule(localContext,660,_SysMLv2Parser.RULE_ifNode);try{switch(this.enterOuterAlt(localContext,1),this.state=3613,this.actionNodePrefix(),this.state=3614,this.match(_SysMLv2Parser.IF),this.state=3615,this.expressionParameterMember(),this.state=3616,this.actionBodyParameterMember(),this.state=3622,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,390,this.context)){case 1:switch(this.state=3617,this.match(_SysMLv2Parser.ELSE),this.state=3620,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,389,this.context)){case 1:this.state=3618,this.actionBodyParameterMember();break;case 2:this.state=3619,this.ifNodeParameterMember();break}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}expressionParameterMember(){let localContext=new ExpressionParameterMemberContext(this.context,this.state);this.enterRule(localContext,662,_SysMLv2Parser.RULE_expressionParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3624,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBodyParameterMember(){let localContext=new ActionBodyParameterMemberContext(this.context,this.state);this.enterRule(localContext,664,_SysMLv2Parser.RULE_actionBodyParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3626,this.actionBodyParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBodyParameter(){let localContext=new ActionBodyParameterContext(this.context,this.state);this.enterRule(localContext,666,_SysMLv2Parser.RULE_actionBodyParameter);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3632,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3628,this.match(_SysMLv2Parser.ACTION),this.state=3630,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3629,this.usageDeclaration())),this.state=3634,this.match(_SysMLv2Parser.LBRACE),this.state=3638,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3635,this.actionBodyItem(),this.state=3640,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3641,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ifNodeParameterMember(){let localContext=new IfNodeParameterMemberContext(this.context,this.state);this.enterRule(localContext,668,_SysMLv2Parser.RULE_ifNodeParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3643,this.ifNode()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}whileLoopNode(){let localContext=new WhileLoopNodeContext(this.context,this.state);this.enterRule(localContext,670,_SysMLv2Parser.RULE_whileLoopNode);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3645,this.actionNodePrefix(),this.state=3650,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.WHILE:this.state=3646,this.match(_SysMLv2Parser.WHILE),this.state=3647,this.expressionParameterMember();break;case _SysMLv2Parser.LOOP:this.state=3648,this.match(_SysMLv2Parser.LOOP),this.state=3649,this.emptyParameterMember();break;default:throw new NoViableAltException(this)}this.state=3652,this.actionBodyParameterMember(),this.state=3657,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===161&&(this.state=3653,this.match(_SysMLv2Parser.UNTIL),this.state=3654,this.expressionParameterMember(),this.state=3655,this.match(_SysMLv2Parser.SEMI))}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}forLoopNode(){let localContext=new ForLoopNodeContext(this.context,this.state);this.enterRule(localContext,672,_SysMLv2Parser.RULE_forLoopNode);try{this.enterOuterAlt(localContext,1),this.state=3659,this.actionNodePrefix(),this.state=3660,this.match(_SysMLv2Parser.FOR),this.state=3661,this.forVariableDeclarationMember(),this.state=3662,this.match(_SysMLv2Parser.IN),this.state=3663,this.nodeParameterMember(),this.state=3664,this.actionBodyParameterMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}forVariableDeclarationMember(){let localContext=new ForVariableDeclarationMemberContext(this.context,this.state);this.enterRule(localContext,674,_SysMLv2Parser.RULE_forVariableDeclarationMember);let _la;try{this.enterOuterAlt(localContext,1),this.state=3667,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3666,this.usageDeclaration())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionTargetSuccession(){let localContext=new ActionTargetSuccessionContext(this.context,this.state);this.enterRule(localContext,676,_SysMLv2Parser.RULE_actionTargetSuccession);try{this.enterOuterAlt(localContext,1);{switch(this.state=3672,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.THEN:case _SysMLv2Parser.LBRACK:this.state=3669,this.targetSuccession();break;case _SysMLv2Parser.IF:this.state=3670,this.guardedTargetSuccession();break;case _SysMLv2Parser.ELSE:this.state=3671,this.defaultTargetSuccession();break;default:throw new NoViableAltException(this)}this.state=3674,this.usageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}targetSuccession(){let localContext=new TargetSuccessionContext(this.context,this.state);this.enterRule(localContext,678,_SysMLv2Parser.RULE_targetSuccession);try{this.enterOuterAlt(localContext,1),this.state=3676,this.sourceEndMember(),this.state=3677,this.match(_SysMLv2Parser.THEN),this.state=3678,this.connectorEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}guardedTargetSuccession(){let localContext=new GuardedTargetSuccessionContext(this.context,this.state);this.enterRule(localContext,680,_SysMLv2Parser.RULE_guardedTargetSuccession);try{this.enterOuterAlt(localContext,1),this.state=3680,this.guardExpressionMember(),this.state=3681,this.match(_SysMLv2Parser.THEN),this.state=3682,this.transitionSuccessionMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}defaultTargetSuccession(){let localContext=new DefaultTargetSuccessionContext(this.context,this.state);this.enterRule(localContext,682,_SysMLv2Parser.RULE_defaultTargetSuccession);try{this.enterOuterAlt(localContext,1),this.state=3684,this.match(_SysMLv2Parser.ELSE),this.state=3685,this.transitionSuccessionMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}guardedSuccession(){let localContext=new GuardedSuccessionContext(this.context,this.state);this.enterRule(localContext,684,_SysMLv2Parser.RULE_guardedSuccession);let _la;try{this.enterOuterAlt(localContext,1),this.state=3691,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===150&&(this.state=3687,this.match(_SysMLv2Parser.SUCCESSION),this.state=3689,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3688,this.usageDeclaration())),this.state=3693,this.match(_SysMLv2Parser.FIRST),this.state=3694,this.featureChainMember(),this.state=3695,this.guardExpressionMember(),this.state=3696,this.match(_SysMLv2Parser.THEN),this.state=3697,this.transitionSuccessionMember(),this.state=3698,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateDefinition(){let localContext=new StateDefinitionContext(this.context,this.state);this.enterRule(localContext,686,_SysMLv2Parser.RULE_stateDefinition);try{this.enterOuterAlt(localContext,1),this.state=3700,this.occurrenceDefinitionPrefix(),this.state=3701,this.match(_SysMLv2Parser.STATE),this.state=3702,this.match(_SysMLv2Parser.DEF),this.state=3703,this.definitionDeclaration(),this.state=3704,this.stateDefBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateDefBody(){let localContext=new StateDefBodyContext(this.context,this.state);this.enterRule(localContext,688,_SysMLv2Parser.RULE_stateDefBody);let _la;try{switch(this.state=3718,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3706,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.PARALLEL:case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=3708,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===116&&(this.state=3707,this.match(_SysMLv2Parser.PARALLEL)),this.state=3710,this.match(_SysMLv2Parser.LBRACE),this.state=3714,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&1063503665)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238897)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&450115755)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3711,this.stateBodyItem(),this.state=3716,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3717,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateBodyItem(){let localContext=new StateBodyItemContext(this.context,this.state);this.enterRule(localContext,690,_SysMLv2Parser.RULE_stateBodyItem);let _la;try{let alternative;switch(this.state=3741,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,406,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3720,this.nonBehaviorBodyItem();break;case 2:for(this.enterOuterAlt(localContext,2),this.state=3722,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=3721,this.sourceSuccessionMember()),this.state=3724,this.behaviorUsageMember(),this.state=3728,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,404,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3725,this.targetTransitionUsageMember()),this.state=3730,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,404,this.context);break;case 3:this.enterOuterAlt(localContext,3),this.state=3731,this.transitionUsageMember();break;case 4:for(this.enterOuterAlt(localContext,4),this.state=3732,this.entryActionMember(),this.state=3736,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,405,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3733,this.entryTransitionMember()),this.state=3738,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,405,this.context);break;case 5:this.enterOuterAlt(localContext,5),this.state=3739,this.doActionMember();break;case 6:this.enterOuterAlt(localContext,6),this.state=3740,this.exitActionMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}entryActionMember(){let localContext=new EntryActionMemberContext(this.context,this.state);this.enterRule(localContext,692,_SysMLv2Parser.RULE_entryActionMember);try{this.enterOuterAlt(localContext,1),this.state=3743,this.memberPrefix(),this.state=3744,this.match(_SysMLv2Parser.ENTRY),this.state=3745,this.stateActionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}doActionMember(){let localContext=new DoActionMemberContext(this.context,this.state);this.enterRule(localContext,694,_SysMLv2Parser.RULE_doActionMember);try{this.enterOuterAlt(localContext,1),this.state=3747,this.memberPrefix(),this.state=3748,this.match(_SysMLv2Parser.DO),this.state=3749,this.stateActionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}exitActionMember(){let localContext=new ExitActionMemberContext(this.context,this.state);this.enterRule(localContext,696,_SysMLv2Parser.RULE_exitActionMember);try{this.enterOuterAlt(localContext,1),this.state=3751,this.memberPrefix(),this.state=3752,this.match(_SysMLv2Parser.EXIT),this.state=3753,this.stateActionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}entryTransitionMember(){let localContext=new EntryTransitionMemberContext(this.context,this.state);this.enterRule(localContext,698,_SysMLv2Parser.RULE_entryTransitionMember);try{this.enterOuterAlt(localContext,1);{switch(this.state=3755,this.memberPrefix(),this.state=3759,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.IF:this.state=3756,this.guardedTargetSuccession();break;case _SysMLv2Parser.THEN:this.state=3757,this.match(_SysMLv2Parser.THEN),this.state=3758,this.transitionSuccessionMember();break;default:throw new NoViableAltException(this)}this.state=3761,this.match(_SysMLv2Parser.SEMI)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateActionUsage(){let localContext=new StateActionUsageContext(this.context,this.state);this.enterRule(localContext,700,_SysMLv2Parser.RULE_stateActionUsage);try{switch(this.state=3770,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,408,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3763,this.emptyActionUsage_(),this.state=3764,this.match(_SysMLv2Parser.SEMI);break;case 2:this.enterOuterAlt(localContext,2),this.state=3766,this.statePerformActionUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3767,this.stateAcceptActionUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3768,this.stateSendActionUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3769,this.stateAssignmentActionUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}statePerformActionUsage(){let localContext=new StatePerformActionUsageContext(this.context,this.state);this.enterRule(localContext,702,_SysMLv2Parser.RULE_statePerformActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3772,this.performActionUsageDeclaration(),this.state=3773,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateAcceptActionUsage(){let localContext=new StateAcceptActionUsageContext(this.context,this.state);this.enterRule(localContext,704,_SysMLv2Parser.RULE_stateAcceptActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3775,this.acceptNodeDeclaration(),this.state=3776,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateSendActionUsage(){let localContext=new StateSendActionUsageContext(this.context,this.state);this.enterRule(localContext,706,_SysMLv2Parser.RULE_stateSendActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3778,this.sendNodeDeclaration(),this.state=3779,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateAssignmentActionUsage(){let localContext=new StateAssignmentActionUsageContext(this.context,this.state);this.enterRule(localContext,708,_SysMLv2Parser.RULE_stateAssignmentActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3781,this.assignmentNodeDeclaration(),this.state=3782,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionUsageMember(){let localContext=new TransitionUsageMemberContext(this.context,this.state);this.enterRule(localContext,710,_SysMLv2Parser.RULE_transitionUsageMember);try{this.enterOuterAlt(localContext,1),this.state=3784,this.memberPrefix(),this.state=3785,this.transitionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}targetTransitionUsageMember(){let localContext=new TargetTransitionUsageMemberContext(this.context,this.state);this.enterRule(localContext,712,_SysMLv2Parser.RULE_targetTransitionUsageMember);try{this.enterOuterAlt(localContext,1),this.state=3787,this.memberPrefix(),this.state=3788,this.targetTransitionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateUsage(){let localContext=new StateUsageContext(this.context,this.state);this.enterRule(localContext,714,_SysMLv2Parser.RULE_stateUsage);try{this.enterOuterAlt(localContext,1),this.state=3790,this.occurrenceUsagePrefix(),this.state=3791,this.match(_SysMLv2Parser.STATE),this.state=3792,this.actionUsageDeclaration(),this.state=3793,this.stateUsageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateUsageBody(){let localContext=new StateUsageBodyContext(this.context,this.state);this.enterRule(localContext,716,_SysMLv2Parser.RULE_stateUsageBody);let _la;try{switch(this.state=3807,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3795,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.PARALLEL:case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=3797,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===116&&(this.state=3796,this.match(_SysMLv2Parser.PARALLEL)),this.state=3799,this.match(_SysMLv2Parser.LBRACE),this.state=3803,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&1063503665)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238897)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&450115755)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3800,this.stateBodyItem(),this.state=3805,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3806,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}exhibitStateUsage(){let localContext=new ExhibitStateUsageContext(this.context,this.state);this.enterRule(localContext,718,_SysMLv2Parser.RULE_exhibitStateUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3809,this.occurrenceUsagePrefix(),this.state=3810,this.match(_SysMLv2Parser.EXHIBIT),this.state=3819,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=3811,this.ownedReferenceSubsetting(),this.state=3813,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=3812,this.featureSpecializationPart());break;case _SysMLv2Parser.STATE:this.state=3815,this.match(_SysMLv2Parser.STATE),this.state=3817,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3816,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=3822,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3821,this.valuePart()),this.state=3824,this.stateUsageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionUsage(){let localContext=new TransitionUsageContext(this.context,this.state);this.enterRule(localContext,720,_SysMLv2Parser.RULE_transitionUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=3826,this.match(_SysMLv2Parser.TRANSITION),this.state=3831,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,417,this.context)===1&&(this.state=3828,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3827,this.usageDeclaration()),this.state=3830,this.match(_SysMLv2Parser.FIRST)),this.state=3833,this.featureChainMember(),this.state=3834,this.emptyParameterMember(),this.state=3838,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===3&&(this.state=3835,this.emptyParameterMember(),this.state=3836,this.triggerActionMember()),this.state=3841,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===77&&(this.state=3840,this.guardExpressionMember()),this.state=3844,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===53&&(this.state=3843,this.effectBehaviorMember()),this.state=3846,this.match(_SysMLv2Parser.THEN),this.state=3847,this.transitionSuccessionMember(),this.state=3848,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}targetTransitionUsage(){let localContext=new TargetTransitionUsageContext(this.context,this.state);this.enterRule(localContext,722,_SysMLv2Parser.RULE_targetTransitionUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3850,this.emptyParameterMember(),this.state=3875,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.TRANSITION:this.state=3851,this.match(_SysMLv2Parser.TRANSITION),this.state=3855,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===3&&(this.state=3852,this.emptyParameterMember(),this.state=3853,this.triggerActionMember()),this.state=3858,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===77&&(this.state=3857,this.guardExpressionMember()),this.state=3861,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===53&&(this.state=3860,this.effectBehaviorMember());break;case _SysMLv2Parser.ACCEPT:this.state=3863,this.emptyParameterMember(),this.state=3864,this.triggerActionMember(),this.state=3866,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===77&&(this.state=3865,this.guardExpressionMember()),this.state=3869,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===53&&(this.state=3868,this.effectBehaviorMember());break;case _SysMLv2Parser.IF:this.state=3871,this.guardExpressionMember(),this.state=3873,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===53&&(this.state=3872,this.effectBehaviorMember());break;case _SysMLv2Parser.THEN:break;default:break}this.state=3877,this.match(_SysMLv2Parser.THEN),this.state=3878,this.transitionSuccessionMember(),this.state=3879,this.actionBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerActionMember(){let localContext=new TriggerActionMemberContext(this.context,this.state);this.enterRule(localContext,724,_SysMLv2Parser.RULE_triggerActionMember);try{this.enterOuterAlt(localContext,1),this.state=3881,this.match(_SysMLv2Parser.ACCEPT),this.state=3882,this.triggerAction()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerAction(){let localContext=new TriggerActionContext(this.context,this.state);this.enterRule(localContext,726,_SysMLv2Parser.RULE_triggerAction);try{this.enterOuterAlt(localContext,1),this.state=3884,this.acceptParameterPart()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}guardExpressionMember(){let localContext=new GuardExpressionMemberContext(this.context,this.state);this.enterRule(localContext,728,_SysMLv2Parser.RULE_guardExpressionMember);try{this.enterOuterAlt(localContext,1),this.state=3886,this.match(_SysMLv2Parser.IF),this.state=3887,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}effectBehaviorMember(){let localContext=new EffectBehaviorMemberContext(this.context,this.state);this.enterRule(localContext,730,_SysMLv2Parser.RULE_effectBehaviorMember);try{this.enterOuterAlt(localContext,1),this.state=3889,this.match(_SysMLv2Parser.DO),this.state=3890,this.effectBehaviorUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}effectBehaviorUsage(){let localContext=new EffectBehaviorUsageContext(this.context,this.state);this.enterRule(localContext,732,_SysMLv2Parser.RULE_effectBehaviorUsage);try{switch(this.state=3897,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,428,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3892,this.emptyActionUsage_();break;case 2:this.enterOuterAlt(localContext,2),this.state=3893,this.transitionPerformActionUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3894,this.transitionAcceptActionUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3895,this.transitionSendActionUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3896,this.transitionAssignmentActionUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionPerformActionUsage(){let localContext=new TransitionPerformActionUsageContext(this.context,this.state);this.enterRule(localContext,734,_SysMLv2Parser.RULE_transitionPerformActionUsage);let _la;try{if(this.enterOuterAlt(localContext,1),this.state=3899,this.performActionUsageDeclaration(),this.state=3908,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===214){for(this.state=3900,this.match(_SysMLv2Parser.LBRACE),this.state=3904,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3901,this.actionBodyItem(),this.state=3906,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3907,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionAcceptActionUsage(){let localContext=new TransitionAcceptActionUsageContext(this.context,this.state);this.enterRule(localContext,736,_SysMLv2Parser.RULE_transitionAcceptActionUsage);let _la;try{if(this.enterOuterAlt(localContext,1),this.state=3910,this.acceptNodeDeclaration(),this.state=3919,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===214){for(this.state=3911,this.match(_SysMLv2Parser.LBRACE),this.state=3915,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3912,this.actionBodyItem(),this.state=3917,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3918,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionSendActionUsage(){let localContext=new TransitionSendActionUsageContext(this.context,this.state);this.enterRule(localContext,738,_SysMLv2Parser.RULE_transitionSendActionUsage);let _la;try{if(this.enterOuterAlt(localContext,1),this.state=3921,this.sendNodeDeclaration(),this.state=3930,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===214){for(this.state=3922,this.match(_SysMLv2Parser.LBRACE),this.state=3926,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3923,this.actionBodyItem(),this.state=3928,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3929,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionAssignmentActionUsage(){let localContext=new TransitionAssignmentActionUsageContext(this.context,this.state);this.enterRule(localContext,740,_SysMLv2Parser.RULE_transitionAssignmentActionUsage);let _la;try{if(this.enterOuterAlt(localContext,1),this.state=3932,this.assignmentNodeDeclaration(),this.state=3941,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===214){for(this.state=3933,this.match(_SysMLv2Parser.LBRACE),this.state=3937,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3934,this.actionBodyItem(),this.state=3939,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3940,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionSuccessionMember(){let localContext=new TransitionSuccessionMemberContext(this.context,this.state);this.enterRule(localContext,742,_SysMLv2Parser.RULE_transitionSuccessionMember);try{this.enterOuterAlt(localContext,1),this.state=3943,this.transitionSuccession()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionSuccession(){let localContext=new TransitionSuccessionContext(this.context,this.state);this.enterRule(localContext,744,_SysMLv2Parser.RULE_transitionSuccession);try{this.enterOuterAlt(localContext,1),this.state=3945,this.emptyEndMember(),this.state=3946,this.connectorEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyEndMember(){let localContext=new EmptyEndMemberContext(this.context,this.state);this.enterRule(localContext,746,_SysMLv2Parser.RULE_emptyEndMember);try{this.enterOuterAlt(localContext,1),this.state=3948,this.emptyFeature_()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationDefinition(){let localContext=new CalculationDefinitionContext(this.context,this.state);this.enterRule(localContext,748,_SysMLv2Parser.RULE_calculationDefinition);try{this.enterOuterAlt(localContext,1),this.state=3950,this.occurrenceDefinitionPrefix(),this.state=3951,this.match(_SysMLv2Parser.CALC),this.state=3952,this.match(_SysMLv2Parser.DEF),this.state=3953,this.definitionDeclaration(),this.state=3954,this.calculationBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationUsage(){let localContext=new CalculationUsageContext(this.context,this.state);this.enterRule(localContext,750,_SysMLv2Parser.RULE_calculationUsage);try{this.enterOuterAlt(localContext,1),this.state=3956,this.occurrenceUsagePrefix(),this.state=3957,this.match(_SysMLv2Parser.CALC),this.state=3958,this.actionUsageDeclaration(),this.state=3959,this.calculationBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationBody(){let localContext=new CalculationBodyContext(this.context,this.state);this.enterRule(localContext,752,_SysMLv2Parser.RULE_calculationBody);try{switch(this.state=3966,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3961,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2),this.state=3962,this.match(_SysMLv2Parser.LBRACE),this.state=3963,this.calculationBodyPart(),this.state=3964,this.match(_SysMLv2Parser.RBRACE);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationBodyPart(){let localContext=new CalculationBodyPartContext(this.context,this.state);this.enterRule(localContext,754,_SysMLv2Parser.RULE_calculationBodyPart);let _la;try{let alternative;this.enterOuterAlt(localContext,1);{for(this.state=3971,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,438,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3968,this.calculationBodyItem()),this.state=3973,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,438,this.context);this.state=3975,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&245763)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=3974,this.resultExpressionMember())}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationBodyItem(){let localContext=new CalculationBodyItemContext(this.context,this.state);this.enterRule(localContext,756,_SysMLv2Parser.RULE_calculationBodyItem);try{switch(this.state=3979,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,440,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3977,this.actionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=3978,this.returnParameterMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}returnParameterMember(){let localContext=new ReturnParameterMemberContext(this.context,this.state);this.enterRule(localContext,758,_SysMLv2Parser.RULE_returnParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3981,this.memberPrefix(),this.state=3982,this.match(_SysMLv2Parser.RETURN),this.state=3983,this.usageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constraintDefinition(){let localContext=new ConstraintDefinitionContext(this.context,this.state);this.enterRule(localContext,760,_SysMLv2Parser.RULE_constraintDefinition);try{this.enterOuterAlt(localContext,1),this.state=3985,this.occurrenceDefinitionPrefix(),this.state=3986,this.match(_SysMLv2Parser.CONSTRAINT),this.state=3987,this.match(_SysMLv2Parser.DEF),this.state=3988,this.definitionDeclaration(),this.state=3989,this.calculationBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constraintUsage(){let localContext=new ConstraintUsageContext(this.context,this.state);this.enterRule(localContext,762,_SysMLv2Parser.RULE_constraintUsage);try{this.enterOuterAlt(localContext,1),this.state=3991,this.occurrenceUsagePrefix(),this.state=3992,this.match(_SysMLv2Parser.CONSTRAINT),this.state=3993,this.constraintUsageDeclaration(),this.state=3994,this.calculationBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assertConstraintUsage(){let localContext=new AssertConstraintUsageContext(this.context,this.state);this.enterRule(localContext,764,_SysMLv2Parser.RULE_assertConstraintUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3996,this.occurrenceUsagePrefix(),this.state=3997,this.match(_SysMLv2Parser.ASSERT),this.state=3999,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===107&&(this.state=3998,this.match(_SysMLv2Parser.NOT)),this.state=4007,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=4001,this.ownedReferenceSubsetting(),this.state=4003,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4002,this.featureSpecializationPart());break;case _SysMLv2Parser.CONSTRAINT:this.state=4005,this.match(_SysMLv2Parser.CONSTRAINT),this.state=4006,this.constraintUsageDeclaration();break;default:throw new NoViableAltException(this)}this.state=4009,this.calculationBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constraintUsageDeclaration(){let localContext=new ConstraintUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,766,_SysMLv2Parser.RULE_constraintUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=4012,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4011,this.usageDeclaration()),this.state=4015,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4014,this.valuePart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementDefinition(){let localContext=new RequirementDefinitionContext(this.context,this.state);this.enterRule(localContext,768,_SysMLv2Parser.RULE_requirementDefinition);try{this.enterOuterAlt(localContext,1),this.state=4017,this.occurrenceDefinitionPrefix(),this.state=4018,this.match(_SysMLv2Parser.REQUIREMENT),this.state=4019,this.match(_SysMLv2Parser.DEF),this.state=4020,this.definitionDeclaration(),this.state=4021,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementBody(){let localContext=new RequirementBodyContext(this.context,this.state);this.enterRule(localContext,770,_SysMLv2Parser.RULE_requirementBody);let _la;try{switch(this.state=4032,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4023,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4024,this.match(_SysMLv2Parser.LBRACE),this.state=4028,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182420660)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948239153)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&416627887)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458623)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4025,this.requirementBodyItem(),this.state=4030,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4031,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementBodyItem(){let localContext=new RequirementBodyItemContext(this.context,this.state);this.enterRule(localContext,772,_SysMLv2Parser.RULE_requirementBodyItem);try{switch(this.state=4041,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,448,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4034,this.definitionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4035,this.subjectMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=4036,this.requirementConstraintMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=4037,this.framedConcernMember();break;case 5:this.enterOuterAlt(localContext,5),this.state=4038,this.requirementVerificationMember();break;case 6:this.enterOuterAlt(localContext,6),this.state=4039,this.actorMember();break;case 7:this.enterOuterAlt(localContext,7),this.state=4040,this.stakeholderMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subjectMember(){let localContext=new SubjectMemberContext(this.context,this.state);this.enterRule(localContext,774,_SysMLv2Parser.RULE_subjectMember);try{this.enterOuterAlt(localContext,1),this.state=4043,this.memberPrefix(),this.state=4044,this.subjectUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subjectUsage(){let localContext=new SubjectUsageContext(this.context,this.state);this.enterRule(localContext,776,_SysMLv2Parser.RULE_subjectUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4046,this.match(_SysMLv2Parser.SUBJECT),this.state=4050,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4047,this.usageExtensionKeyword(),this.state=4052,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4053,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementConstraintMember(){let localContext=new RequirementConstraintMemberContext(this.context,this.state);this.enterRule(localContext,778,_SysMLv2Parser.RULE_requirementConstraintMember);try{this.enterOuterAlt(localContext,1),this.state=4055,this.memberPrefix(),this.state=4056,this.requirementKind(),this.state=4057,this.requirementConstraintUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementKind(){let localContext=new RequirementKindContext(this.context,this.state);this.enterRule(localContext,780,_SysMLv2Parser.RULE_requirementKind);let _la;try{this.enterOuterAlt(localContext,1),this.state=4059,_la=this.tokenStream.LA(1),_la===17||_la===132?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementConstraintUsage(){let localContext=new RequirementConstraintUsageContext(this.context,this.state);this.enterRule(localContext,782,_SysMLv2Parser.RULE_requirementConstraintUsage);let _la;try{switch(this.state=4084,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=4061,this.ownedReferenceSubsetting(),this.state=4063,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4062,this.featureSpecializationPart()),this.state=4065,this.requirementBody();break;case _SysMLv2Parser.CONSTRAINT:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2);{switch(this.state=4079,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,453,this.context)){case 1:{for(this.state=4070,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4067,this.usageExtensionKeyword(),this.state=4072,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4073,this.match(_SysMLv2Parser.CONSTRAINT)}break;case 2:{this.state=4075,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4074,this.usageExtensionKeyword(),this.state=4077,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192)}break}this.state=4081,this.constraintUsageDeclaration(),this.state=4082,this.calculationBody()}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}framedConcernMember(){let localContext=new FramedConcernMemberContext(this.context,this.state);this.enterRule(localContext,784,_SysMLv2Parser.RULE_framedConcernMember);try{this.enterOuterAlt(localContext,1),this.state=4086,this.memberPrefix(),this.state=4087,this.match(_SysMLv2Parser.FRAME),this.state=4088,this.framedConcernUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}framedConcernUsage(){let localContext=new FramedConcernUsageContext(this.context,this.state);this.enterRule(localContext,786,_SysMLv2Parser.RULE_framedConcernUsage);let _la;try{switch(this.state=4113,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=4090,this.ownedReferenceSubsetting(),this.state=4092,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4091,this.featureSpecializationPart()),this.state=4094,this.calculationBody();break;case _SysMLv2Parser.CONCERN:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2);{switch(this.state=4108,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,458,this.context)){case 1:{for(this.state=4099,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4096,this.usageExtensionKeyword(),this.state=4101,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4102,this.match(_SysMLv2Parser.CONCERN)}break;case 2:{this.state=4104,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4103,this.usageExtensionKeyword(),this.state=4106,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192)}break}this.state=4110,this.calculationUsageDeclaration(),this.state=4111,this.calculationBody()}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actorMember(){let localContext=new ActorMemberContext(this.context,this.state);this.enterRule(localContext,788,_SysMLv2Parser.RULE_actorMember);try{this.enterOuterAlt(localContext,1),this.state=4115,this.memberPrefix(),this.state=4116,this.actorUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actorUsage(){let localContext=new ActorUsageContext(this.context,this.state);this.enterRule(localContext,790,_SysMLv2Parser.RULE_actorUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4118,this.match(_SysMLv2Parser.ACTOR),this.state=4122,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4119,this.usageExtensionKeyword(),this.state=4124,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4125,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stakeholderMember(){let localContext=new StakeholderMemberContext(this.context,this.state);this.enterRule(localContext,792,_SysMLv2Parser.RULE_stakeholderMember);try{this.enterOuterAlt(localContext,1),this.state=4127,this.memberPrefix(),this.state=4128,this.stakeholderUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stakeholderUsage(){let localContext=new StakeholderUsageContext(this.context,this.state);this.enterRule(localContext,794,_SysMLv2Parser.RULE_stakeholderUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4130,this.match(_SysMLv2Parser.STAKEHOLDER),this.state=4134,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4131,this.usageExtensionKeyword(),this.state=4136,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4137,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementUsage(){let localContext=new RequirementUsageContext(this.context,this.state);this.enterRule(localContext,796,_SysMLv2Parser.RULE_requirementUsage);try{this.enterOuterAlt(localContext,1),this.state=4139,this.occurrenceUsagePrefix(),this.state=4140,this.match(_SysMLv2Parser.REQUIREMENT),this.state=4141,this.constraintUsageDeclaration(),this.state=4142,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfyRequirementUsage(){let localContext=new SatisfyRequirementUsageContext(this.context,this.state);this.enterRule(localContext,798,_SysMLv2Parser.RULE_satisfyRequirementUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=4144,this.occurrenceUsagePrefix(),this.state=4150,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.ASSERT:this.state=4145,this.match(_SysMLv2Parser.ASSERT),this.state=4147,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===107&&(this.state=4146,this.match(_SysMLv2Parser.NOT));break;case _SysMLv2Parser.NOT:this.state=4149,this.match(_SysMLv2Parser.NOT);break;case _SysMLv2Parser.SATISFY:break;default:break}switch(this.state=4152,this.match(_SysMLv2Parser.SATISFY),this.state=4161,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=4153,this.ownedReferenceSubsetting(),this.state=4155,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4154,this.featureSpecializationPart());break;case _SysMLv2Parser.REQUIREMENT:this.state=4157,this.match(_SysMLv2Parser.REQUIREMENT),this.state=4159,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4158,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=4164,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4163,this.valuePart()),this.state=4168,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===24&&(this.state=4166,this.match(_SysMLv2Parser.BY),this.state=4167,this.satisfactionSubjectMember()),this.state=4170,this.requirementBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfactionSubjectMember(){let localContext=new SatisfactionSubjectMemberContext(this.context,this.state);this.enterRule(localContext,800,_SysMLv2Parser.RULE_satisfactionSubjectMember);try{this.enterOuterAlt(localContext,1),this.state=4172,this.satisfactionParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfactionParameter(){let localContext=new SatisfactionParameterContext(this.context,this.state);this.enterRule(localContext,802,_SysMLv2Parser.RULE_satisfactionParameter);try{this.enterOuterAlt(localContext,1),this.state=4174,this.satisfactionFeatureValue()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfactionFeatureValue(){let localContext=new SatisfactionFeatureValueContext(this.context,this.state);this.enterRule(localContext,804,_SysMLv2Parser.RULE_satisfactionFeatureValue);try{this.enterOuterAlt(localContext,1),this.state=4176,this.satisfactionReferenceExpression()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfactionReferenceExpression(){let localContext=new SatisfactionReferenceExpressionContext(this.context,this.state);this.enterRule(localContext,806,_SysMLv2Parser.RULE_satisfactionReferenceExpression);try{this.enterOuterAlt(localContext,1),this.state=4178,this.featureChainMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}concernDefinition(){let localContext=new ConcernDefinitionContext(this.context,this.state);this.enterRule(localContext,808,_SysMLv2Parser.RULE_concernDefinition);try{this.enterOuterAlt(localContext,1),this.state=4180,this.occurrenceDefinitionPrefix(),this.state=4181,this.match(_SysMLv2Parser.CONCERN),this.state=4182,this.match(_SysMLv2Parser.DEF),this.state=4183,this.definitionDeclaration(),this.state=4184,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}concernUsage(){let localContext=new ConcernUsageContext(this.context,this.state);this.enterRule(localContext,810,_SysMLv2Parser.RULE_concernUsage);try{this.enterOuterAlt(localContext,1),this.state=4186,this.occurrenceUsagePrefix(),this.state=4187,this.match(_SysMLv2Parser.CONCERN),this.state=4188,this.constraintUsageDeclaration(),this.state=4189,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}caseDefinition(){let localContext=new CaseDefinitionContext(this.context,this.state);this.enterRule(localContext,812,_SysMLv2Parser.RULE_caseDefinition);try{this.enterOuterAlt(localContext,1),this.state=4191,this.occurrenceDefinitionPrefix(),this.state=4192,this.match(_SysMLv2Parser.CASE),this.state=4193,this.match(_SysMLv2Parser.DEF),this.state=4194,this.definitionDeclaration(),this.state=4195,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}caseUsage(){let localContext=new CaseUsageContext(this.context,this.state);this.enterRule(localContext,814,_SysMLv2Parser.RULE_caseUsage);try{this.enterOuterAlt(localContext,1),this.state=4197,this.occurrenceUsagePrefix(),this.state=4198,this.match(_SysMLv2Parser.CASE),this.state=4199,this.constraintUsageDeclaration(),this.state=4200,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}caseBody(){let localContext=new CaseBodyContext(this.context,this.state);this.enterRule(localContext,816,_SysMLv2Parser.RULE_caseBody);let _la;try{let alternative;switch(this.state=4214,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4202,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4203,this.match(_SysMLv2Parser.LBRACE),this.state=4207,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,469,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=4204,this.caseBodyItem()),this.state=4209,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,469,this.context);this.state=4211,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&245763)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=4210,this.resultExpressionMember()),this.state=4213,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}caseBodyItem(){let localContext=new CaseBodyItemContext(this.context,this.state);this.enterRule(localContext,818,_SysMLv2Parser.RULE_caseBodyItem);try{switch(this.state=4221,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,472,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4216,this.actionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4217,this.returnParameterMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=4218,this.subjectMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=4219,this.actorMember();break;case 5:this.enterOuterAlt(localContext,5),this.state=4220,this.objectiveMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}objectiveMember(){let localContext=new ObjectiveMemberContext(this.context,this.state);this.enterRule(localContext,820,_SysMLv2Parser.RULE_objectiveMember);try{this.enterOuterAlt(localContext,1),this.state=4223,this.memberPrefix(),this.state=4224,this.match(_SysMLv2Parser.OBJECTIVE),this.state=4225,this.objectiveRequirementUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}objectiveRequirementUsage(){let localContext=new ObjectiveRequirementUsageContext(this.context,this.state);this.enterRule(localContext,822,_SysMLv2Parser.RULE_objectiveRequirementUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4230,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4227,this.usageExtensionKeyword(),this.state=4232,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4233,this.constraintUsageDeclaration(),this.state=4234,this.requirementBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}analysisCaseDefinition(){let localContext=new AnalysisCaseDefinitionContext(this.context,this.state);this.enterRule(localContext,824,_SysMLv2Parser.RULE_analysisCaseDefinition);try{this.enterOuterAlt(localContext,1),this.state=4236,this.occurrenceDefinitionPrefix(),this.state=4237,this.match(_SysMLv2Parser.ANALYSIS),this.state=4238,this.match(_SysMLv2Parser.DEF),this.state=4239,this.definitionDeclaration(),this.state=4240,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}analysisCaseUsage(){let localContext=new AnalysisCaseUsageContext(this.context,this.state);this.enterRule(localContext,826,_SysMLv2Parser.RULE_analysisCaseUsage);try{this.enterOuterAlt(localContext,1),this.state=4242,this.occurrenceUsagePrefix(),this.state=4243,this.match(_SysMLv2Parser.ANALYSIS),this.state=4244,this.constraintUsageDeclaration(),this.state=4245,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}verificationCaseDefinition(){let localContext=new VerificationCaseDefinitionContext(this.context,this.state);this.enterRule(localContext,828,_SysMLv2Parser.RULE_verificationCaseDefinition);try{this.enterOuterAlt(localContext,1),this.state=4247,this.occurrenceDefinitionPrefix(),this.state=4248,this.match(_SysMLv2Parser.VERIFICATION),this.state=4249,this.match(_SysMLv2Parser.DEF),this.state=4250,this.definitionDeclaration(),this.state=4251,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}verificationCaseUsage(){let localContext=new VerificationCaseUsageContext(this.context,this.state);this.enterRule(localContext,830,_SysMLv2Parser.RULE_verificationCaseUsage);try{this.enterOuterAlt(localContext,1),this.state=4253,this.occurrenceUsagePrefix(),this.state=4254,this.match(_SysMLv2Parser.VERIFICATION),this.state=4255,this.constraintUsageDeclaration(),this.state=4256,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementVerificationMember(){let localContext=new RequirementVerificationMemberContext(this.context,this.state);this.enterRule(localContext,832,_SysMLv2Parser.RULE_requirementVerificationMember);try{this.enterOuterAlt(localContext,1),this.state=4258,this.memberPrefix(),this.state=4259,this.match(_SysMLv2Parser.VERIFY),this.state=4260,this.requirementVerificationUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementVerificationUsage(){let localContext=new RequirementVerificationUsageContext(this.context,this.state);this.enterRule(localContext,834,_SysMLv2Parser.RULE_requirementVerificationUsage);let _la;try{switch(this.state=4288,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1);{for(this.state=4262,this.ownedReferenceSubsetting(),this.state=4266,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===42||_la===47||(_la-125&-32)===0&&(1<<_la-125&8388617)!==0||(_la-158&-32)===0&&(1<<_la-158&1208352769)!==0||_la===204;)this.state=4263,this.featureSpecialization(),this.state=4268,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4269,this.requirementBody()}break;case _SysMLv2Parser.REQUIREMENT:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2);{switch(this.state=4283,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,477,this.context)){case 1:{for(this.state=4274,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4271,this.usageExtensionKeyword(),this.state=4276,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4277,this.match(_SysMLv2Parser.REQUIREMENT)}break;case 2:{this.state=4279,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4278,this.usageExtensionKeyword(),this.state=4281,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192)}break}this.state=4285,this.constraintUsageDeclaration(),this.state=4286,this.requirementBody()}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}useCaseDefinition(){let localContext=new UseCaseDefinitionContext(this.context,this.state);this.enterRule(localContext,836,_SysMLv2Parser.RULE_useCaseDefinition);try{this.enterOuterAlt(localContext,1),this.state=4290,this.occurrenceDefinitionPrefix(),this.state=4291,this.match(_SysMLv2Parser.USE),this.state=4292,this.match(_SysMLv2Parser.CASE),this.state=4293,this.match(_SysMLv2Parser.DEF),this.state=4294,this.definitionDeclaration(),this.state=4295,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}useCaseUsage(){let localContext=new UseCaseUsageContext(this.context,this.state);this.enterRule(localContext,838,_SysMLv2Parser.RULE_useCaseUsage);try{this.enterOuterAlt(localContext,1),this.state=4297,this.occurrenceUsagePrefix(),this.state=4298,this.match(_SysMLv2Parser.USE),this.state=4299,this.match(_SysMLv2Parser.CASE),this.state=4300,this.constraintUsageDeclaration(),this.state=4301,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}includeUseCaseUsage(){let localContext=new IncludeUseCaseUsageContext(this.context,this.state);this.enterRule(localContext,840,_SysMLv2Parser.RULE_includeUseCaseUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=4303,this.occurrenceUsagePrefix(),this.state=4304,this.match(_SysMLv2Parser.INCLUDE),this.state=4314,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=4305,this.ownedReferenceSubsetting(),this.state=4307,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4306,this.featureSpecializationPart());break;case _SysMLv2Parser.USE:this.state=4309,this.match(_SysMLv2Parser.USE),this.state=4310,this.match(_SysMLv2Parser.CASE),this.state=4312,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4311,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=4317,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4316,this.valuePart()),this.state=4319,this.caseBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewDefinition(){let localContext=new ViewDefinitionContext(this.context,this.state);this.enterRule(localContext,842,_SysMLv2Parser.RULE_viewDefinition);try{this.enterOuterAlt(localContext,1),this.state=4321,this.occurrenceDefinitionPrefix(),this.state=4322,this.match(_SysMLv2Parser.VIEW),this.state=4323,this.match(_SysMLv2Parser.DEF),this.state=4324,this.definitionDeclaration(),this.state=4325,this.viewDefinitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewDefinitionBody(){let localContext=new ViewDefinitionBodyContext(this.context,this.state);this.enterRule(localContext,844,_SysMLv2Parser.RULE_viewDefinitionBody);let _la;try{switch(this.state=4336,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4327,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4328,this.match(_SysMLv2Parser.LBRACE),this.state=4332,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238905)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-129&-32)===0&&(1<<_la-129&833122647)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4329,this.viewDefinitionBodyItem(),this.state=4334,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4335,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewDefinitionBodyItem(){let localContext=new ViewDefinitionBodyItemContext(this.context,this.state);this.enterRule(localContext,846,_SysMLv2Parser.RULE_viewDefinitionBodyItem);try{switch(this.state=4341,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,485,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4338,this.definitionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4339,this.elementFilterMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=4340,this.viewRenderingMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewRenderingMember(){let localContext=new ViewRenderingMemberContext(this.context,this.state);this.enterRule(localContext,848,_SysMLv2Parser.RULE_viewRenderingMember);try{this.enterOuterAlt(localContext,1),this.state=4343,this.memberPrefix(),this.state=4344,this.match(_SysMLv2Parser.RENDER),this.state=4345,this.viewRenderingUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewRenderingUsage(){let localContext=new ViewRenderingUsageContext(this.context,this.state);this.enterRule(localContext,850,_SysMLv2Parser.RULE_viewRenderingUsage);let _la;try{switch(this.state=4368,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=4347,this.ownedReferenceSubsetting(),this.state=4349,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4348,this.featureSpecializationPart()),this.state=4351,this.usageBody();break;case _SysMLv2Parser.RENDERING:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2);{switch(this.state=4365,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,489,this.context)){case 1:{for(this.state=4356,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4353,this.usageExtensionKeyword(),this.state=4358,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4359,this.match(_SysMLv2Parser.RENDERING)}break;case 2:{this.state=4361,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4360,this.usageExtensionKeyword(),this.state=4363,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192)}break}this.state=4367,this.usage()}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewUsage(){let localContext=new ViewUsageContext(this.context,this.state);this.enterRule(localContext,852,_SysMLv2Parser.RULE_viewUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=4370,this.occurrenceUsagePrefix(),this.state=4371,this.match(_SysMLv2Parser.VIEW),this.state=4373,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4372,this.usageDeclaration()),this.state=4376,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4375,this.valuePart()),this.state=4378,this.viewBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewBody(){let localContext=new ViewBodyContext(this.context,this.state);this.enterRule(localContext,854,_SysMLv2Parser.RULE_viewBody);let _la;try{switch(this.state=4389,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4380,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4381,this.match(_SysMLv2Parser.LBRACE),this.state=4385,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&1564722993)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238905)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-129&-32)===0&&(1<<_la-129&833122647)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4382,this.viewBodyItem(),this.state=4387,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4388,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewBodyItem(){let localContext=new ViewBodyItemContext(this.context,this.state);this.enterRule(localContext,856,_SysMLv2Parser.RULE_viewBodyItem);try{switch(this.state=4395,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,495,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4391,this.definitionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4392,this.elementFilterMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=4393,this.viewRenderingMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=4394,this.expose();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}expose(){let localContext=new ExposeContext(this.context,this.state);this.enterRule(localContext,858,_SysMLv2Parser.RULE_expose);try{this.enterOuterAlt(localContext,1);{switch(this.state=4397,this.match(_SysMLv2Parser.EXPOSE),this.state=4400,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,496,this.context)){case 1:this.state=4398,this.membershipExpose();break;case 2:this.state=4399,this.namespaceExpose();break}this.state=4402,this.relationshipBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}membershipExpose(){let localContext=new MembershipExposeContext(this.context,this.state);this.enterRule(localContext,860,_SysMLv2Parser.RULE_membershipExpose);try{this.enterOuterAlt(localContext,1),this.state=4404,this.membershipImport()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceExpose(){let localContext=new NamespaceExposeContext(this.context,this.state);this.enterRule(localContext,862,_SysMLv2Parser.RULE_namespaceExpose);try{this.enterOuterAlt(localContext,1),this.state=4406,this.namespaceImport()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewpointDefinition(){let localContext=new ViewpointDefinitionContext(this.context,this.state);this.enterRule(localContext,864,_SysMLv2Parser.RULE_viewpointDefinition);try{this.enterOuterAlt(localContext,1),this.state=4408,this.occurrenceDefinitionPrefix(),this.state=4409,this.match(_SysMLv2Parser.VIEWPOINT),this.state=4410,this.match(_SysMLv2Parser.DEF),this.state=4411,this.definitionDeclaration(),this.state=4412,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewpointUsage(){let localContext=new ViewpointUsageContext(this.context,this.state);this.enterRule(localContext,866,_SysMLv2Parser.RULE_viewpointUsage);try{this.enterOuterAlt(localContext,1),this.state=4414,this.occurrenceUsagePrefix(),this.state=4415,this.match(_SysMLv2Parser.VIEWPOINT),this.state=4416,this.constraintUsageDeclaration(),this.state=4417,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}renderingDefinition(){let localContext=new RenderingDefinitionContext(this.context,this.state);this.enterRule(localContext,868,_SysMLv2Parser.RULE_renderingDefinition);try{this.enterOuterAlt(localContext,1),this.state=4419,this.occurrenceDefinitionPrefix(),this.state=4420,this.match(_SysMLv2Parser.RENDERING),this.state=4421,this.match(_SysMLv2Parser.DEF),this.state=4422,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}renderingUsage(){let localContext=new RenderingUsageContext(this.context,this.state);this.enterRule(localContext,870,_SysMLv2Parser.RULE_renderingUsage);try{this.enterOuterAlt(localContext,1),this.state=4424,this.occurrenceUsagePrefix(),this.state=4425,this.match(_SysMLv2Parser.RENDERING),this.state=4426,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataDefinition(){let localContext=new MetadataDefinitionContext(this.context,this.state);this.enterRule(localContext,872,_SysMLv2Parser.RULE_metadataDefinition);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4429,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===2&&(this.state=4428,this.match(_SysMLv2Parser.ABSTRACT)),this.state=4434,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4431,this.definitionExtensionKeyword(),this.state=4436,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4437,this.match(_SysMLv2Parser.METADATA),this.state=4438,this.match(_SysMLv2Parser.DEF),this.state=4439,this.definition()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}prefixMetadataUsage(){let localContext=new PrefixMetadataUsageContext(this.context,this.state);this.enterRule(localContext,874,_SysMLv2Parser.RULE_prefixMetadataUsage);try{this.enterOuterAlt(localContext,1),this.state=4441,this.ownedFeatureTyping()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyUsageMember(){let localContext=new MetadataBodyUsageMemberContext(this.context,this.state);this.enterRule(localContext,876,_SysMLv2Parser.RULE_metadataBodyUsageMember);try{this.enterOuterAlt(localContext,1),this.state=4443,this.metadataBodyUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyUsage(){let localContext=new MetadataBodyUsageContext(this.context,this.state);this.enterRule(localContext,878,_SysMLv2Parser.RULE_metadataBodyUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=4446,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===127&&(this.state=4445,this.match(_SysMLv2Parser.REF)),this.state=4449,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===125||_la===176)&&(this.state=4448,_la=this.tokenStream.LA(1),_la===125||_la===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=4451,this.ownedRedefinition(),this.state=4453,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4452,this.featureSpecializationPart()),this.state=4456,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4455,this.valuePart()),this.state=4458,this.metadataBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}extendedDefinition(){let localContext=new ExtendedDefinitionContext(this.context,this.state);this.enterRule(localContext,880,_SysMLv2Parser.RULE_extendedDefinition);let _la;try{this.enterOuterAlt(localContext,1);{this.state=4461,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=4460,this.basicDefinitionPrefix()),this.state=4464,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4463,this.definitionExtensionKeyword(),this.state=4466,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192);this.state=4468,this.match(_SysMLv2Parser.DEF),this.state=4469,this.definition()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}extendedUsage(){let localContext=new ExtendedUsageContext(this.context,this.state);this.enterRule(localContext,882,_SysMLv2Parser.RULE_extendedUsage);let _la;try{this.enterOuterAlt(localContext,1);{this.state=4471,this.unextendedUsagePrefix(),this.state=4473,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4472,this.usageExtensionKeyword(),this.state=4475,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192);this.state=4477,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}filterPackageImportDeclaration(){let localContext=new FilterPackageImportDeclarationContext(this.context,this.state);this.enterRule(localContext,884,_SysMLv2Parser.RULE_filterPackageImportDeclaration);try{switch(this.state=4481,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,506,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4479,this.membershipImport();break;case 2:this.enterOuterAlt(localContext,2),this.state=4480,this.namespaceImportDirect();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceImportDirect(){let localContext=new NamespaceImportDirectContext(this.context,this.state);this.enterRule(localContext,886,_SysMLv2Parser.RULE_namespaceImportDirect);let _la;try{this.enterOuterAlt(localContext,1),this.state=4483,this.qualifiedName(),this.state=4484,this.match(_SysMLv2Parser.COLON_COLON),this.state=4485,this.match(_SysMLv2Parser.STAR),this.state=4488,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===183&&(this.state=4486,this.match(_SysMLv2Parser.COLON_COLON),this.state=4487,this.match(_SysMLv2Parser.STAR_STAR))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationUsageDeclaration(){let localContext=new CalculationUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,888,_SysMLv2Parser.RULE_calculationUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=4491,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4490,this.usageDeclaration()),this.state=4494,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4493,this.valuePart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyActionUsage_(){let localContext=new EmptyActionUsage_Context(this.context,this.state);this.enterRule(localContext,890,_SysMLv2Parser.RULE_emptyActionUsage_);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyFeature_(){let localContext=new EmptyFeature_Context(this.context,this.state);this.enterRule(localContext,892,_SysMLv2Parser.RULE_emptyFeature_);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyMultiplicity_(){let localContext=new EmptyMultiplicity_Context(this.context,this.state);this.enterRule(localContext,894,_SysMLv2Parser.RULE_emptyMultiplicity_);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyUsage_(){let localContext=new EmptyUsage_Context(this.context,this.state);this.enterRule(localContext,896,_SysMLv2Parser.RULE_emptyUsage_);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}filterPackageImport(){let localContext=new FilterPackageImportContext(this.context,this.state);this.enterRule(localContext,898,_SysMLv2Parser.RULE_filterPackageImport);try{this.enterOuterAlt(localContext,1),this.state=4504,this.match(_SysMLv2Parser.IDENTIFIER)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonFeatureChainPrimaryExpression(){let localContext=new NonFeatureChainPrimaryExpressionContext(this.context,this.state);this.enterRule(localContext,900,_SysMLv2Parser.RULE_nonFeatureChainPrimaryExpression);try{this.enterOuterAlt(localContext,1),this.state=4506,this.match(_SysMLv2Parser.IDENTIFIER)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portConjugation(){let localContext=new PortConjugationContext(this.context,this.state);this.enterRule(localContext,902,_SysMLv2Parser.RULE_portConjugation);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sempred(localContext,ruleIndex,predIndex){return ruleIndex===0?this.ownedExpression_sempred(localContext,predIndex):!0}ownedExpression_sempred(localContext,predIndex){switch(predIndex){case 0:return this.precpred(this.context,27);case 1:return this.precpred(this.context,26);case 2:return this.precpred(this.context,25);case 3:return this.precpred(this.context,24);case 4:return this.precpred(this.context,23);case 5:return this.precpred(this.context,22);case 6:return this.precpred(this.context,21);case 7:return this.precpred(this.context,20);case 8:return this.precpred(this.context,19);case 9:return this.precpred(this.context,18);case 10:return this.precpred(this.context,17);case 11:return this.precpred(this.context,16);case 12:return this.precpred(this.context,15);case 13:return this.precpred(this.context,12);case 14:return this.precpred(this.context,11);case 15:return this.precpred(this.context,10);case 16:return this.precpred(this.context,9);case 17:return this.precpred(this.context,8);case 18:return this.precpred(this.context,7);case 19:return this.precpred(this.context,6);case 20:return this.precpred(this.context,5);case 21:return this.precpred(this.context,4);case 22:return this.precpred(this.context,3)}return!0}static _serializedATN=[4,1,226,4511,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375,7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381,7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387,7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393,7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399,7,399,2,400,7,400,2,401,7,401,2,402,7,402,2,403,7,403,2,404,7,404,2,405,7,405,2,406,7,406,2,407,7,407,2,408,7,408,2,409,7,409,2,410,7,410,2,411,7,411,2,412,7,412,2,413,7,413,2,414,7,414,2,415,7,415,2,416,7,416,2,417,7,417,2,418,7,418,2,419,7,419,2,420,7,420,2,421,7,421,2,422,7,422,2,423,7,423,2,424,7,424,2,425,7,425,2,426,7,426,2,427,7,427,2,428,7,428,2,429,7,429,2,430,7,430,2,431,7,431,2,432,7,432,2,433,7,433,2,434,7,434,2,435,7,435,2,436,7,436,2,437,7,437,2,438,7,438,2,439,7,439,2,440,7,440,2,441,7,441,2,442,7,442,2,443,7,443,2,444,7,444,2,445,7,445,2,446,7,446,2,447,7,447,2,448,7,448,2,449,7,449,2,450,7,450,2,451,7,451,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,920,8,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,976,8,0,1,0,1,0,1,0,1,0,1,0,3,0,983,8,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,999,8,0,5,0,1001,8,0,10,0,12,0,1004,9,0,1,1,1,1,1,2,1,2,1,2,5,2,1011,8,2,10,2,12,2,1014,9,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,1023,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,1034,8,3,1,3,3,3,1037,8,3,1,4,1,4,1,4,3,4,1042,8,4,1,5,1,5,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,3,8,1057,8,8,1,8,1,8,1,9,1,9,1,9,5,9,1064,8,9,10,9,12,9,1067,9,9,1,10,1,10,1,10,5,10,1072,8,10,10,10,12,10,1075,9,10,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,3,12,1086,8,12,1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,17,1,17,1,18,1,18,1,19,1,19,1,20,1,20,1,20,3,20,1105,8,20,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,3,22,1119,8,22,1,23,1,23,1,23,5,23,1124,8,23,10,23,12,23,1127,9,23,1,23,1,23,1,23,5,23,1132,8,23,10,23,12,23,1135,9,23,1,23,3,23,1138,8,23,1,24,1,24,3,24,1142,8,24,1,25,1,25,3,25,1146,8,25,1,26,5,26,1149,8,26,10,26,12,26,1152,9,26,1,26,1,26,3,26,1156,8,26,1,26,3,26,1159,8,26,1,26,1,26,1,26,5,26,1164,8,26,10,26,12,26,1167,9,26,1,26,1,26,1,26,1,26,5,26,1173,8,26,10,26,12,26,1176,9,26,1,26,1,26,1,26,5,26,1181,8,26,10,26,12,26,1184,9,26,1,26,1,26,1,26,1,26,3,26,1190,8,26,1,27,1,27,1,28,1,28,1,29,1,29,1,29,1,29,3,29,1200,8,29,1,30,1,30,3,30,1204,8,30,1,30,1,30,1,30,1,30,5,30,1210,8,30,10,30,12,30,1213,9,30,3,30,1215,8,30,3,30,1217,8,30,1,30,1,30,3,30,1221,8,30,1,30,1,30,1,31,1,31,3,31,1227,8,31,1,31,1,31,3,31,1231,8,31,1,31,1,31,1,32,1,32,3,32,1237,8,32,3,32,1239,8,32,1,32,1,32,1,32,1,32,1,33,5,33,1246,8,33,10,33,12,33,1249,9,33,1,33,1,33,1,34,5,34,1254,8,34,10,34,12,34,1257,9,34,1,34,1,34,1,34,1,35,1,35,3,35,1264,8,35,1,36,1,36,1,36,5,36,1269,8,36,10,36,12,36,1272,9,36,1,36,3,36,1275,8,36,1,37,1,37,1,37,3,37,1280,8,37,1,38,3,38,1283,8,38,1,39,1,39,1,40,1,40,3,40,1289,8,40,1,41,1,41,1,41,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,3,43,1303,8,43,1,43,3,43,1306,8,43,1,43,1,43,1,43,1,43,1,44,1,44,3,44,1314,8,44,1,44,1,44,1,44,5,44,1319,8,44,10,44,12,44,1322,9,44,1,44,1,44,1,45,3,45,1327,8,45,1,45,1,45,3,45,1331,8,45,1,45,1,45,1,45,1,46,1,46,3,46,1338,8,46,1,47,1,47,1,47,3,47,1343,8,47,1,48,1,48,1,48,1,48,1,48,3,48,1350,8,48,1,48,3,48,1353,8,48,1,49,1,49,4,49,1357,8,49,11,49,12,49,1358,1,49,1,49,4,49,1363,8,49,11,49,12,49,1364,3,49,1367,8,49,1,50,1,50,1,50,1,50,1,51,1,51,3,51,1375,8,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,3,52,1403,8,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,3,53,1415,8,53,1,54,1,54,1,54,1,54,1,54,1,55,3,55,1423,8,55,1,55,5,55,1426,8,55,10,55,12,55,1429,9,55,1,56,3,56,1432,8,56,1,56,3,56,1435,8,56,1,56,3,56,1438,8,56,1,56,1,56,4,56,1442,8,56,11,56,12,56,1443,1,56,5,56,1447,8,56,10,56,12,56,1450,9,56,1,57,1,57,1,57,1,57,5,57,1456,8,57,10,57,12,57,1459,9,57,1,58,1,58,1,58,1,59,1,59,1,59,1,59,3,59,1468,8,59,1,60,1,60,1,60,1,60,1,60,5,60,1475,8,60,10,60,12,60,1478,9,60,1,61,1,61,1,61,1,61,5,61,1484,8,61,10,61,12,61,1487,9,61,1,62,1,62,1,62,1,62,5,62,1493,8,62,10,62,12,62,1496,9,62,1,63,1,63,1,63,1,63,5,63,1502,8,63,10,63,12,63,1505,9,63,1,64,1,64,1,64,5,64,1510,8,64,10,64,12,64,1513,9,64,1,64,3,64,1516,8,64,1,65,1,65,1,65,1,65,3,65,1522,8,65,1,66,1,66,3,66,1526,8,66,3,66,1528,8,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,68,1,68,1,68,5,68,1541,8,68,10,68,12,68,1544,9,68,1,69,1,69,1,69,5,69,1549,8,69,10,69,12,69,1552,9,69,1,70,1,70,3,70,1556,8,70,3,70,1558,8,70,1,70,1,70,1,70,1,70,5,70,1564,8,70,10,70,12,70,1567,9,70,1,70,1,70,1,70,1,70,5,70,1573,8,70,10,70,12,70,1576,9,70,1,70,1,70,1,71,1,71,1,71,5,71,1583,8,71,10,71,12,71,1586,9,71,1,72,1,72,3,72,1590,8,72,3,72,1592,8,72,1,72,1,72,1,72,1,72,5,72,1598,8,72,10,72,12,72,1601,9,72,1,72,1,72,1,72,1,72,5,72,1607,8,72,10,72,12,72,1610,9,72,1,72,1,72,1,73,1,73,1,73,5,73,1617,8,73,10,73,12,73,1620,9,73,1,74,1,74,1,74,5,74,1625,8,74,10,74,12,74,1628,9,74,1,75,1,75,1,75,5,75,1633,8,75,10,75,12,75,1636,9,75,1,76,1,76,1,76,5,76,1641,8,76,10,76,12,76,1644,9,76,1,77,1,77,3,77,1648,8,77,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,81,3,81,1663,8,81,1,81,3,81,1666,8,81,1,81,3,81,1669,8,81,1,81,1,81,3,81,1673,8,81,1,81,5,81,1676,8,81,10,81,12,81,1679,9,81,1,82,1,82,1,82,1,82,5,82,1685,8,82,10,82,12,82,1688,9,82,1,83,1,83,3,83,1692,8,83,3,83,1694,8,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,85,1,85,1,85,3,85,1707,8,85,1,85,3,85,1710,8,85,1,85,1,85,3,85,1714,8,85,1,85,3,85,1717,8,85,1,85,1,85,3,85,1721,8,85,1,85,3,85,1724,8,85,1,85,1,85,1,86,3,86,1729,8,86,1,86,1,86,1,87,3,87,1734,8,87,1,87,3,87,1737,8,87,1,87,3,87,1740,8,87,1,87,3,87,1743,8,87,1,87,3,87,1746,8,87,1,88,1,88,1,88,1,88,3,88,1752,8,88,1,88,5,88,1755,8,88,10,88,12,88,1758,9,88,1,89,1,89,1,90,1,90,1,90,1,90,1,90,3,90,1767,8,90,3,90,1769,8,90,1,91,1,91,1,92,3,92,1774,8,92,1,92,1,92,1,92,3,92,1779,8,92,1,92,1,92,3,92,1783,8,92,1,92,5,92,1786,8,92,10,92,12,92,1789,9,92,1,93,1,93,1,93,1,93,3,93,1795,8,93,1,93,3,93,1798,8,93,1,94,1,94,1,94,1,94,3,94,1804,8,94,1,95,1,95,1,95,1,95,5,95,1810,8,95,10,95,12,95,1813,9,95,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,5,97,1824,8,97,10,97,12,97,1827,9,97,1,98,4,98,1830,8,98,11,98,12,98,1831,1,98,3,98,1835,8,98,1,98,5,98,1838,8,98,10,98,12,98,1841,9,98,1,98,1,98,5,98,1845,8,98,10,98,12,98,1848,9,98,3,98,1850,8,98,1,99,1,99,1,99,3,99,1855,8,99,1,99,1,99,3,99,1859,8,99,3,99,1861,8,99,1,99,1,99,3,99,1865,8,99,1,99,1,99,3,99,1869,8,99,3,99,1871,8,99,3,99,1873,8,99,1,100,1,100,1,100,1,100,1,100,3,100,1880,8,100,1,101,1,101,1,101,5,101,1885,8,101,10,101,12,101,1888,9,101,1,102,1,102,1,102,1,102,1,102,3,102,1895,8,102,1,102,1,102,1,103,1,103,1,103,5,103,1902,8,103,10,103,12,103,1905,9,103,1,104,1,104,1,104,1,105,1,105,1,105,1,106,1,106,1,106,1,107,1,107,1,107,5,107,1919,8,107,10,107,12,107,1922,9,107,1,108,1,108,1,108,1,109,1,109,3,109,1929,8,109,3,109,1931,8,109,1,109,1,109,1,109,1,109,1,109,3,109,1938,8,109,1,109,1,109,1,109,1,109,1,109,3,109,1945,8,109,1,110,1,110,1,110,5,110,1950,8,110,10,110,12,110,1953,9,110,1,111,1,111,3,111,1957,8,111,3,111,1959,8,111,1,111,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,5,112,1970,8,112,10,112,12,112,1973,9,112,1,113,1,113,1,113,5,113,1978,8,113,10,113,12,113,1981,9,113,1,114,1,114,1,114,5,114,1986,8,114,10,114,12,114,1989,9,114,1,115,1,115,3,115,1993,8,115,3,115,1995,8,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,5,116,2006,8,116,10,116,12,116,2009,9,116,1,117,1,117,3,117,2013,8,117,3,117,2015,8,117,1,117,1,117,1,117,1,117,5,117,2021,8,117,10,117,12,117,2024,9,117,1,117,1,117,1,117,1,117,5,117,2030,8,117,10,117,12,117,2033,9,117,1,117,1,117,1,118,1,118,1,118,5,118,2040,8,118,10,118,12,118,2043,9,118,1,119,1,119,3,119,2047,8,119,1,119,3,119,2050,8,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,3,126,2088,8,126,1,126,3,126,2091,8,126,1,126,3,126,2094,8,126,1,126,1,126,1,127,1,127,3,127,2100,8,127,1,128,3,128,2103,8,128,1,128,1,128,1,128,3,128,2108,8,128,3,128,2110,8,128,1,128,1,128,1,128,1,128,1,129,3,129,2117,8,129,1,129,1,129,1,129,1,129,1,129,1,129,5,129,2125,8,129,10,129,12,129,2128,9,129,1,129,1,129,1,130,1,130,1,131,3,131,2135,8,131,1,131,1,131,1,131,3,131,2140,8,131,1,131,1,131,1,132,1,132,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,3,135,2159,8,135,1,135,3,135,2162,8,135,1,135,3,135,2165,8,135,1,135,1,135,1,135,1,135,3,135,2171,8,135,3,135,2173,8,135,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,3,137,2186,8,137,1,137,3,137,2189,8,137,1,137,3,137,2192,8,137,1,137,1,137,1,137,1,137,3,137,2198,8,137,3,137,2200,8,137,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,3,139,2211,8,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,3,141,2225,8,141,1,142,1,142,1,142,5,142,2230,8,142,10,142,12,142,2233,9,142,1,142,3,142,2236,8,142,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,145,1,145,1,145,1,145,3,145,2249,8,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,3,147,2262,8,147,1,147,1,147,1,148,1,148,1,148,3,148,2269,8,148,1,148,1,148,3,148,2273,8,148,1,148,1,148,1,149,1,149,1,149,5,149,2280,8,149,10,149,12,149,2283,9,149,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,3,153,2303,8,153,1,153,1,153,3,153,2307,8,153,1,153,1,153,1,153,1,153,1,153,3,153,2314,8,153,1,153,3,153,2317,8,153,1,153,1,153,1,153,1,153,1,153,3,153,2324,8,153,1,153,3,153,2327,8,153,1,153,1,153,3,153,2331,8,153,1,153,1,153,1,153,1,153,1,153,3,153,2338,8,153,3,153,2340,8,153,1,154,1,154,1,155,3,155,2345,8,155,1,155,1,155,3,155,2349,8,155,1,155,1,155,3,155,2353,8,155,1,155,1,155,3,155,2357,8,155,1,155,1,155,3,155,2361,8,155,3,155,2363,8,155,1,156,4,156,2366,8,156,11,156,12,156,2367,1,156,3,156,2371,8,156,1,156,5,156,2374,8,156,10,156,12,156,2377,9,156,1,156,1,156,4,156,2381,8,156,11,156,12,156,2382,3,156,2385,8,156,1,157,1,157,1,158,1,158,1,158,5,158,2392,8,158,10,158,12,158,2395,9,158,1,159,1,159,1,160,1,160,1,160,1,160,3,160,2403,8,160,3,160,2405,8,160,1,160,1,160,1,161,1,161,3,161,2411,8,161,1,162,1,162,3,162,2415,8,162,1,162,1,162,1,162,1,163,1,163,3,163,2422,8,163,1,163,1,163,1,163,1,164,1,164,1,165,1,165,1,166,1,166,1,166,1,166,3,166,2435,8,166,1,166,1,166,1,166,1,167,1,167,3,167,2442,8,167,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,3,169,2453,8,169,1,170,1,170,1,170,1,170,3,170,2459,8,170,1,171,1,171,1,172,5,172,2464,8,172,10,172,12,172,2467,9,172,1,172,1,172,1,172,1,172,1,172,1,172,5,172,2475,8,172,10,172,12,172,2478,9,172,3,172,2480,8,172,1,172,1,172,1,173,3,173,2485,8,173,1,173,1,173,1,173,3,173,2490,8,173,3,173,2492,8,173,1,173,1,173,1,174,1,174,1,174,5,174,2499,8,174,10,174,12,174,2502,9,174,1,174,1,174,1,174,1,174,1,174,1,174,5,174,2510,8,174,10,174,12,174,2513,9,174,1,174,3,174,2516,8,174,1,175,1,175,1,175,1,175,3,175,2522,8,175,1,176,1,176,1,177,3,177,2527,8,177,1,177,3,177,2530,8,177,1,177,1,177,3,177,2534,8,177,1,177,3,177,2537,8,177,1,177,1,177,1,178,5,178,2542,8,178,10,178,12,178,2545,9,178,1,178,1,178,1,178,1,179,3,179,2551,8,179,1,179,1,179,5,179,2555,8,179,10,179,12,179,2558,9,179,1,179,1,179,1,179,1,180,1,180,3,180,2565,8,180,1,181,1,181,1,181,5,181,2570,8,181,10,181,12,181,2573,9,181,1,181,3,181,2576,8,181,1,182,1,182,1,182,1,182,1,182,1,183,3,183,2584,8,183,1,183,3,183,2587,8,183,1,183,1,183,1,183,5,183,2592,8,183,10,183,12,183,2595,9,183,1,183,1,183,1,183,1,183,5,183,2601,8,183,10,183,12,183,2604,9,183,1,184,1,184,1,185,1,185,1,185,1,185,3,185,2612,8,185,1,186,1,186,1,186,3,186,2617,8,186,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,3,187,2649,8,187,1,188,1,188,3,188,2653,8,188,1,189,1,189,1,190,1,190,1,191,3,191,2660,8,191,1,191,5,191,2663,8,191,10,191,12,191,2666,9,191,1,192,1,192,1,192,1,193,3,193,2672,8,193,1,193,3,193,2675,8,193,1,194,1,194,1,194,5,194,2680,8,194,10,194,12,194,2683,9,194,1,194,3,194,2686,8,194,1,195,1,195,1,195,1,195,1,195,3,195,2693,8,195,1,195,1,195,1,195,1,195,3,195,2699,8,195,1,195,1,195,1,195,3,195,2704,8,195,1,196,1,196,1,196,1,196,1,196,3,196,2711,8,196,1,196,3,196,2714,8,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,3,196,2724,8,196,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,199,1,199,1,199,1,200,1,200,1,200,1,201,1,201,1,201,1,202,3,202,2743,8,202,1,202,3,202,2746,8,202,1,202,3,202,2749,8,202,1,202,3,202,2752,8,202,1,203,1,203,3,203,2756,8,203,1,204,1,204,1,204,1,205,1,205,1,206,1,206,3,206,2765,8,206,1,207,1,207,5,207,2769,8,207,10,207,12,207,2772,9,207,1,208,3,208,2775,8,208,1,208,1,208,1,209,1,209,3,209,2781,8,209,1,209,3,209,2784,8,209,1,210,3,210,2787,8,210,1,210,1,210,1,211,1,211,1,212,1,212,1,212,1,213,1,213,3,213,2798,8,213,1,213,1,213,1,213,1,214,1,214,1,214,1,214,1,215,1,215,5,215,2809,8,215,10,215,12,215,2812,9,215,1,215,1,215,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,3,216,2824,8,216,1,217,1,217,3,217,2828,8,217,1,217,3,217,2831,8,217,1,217,3,217,2834,8,217,1,217,1,217,1,218,1,218,3,218,2840,8,218,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,3,219,2857,8,219,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,3,220,2875,8,220,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,3,221,2898,8,221,1,222,1,222,1,222,1,222,5,222,2904,8,222,10,222,12,222,2907,9,222,1,223,1,223,1,223,1,223,1,223,1,224,1,224,1,224,1,224,1,225,5,225,2919,8,225,10,225,12,225,2922,9,225,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1,226,1,226,5,226,2933,8,226,10,226,12,226,2936,9,226,1,226,3,226,2939,8,226,1,227,5,227,2942,8,227,10,227,12,227,2945,9,227,1,227,1,227,1,227,1,228,3,228,2951,8,228,1,228,1,228,1,229,1,229,1,229,1,229,1,230,3,230,2960,8,230,1,230,1,230,3,230,2964,8,230,1,230,5,230,2967,8,230,10,230,12,230,2970,9,230,1,231,1,231,1,231,1,231,1,231,1,232,3,232,2978,8,232,1,232,1,232,5,232,2982,8,232,10,232,12,232,2985,9,232,1,232,1,232,1,232,1,232,1,233,1,233,1,234,1,234,3,234,2995,8,234,1,234,3,234,2998,8,234,1,234,5,234,3001,8,234,10,234,12,234,3004,9,234,1,235,1,235,1,235,1,235,1,236,1,236,1,236,5,236,3013,8,236,10,236,12,236,3016,9,236,1,236,1,236,1,237,1,237,3,237,3022,8,237,1,237,1,237,5,237,3026,8,237,10,237,12,237,3029,9,237,1,237,1,237,1,238,1,238,1,239,1,239,1,239,1,239,3,239,3039,8,239,1,239,1,239,3,239,3043,8,239,3,239,3045,8,239,1,239,1,239,1,240,1,240,1,240,1,241,1,241,1,242,1,242,1,243,3,243,3057,8,243,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1,248,1,249,1,249,1,250,1,250,1,251,1,251,1,251,1,251,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1,253,1,254,1,254,1,254,3,254,3102,8,254,1,254,3,254,3105,8,254,1,254,1,254,3,254,3109,8,254,1,254,1,254,3,254,3113,8,254,1,254,1,254,1,255,1,255,3,255,3119,8,255,1,256,1,256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,5,257,3131,8,257,10,257,12,257,3134,9,257,1,257,1,257,1,258,1,258,1,258,3,258,3141,8,258,3,258,3143,8,258,1,258,1,258,1,258,1,258,1,258,1,258,1,259,1,259,1,259,3,259,3154,8,259,3,259,3156,8,259,1,259,1,259,1,259,1,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,1,260,1,261,1,261,1,261,5,261,3173,8,261,10,261,12,261,3176,9,261,1,261,3,261,3179,8,261,1,262,1,262,1,262,1,262,3,262,3185,8,262,1,262,1,262,1,262,3,262,3190,8,262,1,263,1,263,1,263,1,264,1,264,1,264,1,264,1,264,3,264,3200,8,264,1,265,1,265,1,265,1,266,1,266,1,266,1,266,3,266,3209,8,266,1,267,1,267,1,267,1,268,1,268,1,268,1,268,1,268,1,269,3,269,3220,8,269,1,269,3,269,3223,8,269,1,269,1,269,3,269,3227,8,269,1,269,3,269,3230,8,269,1,270,1,270,3,270,3234,8,270,1,271,1,271,1,271,1,271,1,272,1,272,1,272,1,272,1,272,1,272,5,272,3246,8,272,10,272,12,272,3249,9,272,1,272,1,272,1,273,1,273,1,274,3,274,3256,8,274,1,274,1,274,1,274,3,274,3261,8,274,1,274,1,274,1,275,1,275,1,275,1,275,1,275,1,276,1,276,1,276,1,276,1,277,1,277,3,277,3276,8,277,1,277,1,277,3,277,3280,8,277,1,277,1,277,3,277,3284,8,277,1,278,1,278,1,278,1,278,1,278,1,279,1,279,1,279,1,279,1,279,1,280,3,280,3297,8,280,1,280,3,280,3300,8,280,1,280,1,280,3,280,3304,8,280,1,280,1,280,1,280,1,280,1,280,3,280,3311,8,280,1,280,1,280,1,280,1,280,3,280,3317,8,280,1,281,1,281,1,282,1,282,1,283,1,283,1,283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,286,1,286,1,287,1,287,1,287,1,287,1,287,1,287,1,288,1,288,1,288,5,288,3347,8,288,10,288,12,288,3350,9,288,1,288,3,288,3353,8,288,1,289,1,289,1,289,5,289,3358,8,289,10,289,12,289,3361,9,289,1,289,3,289,3364,8,289,1,289,1,289,5,289,3368,8,289,10,289,12,289,3371,9,289,1,289,3,289,3374,8,289,1,290,1,290,1,290,1,290,1,290,1,290,3,290,3382,8,290,1,290,3,290,3385,8,290,1,291,1,291,3,291,3389,8,291,1,292,1,292,1,292,1,292,1,292,1,293,1,293,1,293,1,294,1,294,1,294,1,295,1,295,1,295,1,296,1,296,1,296,1,296,1,296,1,297,3,297,3411,8,297,1,297,3,297,3414,8,297,1,298,1,298,1,298,1,298,1,298,1,299,1,299,3,299,3423,8,299,1,299,1,299,3,299,3427,8,299,3,299,3429,8,299,1,299,3,299,3432,8,299,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,300,3,300,3442,8,300,1,301,1,301,3,301,3446,8,301,1,302,1,302,3,302,3450,8,302,1,303,1,303,1,303,1,303,3,303,3456,8,303,1,304,1,304,3,304,3460,8,304,1,304,3,304,3463,8,304,1,304,5,304,3466,8,304,10,304,12,304,3469,9,304,1,305,1,305,1,305,3,305,3474,8,305,1,305,1,305,1,306,1,306,1,306,3,306,3481,8,306,1,306,1,306,1,307,1,307,1,307,3,307,3488,8,307,1,307,1,307,1,308,1,308,1,308,3,308,3495,8,308,1,308,1,308,1,309,1,309,1,309,1,309,1,310,3,310,3504,8,310,1,310,1,310,1,310,1,311,1,311,1,311,3,311,3512,8,311,1,312,1,312,1,313,1,313,3,313,3518,8,313,1,313,3,313,3521,8,313,1,313,3,313,3524,8,313,1,314,1,314,1,315,1,315,1,316,1,316,1,316,1,316,3,316,3534,8,316,1,317,1,317,1,317,3,317,3539,8,317,1,317,1,317,1,317,3,317,3544,8,317,1,317,1,317,3,317,3548,8,317,3,317,3550,8,317,1,317,1,317,1,318,3,318,3555,8,318,1,318,1,318,1,318,3,318,3560,8,318,1,319,1,319,1,319,1,319,3,319,3566,8,319,1,319,1,319,1,319,1,319,3,319,3572,8,319,1,320,1,320,1,321,1,321,1,322,1,322,1,323,1,323,1,324,1,324,1,324,1,324,1,325,3,325,3587,8,325,1,325,1,325,1,325,1,325,1,325,1,325,1,326,1,326,1,327,1,327,1,327,3,327,3600,8,327,1,328,1,328,1,329,1,329,3,329,3606,8,329,1,329,1,329,3,329,3610,8,329,1,329,1,329,1,330,1,330,1,330,1,330,1,330,1,330,1,330,3,330,3621,8,330,3,330,3623,8,330,1,331,1,331,1,332,1,332,1,333,1,333,3,333,3631,8,333,3,333,3633,8,333,1,333,1,333,5,333,3637,8,333,10,333,12,333,3640,9,333,1,333,1,333,1,334,1,334,1,335,1,335,1,335,1,335,1,335,3,335,3651,8,335,1,335,1,335,1,335,1,335,1,335,3,335,3658,8,335,1,336,1,336,1,336,1,336,1,336,1,336,1,336,1,337,3,337,3668,8,337,1,338,1,338,1,338,3,338,3673,8,338,1,338,1,338,1,339,1,339,1,339,1,339,1,340,1,340,1,340,1,340,1,341,1,341,1,341,1,342,1,342,3,342,3690,8,342,3,342,3692,8,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,343,1,343,1,343,1,343,1,343,1,343,1,344,1,344,3,344,3709,8,344,1,344,1,344,5,344,3713,8,344,10,344,12,344,3716,9,344,1,344,3,344,3719,8,344,1,345,1,345,3,345,3723,8,345,1,345,1,345,5,345,3727,8,345,10,345,12,345,3730,9,345,1,345,1,345,1,345,5,345,3735,8,345,10,345,12,345,3738,9,345,1,345,1,345,3,345,3742,8,345,1,346,1,346,1,346,1,346,1,347,1,347,1,347,1,347,1,348,1,348,1,348,1,348,1,349,1,349,1,349,1,349,3,349,3760,8,349,1,349,1,349,1,350,1,350,1,350,1,350,1,350,1,350,1,350,3,350,3771,8,350,1,351,1,351,1,351,1,352,1,352,1,352,1,353,1,353,1,353,1,354,1,354,1,354,1,355,1,355,1,355,1,356,1,356,1,356,1,357,1,357,1,357,1,357,1,357,1,358,1,358,3,358,3798,8,358,1,358,1,358,5,358,3802,8,358,10,358,12,358,3805,9,358,1,358,3,358,3808,8,358,1,359,1,359,1,359,1,359,3,359,3814,8,359,1,359,1,359,3,359,3818,8,359,3,359,3820,8,359,1,359,3,359,3823,8,359,1,359,1,359,1,360,1,360,3,360,3829,8,360,1,360,3,360,3832,8,360,1,360,1,360,1,360,1,360,1,360,3,360,3839,8,360,1,360,3,360,3842,8,360,1,360,3,360,3845,8,360,1,360,1,360,1,360,1,360,1,361,1,361,1,361,1,361,1,361,3,361,3856,8,361,1,361,3,361,3859,8,361,1,361,3,361,3862,8,361,1,361,1,361,1,361,3,361,3867,8,361,1,361,3,361,3870,8,361,1,361,1,361,3,361,3874,8,361,3,361,3876,8,361,1,361,1,361,1,361,1,361,1,362,1,362,1,362,1,363,1,363,1,364,1,364,1,364,1,365,1,365,1,365,1,366,1,366,1,366,1,366,1,366,3,366,3898,8,366,1,367,1,367,1,367,5,367,3903,8,367,10,367,12,367,3906,9,367,1,367,3,367,3909,8,367,1,368,1,368,1,368,5,368,3914,8,368,10,368,12,368,3917,9,368,1,368,3,368,3920,8,368,1,369,1,369,1,369,5,369,3925,8,369,10,369,12,369,3928,9,369,1,369,3,369,3931,8,369,1,370,1,370,1,370,5,370,3936,8,370,10,370,12,370,3939,9,370,1,370,3,370,3942,8,370,1,371,1,371,1,372,1,372,1,372,1,373,1,373,1,374,1,374,1,374,1,374,1,374,1,374,1,375,1,375,1,375,1,375,1,375,1,376,1,376,1,376,1,376,1,376,3,376,3967,8,376,1,377,5,377,3970,8,377,10,377,12,377,3973,9,377,1,377,3,377,3976,8,377,1,378,1,378,3,378,3980,8,378,1,379,1,379,1,379,1,379,1,380,1,380,1,380,1,380,1,380,1,380,1,381,1,381,1,381,1,381,1,381,1,382,1,382,1,382,3,382,4e3,8,382,1,382,1,382,3,382,4004,8,382,1,382,1,382,3,382,4008,8,382,1,382,1,382,1,383,3,383,4013,8,383,1,383,3,383,4016,8,383,1,384,1,384,1,384,1,384,1,384,1,384,1,385,1,385,1,385,5,385,4027,8,385,10,385,12,385,4030,9,385,1,385,3,385,4033,8,385,1,386,1,386,1,386,1,386,1,386,1,386,1,386,3,386,4042,8,386,1,387,1,387,1,387,1,388,1,388,5,388,4049,8,388,10,388,12,388,4052,9,388,1,388,1,388,1,389,1,389,1,389,1,389,1,390,1,390,1,391,1,391,3,391,4064,8,391,1,391,1,391,1,391,5,391,4069,8,391,10,391,12,391,4072,9,391,1,391,1,391,4,391,4076,8,391,11,391,12,391,4077,3,391,4080,8,391,1,391,1,391,1,391,3,391,4085,8,391,1,392,1,392,1,392,1,392,1,393,1,393,3,393,4093,8,393,1,393,1,393,1,393,5,393,4098,8,393,10,393,12,393,4101,9,393,1,393,1,393,4,393,4105,8,393,11,393,12,393,4106,3,393,4109,8,393,1,393,1,393,1,393,3,393,4114,8,393,1,394,1,394,1,394,1,395,1,395,5,395,4121,8,395,10,395,12,395,4124,9,395,1,395,1,395,1,396,1,396,1,396,1,397,1,397,5,397,4133,8,397,10,397,12,397,4136,9,397,1,397,1,397,1,398,1,398,1,398,1,398,1,398,1,399,1,399,1,399,3,399,4148,8,399,1,399,3,399,4151,8,399,1,399,1,399,1,399,3,399,4156,8,399,1,399,1,399,3,399,4160,8,399,3,399,4162,8,399,1,399,3,399,4165,8,399,1,399,1,399,3,399,4169,8,399,1,399,1,399,1,400,1,400,1,401,1,401,1,402,1,402,1,403,1,403,1,404,1,404,1,404,1,404,1,404,1,404,1,405,1,405,1,405,1,405,1,405,1,406,1,406,1,406,1,406,1,406,1,406,1,407,1,407,1,407,1,407,1,407,1,408,1,408,1,408,5,408,4206,8,408,10,408,12,408,4209,9,408,1,408,3,408,4212,8,408,1,408,3,408,4215,8,408,1,409,1,409,1,409,1,409,1,409,3,409,4222,8,409,1,410,1,410,1,410,1,410,1,411,5,411,4229,8,411,10,411,12,411,4232,9,411,1,411,1,411,1,411,1,412,1,412,1,412,1,412,1,412,1,412,1,413,1,413,1,413,1,413,1,413,1,414,1,414,1,414,1,414,1,414,1,414,1,415,1,415,1,415,1,415,1,415,1,416,1,416,1,416,1,416,1,417,1,417,5,417,4265,8,417,10,417,12,417,4268,9,417,1,417,1,417,1,417,5,417,4273,8,417,10,417,12,417,4276,9,417,1,417,1,417,4,417,4280,8,417,11,417,12,417,4281,3,417,4284,8,417,1,417,1,417,1,417,3,417,4289,8,417,1,418,1,418,1,418,1,418,1,418,1,418,1,418,1,419,1,419,1,419,1,419,1,419,1,419,1,420,1,420,1,420,1,420,3,420,4308,8,420,1,420,1,420,1,420,3,420,4313,8,420,3,420,4315,8,420,1,420,3,420,4318,8,420,1,420,1,420,1,421,1,421,1,421,1,421,1,421,1,421,1,422,1,422,1,422,5,422,4331,8,422,10,422,12,422,4334,9,422,1,422,3,422,4337,8,422,1,423,1,423,1,423,3,423,4342,8,423,1,424,1,424,1,424,1,424,1,425,1,425,3,425,4350,8,425,1,425,1,425,1,425,5,425,4355,8,425,10,425,12,425,4358,9,425,1,425,1,425,4,425,4362,8,425,11,425,12,425,4363,3,425,4366,8,425,1,425,3,425,4369,8,425,1,426,1,426,1,426,3,426,4374,8,426,1,426,3,426,4377,8,426,1,426,1,426,1,427,1,427,1,427,5,427,4384,8,427,10,427,12,427,4387,9,427,1,427,3,427,4390,8,427,1,428,1,428,1,428,1,428,3,428,4396,8,428,1,429,1,429,1,429,3,429,4401,8,429,1,429,1,429,1,430,1,430,1,431,1,431,1,432,1,432,1,432,1,432,1,432,1,432,1,433,1,433,1,433,1,433,1,433,1,434,1,434,1,434,1,434,1,434,1,435,1,435,1,435,1,435,1,436,3,436,4430,8,436,1,436,5,436,4433,8,436,10,436,12,436,4436,9,436,1,436,1,436,1,436,1,436,1,437,1,437,1,438,1,438,1,439,3,439,4447,8,439,1,439,3,439,4450,8,439,1,439,1,439,3,439,4454,8,439,1,439,3,439,4457,8,439,1,439,1,439,1,440,3,440,4462,8,440,1,440,4,440,4465,8,440,11,440,12,440,4466,1,440,1,440,1,440,1,441,1,441,4,441,4474,8,441,11,441,12,441,4475,1,441,1,441,1,442,1,442,3,442,4482,8,442,1,443,1,443,1,443,1,443,1,443,3,443,4489,8,443,1,444,3,444,4492,8,444,1,444,3,444,4495,8,444,1,445,1,445,1,446,1,446,1,447,1,447,1,448,1,448,1,449,1,449,1,450,1,450,1,451,1,451,1,451,0,1,0,452,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,0,26,4,0,107,107,199,199,201,201,217,217,2,0,191,191,210,210,3,0,174,174,177,178,187,187,4,0,186,186,189,189,206,206,208,208,2,0,199,199,201,201,3,0,194,194,198,198,203,203,2,0,179,179,213,213,3,0,76,76,90,90,210,210,2,0,64,64,156,156,14,0,20,20,42,42,65,65,75,75,84,84,93,93,95,95,97,97,101,101,103,103,121,121,143,143,157,157,163,163,1,0,122,124,2,0,139,139,185,185,2,0,34,34,217,217,2,0,31,31,120,120,2,0,39,39,163,163,3,0,80,80,83,83,114,114,2,0,148,148,185,185,2,0,128,128,175,175,2,0,42,42,188,188,2,0,125,125,176,176,2,0,184,184,207,207,2,0,102,102,210,210,2,0,2,2,165,165,2,0,137,137,153,153,2,0,6,6,18,18,2,0,17,17,132,132,4801,0,919,1,0,0,0,2,1005,1,0,0,0,4,1007,1,0,0,0,6,1036,1,0,0,0,8,1041,1,0,0,0,10,1043,1,0,0,0,12,1045,1,0,0,0,14,1049,1,0,0,0,16,1053,1,0,0,0,18,1060,1,0,0,0,20,1068,1,0,0,0,22,1076,1,0,0,0,24,1085,1,0,0,0,26,1087,1,0,0,0,28,1089,1,0,0,0,30,1091,1,0,0,0,32,1093,1,0,0,0,34,1095,1,0,0,0,36,1097,1,0,0,0,38,1099,1,0,0,0,40,1104,1,0,0,0,42,1106,1,0,0,0,44,1118,1,0,0,0,46,1137,1,0,0,0,48,1141,1,0,0,0,50,1145,1,0,0,0,52,1189,1,0,0,0,54,1191,1,0,0,0,56,1193,1,0,0,0,58,1199,1,0,0,0,60,1216,1,0,0,0,62,1224,1,0,0,0,64,1238,1,0,0,0,66,1247,1,0,0,0,68,1255,1,0,0,0,70,1261,1,0,0,0,72,1274,1,0,0,0,74,1279,1,0,0,0,76,1282,1,0,0,0,78,1284,1,0,0,0,80,1288,1,0,0,0,82,1290,1,0,0,0,84,1293,1,0,0,0,86,1296,1,0,0,0,88,1313,1,0,0,0,90,1326,1,0,0,0,92,1337,1,0,0,0,94,1339,1,0,0,0,96,1352,1,0,0,0,98,1366,1,0,0,0,100,1368,1,0,0,0,102,1374,1,0,0,0,104,1402,1,0,0,0,106,1414,1,0,0,0,108,1416,1,0,0,0,110,1422,1,0,0,0,112,1431,1,0,0,0,114,1451,1,0,0,0,116,1460,1,0,0,0,118,1467,1,0,0,0,120,1469,1,0,0,0,122,1479,1,0,0,0,124,1488,1,0,0,0,126,1497,1,0,0,0,128,1515,1,0,0,0,130,1521,1,0,0,0,132,1527,1,0,0,0,134,1535,1,0,0,0,136,1537,1,0,0,0,138,1545,1,0,0,0,140,1557,1,0,0,0,142,1579,1,0,0,0,144,1591,1,0,0,0,146,1613,1,0,0,0,148,1621,1,0,0,0,150,1629,1,0,0,0,152,1637,1,0,0,0,154,1647,1,0,0,0,156,1649,1,0,0,0,158,1653,1,0,0,0,160,1656,1,0,0,0,162,1662,1,0,0,0,164,1680,1,0,0,0,166,1693,1,0,0,0,168,1701,1,0,0,0,170,1720,1,0,0,0,172,1728,1,0,0,0,174,1733,1,0,0,0,176,1751,1,0,0,0,178,1759,1,0,0,0,180,1768,1,0,0,0,182,1770,1,0,0,0,184,1773,1,0,0,0,186,1797,1,0,0,0,188,1803,1,0,0,0,190,1805,1,0,0,0,192,1814,1,0,0,0,194,1818,1,0,0,0,196,1849,1,0,0,0,198,1872,1,0,0,0,200,1879,1,0,0,0,202,1881,1,0,0,0,204,1894,1,0,0,0,206,1898,1,0,0,0,208,1906,1,0,0,0,210,1909,1,0,0,0,212,1912,1,0,0,0,214,1915,1,0,0,0,216,1923,1,0,0,0,218,1944,1,0,0,0,220,1946,1,0,0,0,222,1958,1,0,0,0,224,1966,1,0,0,0,226,1974,1,0,0,0,228,1982,1,0,0,0,230,1994,1,0,0,0,232,2002,1,0,0,0,234,2014,1,0,0,0,236,2036,1,0,0,0,238,2044,1,0,0,0,240,2056,1,0,0,0,242,2058,1,0,0,0,244,2063,1,0,0,0,246,2068,1,0,0,0,248,2073,1,0,0,0,250,2078,1,0,0,0,252,2084,1,0,0,0,254,2099,1,0,0,0,256,2109,1,0,0,0,258,2116,1,0,0,0,260,2131,1,0,0,0,262,2134,1,0,0,0,264,2143,1,0,0,0,266,2145,1,0,0,0,268,2147,1,0,0,0,270,2172,1,0,0,0,272,2174,1,0,0,0,274,2199,1,0,0,0,276,2201,1,0,0,0,278,2206,1,0,0,0,280,2214,1,0,0,0,282,2224,1,0,0,0,284,2231,1,0,0,0,286,2237,1,0,0,0,288,2241,1,0,0,0,290,2244,1,0,0,0,292,2252,1,0,0,0,294,2257,1,0,0,0,296,2265,1,0,0,0,298,2276,1,0,0,0,300,2284,1,0,0,0,302,2289,1,0,0,0,304,2294,1,0,0,0,306,2339,1,0,0,0,308,2341,1,0,0,0,310,2362,1,0,0,0,312,2384,1,0,0,0,314,2386,1,0,0,0,316,2388,1,0,0,0,318,2396,1,0,0,0,320,2404,1,0,0,0,322,2410,1,0,0,0,324,2412,1,0,0,0,326,2419,1,0,0,0,328,2426,1,0,0,0,330,2428,1,0,0,0,332,2430,1,0,0,0,334,2441,1,0,0,0,336,2443,1,0,0,0,338,2452,1,0,0,0,340,2458,1,0,0,0,342,2460,1,0,0,0,344,2465,1,0,0,0,346,2491,1,0,0,0,348,2515,1,0,0,0,350,2521,1,0,0,0,352,2523,1,0,0,0,354,2526,1,0,0,0,356,2543,1,0,0,0,358,2550,1,0,0,0,360,2562,1,0,0,0,362,2575,1,0,0,0,364,2577,1,0,0,0,366,2586,1,0,0,0,368,2605,1,0,0,0,370,2611,1,0,0,0,372,2613,1,0,0,0,374,2648,1,0,0,0,376,2652,1,0,0,0,378,2654,1,0,0,0,380,2656,1,0,0,0,382,2659,1,0,0,0,384,2667,1,0,0,0,386,2671,1,0,0,0,388,2685,1,0,0,0,390,2703,1,0,0,0,392,2723,1,0,0,0,394,2725,1,0,0,0,396,2728,1,0,0,0,398,2732,1,0,0,0,400,2735,1,0,0,0,402,2738,1,0,0,0,404,2742,1,0,0,0,406,2753,1,0,0,0,408,2757,1,0,0,0,410,2760,1,0,0,0,412,2764,1,0,0,0,414,2766,1,0,0,0,416,2774,1,0,0,0,418,2783,1,0,0,0,420,2786,1,0,0,0,422,2790,1,0,0,0,424,2792,1,0,0,0,426,2797,1,0,0,0,428,2802,1,0,0,0,430,2806,1,0,0,0,432,2823,1,0,0,0,434,2825,1,0,0,0,436,2839,1,0,0,0,438,2856,1,0,0,0,440,2874,1,0,0,0,442,2897,1,0,0,0,444,2899,1,0,0,0,446,2908,1,0,0,0,448,2913,1,0,0,0,450,2920,1,0,0,0,452,2938,1,0,0,0,454,2943,1,0,0,0,456,2950,1,0,0,0,458,2954,1,0,0,0,460,2959,1,0,0,0,462,2971,1,0,0,0,464,2977,1,0,0,0,466,2990,1,0,0,0,468,2992,1,0,0,0,470,3005,1,0,0,0,472,3009,1,0,0,0,474,3019,1,0,0,0,476,3032,1,0,0,0,478,3034,1,0,0,0,480,3048,1,0,0,0,482,3051,1,0,0,0,484,3053,1,0,0,0,486,3056,1,0,0,0,488,3058,1,0,0,0,490,3063,1,0,0,0,492,3067,1,0,0,0,494,3072,1,0,0,0,496,3076,1,0,0,0,498,3082,1,0,0,0,500,3084,1,0,0,0,502,3086,1,0,0,0,504,3090,1,0,0,0,506,3093,1,0,0,0,508,3098,1,0,0,0,510,3118,1,0,0,0,512,3120,1,0,0,0,514,3124,1,0,0,0,516,3137,1,0,0,0,518,3150,1,0,0,0,520,3163,1,0,0,0,522,3178,1,0,0,0,524,3189,1,0,0,0,526,3191,1,0,0,0,528,3199,1,0,0,0,530,3201,1,0,0,0,532,3208,1,0,0,0,534,3210,1,0,0,0,536,3213,1,0,0,0,538,3229,1,0,0,0,540,3233,1,0,0,0,542,3235,1,0,0,0,544,3239,1,0,0,0,546,3252,1,0,0,0,548,3255,1,0,0,0,550,3264,1,0,0,0,552,3269,1,0,0,0,554,3283,1,0,0,0,556,3285,1,0,0,0,558,3290,1,0,0,0,560,3316,1,0,0,0,562,3318,1,0,0,0,564,3320,1,0,0,0,566,3322,1,0,0,0,568,3327,1,0,0,0,570,3333,1,0,0,0,572,3335,1,0,0,0,574,3337,1,0,0,0,576,3352,1,0,0,0,578,3373,1,0,0,0,580,3384,1,0,0,0,582,3388,1,0,0,0,584,3390,1,0,0,0,586,3395,1,0,0,0,588,3398,1,0,0,0,590,3401,1,0,0,0,592,3404,1,0,0,0,594,3410,1,0,0,0,596,3415,1,0,0,0,598,3428,1,0,0,0,600,3441,1,0,0,0,602,3443,1,0,0,0,604,3447,1,0,0,0,606,3455,1,0,0,0,608,3457,1,0,0,0,610,3470,1,0,0,0,612,3477,1,0,0,0,614,3484,1,0,0,0,616,3491,1,0,0,0,618,3498,1,0,0,0,620,3503,1,0,0,0,622,3508,1,0,0,0,624,3513,1,0,0,0,626,3523,1,0,0,0,628,3525,1,0,0,0,630,3527,1,0,0,0,632,3533,1,0,0,0,634,3535,1,0,0,0,636,3554,1,0,0,0,638,3571,1,0,0,0,640,3573,1,0,0,0,642,3575,1,0,0,0,644,3577,1,0,0,0,646,3579,1,0,0,0,648,3581,1,0,0,0,650,3586,1,0,0,0,652,3594,1,0,0,0,654,3599,1,0,0,0,656,3601,1,0,0,0,658,3603,1,0,0,0,660,3613,1,0,0,0,662,3624,1,0,0,0,664,3626,1,0,0,0,666,3632,1,0,0,0,668,3643,1,0,0,0,670,3645,1,0,0,0,672,3659,1,0,0,0,674,3667,1,0,0,0,676,3672,1,0,0,0,678,3676,1,0,0,0,680,3680,1,0,0,0,682,3684,1,0,0,0,684,3691,1,0,0,0,686,3700,1,0,0,0,688,3718,1,0,0,0,690,3741,1,0,0,0,692,3743,1,0,0,0,694,3747,1,0,0,0,696,3751,1,0,0,0,698,3755,1,0,0,0,700,3770,1,0,0,0,702,3772,1,0,0,0,704,3775,1,0,0,0,706,3778,1,0,0,0,708,3781,1,0,0,0,710,3784,1,0,0,0,712,3787,1,0,0,0,714,3790,1,0,0,0,716,3807,1,0,0,0,718,3809,1,0,0,0,720,3826,1,0,0,0,722,3850,1,0,0,0,724,3881,1,0,0,0,726,3884,1,0,0,0,728,3886,1,0,0,0,730,3889,1,0,0,0,732,3897,1,0,0,0,734,3899,1,0,0,0,736,3910,1,0,0,0,738,3921,1,0,0,0,740,3932,1,0,0,0,742,3943,1,0,0,0,744,3945,1,0,0,0,746,3948,1,0,0,0,748,3950,1,0,0,0,750,3956,1,0,0,0,752,3966,1,0,0,0,754,3971,1,0,0,0,756,3979,1,0,0,0,758,3981,1,0,0,0,760,3985,1,0,0,0,762,3991,1,0,0,0,764,3996,1,0,0,0,766,4012,1,0,0,0,768,4017,1,0,0,0,770,4032,1,0,0,0,772,4041,1,0,0,0,774,4043,1,0,0,0,776,4046,1,0,0,0,778,4055,1,0,0,0,780,4059,1,0,0,0,782,4084,1,0,0,0,784,4086,1,0,0,0,786,4113,1,0,0,0,788,4115,1,0,0,0,790,4118,1,0,0,0,792,4127,1,0,0,0,794,4130,1,0,0,0,796,4139,1,0,0,0,798,4144,1,0,0,0,800,4172,1,0,0,0,802,4174,1,0,0,0,804,4176,1,0,0,0,806,4178,1,0,0,0,808,4180,1,0,0,0,810,4186,1,0,0,0,812,4191,1,0,0,0,814,4197,1,0,0,0,816,4214,1,0,0,0,818,4221,1,0,0,0,820,4223,1,0,0,0,822,4230,1,0,0,0,824,4236,1,0,0,0,826,4242,1,0,0,0,828,4247,1,0,0,0,830,4253,1,0,0,0,832,4258,1,0,0,0,834,4288,1,0,0,0,836,4290,1,0,0,0,838,4297,1,0,0,0,840,4303,1,0,0,0,842,4321,1,0,0,0,844,4336,1,0,0,0,846,4341,1,0,0,0,848,4343,1,0,0,0,850,4368,1,0,0,0,852,4370,1,0,0,0,854,4389,1,0,0,0,856,4395,1,0,0,0,858,4397,1,0,0,0,860,4404,1,0,0,0,862,4406,1,0,0,0,864,4408,1,0,0,0,866,4414,1,0,0,0,868,4419,1,0,0,0,870,4424,1,0,0,0,872,4429,1,0,0,0,874,4441,1,0,0,0,876,4443,1,0,0,0,878,4446,1,0,0,0,880,4461,1,0,0,0,882,4471,1,0,0,0,884,4481,1,0,0,0,886,4483,1,0,0,0,888,4491,1,0,0,0,890,4496,1,0,0,0,892,4498,1,0,0,0,894,4500,1,0,0,0,896,4502,1,0,0,0,898,4504,1,0,0,0,900,4506,1,0,0,0,902,4508,1,0,0,0,904,905,6,0,-1,0,905,906,5,77,0,0,906,907,3,0,0,0,907,908,5,209,0,0,908,909,3,0,0,0,909,910,5,55,0,0,910,911,3,0,0,28,911,920,1,0,0,0,912,913,7,0,0,0,913,920,3,0,0,14,914,915,7,1,0,0,915,920,3,2,1,0,916,917,5,8,0,0,917,920,3,2,1,0,918,920,3,6,3,0,919,904,1,0,0,0,919,912,1,0,0,0,919,914,1,0,0,0,919,916,1,0,0,0,919,918,1,0,0,0,920,1002,1,0,0,0,921,922,10,27,0,0,922,923,5,190,0,0,923,1001,3,0,0,28,924,925,10,26,0,0,925,926,5,78,0,0,926,1001,3,0,0,27,927,928,10,25,0,0,928,929,5,112,0,0,929,1001,3,0,0,26,930,931,10,24,0,0,931,932,5,12,0,0,932,1001,3,0,0,25,933,934,10,23,0,0,934,935,5,173,0,0,935,1001,3,0,0,24,936,937,10,22,0,0,937,938,5,215,0,0,938,1001,3,0,0,23,939,940,10,21,0,0,940,941,5,195,0,0,941,1001,3,0,0,22,942,943,10,20,0,0,943,944,7,2,0,0,944,1001,3,0,0,21,945,946,10,19,0,0,946,947,7,3,0,0,947,1001,3,0,0,20,948,949,10,18,0,0,949,950,5,181,0,0,950,1001,3,0,0,19,951,952,10,17,0,0,952,953,7,4,0,0,953,1001,3,0,0,18,954,955,10,16,0,0,955,956,7,5,0,0,956,1001,3,0,0,17,957,958,10,15,0,0,958,959,7,6,0,0,959,1001,3,0,0,15,960,961,10,12,0,0,961,962,7,7,0,0,962,1001,3,2,1,0,963,964,10,11,0,0,964,965,5,13,0,0,965,1001,3,2,1,0,966,967,10,10,0,0,967,968,5,191,0,0,968,1001,3,2,1,0,969,970,10,9,0,0,970,971,5,100,0,0,971,1001,3,2,1,0,972,973,10,8,0,0,973,975,5,211,0,0,974,976,3,4,2,0,975,974,1,0,0,0,975,976,1,0,0,0,976,977,1,0,0,0,977,1001,5,212,0,0,978,979,10,7,0,0,979,980,5,192,0,0,980,982,5,196,0,0,981,983,3,4,2,0,982,981,1,0,0,0,982,983,1,0,0,0,983,984,1,0,0,0,984,1001,5,197,0,0,985,986,10,6,0,0,986,1001,3,16,8,0,987,988,10,5,0,0,988,989,5,202,0,0,989,1001,3,88,44,0,990,991,10,4,0,0,991,992,5,182,0,0,992,1001,3,14,7,0,993,994,10,3,0,0,994,995,5,180,0,0,995,998,3,88,44,0,996,999,3,14,7,0,997,999,3,16,8,0,998,996,1,0,0,0,998,997,1,0,0,0,999,1001,1,0,0,0,1e3,921,1,0,0,0,1e3,924,1,0,0,0,1e3,927,1,0,0,0,1e3,930,1,0,0,0,1e3,933,1,0,0,0,1e3,936,1,0,0,0,1e3,939,1,0,0,0,1e3,942,1,0,0,0,1e3,945,1,0,0,0,1e3,948,1,0,0,0,1e3,951,1,0,0,0,1e3,954,1,0,0,0,1e3,957,1,0,0,0,1e3,960,1,0,0,0,1e3,963,1,0,0,0,1e3,966,1,0,0,0,1e3,969,1,0,0,0,1e3,972,1,0,0,0,1e3,978,1,0,0,0,1e3,985,1,0,0,0,1e3,987,1,0,0,0,1e3,990,1,0,0,0,1e3,993,1,0,0,0,1001,1004,1,0,0,0,1002,1e3,1,0,0,0,1002,1003,1,0,0,0,1003,1,1,0,0,0,1004,1002,1,0,0,0,1005,1006,3,88,44,0,1006,3,1,0,0,0,1007,1012,3,0,0,0,1008,1009,5,200,0,0,1009,1011,3,0,0,0,1010,1008,1,0,0,0,1011,1014,1,0,0,0,1012,1010,1,0,0,0,1012,1013,1,0,0,0,1013,5,1,0,0,0,1014,1012,1,0,0,0,1015,1037,3,8,4,0,1016,1037,5,223,0,0,1017,1037,3,24,12,0,1018,1022,3,88,44,0,1019,1023,3,16,8,0,1020,1021,5,202,0,0,1021,1023,5,102,0,0,1022,1019,1,0,0,0,1022,1020,1,0,0,0,1022,1023,1,0,0,0,1023,1037,1,0,0,0,1024,1037,3,12,6,0,1025,1037,3,14,7,0,1026,1027,5,196,0,0,1027,1028,5,13,0,0,1028,1029,3,2,1,0,1029,1030,5,197,0,0,1030,1037,1,0,0,0,1031,1033,5,196,0,0,1032,1034,3,4,2,0,1033,1032,1,0,0,0,1033,1034,1,0,0,0,1034,1035,1,0,0,0,1035,1037,5,197,0,0,1036,1015,1,0,0,0,1036,1016,1,0,0,0,1036,1017,1,0,0,0,1036,1018,1,0,0,0,1036,1024,1,0,0,0,1036,1025,1,0,0,0,1036,1026,1,0,0,0,1036,1031,1,0,0,0,1037,7,1,0,0,0,1038,1042,5,108,0,0,1039,1040,5,196,0,0,1040,1042,5,197,0,0,1041,1038,1,0,0,0,1041,1039,1,0,0,0,1042,9,1,0,0,0,1043,1044,3,88,44,0,1044,11,1,0,0,0,1045,1046,5,105,0,0,1046,1047,3,88,44,0,1047,1048,3,16,8,0,1048,13,1,0,0,0,1049,1050,5,214,0,0,1050,1051,3,284,142,0,1051,1052,5,216,0,0,1052,15,1,0,0,0,1053,1056,5,196,0,0,1054,1057,3,18,9,0,1055,1057,3,20,10,0,1056,1054,1,0,0,0,1056,1055,1,0,0,0,1056,1057,1,0,0,0,1057,1058,1,0,0,0,1058,1059,5,197,0,0,1059,17,1,0,0,0,1060,1065,3,0,0,0,1061,1062,5,200,0,0,1062,1064,3,0,0,0,1063,1061,1,0,0,0,1064,1067,1,0,0,0,1065,1063,1,0,0,0,1065,1066,1,0,0,0,1066,19,1,0,0,0,1067,1065,1,0,0,0,1068,1073,3,22,11,0,1069,1070,5,200,0,0,1070,1072,3,22,11,0,1071,1069,1,0,0,0,1072,1075,1,0,0,0,1073,1071,1,0,0,0,1073,1074,1,0,0,0,1074,21,1,0,0,0,1075,1073,1,0,0,0,1076,1077,3,88,44,0,1077,1078,5,207,0,0,1078,1079,3,0,0,0,1079,23,1,0,0,0,1080,1086,3,26,13,0,1081,1086,3,28,14,0,1082,1086,3,30,15,0,1083,1086,3,32,16,0,1084,1086,3,34,17,0,1085,1080,1,0,0,0,1085,1081,1,0,0,0,1085,1082,1,0,0,0,1085,1083,1,0,0,0,1085,1084,1,0,0,0,1086,25,1,0,0,0,1087,1088,7,8,0,0,1088,27,1,0,0,0,1089,1090,5,220,0,0,1090,29,1,0,0,0,1091,1092,5,221,0,0,1092,31,1,0,0,0,1093,1094,5,222,0,0,1094,33,1,0,0,0,1095,1096,5,198,0,0,1096,35,1,0,0,0,1097,1098,3,0,0,0,1098,37,1,0,0,0,1099,1100,3,0,0,0,1100,39,1,0,0,0,1101,1105,5,218,0,0,1102,1105,5,219,0,0,1103,1105,3,42,21,0,1104,1101,1,0,0,0,1104,1102,1,0,0,0,1104,1103,1,0,0,0,1105,41,1,0,0,0,1106,1107,7,9,0,0,1107,43,1,0,0,0,1108,1109,5,206,0,0,1109,1110,3,40,20,0,1110,1111,5,208,0,0,1111,1112,3,40,20,0,1112,1119,1,0,0,0,1113,1114,5,206,0,0,1114,1115,3,40,20,0,1115,1116,5,208,0,0,1116,1119,1,0,0,0,1117,1119,3,40,20,0,1118,1108,1,0,0,0,1118,1113,1,0,0,0,1118,1117,1,0,0,0,1119,45,1,0,0,0,1120,1138,5,205,0,0,1121,1125,5,214,0,0,1122,1124,3,48,24,0,1123,1122,1,0,0,0,1124,1127,1,0,0,0,1125,1123,1,0,0,0,1125,1126,1,0,0,0,1126,1128,1,0,0,0,1127,1125,1,0,0,0,1128,1138,5,216,0,0,1129,1133,5,214,0,0,1130,1132,3,56,28,0,1131,1130,1,0,0,0,1132,1135,1,0,0,0,1133,1131,1,0,0,0,1133,1134,1,0,0,0,1134,1136,1,0,0,0,1135,1133,1,0,0,0,1136,1138,5,216,0,0,1137,1120,1,0,0,0,1137,1121,1,0,0,0,1137,1129,1,0,0,0,1138,47,1,0,0,0,1139,1142,3,50,25,0,1140,1142,3,56,28,0,1141,1139,1,0,0,0,1141,1140,1,0,0,0,1142,49,1,0,0,0,1143,1146,3,104,52,0,1144,1146,3,106,53,0,1145,1143,1,0,0,0,1145,1144,1,0,0,0,1146,51,1,0,0,0,1147,1149,3,338,169,0,1148,1147,1,0,0,0,1149,1152,1,0,0,0,1150,1148,1,0,0,0,1150,1151,1,0,0,0,1151,1153,1,0,0,0,1152,1150,1,0,0,0,1153,1158,5,48,0,0,1154,1156,3,44,22,0,1155,1154,1,0,0,0,1155,1156,1,0,0,0,1156,1157,1,0,0,0,1157,1159,5,74,0,0,1158,1155,1,0,0,0,1158,1159,1,0,0,0,1159,1160,1,0,0,0,1160,1165,3,88,44,0,1161,1162,5,200,0,0,1162,1164,3,88,44,0,1163,1161,1,0,0,0,1164,1167,1,0,0,0,1165,1163,1,0,0,0,1165,1166,1,0,0,0,1166,1168,1,0,0,0,1167,1165,1,0,0,0,1168,1169,5,154,0,0,1169,1174,3,88,44,0,1170,1171,5,200,0,0,1171,1173,3,88,44,0,1172,1170,1,0,0,0,1173,1176,1,0,0,0,1174,1172,1,0,0,0,1174,1175,1,0,0,0,1175,1177,1,0,0,0,1176,1174,1,0,0,0,1177,1178,3,46,23,0,1178,1190,1,0,0,0,1179,1181,3,338,169,0,1180,1179,1,0,0,0,1181,1184,1,0,0,0,1182,1180,1,0,0,0,1182,1183,1,0,0,0,1183,1185,1,0,0,0,1184,1182,1,0,0,0,1185,1186,5,48,0,0,1186,1187,3,366,183,0,1187,1188,3,46,23,0,1188,1190,1,0,0,0,1189,1150,1,0,0,0,1189,1182,1,0,0,0,1190,53,1,0,0,0,1191,1192,3,88,44,0,1192,55,1,0,0,0,1193,1194,3,58,29,0,1194,57,1,0,0,0,1195,1200,3,60,30,0,1196,1200,3,62,31,0,1197,1200,3,64,32,0,1198,1200,3,344,172,0,1199,1195,1,0,0,0,1199,1196,1,0,0,0,1199,1197,1,0,0,0,1199,1198,1,0,0,0,1200,59,1,0,0,0,1201,1203,5,30,0,0,1202,1204,3,44,22,0,1203,1202,1,0,0,0,1203,1204,1,0,0,0,1204,1214,1,0,0,0,1205,1206,5,1,0,0,1206,1211,3,54,27,0,1207,1208,5,200,0,0,1208,1210,3,54,27,0,1209,1207,1,0,0,0,1210,1213,1,0,0,0,1211,1209,1,0,0,0,1211,1212,1,0,0,0,1212,1215,1,0,0,0,1213,1211,1,0,0,0,1214,1205,1,0,0,0,1214,1215,1,0,0,0,1215,1217,1,0,0,0,1216,1201,1,0,0,0,1216,1217,1,0,0,0,1217,1220,1,0,0,0,1218,1219,5,95,0,0,1219,1221,5,220,0,0,1220,1218,1,0,0,0,1220,1221,1,0,0,0,1221,1222,1,0,0,0,1222,1223,5,223,0,0,1223,61,1,0,0,0,1224,1226,5,54,0,0,1225,1227,3,44,22,0,1226,1225,1,0,0,0,1226,1227,1,0,0,0,1227,1230,1,0,0,0,1228,1229,5,95,0,0,1229,1231,5,220,0,0,1230,1228,1,0,0,0,1230,1231,1,0,0,0,1231,1232,1,0,0,0,1232,1233,5,223,0,0,1233,63,1,0,0,0,1234,1236,5,131,0,0,1235,1237,3,44,22,0,1236,1235,1,0,0,0,1236,1237,1,0,0,0,1237,1239,1,0,0,0,1238,1234,1,0,0,0,1238,1239,1,0,0,0,1239,1240,1,0,0,0,1240,1241,5,93,0,0,1241,1242,5,220,0,0,1242,1243,5,223,0,0,1243,65,1,0,0,0,1244,1246,3,370,185,0,1245,1244,1,0,0,0,1246,1249,1,0,0,0,1247,1245,1,0,0,0,1247,1248,1,0,0,0,1248,1250,1,0,0,0,1249,1247,1,0,0,0,1250,1251,5,0,0,1,1251,67,1,0,0,0,1252,1254,3,340,170,0,1253,1252,1,0,0,0,1254,1257,1,0,0,0,1255,1253,1,0,0,0,1255,1256,1,0,0,0,1256,1258,1,0,0,0,1257,1255,1,0,0,0,1258,1259,3,70,35,0,1259,1260,3,72,36,0,1260,69,1,0,0,0,1261,1263,5,104,0,0,1262,1264,3,44,22,0,1263,1262,1,0,0,0,1263,1264,1,0,0,0,1264,71,1,0,0,0,1265,1275,5,205,0,0,1266,1270,5,214,0,0,1267,1269,3,74,37,0,1268,1267,1,0,0,0,1269,1272,1,0,0,0,1270,1268,1,0,0,0,1270,1271,1,0,0,0,1271,1273,1,0,0,0,1272,1270,1,0,0,0,1273,1275,5,216,0,0,1274,1265,1,0,0,0,1274,1266,1,0,0,0,1275,73,1,0,0,0,1276,1280,3,80,40,0,1277,1280,3,86,43,0,1278,1280,3,90,45,0,1279,1276,1,0,0,0,1279,1277,1,0,0,0,1279,1278,1,0,0,0,1280,75,1,0,0,0,1281,1283,3,78,39,0,1282,1281,1,0,0,0,1282,1283,1,0,0,0,1283,77,1,0,0,0,1284,1285,7,10,0,0,1285,79,1,0,0,0,1286,1289,3,82,41,0,1287,1289,3,84,42,0,1288,1286,1,0,0,0,1288,1287,1,0,0,0,1289,81,1,0,0,0,1290,1291,3,76,38,0,1291,1292,3,102,51,0,1292,83,1,0,0,0,1293,1294,3,76,38,0,1294,1295,3,106,53,0,1295,85,1,0,0,0,1296,1297,3,76,38,0,1297,1302,5,7,0,0,1298,1299,5,206,0,0,1299,1300,3,40,20,0,1300,1301,5,208,0,0,1301,1303,1,0,0,0,1302,1298,1,0,0,0,1302,1303,1,0,0,0,1303,1305,1,0,0,0,1304,1306,3,40,20,0,1305,1304,1,0,0,0,1305,1306,1,0,0,0,1306,1307,1,0,0,0,1307,1308,5,71,0,0,1308,1309,3,88,44,0,1309,1310,3,46,23,0,1310,87,1,0,0,0,1311,1312,5,193,0,0,1312,1314,5,183,0,0,1313,1311,1,0,0,0,1313,1314,1,0,0,0,1314,1320,1,0,0,0,1315,1316,3,40,20,0,1316,1317,5,183,0,0,1317,1319,1,0,0,0,1318,1315,1,0,0,0,1319,1322,1,0,0,0,1320,1318,1,0,0,0,1320,1321,1,0,0,0,1321,1323,1,0,0,0,1322,1320,1,0,0,0,1323,1324,3,40,20,0,1324,89,1,0,0,0,1325,1327,3,78,39,0,1326,1325,1,0,0,0,1326,1327,1,0,0,0,1327,1328,1,0,0,0,1328,1330,5,79,0,0,1329,1331,5,8,0,0,1330,1329,1,0,0,0,1330,1331,1,0,0,0,1331,1332,1,0,0,0,1332,1333,3,92,46,0,1333,1334,3,46,23,0,1334,91,1,0,0,0,1335,1338,3,94,47,0,1336,1338,3,96,48,0,1337,1335,1,0,0,0,1337,1336,1,0,0,0,1338,93,1,0,0,0,1339,1342,3,88,44,0,1340,1341,5,183,0,0,1341,1343,5,179,0,0,1342,1340,1,0,0,0,1342,1343,1,0,0,0,1343,95,1,0,0,0,1344,1345,3,88,44,0,1345,1346,5,183,0,0,1346,1349,5,198,0,0,1347,1348,5,183,0,0,1348,1350,5,179,0,0,1349,1347,1,0,0,0,1349,1350,1,0,0,0,1350,1353,1,0,0,0,1351,1353,3,98,49,0,1352,1344,1,0,0,0,1352,1351,1,0,0,0,1353,97,1,0,0,0,1354,1356,3,884,442,0,1355,1357,3,100,50,0,1356,1355,1,0,0,0,1357,1358,1,0,0,0,1358,1356,1,0,0,0,1358,1359,1,0,0,0,1359,1367,1,0,0,0,1360,1362,3,898,449,0,1361,1363,3,100,50,0,1362,1361,1,0,0,0,1363,1364,1,0,0,0,1364,1362,1,0,0,0,1364,1365,1,0,0,0,1365,1367,1,0,0,0,1366,1354,1,0,0,0,1366,1360,1,0,0,0,1367,99,1,0,0,0,1368,1369,5,211,0,0,1369,1370,3,0,0,0,1370,1371,5,212,0,0,1371,101,1,0,0,0,1372,1375,3,58,29,0,1373,1375,3,104,52,0,1374,1372,1,0,0,0,1374,1373,1,0,0,0,1375,103,1,0,0,0,1376,1403,3,52,26,0,1377,1403,3,68,34,0,1378,1403,3,108,54,0,1379,1403,3,160,80,0,1380,1403,3,242,121,0,1381,1403,3,244,122,0,1382,1403,3,246,123,0,1383,1403,3,336,168,0,1384,1403,3,248,124,0,1385,1403,3,250,125,0,1386,1403,3,300,150,0,1387,1403,3,276,138,0,1388,1403,3,280,140,0,1389,1403,3,292,146,0,1390,1403,3,322,161,0,1391,1403,3,356,178,0,1392,1403,3,358,179,0,1393,1403,3,132,66,0,1394,1403,3,140,70,0,1395,1403,3,166,83,0,1396,1403,3,144,72,0,1397,1403,3,234,117,0,1398,1403,3,218,109,0,1399,1403,3,222,111,0,1400,1403,3,230,115,0,1401,1403,3,238,119,0,1402,1376,1,0,0,0,1402,1377,1,0,0,0,1402,1378,1,0,0,0,1402,1379,1,0,0,0,1402,1380,1,0,0,0,1402,1381,1,0,0,0,1402,1382,1,0,0,0,1402,1383,1,0,0,0,1402,1384,1,0,0,0,1402,1385,1,0,0,0,1402,1386,1,0,0,0,1402,1387,1,0,0,0,1402,1388,1,0,0,0,1402,1389,1,0,0,0,1402,1390,1,0,0,0,1402,1391,1,0,0,0,1402,1392,1,0,0,0,1402,1393,1,0,0,0,1402,1394,1,0,0,0,1402,1395,1,0,0,0,1402,1396,1,0,0,0,1402,1397,1,0,0,0,1402,1398,1,0,0,0,1402,1399,1,0,0,0,1402,1400,1,0,0,0,1402,1401,1,0,0,0,1403,105,1,0,0,0,1404,1415,3,170,85,0,1405,1415,3,278,139,0,1406,1415,3,290,145,0,1407,1415,3,294,147,0,1408,1415,3,296,148,0,1409,1415,3,252,126,0,1410,1415,3,268,134,0,1411,1415,3,272,136,0,1412,1415,3,302,151,0,1413,1415,3,304,152,0,1414,1404,1,0,0,0,1414,1405,1,0,0,0,1414,1406,1,0,0,0,1414,1407,1,0,0,0,1414,1408,1,0,0,0,1414,1409,1,0,0,0,1414,1410,1,0,0,0,1414,1411,1,0,0,0,1414,1412,1,0,0,0,1414,1413,1,0,0,0,1415,107,1,0,0,0,1416,1417,3,110,55,0,1417,1418,5,157,0,0,1418,1419,3,112,56,0,1419,1420,3,128,64,0,1420,109,1,0,0,0,1421,1423,5,2,0,0,1422,1421,1,0,0,0,1422,1423,1,0,0,0,1423,1427,1,0,0,0,1424,1426,3,340,170,0,1425,1424,1,0,0,0,1426,1429,1,0,0,0,1427,1425,1,0,0,0,1427,1428,1,0,0,0,1428,111,1,0,0,0,1429,1427,1,0,0,0,1430,1432,5,8,0,0,1431,1430,1,0,0,0,1431,1432,1,0,0,0,1432,1434,1,0,0,0,1433,1435,3,44,22,0,1434,1433,1,0,0,0,1434,1435,1,0,0,0,1435,1437,1,0,0,0,1436,1438,3,328,164,0,1437,1436,1,0,0,0,1437,1438,1,0,0,0,1438,1441,1,0,0,0,1439,1442,3,114,57,0,1440,1442,3,116,58,0,1441,1439,1,0,0,0,1441,1440,1,0,0,0,1442,1443,1,0,0,0,1443,1441,1,0,0,0,1443,1444,1,0,0,0,1444,1448,1,0,0,0,1445,1447,3,118,59,0,1446,1445,1,0,0,0,1447,1450,1,0,0,0,1448,1446,1,0,0,0,1448,1449,1,0,0,0,1449,113,1,0,0,0,1450,1448,1,0,0,0,1451,1452,7,11,0,0,1452,1457,3,134,67,0,1453,1454,5,200,0,0,1454,1456,3,134,67,0,1455,1453,1,0,0,0,1456,1459,1,0,0,0,1457,1455,1,0,0,0,1457,1458,1,0,0,0,1458,115,1,0,0,0,1459,1457,1,0,0,0,1460,1461,7,12,0,0,1461,1462,3,142,71,0,1462,117,1,0,0,0,1463,1468,3,120,60,0,1464,1468,3,122,61,0,1465,1468,3,124,62,0,1466,1468,3,126,63,0,1467,1463,1,0,0,0,1467,1464,1,0,0,0,1467,1465,1,0,0,0,1467,1466,1,0,0,0,1468,119,1,0,0,0,1469,1470,5,52,0,0,1470,1471,5,74,0,0,1471,1476,3,146,73,0,1472,1473,5,200,0,0,1473,1475,3,146,73,0,1474,1472,1,0,0,0,1475,1478,1,0,0,0,1476,1474,1,0,0,0,1476,1477,1,0,0,0,1477,121,1,0,0,0,1478,1476,1,0,0,0,1479,1480,5,160,0,0,1480,1485,3,148,74,0,1481,1482,5,200,0,0,1482,1484,3,148,74,0,1483,1481,1,0,0,0,1484,1487,1,0,0,0,1485,1483,1,0,0,0,1485,1486,1,0,0,0,1486,123,1,0,0,0,1487,1485,1,0,0,0,1488,1489,5,86,0,0,1489,1494,3,150,75,0,1490,1491,5,200,0,0,1491,1493,3,150,75,0,1492,1490,1,0,0,0,1493,1496,1,0,0,0,1494,1492,1,0,0,0,1494,1495,1,0,0,0,1495,125,1,0,0,0,1496,1494,1,0,0,0,1497,1498,5,50,0,0,1498,1503,3,152,76,0,1499,1500,5,200,0,0,1500,1502,3,152,76,0,1501,1499,1,0,0,0,1502,1505,1,0,0,0,1503,1501,1,0,0,0,1503,1504,1,0,0,0,1504,127,1,0,0,0,1505,1503,1,0,0,0,1506,1516,5,205,0,0,1507,1511,5,214,0,0,1508,1510,3,130,65,0,1509,1508,1,0,0,0,1510,1513,1,0,0,0,1511,1509,1,0,0,0,1511,1512,1,0,0,0,1512,1514,1,0,0,0,1513,1511,1,0,0,0,1514,1516,5,216,0,0,1515,1506,1,0,0,0,1515,1507,1,0,0,0,1516,129,1,0,0,0,1517,1522,3,82,41,0,1518,1522,3,154,77,0,1519,1522,3,86,43,0,1520,1522,3,90,45,0,1521,1517,1,0,0,0,1521,1518,1,0,0,0,1521,1519,1,0,0,0,1521,1520,1,0,0,0,1522,131,1,0,0,0,1523,1525,5,138,0,0,1524,1526,3,44,22,0,1525,1524,1,0,0,0,1525,1526,1,0,0,0,1526,1528,1,0,0,0,1527,1523,1,0,0,0,1527,1528,1,0,0,0,1528,1529,1,0,0,0,1529,1530,5,149,0,0,1530,1531,3,136,68,0,1531,1532,7,11,0,0,1532,1533,3,138,69,0,1533,1534,3,46,23,0,1534,133,1,0,0,0,1535,1536,3,138,69,0,1536,135,1,0,0,0,1537,1542,3,88,44,0,1538,1539,5,202,0,0,1539,1541,3,88,44,0,1540,1538,1,0,0,0,1541,1544,1,0,0,0,1542,1540,1,0,0,0,1542,1543,1,0,0,0,1543,137,1,0,0,0,1544,1542,1,0,0,0,1545,1550,3,88,44,0,1546,1547,5,202,0,0,1547,1549,3,88,44,0,1548,1546,1,0,0,0,1549,1552,1,0,0,0,1550,1548,1,0,0,0,1550,1551,1,0,0,0,1551,139,1,0,0,0,1552,1550,1,0,0,0,1553,1555,5,35,0,0,1554,1556,3,44,22,0,1555,1554,1,0,0,0,1555,1556,1,0,0,0,1556,1558,1,0,0,0,1557,1553,1,0,0,0,1557,1558,1,0,0,0,1558,1559,1,0,0,0,1559,1560,5,33,0,0,1560,1565,3,88,44,0,1561,1562,5,202,0,0,1562,1564,3,88,44,0,1563,1561,1,0,0,0,1564,1567,1,0,0,0,1565,1563,1,0,0,0,1565,1566,1,0,0,0,1566,1568,1,0,0,0,1567,1565,1,0,0,0,1568,1569,7,12,0,0,1569,1574,3,88,44,0,1570,1571,5,202,0,0,1571,1573,3,88,44,0,1572,1570,1,0,0,0,1573,1576,1,0,0,0,1574,1572,1,0,0,0,1574,1575,1,0,0,0,1575,1577,1,0,0,0,1576,1574,1,0,0,0,1577,1578,3,46,23,0,1578,141,1,0,0,0,1579,1584,3,88,44,0,1580,1581,5,202,0,0,1581,1583,3,88,44,0,1582,1580,1,0,0,0,1583,1586,1,0,0,0,1584,1582,1,0,0,0,1584,1585,1,0,0,0,1585,143,1,0,0,0,1586,1584,1,0,0,0,1587,1589,5,51,0,0,1588,1590,3,44,22,0,1589,1588,1,0,0,0,1589,1590,1,0,0,0,1590,1592,1,0,0,0,1591,1587,1,0,0,0,1591,1592,1,0,0,0,1592,1593,1,0,0,0,1593,1594,5,52,0,0,1594,1599,3,88,44,0,1595,1596,5,202,0,0,1596,1598,3,88,44,0,1597,1595,1,0,0,0,1598,1601,1,0,0,0,1599,1597,1,0,0,0,1599,1600,1,0,0,0,1600,1602,1,0,0,0,1601,1599,1,0,0,0,1602,1603,5,74,0,0,1603,1608,3,88,44,0,1604,1605,5,202,0,0,1605,1607,3,88,44,0,1606,1604,1,0,0,0,1607,1610,1,0,0,0,1608,1606,1,0,0,0,1608,1609,1,0,0,0,1609,1611,1,0,0,0,1610,1608,1,0,0,0,1611,1612,3,46,23,0,1612,145,1,0,0,0,1613,1618,3,88,44,0,1614,1615,5,202,0,0,1615,1617,3,88,44,0,1616,1614,1,0,0,0,1617,1620,1,0,0,0,1618,1616,1,0,0,0,1618,1619,1,0,0,0,1619,147,1,0,0,0,1620,1618,1,0,0,0,1621,1626,3,88,44,0,1622,1623,5,202,0,0,1623,1625,3,88,44,0,1624,1622,1,0,0,0,1625,1628,1,0,0,0,1626,1624,1,0,0,0,1626,1627,1,0,0,0,1627,149,1,0,0,0,1628,1626,1,0,0,0,1629,1634,3,88,44,0,1630,1631,5,202,0,0,1631,1633,3,88,44,0,1632,1630,1,0,0,0,1633,1636,1,0,0,0,1634,1632,1,0,0,0,1634,1635,1,0,0,0,1635,151,1,0,0,0,1636,1634,1,0,0,0,1637,1642,3,88,44,0,1638,1639,5,202,0,0,1639,1641,3,88,44,0,1640,1638,1,0,0,0,1641,1644,1,0,0,0,1642,1640,1,0,0,0,1642,1643,1,0,0,0,1643,153,1,0,0,0,1644,1642,1,0,0,0,1645,1648,3,156,78,0,1646,1648,3,158,79,0,1647,1645,1,0,0,0,1647,1646,1,0,0,0,1648,155,1,0,0,0,1649,1650,3,76,38,0,1650,1651,5,97,0,0,1651,1652,3,106,53,0,1652,157,1,0,0,0,1653,1654,3,76,38,0,1654,1655,3,106,53,0,1655,159,1,0,0,0,1656,1657,3,110,55,0,1657,1658,5,29,0,0,1658,1659,3,162,81,0,1659,1660,3,128,64,0,1660,161,1,0,0,0,1661,1663,5,8,0,0,1662,1661,1,0,0,0,1662,1663,1,0,0,0,1663,1665,1,0,0,0,1664,1666,3,44,22,0,1665,1664,1,0,0,0,1665,1666,1,0,0,0,1666,1668,1,0,0,0,1667,1669,3,328,164,0,1668,1667,1,0,0,0,1668,1669,1,0,0,0,1669,1672,1,0,0,0,1670,1673,3,164,82,0,1671,1673,3,116,58,0,1672,1670,1,0,0,0,1672,1671,1,0,0,0,1672,1673,1,0,0,0,1673,1677,1,0,0,0,1674,1676,3,118,59,0,1675,1674,1,0,0,0,1676,1679,1,0,0,0,1677,1675,1,0,0,0,1677,1678,1,0,0,0,1678,163,1,0,0,0,1679,1677,1,0,0,0,1680,1681,7,11,0,0,1681,1686,3,168,84,0,1682,1683,5,200,0,0,1683,1685,3,168,84,0,1684,1682,1,0,0,0,1685,1688,1,0,0,0,1686,1684,1,0,0,0,1686,1687,1,0,0,0,1687,165,1,0,0,0,1688,1686,1,0,0,0,1689,1691,5,138,0,0,1690,1692,3,44,22,0,1691,1690,1,0,0,0,1691,1692,1,0,0,0,1692,1694,1,0,0,0,1693,1689,1,0,0,0,1693,1694,1,0,0,0,1694,1695,1,0,0,0,1695,1696,5,145,0,0,1696,1697,3,88,44,0,1697,1698,7,11,0,0,1698,1699,3,88,44,0,1699,1700,3,46,23,0,1700,167,1,0,0,0,1701,1702,3,88,44,0,1702,169,1,0,0,0,1703,1706,3,176,88,0,1704,1707,5,65,0,0,1705,1707,3,340,170,0,1706,1704,1,0,0,0,1706,1705,1,0,0,0,1707,1709,1,0,0,0,1708,1710,3,184,92,0,1709,1708,1,0,0,0,1709,1710,1,0,0,0,1710,1721,1,0,0,0,1711,1714,3,172,86,0,1712,1714,3,174,87,0,1713,1711,1,0,0,0,1713,1712,1,0,0,0,1714,1716,1,0,0,0,1715,1717,5,127,0,0,1716,1715,1,0,0,0,1716,1717,1,0,0,0,1717,1718,1,0,0,0,1718,1719,3,184,92,0,1719,1721,1,0,0,0,1720,1703,1,0,0,0,1720,1713,1,0,0,0,1721,1723,1,0,0,0,1722,1724,3,318,159,0,1723,1722,1,0,0,0,1723,1724,1,0,0,0,1724,1725,1,0,0,0,1725,1726,3,128,64,0,1726,171,1,0,0,0,1727,1729,5,39,0,0,1728,1727,1,0,0,0,1728,1729,1,0,0,0,1729,1730,1,0,0,0,1730,1731,5,56,0,0,1731,173,1,0,0,0,1732,1734,3,182,91,0,1733,1732,1,0,0,0,1733,1734,1,0,0,0,1734,1736,1,0,0,0,1735,1737,5,49,0,0,1736,1735,1,0,0,0,1736,1737,1,0,0,0,1737,1739,1,0,0,0,1738,1740,5,2,0,0,1739,1738,1,0,0,0,1739,1740,1,0,0,0,1740,1742,1,0,0,0,1741,1743,7,13,0,0,1742,1741,1,0,0,0,1742,1743,1,0,0,0,1743,1745,1,0,0,0,1744,1746,7,14,0,0,1745,1744,1,0,0,0,1745,1746,1,0,0,0,1746,175,1,0,0,0,1747,1748,3,172,86,0,1748,1749,3,178,89,0,1749,1752,1,0,0,0,1750,1752,3,174,87,0,1751,1747,1,0,0,0,1751,1750,1,0,0,0,1752,1756,1,0,0,0,1753,1755,3,340,170,0,1754,1753,1,0,0,0,1755,1758,1,0,0,0,1756,1754,1,0,0,0,1756,1757,1,0,0,0,1757,177,1,0,0,0,1758,1756,1,0,0,0,1759,1760,3,180,90,0,1760,179,1,0,0,0,1761,1762,3,174,87,0,1762,1763,3,184,92,0,1763,1769,1,0,0,0,1764,1766,3,406,203,0,1765,1767,3,418,209,0,1766,1765,1,0,0,0,1766,1767,1,0,0,0,1767,1769,1,0,0,0,1768,1761,1,0,0,0,1768,1764,1,0,0,0,1769,181,1,0,0,0,1770,1771,7,15,0,0,1771,183,1,0,0,0,1772,1774,5,8,0,0,1773,1772,1,0,0,0,1773,1774,1,0,0,0,1774,1782,1,0,0,0,1775,1778,3,186,93,0,1776,1779,3,196,98,0,1777,1779,3,116,58,0,1778,1776,1,0,0,0,1778,1777,1,0,0,0,1778,1779,1,0,0,0,1779,1783,1,0,0,0,1780,1783,3,196,98,0,1781,1783,3,116,58,0,1782,1775,1,0,0,0,1782,1780,1,0,0,0,1782,1781,1,0,0,0,1783,1787,1,0,0,0,1784,1786,3,188,94,0,1785,1784,1,0,0,0,1786,1789,1,0,0,0,1787,1785,1,0,0,0,1787,1788,1,0,0,0,1788,185,1,0,0,0,1789,1787,1,0,0,0,1790,1791,5,206,0,0,1791,1792,3,40,20,0,1792,1794,5,208,0,0,1793,1795,3,40,20,0,1794,1793,1,0,0,0,1794,1795,1,0,0,0,1795,1798,1,0,0,0,1796,1798,3,40,20,0,1797,1790,1,0,0,0,1797,1796,1,0,0,0,1798,187,1,0,0,0,1799,1804,3,118,59,0,1800,1804,3,190,95,0,1801,1804,3,192,96,0,1802,1804,3,194,97,0,1803,1799,1,0,0,0,1803,1800,1,0,0,0,1803,1801,1,0,0,0,1803,1802,1,0,0,0,1804,189,1,0,0,0,1805,1806,5,27,0,0,1806,1811,3,88,44,0,1807,1808,5,202,0,0,1808,1810,3,88,44,0,1809,1807,1,0,0,0,1810,1813,1,0,0,0,1811,1809,1,0,0,0,1811,1812,1,0,0,0,1812,191,1,0,0,0,1813,1811,1,0,0,0,1814,1815,5,88,0,0,1815,1816,5,111,0,0,1816,1817,3,236,118,0,1817,193,1,0,0,0,1818,1819,5,66,0,0,1819,1820,5,24,0,0,1820,1825,3,240,120,0,1821,1822,5,200,0,0,1822,1824,3,240,120,0,1823,1821,1,0,0,0,1824,1827,1,0,0,0,1825,1823,1,0,0,0,1825,1826,1,0,0,0,1826,195,1,0,0,0,1827,1825,1,0,0,0,1828,1830,3,200,100,0,1829,1828,1,0,0,0,1830,1831,1,0,0,0,1831,1829,1,0,0,0,1831,1832,1,0,0,0,1832,1834,1,0,0,0,1833,1835,3,198,99,0,1834,1833,1,0,0,0,1834,1835,1,0,0,0,1835,1839,1,0,0,0,1836,1838,3,200,100,0,1837,1836,1,0,0,0,1838,1841,1,0,0,0,1839,1837,1,0,0,0,1839,1840,1,0,0,0,1840,1850,1,0,0,0,1841,1839,1,0,0,0,1842,1846,3,198,99,0,1843,1845,3,200,100,0,1844,1843,1,0,0,0,1845,1848,1,0,0,0,1846,1844,1,0,0,0,1846,1847,1,0,0,0,1847,1850,1,0,0,0,1848,1846,1,0,0,0,1849,1829,1,0,0,0,1849,1842,1,0,0,0,1850,197,1,0,0,0,1851,1860,3,328,164,0,1852,1854,5,113,0,0,1853,1855,5,106,0,0,1854,1853,1,0,0,0,1854,1855,1,0,0,0,1855,1861,1,0,0,0,1856,1858,5,106,0,0,1857,1859,5,113,0,0,1858,1857,1,0,0,0,1858,1859,1,0,0,0,1859,1861,1,0,0,0,1860,1852,1,0,0,0,1860,1856,1,0,0,0,1860,1861,1,0,0,0,1861,1873,1,0,0,0,1862,1864,5,113,0,0,1863,1865,5,106,0,0,1864,1863,1,0,0,0,1864,1865,1,0,0,0,1865,1871,1,0,0,0,1866,1868,5,106,0,0,1867,1869,5,113,0,0,1868,1867,1,0,0,0,1868,1869,1,0,0,0,1869,1871,1,0,0,0,1870,1862,1,0,0,0,1870,1866,1,0,0,0,1871,1873,1,0,0,0,1872,1851,1,0,0,0,1872,1870,1,0,0,0,1873,199,1,0,0,0,1874,1880,3,202,101,0,1875,1880,3,206,103,0,1876,1880,3,210,105,0,1877,1880,3,212,106,0,1878,1880,3,214,107,0,1879,1874,1,0,0,0,1879,1875,1,0,0,0,1879,1876,1,0,0,0,1879,1877,1,0,0,0,1879,1878,1,0,0,0,1880,201,1,0,0,0,1881,1886,3,204,102,0,1882,1883,5,200,0,0,1883,1885,3,218,109,0,1884,1882,1,0,0,0,1885,1888,1,0,0,0,1886,1884,1,0,0,0,1886,1887,1,0,0,0,1887,203,1,0,0,0,1888,1886,1,0,0,0,1889,1895,5,204,0,0,1890,1891,5,158,0,0,1891,1895,5,24,0,0,1892,1893,5,47,0,0,1893,1895,5,24,0,0,1894,1889,1,0,0,0,1894,1890,1,0,0,0,1894,1892,1,0,0,0,1895,1896,1,0,0,0,1896,1897,3,218,109,0,1897,205,1,0,0,0,1898,1903,3,208,104,0,1899,1900,5,200,0,0,1900,1902,3,224,112,0,1901,1899,1,0,0,0,1902,1905,1,0,0,0,1903,1901,1,0,0,0,1903,1904,1,0,0,0,1904,207,1,0,0,0,1905,1903,1,0,0,0,1906,1907,7,16,0,0,1907,1908,3,224,112,0,1908,209,1,0,0,0,1909,1910,7,17,0,0,1910,1911,3,226,113,0,1911,211,1,0,0,0,1912,1913,7,18,0,0,1913,1914,3,228,114,0,1914,213,1,0,0,0,1915,1920,3,216,108,0,1916,1917,5,200,0,0,1917,1919,3,232,116,0,1918,1916,1,0,0,0,1919,1922,1,0,0,0,1920,1918,1,0,0,0,1920,1921,1,0,0,0,1921,215,1,0,0,0,1922,1920,1,0,0,0,1923,1924,7,19,0,0,1924,1925,3,232,116,0,1925,217,1,0,0,0,1926,1928,5,138,0,0,1927,1929,3,44,22,0,1928,1927,1,0,0,0,1928,1929,1,0,0,0,1929,1931,1,0,0,0,1930,1926,1,0,0,0,1930,1931,1,0,0,0,1931,1932,1,0,0,0,1932,1933,5,159,0,0,1933,1937,3,88,44,0,1934,1938,5,204,0,0,1935,1936,5,158,0,0,1936,1938,5,24,0,0,1937,1934,1,0,0,0,1937,1935,1,0,0,0,1938,1939,1,0,0,0,1939,1940,3,138,69,0,1940,1941,3,46,23,0,1941,1945,1,0,0,0,1942,1945,3,220,110,0,1943,1945,3,504,252,0,1944,1930,1,0,0,0,1944,1942,1,0,0,0,1944,1943,1,0,0,0,1945,219,1,0,0,0,1946,1951,3,88,44,0,1947,1948,5,202,0,0,1948,1950,3,88,44,0,1949,1947,1,0,0,0,1950,1953,1,0,0,0,1951,1949,1,0,0,0,1951,1952,1,0,0,0,1952,221,1,0,0,0,1953,1951,1,0,0,0,1954,1956,5,138,0,0,1955,1957,3,44,22,0,1956,1955,1,0,0,0,1956,1957,1,0,0,0,1957,1959,1,0,0,0,1958,1954,1,0,0,0,1958,1959,1,0,0,0,1959,1960,1,0,0,0,1960,1961,5,147,0,0,1961,1962,3,136,68,0,1962,1963,7,16,0,0,1963,1964,3,138,69,0,1964,1965,3,46,23,0,1965,223,1,0,0,0,1966,1971,3,88,44,0,1967,1968,5,202,0,0,1968,1970,3,88,44,0,1969,1967,1,0,0,0,1970,1973,1,0,0,0,1971,1969,1,0,0,0,1971,1972,1,0,0,0,1972,225,1,0,0,0,1973,1971,1,0,0,0,1974,1979,3,88,44,0,1975,1976,5,202,0,0,1976,1978,3,88,44,0,1977,1975,1,0,0,0,1978,1981,1,0,0,0,1979,1977,1,0,0,0,1979,1980,1,0,0,0,1980,227,1,0,0,0,1981,1979,1,0,0,0,1982,1987,3,88,44,0,1983,1984,5,202,0,0,1984,1986,3,88,44,0,1985,1983,1,0,0,0,1986,1989,1,0,0,0,1987,1985,1,0,0,0,1987,1988,1,0,0,0,1988,229,1,0,0,0,1989,1987,1,0,0,0,1990,1992,5,138,0,0,1991,1993,3,44,22,0,1992,1991,1,0,0,0,1992,1993,1,0,0,0,1993,1995,1,0,0,0,1994,1990,1,0,0,0,1994,1995,1,0,0,0,1995,1996,1,0,0,0,1996,1997,5,126,0,0,1997,1998,3,136,68,0,1998,1999,7,19,0,0,1999,2e3,3,138,69,0,2e3,2001,3,46,23,0,2001,231,1,0,0,0,2002,2007,3,88,44,0,2003,2004,5,202,0,0,2004,2006,3,88,44,0,2005,2003,1,0,0,0,2006,2009,1,0,0,0,2007,2005,1,0,0,0,2007,2008,1,0,0,0,2008,233,1,0,0,0,2009,2007,1,0,0,0,2010,2012,5,89,0,0,2011,2013,3,44,22,0,2012,2011,1,0,0,0,2012,2013,1,0,0,0,2013,2015,1,0,0,0,2014,2010,1,0,0,0,2014,2015,1,0,0,0,2015,2016,1,0,0,0,2016,2017,5,88,0,0,2017,2022,3,88,44,0,2018,2019,5,202,0,0,2019,2021,3,88,44,0,2020,2018,1,0,0,0,2021,2024,1,0,0,0,2022,2020,1,0,0,0,2022,2023,1,0,0,0,2023,2025,1,0,0,0,2024,2022,1,0,0,0,2025,2026,5,111,0,0,2026,2031,3,88,44,0,2027,2028,5,202,0,0,2028,2030,3,88,44,0,2029,2027,1,0,0,0,2030,2033,1,0,0,0,2031,2029,1,0,0,0,2031,2032,1,0,0,0,2032,2034,1,0,0,0,2033,2031,1,0,0,0,2034,2035,3,46,23,0,2035,235,1,0,0,0,2036,2041,3,88,44,0,2037,2038,5,202,0,0,2038,2040,3,88,44,0,2039,2037,1,0,0,0,2040,2043,1,0,0,0,2041,2039,1,0,0,0,2041,2042,1,0,0,0,2042,237,1,0,0,0,2043,2041,1,0,0,0,2044,2049,5,67,0,0,2045,2047,3,44,22,0,2046,2045,1,0,0,0,2046,2047,1,0,0,0,2047,2048,1,0,0,0,2048,2050,5,111,0,0,2049,2046,1,0,0,0,2049,2050,1,0,0,0,2050,2051,1,0,0,0,2051,2052,3,88,44,0,2052,2053,5,24,0,0,2053,2054,3,88,44,0,2054,2055,3,46,23,0,2055,239,1,0,0,0,2056,2057,3,88,44,0,2057,241,1,0,0,0,2058,2059,3,110,55,0,2059,2060,5,43,0,0,2060,2061,3,162,81,0,2061,2062,3,128,64,0,2062,243,1,0,0,0,2063,2064,3,110,55,0,2064,2065,5,28,0,0,2065,2066,3,162,81,0,2066,2067,3,128,64,0,2067,245,1,0,0,0,2068,2069,3,110,55,0,2069,2070,5,144,0,0,2070,2071,3,162,81,0,2071,2072,3,128,64,0,2072,247,1,0,0,0,2073,2074,3,110,55,0,2074,2075,5,16,0,0,2075,2076,3,162,81,0,2076,2077,3,128,64,0,2077,249,1,0,0,0,2078,2079,3,110,55,0,2079,2080,5,16,0,0,2080,2081,5,144,0,0,2081,2082,3,162,81,0,2082,2083,3,128,64,0,2083,251,1,0,0,0,2084,2085,3,176,88,0,2085,2093,5,38,0,0,2086,2088,3,184,92,0,2087,2086,1,0,0,0,2087,2088,1,0,0,0,2088,2090,1,0,0,0,2089,2091,3,318,159,0,2090,2089,1,0,0,0,2090,2091,1,0,0,0,2091,2094,1,0,0,0,2092,2094,3,254,127,0,2093,2087,1,0,0,0,2093,2092,1,0,0,0,2094,2095,1,0,0,0,2095,2096,3,128,64,0,2096,253,1,0,0,0,2097,2100,3,256,128,0,2098,2100,3,258,129,0,2099,2097,1,0,0,0,2099,2098,1,0,0,0,2100,255,1,0,0,0,2101,2103,3,184,92,0,2102,2101,1,0,0,0,2102,2103,1,0,0,0,2103,2104,1,0,0,0,2104,2110,5,74,0,0,2105,2107,5,8,0,0,2106,2108,5,74,0,0,2107,2106,1,0,0,0,2107,2108,1,0,0,0,2108,2110,1,0,0,0,2109,2102,1,0,0,0,2109,2105,1,0,0,0,2109,2110,1,0,0,0,2110,2111,1,0,0,0,2111,2112,3,260,130,0,2112,2113,5,154,0,0,2113,2114,3,260,130,0,2114,257,1,0,0,0,2115,2117,3,184,92,0,2116,2115,1,0,0,0,2116,2117,1,0,0,0,2117,2118,1,0,0,0,2118,2119,5,196,0,0,2119,2120,3,260,130,0,2120,2121,5,200,0,0,2121,2126,3,260,130,0,2122,2123,5,200,0,0,2123,2125,3,260,130,0,2124,2122,1,0,0,0,2125,2128,1,0,0,0,2126,2124,1,0,0,0,2126,2127,1,0,0,0,2127,2129,1,0,0,0,2128,2126,1,0,0,0,2129,2130,5,197,0,0,2130,259,1,0,0,0,2131,2132,3,262,131,0,2132,261,1,0,0,0,2133,2135,3,264,132,0,2134,2133,1,0,0,0,2134,2135,1,0,0,0,2135,2139,1,0,0,0,2136,2137,3,40,20,0,2137,2138,7,17,0,0,2138,2140,1,0,0,0,2139,2136,1,0,0,0,2139,2140,1,0,0,0,2140,2141,1,0,0,0,2141,2142,3,226,113,0,2142,263,1,0,0,0,2143,2144,3,266,133,0,2144,265,1,0,0,0,2145,2146,3,328,164,0,2146,267,1,0,0,0,2147,2148,3,176,88,0,2148,2149,5,22,0,0,2149,2150,3,270,135,0,2150,2151,3,128,64,0,2151,269,1,0,0,0,2152,2158,3,184,92,0,2153,2154,5,111,0,0,2154,2155,3,260,130,0,2155,2156,5,207,0,0,2156,2157,3,260,130,0,2157,2159,1,0,0,0,2158,2153,1,0,0,0,2158,2159,1,0,0,0,2159,2173,1,0,0,0,2160,2162,5,8,0,0,2161,2160,1,0,0,0,2161,2162,1,0,0,0,2162,2170,1,0,0,0,2163,2165,5,111,0,0,2164,2163,1,0,0,0,2164,2165,1,0,0,0,2165,2166,1,0,0,0,2166,2167,3,260,130,0,2167,2168,5,207,0,0,2168,2169,3,260,130,0,2169,2171,1,0,0,0,2170,2164,1,0,0,0,2170,2171,1,0,0,0,2171,2173,1,0,0,0,2172,2152,1,0,0,0,2172,2161,1,0,0,0,2173,271,1,0,0,0,2174,2175,3,176,88,0,2175,2176,5,150,0,0,2176,2177,3,274,137,0,2177,2178,3,128,64,0,2178,273,1,0,0,0,2179,2185,3,184,92,0,2180,2181,5,69,0,0,2181,2182,3,260,130,0,2182,2183,5,152,0,0,2183,2184,3,260,130,0,2184,2186,1,0,0,0,2185,2180,1,0,0,0,2185,2186,1,0,0,0,2186,2200,1,0,0,0,2187,2189,5,8,0,0,2188,2187,1,0,0,0,2188,2189,1,0,0,0,2189,2197,1,0,0,0,2190,2192,5,69,0,0,2191,2190,1,0,0,0,2191,2192,1,0,0,0,2192,2193,1,0,0,0,2193,2194,3,260,130,0,2194,2195,5,152,0,0,2195,2196,3,260,130,0,2196,2198,1,0,0,0,2197,2191,1,0,0,0,2197,2198,1,0,0,0,2198,2200,1,0,0,0,2199,2179,1,0,0,0,2199,2188,1,0,0,0,2200,275,1,0,0,0,2201,2202,3,110,55,0,2202,2203,5,20,0,0,2203,2204,3,162,81,0,2204,2205,3,128,64,0,2205,277,1,0,0,0,2206,2207,3,176,88,0,2207,2208,5,143,0,0,2208,2210,3,184,92,0,2209,2211,3,318,159,0,2210,2209,1,0,0,0,2210,2211,1,0,0,0,2211,2212,1,0,0,0,2212,2213,3,128,64,0,2213,279,1,0,0,0,2214,2215,3,110,55,0,2215,2216,5,75,0,0,2216,2217,3,162,81,0,2217,2218,3,282,141,0,2218,281,1,0,0,0,2219,2225,5,205,0,0,2220,2221,5,214,0,0,2221,2222,3,284,142,0,2222,2223,5,216,0,0,2223,2225,1,0,0,0,2224,2219,1,0,0,0,2224,2220,1,0,0,0,2225,283,1,0,0,0,2226,2230,3,390,195,0,2227,2230,3,130,65,0,2228,2230,3,286,143,0,2229,2226,1,0,0,0,2229,2227,1,0,0,0,2229,2228,1,0,0,0,2230,2233,1,0,0,0,2231,2229,1,0,0,0,2231,2232,1,0,0,0,2232,2235,1,0,0,0,2233,2231,1,0,0,0,2234,2236,3,288,144,0,2235,2234,1,0,0,0,2235,2236,1,0,0,0,2236,285,1,0,0,0,2237,2238,3,76,38,0,2238,2239,5,134,0,0,2239,2240,3,106,53,0,2240,287,1,0,0,0,2241,2242,3,76,38,0,2242,2243,3,0,0,0,2243,289,1,0,0,0,2244,2245,3,176,88,0,2245,2246,5,63,0,0,2246,2248,3,184,92,0,2247,2249,3,318,159,0,2248,2247,1,0,0,0,2248,2249,1,0,0,0,2249,2250,1,0,0,0,2250,2251,3,282,141,0,2251,291,1,0,0,0,2252,2253,3,110,55,0,2253,2254,5,121,0,0,2254,2255,3,162,81,0,2255,2256,3,282,141,0,2256,293,1,0,0,0,2257,2258,3,176,88,0,2258,2259,5,23,0,0,2259,2261,3,184,92,0,2260,2262,3,318,159,0,2261,2260,1,0,0,0,2261,2262,1,0,0,0,2262,2263,1,0,0,0,2263,2264,3,282,141,0,2264,295,1,0,0,0,2265,2266,3,176,88,0,2266,2268,5,87,0,0,2267,2269,7,8,0,0,2268,2267,1,0,0,0,2268,2269,1,0,0,0,2269,2270,1,0,0,0,2270,2272,3,184,92,0,2271,2273,3,318,159,0,2272,2271,1,0,0,0,2272,2273,1,0,0,0,2273,2274,1,0,0,0,2274,2275,3,282,141,0,2275,297,1,0,0,0,2276,2281,3,88,44,0,2277,2278,5,202,0,0,2278,2280,3,88,44,0,2279,2277,1,0,0,0,2280,2283,1,0,0,0,2281,2279,1,0,0,0,2281,2282,1,0,0,0,2282,299,1,0,0,0,2283,2281,1,0,0,0,2284,2285,3,110,55,0,2285,2286,5,84,0,0,2286,2287,3,162,81,0,2287,2288,3,128,64,0,2288,301,1,0,0,0,2289,2290,3,176,88,0,2290,2291,5,70,0,0,2291,2292,3,306,153,0,2292,2293,3,128,64,0,2293,303,1,0,0,0,2294,2295,3,176,88,0,2295,2296,5,150,0,0,2296,2297,5,70,0,0,2297,2298,3,306,153,0,2298,2299,3,128,64,0,2299,305,1,0,0,0,2300,2302,3,184,92,0,2301,2303,3,318,159,0,2302,2301,1,0,0,0,2302,2303,1,0,0,0,2303,2306,1,0,0,0,2304,2305,5,111,0,0,2305,2307,3,308,154,0,2306,2304,1,0,0,0,2306,2307,1,0,0,0,2307,2313,1,0,0,0,2308,2309,5,74,0,0,2309,2310,3,314,157,0,2310,2311,5,154,0,0,2311,2312,3,314,157,0,2312,2314,1,0,0,0,2313,2308,1,0,0,0,2313,2314,1,0,0,0,2314,2340,1,0,0,0,2315,2317,5,8,0,0,2316,2315,1,0,0,0,2316,2317,1,0,0,0,2317,2318,1,0,0,0,2318,2319,3,314,157,0,2319,2320,5,154,0,0,2320,2321,3,314,157,0,2321,2340,1,0,0,0,2322,2324,3,418,209,0,2323,2322,1,0,0,0,2323,2324,1,0,0,0,2324,2326,1,0,0,0,2325,2327,3,318,159,0,2326,2325,1,0,0,0,2326,2327,1,0,0,0,2327,2330,1,0,0,0,2328,2329,5,111,0,0,2329,2331,3,570,285,0,2330,2328,1,0,0,0,2330,2331,1,0,0,0,2331,2337,1,0,0,0,2332,2333,5,74,0,0,2333,2334,3,314,157,0,2334,2335,5,154,0,0,2335,2336,3,314,157,0,2336,2338,1,0,0,0,2337,2332,1,0,0,0,2337,2338,1,0,0,0,2338,2340,1,0,0,0,2339,2300,1,0,0,0,2339,2316,1,0,0,0,2339,2323,1,0,0,0,2340,307,1,0,0,0,2341,2342,3,310,155,0,2342,309,1,0,0,0,2343,2345,3,44,22,0,2344,2343,1,0,0,0,2344,2345,1,0,0,0,2345,2346,1,0,0,0,2346,2363,3,318,159,0,2347,2349,3,44,22,0,2348,2347,1,0,0,0,2348,2349,1,0,0,0,2349,2350,1,0,0,0,2350,2352,3,312,156,0,2351,2353,3,318,159,0,2352,2351,1,0,0,0,2352,2353,1,0,0,0,2353,2363,1,0,0,0,2354,2356,3,220,110,0,2355,2357,3,328,164,0,2356,2355,1,0,0,0,2356,2357,1,0,0,0,2357,2363,1,0,0,0,2358,2360,3,328,164,0,2359,2361,3,220,110,0,2360,2359,1,0,0,0,2360,2361,1,0,0,0,2361,2363,1,0,0,0,2362,2344,1,0,0,0,2362,2348,1,0,0,0,2362,2354,1,0,0,0,2362,2358,1,0,0,0,2363,311,1,0,0,0,2364,2366,3,200,100,0,2365,2364,1,0,0,0,2366,2367,1,0,0,0,2367,2365,1,0,0,0,2367,2368,1,0,0,0,2368,2370,1,0,0,0,2369,2371,3,198,99,0,2370,2369,1,0,0,0,2370,2371,1,0,0,0,2371,2375,1,0,0,0,2372,2374,3,200,100,0,2373,2372,1,0,0,0,2374,2377,1,0,0,0,2375,2373,1,0,0,0,2375,2376,1,0,0,0,2376,2385,1,0,0,0,2377,2375,1,0,0,0,2378,2380,3,198,99,0,2379,2381,3,200,100,0,2380,2379,1,0,0,0,2381,2382,1,0,0,0,2382,2380,1,0,0,0,2382,2383,1,0,0,0,2383,2385,1,0,0,0,2384,2365,1,0,0,0,2384,2378,1,0,0,0,2385,313,1,0,0,0,2386,2387,3,316,158,0,2387,315,1,0,0,0,2388,2393,3,88,44,0,2389,2390,5,202,0,0,2390,2392,3,88,44,0,2391,2389,1,0,0,0,2392,2395,1,0,0,0,2393,2391,1,0,0,0,2393,2394,1,0,0,0,2394,317,1,0,0,0,2395,2393,1,0,0,0,2396,2397,3,320,160,0,2397,319,1,0,0,0,2398,2405,5,207,0,0,2399,2405,5,184,0,0,2400,2402,5,46,0,0,2401,2403,7,20,0,0,2402,2401,1,0,0,0,2402,2403,1,0,0,0,2403,2405,1,0,0,0,2404,2398,1,0,0,0,2404,2399,1,0,0,0,2404,2400,1,0,0,0,2405,2406,1,0,0,0,2406,2407,3,0,0,0,2407,321,1,0,0,0,2408,2411,3,324,162,0,2409,2411,3,326,163,0,2410,2408,1,0,0,0,2410,2409,1,0,0,0,2411,323,1,0,0,0,2412,2414,5,103,0,0,2413,2415,3,44,22,0,2414,2413,1,0,0,0,2414,2415,1,0,0,0,2415,2416,1,0,0,0,2416,2417,3,208,104,0,2417,2418,3,128,64,0,2418,325,1,0,0,0,2419,2421,5,103,0,0,2420,2422,3,44,22,0,2421,2420,1,0,0,0,2421,2422,1,0,0,0,2422,2423,1,0,0,0,2423,2424,3,332,166,0,2424,2425,3,128,64,0,2425,327,1,0,0,0,2426,2427,3,330,165,0,2427,329,1,0,0,0,2428,2429,3,332,166,0,2429,331,1,0,0,0,2430,2434,5,211,0,0,2431,2432,3,334,167,0,2432,2433,5,181,0,0,2433,2435,1,0,0,0,2434,2431,1,0,0,0,2434,2435,1,0,0,0,2435,2436,1,0,0,0,2436,2437,3,334,167,0,2437,2438,5,212,0,0,2438,333,1,0,0,0,2439,2442,3,24,12,0,2440,2442,3,10,5,0,2441,2439,1,0,0,0,2441,2440,1,0,0,0,2442,335,1,0,0,0,2443,2444,3,110,55,0,2444,2445,5,101,0,0,2445,2446,3,162,81,0,2446,2447,3,128,64,0,2447,337,1,0,0,0,2448,2449,5,192,0,0,2449,2453,3,342,171,0,2450,2451,5,192,0,0,2451,2453,3,874,437,0,2452,2448,1,0,0,0,2452,2450,1,0,0,0,2453,339,1,0,0,0,2454,2455,5,192,0,0,2455,2459,3,342,171,0,2456,2457,5,192,0,0,2457,2459,3,874,437,0,2458,2454,1,0,0,0,2458,2456,1,0,0,0,2459,341,1,0,0,0,2460,2461,3,220,110,0,2461,343,1,0,0,0,2462,2464,3,340,170,0,2463,2462,1,0,0,0,2464,2467,1,0,0,0,2465,2463,1,0,0,0,2465,2466,1,0,0,0,2466,2468,1,0,0,0,2467,2465,1,0,0,0,2468,2469,7,21,0,0,2469,2479,3,346,173,0,2470,2471,5,1,0,0,2471,2476,3,54,27,0,2472,2473,5,200,0,0,2473,2475,3,54,27,0,2474,2472,1,0,0,0,2475,2478,1,0,0,0,2476,2474,1,0,0,0,2476,2477,1,0,0,0,2477,2480,1,0,0,0,2478,2476,1,0,0,0,2479,2470,1,0,0,0,2479,2480,1,0,0,0,2480,2481,1,0,0,0,2481,2482,3,348,174,0,2482,345,1,0,0,0,2483,2485,3,44,22,0,2484,2483,1,0,0,0,2484,2485,1,0,0,0,2485,2489,1,0,0,0,2486,2490,5,204,0,0,2487,2488,5,158,0,0,2488,2490,5,24,0,0,2489,2486,1,0,0,0,2489,2487,1,0,0,0,2490,2492,1,0,0,0,2491,2484,1,0,0,0,2491,2492,1,0,0,0,2492,2493,1,0,0,0,2493,2494,3,220,110,0,2494,347,1,0,0,0,2495,2516,5,205,0,0,2496,2500,5,214,0,0,2497,2499,3,350,175,0,2498,2497,1,0,0,0,2499,2502,1,0,0,0,2500,2498,1,0,0,0,2500,2501,1,0,0,0,2501,2503,1,0,0,0,2502,2500,1,0,0,0,2503,2516,5,216,0,0,2504,2511,5,214,0,0,2505,2510,3,394,197,0,2506,2510,3,876,438,0,2507,2510,3,86,43,0,2508,2510,3,90,45,0,2509,2505,1,0,0,0,2509,2506,1,0,0,0,2509,2507,1,0,0,0,2509,2508,1,0,0,0,2510,2513,1,0,0,0,2511,2509,1,0,0,0,2511,2512,1,0,0,0,2512,2514,1,0,0,0,2513,2511,1,0,0,0,2514,2516,5,216,0,0,2515,2495,1,0,0,0,2515,2496,1,0,0,0,2515,2504,1,0,0,0,2516,349,1,0,0,0,2517,2522,3,82,41,0,2518,2522,3,352,176,0,2519,2522,3,86,43,0,2520,2522,3,90,45,0,2521,2517,1,0,0,0,2521,2518,1,0,0,0,2521,2519,1,0,0,0,2521,2520,1,0,0,0,2522,351,1,0,0,0,2523,2524,3,354,177,0,2524,353,1,0,0,0,2525,2527,5,65,0,0,2526,2525,1,0,0,0,2526,2527,1,0,0,0,2527,2529,1,0,0,0,2528,2530,7,19,0,0,2529,2528,1,0,0,0,2529,2530,1,0,0,0,2530,2531,1,0,0,0,2531,2533,3,232,116,0,2532,2534,3,196,98,0,2533,2532,1,0,0,0,2533,2534,1,0,0,0,2534,2536,1,0,0,0,2535,2537,3,318,159,0,2536,2535,1,0,0,0,2536,2537,1,0,0,0,2537,2538,1,0,0,0,2538,2539,3,348,174,0,2539,355,1,0,0,0,2540,2542,3,340,170,0,2541,2540,1,0,0,0,2542,2545,1,0,0,0,2543,2541,1,0,0,0,2543,2544,1,0,0,0,2544,2546,1,0,0,0,2545,2543,1,0,0,0,2546,2547,3,360,180,0,2547,2548,3,362,181,0,2548,357,1,0,0,0,2549,2551,5,141,0,0,2550,2549,1,0,0,0,2550,2551,1,0,0,0,2551,2552,1,0,0,0,2552,2556,5,94,0,0,2553,2555,3,340,170,0,2554,2553,1,0,0,0,2555,2558,1,0,0,0,2556,2554,1,0,0,0,2556,2557,1,0,0,0,2557,2559,1,0,0,0,2558,2556,1,0,0,0,2559,2560,3,360,180,0,2560,2561,3,362,181,0,2561,359,1,0,0,0,2562,2564,5,115,0,0,2563,2565,3,44,22,0,2564,2563,1,0,0,0,2564,2565,1,0,0,0,2565,361,1,0,0,0,2566,2576,5,205,0,0,2567,2571,5,214,0,0,2568,2570,3,370,185,0,2569,2568,1,0,0,0,2570,2573,1,0,0,0,2571,2569,1,0,0,0,2571,2572,1,0,0,0,2572,2574,1,0,0,0,2573,2571,1,0,0,0,2574,2576,5,216,0,0,2575,2566,1,0,0,0,2575,2567,1,0,0,0,2576,363,1,0,0,0,2577,2578,3,76,38,0,2578,2579,5,68,0,0,2579,2580,3,0,0,0,2580,2581,5,205,0,0,2581,365,1,0,0,0,2582,2584,3,44,22,0,2583,2582,1,0,0,0,2583,2584,1,0,0,0,2584,2585,1,0,0,0,2585,2587,5,74,0,0,2586,2583,1,0,0,0,2586,2587,1,0,0,0,2587,2588,1,0,0,0,2588,2593,3,88,44,0,2589,2590,5,200,0,0,2590,2592,3,88,44,0,2591,2589,1,0,0,0,2592,2595,1,0,0,0,2593,2591,1,0,0,0,2593,2594,1,0,0,0,2594,2596,1,0,0,0,2595,2593,1,0,0,0,2596,2597,5,154,0,0,2597,2602,3,88,44,0,2598,2599,5,200,0,0,2599,2601,3,88,44,0,2600,2598,1,0,0,0,2601,2604,1,0,0,0,2602,2600,1,0,0,0,2602,2603,1,0,0,0,2603,367,1,0,0,0,2604,2602,1,0,0,0,2605,2606,3,58,29,0,2606,369,1,0,0,0,2607,2612,3,372,186,0,2608,2612,3,364,182,0,2609,2612,3,86,43,0,2610,2612,3,90,45,0,2611,2607,1,0,0,0,2611,2608,1,0,0,0,2611,2609,1,0,0,0,2611,2610,1,0,0,0,2612,371,1,0,0,0,2613,2616,3,76,38,0,2614,2617,3,374,187,0,2615,2617,3,376,188,0,2616,2614,1,0,0,0,2616,2615,1,0,0,0,2617,373,1,0,0,0,2618,2649,3,356,178,0,2619,2649,3,358,179,0,2620,2649,3,58,29,0,2621,2649,3,52,26,0,2622,2649,3,446,223,0,2623,2649,3,450,225,0,2624,2649,3,462,231,0,2625,2649,3,464,232,0,2626,2649,3,488,244,0,2627,2649,3,492,246,0,2628,2649,3,506,253,0,2629,2649,3,556,278,0,2630,2649,3,520,260,0,2631,2649,3,496,248,0,2632,2649,3,574,287,0,2633,2649,3,748,374,0,2634,2649,3,686,343,0,2635,2649,3,760,380,0,2636,2649,3,768,384,0,2637,2649,3,808,404,0,2638,2649,3,812,406,0,2639,2649,3,824,412,0,2640,2649,3,828,414,0,2641,2649,3,836,418,0,2642,2649,3,842,421,0,2643,2649,3,864,432,0,2644,2649,3,868,434,0,2645,2649,3,872,436,0,2646,2649,3,550,275,0,2647,2649,3,880,440,0,2648,2618,1,0,0,0,2648,2619,1,0,0,0,2648,2620,1,0,0,0,2648,2621,1,0,0,0,2648,2622,1,0,0,0,2648,2623,1,0,0,0,2648,2624,1,0,0,0,2648,2625,1,0,0,0,2648,2626,1,0,0,0,2648,2627,1,0,0,0,2648,2628,1,0,0,0,2648,2629,1,0,0,0,2648,2630,1,0,0,0,2648,2631,1,0,0,0,2648,2632,1,0,0,0,2648,2633,1,0,0,0,2648,2634,1,0,0,0,2648,2635,1,0,0,0,2648,2636,1,0,0,0,2648,2637,1,0,0,0,2648,2638,1,0,0,0,2648,2639,1,0,0,0,2648,2640,1,0,0,0,2648,2641,1,0,0,0,2648,2642,1,0,0,0,2648,2643,1,0,0,0,2648,2644,1,0,0,0,2648,2645,1,0,0,0,2648,2646,1,0,0,0,2648,2647,1,0,0,0,2649,375,1,0,0,0,2650,2653,3,432,216,0,2651,2653,3,436,218,0,2652,2650,1,0,0,0,2652,2651,1,0,0,0,2653,377,1,0,0,0,2654,2655,7,22,0,0,2655,379,1,0,0,0,2656,2657,3,340,170,0,2657,381,1,0,0,0,2658,2660,3,378,189,0,2659,2658,1,0,0,0,2659,2660,1,0,0,0,2660,2664,1,0,0,0,2661,2663,3,380,190,0,2662,2661,1,0,0,0,2663,2666,1,0,0,0,2664,2662,1,0,0,0,2664,2665,1,0,0,0,2665,383,1,0,0,0,2666,2664,1,0,0,0,2667,2668,3,386,193,0,2668,2669,3,388,194,0,2669,385,1,0,0,0,2670,2672,3,44,22,0,2671,2670,1,0,0,0,2671,2672,1,0,0,0,2672,2674,1,0,0,0,2673,2675,3,444,222,0,2674,2673,1,0,0,0,2674,2675,1,0,0,0,2675,387,1,0,0,0,2676,2686,5,205,0,0,2677,2681,5,214,0,0,2678,2680,3,390,195,0,2679,2678,1,0,0,0,2680,2683,1,0,0,0,2681,2679,1,0,0,0,2681,2682,1,0,0,0,2682,2684,1,0,0,0,2683,2681,1,0,0,0,2684,2686,5,216,0,0,2685,2676,1,0,0,0,2685,2677,1,0,0,0,2686,389,1,0,0,0,2687,2704,3,90,45,0,2688,2689,3,76,38,0,2689,2690,3,392,196,0,2690,2704,1,0,0,0,2691,2693,3,480,240,0,2692,2691,1,0,0,0,2692,2693,1,0,0,0,2693,2694,1,0,0,0,2694,2695,3,76,38,0,2695,2696,3,434,217,0,2696,2704,1,0,0,0,2697,2699,3,480,240,0,2698,2697,1,0,0,0,2698,2699,1,0,0,0,2699,2700,1,0,0,0,2700,2701,3,76,38,0,2701,2702,3,436,218,0,2702,2704,1,0,0,0,2703,2687,1,0,0,0,2703,2688,1,0,0,0,2703,2692,1,0,0,0,2703,2698,1,0,0,0,2704,391,1,0,0,0,2705,2710,5,7,0,0,2706,2707,5,206,0,0,2707,2708,3,40,20,0,2708,2709,5,208,0,0,2709,2711,1,0,0,0,2710,2706,1,0,0,0,2710,2711,1,0,0,0,2711,2713,1,0,0,0,2712,2714,3,40,20,0,2713,2712,1,0,0,0,2713,2714,1,0,0,0,2714,2715,1,0,0,0,2715,2716,5,71,0,0,2716,2717,3,88,44,0,2717,2718,3,46,23,0,2718,2724,1,0,0,0,2719,2720,5,164,0,0,2720,2724,3,442,221,0,2721,2724,3,374,187,0,2722,2724,3,432,216,0,2723,2705,1,0,0,0,2723,2719,1,0,0,0,2723,2721,1,0,0,0,2723,2722,1,0,0,0,2724,393,1,0,0,0,2725,2726,3,76,38,0,2726,2727,3,374,187,0,2727,395,1,0,0,0,2728,2729,3,76,38,0,2729,2730,5,164,0,0,2730,2731,3,442,221,0,2731,397,1,0,0,0,2732,2733,3,76,38,0,2733,2734,3,432,216,0,2734,399,1,0,0,0,2735,2736,3,76,38,0,2736,2737,3,438,219,0,2737,401,1,0,0,0,2738,2739,3,76,38,0,2739,2740,3,440,220,0,2740,403,1,0,0,0,2741,2743,3,182,91,0,2742,2741,1,0,0,0,2742,2743,1,0,0,0,2743,2745,1,0,0,0,2744,2746,5,49,0,0,2745,2744,1,0,0,0,2745,2746,1,0,0,0,2746,2748,1,0,0,0,2747,2749,7,22,0,0,2748,2747,1,0,0,0,2748,2749,1,0,0,0,2749,2751,1,0,0,0,2750,2752,5,40,0,0,2751,2750,1,0,0,0,2751,2752,1,0,0,0,2752,405,1,0,0,0,2753,2755,3,404,202,0,2754,2756,5,127,0,0,2755,2754,1,0,0,0,2755,2756,1,0,0,0,2756,407,1,0,0,0,2757,2758,5,56,0,0,2758,2759,3,178,89,0,2759,409,1,0,0,0,2760,2761,3,340,170,0,2761,411,1,0,0,0,2762,2765,3,408,204,0,2763,2765,3,406,203,0,2764,2762,1,0,0,0,2764,2763,1,0,0,0,2765,413,1,0,0,0,2766,2770,3,412,206,0,2767,2769,3,410,205,0,2768,2767,1,0,0,0,2769,2772,1,0,0,0,2770,2768,1,0,0,0,2770,2771,1,0,0,0,2771,415,1,0,0,0,2772,2770,1,0,0,0,2773,2775,3,418,209,0,2774,2773,1,0,0,0,2774,2775,1,0,0,0,2775,2776,1,0,0,0,2776,2777,3,420,210,0,2777,417,1,0,0,0,2778,2780,3,44,22,0,2779,2781,3,196,98,0,2780,2779,1,0,0,0,2780,2781,1,0,0,0,2781,2784,1,0,0,0,2782,2784,3,196,98,0,2783,2778,1,0,0,0,2783,2782,1,0,0,0,2784,419,1,0,0,0,2785,2787,3,318,159,0,2786,2785,1,0,0,0,2786,2787,1,0,0,0,2787,2788,1,0,0,0,2788,2789,3,422,211,0,2789,421,1,0,0,0,2790,2791,3,388,194,0,2791,423,1,0,0,0,2792,2793,3,404,202,0,2793,2794,3,416,208,0,2794,425,1,0,0,0,2795,2798,3,408,204,0,2796,2798,3,404,202,0,2797,2795,1,0,0,0,2797,2796,1,0,0,0,2798,2799,1,0,0,0,2799,2800,5,127,0,0,2800,2801,3,416,208,0,2801,427,1,0,0,0,2802,2803,3,408,204,0,2803,2804,3,184,92,0,2804,2805,3,420,210,0,2805,429,1,0,0,0,2806,2810,3,226,113,0,2807,2809,3,200,100,0,2808,2807,1,0,0,0,2809,2812,1,0,0,0,2810,2808,1,0,0,0,2810,2811,1,0,0,0,2811,2813,1,0,0,0,2812,2810,1,0,0,0,2813,2814,3,422,211,0,2814,431,1,0,0,0,2815,2824,3,426,213,0,2816,2824,3,428,214,0,2817,2824,3,448,224,0,2818,2824,3,458,229,0,2819,2824,3,516,258,0,2820,2824,3,518,259,0,2821,2824,3,882,441,0,2822,2824,3,424,212,0,2823,2815,1,0,0,0,2823,2816,1,0,0,0,2823,2817,1,0,0,0,2823,2818,1,0,0,0,2823,2819,1,0,0,0,2823,2820,1,0,0,0,2823,2821,1,0,0,0,2823,2822,1,0,0,0,2824,433,1,0,0,0,2825,2827,5,56,0,0,2826,2828,3,40,20,0,2827,2826,1,0,0,0,2827,2828,1,0,0,0,2828,2830,1,0,0,0,2829,2831,3,264,132,0,2830,2829,1,0,0,0,2830,2831,1,0,0,0,2831,2833,1,0,0,0,2832,2834,5,106,0,0,2833,2832,1,0,0,0,2833,2834,1,0,0,0,2834,2835,1,0,0,0,2835,2836,3,436,218,0,2836,435,1,0,0,0,2837,2840,3,438,219,0,2838,2840,3,440,220,0,2839,2837,1,0,0,0,2839,2838,1,0,0,0,2840,437,1,0,0,0,2841,2857,3,470,235,0,2842,2857,3,472,236,0,2843,2857,3,474,237,0,2844,2857,3,478,239,0,2845,2857,3,490,245,0,2846,2857,3,494,247,0,2847,2857,3,852,426,0,2848,2857,3,870,435,0,2849,2857,3,502,251,0,2850,2857,3,508,254,0,2851,2857,3,536,268,0,2852,2857,3,552,276,0,2853,2857,3,558,279,0,2854,2857,3,566,283,0,2855,2857,3,568,284,0,2856,2841,1,0,0,0,2856,2842,1,0,0,0,2856,2843,1,0,0,0,2856,2844,1,0,0,0,2856,2845,1,0,0,0,2856,2846,1,0,0,0,2856,2847,1,0,0,0,2856,2848,1,0,0,0,2856,2849,1,0,0,0,2856,2850,1,0,0,0,2856,2851,1,0,0,0,2856,2852,1,0,0,0,2856,2853,1,0,0,0,2856,2854,1,0,0,0,2856,2855,1,0,0,0,2857,439,1,0,0,0,2858,2875,3,592,296,0,2859,2875,3,750,375,0,2860,2875,3,714,357,0,2861,2875,3,762,381,0,2862,2875,3,796,398,0,2863,2875,3,810,405,0,2864,2875,3,814,407,0,2865,2875,3,826,413,0,2866,2875,3,830,415,0,2867,2875,3,838,419,0,2868,2875,3,866,433,0,2869,2875,3,596,298,0,2870,2875,3,718,359,0,2871,2875,3,840,420,0,2872,2875,3,764,382,0,2873,2875,3,798,399,0,2874,2858,1,0,0,0,2874,2859,1,0,0,0,2874,2860,1,0,0,0,2874,2861,1,0,0,0,2874,2862,1,0,0,0,2874,2863,1,0,0,0,2874,2864,1,0,0,0,2874,2865,1,0,0,0,2874,2866,1,0,0,0,2874,2867,1,0,0,0,2874,2868,1,0,0,0,2874,2869,1,0,0,0,2874,2870,1,0,0,0,2874,2871,1,0,0,0,2874,2872,1,0,0,0,2874,2873,1,0,0,0,2875,441,1,0,0,0,2876,2898,3,430,215,0,2877,2898,3,426,213,0,2878,2898,3,448,224,0,2879,2898,3,516,258,0,2880,2898,3,518,259,0,2881,2898,3,470,235,0,2882,2898,3,472,236,0,2883,2898,3,474,237,0,2884,2898,3,478,239,0,2885,2898,3,490,245,0,2886,2898,3,494,247,0,2887,2898,3,852,426,0,2888,2898,3,870,435,0,2889,2898,3,502,251,0,2890,2898,3,508,254,0,2891,2898,3,536,268,0,2892,2898,3,552,276,0,2893,2898,3,558,279,0,2894,2898,3,566,283,0,2895,2898,3,568,284,0,2896,2898,3,440,220,0,2897,2876,1,0,0,0,2897,2877,1,0,0,0,2897,2878,1,0,0,0,2897,2879,1,0,0,0,2897,2880,1,0,0,0,2897,2881,1,0,0,0,2897,2882,1,0,0,0,2897,2883,1,0,0,0,2897,2884,1,0,0,0,2897,2885,1,0,0,0,2897,2886,1,0,0,0,2897,2887,1,0,0,0,2897,2888,1,0,0,0,2897,2889,1,0,0,0,2897,2890,1,0,0,0,2897,2891,1,0,0,0,2897,2892,1,0,0,0,2897,2893,1,0,0,0,2897,2894,1,0,0,0,2897,2895,1,0,0,0,2897,2896,1,0,0,0,2898,443,1,0,0,0,2899,2900,7,11,0,0,2900,2905,3,168,84,0,2901,2902,5,200,0,0,2902,2904,3,168,84,0,2903,2901,1,0,0,0,2904,2907,1,0,0,0,2905,2903,1,0,0,0,2905,2906,1,0,0,0,2906,445,1,0,0,0,2907,2905,1,0,0,0,2908,2909,3,382,191,0,2909,2910,5,19,0,0,2910,2911,5,45,0,0,2911,2912,3,384,192,0,2912,447,1,0,0,0,2913,2914,3,414,207,0,2914,2915,5,19,0,0,2915,2916,3,416,208,0,2916,449,1,0,0,0,2917,2919,3,380,190,0,2918,2917,1,0,0,0,2919,2922,1,0,0,0,2920,2918,1,0,0,0,2920,2921,1,0,0,0,2921,2923,1,0,0,0,2922,2920,1,0,0,0,2923,2924,5,58,0,0,2924,2925,5,45,0,0,2925,2926,3,386,193,0,2926,2927,3,452,226,0,2927,451,1,0,0,0,2928,2939,5,205,0,0,2929,2934,5,214,0,0,2930,2933,3,368,184,0,2931,2933,3,454,227,0,2932,2930,1,0,0,0,2932,2931,1,0,0,0,2933,2936,1,0,0,0,2934,2932,1,0,0,0,2934,2935,1,0,0,0,2935,2937,1,0,0,0,2936,2934,1,0,0,0,2937,2939,5,216,0,0,2938,2928,1,0,0,0,2938,2929,1,0,0,0,2939,453,1,0,0,0,2940,2942,3,340,170,0,2941,2940,1,0,0,0,2942,2945,1,0,0,0,2943,2941,1,0,0,0,2943,2944,1,0,0,0,2944,2946,1,0,0,0,2945,2943,1,0,0,0,2946,2947,3,76,38,0,2947,2948,3,456,228,0,2948,455,1,0,0,0,2949,2951,5,58,0,0,2950,2949,1,0,0,0,2950,2951,1,0,0,0,2951,2952,1,0,0,0,2952,2953,3,416,208,0,2953,457,1,0,0,0,2954,2955,3,414,207,0,2955,2956,5,58,0,0,2956,2957,3,416,208,0,2957,459,1,0,0,0,2958,2960,3,378,189,0,2959,2958,1,0,0,0,2959,2960,1,0,0,0,2960,2963,1,0,0,0,2961,2962,5,82,0,0,2962,2964,3,466,233,0,2963,2961,1,0,0,0,2963,2964,1,0,0,0,2964,2968,1,0,0,0,2965,2967,3,380,190,0,2966,2965,1,0,0,0,2967,2970,1,0,0,0,2968,2966,1,0,0,0,2968,2969,1,0,0,0,2969,461,1,0,0,0,2970,2968,1,0,0,0,2971,2972,3,460,230,0,2972,2973,5,110,0,0,2973,2974,5,45,0,0,2974,2975,3,384,192,0,2975,463,1,0,0,0,2976,2978,3,378,189,0,2977,2976,1,0,0,0,2977,2978,1,0,0,0,2978,2979,1,0,0,0,2979,2983,5,82,0,0,2980,2982,3,380,190,0,2981,2980,1,0,0,0,2982,2985,1,0,0,0,2983,2981,1,0,0,0,2983,2984,1,0,0,0,2984,2986,1,0,0,0,2985,2983,1,0,0,0,2986,2987,5,45,0,0,2987,2988,3,384,192,0,2988,2989,3,466,233,0,2989,465,1,0,0,0,2990,2991,3,894,447,0,2991,467,1,0,0,0,2992,2994,3,406,203,0,2993,2995,5,82,0,0,2994,2993,1,0,0,0,2994,2995,1,0,0,0,2995,2997,1,0,0,0,2996,2998,3,476,238,0,2997,2996,1,0,0,0,2997,2998,1,0,0,0,2998,3002,1,0,0,0,2999,3001,3,410,205,0,3e3,2999,1,0,0,0,3001,3004,1,0,0,0,3002,3e3,1,0,0,0,3002,3003,1,0,0,0,3003,469,1,0,0,0,3004,3002,1,0,0,0,3005,3006,3,468,234,0,3006,3007,5,110,0,0,3007,3008,3,416,208,0,3008,471,1,0,0,0,3009,3010,3,406,203,0,3010,3014,5,82,0,0,3011,3013,3,410,205,0,3012,3011,1,0,0,0,3013,3016,1,0,0,0,3014,3012,1,0,0,0,3014,3015,1,0,0,0,3015,3017,1,0,0,0,3016,3014,1,0,0,0,3017,3018,3,416,208,0,3018,473,1,0,0,0,3019,3021,3,406,203,0,3020,3022,5,82,0,0,3021,3020,1,0,0,0,3021,3022,1,0,0,0,3022,3023,1,0,0,0,3023,3027,3,476,238,0,3024,3026,3,410,205,0,3025,3024,1,0,0,0,3026,3029,1,0,0,0,3027,3025,1,0,0,0,3027,3028,1,0,0,0,3028,3030,1,0,0,0,3029,3027,1,0,0,0,3030,3031,3,416,208,0,3031,475,1,0,0,0,3032,3033,7,23,0,0,3033,477,1,0,0,0,3034,3035,3,468,234,0,3035,3044,5,59,0,0,3036,3038,3,226,113,0,3037,3039,3,196,98,0,3038,3037,1,0,0,0,3038,3039,1,0,0,0,3039,3045,1,0,0,0,3040,3042,5,110,0,0,3041,3043,3,418,209,0,3042,3041,1,0,0,0,3042,3043,1,0,0,0,3043,3045,1,0,0,0,3044,3036,1,0,0,0,3044,3040,1,0,0,0,3045,3046,1,0,0,0,3046,3047,3,420,210,0,3047,479,1,0,0,0,3048,3049,5,152,0,0,3049,3050,3,482,241,0,3050,481,1,0,0,0,3051,3052,3,484,242,0,3052,483,1,0,0,0,3053,3054,3,486,243,0,3054,485,1,0,0,0,3055,3057,3,328,164,0,3056,3055,1,0,0,0,3056,3057,1,0,0,0,3057,487,1,0,0,0,3058,3059,3,460,230,0,3059,3060,5,91,0,0,3060,3061,5,45,0,0,3061,3062,3,384,192,0,3062,489,1,0,0,0,3063,3064,3,468,234,0,3064,3065,5,91,0,0,3065,3066,3,416,208,0,3066,491,1,0,0,0,3067,3068,3,460,230,0,3068,3069,5,117,0,0,3069,3070,5,45,0,0,3070,3071,3,384,192,0,3071,493,1,0,0,0,3072,3073,3,468,234,0,3073,3074,5,117,0,0,3074,3075,3,416,208,0,3075,495,1,0,0,0,3076,3077,3,382,191,0,3077,3078,5,119,0,0,3078,3079,5,45,0,0,3079,3080,3,384,192,0,3080,3081,3,498,249,0,3081,497,1,0,0,0,3082,3083,3,500,250,0,3083,499,1,0,0,0,3084,3085,3,902,451,0,3085,501,1,0,0,0,3086,3087,3,468,234,0,3087,3088,5,119,0,0,3088,3089,3,416,208,0,3089,503,1,0,0,0,3090,3091,5,217,0,0,3091,3092,3,88,44,0,3092,505,1,0,0,0,3093,3094,3,460,230,0,3094,3095,5,37,0,0,3095,3096,5,45,0,0,3096,3097,3,384,192,0,3097,507,1,0,0,0,3098,3112,3,468,234,0,3099,3101,5,37,0,0,3100,3102,3,418,209,0,3101,3100,1,0,0,0,3101,3102,1,0,0,0,3102,3104,1,0,0,0,3103,3105,3,318,159,0,3104,3103,1,0,0,0,3104,3105,1,0,0,0,3105,3108,1,0,0,0,3106,3107,5,36,0,0,3107,3109,3,510,255,0,3108,3106,1,0,0,0,3108,3109,1,0,0,0,3109,3113,1,0,0,0,3110,3111,5,36,0,0,3111,3113,3,510,255,0,3112,3099,1,0,0,0,3112,3110,1,0,0,0,3113,3114,1,0,0,0,3114,3115,3,422,211,0,3115,509,1,0,0,0,3116,3119,3,512,256,0,3117,3119,3,514,257,0,3118,3116,1,0,0,0,3118,3117,1,0,0,0,3119,511,1,0,0,0,3120,3121,3,260,130,0,3121,3122,5,154,0,0,3122,3123,3,260,130,0,3123,513,1,0,0,0,3124,3125,5,196,0,0,3125,3126,3,260,130,0,3126,3127,5,200,0,0,3127,3132,3,260,130,0,3128,3129,5,200,0,0,3129,3131,3,260,130,0,3130,3128,1,0,0,0,3131,3134,1,0,0,0,3132,3130,1,0,0,0,3132,3133,1,0,0,0,3133,3135,1,0,0,0,3134,3132,1,0,0,0,3135,3136,5,197,0,0,3136,515,1,0,0,0,3137,3142,3,414,207,0,3138,3140,5,22,0,0,3139,3141,3,418,209,0,3140,3139,1,0,0,0,3140,3141,1,0,0,0,3141,3143,1,0,0,0,3142,3138,1,0,0,0,3142,3143,1,0,0,0,3143,3144,1,0,0,0,3144,3145,5,21,0,0,3145,3146,3,260,130,0,3146,3147,5,207,0,0,3147,3148,3,260,130,0,3148,3149,3,422,211,0,3149,517,1,0,0,0,3150,3155,3,414,207,0,3151,3153,5,150,0,0,3152,3154,3,418,209,0,3153,3152,1,0,0,0,3153,3154,1,0,0,0,3154,3156,1,0,0,0,3155,3151,1,0,0,0,3155,3156,1,0,0,0,3156,3157,1,0,0,0,3157,3158,5,69,0,0,3158,3159,3,260,130,0,3159,3160,5,152,0,0,3160,3161,3,260,130,0,3161,3162,3,422,211,0,3162,519,1,0,0,0,3163,3164,3,460,230,0,3164,3165,5,85,0,0,3165,3166,5,45,0,0,3166,3167,3,386,193,0,3167,3168,3,522,261,0,3168,521,1,0,0,0,3169,3179,5,205,0,0,3170,3174,5,214,0,0,3171,3173,3,524,262,0,3172,3171,1,0,0,0,3173,3176,1,0,0,0,3174,3172,1,0,0,0,3174,3175,1,0,0,0,3175,3177,1,0,0,0,3176,3174,1,0,0,0,3177,3179,5,216,0,0,3178,3169,1,0,0,0,3178,3170,1,0,0,0,3179,523,1,0,0,0,3180,3190,3,394,197,0,3181,3190,3,396,198,0,3182,3190,3,526,263,0,3183,3185,3,480,240,0,3184,3183,1,0,0,0,3184,3185,1,0,0,0,3185,3186,1,0,0,0,3186,3190,3,530,265,0,3187,3190,3,86,43,0,3188,3190,3,90,45,0,3189,3180,1,0,0,0,3189,3181,1,0,0,0,3189,3182,1,0,0,0,3189,3184,1,0,0,0,3189,3187,1,0,0,0,3189,3188,1,0,0,0,3190,525,1,0,0,0,3191,3192,3,76,38,0,3192,3193,3,528,264,0,3193,527,1,0,0,0,3194,3200,3,426,213,0,3195,3200,3,448,224,0,3196,3200,3,458,229,0,3197,3200,3,516,258,0,3198,3200,3,518,259,0,3199,3194,1,0,0,0,3199,3195,1,0,0,0,3199,3196,1,0,0,0,3199,3197,1,0,0,0,3199,3198,1,0,0,0,3200,529,1,0,0,0,3201,3202,3,76,38,0,3202,3203,3,532,266,0,3203,531,1,0,0,0,3204,3209,3,534,267,0,3205,3209,3,434,217,0,3206,3209,3,438,219,0,3207,3209,3,440,220,0,3208,3204,1,0,0,0,3208,3205,1,0,0,0,3208,3206,1,0,0,0,3208,3207,1,0,0,0,3209,533,1,0,0,0,3210,3211,5,56,0,0,3211,3212,3,416,208,0,3212,535,1,0,0,0,3213,3214,3,468,234,0,3214,3215,5,85,0,0,3215,3216,3,538,269,0,3216,3217,3,522,261,0,3217,537,1,0,0,0,3218,3220,3,418,209,0,3219,3218,1,0,0,0,3219,3220,1,0,0,0,3220,3222,1,0,0,0,3221,3223,3,318,159,0,3222,3221,1,0,0,0,3222,3223,1,0,0,0,3223,3226,1,0,0,0,3224,3225,5,36,0,0,3225,3227,3,540,270,0,3226,3224,1,0,0,0,3226,3227,1,0,0,0,3227,3230,1,0,0,0,3228,3230,3,540,270,0,3229,3219,1,0,0,0,3229,3228,1,0,0,0,3230,539,1,0,0,0,3231,3234,3,542,271,0,3232,3234,3,544,272,0,3233,3231,1,0,0,0,3233,3232,1,0,0,0,3234,541,1,0,0,0,3235,3236,3,546,273,0,3236,3237,5,154,0,0,3237,3238,3,546,273,0,3238,543,1,0,0,0,3239,3240,5,196,0,0,3240,3241,3,546,273,0,3241,3242,5,200,0,0,3242,3247,3,546,273,0,3243,3244,5,200,0,0,3244,3246,3,546,273,0,3245,3243,1,0,0,0,3246,3249,1,0,0,0,3247,3245,1,0,0,0,3247,3248,1,0,0,0,3248,3250,1,0,0,0,3249,3247,1,0,0,0,3250,3251,5,197,0,0,3251,545,1,0,0,0,3252,3253,3,548,274,0,3253,547,1,0,0,0,3254,3256,3,264,132,0,3255,3254,1,0,0,0,3255,3256,1,0,0,0,3256,3260,1,0,0,0,3257,3258,3,40,20,0,3258,3259,7,17,0,0,3259,3261,1,0,0,0,3260,3257,1,0,0,0,3260,3261,1,0,0,0,3261,3262,1,0,0,0,3262,3263,3,226,113,0,3263,549,1,0,0,0,3264,3265,3,460,230,0,3265,3266,5,10,0,0,3266,3267,5,45,0,0,3267,3268,3,384,192,0,3268,551,1,0,0,0,3269,3270,3,468,234,0,3270,3271,3,554,277,0,3271,3272,3,422,211,0,3272,553,1,0,0,0,3273,3275,5,10,0,0,3274,3276,3,418,209,0,3275,3274,1,0,0,0,3275,3276,1,0,0,0,3276,3279,1,0,0,0,3277,3278,5,9,0,0,3278,3280,3,510,255,0,3279,3277,1,0,0,0,3279,3280,1,0,0,0,3280,3284,1,0,0,0,3281,3282,5,9,0,0,3282,3284,3,510,255,0,3283,3273,1,0,0,0,3283,3281,1,0,0,0,3284,555,1,0,0,0,3285,3286,3,460,230,0,3286,3287,5,70,0,0,3287,3288,5,45,0,0,3288,3289,3,384,192,0,3289,557,1,0,0,0,3290,3291,3,468,234,0,3291,3292,5,99,0,0,3292,3293,3,560,280,0,3293,3294,3,388,194,0,3294,559,1,0,0,0,3295,3297,3,418,209,0,3296,3295,1,0,0,0,3296,3297,1,0,0,0,3297,3299,1,0,0,0,3298,3300,3,318,159,0,3299,3298,1,0,0,0,3299,3300,1,0,0,0,3300,3303,1,0,0,0,3301,3302,5,111,0,0,3302,3304,3,570,285,0,3303,3301,1,0,0,0,3303,3304,1,0,0,0,3304,3310,1,0,0,0,3305,3306,5,74,0,0,3306,3307,3,562,281,0,3307,3308,5,154,0,0,3308,3309,3,562,281,0,3309,3311,1,0,0,0,3310,3305,1,0,0,0,3310,3311,1,0,0,0,3311,3317,1,0,0,0,3312,3313,3,562,281,0,3313,3314,5,154,0,0,3314,3315,3,562,281,0,3315,3317,1,0,0,0,3316,3296,1,0,0,0,3316,3312,1,0,0,0,3317,561,1,0,0,0,3318,3319,3,564,282,0,3319,563,1,0,0,0,3320,3321,3,226,113,0,3321,565,1,0,0,0,3322,3323,3,468,234,0,3323,3324,5,70,0,0,3324,3325,3,306,153,0,3325,3326,3,388,194,0,3326,567,1,0,0,0,3327,3328,3,468,234,0,3328,3329,5,150,0,0,3329,3330,5,70,0,0,3330,3331,3,306,153,0,3331,3332,3,388,194,0,3332,569,1,0,0,0,3333,3334,3,572,286,0,3334,571,1,0,0,0,3335,3336,3,310,155,0,3336,573,1,0,0,0,3337,3338,3,460,230,0,3338,3339,5,4,0,0,3339,3340,5,45,0,0,3340,3341,3,386,193,0,3341,3342,3,576,288,0,3342,575,1,0,0,0,3343,3353,5,205,0,0,3344,3348,5,214,0,0,3345,3347,3,578,289,0,3346,3345,1,0,0,0,3347,3350,1,0,0,0,3348,3346,1,0,0,0,3348,3349,1,0,0,0,3349,3351,1,0,0,0,3350,3348,1,0,0,0,3351,3353,5,216,0,0,3352,3343,1,0,0,0,3352,3344,1,0,0,0,3353,577,1,0,0,0,3354,3374,3,580,290,0,3355,3359,3,584,292,0,3356,3358,3,588,294,0,3357,3356,1,0,0,0,3358,3361,1,0,0,0,3359,3357,1,0,0,0,3359,3360,1,0,0,0,3360,3374,1,0,0,0,3361,3359,1,0,0,0,3362,3364,3,480,240,0,3363,3362,1,0,0,0,3363,3364,1,0,0,0,3364,3365,1,0,0,0,3365,3369,3,582,291,0,3366,3368,3,588,294,0,3367,3366,1,0,0,0,3368,3371,1,0,0,0,3369,3367,1,0,0,0,3369,3370,1,0,0,0,3370,3374,1,0,0,0,3371,3369,1,0,0,0,3372,3374,3,590,295,0,3373,3354,1,0,0,0,3373,3355,1,0,0,0,3373,3363,1,0,0,0,3373,3372,1,0,0,0,3374,579,1,0,0,0,3375,3385,3,90,45,0,3376,3385,3,86,43,0,3377,3385,3,394,197,0,3378,3385,3,396,198,0,3379,3385,3,398,199,0,3380,3382,3,480,240,0,3381,3380,1,0,0,0,3381,3382,1,0,0,0,3382,3383,1,0,0,0,3383,3385,3,400,200,0,3384,3375,1,0,0,0,3384,3376,1,0,0,0,3384,3377,1,0,0,0,3384,3378,1,0,0,0,3384,3379,1,0,0,0,3384,3381,1,0,0,0,3385,581,1,0,0,0,3386,3389,3,586,293,0,3387,3389,3,402,201,0,3388,3386,1,0,0,0,3388,3387,1,0,0,0,3389,583,1,0,0,0,3390,3391,3,76,38,0,3391,3392,5,69,0,0,3392,3393,3,88,44,0,3393,3394,3,46,23,0,3394,585,1,0,0,0,3395,3396,3,76,38,0,3396,3397,3,600,300,0,3397,587,1,0,0,0,3398,3399,3,76,38,0,3399,3400,3,676,338,0,3400,589,1,0,0,0,3401,3402,3,76,38,0,3402,3403,3,684,342,0,3403,591,1,0,0,0,3404,3405,3,468,234,0,3405,3406,5,4,0,0,3406,3407,3,594,297,0,3407,3408,3,576,288,0,3408,593,1,0,0,0,3409,3411,3,418,209,0,3410,3409,1,0,0,0,3410,3411,1,0,0,0,3411,3413,1,0,0,0,3412,3414,3,318,159,0,3413,3412,1,0,0,0,3413,3414,1,0,0,0,3414,595,1,0,0,0,3415,3416,3,468,234,0,3416,3417,5,118,0,0,3417,3418,3,598,299,0,3418,3419,3,576,288,0,3419,597,1,0,0,0,3420,3422,3,226,113,0,3421,3423,3,196,98,0,3422,3421,1,0,0,0,3422,3423,1,0,0,0,3423,3429,1,0,0,0,3424,3426,5,4,0,0,3425,3427,3,418,209,0,3426,3425,1,0,0,0,3426,3427,1,0,0,0,3427,3429,1,0,0,0,3428,3420,1,0,0,0,3428,3424,1,0,0,0,3429,3431,1,0,0,0,3430,3432,3,318,159,0,3431,3430,1,0,0,0,3431,3432,1,0,0,0,3432,599,1,0,0,0,3433,3442,3,606,303,0,3434,3442,3,634,317,0,3435,3442,3,618,309,0,3436,3442,3,648,324,0,3437,3442,3,658,329,0,3438,3442,3,660,330,0,3439,3442,3,670,335,0,3440,3442,3,672,336,0,3441,3433,1,0,0,0,3441,3434,1,0,0,0,3441,3435,1,0,0,0,3441,3436,1,0,0,0,3441,3437,1,0,0,0,3441,3438,1,0,0,0,3441,3439,1,0,0,0,3441,3440,1,0,0,0,3442,601,1,0,0,0,3443,3445,5,4,0,0,3444,3446,3,418,209,0,3445,3444,1,0,0,0,3445,3446,1,0,0,0,3446,603,1,0,0,0,3447,3449,3,468,234,0,3448,3450,3,602,301,0,3449,3448,1,0,0,0,3449,3450,1,0,0,0,3450,605,1,0,0,0,3451,3456,3,610,305,0,3452,3456,3,612,306,0,3453,3456,3,614,307,0,3454,3456,3,616,308,0,3455,3451,1,0,0,0,3455,3452,1,0,0,0,3455,3453,1,0,0,0,3455,3454,1,0,0,0,3456,607,1,0,0,0,3457,3459,3,404,202,0,3458,3460,5,82,0,0,3459,3458,1,0,0,0,3459,3460,1,0,0,0,3460,3462,1,0,0,0,3461,3463,3,476,238,0,3462,3461,1,0,0,0,3462,3463,1,0,0,0,3463,3467,1,0,0,0,3464,3466,3,410,205,0,3465,3464,1,0,0,0,3466,3469,1,0,0,0,3467,3465,1,0,0,0,3467,3468,1,0,0,0,3468,609,1,0,0,0,3469,3467,1,0,0,0,3470,3471,3,608,304,0,3471,3473,5,98,0,0,3472,3474,3,418,209,0,3473,3472,1,0,0,0,3473,3474,1,0,0,0,3474,3475,1,0,0,0,3475,3476,3,576,288,0,3476,611,1,0,0,0,3477,3478,3,608,304,0,3478,3480,5,44,0,0,3479,3481,3,418,209,0,3480,3479,1,0,0,0,3480,3481,1,0,0,0,3481,3482,1,0,0,0,3482,3483,3,576,288,0,3483,613,1,0,0,0,3484,3485,3,608,304,0,3485,3487,5,92,0,0,3486,3488,3,418,209,0,3487,3486,1,0,0,0,3487,3488,1,0,0,0,3488,3489,1,0,0,0,3489,3490,3,576,288,0,3490,615,1,0,0,0,3491,3492,3,608,304,0,3492,3494,5,72,0,0,3493,3495,3,418,209,0,3494,3493,1,0,0,0,3494,3495,1,0,0,0,3495,3496,1,0,0,0,3496,3497,3,576,288,0,3497,617,1,0,0,0,3498,3499,3,468,234,0,3499,3500,3,620,310,0,3500,3501,3,576,288,0,3501,619,1,0,0,0,3502,3504,3,602,301,0,3503,3502,1,0,0,0,3503,3504,1,0,0,0,3504,3505,1,0,0,0,3505,3506,5,3,0,0,3506,3507,3,622,311,0,3507,621,1,0,0,0,3508,3511,3,624,312,0,3509,3510,5,168,0,0,3510,3512,3,640,320,0,3511,3509,1,0,0,0,3511,3512,1,0,0,0,3512,623,1,0,0,0,3513,3514,3,626,313,0,3514,625,1,0,0,0,3515,3524,3,310,155,0,3516,3518,3,44,22,0,3517,3516,1,0,0,0,3517,3518,1,0,0,0,3518,3520,1,0,0,0,3519,3521,3,312,156,0,3520,3519,1,0,0,0,3520,3521,1,0,0,0,3521,3522,1,0,0,0,3522,3524,3,628,314,0,3523,3515,1,0,0,0,3523,3517,1,0,0,0,3524,627,1,0,0,0,3525,3526,3,630,315,0,3526,629,1,0,0,0,3527,3528,3,632,316,0,3528,631,1,0,0,0,3529,3530,7,24,0,0,3530,3534,3,36,18,0,3531,3532,5,171,0,0,3532,3534,3,38,19,0,3533,3529,1,0,0,0,3533,3531,1,0,0,0,3534,633,1,0,0,0,3535,3538,3,468,234,0,3536,3539,3,602,301,0,3537,3539,3,594,297,0,3538,3536,1,0,0,0,3538,3537,1,0,0,0,3539,3540,1,0,0,0,3540,3549,5,136,0,0,3541,3543,3,640,320,0,3542,3544,3,638,319,0,3543,3542,1,0,0,0,3543,3544,1,0,0,0,3544,3550,1,0,0,0,3545,3547,3,646,323,0,3546,3548,3,638,319,0,3547,3546,1,0,0,0,3547,3548,1,0,0,0,3548,3550,1,0,0,0,3549,3541,1,0,0,0,3549,3545,1,0,0,0,3550,3551,1,0,0,0,3551,3552,3,576,288,0,3552,635,1,0,0,0,3553,3555,3,602,301,0,3554,3553,1,0,0,0,3554,3555,1,0,0,0,3555,3556,1,0,0,0,3556,3557,5,136,0,0,3557,3559,3,640,320,0,3558,3560,3,638,319,0,3559,3558,1,0,0,0,3559,3560,1,0,0,0,3560,637,1,0,0,0,3561,3562,5,168,0,0,3562,3565,3,640,320,0,3563,3564,5,154,0,0,3564,3566,3,640,320,0,3565,3563,1,0,0,0,3565,3566,1,0,0,0,3566,3572,1,0,0,0,3567,3568,3,646,323,0,3568,3569,5,154,0,0,3569,3570,3,640,320,0,3570,3572,1,0,0,0,3571,3561,1,0,0,0,3571,3567,1,0,0,0,3572,639,1,0,0,0,3573,3574,3,642,321,0,3574,641,1,0,0,0,3575,3576,3,644,322,0,3576,643,1,0,0,0,3577,3578,3,0,0,0,3578,645,1,0,0,0,3579,3580,3,896,448,0,3580,647,1,0,0,0,3581,3582,3,468,234,0,3582,3583,3,650,325,0,3583,3584,3,576,288,0,3584,649,1,0,0,0,3585,3587,3,602,301,0,3586,3585,1,0,0,0,3586,3587,1,0,0,0,3587,3588,1,0,0,0,3588,3589,5,15,0,0,3589,3590,3,652,326,0,3590,3591,3,298,149,0,3591,3592,5,184,0,0,3592,3593,3,640,320,0,3593,651,1,0,0,0,3594,3595,3,654,327,0,3595,653,1,0,0,0,3596,3597,3,656,328,0,3597,3598,5,202,0,0,3598,3600,1,0,0,0,3599,3596,1,0,0,0,3599,3600,1,0,0,0,3600,655,1,0,0,0,3601,3602,3,900,450,0,3602,657,1,0,0,0,3603,3605,3,468,234,0,3604,3606,3,602,301,0,3605,3604,1,0,0,0,3605,3606,1,0,0,0,3606,3607,1,0,0,0,3607,3609,5,151,0,0,3608,3610,3,640,320,0,3609,3608,1,0,0,0,3609,3610,1,0,0,0,3610,3611,1,0,0,0,3611,3612,3,576,288,0,3612,659,1,0,0,0,3613,3614,3,604,302,0,3614,3615,5,77,0,0,3615,3616,3,662,331,0,3616,3622,3,664,332,0,3617,3620,5,55,0,0,3618,3621,3,664,332,0,3619,3621,3,668,334,0,3620,3618,1,0,0,0,3620,3619,1,0,0,0,3621,3623,1,0,0,0,3622,3617,1,0,0,0,3622,3623,1,0,0,0,3623,661,1,0,0,0,3624,3625,3,0,0,0,3625,663,1,0,0,0,3626,3627,3,666,333,0,3627,665,1,0,0,0,3628,3630,5,4,0,0,3629,3631,3,418,209,0,3630,3629,1,0,0,0,3630,3631,1,0,0,0,3631,3633,1,0,0,0,3632,3628,1,0,0,0,3632,3633,1,0,0,0,3633,3634,1,0,0,0,3634,3638,5,214,0,0,3635,3637,3,578,289,0,3636,3635,1,0,0,0,3637,3640,1,0,0,0,3638,3636,1,0,0,0,3638,3639,1,0,0,0,3639,3641,1,0,0,0,3640,3638,1,0,0,0,3641,3642,5,216,0,0,3642,667,1,0,0,0,3643,3644,3,660,330,0,3644,669,1,0,0,0,3645,3650,3,604,302,0,3646,3647,5,172,0,0,3647,3651,3,662,331,0,3648,3649,5,96,0,0,3649,3651,3,646,323,0,3650,3646,1,0,0,0,3650,3648,1,0,0,0,3651,3652,1,0,0,0,3652,3657,3,664,332,0,3653,3654,5,161,0,0,3654,3655,3,662,331,0,3655,3656,5,205,0,0,3656,3658,1,0,0,0,3657,3653,1,0,0,0,3657,3658,1,0,0,0,3658,671,1,0,0,0,3659,3660,3,604,302,0,3660,3661,5,71,0,0,3661,3662,3,674,337,0,3662,3663,5,80,0,0,3663,3664,3,640,320,0,3664,3665,3,664,332,0,3665,673,1,0,0,0,3666,3668,3,418,209,0,3667,3666,1,0,0,0,3667,3668,1,0,0,0,3668,675,1,0,0,0,3669,3673,3,678,339,0,3670,3673,3,680,340,0,3671,3673,3,682,341,0,3672,3669,1,0,0,0,3672,3670,1,0,0,0,3672,3671,1,0,0,0,3673,3674,1,0,0,0,3674,3675,3,422,211,0,3675,677,1,0,0,0,3676,3677,3,484,242,0,3677,3678,5,152,0,0,3678,3679,3,260,130,0,3679,679,1,0,0,0,3680,3681,3,728,364,0,3681,3682,5,152,0,0,3682,3683,3,742,371,0,3683,681,1,0,0,0,3684,3685,5,55,0,0,3685,3686,3,742,371,0,3686,683,1,0,0,0,3687,3689,5,150,0,0,3688,3690,3,418,209,0,3689,3688,1,0,0,0,3689,3690,1,0,0,0,3690,3692,1,0,0,0,3691,3687,1,0,0,0,3691,3692,1,0,0,0,3692,3693,1,0,0,0,3693,3694,5,69,0,0,3694,3695,3,298,149,0,3695,3696,3,728,364,0,3696,3697,5,152,0,0,3697,3698,3,742,371,0,3698,3699,3,422,211,0,3699,685,1,0,0,0,3700,3701,3,460,230,0,3701,3702,5,142,0,0,3702,3703,5,45,0,0,3703,3704,3,386,193,0,3704,3705,3,688,344,0,3705,687,1,0,0,0,3706,3719,5,205,0,0,3707,3709,5,116,0,0,3708,3707,1,0,0,0,3708,3709,1,0,0,0,3709,3710,1,0,0,0,3710,3714,5,214,0,0,3711,3713,3,690,345,0,3712,3711,1,0,0,0,3713,3716,1,0,0,0,3714,3712,1,0,0,0,3714,3715,1,0,0,0,3715,3717,1,0,0,0,3716,3714,1,0,0,0,3717,3719,5,216,0,0,3718,3706,1,0,0,0,3718,3708,1,0,0,0,3719,689,1,0,0,0,3720,3742,3,580,290,0,3721,3723,3,480,240,0,3722,3721,1,0,0,0,3722,3723,1,0,0,0,3723,3724,1,0,0,0,3724,3728,3,402,201,0,3725,3727,3,712,356,0,3726,3725,1,0,0,0,3727,3730,1,0,0,0,3728,3726,1,0,0,0,3728,3729,1,0,0,0,3729,3742,1,0,0,0,3730,3728,1,0,0,0,3731,3742,3,710,355,0,3732,3736,3,692,346,0,3733,3735,3,698,349,0,3734,3733,1,0,0,0,3735,3738,1,0,0,0,3736,3734,1,0,0,0,3736,3737,1,0,0,0,3737,3742,1,0,0,0,3738,3736,1,0,0,0,3739,3742,3,694,347,0,3740,3742,3,696,348,0,3741,3720,1,0,0,0,3741,3722,1,0,0,0,3741,3731,1,0,0,0,3741,3732,1,0,0,0,3741,3739,1,0,0,0,3741,3740,1,0,0,0,3742,691,1,0,0,0,3743,3744,3,76,38,0,3744,3745,5,57,0,0,3745,3746,3,700,350,0,3746,693,1,0,0,0,3747,3748,3,76,38,0,3748,3749,5,53,0,0,3749,3750,3,700,350,0,3750,695,1,0,0,0,3751,3752,3,76,38,0,3752,3753,5,61,0,0,3753,3754,3,700,350,0,3754,697,1,0,0,0,3755,3759,3,76,38,0,3756,3760,3,680,340,0,3757,3758,5,152,0,0,3758,3760,3,742,371,0,3759,3756,1,0,0,0,3759,3757,1,0,0,0,3760,3761,1,0,0,0,3761,3762,5,205,0,0,3762,699,1,0,0,0,3763,3764,3,890,445,0,3764,3765,5,205,0,0,3765,3771,1,0,0,0,3766,3771,3,702,351,0,3767,3771,3,704,352,0,3768,3771,3,706,353,0,3769,3771,3,708,354,0,3770,3763,1,0,0,0,3770,3766,1,0,0,0,3770,3767,1,0,0,0,3770,3768,1,0,0,0,3770,3769,1,0,0,0,3771,701,1,0,0,0,3772,3773,3,598,299,0,3773,3774,3,576,288,0,3774,703,1,0,0,0,3775,3776,3,620,310,0,3776,3777,3,576,288,0,3777,705,1,0,0,0,3778,3779,3,636,318,0,3779,3780,3,576,288,0,3780,707,1,0,0,0,3781,3782,3,650,325,0,3782,3783,3,576,288,0,3783,709,1,0,0,0,3784,3785,3,76,38,0,3785,3786,3,720,360,0,3786,711,1,0,0,0,3787,3788,3,76,38,0,3788,3789,3,722,361,0,3789,713,1,0,0,0,3790,3791,3,468,234,0,3791,3792,5,142,0,0,3792,3793,3,594,297,0,3793,3794,3,716,358,0,3794,715,1,0,0,0,3795,3808,5,205,0,0,3796,3798,5,116,0,0,3797,3796,1,0,0,0,3797,3798,1,0,0,0,3798,3799,1,0,0,0,3799,3803,5,214,0,0,3800,3802,3,690,345,0,3801,3800,1,0,0,0,3802,3805,1,0,0,0,3803,3801,1,0,0,0,3803,3804,1,0,0,0,3804,3806,1,0,0,0,3805,3803,1,0,0,0,3806,3808,5,216,0,0,3807,3795,1,0,0,0,3807,3797,1,0,0,0,3808,717,1,0,0,0,3809,3810,3,468,234,0,3810,3819,5,60,0,0,3811,3813,3,226,113,0,3812,3814,3,196,98,0,3813,3812,1,0,0,0,3813,3814,1,0,0,0,3814,3820,1,0,0,0,3815,3817,5,142,0,0,3816,3818,3,418,209,0,3817,3816,1,0,0,0,3817,3818,1,0,0,0,3818,3820,1,0,0,0,3819,3811,1,0,0,0,3819,3815,1,0,0,0,3820,3822,1,0,0,0,3821,3823,3,318,159,0,3822,3821,1,0,0,0,3822,3823,1,0,0,0,3823,3824,1,0,0,0,3824,3825,3,716,358,0,3825,719,1,0,0,0,3826,3831,5,155,0,0,3827,3829,3,418,209,0,3828,3827,1,0,0,0,3828,3829,1,0,0,0,3829,3830,1,0,0,0,3830,3832,5,69,0,0,3831,3828,1,0,0,0,3831,3832,1,0,0,0,3832,3833,1,0,0,0,3833,3834,3,298,149,0,3834,3838,3,646,323,0,3835,3836,3,646,323,0,3836,3837,3,724,362,0,3837,3839,1,0,0,0,3838,3835,1,0,0,0,3838,3839,1,0,0,0,3839,3841,1,0,0,0,3840,3842,3,728,364,0,3841,3840,1,0,0,0,3841,3842,1,0,0,0,3842,3844,1,0,0,0,3843,3845,3,730,365,0,3844,3843,1,0,0,0,3844,3845,1,0,0,0,3845,3846,1,0,0,0,3846,3847,5,152,0,0,3847,3848,3,742,371,0,3848,3849,3,576,288,0,3849,721,1,0,0,0,3850,3875,3,646,323,0,3851,3855,5,155,0,0,3852,3853,3,646,323,0,3853,3854,3,724,362,0,3854,3856,1,0,0,0,3855,3852,1,0,0,0,3855,3856,1,0,0,0,3856,3858,1,0,0,0,3857,3859,3,728,364,0,3858,3857,1,0,0,0,3858,3859,1,0,0,0,3859,3861,1,0,0,0,3860,3862,3,730,365,0,3861,3860,1,0,0,0,3861,3862,1,0,0,0,3862,3876,1,0,0,0,3863,3864,3,646,323,0,3864,3866,3,724,362,0,3865,3867,3,728,364,0,3866,3865,1,0,0,0,3866,3867,1,0,0,0,3867,3869,1,0,0,0,3868,3870,3,730,365,0,3869,3868,1,0,0,0,3869,3870,1,0,0,0,3870,3876,1,0,0,0,3871,3873,3,728,364,0,3872,3874,3,730,365,0,3873,3872,1,0,0,0,3873,3874,1,0,0,0,3874,3876,1,0,0,0,3875,3851,1,0,0,0,3875,3863,1,0,0,0,3875,3871,1,0,0,0,3875,3876,1,0,0,0,3876,3877,1,0,0,0,3877,3878,5,152,0,0,3878,3879,3,742,371,0,3879,3880,3,576,288,0,3880,723,1,0,0,0,3881,3882,5,3,0,0,3882,3883,3,726,363,0,3883,725,1,0,0,0,3884,3885,3,622,311,0,3885,727,1,0,0,0,3886,3887,5,77,0,0,3887,3888,3,0,0,0,3888,729,1,0,0,0,3889,3890,5,53,0,0,3890,3891,3,732,366,0,3891,731,1,0,0,0,3892,3898,3,890,445,0,3893,3898,3,734,367,0,3894,3898,3,736,368,0,3895,3898,3,738,369,0,3896,3898,3,740,370,0,3897,3892,1,0,0,0,3897,3893,1,0,0,0,3897,3894,1,0,0,0,3897,3895,1,0,0,0,3897,3896,1,0,0,0,3898,733,1,0,0,0,3899,3908,3,598,299,0,3900,3904,5,214,0,0,3901,3903,3,578,289,0,3902,3901,1,0,0,0,3903,3906,1,0,0,0,3904,3902,1,0,0,0,3904,3905,1,0,0,0,3905,3907,1,0,0,0,3906,3904,1,0,0,0,3907,3909,5,216,0,0,3908,3900,1,0,0,0,3908,3909,1,0,0,0,3909,735,1,0,0,0,3910,3919,3,620,310,0,3911,3915,5,214,0,0,3912,3914,3,578,289,0,3913,3912,1,0,0,0,3914,3917,1,0,0,0,3915,3913,1,0,0,0,3915,3916,1,0,0,0,3916,3918,1,0,0,0,3917,3915,1,0,0,0,3918,3920,5,216,0,0,3919,3911,1,0,0,0,3919,3920,1,0,0,0,3920,737,1,0,0,0,3921,3930,3,636,318,0,3922,3926,5,214,0,0,3923,3925,3,578,289,0,3924,3923,1,0,0,0,3925,3928,1,0,0,0,3926,3924,1,0,0,0,3926,3927,1,0,0,0,3927,3929,1,0,0,0,3928,3926,1,0,0,0,3929,3931,5,216,0,0,3930,3922,1,0,0,0,3930,3931,1,0,0,0,3931,739,1,0,0,0,3932,3941,3,650,325,0,3933,3937,5,214,0,0,3934,3936,3,578,289,0,3935,3934,1,0,0,0,3936,3939,1,0,0,0,3937,3935,1,0,0,0,3937,3938,1,0,0,0,3938,3940,1,0,0,0,3939,3937,1,0,0,0,3940,3942,5,216,0,0,3941,3933,1,0,0,0,3941,3942,1,0,0,0,3942,741,1,0,0,0,3943,3944,3,744,372,0,3944,743,1,0,0,0,3945,3946,3,746,373,0,3946,3947,3,260,130,0,3947,745,1,0,0,0,3948,3949,3,892,446,0,3949,747,1,0,0,0,3950,3951,3,460,230,0,3951,3952,5,25,0,0,3952,3953,5,45,0,0,3953,3954,3,386,193,0,3954,3955,3,752,376,0,3955,749,1,0,0,0,3956,3957,3,468,234,0,3957,3958,5,25,0,0,3958,3959,3,594,297,0,3959,3960,3,752,376,0,3960,751,1,0,0,0,3961,3967,5,205,0,0,3962,3963,5,214,0,0,3963,3964,3,754,377,0,3964,3965,5,216,0,0,3965,3967,1,0,0,0,3966,3961,1,0,0,0,3966,3962,1,0,0,0,3967,753,1,0,0,0,3968,3970,3,756,378,0,3969,3968,1,0,0,0,3970,3973,1,0,0,0,3971,3969,1,0,0,0,3971,3972,1,0,0,0,3972,3975,1,0,0,0,3973,3971,1,0,0,0,3974,3976,3,288,144,0,3975,3974,1,0,0,0,3975,3976,1,0,0,0,3976,755,1,0,0,0,3977,3980,3,578,289,0,3978,3980,3,758,379,0,3979,3977,1,0,0,0,3979,3978,1,0,0,0,3980,757,1,0,0,0,3981,3982,3,76,38,0,3982,3983,5,134,0,0,3983,3984,3,376,188,0,3984,759,1,0,0,0,3985,3986,3,460,230,0,3986,3987,5,41,0,0,3987,3988,5,45,0,0,3988,3989,3,386,193,0,3989,3990,3,752,376,0,3990,761,1,0,0,0,3991,3992,3,468,234,0,3992,3993,5,41,0,0,3993,3994,3,766,383,0,3994,3995,3,752,376,0,3995,763,1,0,0,0,3996,3997,3,468,234,0,3997,3999,5,14,0,0,3998,4e3,5,107,0,0,3999,3998,1,0,0,0,3999,4e3,1,0,0,0,4e3,4007,1,0,0,0,4001,4003,3,226,113,0,4002,4004,3,196,98,0,4003,4002,1,0,0,0,4003,4004,1,0,0,0,4004,4008,1,0,0,0,4005,4006,5,41,0,0,4006,4008,3,766,383,0,4007,4001,1,0,0,0,4007,4005,1,0,0,0,4008,4009,1,0,0,0,4009,4010,3,752,376,0,4010,765,1,0,0,0,4011,4013,3,418,209,0,4012,4011,1,0,0,0,4012,4013,1,0,0,0,4013,4015,1,0,0,0,4014,4016,3,318,159,0,4015,4014,1,0,0,0,4015,4016,1,0,0,0,4016,767,1,0,0,0,4017,4018,3,460,230,0,4018,4019,5,133,0,0,4019,4020,5,45,0,0,4020,4021,3,386,193,0,4021,4022,3,770,385,0,4022,769,1,0,0,0,4023,4033,5,205,0,0,4024,4028,5,214,0,0,4025,4027,3,772,386,0,4026,4025,1,0,0,0,4027,4030,1,0,0,0,4028,4026,1,0,0,0,4028,4029,1,0,0,0,4029,4031,1,0,0,0,4030,4028,1,0,0,0,4031,4033,5,216,0,0,4032,4023,1,0,0,0,4032,4024,1,0,0,0,4033,771,1,0,0,0,4034,4042,3,390,195,0,4035,4042,3,774,387,0,4036,4042,3,778,389,0,4037,4042,3,784,392,0,4038,4042,3,832,416,0,4039,4042,3,788,394,0,4040,4042,3,792,396,0,4041,4034,1,0,0,0,4041,4035,1,0,0,0,4041,4036,1,0,0,0,4041,4037,1,0,0,0,4041,4038,1,0,0,0,4041,4039,1,0,0,0,4041,4040,1,0,0,0,4042,773,1,0,0,0,4043,4044,3,76,38,0,4044,4045,3,776,388,0,4045,775,1,0,0,0,4046,4050,5,146,0,0,4047,4049,3,410,205,0,4048,4047,1,0,0,0,4049,4052,1,0,0,0,4050,4048,1,0,0,0,4050,4051,1,0,0,0,4051,4053,1,0,0,0,4052,4050,1,0,0,0,4053,4054,3,416,208,0,4054,777,1,0,0,0,4055,4056,3,76,38,0,4056,4057,3,780,390,0,4057,4058,3,782,391,0,4058,779,1,0,0,0,4059,4060,7,25,0,0,4060,781,1,0,0,0,4061,4063,3,226,113,0,4062,4064,3,196,98,0,4063,4062,1,0,0,0,4063,4064,1,0,0,0,4064,4065,1,0,0,0,4065,4066,3,770,385,0,4066,4085,1,0,0,0,4067,4069,3,410,205,0,4068,4067,1,0,0,0,4069,4072,1,0,0,0,4070,4068,1,0,0,0,4070,4071,1,0,0,0,4071,4073,1,0,0,0,4072,4070,1,0,0,0,4073,4080,5,41,0,0,4074,4076,3,410,205,0,4075,4074,1,0,0,0,4076,4077,1,0,0,0,4077,4075,1,0,0,0,4077,4078,1,0,0,0,4078,4080,1,0,0,0,4079,4070,1,0,0,0,4079,4075,1,0,0,0,4080,4081,1,0,0,0,4081,4082,3,766,383,0,4082,4083,3,752,376,0,4083,4085,1,0,0,0,4084,4061,1,0,0,0,4084,4079,1,0,0,0,4085,783,1,0,0,0,4086,4087,3,76,38,0,4087,4088,5,73,0,0,4088,4089,3,786,393,0,4089,785,1,0,0,0,4090,4092,3,226,113,0,4091,4093,3,196,98,0,4092,4091,1,0,0,0,4092,4093,1,0,0,0,4093,4094,1,0,0,0,4094,4095,3,752,376,0,4095,4114,1,0,0,0,4096,4098,3,410,205,0,4097,4096,1,0,0,0,4098,4101,1,0,0,0,4099,4097,1,0,0,0,4099,4100,1,0,0,0,4100,4102,1,0,0,0,4101,4099,1,0,0,0,4102,4109,5,32,0,0,4103,4105,3,410,205,0,4104,4103,1,0,0,0,4105,4106,1,0,0,0,4106,4104,1,0,0,0,4106,4107,1,0,0,0,4107,4109,1,0,0,0,4108,4099,1,0,0,0,4108,4104,1,0,0,0,4109,4110,1,0,0,0,4110,4111,3,888,444,0,4111,4112,3,752,376,0,4112,4114,1,0,0,0,4113,4090,1,0,0,0,4113,4108,1,0,0,0,4114,787,1,0,0,0,4115,4116,3,76,38,0,4116,4117,3,790,395,0,4117,789,1,0,0,0,4118,4122,5,5,0,0,4119,4121,3,410,205,0,4120,4119,1,0,0,0,4121,4124,1,0,0,0,4122,4120,1,0,0,0,4122,4123,1,0,0,0,4123,4125,1,0,0,0,4124,4122,1,0,0,0,4125,4126,3,416,208,0,4126,791,1,0,0,0,4127,4128,3,76,38,0,4128,4129,3,794,397,0,4129,793,1,0,0,0,4130,4134,5,140,0,0,4131,4133,3,410,205,0,4132,4131,1,0,0,0,4133,4136,1,0,0,0,4134,4132,1,0,0,0,4134,4135,1,0,0,0,4135,4137,1,0,0,0,4136,4134,1,0,0,0,4137,4138,3,416,208,0,4138,795,1,0,0,0,4139,4140,3,468,234,0,4140,4141,5,133,0,0,4141,4142,3,766,383,0,4142,4143,3,770,385,0,4143,797,1,0,0,0,4144,4150,3,468,234,0,4145,4147,5,14,0,0,4146,4148,5,107,0,0,4147,4146,1,0,0,0,4147,4148,1,0,0,0,4148,4151,1,0,0,0,4149,4151,5,107,0,0,4150,4145,1,0,0,0,4150,4149,1,0,0,0,4150,4151,1,0,0,0,4151,4152,1,0,0,0,4152,4161,5,135,0,0,4153,4155,3,226,113,0,4154,4156,3,196,98,0,4155,4154,1,0,0,0,4155,4156,1,0,0,0,4156,4162,1,0,0,0,4157,4159,5,133,0,0,4158,4160,3,418,209,0,4159,4158,1,0,0,0,4159,4160,1,0,0,0,4160,4162,1,0,0,0,4161,4153,1,0,0,0,4161,4157,1,0,0,0,4162,4164,1,0,0,0,4163,4165,3,318,159,0,4164,4163,1,0,0,0,4164,4165,1,0,0,0,4165,4168,1,0,0,0,4166,4167,5,24,0,0,4167,4169,3,800,400,0,4168,4166,1,0,0,0,4168,4169,1,0,0,0,4169,4170,1,0,0,0,4170,4171,3,770,385,0,4171,799,1,0,0,0,4172,4173,3,802,401,0,4173,801,1,0,0,0,4174,4175,3,804,402,0,4175,803,1,0,0,0,4176,4177,3,806,403,0,4177,805,1,0,0,0,4178,4179,3,298,149,0,4179,807,1,0,0,0,4180,4181,3,460,230,0,4181,4182,5,32,0,0,4182,4183,5,45,0,0,4183,4184,3,386,193,0,4184,4185,3,770,385,0,4185,809,1,0,0,0,4186,4187,3,468,234,0,4187,4188,5,32,0,0,4188,4189,3,766,383,0,4189,4190,3,770,385,0,4190,811,1,0,0,0,4191,4192,3,460,230,0,4192,4193,5,26,0,0,4193,4194,5,45,0,0,4194,4195,3,386,193,0,4195,4196,3,816,408,0,4196,813,1,0,0,0,4197,4198,3,468,234,0,4198,4199,5,26,0,0,4199,4200,3,766,383,0,4200,4201,3,816,408,0,4201,815,1,0,0,0,4202,4215,5,205,0,0,4203,4207,5,214,0,0,4204,4206,3,818,409,0,4205,4204,1,0,0,0,4206,4209,1,0,0,0,4207,4205,1,0,0,0,4207,4208,1,0,0,0,4208,4211,1,0,0,0,4209,4207,1,0,0,0,4210,4212,3,288,144,0,4211,4210,1,0,0,0,4211,4212,1,0,0,0,4212,4213,1,0,0,0,4213,4215,5,216,0,0,4214,4202,1,0,0,0,4214,4203,1,0,0,0,4215,817,1,0,0,0,4216,4222,3,578,289,0,4217,4222,3,758,379,0,4218,4222,3,774,387,0,4219,4222,3,788,394,0,4220,4222,3,820,410,0,4221,4216,1,0,0,0,4221,4217,1,0,0,0,4221,4218,1,0,0,0,4221,4219,1,0,0,0,4221,4220,1,0,0,0,4222,819,1,0,0,0,4223,4224,3,76,38,0,4224,4225,5,109,0,0,4225,4226,3,822,411,0,4226,821,1,0,0,0,4227,4229,3,410,205,0,4228,4227,1,0,0,0,4229,4232,1,0,0,0,4230,4228,1,0,0,0,4230,4231,1,0,0,0,4231,4233,1,0,0,0,4232,4230,1,0,0,0,4233,4234,3,766,383,0,4234,4235,3,770,385,0,4235,823,1,0,0,0,4236,4237,3,460,230,0,4237,4238,5,11,0,0,4238,4239,5,45,0,0,4239,4240,3,386,193,0,4240,4241,3,816,408,0,4241,825,1,0,0,0,4242,4243,3,468,234,0,4243,4244,5,11,0,0,4244,4245,3,766,383,0,4245,4246,3,816,408,0,4246,827,1,0,0,0,4247,4248,3,460,230,0,4248,4249,5,166,0,0,4249,4250,5,45,0,0,4250,4251,3,386,193,0,4251,4252,3,816,408,0,4252,829,1,0,0,0,4253,4254,3,468,234,0,4254,4255,5,166,0,0,4255,4256,3,766,383,0,4256,4257,3,816,408,0,4257,831,1,0,0,0,4258,4259,3,76,38,0,4259,4260,5,167,0,0,4260,4261,3,834,417,0,4261,833,1,0,0,0,4262,4266,3,226,113,0,4263,4265,3,200,100,0,4264,4263,1,0,0,0,4265,4268,1,0,0,0,4266,4264,1,0,0,0,4266,4267,1,0,0,0,4267,4269,1,0,0,0,4268,4266,1,0,0,0,4269,4270,3,770,385,0,4270,4289,1,0,0,0,4271,4273,3,410,205,0,4272,4271,1,0,0,0,4273,4276,1,0,0,0,4274,4272,1,0,0,0,4274,4275,1,0,0,0,4275,4277,1,0,0,0,4276,4274,1,0,0,0,4277,4284,5,133,0,0,4278,4280,3,410,205,0,4279,4278,1,0,0,0,4280,4281,1,0,0,0,4281,4279,1,0,0,0,4281,4282,1,0,0,0,4282,4284,1,0,0,0,4283,4274,1,0,0,0,4283,4279,1,0,0,0,4284,4285,1,0,0,0,4285,4286,3,766,383,0,4286,4287,3,770,385,0,4287,4289,1,0,0,0,4288,4262,1,0,0,0,4288,4283,1,0,0,0,4289,835,1,0,0,0,4290,4291,3,460,230,0,4291,4292,5,162,0,0,4292,4293,5,26,0,0,4293,4294,5,45,0,0,4294,4295,3,386,193,0,4295,4296,3,816,408,0,4296,837,1,0,0,0,4297,4298,3,468,234,0,4298,4299,5,162,0,0,4299,4300,5,26,0,0,4300,4301,3,766,383,0,4301,4302,3,816,408,0,4302,839,1,0,0,0,4303,4304,3,468,234,0,4304,4314,5,81,0,0,4305,4307,3,226,113,0,4306,4308,3,196,98,0,4307,4306,1,0,0,0,4307,4308,1,0,0,0,4308,4315,1,0,0,0,4309,4310,5,162,0,0,4310,4312,5,26,0,0,4311,4313,3,418,209,0,4312,4311,1,0,0,0,4312,4313,1,0,0,0,4313,4315,1,0,0,0,4314,4305,1,0,0,0,4314,4309,1,0,0,0,4315,4317,1,0,0,0,4316,4318,3,318,159,0,4317,4316,1,0,0,0,4317,4318,1,0,0,0,4318,4319,1,0,0,0,4319,4320,3,816,408,0,4320,841,1,0,0,0,4321,4322,3,460,230,0,4322,4323,5,169,0,0,4323,4324,5,45,0,0,4324,4325,3,386,193,0,4325,4326,3,844,422,0,4326,843,1,0,0,0,4327,4337,5,205,0,0,4328,4332,5,214,0,0,4329,4331,3,846,423,0,4330,4329,1,0,0,0,4331,4334,1,0,0,0,4332,4330,1,0,0,0,4332,4333,1,0,0,0,4333,4335,1,0,0,0,4334,4332,1,0,0,0,4335,4337,5,216,0,0,4336,4327,1,0,0,0,4336,4328,1,0,0,0,4337,845,1,0,0,0,4338,4342,3,390,195,0,4339,4342,3,364,182,0,4340,4342,3,848,424,0,4341,4338,1,0,0,0,4341,4339,1,0,0,0,4341,4340,1,0,0,0,4342,847,1,0,0,0,4343,4344,3,76,38,0,4344,4345,5,129,0,0,4345,4346,3,850,425,0,4346,849,1,0,0,0,4347,4349,3,226,113,0,4348,4350,3,196,98,0,4349,4348,1,0,0,0,4349,4350,1,0,0,0,4350,4351,1,0,0,0,4351,4352,3,422,211,0,4352,4369,1,0,0,0,4353,4355,3,410,205,0,4354,4353,1,0,0,0,4355,4358,1,0,0,0,4356,4354,1,0,0,0,4356,4357,1,0,0,0,4357,4359,1,0,0,0,4358,4356,1,0,0,0,4359,4366,5,130,0,0,4360,4362,3,410,205,0,4361,4360,1,0,0,0,4362,4363,1,0,0,0,4363,4361,1,0,0,0,4363,4364,1,0,0,0,4364,4366,1,0,0,0,4365,4356,1,0,0,0,4365,4361,1,0,0,0,4366,4367,1,0,0,0,4367,4369,3,416,208,0,4368,4347,1,0,0,0,4368,4365,1,0,0,0,4369,851,1,0,0,0,4370,4371,3,468,234,0,4371,4373,5,169,0,0,4372,4374,3,418,209,0,4373,4372,1,0,0,0,4373,4374,1,0,0,0,4374,4376,1,0,0,0,4375,4377,3,318,159,0,4376,4375,1,0,0,0,4376,4377,1,0,0,0,4377,4378,1,0,0,0,4378,4379,3,854,427,0,4379,853,1,0,0,0,4380,4390,5,205,0,0,4381,4385,5,214,0,0,4382,4384,3,856,428,0,4383,4382,1,0,0,0,4384,4387,1,0,0,0,4385,4383,1,0,0,0,4385,4386,1,0,0,0,4386,4388,1,0,0,0,4387,4385,1,0,0,0,4388,4390,5,216,0,0,4389,4380,1,0,0,0,4389,4381,1,0,0,0,4390,855,1,0,0,0,4391,4396,3,390,195,0,4392,4396,3,364,182,0,4393,4396,3,848,424,0,4394,4396,3,858,429,0,4395,4391,1,0,0,0,4395,4392,1,0,0,0,4395,4393,1,0,0,0,4395,4394,1,0,0,0,4396,857,1,0,0,0,4397,4400,5,62,0,0,4398,4401,3,860,430,0,4399,4401,3,862,431,0,4400,4398,1,0,0,0,4400,4399,1,0,0,0,4401,4402,1,0,0,0,4402,4403,3,46,23,0,4403,859,1,0,0,0,4404,4405,3,94,47,0,4405,861,1,0,0,0,4406,4407,3,96,48,0,4407,863,1,0,0,0,4408,4409,3,460,230,0,4409,4410,5,170,0,0,4410,4411,5,45,0,0,4411,4412,3,386,193,0,4412,4413,3,770,385,0,4413,865,1,0,0,0,4414,4415,3,468,234,0,4415,4416,5,170,0,0,4416,4417,3,766,383,0,4417,4418,3,770,385,0,4418,867,1,0,0,0,4419,4420,3,460,230,0,4420,4421,5,130,0,0,4421,4422,5,45,0,0,4422,4423,3,384,192,0,4423,869,1,0,0,0,4424,4425,3,468,234,0,4425,4426,5,130,0,0,4426,4427,3,416,208,0,4427,871,1,0,0,0,4428,4430,5,2,0,0,4429,4428,1,0,0,0,4429,4430,1,0,0,0,4430,4434,1,0,0,0,4431,4433,3,380,190,0,4432,4431,1,0,0,0,4433,4436,1,0,0,0,4434,4432,1,0,0,0,4434,4435,1,0,0,0,4435,4437,1,0,0,0,4436,4434,1,0,0,0,4437,4438,5,102,0,0,4438,4439,5,45,0,0,4439,4440,3,384,192,0,4440,873,1,0,0,0,4441,4442,3,220,110,0,4442,875,1,0,0,0,4443,4444,3,878,439,0,4444,877,1,0,0,0,4445,4447,5,127,0,0,4446,4445,1,0,0,0,4446,4447,1,0,0,0,4447,4449,1,0,0,0,4448,4450,7,19,0,0,4449,4448,1,0,0,0,4449,4450,1,0,0,0,4450,4451,1,0,0,0,4451,4453,3,232,116,0,4452,4454,3,196,98,0,4453,4452,1,0,0,0,4453,4454,1,0,0,0,4454,4456,1,0,0,0,4455,4457,3,318,159,0,4456,4455,1,0,0,0,4456,4457,1,0,0,0,4457,4458,1,0,0,0,4458,4459,3,348,174,0,4459,879,1,0,0,0,4460,4462,3,378,189,0,4461,4460,1,0,0,0,4461,4462,1,0,0,0,4462,4464,1,0,0,0,4463,4465,3,380,190,0,4464,4463,1,0,0,0,4465,4466,1,0,0,0,4466,4464,1,0,0,0,4466,4467,1,0,0,0,4467,4468,1,0,0,0,4468,4469,5,45,0,0,4469,4470,3,384,192,0,4470,881,1,0,0,0,4471,4473,3,412,206,0,4472,4474,3,410,205,0,4473,4472,1,0,0,0,4474,4475,1,0,0,0,4475,4473,1,0,0,0,4475,4476,1,0,0,0,4476,4477,1,0,0,0,4477,4478,3,416,208,0,4478,883,1,0,0,0,4479,4482,3,94,47,0,4480,4482,3,886,443,0,4481,4479,1,0,0,0,4481,4480,1,0,0,0,4482,885,1,0,0,0,4483,4484,3,88,44,0,4484,4485,5,183,0,0,4485,4488,5,198,0,0,4486,4487,5,183,0,0,4487,4489,5,179,0,0,4488,4486,1,0,0,0,4488,4489,1,0,0,0,4489,887,1,0,0,0,4490,4492,3,418,209,0,4491,4490,1,0,0,0,4491,4492,1,0,0,0,4492,4494,1,0,0,0,4493,4495,3,318,159,0,4494,4493,1,0,0,0,4494,4495,1,0,0,0,4495,889,1,0,0,0,4496,4497,1,0,0,0,4497,891,1,0,0,0,4498,4499,1,0,0,0,4499,893,1,0,0,0,4500,4501,1,0,0,0,4501,895,1,0,0,0,4502,4503,1,0,0,0,4503,897,1,0,0,0,4504,4505,5,218,0,0,4505,899,1,0,0,0,4506,4507,5,218,0,0,4507,901,1,0,0,0,4508,4509,1,0,0,0,4509,903,1,0,0,0,510,919,975,982,998,1e3,1002,1012,1022,1033,1036,1041,1056,1065,1073,1085,1104,1118,1125,1133,1137,1141,1145,1150,1155,1158,1165,1174,1182,1189,1199,1203,1211,1214,1216,1220,1226,1230,1236,1238,1247,1255,1263,1270,1274,1279,1282,1288,1302,1305,1313,1320,1326,1330,1337,1342,1349,1352,1358,1364,1366,1374,1402,1414,1422,1427,1431,1434,1437,1441,1443,1448,1457,1467,1476,1485,1494,1503,1511,1515,1521,1525,1527,1542,1550,1555,1557,1565,1574,1584,1589,1591,1599,1608,1618,1626,1634,1642,1647,1662,1665,1668,1672,1677,1686,1691,1693,1706,1709,1713,1716,1720,1723,1728,1733,1736,1739,1742,1745,1751,1756,1766,1768,1773,1778,1782,1787,1794,1797,1803,1811,1825,1831,1834,1839,1846,1849,1854,1858,1860,1864,1868,1870,1872,1879,1886,1894,1903,1920,1928,1930,1937,1944,1951,1956,1958,1971,1979,1987,1992,1994,2007,2012,2014,2022,2031,2041,2046,2049,2087,2090,2093,2099,2102,2107,2109,2116,2126,2134,2139,2158,2161,2164,2170,2172,2185,2188,2191,2197,2199,2210,2224,2229,2231,2235,2248,2261,2268,2272,2281,2302,2306,2313,2316,2323,2326,2330,2337,2339,2344,2348,2352,2356,2360,2362,2367,2370,2375,2382,2384,2393,2402,2404,2410,2414,2421,2434,2441,2452,2458,2465,2476,2479,2484,2489,2491,2500,2509,2511,2515,2521,2526,2529,2533,2536,2543,2550,2556,2564,2571,2575,2583,2586,2593,2602,2611,2616,2648,2652,2659,2664,2671,2674,2681,2685,2692,2698,2703,2710,2713,2723,2742,2745,2748,2751,2755,2764,2770,2774,2780,2783,2786,2797,2810,2823,2827,2830,2833,2839,2856,2874,2897,2905,2920,2932,2934,2938,2943,2950,2959,2963,2968,2977,2983,2994,2997,3002,3014,3021,3027,3038,3042,3044,3056,3101,3104,3108,3112,3118,3132,3140,3142,3153,3155,3174,3178,3184,3189,3199,3208,3219,3222,3226,3229,3233,3247,3255,3260,3275,3279,3283,3296,3299,3303,3310,3316,3348,3352,3359,3363,3369,3373,3381,3384,3388,3410,3413,3422,3426,3428,3431,3441,3445,3449,3455,3459,3462,3467,3473,3480,3487,3494,3503,3511,3517,3520,3523,3533,3538,3543,3547,3549,3554,3559,3565,3571,3586,3599,3605,3609,3620,3622,3630,3632,3638,3650,3657,3667,3672,3689,3691,3708,3714,3718,3722,3728,3736,3741,3759,3770,3797,3803,3807,3813,3817,3819,3822,3828,3831,3838,3841,3844,3855,3858,3861,3866,3869,3873,3875,3897,3904,3908,3915,3919,3926,3930,3937,3941,3966,3971,3975,3979,3999,4003,4007,4012,4015,4028,4032,4041,4050,4063,4070,4077,4079,4084,4092,4099,4106,4108,4113,4122,4134,4147,4150,4155,4159,4161,4164,4168,4207,4211,4214,4221,4230,4266,4274,4281,4283,4288,4307,4312,4314,4317,4332,4336,4341,4349,4356,4363,4365,4368,4373,4376,4385,4389,4395,4400,4429,4434,4446,4449,4453,4456,4461,4466,4475,4481,4488,4491,4494];static __ATN;static get _ATN(){return _SysMLv2Parser.__ATN||(_SysMLv2Parser.__ATN=new ATNDeserializer().deserialize(_SysMLv2Parser._serializedATN)),_SysMLv2Parser.__ATN}static vocabulary=new Vocabulary(_SysMLv2Parser.literalNames,_SysMLv2Parser.symbolicNames,[]);get vocabulary(){return _SysMLv2Parser.vocabulary}static decisionsToDFA=_SysMLv2Parser._ATN.decisionToState.map((ds,index2)=>new DFA(ds,index2))},OwnedExpressionContext=class _OwnedExpressionContext extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IF(){return this.getToken(SysMLv2Parser.IF,0)}ownedExpression(i){return i===void 0?this.getRuleContexts(_OwnedExpressionContext):this.getRuleContext(i,_OwnedExpressionContext)}QUESTION(){return this.getToken(SysMLv2Parser.QUESTION,0)}ELSE(){return this.getToken(SysMLv2Parser.ELSE,0)}PLUS(){return this.getToken(SysMLv2Parser.PLUS,0)}MINUS(){return this.getToken(SysMLv2Parser.MINUS,0)}TILDE(){return this.getToken(SysMLv2Parser.TILDE,0)}NOT(){return this.getToken(SysMLv2Parser.NOT,0)}typeReference(){return this.getRuleContext(0,TypeReferenceContext)}AT_SIGN(){return this.getToken(SysMLv2Parser.AT_SIGN,0)}AT_AT(){return this.getToken(SysMLv2Parser.AT_AT,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}baseExpression(){return this.getRuleContext(0,BaseExpressionContext)}QUESTION_QUESTION(){return this.getToken(SysMLv2Parser.QUESTION_QUESTION,0)}IMPLIES(){return this.getToken(SysMLv2Parser.IMPLIES,0)}OR(){return this.getToken(SysMLv2Parser.OR,0)}AND(){return this.getToken(SysMLv2Parser.AND,0)}XOR(){return this.getToken(SysMLv2Parser.XOR,0)}PIPE(){return this.getToken(SysMLv2Parser.PIPE,0)}AMP(){return this.getToken(SysMLv2Parser.AMP,0)}EQ_EQ(){return this.getToken(SysMLv2Parser.EQ_EQ,0)}BANG_EQ(){return this.getToken(SysMLv2Parser.BANG_EQ,0)}EQ_EQ_EQ(){return this.getToken(SysMLv2Parser.EQ_EQ_EQ,0)}BANG_EQ_EQ(){return this.getToken(SysMLv2Parser.BANG_EQ_EQ,0)}LT(){return this.getToken(SysMLv2Parser.LT,0)}GT(){return this.getToken(SysMLv2Parser.GT,0)}LE(){return this.getToken(SysMLv2Parser.LE,0)}GE(){return this.getToken(SysMLv2Parser.GE,0)}DOT_DOT(){return this.getToken(SysMLv2Parser.DOT_DOT,0)}STAR(){return this.getToken(SysMLv2Parser.STAR,0)}SLASH(){return this.getToken(SysMLv2Parser.SLASH,0)}PERCENT(){return this.getToken(SysMLv2Parser.PERCENT,0)}STAR_STAR(){return this.getToken(SysMLv2Parser.STAR_STAR,0)}CARET(){return this.getToken(SysMLv2Parser.CARET,0)}ISTYPE(){return this.getToken(SysMLv2Parser.ISTYPE,0)}HASTYPE(){return this.getToken(SysMLv2Parser.HASTYPE,0)}AS(){return this.getToken(SysMLv2Parser.AS,0)}META(){return this.getToken(SysMLv2Parser.META,0)}LBRACK(){return this.getToken(SysMLv2Parser.LBRACK,0)}RBRACK(){return this.getToken(SysMLv2Parser.RBRACK,0)}sequenceExpressionList(){return this.getRuleContext(0,SequenceExpressionListContext)}HASH(){return this.getToken(SysMLv2Parser.HASH,0)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}argumentList(){return this.getRuleContext(0,ArgumentListContext)}DOT(){return this.getToken(SysMLv2Parser.DOT,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}DOT_QUESTION(){return this.getToken(SysMLv2Parser.DOT_QUESTION,0)}bodyExpression(){return this.getRuleContext(0,BodyExpressionContext)}ARROW(){return this.getToken(SysMLv2Parser.ARROW,0)}get ruleIndex(){return SysMLv2Parser.RULE_ownedExpression}enterRule(listener){listener.enterOwnedExpression&&listener.enterOwnedExpression(this)}exitRule(listener){listener.exitOwnedExpression&&listener.exitOwnedExpression(this)}accept(visitor){return visitor.visitOwnedExpression?visitor.visitOwnedExpression(this):visitor.visitChildren(this)}},TypeReferenceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeReference}enterRule(listener){listener.enterTypeReference&&listener.enterTypeReference(this)}exitRule(listener){listener.exitTypeReference&&listener.exitTypeReference(this)}accept(visitor){return visitor.visitTypeReference?visitor.visitTypeReference(this):visitor.visitChildren(this)}},SequenceExpressionListContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(i){return i===void 0?this.getRuleContexts(OwnedExpressionContext):this.getRuleContext(i,OwnedExpressionContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_sequenceExpressionList}enterRule(listener){listener.enterSequenceExpressionList&&listener.enterSequenceExpressionList(this)}exitRule(listener){listener.exitSequenceExpressionList&&listener.exitSequenceExpressionList(this)}accept(visitor){return visitor.visitSequenceExpressionList?visitor.visitSequenceExpressionList(this):visitor.visitChildren(this)}},BaseExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nullExpression(){return this.getRuleContext(0,NullExpressionContext)}REGULAR_COMMENT(){return this.getToken(SysMLv2Parser.REGULAR_COMMENT,0)}literalExpression(){return this.getRuleContext(0,LiteralExpressionContext)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}argumentList(){return this.getRuleContext(0,ArgumentListContext)}DOT(){return this.getToken(SysMLv2Parser.DOT,0)}METADATA(){return this.getToken(SysMLv2Parser.METADATA,0)}constructorExpression(){return this.getRuleContext(0,ConstructorExpressionContext)}bodyExpression(){return this.getRuleContext(0,BodyExpressionContext)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}AS(){return this.getToken(SysMLv2Parser.AS,0)}typeReference(){return this.getRuleContext(0,TypeReferenceContext)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}sequenceExpressionList(){return this.getRuleContext(0,SequenceExpressionListContext)}get ruleIndex(){return SysMLv2Parser.RULE_baseExpression}enterRule(listener){listener.enterBaseExpression&&listener.enterBaseExpression(this)}exitRule(listener){listener.exitBaseExpression&&listener.exitBaseExpression(this)}accept(visitor){return visitor.visitBaseExpression?visitor.visitBaseExpression(this):visitor.visitChildren(this)}},NullExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}NULL(){return this.getToken(SysMLv2Parser.NULL,0)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}get ruleIndex(){return SysMLv2Parser.RULE_nullExpression}enterRule(listener){listener.enterNullExpression&&listener.enterNullExpression(this)}exitRule(listener){listener.exitNullExpression&&listener.exitNullExpression(this)}accept(visitor){return visitor.visitNullExpression?visitor.visitNullExpression(this):visitor.visitChildren(this)}},FeatureReferenceExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureReferenceExpression}enterRule(listener){listener.enterFeatureReferenceExpression&&listener.enterFeatureReferenceExpression(this)}exitRule(listener){listener.exitFeatureReferenceExpression&&listener.exitFeatureReferenceExpression(this)}accept(visitor){return visitor.visitFeatureReferenceExpression?visitor.visitFeatureReferenceExpression(this):visitor.visitChildren(this)}},ConstructorExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}NEW(){return this.getToken(SysMLv2Parser.NEW,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}argumentList(){return this.getRuleContext(0,ArgumentListContext)}get ruleIndex(){return SysMLv2Parser.RULE_constructorExpression}enterRule(listener){listener.enterConstructorExpression&&listener.enterConstructorExpression(this)}exitRule(listener){listener.exitConstructorExpression&&listener.exitConstructorExpression(this)}accept(visitor){return visitor.visitConstructorExpression?visitor.visitConstructorExpression(this):visitor.visitChildren(this)}},BodyExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,FunctionBodyPartContext)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}get ruleIndex(){return SysMLv2Parser.RULE_bodyExpression}enterRule(listener){listener.enterBodyExpression&&listener.enterBodyExpression(this)}exitRule(listener){listener.exitBodyExpression&&listener.exitBodyExpression(this)}accept(visitor){return visitor.visitBodyExpression?visitor.visitBodyExpression(this):visitor.visitChildren(this)}},ArgumentListContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}positionalArgumentList(){return this.getRuleContext(0,PositionalArgumentListContext)}namedArgumentList(){return this.getRuleContext(0,NamedArgumentListContext)}get ruleIndex(){return SysMLv2Parser.RULE_argumentList}enterRule(listener){listener.enterArgumentList&&listener.enterArgumentList(this)}exitRule(listener){listener.exitArgumentList&&listener.exitArgumentList(this)}accept(visitor){return visitor.visitArgumentList?visitor.visitArgumentList(this):visitor.visitChildren(this)}},PositionalArgumentListContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(i){return i===void 0?this.getRuleContexts(OwnedExpressionContext):this.getRuleContext(i,OwnedExpressionContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_positionalArgumentList}enterRule(listener){listener.enterPositionalArgumentList&&listener.enterPositionalArgumentList(this)}exitRule(listener){listener.exitPositionalArgumentList&&listener.exitPositionalArgumentList(this)}accept(visitor){return visitor.visitPositionalArgumentList?visitor.visitPositionalArgumentList(this):visitor.visitChildren(this)}},NamedArgumentListContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namedArgument(i){return i===void 0?this.getRuleContexts(NamedArgumentContext):this.getRuleContext(i,NamedArgumentContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_namedArgumentList}enterRule(listener){listener.enterNamedArgumentList&&listener.enterNamedArgumentList(this)}exitRule(listener){listener.exitNamedArgumentList&&listener.exitNamedArgumentList(this)}accept(visitor){return visitor.visitNamedArgumentList?visitor.visitNamedArgumentList(this):visitor.visitChildren(this)}},NamedArgumentContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}EQ(){return this.getToken(SysMLv2Parser.EQ,0)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_namedArgument}enterRule(listener){listener.enterNamedArgument&&listener.enterNamedArgument(this)}exitRule(listener){listener.exitNamedArgument&&listener.exitNamedArgument(this)}accept(visitor){return visitor.visitNamedArgument?visitor.visitNamedArgument(this):visitor.visitChildren(this)}},LiteralExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}literalBoolean(){return this.getRuleContext(0,LiteralBooleanContext)}literalString(){return this.getRuleContext(0,LiteralStringContext)}literalInteger(){return this.getRuleContext(0,LiteralIntegerContext)}literalReal(){return this.getRuleContext(0,LiteralRealContext)}literalInfinity(){return this.getRuleContext(0,LiteralInfinityContext)}get ruleIndex(){return SysMLv2Parser.RULE_literalExpression}enterRule(listener){listener.enterLiteralExpression&&listener.enterLiteralExpression(this)}exitRule(listener){listener.exitLiteralExpression&&listener.exitLiteralExpression(this)}accept(visitor){return visitor.visitLiteralExpression?visitor.visitLiteralExpression(this):visitor.visitChildren(this)}},LiteralBooleanContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TRUE(){return this.getToken(SysMLv2Parser.TRUE,0)}FALSE(){return this.getToken(SysMLv2Parser.FALSE,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalBoolean}enterRule(listener){listener.enterLiteralBoolean&&listener.enterLiteralBoolean(this)}exitRule(listener){listener.exitLiteralBoolean&&listener.exitLiteralBoolean(this)}accept(visitor){return visitor.visitLiteralBoolean?visitor.visitLiteralBoolean(this):visitor.visitChildren(this)}},LiteralStringContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DOUBLE_STRING(){return this.getToken(SysMLv2Parser.DOUBLE_STRING,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalString}enterRule(listener){listener.enterLiteralString&&listener.enterLiteralString(this)}exitRule(listener){listener.exitLiteralString&&listener.exitLiteralString(this)}accept(visitor){return visitor.visitLiteralString?visitor.visitLiteralString(this):visitor.visitChildren(this)}},LiteralIntegerContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INTEGER(){return this.getToken(SysMLv2Parser.INTEGER,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalInteger}enterRule(listener){listener.enterLiteralInteger&&listener.enterLiteralInteger(this)}exitRule(listener){listener.exitLiteralInteger&&listener.exitLiteralInteger(this)}accept(visitor){return visitor.visitLiteralInteger?visitor.visitLiteralInteger(this):visitor.visitChildren(this)}},LiteralRealContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}REAL(){return this.getToken(SysMLv2Parser.REAL,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalReal}enterRule(listener){listener.enterLiteralReal&&listener.enterLiteralReal(this)}exitRule(listener){listener.exitLiteralReal&&listener.exitLiteralReal(this)}accept(visitor){return visitor.visitLiteralReal?visitor.visitLiteralReal(this):visitor.visitChildren(this)}},LiteralInfinityContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}STAR(){return this.getToken(SysMLv2Parser.STAR,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalInfinity}enterRule(listener){listener.enterLiteralInfinity&&listener.enterLiteralInfinity(this)}exitRule(listener){listener.exitLiteralInfinity&&listener.exitLiteralInfinity(this)}accept(visitor){return visitor.visitLiteralInfinity?visitor.visitLiteralInfinity(this):visitor.visitChildren(this)}},ArgumentMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_argumentMember}enterRule(listener){listener.enterArgumentMember&&listener.enterArgumentMember(this)}exitRule(listener){listener.exitArgumentMember&&listener.exitArgumentMember(this)}accept(visitor){return visitor.visitArgumentMember?visitor.visitArgumentMember(this):visitor.visitChildren(this)}},ArgumentExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_argumentExpressionMember}enterRule(listener){listener.enterArgumentExpressionMember&&listener.enterArgumentExpressionMember(this)}exitRule(listener){listener.exitArgumentExpressionMember&&listener.exitArgumentExpressionMember(this)}accept(visitor){return visitor.visitArgumentExpressionMember?visitor.visitArgumentExpressionMember(this):visitor.visitChildren(this)}},NameContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IDENTIFIER(){return this.getToken(SysMLv2Parser.IDENTIFIER,0)}STRING(){return this.getToken(SysMLv2Parser.STRING,0)}unreservedKeyword(){return this.getRuleContext(0,UnreservedKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_name}enterRule(listener){listener.enterName&&listener.enterName(this)}exitRule(listener){listener.exitName&&listener.exitName(this)}accept(visitor){return visitor.visitName?visitor.visitName(this):visitor.visitChildren(this)}},UnreservedKeywordContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TYPE(){return this.getToken(SysMLv2Parser.TYPE,0)}MULTIPLICITY(){return this.getToken(SysMLv2Parser.MULTIPLICITY,0)}VAR(){return this.getToken(SysMLv2Parser.VAR,0)}LANGUAGE(){return this.getToken(SysMLv2Parser.LANGUAGE,0)}LOCALE(){return this.getToken(SysMLv2Parser.LOCALE,0)}CROSSES(){return this.getToken(SysMLv2Parser.CROSSES,0)}STEP(){return this.getToken(SysMLv2Parser.STEP,0)}FEATURE(){return this.getToken(SysMLv2Parser.FEATURE,0)}BEHAVIOR(){return this.getToken(SysMLv2Parser.BEHAVIOR,0)}FUNCTION(){return this.getToken(SysMLv2Parser.FUNCTION,0)}MEMBER(){return this.getToken(SysMLv2Parser.MEMBER,0)}PREDICATE(){return this.getToken(SysMLv2Parser.PREDICATE,0)}INTERACTION(){return this.getToken(SysMLv2Parser.INTERACTION,0)}METACLASS(){return this.getToken(SysMLv2Parser.METACLASS,0)}get ruleIndex(){return SysMLv2Parser.RULE_unreservedKeyword}enterRule(listener){listener.enterUnreservedKeyword&&listener.enterUnreservedKeyword(this)}exitRule(listener){listener.exitUnreservedKeyword&&listener.exitUnreservedKeyword(this)}accept(visitor){return visitor.visitUnreservedKeyword?visitor.visitUnreservedKeyword(this):visitor.visitChildren(this)}},IdentificationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LT(){return this.getToken(SysMLv2Parser.LT,0)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}GT(){return this.getToken(SysMLv2Parser.GT,0)}get ruleIndex(){return SysMLv2Parser.RULE_identification}enterRule(listener){listener.enterIdentification&&listener.enterIdentification(this)}exitRule(listener){listener.exitIdentification&&listener.exitIdentification(this)}accept(visitor){return visitor.visitIdentification?visitor.visitIdentification(this):visitor.visitChildren(this)}},RelationshipBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}relationshipOwnedElement(i){return i===void 0?this.getRuleContexts(RelationshipOwnedElementContext):this.getRuleContext(i,RelationshipOwnedElementContext)}ownedAnnotation(i){return i===void 0?this.getRuleContexts(OwnedAnnotationContext):this.getRuleContext(i,OwnedAnnotationContext)}get ruleIndex(){return SysMLv2Parser.RULE_relationshipBody}enterRule(listener){listener.enterRelationshipBody&&listener.enterRelationshipBody(this)}exitRule(listener){listener.exitRelationshipBody&&listener.exitRelationshipBody(this)}accept(visitor){return visitor.visitRelationshipBody?visitor.visitRelationshipBody(this):visitor.visitChildren(this)}},RelationshipOwnedElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedRelatedElement(){return this.getRuleContext(0,OwnedRelatedElementContext)}ownedAnnotation(){return this.getRuleContext(0,OwnedAnnotationContext)}get ruleIndex(){return SysMLv2Parser.RULE_relationshipOwnedElement}enterRule(listener){listener.enterRelationshipOwnedElement&&listener.enterRelationshipOwnedElement(this)}exitRule(listener){listener.exitRelationshipOwnedElement&&listener.exitRelationshipOwnedElement(this)}accept(visitor){return visitor.visitRelationshipOwnedElement?visitor.visitRelationshipOwnedElement(this):visitor.visitChildren(this)}},OwnedRelatedElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureElement(){return this.getRuleContext(0,NonFeatureElementContext)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedRelatedElement}enterRule(listener){listener.enterOwnedRelatedElement&&listener.enterOwnedRelatedElement(this)}exitRule(listener){listener.exitOwnedRelatedElement&&listener.exitOwnedRelatedElement(this)}accept(visitor){return visitor.visitOwnedRelatedElement?visitor.visitOwnedRelatedElement(this):visitor.visitChildren(this)}},DependencyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DEPENDENCY(){return this.getToken(SysMLv2Parser.DEPENDENCY,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}prefixMetadataAnnotation(i){return i===void 0?this.getRuleContexts(PrefixMetadataAnnotationContext):this.getRuleContext(i,PrefixMetadataAnnotationContext)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}identification(){return this.getRuleContext(0,IdentificationContext)}dependencyDeclaration(){return this.getRuleContext(0,DependencyDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_dependency}enterRule(listener){listener.enterDependency&&listener.enterDependency(this)}exitRule(listener){listener.exitDependency&&listener.exitDependency(this)}accept(visitor){return visitor.visitDependency?visitor.visitDependency(this):visitor.visitChildren(this)}},AnnotationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_annotation}enterRule(listener){listener.enterAnnotation&&listener.enterAnnotation(this)}exitRule(listener){listener.exitAnnotation&&listener.exitAnnotation(this)}accept(visitor){return visitor.visitAnnotation?visitor.visitAnnotation(this):visitor.visitChildren(this)}},OwnedAnnotationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}annotatingElement(){return this.getRuleContext(0,AnnotatingElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedAnnotation}enterRule(listener){listener.enterOwnedAnnotation&&listener.enterOwnedAnnotation(this)}exitRule(listener){listener.exitOwnedAnnotation&&listener.exitOwnedAnnotation(this)}accept(visitor){return visitor.visitOwnedAnnotation?visitor.visitOwnedAnnotation(this):visitor.visitChildren(this)}},AnnotatingElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}comment(){return this.getRuleContext(0,CommentContext)}documentation(){return this.getRuleContext(0,DocumentationContext)}textualRepresentation(){return this.getRuleContext(0,TextualRepresentationContext)}metadataFeature(){return this.getRuleContext(0,MetadataFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_annotatingElement}enterRule(listener){listener.enterAnnotatingElement&&listener.enterAnnotatingElement(this)}exitRule(listener){listener.exitAnnotatingElement&&listener.exitAnnotatingElement(this)}accept(visitor){return visitor.visitAnnotatingElement?visitor.visitAnnotatingElement(this):visitor.visitChildren(this)}},CommentContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}REGULAR_COMMENT(){return this.getToken(SysMLv2Parser.REGULAR_COMMENT,0)}COMMENT(){return this.getToken(SysMLv2Parser.COMMENT,0)}LOCALE(){return this.getToken(SysMLv2Parser.LOCALE,0)}DOUBLE_STRING(){return this.getToken(SysMLv2Parser.DOUBLE_STRING,0)}identification(){return this.getRuleContext(0,IdentificationContext)}ABOUT(){return this.getToken(SysMLv2Parser.ABOUT,0)}annotation(i){return i===void 0?this.getRuleContexts(AnnotationContext):this.getRuleContext(i,AnnotationContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_comment}enterRule(listener){listener.enterComment&&listener.enterComment(this)}exitRule(listener){listener.exitComment&&listener.exitComment(this)}accept(visitor){return visitor.visitComment?visitor.visitComment(this):visitor.visitChildren(this)}},DocumentationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DOC(){return this.getToken(SysMLv2Parser.DOC,0)}REGULAR_COMMENT(){return this.getToken(SysMLv2Parser.REGULAR_COMMENT,0)}identification(){return this.getRuleContext(0,IdentificationContext)}LOCALE(){return this.getToken(SysMLv2Parser.LOCALE,0)}DOUBLE_STRING(){return this.getToken(SysMLv2Parser.DOUBLE_STRING,0)}get ruleIndex(){return SysMLv2Parser.RULE_documentation}enterRule(listener){listener.enterDocumentation&&listener.enterDocumentation(this)}exitRule(listener){listener.exitDocumentation&&listener.exitDocumentation(this)}accept(visitor){return visitor.visitDocumentation?visitor.visitDocumentation(this):visitor.visitChildren(this)}},TextualRepresentationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LANGUAGE(){return this.getToken(SysMLv2Parser.LANGUAGE,0)}DOUBLE_STRING(){return this.getToken(SysMLv2Parser.DOUBLE_STRING,0)}REGULAR_COMMENT(){return this.getToken(SysMLv2Parser.REGULAR_COMMENT,0)}REP(){return this.getToken(SysMLv2Parser.REP,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_textualRepresentation}enterRule(listener){listener.enterTextualRepresentation&&listener.enterTextualRepresentation(this)}exitRule(listener){listener.exitTextualRepresentation&&listener.exitTextualRepresentation(this)}accept(visitor){return visitor.visitTextualRepresentation?visitor.visitTextualRepresentation(this):visitor.visitChildren(this)}},RootNamespaceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}EOF(){return this.getToken(SysMLv2Parser.EOF,0)}packageBodyElement(i){return i===void 0?this.getRuleContexts(PackageBodyElementContext):this.getRuleContext(i,PackageBodyElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_rootNamespace}enterRule(listener){listener.enterRootNamespace&&listener.enterRootNamespace(this)}exitRule(listener){listener.exitRootNamespace&&listener.exitRootNamespace(this)}accept(visitor){return visitor.visitRootNamespace?visitor.visitRootNamespace(this):visitor.visitChildren(this)}},NamespaceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namespaceDeclaration(){return this.getRuleContext(0,NamespaceDeclarationContext)}namespaceBody(){return this.getRuleContext(0,NamespaceBodyContext)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespace}enterRule(listener){listener.enterNamespace&&listener.enterNamespace(this)}exitRule(listener){listener.exitNamespace&&listener.exitNamespace(this)}accept(visitor){return visitor.visitNamespace?visitor.visitNamespace(this):visitor.visitChildren(this)}},NamespaceDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}NAMESPACE(){return this.getToken(SysMLv2Parser.NAMESPACE,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceDeclaration}enterRule(listener){listener.enterNamespaceDeclaration&&listener.enterNamespaceDeclaration(this)}exitRule(listener){listener.exitNamespaceDeclaration&&listener.exitNamespaceDeclaration(this)}accept(visitor){return visitor.visitNamespaceDeclaration?visitor.visitNamespaceDeclaration(this):visitor.visitChildren(this)}},NamespaceBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}namespaceBodyElement(i){return i===void 0?this.getRuleContexts(NamespaceBodyElementContext):this.getRuleContext(i,NamespaceBodyElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceBody}enterRule(listener){listener.enterNamespaceBody&&listener.enterNamespaceBody(this)}exitRule(listener){listener.exitNamespaceBody&&listener.exitNamespaceBody(this)}accept(visitor){return visitor.visitNamespaceBody?visitor.visitNamespaceBody(this):visitor.visitChildren(this)}},NamespaceBodyElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namespaceMember(){return this.getRuleContext(0,NamespaceMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceBodyElement}enterRule(listener){listener.enterNamespaceBodyElement&&listener.enterNamespaceBodyElement(this)}exitRule(listener){listener.exitNamespaceBodyElement&&listener.exitNamespaceBodyElement(this)}accept(visitor){return visitor.visitNamespaceBodyElement?visitor.visitNamespaceBodyElement(this):visitor.visitChildren(this)}},MemberPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}visibilityIndicator(){return this.getRuleContext(0,VisibilityIndicatorContext)}get ruleIndex(){return SysMLv2Parser.RULE_memberPrefix}enterRule(listener){listener.enterMemberPrefix&&listener.enterMemberPrefix(this)}exitRule(listener){listener.exitMemberPrefix&&listener.exitMemberPrefix(this)}accept(visitor){return visitor.visitMemberPrefix?visitor.visitMemberPrefix(this):visitor.visitChildren(this)}},VisibilityIndicatorContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}PUBLIC(){return this.getToken(SysMLv2Parser.PUBLIC,0)}PRIVATE(){return this.getToken(SysMLv2Parser.PRIVATE,0)}PROTECTED(){return this.getToken(SysMLv2Parser.PROTECTED,0)}get ruleIndex(){return SysMLv2Parser.RULE_visibilityIndicator}enterRule(listener){listener.enterVisibilityIndicator&&listener.enterVisibilityIndicator(this)}exitRule(listener){listener.exitVisibilityIndicator&&listener.exitVisibilityIndicator(this)}accept(visitor){return visitor.visitVisibilityIndicator?visitor.visitVisibilityIndicator(this):visitor.visitChildren(this)}},NamespaceMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureMember(){return this.getRuleContext(0,NonFeatureMemberContext)}namespaceFeatureMember(){return this.getRuleContext(0,NamespaceFeatureMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceMember}enterRule(listener){listener.enterNamespaceMember&&listener.enterNamespaceMember(this)}exitRule(listener){listener.exitNamespaceMember&&listener.exitNamespaceMember(this)}accept(visitor){return visitor.visitNamespaceMember?visitor.visitNamespaceMember(this):visitor.visitChildren(this)}},NonFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}memberElement(){return this.getRuleContext(0,MemberElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonFeatureMember}enterRule(listener){listener.enterNonFeatureMember&&listener.enterNonFeatureMember(this)}exitRule(listener){listener.exitNonFeatureMember&&listener.exitNonFeatureMember(this)}accept(visitor){return visitor.visitNonFeatureMember?visitor.visitNonFeatureMember(this):visitor.visitChildren(this)}},NamespaceFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceFeatureMember}enterRule(listener){listener.enterNamespaceFeatureMember&&listener.enterNamespaceFeatureMember(this)}exitRule(listener){listener.exitNamespaceFeatureMember&&listener.exitNamespaceFeatureMember(this)}accept(visitor){return visitor.visitNamespaceFeatureMember?visitor.visitNamespaceFeatureMember(this):visitor.visitChildren(this)}},AliasMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}ALIAS(){return this.getToken(SysMLv2Parser.ALIAS,0)}FOR(){return this.getToken(SysMLv2Parser.FOR,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}LT(){return this.getToken(SysMLv2Parser.LT,0)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}GT(){return this.getToken(SysMLv2Parser.GT,0)}get ruleIndex(){return SysMLv2Parser.RULE_aliasMember}enterRule(listener){listener.enterAliasMember&&listener.enterAliasMember(this)}exitRule(listener){listener.exitAliasMember&&listener.exitAliasMember(this)}accept(visitor){return visitor.visitAliasMember?visitor.visitAliasMember(this):visitor.visitChildren(this)}},QualifiedNameContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}DOLLAR(){return this.getToken(SysMLv2Parser.DOLLAR,0)}COLON_COLON(i){return i===void 0?this.getTokens(SysMLv2Parser.COLON_COLON):this.getToken(SysMLv2Parser.COLON_COLON,i)}get ruleIndex(){return SysMLv2Parser.RULE_qualifiedName}enterRule(listener){listener.enterQualifiedName&&listener.enterQualifiedName(this)}exitRule(listener){listener.exitQualifiedName&&listener.exitQualifiedName(this)}accept(visitor){return visitor.visitQualifiedName?visitor.visitQualifiedName(this):visitor.visitChildren(this)}},ImportRuleContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IMPORT(){return this.getToken(SysMLv2Parser.IMPORT,0)}importDeclaration(){return this.getRuleContext(0,ImportDeclarationContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}visibilityIndicator(){return this.getRuleContext(0,VisibilityIndicatorContext)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}get ruleIndex(){return SysMLv2Parser.RULE_importRule}enterRule(listener){listener.enterImportRule&&listener.enterImportRule(this)}exitRule(listener){listener.exitImportRule&&listener.exitImportRule(this)}accept(visitor){return visitor.visitImportRule?visitor.visitImportRule(this):visitor.visitChildren(this)}},ImportDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}membershipImport(){return this.getRuleContext(0,MembershipImportContext)}namespaceImport(){return this.getRuleContext(0,NamespaceImportContext)}get ruleIndex(){return SysMLv2Parser.RULE_importDeclaration}enterRule(listener){listener.enterImportDeclaration&&listener.enterImportDeclaration(this)}exitRule(listener){listener.exitImportDeclaration&&listener.exitImportDeclaration(this)}accept(visitor){return visitor.visitImportDeclaration?visitor.visitImportDeclaration(this):visitor.visitChildren(this)}},MembershipImportContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}COLON_COLON(){return this.getToken(SysMLv2Parser.COLON_COLON,0)}STAR_STAR(){return this.getToken(SysMLv2Parser.STAR_STAR,0)}get ruleIndex(){return SysMLv2Parser.RULE_membershipImport}enterRule(listener){listener.enterMembershipImport&&listener.enterMembershipImport(this)}exitRule(listener){listener.exitMembershipImport&&listener.exitMembershipImport(this)}accept(visitor){return visitor.visitMembershipImport?visitor.visitMembershipImport(this):visitor.visitChildren(this)}},NamespaceImportContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}COLON_COLON(i){return i===void 0?this.getTokens(SysMLv2Parser.COLON_COLON):this.getToken(SysMLv2Parser.COLON_COLON,i)}STAR(){return this.getToken(SysMLv2Parser.STAR,0)}STAR_STAR(){return this.getToken(SysMLv2Parser.STAR_STAR,0)}filterPackage(){return this.getRuleContext(0,FilterPackageContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceImport}enterRule(listener){listener.enterNamespaceImport&&listener.enterNamespaceImport(this)}exitRule(listener){listener.exitNamespaceImport&&listener.exitNamespaceImport(this)}accept(visitor){return visitor.visitNamespaceImport?visitor.visitNamespaceImport(this):visitor.visitChildren(this)}},FilterPackageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}filterPackageImportDeclaration(){return this.getRuleContext(0,FilterPackageImportDeclarationContext)}filterPackageMember(i){return i===void 0?this.getRuleContexts(FilterPackageMemberContext):this.getRuleContext(i,FilterPackageMemberContext)}filterPackageImport(){return this.getRuleContext(0,FilterPackageImportContext)}get ruleIndex(){return SysMLv2Parser.RULE_filterPackage}enterRule(listener){listener.enterFilterPackage&&listener.enterFilterPackage(this)}exitRule(listener){listener.exitFilterPackage&&listener.exitFilterPackage(this)}accept(visitor){return visitor.visitFilterPackage?visitor.visitFilterPackage(this):visitor.visitChildren(this)}},FilterPackageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACK(){return this.getToken(SysMLv2Parser.LBRACK,0)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}RBRACK(){return this.getToken(SysMLv2Parser.RBRACK,0)}get ruleIndex(){return SysMLv2Parser.RULE_filterPackageMember}enterRule(listener){listener.enterFilterPackageMember&&listener.enterFilterPackageMember(this)}exitRule(listener){listener.exitFilterPackageMember&&listener.exitFilterPackageMember(this)}accept(visitor){return visitor.visitFilterPackageMember?visitor.visitFilterPackageMember(this):visitor.visitChildren(this)}},MemberElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}annotatingElement(){return this.getRuleContext(0,AnnotatingElementContext)}nonFeatureElement(){return this.getRuleContext(0,NonFeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_memberElement}enterRule(listener){listener.enterMemberElement&&listener.enterMemberElement(this)}exitRule(listener){listener.exitMemberElement&&listener.exitMemberElement(this)}accept(visitor){return visitor.visitMemberElement?visitor.visitMemberElement(this):visitor.visitChildren(this)}},NonFeatureElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}dependency(){return this.getRuleContext(0,DependencyContext)}namespace(){return this.getRuleContext(0,NamespaceContext)}type(){return this.getRuleContext(0,TypeContext)}classifier(){return this.getRuleContext(0,ClassifierContext)}dataType(){return this.getRuleContext(0,DataTypeContext)}class(){return this.getRuleContext(0,ClassContext)}structure(){return this.getRuleContext(0,StructureContext)}metaclass(){return this.getRuleContext(0,MetaclassContext)}association(){return this.getRuleContext(0,AssociationContext)}associationStructure(){return this.getRuleContext(0,AssociationStructureContext)}interaction(){return this.getRuleContext(0,InteractionContext)}behavior(){return this.getRuleContext(0,BehaviorContext)}function(){return this.getRuleContext(0,FunctionContext)}predicate(){return this.getRuleContext(0,PredicateContext)}multiplicity(){return this.getRuleContext(0,MultiplicityContext)}package(){return this.getRuleContext(0,PackageContext)}libraryPackage(){return this.getRuleContext(0,LibraryPackageContext)}specialization(){return this.getRuleContext(0,SpecializationContext)}conjugation(){return this.getRuleContext(0,ConjugationContext)}subclassification(){return this.getRuleContext(0,SubclassificationContext)}disjoining(){return this.getRuleContext(0,DisjoiningContext)}featureInverting(){return this.getRuleContext(0,FeatureInvertingContext)}featureTyping(){return this.getRuleContext(0,FeatureTypingContext)}subsetting(){return this.getRuleContext(0,SubsettingContext)}redefinition(){return this.getRuleContext(0,RedefinitionContext)}typeFeaturing(){return this.getRuleContext(0,TypeFeaturingContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonFeatureElement}enterRule(listener){listener.enterNonFeatureElement&&listener.enterNonFeatureElement(this)}exitRule(listener){listener.exitNonFeatureElement&&listener.exitNonFeatureElement(this)}accept(visitor){return visitor.visitNonFeatureElement?visitor.visitNonFeatureElement(this):visitor.visitChildren(this)}},FeatureElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}feature(){return this.getRuleContext(0,FeatureContext)}step(){return this.getRuleContext(0,StepContext)}expression(){return this.getRuleContext(0,ExpressionContext)}booleanExpression(){return this.getRuleContext(0,BooleanExpressionContext)}invariant(){return this.getRuleContext(0,InvariantContext)}connector(){return this.getRuleContext(0,ConnectorContext)}bindingConnector(){return this.getRuleContext(0,BindingConnectorContext)}succession(){return this.getRuleContext(0,SuccessionContext)}flow(){return this.getRuleContext(0,FlowContext)}successionFlow(){return this.getRuleContext(0,SuccessionFlowContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureElement}enterRule(listener){listener.enterFeatureElement&&listener.enterFeatureElement(this)}exitRule(listener){listener.exitFeatureElement&&listener.exitFeatureElement(this)}accept(visitor){return visitor.visitFeatureElement?visitor.visitFeatureElement(this):visitor.visitChildren(this)}},TypeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}TYPE(){return this.getToken(SysMLv2Parser.TYPE,0)}typeDeclaration(){return this.getRuleContext(0,TypeDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_type}enterRule(listener){listener.enterType&&listener.enterType(this)}exitRule(listener){listener.exitType&&listener.exitType(this)}accept(visitor){return visitor.visitType?visitor.visitType(this):visitor.visitChildren(this)}},TypePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_typePrefix}enterRule(listener){listener.enterTypePrefix&&listener.enterTypePrefix(this)}exitRule(listener){listener.exitTypePrefix&&listener.exitTypePrefix(this)}accept(visitor){return visitor.visitTypePrefix?visitor.visitTypePrefix(this):visitor.visitChildren(this)}},TypeDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}identification(){return this.getRuleContext(0,IdentificationContext)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}specializationPart(i){return i===void 0?this.getRuleContexts(SpecializationPartContext):this.getRuleContext(i,SpecializationPartContext)}conjugationPart(i){return i===void 0?this.getRuleContexts(ConjugationPartContext):this.getRuleContext(i,ConjugationPartContext)}typeRelationshipPart(i){return i===void 0?this.getRuleContexts(TypeRelationshipPartContext):this.getRuleContext(i,TypeRelationshipPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeDeclaration}enterRule(listener){listener.enterTypeDeclaration&&listener.enterTypeDeclaration(this)}exitRule(listener){listener.exitTypeDeclaration&&listener.exitTypeDeclaration(this)}accept(visitor){return visitor.visitTypeDeclaration?visitor.visitTypeDeclaration(this):visitor.visitChildren(this)}},SpecializationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedSpecialization(i){return i===void 0?this.getRuleContexts(OwnedSpecializationContext):this.getRuleContext(i,OwnedSpecializationContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_specializationPart}enterRule(listener){listener.enterSpecializationPart&&listener.enterSpecializationPart(this)}exitRule(listener){listener.exitSpecializationPart&&listener.exitSpecializationPart(this)}accept(visitor){return visitor.visitSpecializationPart?visitor.visitSpecializationPart(this):visitor.visitChildren(this)}},ConjugationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedConjugation(){return this.getRuleContext(0,OwnedConjugationContext)}TILDE(){return this.getToken(SysMLv2Parser.TILDE,0)}CONJUGATES(){return this.getToken(SysMLv2Parser.CONJUGATES,0)}get ruleIndex(){return SysMLv2Parser.RULE_conjugationPart}enterRule(listener){listener.enterConjugationPart&&listener.enterConjugationPart(this)}exitRule(listener){listener.exitConjugationPart&&listener.exitConjugationPart(this)}accept(visitor){return visitor.visitConjugationPart?visitor.visitConjugationPart(this):visitor.visitChildren(this)}},TypeRelationshipPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}disjoiningPart(){return this.getRuleContext(0,DisjoiningPartContext)}unioningPart(){return this.getRuleContext(0,UnioningPartContext)}intersectingPart(){return this.getRuleContext(0,IntersectingPartContext)}differencingPart(){return this.getRuleContext(0,DifferencingPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeRelationshipPart}enterRule(listener){listener.enterTypeRelationshipPart&&listener.enterTypeRelationshipPart(this)}exitRule(listener){listener.exitTypeRelationshipPart&&listener.exitTypeRelationshipPart(this)}accept(visitor){return visitor.visitTypeRelationshipPart?visitor.visitTypeRelationshipPart(this):visitor.visitChildren(this)}},DisjoiningPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DISJOINT(){return this.getToken(SysMLv2Parser.DISJOINT,0)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}ownedDisjoining(i){return i===void 0?this.getRuleContexts(OwnedDisjoiningContext):this.getRuleContext(i,OwnedDisjoiningContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_disjoiningPart}enterRule(listener){listener.enterDisjoiningPart&&listener.enterDisjoiningPart(this)}exitRule(listener){listener.exitDisjoiningPart&&listener.exitDisjoiningPart(this)}accept(visitor){return visitor.visitDisjoiningPart?visitor.visitDisjoiningPart(this):visitor.visitChildren(this)}},UnioningPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}UNIONS(){return this.getToken(SysMLv2Parser.UNIONS,0)}unioning(i){return i===void 0?this.getRuleContexts(UnioningContext):this.getRuleContext(i,UnioningContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_unioningPart}enterRule(listener){listener.enterUnioningPart&&listener.enterUnioningPart(this)}exitRule(listener){listener.exitUnioningPart&&listener.exitUnioningPart(this)}accept(visitor){return visitor.visitUnioningPart?visitor.visitUnioningPart(this):visitor.visitChildren(this)}},IntersectingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INTERSECTS(){return this.getToken(SysMLv2Parser.INTERSECTS,0)}intersecting(i){return i===void 0?this.getRuleContexts(IntersectingContext):this.getRuleContext(i,IntersectingContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_intersectingPart}enterRule(listener){listener.enterIntersectingPart&&listener.enterIntersectingPart(this)}exitRule(listener){listener.exitIntersectingPart&&listener.exitIntersectingPart(this)}accept(visitor){return visitor.visitIntersectingPart?visitor.visitIntersectingPart(this):visitor.visitChildren(this)}},DifferencingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DIFFERENCES(){return this.getToken(SysMLv2Parser.DIFFERENCES,0)}differencing(i){return i===void 0?this.getRuleContexts(DifferencingContext):this.getRuleContext(i,DifferencingContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_differencingPart}enterRule(listener){listener.enterDifferencingPart&&listener.enterDifferencingPart(this)}exitRule(listener){listener.exitDifferencingPart&&listener.exitDifferencingPart(this)}accept(visitor){return visitor.visitDifferencingPart?visitor.visitDifferencingPart(this):visitor.visitChildren(this)}},TypeBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}typeBodyElement(i){return i===void 0?this.getRuleContexts(TypeBodyElementContext):this.getRuleContext(i,TypeBodyElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeBody}enterRule(listener){listener.enterTypeBody&&listener.enterTypeBody(this)}exitRule(listener){listener.exitTypeBody&&listener.exitTypeBody(this)}accept(visitor){return visitor.visitTypeBody?visitor.visitTypeBody(this):visitor.visitChildren(this)}},TypeBodyElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureMember(){return this.getRuleContext(0,NonFeatureMemberContext)}featureMember(){return this.getRuleContext(0,FeatureMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeBodyElement}enterRule(listener){listener.enterTypeBodyElement&&listener.enterTypeBodyElement(this)}exitRule(listener){listener.exitTypeBodyElement&&listener.exitTypeBodyElement(this)}accept(visitor){return visitor.visitTypeBodyElement?visitor.visitTypeBodyElement(this):visitor.visitChildren(this)}},SpecializationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SUBTYPE(){return this.getToken(SysMLv2Parser.SUBTYPE,0)}specificType(){return this.getRuleContext(0,SpecificTypeContext)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_specialization}enterRule(listener){listener.enterSpecialization&&listener.enterSpecialization(this)}exitRule(listener){listener.exitSpecialization&&listener.exitSpecialization(this)}accept(visitor){return visitor.visitSpecialization?visitor.visitSpecialization(this):visitor.visitChildren(this)}},OwnedSpecializationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedSpecialization}enterRule(listener){listener.enterOwnedSpecialization&&listener.enterOwnedSpecialization(this)}exitRule(listener){listener.exitOwnedSpecialization&&listener.exitOwnedSpecialization(this)}accept(visitor){return visitor.visitOwnedSpecialization?visitor.visitOwnedSpecialization(this):visitor.visitChildren(this)}},SpecificTypeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_specificType}enterRule(listener){listener.enterSpecificType&&listener.enterSpecificType(this)}exitRule(listener){listener.exitSpecificType&&listener.exitSpecificType(this)}accept(visitor){return visitor.visitSpecificType?visitor.visitSpecificType(this):visitor.visitChildren(this)}},GeneralTypeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_generalType}enterRule(listener){listener.enterGeneralType&&listener.enterGeneralType(this)}exitRule(listener){listener.exitGeneralType&&listener.exitGeneralType(this)}accept(visitor){return visitor.visitGeneralType?visitor.visitGeneralType(this):visitor.visitChildren(this)}},ConjugationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}CONJUGATE(){return this.getToken(SysMLv2Parser.CONJUGATE,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}TILDE(){return this.getToken(SysMLv2Parser.TILDE,0)}CONJUGATES(){return this.getToken(SysMLv2Parser.CONJUGATES,0)}CONJUGATION(){return this.getToken(SysMLv2Parser.CONJUGATION,0)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_conjugation}enterRule(listener){listener.enterConjugation&&listener.enterConjugation(this)}exitRule(listener){listener.exitConjugation&&listener.exitConjugation(this)}accept(visitor){return visitor.visitConjugation?visitor.visitConjugation(this):visitor.visitChildren(this)}},OwnedConjugationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedConjugation}enterRule(listener){listener.enterOwnedConjugation&&listener.enterOwnedConjugation(this)}exitRule(listener){listener.exitOwnedConjugation&&listener.exitOwnedConjugation(this)}accept(visitor){return visitor.visitOwnedConjugation?visitor.visitOwnedConjugation(this):visitor.visitChildren(this)}},DisjoiningContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DISJOINT(){return this.getToken(SysMLv2Parser.DISJOINT,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}DISJOINING(){return this.getToken(SysMLv2Parser.DISJOINING,0)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_disjoining}enterRule(listener){listener.enterDisjoining&&listener.enterDisjoining(this)}exitRule(listener){listener.exitDisjoining&&listener.exitDisjoining(this)}accept(visitor){return visitor.visitDisjoining?visitor.visitDisjoining(this):visitor.visitChildren(this)}},OwnedDisjoiningContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedDisjoining}enterRule(listener){listener.enterOwnedDisjoining&&listener.enterOwnedDisjoining(this)}exitRule(listener){listener.exitOwnedDisjoining&&listener.exitOwnedDisjoining(this)}accept(visitor){return visitor.visitOwnedDisjoining?visitor.visitOwnedDisjoining(this):visitor.visitChildren(this)}},UnioningContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_unioning}enterRule(listener){listener.enterUnioning&&listener.enterUnioning(this)}exitRule(listener){listener.exitUnioning&&listener.exitUnioning(this)}accept(visitor){return visitor.visitUnioning?visitor.visitUnioning(this):visitor.visitChildren(this)}},IntersectingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_intersecting}enterRule(listener){listener.enterIntersecting&&listener.enterIntersecting(this)}exitRule(listener){listener.exitIntersecting&&listener.exitIntersecting(this)}accept(visitor){return visitor.visitIntersecting?visitor.visitIntersecting(this):visitor.visitChildren(this)}},DifferencingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_differencing}enterRule(listener){listener.enterDifferencing&&listener.enterDifferencing(this)}exitRule(listener){listener.exitDifferencing&&listener.exitDifferencing(this)}accept(visitor){return visitor.visitDifferencing?visitor.visitDifferencing(this):visitor.visitChildren(this)}},FeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typeFeatureMember(){return this.getRuleContext(0,TypeFeatureMemberContext)}ownedFeatureMember(){return this.getRuleContext(0,OwnedFeatureMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureMember}enterRule(listener){listener.enterFeatureMember&&listener.enterFeatureMember(this)}exitRule(listener){listener.exitFeatureMember&&listener.exitFeatureMember(this)}accept(visitor){return visitor.visitFeatureMember?visitor.visitFeatureMember(this):visitor.visitChildren(this)}},TypeFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}MEMBER(){return this.getToken(SysMLv2Parser.MEMBER,0)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeFeatureMember}enterRule(listener){listener.enterTypeFeatureMember&&listener.enterTypeFeatureMember(this)}exitRule(listener){listener.exitTypeFeatureMember&&listener.exitTypeFeatureMember(this)}accept(visitor){return visitor.visitTypeFeatureMember?visitor.visitTypeFeatureMember(this):visitor.visitChildren(this)}},OwnedFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureMember}enterRule(listener){listener.enterOwnedFeatureMember&&listener.enterOwnedFeatureMember(this)}exitRule(listener){listener.exitOwnedFeatureMember&&listener.exitOwnedFeatureMember(this)}accept(visitor){return visitor.visitOwnedFeatureMember?visitor.visitOwnedFeatureMember(this):visitor.visitChildren(this)}},ClassifierContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}CLASSIFIER(){return this.getToken(SysMLv2Parser.CLASSIFIER,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_classifier}enterRule(listener){listener.enterClassifier&&listener.enterClassifier(this)}exitRule(listener){listener.exitClassifier&&listener.exitClassifier(this)}accept(visitor){return visitor.visitClassifier?visitor.visitClassifier(this):visitor.visitChildren(this)}},ClassifierDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}identification(){return this.getRuleContext(0,IdentificationContext)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}superclassingPart(){return this.getRuleContext(0,SuperclassingPartContext)}conjugationPart(){return this.getRuleContext(0,ConjugationPartContext)}typeRelationshipPart(i){return i===void 0?this.getRuleContexts(TypeRelationshipPartContext):this.getRuleContext(i,TypeRelationshipPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_classifierDeclaration}enterRule(listener){listener.enterClassifierDeclaration&&listener.enterClassifierDeclaration(this)}exitRule(listener){listener.exitClassifierDeclaration&&listener.exitClassifierDeclaration(this)}accept(visitor){return visitor.visitClassifierDeclaration?visitor.visitClassifierDeclaration(this):visitor.visitChildren(this)}},SuperclassingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedSubclassification(i){return i===void 0?this.getRuleContexts(OwnedSubclassificationContext):this.getRuleContext(i,OwnedSubclassificationContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_superclassingPart}enterRule(listener){listener.enterSuperclassingPart&&listener.enterSuperclassingPart(this)}exitRule(listener){listener.exitSuperclassingPart&&listener.exitSuperclassingPart(this)}accept(visitor){return visitor.visitSuperclassingPart?visitor.visitSuperclassingPart(this):visitor.visitChildren(this)}},SubclassificationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SUBCLASSIFIER(){return this.getToken(SysMLv2Parser.SUBCLASSIFIER,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_subclassification}enterRule(listener){listener.enterSubclassification&&listener.enterSubclassification(this)}exitRule(listener){listener.exitSubclassification&&listener.exitSubclassification(this)}accept(visitor){return visitor.visitSubclassification?visitor.visitSubclassification(this):visitor.visitChildren(this)}},OwnedSubclassificationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedSubclassification}enterRule(listener){listener.enterOwnedSubclassification&&listener.enterOwnedSubclassification(this)}exitRule(listener){listener.exitOwnedSubclassification&&listener.exitOwnedSubclassification(this)}accept(visitor){return visitor.visitOwnedSubclassification?visitor.visitOwnedSubclassification(this):visitor.visitChildren(this)}},FeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}FEATURE(){return this.getToken(SysMLv2Parser.FEATURE,0)}prefixMetadataMember(){return this.getRuleContext(0,PrefixMetadataMemberContext)}endFeaturePrefix(){return this.getRuleContext(0,EndFeaturePrefixContext)}basicFeaturePrefix(){return this.getRuleContext(0,BasicFeaturePrefixContext)}REF(){return this.getToken(SysMLv2Parser.REF,0)}get ruleIndex(){return SysMLv2Parser.RULE_feature}enterRule(listener){listener.enterFeature&&listener.enterFeature(this)}exitRule(listener){listener.exitFeature&&listener.exitFeature(this)}accept(visitor){return visitor.visitFeature?visitor.visitFeature(this):visitor.visitChildren(this)}},EndFeaturePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}END(){return this.getToken(SysMLv2Parser.END,0)}CONST(){return this.getToken(SysMLv2Parser.CONST,0)}get ruleIndex(){return SysMLv2Parser.RULE_endFeaturePrefix}enterRule(listener){listener.enterEndFeaturePrefix&&listener.enterEndFeaturePrefix(this)}exitRule(listener){listener.exitEndFeaturePrefix&&listener.exitEndFeaturePrefix(this)}accept(visitor){return visitor.visitEndFeaturePrefix?visitor.visitEndFeaturePrefix(this):visitor.visitChildren(this)}},BasicFeaturePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDirection(){return this.getRuleContext(0,FeatureDirectionContext)}DERIVED(){return this.getToken(SysMLv2Parser.DERIVED,0)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}COMPOSITE(){return this.getToken(SysMLv2Parser.COMPOSITE,0)}PORTION(){return this.getToken(SysMLv2Parser.PORTION,0)}VAR(){return this.getToken(SysMLv2Parser.VAR,0)}CONST(){return this.getToken(SysMLv2Parser.CONST,0)}get ruleIndex(){return SysMLv2Parser.RULE_basicFeaturePrefix}enterRule(listener){listener.enterBasicFeaturePrefix&&listener.enterBasicFeaturePrefix(this)}exitRule(listener){listener.exitBasicFeaturePrefix&&listener.exitBasicFeaturePrefix(this)}accept(visitor){return visitor.visitBasicFeaturePrefix?visitor.visitBasicFeaturePrefix(this):visitor.visitChildren(this)}},FeaturePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}endFeaturePrefix(){return this.getRuleContext(0,EndFeaturePrefixContext)}ownedCrossFeatureMember(){return this.getRuleContext(0,OwnedCrossFeatureMemberContext)}basicFeaturePrefix(){return this.getRuleContext(0,BasicFeaturePrefixContext)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_featurePrefix}enterRule(listener){listener.enterFeaturePrefix&&listener.enterFeaturePrefix(this)}exitRule(listener){listener.exitFeaturePrefix&&listener.exitFeaturePrefix(this)}accept(visitor){return visitor.visitFeaturePrefix?visitor.visitFeaturePrefix(this):visitor.visitChildren(this)}},OwnedCrossFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedCrossFeature(){return this.getRuleContext(0,OwnedCrossFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossFeatureMember}enterRule(listener){listener.enterOwnedCrossFeatureMember&&listener.enterOwnedCrossFeatureMember(this)}exitRule(listener){listener.exitOwnedCrossFeatureMember&&listener.exitOwnedCrossFeatureMember(this)}accept(visitor){return visitor.visitOwnedCrossFeatureMember?visitor.visitOwnedCrossFeatureMember(this):visitor.visitChildren(this)}},OwnedCrossFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicFeaturePrefix(){return this.getRuleContext(0,BasicFeaturePrefixContext)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossFeature}enterRule(listener){listener.enterOwnedCrossFeature&&listener.enterOwnedCrossFeature(this)}exitRule(listener){listener.exitOwnedCrossFeature&&listener.exitOwnedCrossFeature(this)}accept(visitor){return visitor.visitOwnedCrossFeature?visitor.visitOwnedCrossFeature(this):visitor.visitChildren(this)}},FeatureDirectionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IN(){return this.getToken(SysMLv2Parser.IN,0)}OUT(){return this.getToken(SysMLv2Parser.OUT,0)}INOUT(){return this.getToken(SysMLv2Parser.INOUT,0)}get ruleIndex(){return SysMLv2Parser.RULE_featureDirection}enterRule(listener){listener.enterFeatureDirection&&listener.enterFeatureDirection(this)}exitRule(listener){listener.exitFeatureDirection&&listener.exitFeatureDirection(this)}accept(visitor){return visitor.visitFeatureDirection?visitor.visitFeatureDirection(this):visitor.visitChildren(this)}},FeatureDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureIdentification(){return this.getRuleContext(0,FeatureIdentificationContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}conjugationPart(){return this.getRuleContext(0,ConjugationPartContext)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}featureRelationshipPart(i){return i===void 0?this.getRuleContexts(FeatureRelationshipPartContext):this.getRuleContext(i,FeatureRelationshipPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureDeclaration}enterRule(listener){listener.enterFeatureDeclaration&&listener.enterFeatureDeclaration(this)}exitRule(listener){listener.exitFeatureDeclaration&&listener.exitFeatureDeclaration(this)}accept(visitor){return visitor.visitFeatureDeclaration?visitor.visitFeatureDeclaration(this):visitor.visitChildren(this)}},FeatureIdentificationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LT(){return this.getToken(SysMLv2Parser.LT,0)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}GT(){return this.getToken(SysMLv2Parser.GT,0)}get ruleIndex(){return SysMLv2Parser.RULE_featureIdentification}enterRule(listener){listener.enterFeatureIdentification&&listener.enterFeatureIdentification(this)}exitRule(listener){listener.exitFeatureIdentification&&listener.exitFeatureIdentification(this)}accept(visitor){return visitor.visitFeatureIdentification?visitor.visitFeatureIdentification(this):visitor.visitChildren(this)}},FeatureRelationshipPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typeRelationshipPart(){return this.getRuleContext(0,TypeRelationshipPartContext)}chainingPart(){return this.getRuleContext(0,ChainingPartContext)}invertingPart(){return this.getRuleContext(0,InvertingPartContext)}typeFeaturingPart(){return this.getRuleContext(0,TypeFeaturingPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureRelationshipPart}enterRule(listener){listener.enterFeatureRelationshipPart&&listener.enterFeatureRelationshipPart(this)}exitRule(listener){listener.exitFeatureRelationshipPart&&listener.exitFeatureRelationshipPart(this)}accept(visitor){return visitor.visitFeatureRelationshipPart?visitor.visitFeatureRelationshipPart(this):visitor.visitChildren(this)}},ChainingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}CHAINS(){return this.getToken(SysMLv2Parser.CHAINS,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_chainingPart}enterRule(listener){listener.enterChainingPart&&listener.enterChainingPart(this)}exitRule(listener){listener.exitChainingPart&&listener.exitChainingPart(this)}accept(visitor){return visitor.visitChainingPart?visitor.visitChainingPart(this):visitor.visitChildren(this)}},InvertingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INVERSE(){return this.getToken(SysMLv2Parser.INVERSE,0)}OF(){return this.getToken(SysMLv2Parser.OF,0)}ownedFeatureInverting(){return this.getRuleContext(0,OwnedFeatureInvertingContext)}get ruleIndex(){return SysMLv2Parser.RULE_invertingPart}enterRule(listener){listener.enterInvertingPart&&listener.enterInvertingPart(this)}exitRule(listener){listener.exitInvertingPart&&listener.exitInvertingPart(this)}accept(visitor){return visitor.visitInvertingPart?visitor.visitInvertingPart(this):visitor.visitChildren(this)}},TypeFeaturingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}FEATURED(){return this.getToken(SysMLv2Parser.FEATURED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}ownedTypeFeaturing(i){return i===void 0?this.getRuleContexts(OwnedTypeFeaturingContext):this.getRuleContext(i,OwnedTypeFeaturingContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_typeFeaturingPart}enterRule(listener){listener.enterTypeFeaturingPart&&listener.enterTypeFeaturingPart(this)}exitRule(listener){listener.exitTypeFeaturingPart&&listener.exitTypeFeaturingPart(this)}accept(visitor){return visitor.visitTypeFeaturingPart?visitor.visitTypeFeaturingPart(this):visitor.visitChildren(this)}},FeatureSpecializationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureSpecialization(i){return i===void 0?this.getRuleContexts(FeatureSpecializationContext):this.getRuleContext(i,FeatureSpecializationContext)}multiplicityPart(){return this.getRuleContext(0,MultiplicityPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureSpecializationPart}enterRule(listener){listener.enterFeatureSpecializationPart&&listener.enterFeatureSpecializationPart(this)}exitRule(listener){listener.exitFeatureSpecializationPart&&listener.exitFeatureSpecializationPart(this)}accept(visitor){return visitor.visitFeatureSpecializationPart?visitor.visitFeatureSpecializationPart(this):visitor.visitChildren(this)}},MultiplicityPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}ORDERED(){return this.getToken(SysMLv2Parser.ORDERED,0)}NONUNIQUE(){return this.getToken(SysMLv2Parser.NONUNIQUE,0)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicityPart}enterRule(listener){listener.enterMultiplicityPart&&listener.enterMultiplicityPart(this)}exitRule(listener){listener.exitMultiplicityPart&&listener.exitMultiplicityPart(this)}accept(visitor){return visitor.visitMultiplicityPart?visitor.visitMultiplicityPart(this):visitor.visitChildren(this)}},FeatureSpecializationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typings(){return this.getRuleContext(0,TypingsContext)}subsettings(){return this.getRuleContext(0,SubsettingsContext)}references(){return this.getRuleContext(0,ReferencesContext)}crosses(){return this.getRuleContext(0,CrossesContext)}redefinitions(){return this.getRuleContext(0,RedefinitionsContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureSpecialization}enterRule(listener){listener.enterFeatureSpecialization&&listener.enterFeatureSpecialization(this)}exitRule(listener){listener.exitFeatureSpecialization&&listener.exitFeatureSpecialization(this)}accept(visitor){return visitor.visitFeatureSpecialization?visitor.visitFeatureSpecialization(this):visitor.visitChildren(this)}},TypingsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typedBy(){return this.getRuleContext(0,TypedByContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}featureTyping(i){return i===void 0?this.getRuleContexts(FeatureTypingContext):this.getRuleContext(i,FeatureTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_typings}enterRule(listener){listener.enterTypings&&listener.enterTypings(this)}exitRule(listener){listener.exitTypings&&listener.exitTypings(this)}accept(visitor){return visitor.visitTypings?visitor.visitTypings(this):visitor.visitChildren(this)}},TypedByContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureTyping(){return this.getRuleContext(0,FeatureTypingContext)}COLON(){return this.getToken(SysMLv2Parser.COLON,0)}TYPED(){return this.getToken(SysMLv2Parser.TYPED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}DEFINED(){return this.getToken(SysMLv2Parser.DEFINED,0)}get ruleIndex(){return SysMLv2Parser.RULE_typedBy}enterRule(listener){listener.enterTypedBy&&listener.enterTypedBy(this)}exitRule(listener){listener.exitTypedBy&&listener.exitTypedBy(this)}accept(visitor){return visitor.visitTypedBy?visitor.visitTypedBy(this):visitor.visitChildren(this)}},SubsettingsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}subsets(){return this.getRuleContext(0,SubsetsContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}ownedSubsetting(i){return i===void 0?this.getRuleContexts(OwnedSubsettingContext):this.getRuleContext(i,OwnedSubsettingContext)}get ruleIndex(){return SysMLv2Parser.RULE_subsettings}enterRule(listener){listener.enterSubsettings&&listener.enterSubsettings(this)}exitRule(listener){listener.exitSubsettings&&listener.exitSubsettings(this)}accept(visitor){return visitor.visitSubsettings?visitor.visitSubsettings(this):visitor.visitChildren(this)}},SubsetsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedSubsetting(){return this.getRuleContext(0,OwnedSubsettingContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SUBSETS(){return this.getToken(SysMLv2Parser.SUBSETS,0)}get ruleIndex(){return SysMLv2Parser.RULE_subsets}enterRule(listener){listener.enterSubsets&&listener.enterSubsets(this)}exitRule(listener){listener.exitSubsets&&listener.exitSubsets(this)}accept(visitor){return visitor.visitSubsets?visitor.visitSubsets(this):visitor.visitChildren(this)}},ReferencesContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}COLON_COLON_GT(){return this.getToken(SysMLv2Parser.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(SysMLv2Parser.REFERENCES,0)}get ruleIndex(){return SysMLv2Parser.RULE_references}enterRule(listener){listener.enterReferences&&listener.enterReferences(this)}exitRule(listener){listener.exitReferences&&listener.exitReferences(this)}accept(visitor){return visitor.visitReferences?visitor.visitReferences(this):visitor.visitChildren(this)}},CrossesContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedCrossSubsetting(){return this.getRuleContext(0,OwnedCrossSubsettingContext)}FAT_ARROW(){return this.getToken(SysMLv2Parser.FAT_ARROW,0)}CROSSES(){return this.getToken(SysMLv2Parser.CROSSES,0)}get ruleIndex(){return SysMLv2Parser.RULE_crosses}enterRule(listener){listener.enterCrosses&&listener.enterCrosses(this)}exitRule(listener){listener.exitCrosses&&listener.exitCrosses(this)}accept(visitor){return visitor.visitCrosses?visitor.visitCrosses(this):visitor.visitChildren(this)}},RedefinitionsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}redefines(){return this.getRuleContext(0,RedefinesContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}ownedRedefinition(i){return i===void 0?this.getRuleContexts(OwnedRedefinitionContext):this.getRuleContext(i,OwnedRedefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_redefinitions}enterRule(listener){listener.enterRedefinitions&&listener.enterRedefinitions(this)}exitRule(listener){listener.exitRedefinitions&&listener.exitRedefinitions(this)}accept(visitor){return visitor.visitRedefinitions?visitor.visitRedefinitions(this):visitor.visitChildren(this)}},RedefinesContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedRedefinition(){return this.getRuleContext(0,OwnedRedefinitionContext)}COLON_GT_GT(){return this.getToken(SysMLv2Parser.COLON_GT_GT,0)}REDEFINES(){return this.getToken(SysMLv2Parser.REDEFINES,0)}get ruleIndex(){return SysMLv2Parser.RULE_redefines}enterRule(listener){listener.enterRedefines&&listener.enterRedefines(this)}exitRule(listener){listener.exitRedefines&&listener.exitRedefines(this)}accept(visitor){return visitor.visitRedefines?visitor.visitRedefines(this):visitor.visitChildren(this)}},FeatureTypingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TYPING(){return this.getToken(SysMLv2Parser.TYPING,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON(){return this.getToken(SysMLv2Parser.COLON,0)}TYPED(){return this.getToken(SysMLv2Parser.TYPED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}conjugatedPortTyping(){return this.getRuleContext(0,ConjugatedPortTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureTyping}enterRule(listener){listener.enterFeatureTyping&&listener.enterFeatureTyping(this)}exitRule(listener){listener.exitFeatureTyping&&listener.exitFeatureTyping(this)}accept(visitor){return visitor.visitFeatureTyping?visitor.visitFeatureTyping(this):visitor.visitChildren(this)}},OwnedFeatureTypingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureTyping}enterRule(listener){listener.enterOwnedFeatureTyping&&listener.enterOwnedFeatureTyping(this)}exitRule(listener){listener.exitOwnedFeatureTyping&&listener.exitOwnedFeatureTyping(this)}accept(visitor){return visitor.visitOwnedFeatureTyping?visitor.visitOwnedFeatureTyping(this):visitor.visitChildren(this)}},SubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SUBSET(){return this.getToken(SysMLv2Parser.SUBSET,0)}specificType(){return this.getRuleContext(0,SpecificTypeContext)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SUBSETS(){return this.getToken(SysMLv2Parser.SUBSETS,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_subsetting}enterRule(listener){listener.enterSubsetting&&listener.enterSubsetting(this)}exitRule(listener){listener.exitSubsetting&&listener.exitSubsetting(this)}accept(visitor){return visitor.visitSubsetting?visitor.visitSubsetting(this):visitor.visitChildren(this)}},OwnedSubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedSubsetting}enterRule(listener){listener.enterOwnedSubsetting&&listener.enterOwnedSubsetting(this)}exitRule(listener){listener.exitOwnedSubsetting&&listener.exitOwnedSubsetting(this)}accept(visitor){return visitor.visitOwnedSubsetting?visitor.visitOwnedSubsetting(this):visitor.visitChildren(this)}},OwnedReferenceSubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedReferenceSubsetting}enterRule(listener){listener.enterOwnedReferenceSubsetting&&listener.enterOwnedReferenceSubsetting(this)}exitRule(listener){listener.exitOwnedReferenceSubsetting&&listener.exitOwnedReferenceSubsetting(this)}accept(visitor){return visitor.visitOwnedReferenceSubsetting?visitor.visitOwnedReferenceSubsetting(this):visitor.visitChildren(this)}},OwnedCrossSubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossSubsetting}enterRule(listener){listener.enterOwnedCrossSubsetting&&listener.enterOwnedCrossSubsetting(this)}exitRule(listener){listener.exitOwnedCrossSubsetting&&listener.exitOwnedCrossSubsetting(this)}accept(visitor){return visitor.visitOwnedCrossSubsetting?visitor.visitOwnedCrossSubsetting(this):visitor.visitChildren(this)}},RedefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}REDEFINITION(){return this.getToken(SysMLv2Parser.REDEFINITION,0)}specificType(){return this.getRuleContext(0,SpecificTypeContext)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON_GT_GT(){return this.getToken(SysMLv2Parser.COLON_GT_GT,0)}REDEFINES(){return this.getToken(SysMLv2Parser.REDEFINES,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_redefinition}enterRule(listener){listener.enterRedefinition&&listener.enterRedefinition(this)}exitRule(listener){listener.exitRedefinition&&listener.exitRedefinition(this)}accept(visitor){return visitor.visitRedefinition?visitor.visitRedefinition(this):visitor.visitChildren(this)}},OwnedRedefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedRedefinition}enterRule(listener){listener.enterOwnedRedefinition&&listener.enterOwnedRedefinition(this)}exitRule(listener){listener.exitOwnedRedefinition&&listener.exitOwnedRedefinition(this)}accept(visitor){return visitor.visitOwnedRedefinition?visitor.visitOwnedRedefinition(this):visitor.visitChildren(this)}},FeatureInvertingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INVERSE(){return this.getToken(SysMLv2Parser.INVERSE,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}INVERTING(){return this.getToken(SysMLv2Parser.INVERTING,0)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureInverting}enterRule(listener){listener.enterFeatureInverting&&listener.enterFeatureInverting(this)}exitRule(listener){listener.exitFeatureInverting&&listener.exitFeatureInverting(this)}accept(visitor){return visitor.visitFeatureInverting?visitor.visitFeatureInverting(this):visitor.visitChildren(this)}},OwnedFeatureInvertingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureInverting}enterRule(listener){listener.enterOwnedFeatureInverting&&listener.enterOwnedFeatureInverting(this)}exitRule(listener){listener.exitOwnedFeatureInverting&&listener.exitOwnedFeatureInverting(this)}accept(visitor){return visitor.visitOwnedFeatureInverting?visitor.visitOwnedFeatureInverting(this):visitor.visitChildren(this)}},TypeFeaturingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}FEATURING(){return this.getToken(SysMLv2Parser.FEATURING,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}BY(){return this.getToken(SysMLv2Parser.BY,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeFeaturing}enterRule(listener){listener.enterTypeFeaturing&&listener.enterTypeFeaturing(this)}exitRule(listener){listener.exitTypeFeaturing&&listener.exitTypeFeaturing(this)}accept(visitor){return visitor.visitTypeFeaturing?visitor.visitTypeFeaturing(this):visitor.visitChildren(this)}},OwnedTypeFeaturingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedTypeFeaturing}enterRule(listener){listener.enterOwnedTypeFeaturing&&listener.enterOwnedTypeFeaturing(this)}exitRule(listener){listener.exitOwnedTypeFeaturing&&listener.exitOwnedTypeFeaturing(this)}accept(visitor){return visitor.visitOwnedTypeFeaturing?visitor.visitOwnedTypeFeaturing(this):visitor.visitChildren(this)}},DataTypeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}DATATYPE(){return this.getToken(SysMLv2Parser.DATATYPE,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_dataType}enterRule(listener){listener.enterDataType&&listener.enterDataType(this)}exitRule(listener){listener.exitDataType&&listener.exitDataType(this)}accept(visitor){return visitor.visitDataType?visitor.visitDataType(this):visitor.visitChildren(this)}},ClassContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}CLASS(){return this.getToken(SysMLv2Parser.CLASS,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_class}enterRule(listener){listener.enterClass&&listener.enterClass(this)}exitRule(listener){listener.exitClass&&listener.exitClass(this)}accept(visitor){return visitor.visitClass?visitor.visitClass(this):visitor.visitChildren(this)}},StructureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}STRUCT(){return this.getToken(SysMLv2Parser.STRUCT,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_structure}enterRule(listener){listener.enterStructure&&listener.enterStructure(this)}exitRule(listener){listener.exitStructure&&listener.exitStructure(this)}accept(visitor){return visitor.visitStructure?visitor.visitStructure(this):visitor.visitChildren(this)}},AssociationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}ASSOC(){return this.getToken(SysMLv2Parser.ASSOC,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_association}enterRule(listener){listener.enterAssociation&&listener.enterAssociation(this)}exitRule(listener){listener.exitAssociation&&listener.exitAssociation(this)}accept(visitor){return visitor.visitAssociation?visitor.visitAssociation(this):visitor.visitChildren(this)}},AssociationStructureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}ASSOC(){return this.getToken(SysMLv2Parser.ASSOC,0)}STRUCT(){return this.getToken(SysMLv2Parser.STRUCT,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_associationStructure}enterRule(listener){listener.enterAssociationStructure&&listener.enterAssociationStructure(this)}exitRule(listener){listener.exitAssociationStructure&&listener.exitAssociationStructure(this)}accept(visitor){return visitor.visitAssociationStructure?visitor.visitAssociationStructure(this):visitor.visitChildren(this)}},ConnectorContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}CONNECTOR(){return this.getToken(SysMLv2Parser.CONNECTOR,0)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}connectorDeclaration(){return this.getRuleContext(0,ConnectorDeclarationContext)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_connector}enterRule(listener){listener.enterConnector&&listener.enterConnector(this)}exitRule(listener){listener.exitConnector&&listener.exitConnector(this)}accept(visitor){return visitor.visitConnector?visitor.visitConnector(this):visitor.visitChildren(this)}},ConnectorDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}binaryConnectorDeclaration(){return this.getRuleContext(0,BinaryConnectorDeclarationContext)}naryConnectorDeclaration(){return this.getRuleContext(0,NaryConnectorDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectorDeclaration}enterRule(listener){listener.enterConnectorDeclaration&&listener.enterConnectorDeclaration(this)}exitRule(listener){listener.exitConnectorDeclaration&&listener.exitConnectorDeclaration(this)}accept(visitor){return visitor.visitConnectorDeclaration?visitor.visitConnectorDeclaration(this):visitor.visitChildren(this)}},BinaryConnectorDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_binaryConnectorDeclaration}enterRule(listener){listener.enterBinaryConnectorDeclaration&&listener.enterBinaryConnectorDeclaration(this)}exitRule(listener){listener.exitBinaryConnectorDeclaration&&listener.exitBinaryConnectorDeclaration(this)}accept(visitor){return visitor.visitBinaryConnectorDeclaration?visitor.visitBinaryConnectorDeclaration(this):visitor.visitChildren(this)}},NaryConnectorDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_naryConnectorDeclaration}enterRule(listener){listener.enterNaryConnectorDeclaration&&listener.enterNaryConnectorDeclaration(this)}exitRule(listener){listener.exitNaryConnectorDeclaration&&listener.exitNaryConnectorDeclaration(this)}accept(visitor){return visitor.visitNaryConnectorDeclaration?visitor.visitNaryConnectorDeclaration(this):visitor.visitChildren(this)}},ConnectorEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}connectorEnd(){return this.getRuleContext(0,ConnectorEndContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectorEndMember}enterRule(listener){listener.enterConnectorEndMember&&listener.enterConnectorEndMember(this)}exitRule(listener){listener.exitConnectorEndMember&&listener.exitConnectorEndMember(this)}accept(visitor){return visitor.visitConnectorEndMember?visitor.visitConnectorEndMember(this):visitor.visitChildren(this)}},ConnectorEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,OwnedCrossMultiplicityMemberContext)}name(){return this.getRuleContext(0,NameContext)}COLON_COLON_GT(){return this.getToken(SysMLv2Parser.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(SysMLv2Parser.REFERENCES,0)}get ruleIndex(){return SysMLv2Parser.RULE_connectorEnd}enterRule(listener){listener.enterConnectorEnd&&listener.enterConnectorEnd(this)}exitRule(listener){listener.exitConnectorEnd&&listener.exitConnectorEnd(this)}accept(visitor){return visitor.visitConnectorEnd?visitor.visitConnectorEnd(this):visitor.visitChildren(this)}},OwnedCrossMultiplicityMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedCrossMultiplicity(){return this.getRuleContext(0,OwnedCrossMultiplicityContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossMultiplicityMember}enterRule(listener){listener.enterOwnedCrossMultiplicityMember&&listener.enterOwnedCrossMultiplicityMember(this)}exitRule(listener){listener.exitOwnedCrossMultiplicityMember&&listener.exitOwnedCrossMultiplicityMember(this)}accept(visitor){return visitor.visitOwnedCrossMultiplicityMember?visitor.visitOwnedCrossMultiplicityMember(this):visitor.visitChildren(this)}},OwnedCrossMultiplicityContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossMultiplicity}enterRule(listener){listener.enterOwnedCrossMultiplicity&&listener.enterOwnedCrossMultiplicity(this)}exitRule(listener){listener.exitOwnedCrossMultiplicity&&listener.exitOwnedCrossMultiplicity(this)}accept(visitor){return visitor.visitOwnedCrossMultiplicity?visitor.visitOwnedCrossMultiplicity(this):visitor.visitChildren(this)}},BindingConnectorContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}BINDING(){return this.getToken(SysMLv2Parser.BINDING,0)}bindingConnectorDeclaration(){return this.getRuleContext(0,BindingConnectorDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_bindingConnector}enterRule(listener){listener.enterBindingConnector&&listener.enterBindingConnector(this)}exitRule(listener){listener.exitBindingConnector&&listener.exitBindingConnector(this)}accept(visitor){return visitor.visitBindingConnector?visitor.visitBindingConnector(this):visitor.visitChildren(this)}},BindingConnectorDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}EQ(){return this.getToken(SysMLv2Parser.EQ,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}get ruleIndex(){return SysMLv2Parser.RULE_bindingConnectorDeclaration}enterRule(listener){listener.enterBindingConnectorDeclaration&&listener.enterBindingConnectorDeclaration(this)}exitRule(listener){listener.exitBindingConnectorDeclaration&&listener.exitBindingConnectorDeclaration(this)}accept(visitor){return visitor.visitBindingConnectorDeclaration?visitor.visitBindingConnectorDeclaration(this):visitor.visitChildren(this)}},SuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}successionDeclaration(){return this.getRuleContext(0,SuccessionDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_succession}enterRule(listener){listener.enterSuccession&&listener.enterSuccession(this)}exitRule(listener){listener.exitSuccession&&listener.exitSuccession(this)}accept(visitor){return visitor.visitSuccession?visitor.visitSuccession(this):visitor.visitChildren(this)}},SuccessionDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}get ruleIndex(){return SysMLv2Parser.RULE_successionDeclaration}enterRule(listener){listener.enterSuccessionDeclaration&&listener.enterSuccessionDeclaration(this)}exitRule(listener){listener.exitSuccessionDeclaration&&listener.exitSuccessionDeclaration(this)}accept(visitor){return visitor.visitSuccessionDeclaration?visitor.visitSuccessionDeclaration(this):visitor.visitChildren(this)}},BehaviorContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}BEHAVIOR(){return this.getToken(SysMLv2Parser.BEHAVIOR,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_behavior}enterRule(listener){listener.enterBehavior&&listener.enterBehavior(this)}exitRule(listener){listener.exitBehavior&&listener.exitBehavior(this)}accept(visitor){return visitor.visitBehavior?visitor.visitBehavior(this):visitor.visitChildren(this)}},StepContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}STEP(){return this.getToken(SysMLv2Parser.STEP,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_step}enterRule(listener){listener.enterStep&&listener.enterStep(this)}exitRule(listener){listener.exitStep&&listener.exitStep(this)}accept(visitor){return visitor.visitStep?visitor.visitStep(this):visitor.visitChildren(this)}},FunctionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}FUNCTION(){return this.getToken(SysMLv2Parser.FUNCTION,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_function}enterRule(listener){listener.enterFunction&&listener.enterFunction(this)}exitRule(listener){listener.exitFunction&&listener.exitFunction(this)}accept(visitor){return visitor.visitFunction?visitor.visitFunction(this):visitor.visitChildren(this)}},FunctionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,FunctionBodyPartContext)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}get ruleIndex(){return SysMLv2Parser.RULE_functionBody}enterRule(listener){listener.enterFunctionBody&&listener.enterFunctionBody(this)}exitRule(listener){listener.exitFunctionBody&&listener.exitFunctionBody(this)}accept(visitor){return visitor.visitFunctionBody?visitor.visitFunctionBody(this):visitor.visitChildren(this)}},FunctionBodyPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBodyItem(i){return i===void 0?this.getRuleContexts(DefinitionBodyItemContext):this.getRuleContext(i,DefinitionBodyItemContext)}typeBodyElement(i){return i===void 0?this.getRuleContexts(TypeBodyElementContext):this.getRuleContext(i,TypeBodyElementContext)}returnFeatureMember(i){return i===void 0?this.getRuleContexts(ReturnFeatureMemberContext):this.getRuleContext(i,ReturnFeatureMemberContext)}resultExpressionMember(){return this.getRuleContext(0,ResultExpressionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_functionBodyPart}enterRule(listener){listener.enterFunctionBodyPart&&listener.enterFunctionBodyPart(this)}exitRule(listener){listener.exitFunctionBodyPart&&listener.exitFunctionBodyPart(this)}accept(visitor){return visitor.visitFunctionBodyPart?visitor.visitFunctionBodyPart(this):visitor.visitChildren(this)}},ReturnFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}RETURN(){return this.getToken(SysMLv2Parser.RETURN,0)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_returnFeatureMember}enterRule(listener){listener.enterReturnFeatureMember&&listener.enterReturnFeatureMember(this)}exitRule(listener){listener.exitReturnFeatureMember&&listener.exitReturnFeatureMember(this)}accept(visitor){return visitor.visitReturnFeatureMember?visitor.visitReturnFeatureMember(this):visitor.visitChildren(this)}},ResultExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_resultExpressionMember}enterRule(listener){listener.enterResultExpressionMember&&listener.enterResultExpressionMember(this)}exitRule(listener){listener.exitResultExpressionMember&&listener.exitResultExpressionMember(this)}accept(visitor){return visitor.visitResultExpressionMember?visitor.visitResultExpressionMember(this):visitor.visitChildren(this)}},ExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}EXPR(){return this.getToken(SysMLv2Parser.EXPR,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_expression}enterRule(listener){listener.enterExpression&&listener.enterExpression(this)}exitRule(listener){listener.exitExpression&&listener.exitExpression(this)}accept(visitor){return visitor.visitExpression?visitor.visitExpression(this):visitor.visitChildren(this)}},PredicateContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}PREDICATE(){return this.getToken(SysMLv2Parser.PREDICATE,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_predicate}enterRule(listener){listener.enterPredicate&&listener.enterPredicate(this)}exitRule(listener){listener.exitPredicate&&listener.exitPredicate(this)}accept(visitor){return visitor.visitPredicate?visitor.visitPredicate(this):visitor.visitChildren(this)}},BooleanExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}BOOL(){return this.getToken(SysMLv2Parser.BOOL,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_booleanExpression}enterRule(listener){listener.enterBooleanExpression&&listener.enterBooleanExpression(this)}exitRule(listener){listener.exitBooleanExpression&&listener.exitBooleanExpression(this)}accept(visitor){return visitor.visitBooleanExpression?visitor.visitBooleanExpression(this):visitor.visitChildren(this)}},InvariantContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}INV(){return this.getToken(SysMLv2Parser.INV,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}TRUE(){return this.getToken(SysMLv2Parser.TRUE,0)}FALSE(){return this.getToken(SysMLv2Parser.FALSE,0)}get ruleIndex(){return SysMLv2Parser.RULE_invariant}enterRule(listener){listener.enterInvariant&&listener.enterInvariant(this)}exitRule(listener){listener.exitInvariant&&listener.exitInvariant(this)}accept(visitor){return visitor.visitInvariant?visitor.visitInvariant(this):visitor.visitChildren(this)}},FeatureChainMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_featureChainMember}enterRule(listener){listener.enterFeatureChainMember&&listener.enterFeatureChainMember(this)}exitRule(listener){listener.exitFeatureChainMember&&listener.exitFeatureChainMember(this)}accept(visitor){return visitor.visitFeatureChainMember?visitor.visitFeatureChainMember(this):visitor.visitChildren(this)}},InteractionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}INTERACTION(){return this.getToken(SysMLv2Parser.INTERACTION,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_interaction}enterRule(listener){listener.enterInteraction&&listener.enterInteraction(this)}exitRule(listener){listener.exitInteraction&&listener.exitInteraction(this)}accept(visitor){return visitor.visitInteraction?visitor.visitInteraction(this):visitor.visitChildren(this)}},FlowContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,FlowDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_flow}enterRule(listener){listener.enterFlow&&listener.enterFlow(this)}exitRule(listener){listener.exitFlow&&listener.exitFlow(this)}accept(visitor){return visitor.visitFlow?visitor.visitFlow(this):visitor.visitChildren(this)}},SuccessionFlowContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,FlowDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_successionFlow}enterRule(listener){listener.enterSuccessionFlow&&listener.enterSuccessionFlow(this)}exitRule(listener){listener.exitSuccessionFlow&&listener.exitSuccessionFlow(this)}accept(visitor){return visitor.visitSuccessionFlow?visitor.visitSuccessionFlow(this):visitor.visitChildren(this)}},FlowDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}payloadFeatureMember(){return this.getRuleContext(0,PayloadFeatureMemberContext)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}flowEndMember(i){return i===void 0?this.getRuleContexts(FlowEndMemberContext):this.getRuleContext(i,FlowEndMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}flowPayloadFeatureMember(){return this.getRuleContext(0,FlowPayloadFeatureMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowDeclaration}enterRule(listener){listener.enterFlowDeclaration&&listener.enterFlowDeclaration(this)}exitRule(listener){listener.exitFlowDeclaration&&listener.exitFlowDeclaration(this)}accept(visitor){return visitor.visitFlowDeclaration?visitor.visitFlowDeclaration(this):visitor.visitChildren(this)}},PayloadFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadFeature(){return this.getRuleContext(0,PayloadFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadFeatureMember}enterRule(listener){listener.enterPayloadFeatureMember&&listener.enterPayloadFeatureMember(this)}exitRule(listener){listener.exitPayloadFeatureMember&&listener.exitPayloadFeatureMember(this)}accept(visitor){return visitor.visitPayloadFeatureMember?visitor.visitPayloadFeatureMember(this):visitor.visitChildren(this)}},PayloadFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}valuePart(){return this.getRuleContext(0,ValuePartContext)}identification(){return this.getRuleContext(0,IdentificationContext)}payloadFeatureSpecializationPart(){return this.getRuleContext(0,PayloadFeatureSpecializationPartContext)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadFeature}enterRule(listener){listener.enterPayloadFeature&&listener.enterPayloadFeature(this)}exitRule(listener){listener.exitPayloadFeature&&listener.exitPayloadFeature(this)}accept(visitor){return visitor.visitPayloadFeature?visitor.visitPayloadFeature(this):visitor.visitChildren(this)}},PayloadFeatureSpecializationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureSpecialization(i){return i===void 0?this.getRuleContexts(FeatureSpecializationContext):this.getRuleContext(i,FeatureSpecializationContext)}multiplicityPart(){return this.getRuleContext(0,MultiplicityPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadFeatureSpecializationPart}enterRule(listener){listener.enterPayloadFeatureSpecializationPart&&listener.enterPayloadFeatureSpecializationPart(this)}exitRule(listener){listener.exitPayloadFeatureSpecializationPart&&listener.exitPayloadFeatureSpecializationPart(this)}accept(visitor){return visitor.visitPayloadFeatureSpecializationPart?visitor.visitPayloadFeatureSpecializationPart(this):visitor.visitChildren(this)}},FlowEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}flowEnd(){return this.getRuleContext(0,FlowEndContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowEndMember}enterRule(listener){listener.enterFlowEndMember&&listener.enterFlowEndMember(this)}exitRule(listener){listener.exitFlowEndMember&&listener.exitFlowEndMember(this)}accept(visitor){return visitor.visitFlowEndMember?visitor.visitFlowEndMember(this):visitor.visitChildren(this)}},FlowEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_flowEnd}enterRule(listener){listener.enterFlowEnd&&listener.enterFlowEnd(this)}exitRule(listener){listener.exitFlowEnd&&listener.exitFlowEnd(this)}accept(visitor){return visitor.visitFlowEnd?visitor.visitFlowEnd(this):visitor.visitChildren(this)}},ValuePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureValue(){return this.getRuleContext(0,FeatureValueContext)}get ruleIndex(){return SysMLv2Parser.RULE_valuePart}enterRule(listener){listener.enterValuePart&&listener.enterValuePart(this)}exitRule(listener){listener.exitValuePart&&listener.exitValuePart(this)}accept(visitor){return visitor.visitValuePart?visitor.visitValuePart(this):visitor.visitChildren(this)}},FeatureValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}EQ(){return this.getToken(SysMLv2Parser.EQ,0)}COLON_EQ(){return this.getToken(SysMLv2Parser.COLON_EQ,0)}DEFAULT(){return this.getToken(SysMLv2Parser.DEFAULT,0)}get ruleIndex(){return SysMLv2Parser.RULE_featureValue}enterRule(listener){listener.enterFeatureValue&&listener.enterFeatureValue(this)}exitRule(listener){listener.exitFeatureValue&&listener.exitFeatureValue(this)}accept(visitor){return visitor.visitFeatureValue?visitor.visitFeatureValue(this):visitor.visitChildren(this)}},MultiplicityContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}multiplicitySubset(){return this.getRuleContext(0,MultiplicitySubsetContext)}multiplicityRange(){return this.getRuleContext(0,MultiplicityRangeContext)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicity}enterRule(listener){listener.enterMultiplicity&&listener.enterMultiplicity(this)}exitRule(listener){listener.exitMultiplicity&&listener.exitMultiplicity(this)}accept(visitor){return visitor.visitMultiplicity?visitor.visitMultiplicity(this):visitor.visitChildren(this)}},MultiplicitySubsetContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}MULTIPLICITY(){return this.getToken(SysMLv2Parser.MULTIPLICITY,0)}subsets(){return this.getRuleContext(0,SubsetsContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicitySubset}enterRule(listener){listener.enterMultiplicitySubset&&listener.enterMultiplicitySubset(this)}exitRule(listener){listener.exitMultiplicitySubset&&listener.exitMultiplicitySubset(this)}accept(visitor){return visitor.visitMultiplicitySubset?visitor.visitMultiplicitySubset(this):visitor.visitChildren(this)}},MultiplicityRangeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}MULTIPLICITY(){return this.getToken(SysMLv2Parser.MULTIPLICITY,0)}multiplicityBounds(){return this.getRuleContext(0,MultiplicityBoundsContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicityRange}enterRule(listener){listener.enterMultiplicityRange&&listener.enterMultiplicityRange(this)}exitRule(listener){listener.exitMultiplicityRange&&listener.exitMultiplicityRange(this)}accept(visitor){return visitor.visitMultiplicityRange?visitor.visitMultiplicityRange(this):visitor.visitChildren(this)}},OwnedMultiplicityContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedMultiplicityRange(){return this.getRuleContext(0,OwnedMultiplicityRangeContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedMultiplicity}enterRule(listener){listener.enterOwnedMultiplicity&&listener.enterOwnedMultiplicity(this)}exitRule(listener){listener.exitOwnedMultiplicity&&listener.exitOwnedMultiplicity(this)}accept(visitor){return visitor.visitOwnedMultiplicity?visitor.visitOwnedMultiplicity(this):visitor.visitChildren(this)}},OwnedMultiplicityRangeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}multiplicityBounds(){return this.getRuleContext(0,MultiplicityBoundsContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedMultiplicityRange}enterRule(listener){listener.enterOwnedMultiplicityRange&&listener.enterOwnedMultiplicityRange(this)}exitRule(listener){listener.exitOwnedMultiplicityRange&&listener.exitOwnedMultiplicityRange(this)}accept(visitor){return visitor.visitOwnedMultiplicityRange?visitor.visitOwnedMultiplicityRange(this):visitor.visitChildren(this)}},MultiplicityBoundsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACK(){return this.getToken(SysMLv2Parser.LBRACK,0)}multiplicityExpressionMember(i){return i===void 0?this.getRuleContexts(MultiplicityExpressionMemberContext):this.getRuleContext(i,MultiplicityExpressionMemberContext)}RBRACK(){return this.getToken(SysMLv2Parser.RBRACK,0)}DOT_DOT(){return this.getToken(SysMLv2Parser.DOT_DOT,0)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicityBounds}enterRule(listener){listener.enterMultiplicityBounds&&listener.enterMultiplicityBounds(this)}exitRule(listener){listener.exitMultiplicityBounds&&listener.exitMultiplicityBounds(this)}accept(visitor){return visitor.visitMultiplicityBounds?visitor.visitMultiplicityBounds(this):visitor.visitChildren(this)}},MultiplicityExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}literalExpression(){return this.getRuleContext(0,LiteralExpressionContext)}featureReferenceExpression(){return this.getRuleContext(0,FeatureReferenceExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicityExpressionMember}enterRule(listener){listener.enterMultiplicityExpressionMember&&listener.enterMultiplicityExpressionMember(this)}exitRule(listener){listener.exitMultiplicityExpressionMember&&listener.exitMultiplicityExpressionMember(this)}accept(visitor){return visitor.visitMultiplicityExpressionMember?visitor.visitMultiplicityExpressionMember(this):visitor.visitChildren(this)}},MetaclassContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}METACLASS(){return this.getToken(SysMLv2Parser.METACLASS,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_metaclass}enterRule(listener){listener.enterMetaclass&&listener.enterMetaclass(this)}exitRule(listener){listener.exitMetaclass&&listener.exitMetaclass(this)}accept(visitor){return visitor.visitMetaclass?visitor.visitMetaclass(this):visitor.visitChildren(this)}},PrefixMetadataAnnotationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}HASH(){return this.getToken(SysMLv2Parser.HASH,0)}prefixMetadataFeature(){return this.getRuleContext(0,PrefixMetadataFeatureContext)}prefixMetadataUsage(){return this.getRuleContext(0,PrefixMetadataUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_prefixMetadataAnnotation}enterRule(listener){listener.enterPrefixMetadataAnnotation&&listener.enterPrefixMetadataAnnotation(this)}exitRule(listener){listener.exitPrefixMetadataAnnotation&&listener.exitPrefixMetadataAnnotation(this)}accept(visitor){return visitor.visitPrefixMetadataAnnotation?visitor.visitPrefixMetadataAnnotation(this):visitor.visitChildren(this)}},PrefixMetadataMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}HASH(){return this.getToken(SysMLv2Parser.HASH,0)}prefixMetadataFeature(){return this.getRuleContext(0,PrefixMetadataFeatureContext)}prefixMetadataUsage(){return this.getRuleContext(0,PrefixMetadataUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_prefixMetadataMember}enterRule(listener){listener.enterPrefixMetadataMember&&listener.enterPrefixMetadataMember(this)}exitRule(listener){listener.exitPrefixMetadataMember&&listener.exitPrefixMetadataMember(this)}accept(visitor){return visitor.visitPrefixMetadataMember?visitor.visitPrefixMetadataMember(this):visitor.visitChildren(this)}},PrefixMetadataFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_prefixMetadataFeature}enterRule(listener){listener.enterPrefixMetadataFeature&&listener.enterPrefixMetadataFeature(this)}exitRule(listener){listener.exitPrefixMetadataFeature&&listener.exitPrefixMetadataFeature(this)}accept(visitor){return visitor.visitPrefixMetadataFeature?visitor.visitPrefixMetadataFeature(this):visitor.visitChildren(this)}},MetadataFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}metadataFeatureDeclaration(){return this.getRuleContext(0,MetadataFeatureDeclarationContext)}metadataBody(){return this.getRuleContext(0,MetadataBodyContext)}AT_SIGN(){return this.getToken(SysMLv2Parser.AT_SIGN,0)}METADATA(){return this.getToken(SysMLv2Parser.METADATA,0)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}ABOUT(){return this.getToken(SysMLv2Parser.ABOUT,0)}annotation(i){return i===void 0?this.getRuleContexts(AnnotationContext):this.getRuleContext(i,AnnotationContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_metadataFeature}enterRule(listener){listener.enterMetadataFeature&&listener.enterMetadataFeature(this)}exitRule(listener){listener.exitMetadataFeature&&listener.exitMetadataFeature(this)}accept(visitor){return visitor.visitMetadataFeature?visitor.visitMetadataFeature(this):visitor.visitChildren(this)}},MetadataFeatureDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}COLON(){return this.getToken(SysMLv2Parser.COLON,0)}TYPED(){return this.getToken(SysMLv2Parser.TYPED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataFeatureDeclaration}enterRule(listener){listener.enterMetadataFeatureDeclaration&&listener.enterMetadataFeatureDeclaration(this)}exitRule(listener){listener.exitMetadataFeatureDeclaration&&listener.exitMetadataFeatureDeclaration(this)}accept(visitor){return visitor.visitMetadataFeatureDeclaration?visitor.visitMetadataFeatureDeclaration(this):visitor.visitChildren(this)}},MetadataBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}metadataBodyElement(i){return i===void 0?this.getRuleContexts(MetadataBodyElementContext):this.getRuleContext(i,MetadataBodyElementContext)}definitionMember(i){return i===void 0?this.getRuleContexts(DefinitionMemberContext):this.getRuleContext(i,DefinitionMemberContext)}metadataBodyUsageMember(i){return i===void 0?this.getRuleContexts(MetadataBodyUsageMemberContext):this.getRuleContext(i,MetadataBodyUsageMemberContext)}aliasMember(i){return i===void 0?this.getRuleContexts(AliasMemberContext):this.getRuleContext(i,AliasMemberContext)}importRule(i){return i===void 0?this.getRuleContexts(ImportRuleContext):this.getRuleContext(i,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBody}enterRule(listener){listener.enterMetadataBody&&listener.enterMetadataBody(this)}exitRule(listener){listener.exitMetadataBody&&listener.exitMetadataBody(this)}accept(visitor){return visitor.visitMetadataBody?visitor.visitMetadataBody(this):visitor.visitChildren(this)}},MetadataBodyElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureMember(){return this.getRuleContext(0,NonFeatureMemberContext)}metadataBodyFeatureMember(){return this.getRuleContext(0,MetadataBodyFeatureMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyElement}enterRule(listener){listener.enterMetadataBodyElement&&listener.enterMetadataBodyElement(this)}exitRule(listener){listener.exitMetadataBodyElement&&listener.exitMetadataBodyElement(this)}accept(visitor){return visitor.visitMetadataBodyElement?visitor.visitMetadataBodyElement(this):visitor.visitChildren(this)}},MetadataBodyFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}metadataBodyFeature(){return this.getRuleContext(0,MetadataBodyFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyFeatureMember}enterRule(listener){listener.enterMetadataBodyFeatureMember&&listener.enterMetadataBodyFeatureMember(this)}exitRule(listener){listener.exitMetadataBodyFeatureMember&&listener.exitMetadataBodyFeatureMember(this)}accept(visitor){return visitor.visitMetadataBodyFeatureMember?visitor.visitMetadataBodyFeatureMember(this):visitor.visitChildren(this)}},MetadataBodyFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedRedefinition(){return this.getRuleContext(0,OwnedRedefinitionContext)}metadataBody(){return this.getRuleContext(0,MetadataBodyContext)}FEATURE(){return this.getToken(SysMLv2Parser.FEATURE,0)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}COLON_GT_GT(){return this.getToken(SysMLv2Parser.COLON_GT_GT,0)}REDEFINES(){return this.getToken(SysMLv2Parser.REDEFINES,0)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyFeature}enterRule(listener){listener.enterMetadataBodyFeature&&listener.enterMetadataBodyFeature(this)}exitRule(listener){listener.exitMetadataBodyFeature&&listener.exitMetadataBodyFeature(this)}accept(visitor){return visitor.visitMetadataBodyFeature?visitor.visitMetadataBodyFeature(this):visitor.visitChildren(this)}},PackageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}packageDeclaration(){return this.getRuleContext(0,PackageDeclarationContext)}packageBody(){return this.getRuleContext(0,PackageBodyContext)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_package}enterRule(listener){listener.enterPackage&&listener.enterPackage(this)}exitRule(listener){listener.exitPackage&&listener.exitPackage(this)}accept(visitor){return visitor.visitPackage?visitor.visitPackage(this):visitor.visitChildren(this)}},LibraryPackageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LIBRARY(){return this.getToken(SysMLv2Parser.LIBRARY,0)}packageDeclaration(){return this.getRuleContext(0,PackageDeclarationContext)}packageBody(){return this.getRuleContext(0,PackageBodyContext)}STANDARD(){return this.getToken(SysMLv2Parser.STANDARD,0)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_libraryPackage}enterRule(listener){listener.enterLibraryPackage&&listener.enterLibraryPackage(this)}exitRule(listener){listener.exitLibraryPackage&&listener.exitLibraryPackage(this)}accept(visitor){return visitor.visitLibraryPackage?visitor.visitLibraryPackage(this):visitor.visitChildren(this)}},PackageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}PACKAGE(){return this.getToken(SysMLv2Parser.PACKAGE,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_packageDeclaration}enterRule(listener){listener.enterPackageDeclaration&&listener.enterPackageDeclaration(this)}exitRule(listener){listener.exitPackageDeclaration&&listener.exitPackageDeclaration(this)}accept(visitor){return visitor.visitPackageDeclaration?visitor.visitPackageDeclaration(this):visitor.visitChildren(this)}},PackageBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}packageBodyElement(i){return i===void 0?this.getRuleContexts(PackageBodyElementContext):this.getRuleContext(i,PackageBodyElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_packageBody}enterRule(listener){listener.enterPackageBody&&listener.enterPackageBody(this)}exitRule(listener){listener.exitPackageBody&&listener.exitPackageBody(this)}accept(visitor){return visitor.visitPackageBody?visitor.visitPackageBody(this):visitor.visitChildren(this)}},ElementFilterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}FILTER(){return this.getToken(SysMLv2Parser.FILTER,0)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}get ruleIndex(){return SysMLv2Parser.RULE_elementFilterMember}enterRule(listener){listener.enterElementFilterMember&&listener.enterElementFilterMember(this)}exitRule(listener){listener.exitElementFilterMember&&listener.exitElementFilterMember(this)}accept(visitor){return visitor.visitElementFilterMember?visitor.visitElementFilterMember(this):visitor.visitChildren(this)}},DependencyDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_dependencyDeclaration}enterRule(listener){listener.enterDependencyDeclaration&&listener.enterDependencyDeclaration(this)}exitRule(listener){listener.exitDependencyDeclaration&&listener.exitDependencyDeclaration(this)}accept(visitor){return visitor.visitDependencyDeclaration?visitor.visitDependencyDeclaration(this):visitor.visitChildren(this)}},AnnotatingMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}annotatingElement(){return this.getRuleContext(0,AnnotatingElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_annotatingMember}enterRule(listener){listener.enterAnnotatingMember&&listener.enterAnnotatingMember(this)}exitRule(listener){listener.exitAnnotatingMember&&listener.exitAnnotatingMember(this)}accept(visitor){return visitor.visitAnnotatingMember?visitor.visitAnnotatingMember(this):visitor.visitChildren(this)}},PackageBodyElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}packageMember(){return this.getRuleContext(0,PackageMemberContext)}elementFilterMember(){return this.getRuleContext(0,ElementFilterMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_packageBodyElement}enterRule(listener){listener.enterPackageBodyElement&&listener.enterPackageBodyElement(this)}exitRule(listener){listener.exitPackageBodyElement&&listener.exitPackageBodyElement(this)}accept(visitor){return visitor.visitPackageBodyElement?visitor.visitPackageBodyElement(this):visitor.visitChildren(this)}},PackageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}definitionElement(){return this.getRuleContext(0,DefinitionElementContext)}usageElement(){return this.getRuleContext(0,UsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_packageMember}enterRule(listener){listener.enterPackageMember&&listener.enterPackageMember(this)}exitRule(listener){listener.exitPackageMember&&listener.exitPackageMember(this)}accept(visitor){return visitor.visitPackageMember?visitor.visitPackageMember(this):visitor.visitChildren(this)}},DefinitionElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}package(){return this.getRuleContext(0,PackageContext)}libraryPackage(){return this.getRuleContext(0,LibraryPackageContext)}annotatingElement(){return this.getRuleContext(0,AnnotatingElementContext)}dependency(){return this.getRuleContext(0,DependencyContext)}attributeDefinition(){return this.getRuleContext(0,AttributeDefinitionContext)}enumerationDefinition(){return this.getRuleContext(0,EnumerationDefinitionContext)}occurrenceDefinition(){return this.getRuleContext(0,OccurrenceDefinitionContext)}individualDefinition(){return this.getRuleContext(0,IndividualDefinitionContext)}itemDefinition(){return this.getRuleContext(0,ItemDefinitionContext)}partDefinition(){return this.getRuleContext(0,PartDefinitionContext)}connectionDefinition(){return this.getRuleContext(0,ConnectionDefinitionContext)}flowDefinition(){return this.getRuleContext(0,FlowDefinitionContext)}interfaceDefinition(){return this.getRuleContext(0,InterfaceDefinitionContext)}portDefinition(){return this.getRuleContext(0,PortDefinitionContext)}actionDefinition(){return this.getRuleContext(0,ActionDefinitionContext)}calculationDefinition(){return this.getRuleContext(0,CalculationDefinitionContext)}stateDefinition(){return this.getRuleContext(0,StateDefinitionContext)}constraintDefinition(){return this.getRuleContext(0,ConstraintDefinitionContext)}requirementDefinition(){return this.getRuleContext(0,RequirementDefinitionContext)}concernDefinition(){return this.getRuleContext(0,ConcernDefinitionContext)}caseDefinition(){return this.getRuleContext(0,CaseDefinitionContext)}analysisCaseDefinition(){return this.getRuleContext(0,AnalysisCaseDefinitionContext)}verificationCaseDefinition(){return this.getRuleContext(0,VerificationCaseDefinitionContext)}useCaseDefinition(){return this.getRuleContext(0,UseCaseDefinitionContext)}viewDefinition(){return this.getRuleContext(0,ViewDefinitionContext)}viewpointDefinition(){return this.getRuleContext(0,ViewpointDefinitionContext)}renderingDefinition(){return this.getRuleContext(0,RenderingDefinitionContext)}metadataDefinition(){return this.getRuleContext(0,MetadataDefinitionContext)}allocationDefinition(){return this.getRuleContext(0,AllocationDefinitionContext)}extendedDefinition(){return this.getRuleContext(0,ExtendedDefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionElement}enterRule(listener){listener.enterDefinitionElement&&listener.enterDefinitionElement(this)}exitRule(listener){listener.exitDefinitionElement&&listener.exitDefinitionElement(this)}accept(visitor){return visitor.visitDefinitionElement?visitor.visitDefinitionElement(this):visitor.visitChildren(this)}},UsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonOccurrenceUsageElement(){return this.getRuleContext(0,NonOccurrenceUsageElementContext)}occurrenceUsageElement(){return this.getRuleContext(0,OccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageElement}enterRule(listener){listener.enterUsageElement&&listener.enterUsageElement(this)}exitRule(listener){listener.exitUsageElement&&listener.exitUsageElement(this)}accept(visitor){return visitor.visitUsageElement?visitor.visitUsageElement(this):visitor.visitChildren(this)}},BasicDefinitionPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}VARIATION(){return this.getToken(SysMLv2Parser.VARIATION,0)}get ruleIndex(){return SysMLv2Parser.RULE_basicDefinitionPrefix}enterRule(listener){listener.enterBasicDefinitionPrefix&&listener.enterBasicDefinitionPrefix(this)}exitRule(listener){listener.exitBasicDefinitionPrefix&&listener.exitBasicDefinitionPrefix(this)}accept(visitor){return visitor.visitBasicDefinitionPrefix?visitor.visitBasicDefinitionPrefix(this):visitor.visitChildren(this)}},DefinitionExtensionKeywordContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}prefixMetadataMember(){return this.getRuleContext(0,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionExtensionKeyword}enterRule(listener){listener.enterDefinitionExtensionKeyword&&listener.enterDefinitionExtensionKeyword(this)}exitRule(listener){listener.exitDefinitionExtensionKeyword&&listener.exitDefinitionExtensionKeyword(this)}accept(visitor){return visitor.visitDefinitionExtensionKeyword?visitor.visitDefinitionExtensionKeyword(this):visitor.visitChildren(this)}},DefinitionPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicDefinitionPrefix(){return this.getRuleContext(0,BasicDefinitionPrefixContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionPrefix}enterRule(listener){listener.enterDefinitionPrefix&&listener.enterDefinitionPrefix(this)}exitRule(listener){listener.exitDefinitionPrefix&&listener.exitDefinitionPrefix(this)}accept(visitor){return visitor.visitDefinitionPrefix?visitor.visitDefinitionPrefix(this):visitor.visitChildren(this)}},DefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_definition}enterRule(listener){listener.enterDefinition&&listener.enterDefinition(this)}exitRule(listener){listener.exitDefinition&&listener.exitDefinition(this)}accept(visitor){return visitor.visitDefinition?visitor.visitDefinition(this):visitor.visitChildren(this)}},DefinitionDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}identification(){return this.getRuleContext(0,IdentificationContext)}subclassificationPart(){return this.getRuleContext(0,SubclassificationPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionDeclaration}enterRule(listener){listener.enterDefinitionDeclaration&&listener.enterDefinitionDeclaration(this)}exitRule(listener){listener.exitDefinitionDeclaration&&listener.exitDefinitionDeclaration(this)}accept(visitor){return visitor.visitDefinitionDeclaration?visitor.visitDefinitionDeclaration(this):visitor.visitChildren(this)}},DefinitionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}definitionBodyItem(i){return i===void 0?this.getRuleContexts(DefinitionBodyItemContext):this.getRuleContext(i,DefinitionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionBody}enterRule(listener){listener.enterDefinitionBody&&listener.enterDefinitionBody(this)}exitRule(listener){listener.exitDefinitionBody&&listener.exitDefinitionBody(this)}accept(visitor){return visitor.visitDefinitionBody?visitor.visitDefinitionBody(this):visitor.visitChildren(this)}},DefinitionBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}importRule(){return this.getRuleContext(0,ImportRuleContext)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}definitionBodyItemContent(){return this.getRuleContext(0,DefinitionBodyItemContentContext)}endOccurrenceUsageElement(){return this.getRuleContext(0,EndOccurrenceUsageElementContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}occurrenceUsageElement(){return this.getRuleContext(0,OccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionBodyItem}enterRule(listener){listener.enterDefinitionBodyItem&&listener.enterDefinitionBodyItem(this)}exitRule(listener){listener.exitDefinitionBodyItem&&listener.exitDefinitionBodyItem(this)}accept(visitor){return visitor.visitDefinitionBodyItem?visitor.visitDefinitionBodyItem(this):visitor.visitChildren(this)}},DefinitionBodyItemContentContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ALIAS(){return this.getToken(SysMLv2Parser.ALIAS,0)}FOR(){return this.getToken(SysMLv2Parser.FOR,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}LT(){return this.getToken(SysMLv2Parser.LT,0)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}GT(){return this.getToken(SysMLv2Parser.GT,0)}VARIANT(){return this.getToken(SysMLv2Parser.VARIANT,0)}variantUsageElement(){return this.getRuleContext(0,VariantUsageElementContext)}definitionElement(){return this.getRuleContext(0,DefinitionElementContext)}nonOccurrenceUsageElement(){return this.getRuleContext(0,NonOccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionBodyItemContent}enterRule(listener){listener.enterDefinitionBodyItemContent&&listener.enterDefinitionBodyItemContent(this)}exitRule(listener){listener.exitDefinitionBodyItemContent&&listener.exitDefinitionBodyItemContent(this)}accept(visitor){return visitor.visitDefinitionBodyItemContent?visitor.visitDefinitionBodyItemContent(this):visitor.visitChildren(this)}},DefinitionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}definitionElement(){return this.getRuleContext(0,DefinitionElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionMember}enterRule(listener){listener.enterDefinitionMember&&listener.enterDefinitionMember(this)}exitRule(listener){listener.exitDefinitionMember&&listener.exitDefinitionMember(this)}accept(visitor){return visitor.visitDefinitionMember?visitor.visitDefinitionMember(this):visitor.visitChildren(this)}},VariantUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}VARIANT(){return this.getToken(SysMLv2Parser.VARIANT,0)}variantUsageElement(){return this.getRuleContext(0,VariantUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_variantUsageMember}enterRule(listener){listener.enterVariantUsageMember&&listener.enterVariantUsageMember(this)}exitRule(listener){listener.exitVariantUsageMember&&listener.exitVariantUsageMember(this)}accept(visitor){return visitor.visitVariantUsageMember?visitor.visitVariantUsageMember(this):visitor.visitChildren(this)}},NonOccurrenceUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}nonOccurrenceUsageElement(){return this.getRuleContext(0,NonOccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonOccurrenceUsageMember}enterRule(listener){listener.enterNonOccurrenceUsageMember&&listener.enterNonOccurrenceUsageMember(this)}exitRule(listener){listener.exitNonOccurrenceUsageMember&&listener.exitNonOccurrenceUsageMember(this)}accept(visitor){return visitor.visitNonOccurrenceUsageMember?visitor.visitNonOccurrenceUsageMember(this):visitor.visitChildren(this)}},StructureUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}structureUsageElement(){return this.getRuleContext(0,StructureUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_structureUsageMember}enterRule(listener){listener.enterStructureUsageMember&&listener.enterStructureUsageMember(this)}exitRule(listener){listener.exitStructureUsageMember&&listener.exitStructureUsageMember(this)}accept(visitor){return visitor.visitStructureUsageMember?visitor.visitStructureUsageMember(this):visitor.visitChildren(this)}},BehaviorUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}behaviorUsageElement(){return this.getRuleContext(0,BehaviorUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_behaviorUsageMember}enterRule(listener){listener.enterBehaviorUsageMember&&listener.enterBehaviorUsageMember(this)}exitRule(listener){listener.exitBehaviorUsageMember&&listener.exitBehaviorUsageMember(this)}accept(visitor){return visitor.visitBehaviorUsageMember?visitor.visitBehaviorUsageMember(this):visitor.visitChildren(this)}},RefPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDirection(){return this.getRuleContext(0,FeatureDirectionContext)}DERIVED(){return this.getToken(SysMLv2Parser.DERIVED,0)}CONSTANT(){return this.getToken(SysMLv2Parser.CONSTANT,0)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}VARIATION(){return this.getToken(SysMLv2Parser.VARIATION,0)}get ruleIndex(){return SysMLv2Parser.RULE_refPrefix}enterRule(listener){listener.enterRefPrefix&&listener.enterRefPrefix(this)}exitRule(listener){listener.exitRefPrefix&&listener.exitRefPrefix(this)}accept(visitor){return visitor.visitRefPrefix?visitor.visitRefPrefix(this):visitor.visitChildren(this)}},BasicUsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}refPrefix(){return this.getRuleContext(0,RefPrefixContext)}REF(){return this.getToken(SysMLv2Parser.REF,0)}get ruleIndex(){return SysMLv2Parser.RULE_basicUsagePrefix}enterRule(listener){listener.enterBasicUsagePrefix&&listener.enterBasicUsagePrefix(this)}exitRule(listener){listener.exitBasicUsagePrefix&&listener.exitBasicUsagePrefix(this)}accept(visitor){return visitor.visitBasicUsagePrefix?visitor.visitBasicUsagePrefix(this):visitor.visitChildren(this)}},EndUsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}END(){return this.getToken(SysMLv2Parser.END,0)}ownedCrossFeatureMember(){return this.getRuleContext(0,OwnedCrossFeatureMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_endUsagePrefix}enterRule(listener){listener.enterEndUsagePrefix&&listener.enterEndUsagePrefix(this)}exitRule(listener){listener.exitEndUsagePrefix&&listener.exitEndUsagePrefix(this)}accept(visitor){return visitor.visitEndUsagePrefix?visitor.visitEndUsagePrefix(this):visitor.visitChildren(this)}},UsageExtensionKeywordContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}prefixMetadataMember(){return this.getRuleContext(0,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageExtensionKeyword}enterRule(listener){listener.enterUsageExtensionKeyword&&listener.enterUsageExtensionKeyword(this)}exitRule(listener){listener.exitUsageExtensionKeyword&&listener.exitUsageExtensionKeyword(this)}accept(visitor){return visitor.visitUsageExtensionKeyword?visitor.visitUsageExtensionKeyword(this):visitor.visitChildren(this)}},UnextendedUsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}endUsagePrefix(){return this.getRuleContext(0,EndUsagePrefixContext)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}get ruleIndex(){return SysMLv2Parser.RULE_unextendedUsagePrefix}enterRule(listener){listener.enterUnextendedUsagePrefix&&listener.enterUnextendedUsagePrefix(this)}exitRule(listener){listener.exitUnextendedUsagePrefix&&listener.exitUnextendedUsagePrefix(this)}accept(visitor){return visitor.visitUnextendedUsagePrefix?visitor.visitUnextendedUsagePrefix(this):visitor.visitChildren(this)}},UsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}unextendedUsagePrefix(){return this.getRuleContext(0,UnextendedUsagePrefixContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_usagePrefix}enterRule(listener){listener.enterUsagePrefix&&listener.enterUsagePrefix(this)}exitRule(listener){listener.exitUsagePrefix&&listener.exitUsagePrefix(this)}accept(visitor){return visitor.visitUsagePrefix?visitor.visitUsagePrefix(this):visitor.visitChildren(this)}},UsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageCompletion(){return this.getRuleContext(0,UsageCompletionContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_usage}enterRule(listener){listener.enterUsage&&listener.enterUsage(this)}exitRule(listener){listener.exitUsage&&listener.exitUsage(this)}accept(visitor){return visitor.visitUsage?visitor.visitUsage(this):visitor.visitChildren(this)}},UsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}identification(){return this.getRuleContext(0,IdentificationContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageDeclaration}enterRule(listener){listener.enterUsageDeclaration&&listener.enterUsageDeclaration(this)}exitRule(listener){listener.exitUsageDeclaration&&listener.exitUsageDeclaration(this)}accept(visitor){return visitor.visitUsageDeclaration?visitor.visitUsageDeclaration(this):visitor.visitChildren(this)}},UsageCompletionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageCompletion}enterRule(listener){listener.enterUsageCompletion&&listener.enterUsageCompletion(this)}exitRule(listener){listener.exitUsageCompletion&&listener.exitUsageCompletion(this)}accept(visitor){return visitor.visitUsageCompletion?visitor.visitUsageCompletion(this):visitor.visitChildren(this)}},UsageBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageBody}enterRule(listener){listener.enterUsageBody&&listener.enterUsageBody(this)}exitRule(listener){listener.exitUsageBody&&listener.exitUsageBody(this)}accept(visitor){return visitor.visitUsageBody?visitor.visitUsageBody(this):visitor.visitChildren(this)}},DefaultReferenceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}refPrefix(){return this.getRuleContext(0,RefPrefixContext)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_defaultReferenceUsage}enterRule(listener){listener.enterDefaultReferenceUsage&&listener.enterDefaultReferenceUsage(this)}exitRule(listener){listener.exitDefaultReferenceUsage&&listener.exitDefaultReferenceUsage(this)}accept(visitor){return visitor.visitDefaultReferenceUsage?visitor.visitDefaultReferenceUsage(this):visitor.visitChildren(this)}},ReferenceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}REF(){return this.getToken(SysMLv2Parser.REF,0)}usage(){return this.getRuleContext(0,UsageContext)}endUsagePrefix(){return this.getRuleContext(0,EndUsagePrefixContext)}refPrefix(){return this.getRuleContext(0,RefPrefixContext)}get ruleIndex(){return SysMLv2Parser.RULE_referenceUsage}enterRule(listener){listener.enterReferenceUsage&&listener.enterReferenceUsage(this)}exitRule(listener){listener.exitReferenceUsage&&listener.exitReferenceUsage(this)}accept(visitor){return visitor.visitReferenceUsage?visitor.visitReferenceUsage(this):visitor.visitChildren(this)}},EndFeatureUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}endUsagePrefix(){return this.getRuleContext(0,EndUsagePrefixContext)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}usageCompletion(){return this.getRuleContext(0,UsageCompletionContext)}get ruleIndex(){return SysMLv2Parser.RULE_endFeatureUsage}enterRule(listener){listener.enterEndFeatureUsage&&listener.enterEndFeatureUsage(this)}exitRule(listener){listener.exitEndFeatureUsage&&listener.exitEndFeatureUsage(this)}accept(visitor){return visitor.visitEndFeatureUsage?visitor.visitEndFeatureUsage(this):visitor.visitChildren(this)}},VariantReferenceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}featureSpecialization(i){return i===void 0?this.getRuleContexts(FeatureSpecializationContext):this.getRuleContext(i,FeatureSpecializationContext)}get ruleIndex(){return SysMLv2Parser.RULE_variantReference}enterRule(listener){listener.enterVariantReference&&listener.enterVariantReference(this)}exitRule(listener){listener.exitVariantReference&&listener.exitVariantReference(this)}accept(visitor){return visitor.visitVariantReference?visitor.visitVariantReference(this):visitor.visitChildren(this)}},NonOccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}referenceUsage(){return this.getRuleContext(0,ReferenceUsageContext)}endFeatureUsage(){return this.getRuleContext(0,EndFeatureUsageContext)}attributeUsage(){return this.getRuleContext(0,AttributeUsageContext)}enumerationUsage(){return this.getRuleContext(0,EnumerationUsageContext)}bindingConnectorAsUsage(){return this.getRuleContext(0,BindingConnectorAsUsageContext)}successionAsUsage(){return this.getRuleContext(0,SuccessionAsUsageContext)}extendedUsage(){return this.getRuleContext(0,ExtendedUsageContext)}defaultReferenceUsage(){return this.getRuleContext(0,DefaultReferenceUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonOccurrenceUsageElement}enterRule(listener){listener.enterNonOccurrenceUsageElement&&listener.enterNonOccurrenceUsageElement(this)}exitRule(listener){listener.exitNonOccurrenceUsageElement&&listener.exitNonOccurrenceUsageElement(this)}accept(visitor){return visitor.visitNonOccurrenceUsageElement?visitor.visitNonOccurrenceUsageElement(this):visitor.visitChildren(this)}},EndOccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}END(){return this.getToken(SysMLv2Parser.END,0)}occurrenceUsageElement(){return this.getRuleContext(0,OccurrenceUsageElementContext)}name(){return this.getRuleContext(0,NameContext)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,OwnedCrossMultiplicityMemberContext)}NONUNIQUE(){return this.getToken(SysMLv2Parser.NONUNIQUE,0)}get ruleIndex(){return SysMLv2Parser.RULE_endOccurrenceUsageElement}enterRule(listener){listener.enterEndOccurrenceUsageElement&&listener.enterEndOccurrenceUsageElement(this)}exitRule(listener){listener.exitEndOccurrenceUsageElement&&listener.exitEndOccurrenceUsageElement(this)}accept(visitor){return visitor.visitEndOccurrenceUsageElement?visitor.visitEndOccurrenceUsageElement(this):visitor.visitChildren(this)}},OccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}structureUsageElement(){return this.getRuleContext(0,StructureUsageElementContext)}behaviorUsageElement(){return this.getRuleContext(0,BehaviorUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceUsageElement}enterRule(listener){listener.enterOccurrenceUsageElement&&listener.enterOccurrenceUsageElement(this)}exitRule(listener){listener.exitOccurrenceUsageElement&&listener.exitOccurrenceUsageElement(this)}accept(visitor){return visitor.visitOccurrenceUsageElement?visitor.visitOccurrenceUsageElement(this):visitor.visitChildren(this)}},StructureUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsage(){return this.getRuleContext(0,OccurrenceUsageContext)}individualUsage(){return this.getRuleContext(0,IndividualUsageContext)}portionUsage(){return this.getRuleContext(0,PortionUsageContext)}eventOccurrenceUsage(){return this.getRuleContext(0,EventOccurrenceUsageContext)}itemUsage(){return this.getRuleContext(0,ItemUsageContext)}partUsage(){return this.getRuleContext(0,PartUsageContext)}viewUsage(){return this.getRuleContext(0,ViewUsageContext)}renderingUsage(){return this.getRuleContext(0,RenderingUsageContext)}portUsage(){return this.getRuleContext(0,PortUsageContext)}connectionUsage(){return this.getRuleContext(0,ConnectionUsageContext)}interfaceUsage(){return this.getRuleContext(0,InterfaceUsageContext)}allocationUsage(){return this.getRuleContext(0,AllocationUsageContext)}message(){return this.getRuleContext(0,MessageContext)}flowUsage(){return this.getRuleContext(0,FlowUsageContext)}successionFlowUsage(){return this.getRuleContext(0,SuccessionFlowUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_structureUsageElement}enterRule(listener){listener.enterStructureUsageElement&&listener.enterStructureUsageElement(this)}exitRule(listener){listener.exitStructureUsageElement&&listener.exitStructureUsageElement(this)}accept(visitor){return visitor.visitStructureUsageElement?visitor.visitStructureUsageElement(this):visitor.visitChildren(this)}},BehaviorUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionUsage(){return this.getRuleContext(0,ActionUsageContext)}calculationUsage(){return this.getRuleContext(0,CalculationUsageContext)}stateUsage(){return this.getRuleContext(0,StateUsageContext)}constraintUsage(){return this.getRuleContext(0,ConstraintUsageContext)}requirementUsage(){return this.getRuleContext(0,RequirementUsageContext)}concernUsage(){return this.getRuleContext(0,ConcernUsageContext)}caseUsage(){return this.getRuleContext(0,CaseUsageContext)}analysisCaseUsage(){return this.getRuleContext(0,AnalysisCaseUsageContext)}verificationCaseUsage(){return this.getRuleContext(0,VerificationCaseUsageContext)}useCaseUsage(){return this.getRuleContext(0,UseCaseUsageContext)}viewpointUsage(){return this.getRuleContext(0,ViewpointUsageContext)}performActionUsage(){return this.getRuleContext(0,PerformActionUsageContext)}exhibitStateUsage(){return this.getRuleContext(0,ExhibitStateUsageContext)}includeUseCaseUsage(){return this.getRuleContext(0,IncludeUseCaseUsageContext)}assertConstraintUsage(){return this.getRuleContext(0,AssertConstraintUsageContext)}satisfyRequirementUsage(){return this.getRuleContext(0,SatisfyRequirementUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_behaviorUsageElement}enterRule(listener){listener.enterBehaviorUsageElement&&listener.enterBehaviorUsageElement(this)}exitRule(listener){listener.exitBehaviorUsageElement&&listener.exitBehaviorUsageElement(this)}accept(visitor){return visitor.visitBehaviorUsageElement?visitor.visitBehaviorUsageElement(this):visitor.visitChildren(this)}},VariantUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}variantReference(){return this.getRuleContext(0,VariantReferenceContext)}referenceUsage(){return this.getRuleContext(0,ReferenceUsageContext)}attributeUsage(){return this.getRuleContext(0,AttributeUsageContext)}bindingConnectorAsUsage(){return this.getRuleContext(0,BindingConnectorAsUsageContext)}successionAsUsage(){return this.getRuleContext(0,SuccessionAsUsageContext)}occurrenceUsage(){return this.getRuleContext(0,OccurrenceUsageContext)}individualUsage(){return this.getRuleContext(0,IndividualUsageContext)}portionUsage(){return this.getRuleContext(0,PortionUsageContext)}eventOccurrenceUsage(){return this.getRuleContext(0,EventOccurrenceUsageContext)}itemUsage(){return this.getRuleContext(0,ItemUsageContext)}partUsage(){return this.getRuleContext(0,PartUsageContext)}viewUsage(){return this.getRuleContext(0,ViewUsageContext)}renderingUsage(){return this.getRuleContext(0,RenderingUsageContext)}portUsage(){return this.getRuleContext(0,PortUsageContext)}connectionUsage(){return this.getRuleContext(0,ConnectionUsageContext)}interfaceUsage(){return this.getRuleContext(0,InterfaceUsageContext)}allocationUsage(){return this.getRuleContext(0,AllocationUsageContext)}message(){return this.getRuleContext(0,MessageContext)}flowUsage(){return this.getRuleContext(0,FlowUsageContext)}successionFlowUsage(){return this.getRuleContext(0,SuccessionFlowUsageContext)}behaviorUsageElement(){return this.getRuleContext(0,BehaviorUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_variantUsageElement}enterRule(listener){listener.enterVariantUsageElement&&listener.enterVariantUsageElement(this)}exitRule(listener){listener.exitVariantUsageElement&&listener.exitVariantUsageElement(this)}accept(visitor){return visitor.visitVariantUsageElement?visitor.visitVariantUsageElement(this):visitor.visitChildren(this)}},SubclassificationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedSubclassification(i){return i===void 0?this.getRuleContexts(OwnedSubclassificationContext):this.getRuleContext(i,OwnedSubclassificationContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_subclassificationPart}enterRule(listener){listener.enterSubclassificationPart&&listener.enterSubclassificationPart(this)}exitRule(listener){listener.exitSubclassificationPart&&listener.exitSubclassificationPart(this)}accept(visitor){return visitor.visitSubclassificationPart?visitor.visitSubclassificationPart(this):visitor.visitChildren(this)}},AttributeDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionPrefix(){return this.getRuleContext(0,DefinitionPrefixContext)}ATTRIBUTE(){return this.getToken(SysMLv2Parser.ATTRIBUTE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_attributeDefinition}enterRule(listener){listener.enterAttributeDefinition&&listener.enterAttributeDefinition(this)}exitRule(listener){listener.exitAttributeDefinition&&listener.exitAttributeDefinition(this)}accept(visitor){return visitor.visitAttributeDefinition?visitor.visitAttributeDefinition(this):visitor.visitChildren(this)}},AttributeUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usagePrefix(){return this.getRuleContext(0,UsagePrefixContext)}ATTRIBUTE(){return this.getToken(SysMLv2Parser.ATTRIBUTE,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_attributeUsage}enterRule(listener){listener.enterAttributeUsage&&listener.enterAttributeUsage(this)}exitRule(listener){listener.exitAttributeUsage&&listener.exitAttributeUsage(this)}accept(visitor){return visitor.visitAttributeUsage?visitor.visitAttributeUsage(this):visitor.visitChildren(this)}},EnumerationDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ENUM(){return this.getToken(SysMLv2Parser.ENUM,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}enumerationBody(){return this.getRuleContext(0,EnumerationBodyContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_enumerationDefinition}enterRule(listener){listener.enterEnumerationDefinition&&listener.enterEnumerationDefinition(this)}exitRule(listener){listener.exitEnumerationDefinition&&listener.exitEnumerationDefinition(this)}accept(visitor){return visitor.visitEnumerationDefinition?visitor.visitEnumerationDefinition(this):visitor.visitChildren(this)}},EnumerationBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}annotatingMember(i){return i===void 0?this.getRuleContexts(AnnotatingMemberContext):this.getRuleContext(i,AnnotatingMemberContext)}enumerationUsageMember(i){return i===void 0?this.getRuleContexts(EnumerationUsageMemberContext):this.getRuleContext(i,EnumerationUsageMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_enumerationBody}enterRule(listener){listener.enterEnumerationBody&&listener.enterEnumerationBody(this)}exitRule(listener){listener.exitEnumerationBody&&listener.exitEnumerationBody(this)}accept(visitor){return visitor.visitEnumerationBody?visitor.visitEnumerationBody(this):visitor.visitChildren(this)}},EnumerationUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}enumeratedValue(){return this.getRuleContext(0,EnumeratedValueContext)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_enumerationUsageMember}enterRule(listener){listener.enterEnumerationUsageMember&&listener.enterEnumerationUsageMember(this)}exitRule(listener){listener.exitEnumerationUsageMember&&listener.exitEnumerationUsageMember(this)}accept(visitor){return visitor.visitEnumerationUsageMember?visitor.visitEnumerationUsageMember(this):visitor.visitChildren(this)}},EnumeratedValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usage(){return this.getRuleContext(0,UsageContext)}ENUM(){return this.getToken(SysMLv2Parser.ENUM,0)}get ruleIndex(){return SysMLv2Parser.RULE_enumeratedValue}enterRule(listener){listener.enterEnumeratedValue&&listener.enterEnumeratedValue(this)}exitRule(listener){listener.exitEnumeratedValue&&listener.exitEnumeratedValue(this)}accept(visitor){return visitor.visitEnumeratedValue?visitor.visitEnumeratedValue(this):visitor.visitChildren(this)}},EnumerationUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usagePrefix(){return this.getRuleContext(0,UsagePrefixContext)}ENUM(){return this.getToken(SysMLv2Parser.ENUM,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_enumerationUsage}enterRule(listener){listener.enterEnumerationUsage&&listener.enterEnumerationUsage(this)}exitRule(listener){listener.exitEnumerationUsage&&listener.exitEnumerationUsage(this)}accept(visitor){return visitor.visitEnumerationUsage?visitor.visitEnumerationUsage(this):visitor.visitChildren(this)}},OccurrenceDefinitionPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicDefinitionPrefix(){return this.getRuleContext(0,BasicDefinitionPrefixContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}emptyMultiplicityMember(){return this.getRuleContext(0,EmptyMultiplicityMemberContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceDefinitionPrefix}enterRule(listener){listener.enterOccurrenceDefinitionPrefix&&listener.enterOccurrenceDefinitionPrefix(this)}exitRule(listener){listener.exitOccurrenceDefinitionPrefix&&listener.exitOccurrenceDefinitionPrefix(this)}accept(visitor){return visitor.visitOccurrenceDefinitionPrefix?visitor.visitOccurrenceDefinitionPrefix(this):visitor.visitChildren(this)}},OccurrenceDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}OCCURRENCE(){return this.getToken(SysMLv2Parser.OCCURRENCE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceDefinition}enterRule(listener){listener.enterOccurrenceDefinition&&listener.enterOccurrenceDefinition(this)}exitRule(listener){listener.exitOccurrenceDefinition&&listener.exitOccurrenceDefinition(this)}accept(visitor){return visitor.visitOccurrenceDefinition?visitor.visitOccurrenceDefinition(this):visitor.visitChildren(this)}},IndividualDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}emptyMultiplicityMember(){return this.getRuleContext(0,EmptyMultiplicityMemberContext)}basicDefinitionPrefix(){return this.getRuleContext(0,BasicDefinitionPrefixContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_individualDefinition}enterRule(listener){listener.enterIndividualDefinition&&listener.enterIndividualDefinition(this)}exitRule(listener){listener.exitIndividualDefinition&&listener.exitIndividualDefinition(this)}accept(visitor){return visitor.visitIndividualDefinition?visitor.visitIndividualDefinition(this):visitor.visitChildren(this)}},EmptyMultiplicityMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyMultiplicity_(){return this.getRuleContext(0,EmptyMultiplicity_Context)}get ruleIndex(){return SysMLv2Parser.RULE_emptyMultiplicityMember}enterRule(listener){listener.enterEmptyMultiplicityMember&&listener.enterEmptyMultiplicityMember(this)}exitRule(listener){listener.exitEmptyMultiplicityMember&&listener.exitEmptyMultiplicityMember(this)}accept(visitor){return visitor.visitEmptyMultiplicityMember?visitor.visitEmptyMultiplicityMember(this):visitor.visitChildren(this)}},OccurrenceUsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}portionKind(){return this.getRuleContext(0,PortionKindContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceUsagePrefix}enterRule(listener){listener.enterOccurrenceUsagePrefix&&listener.enterOccurrenceUsagePrefix(this)}exitRule(listener){listener.exitOccurrenceUsagePrefix&&listener.exitOccurrenceUsagePrefix(this)}accept(visitor){return visitor.visitOccurrenceUsagePrefix?visitor.visitOccurrenceUsagePrefix(this):visitor.visitChildren(this)}},OccurrenceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}OCCURRENCE(){return this.getToken(SysMLv2Parser.OCCURRENCE,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceUsage}enterRule(listener){listener.enterOccurrenceUsage&&listener.enterOccurrenceUsage(this)}exitRule(listener){listener.exitOccurrenceUsage&&listener.exitOccurrenceUsage(this)}accept(visitor){return visitor.visitOccurrenceUsage?visitor.visitOccurrenceUsage(this):visitor.visitChildren(this)}},IndividualUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_individualUsage}enterRule(listener){listener.enterIndividualUsage&&listener.enterIndividualUsage(this)}exitRule(listener){listener.exitIndividualUsage&&listener.exitIndividualUsage(this)}accept(visitor){return visitor.visitIndividualUsage?visitor.visitIndividualUsage(this):visitor.visitChildren(this)}},PortionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}portionKind(){return this.getRuleContext(0,PortionKindContext)}usage(){return this.getRuleContext(0,UsageContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_portionUsage}enterRule(listener){listener.enterPortionUsage&&listener.enterPortionUsage(this)}exitRule(listener){listener.exitPortionUsage&&listener.exitPortionUsage(this)}accept(visitor){return visitor.visitPortionUsage?visitor.visitPortionUsage(this):visitor.visitChildren(this)}},PortionKindContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SNAPSHOT(){return this.getToken(SysMLv2Parser.SNAPSHOT,0)}TIMESLICE(){return this.getToken(SysMLv2Parser.TIMESLICE,0)}get ruleIndex(){return SysMLv2Parser.RULE_portionKind}enterRule(listener){listener.enterPortionKind&&listener.enterPortionKind(this)}exitRule(listener){listener.exitPortionKind&&listener.exitPortionKind(this)}accept(visitor){return visitor.visitPortionKind?visitor.visitPortionKind(this):visitor.visitChildren(this)}},EventOccurrenceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}EVENT(){return this.getToken(SysMLv2Parser.EVENT,0)}usageCompletion(){return this.getRuleContext(0,UsageCompletionContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}OCCURRENCE(){return this.getToken(SysMLv2Parser.OCCURRENCE,0)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_eventOccurrenceUsage}enterRule(listener){listener.enterEventOccurrenceUsage&&listener.enterEventOccurrenceUsage(this)}exitRule(listener){listener.exitEventOccurrenceUsage&&listener.exitEventOccurrenceUsage(this)}accept(visitor){return visitor.visitEventOccurrenceUsage?visitor.visitEventOccurrenceUsage(this):visitor.visitChildren(this)}},SourceSuccessionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}sourceSuccession(){return this.getRuleContext(0,SourceSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_sourceSuccessionMember}enterRule(listener){listener.enterSourceSuccessionMember&&listener.enterSourceSuccessionMember(this)}exitRule(listener){listener.exitSourceSuccessionMember&&listener.exitSourceSuccessionMember(this)}accept(visitor){return visitor.visitSourceSuccessionMember?visitor.visitSourceSuccessionMember(this):visitor.visitChildren(this)}},SourceSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sourceEndMember(){return this.getRuleContext(0,SourceEndMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_sourceSuccession}enterRule(listener){listener.enterSourceSuccession&&listener.enterSourceSuccession(this)}exitRule(listener){listener.exitSourceSuccession&&listener.exitSourceSuccession(this)}accept(visitor){return visitor.visitSourceSuccession?visitor.visitSourceSuccession(this):visitor.visitChildren(this)}},SourceEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sourceEnd(){return this.getRuleContext(0,SourceEndContext)}get ruleIndex(){return SysMLv2Parser.RULE_sourceEndMember}enterRule(listener){listener.enterSourceEndMember&&listener.enterSourceEndMember(this)}exitRule(listener){listener.exitSourceEndMember&&listener.exitSourceEndMember(this)}accept(visitor){return visitor.visitSourceEndMember?visitor.visitSourceEndMember(this):visitor.visitChildren(this)}},SourceEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}get ruleIndex(){return SysMLv2Parser.RULE_sourceEnd}enterRule(listener){listener.enterSourceEnd&&listener.enterSourceEnd(this)}exitRule(listener){listener.exitSourceEnd&&listener.exitSourceEnd(this)}accept(visitor){return visitor.visitSourceEnd?visitor.visitSourceEnd(this):visitor.visitChildren(this)}},ItemDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}ITEM(){return this.getToken(SysMLv2Parser.ITEM,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_itemDefinition}enterRule(listener){listener.enterItemDefinition&&listener.enterItemDefinition(this)}exitRule(listener){listener.exitItemDefinition&&listener.exitItemDefinition(this)}accept(visitor){return visitor.visitItemDefinition?visitor.visitItemDefinition(this):visitor.visitChildren(this)}},ItemUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}ITEM(){return this.getToken(SysMLv2Parser.ITEM,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_itemUsage}enterRule(listener){listener.enterItemUsage&&listener.enterItemUsage(this)}exitRule(listener){listener.exitItemUsage&&listener.exitItemUsage(this)}accept(visitor){return visitor.visitItemUsage?visitor.visitItemUsage(this):visitor.visitChildren(this)}},PartDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}PART(){return this.getToken(SysMLv2Parser.PART,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_partDefinition}enterRule(listener){listener.enterPartDefinition&&listener.enterPartDefinition(this)}exitRule(listener){listener.exitPartDefinition&&listener.exitPartDefinition(this)}accept(visitor){return visitor.visitPartDefinition?visitor.visitPartDefinition(this):visitor.visitChildren(this)}},PartUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}PART(){return this.getToken(SysMLv2Parser.PART,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_partUsage}enterRule(listener){listener.enterPartUsage&&listener.enterPartUsage(this)}exitRule(listener){listener.exitPartUsage&&listener.exitPartUsage(this)}accept(visitor){return visitor.visitPartUsage?visitor.visitPartUsage(this):visitor.visitChildren(this)}},PortDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionPrefix(){return this.getRuleContext(0,DefinitionPrefixContext)}PORT(){return this.getToken(SysMLv2Parser.PORT,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}conjugatedPortDefinitionMember(){return this.getRuleContext(0,ConjugatedPortDefinitionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_portDefinition}enterRule(listener){listener.enterPortDefinition&&listener.enterPortDefinition(this)}exitRule(listener){listener.exitPortDefinition&&listener.exitPortDefinition(this)}accept(visitor){return visitor.visitPortDefinition?visitor.visitPortDefinition(this):visitor.visitChildren(this)}},ConjugatedPortDefinitionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}conjugatedPortDefinition(){return this.getRuleContext(0,ConjugatedPortDefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_conjugatedPortDefinitionMember}enterRule(listener){listener.enterConjugatedPortDefinitionMember&&listener.enterConjugatedPortDefinitionMember(this)}exitRule(listener){listener.exitConjugatedPortDefinitionMember&&listener.exitConjugatedPortDefinitionMember(this)}accept(visitor){return visitor.visitConjugatedPortDefinitionMember?visitor.visitConjugatedPortDefinitionMember(this):visitor.visitChildren(this)}},ConjugatedPortDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}portConjugation(){return this.getRuleContext(0,PortConjugationContext)}get ruleIndex(){return SysMLv2Parser.RULE_conjugatedPortDefinition}enterRule(listener){listener.enterConjugatedPortDefinition&&listener.enterConjugatedPortDefinition(this)}exitRule(listener){listener.exitConjugatedPortDefinition&&listener.exitConjugatedPortDefinition(this)}accept(visitor){return visitor.visitConjugatedPortDefinition?visitor.visitConjugatedPortDefinition(this):visitor.visitChildren(this)}},PortUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}PORT(){return this.getToken(SysMLv2Parser.PORT,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_portUsage}enterRule(listener){listener.enterPortUsage&&listener.enterPortUsage(this)}exitRule(listener){listener.exitPortUsage&&listener.exitPortUsage(this)}accept(visitor){return visitor.visitPortUsage?visitor.visitPortUsage(this):visitor.visitChildren(this)}},ConjugatedPortTypingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TILDE(){return this.getToken(SysMLv2Parser.TILDE,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_conjugatedPortTyping}enterRule(listener){listener.enterConjugatedPortTyping&&listener.enterConjugatedPortTyping(this)}exitRule(listener){listener.exitConjugatedPortTyping&&listener.exitConjugatedPortTyping(this)}accept(visitor){return visitor.visitConjugatedPortTyping?visitor.visitConjugatedPortTyping(this):visitor.visitChildren(this)}},ConnectionDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CONNECTION(){return this.getToken(SysMLv2Parser.CONNECTION,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectionDefinition}enterRule(listener){listener.enterConnectionDefinition&&listener.enterConnectionDefinition(this)}exitRule(listener){listener.exitConnectionDefinition&&listener.exitConnectionDefinition(this)}accept(visitor){return visitor.visitConnectionDefinition?visitor.visitConnectionDefinition(this):visitor.visitChildren(this)}},ConnectionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}CONNECTION(){return this.getToken(SysMLv2Parser.CONNECTION,0)}CONNECT(){return this.getToken(SysMLv2Parser.CONNECT,0)}connectorPart(){return this.getRuleContext(0,ConnectorPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectionUsage}enterRule(listener){listener.enterConnectionUsage&&listener.enterConnectionUsage(this)}exitRule(listener){listener.exitConnectionUsage&&listener.exitConnectionUsage(this)}accept(visitor){return visitor.visitConnectionUsage?visitor.visitConnectionUsage(this):visitor.visitChildren(this)}},ConnectorPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}binaryConnectorPart(){return this.getRuleContext(0,BinaryConnectorPartContext)}naryConnectorPart(){return this.getRuleContext(0,NaryConnectorPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectorPart}enterRule(listener){listener.enterConnectorPart&&listener.enterConnectorPart(this)}exitRule(listener){listener.exitConnectorPart&&listener.exitConnectorPart(this)}accept(visitor){return visitor.visitConnectorPart?visitor.visitConnectorPart(this):visitor.visitChildren(this)}},BinaryConnectorPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}get ruleIndex(){return SysMLv2Parser.RULE_binaryConnectorPart}enterRule(listener){listener.enterBinaryConnectorPart&&listener.enterBinaryConnectorPart(this)}exitRule(listener){listener.exitBinaryConnectorPart&&listener.exitBinaryConnectorPart(this)}accept(visitor){return visitor.visitBinaryConnectorPart?visitor.visitBinaryConnectorPart(this):visitor.visitChildren(this)}},NaryConnectorPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}get ruleIndex(){return SysMLv2Parser.RULE_naryConnectorPart}enterRule(listener){listener.enterNaryConnectorPart&&listener.enterNaryConnectorPart(this)}exitRule(listener){listener.exitNaryConnectorPart&&listener.exitNaryConnectorPart(this)}accept(visitor){return visitor.visitNaryConnectorPart?visitor.visitNaryConnectorPart(this):visitor.visitChildren(this)}},BindingConnectorAsUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usagePrefix(){return this.getRuleContext(0,UsagePrefixContext)}BIND(){return this.getToken(SysMLv2Parser.BIND,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}EQ(){return this.getToken(SysMLv2Parser.EQ,0)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}BINDING(){return this.getToken(SysMLv2Parser.BINDING,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_bindingConnectorAsUsage}enterRule(listener){listener.enterBindingConnectorAsUsage&&listener.enterBindingConnectorAsUsage(this)}exitRule(listener){listener.exitBindingConnectorAsUsage&&listener.exitBindingConnectorAsUsage(this)}accept(visitor){return visitor.visitBindingConnectorAsUsage?visitor.visitBindingConnectorAsUsage(this):visitor.visitChildren(this)}},SuccessionAsUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usagePrefix(){return this.getRuleContext(0,UsagePrefixContext)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_successionAsUsage}enterRule(listener){listener.enterSuccessionAsUsage&&listener.enterSuccessionAsUsage(this)}exitRule(listener){listener.exitSuccessionAsUsage&&listener.exitSuccessionAsUsage(this)}accept(visitor){return visitor.visitSuccessionAsUsage?visitor.visitSuccessionAsUsage(this):visitor.visitChildren(this)}},InterfaceDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}INTERFACE(){return this.getToken(SysMLv2Parser.INTERFACE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}interfaceBody(){return this.getRuleContext(0,InterfaceBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceDefinition}enterRule(listener){listener.enterInterfaceDefinition&&listener.enterInterfaceDefinition(this)}exitRule(listener){listener.exitInterfaceDefinition&&listener.exitInterfaceDefinition(this)}accept(visitor){return visitor.visitInterfaceDefinition?visitor.visitInterfaceDefinition(this):visitor.visitChildren(this)}},InterfaceBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}interfaceBodyItem(i){return i===void 0?this.getRuleContexts(InterfaceBodyItemContext):this.getRuleContext(i,InterfaceBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceBody}enterRule(listener){listener.enterInterfaceBody&&listener.enterInterfaceBody(this)}exitRule(listener){listener.exitInterfaceBody&&listener.exitInterfaceBody(this)}accept(visitor){return visitor.visitInterfaceBody?visitor.visitInterfaceBody(this):visitor.visitChildren(this)}},InterfaceBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionMember(){return this.getRuleContext(0,DefinitionMemberContext)}variantUsageMember(){return this.getRuleContext(0,VariantUsageMemberContext)}interfaceNonOccurrenceUsageMember(){return this.getRuleContext(0,InterfaceNonOccurrenceUsageMemberContext)}interfaceOccurrenceUsageMember(){return this.getRuleContext(0,InterfaceOccurrenceUsageMemberContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceBodyItem}enterRule(listener){listener.enterInterfaceBodyItem&&listener.enterInterfaceBodyItem(this)}exitRule(listener){listener.exitInterfaceBodyItem&&listener.exitInterfaceBodyItem(this)}accept(visitor){return visitor.visitInterfaceBodyItem?visitor.visitInterfaceBodyItem(this):visitor.visitChildren(this)}},InterfaceNonOccurrenceUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}interfaceNonOccurrenceUsageElement(){return this.getRuleContext(0,InterfaceNonOccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceNonOccurrenceUsageMember}enterRule(listener){listener.enterInterfaceNonOccurrenceUsageMember&&listener.enterInterfaceNonOccurrenceUsageMember(this)}exitRule(listener){listener.exitInterfaceNonOccurrenceUsageMember&&listener.exitInterfaceNonOccurrenceUsageMember(this)}accept(visitor){return visitor.visitInterfaceNonOccurrenceUsageMember?visitor.visitInterfaceNonOccurrenceUsageMember(this):visitor.visitChildren(this)}},InterfaceNonOccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}referenceUsage(){return this.getRuleContext(0,ReferenceUsageContext)}attributeUsage(){return this.getRuleContext(0,AttributeUsageContext)}enumerationUsage(){return this.getRuleContext(0,EnumerationUsageContext)}bindingConnectorAsUsage(){return this.getRuleContext(0,BindingConnectorAsUsageContext)}successionAsUsage(){return this.getRuleContext(0,SuccessionAsUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceNonOccurrenceUsageElement}enterRule(listener){listener.enterInterfaceNonOccurrenceUsageElement&&listener.enterInterfaceNonOccurrenceUsageElement(this)}exitRule(listener){listener.exitInterfaceNonOccurrenceUsageElement&&listener.exitInterfaceNonOccurrenceUsageElement(this)}accept(visitor){return visitor.visitInterfaceNonOccurrenceUsageElement?visitor.visitInterfaceNonOccurrenceUsageElement(this):visitor.visitChildren(this)}},InterfaceOccurrenceUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}interfaceOccurrenceUsageElement(){return this.getRuleContext(0,InterfaceOccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceOccurrenceUsageMember}enterRule(listener){listener.enterInterfaceOccurrenceUsageMember&&listener.enterInterfaceOccurrenceUsageMember(this)}exitRule(listener){listener.exitInterfaceOccurrenceUsageMember&&listener.exitInterfaceOccurrenceUsageMember(this)}accept(visitor){return visitor.visitInterfaceOccurrenceUsageMember?visitor.visitInterfaceOccurrenceUsageMember(this):visitor.visitChildren(this)}},InterfaceOccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}defaultInterfaceEnd(){return this.getRuleContext(0,DefaultInterfaceEndContext)}endOccurrenceUsageElement(){return this.getRuleContext(0,EndOccurrenceUsageElementContext)}structureUsageElement(){return this.getRuleContext(0,StructureUsageElementContext)}behaviorUsageElement(){return this.getRuleContext(0,BehaviorUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceOccurrenceUsageElement}enterRule(listener){listener.enterInterfaceOccurrenceUsageElement&&listener.enterInterfaceOccurrenceUsageElement(this)}exitRule(listener){listener.exitInterfaceOccurrenceUsageElement&&listener.exitInterfaceOccurrenceUsageElement(this)}accept(visitor){return visitor.visitInterfaceOccurrenceUsageElement?visitor.visitInterfaceOccurrenceUsageElement(this):visitor.visitChildren(this)}},DefaultInterfaceEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}END(){return this.getToken(SysMLv2Parser.END,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_defaultInterfaceEnd}enterRule(listener){listener.enterDefaultInterfaceEnd&&listener.enterDefaultInterfaceEnd(this)}exitRule(listener){listener.exitDefaultInterfaceEnd&&listener.exitDefaultInterfaceEnd(this)}accept(visitor){return visitor.visitDefaultInterfaceEnd?visitor.visitDefaultInterfaceEnd(this):visitor.visitChildren(this)}},InterfaceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}INTERFACE(){return this.getToken(SysMLv2Parser.INTERFACE,0)}interfaceUsageDeclaration(){return this.getRuleContext(0,InterfaceUsageDeclarationContext)}interfaceBody(){return this.getRuleContext(0,InterfaceBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceUsage}enterRule(listener){listener.enterInterfaceUsage&&listener.enterInterfaceUsage(this)}exitRule(listener){listener.exitInterfaceUsage&&listener.exitInterfaceUsage(this)}accept(visitor){return visitor.visitInterfaceUsage?visitor.visitInterfaceUsage(this):visitor.visitChildren(this)}},InterfaceUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}CONNECT(){return this.getToken(SysMLv2Parser.CONNECT,0)}interfacePart(){return this.getRuleContext(0,InterfacePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceUsageDeclaration}enterRule(listener){listener.enterInterfaceUsageDeclaration&&listener.enterInterfaceUsageDeclaration(this)}exitRule(listener){listener.exitInterfaceUsageDeclaration&&listener.exitInterfaceUsageDeclaration(this)}accept(visitor){return visitor.visitInterfaceUsageDeclaration?visitor.visitInterfaceUsageDeclaration(this):visitor.visitChildren(this)}},InterfacePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}binaryInterfacePart(){return this.getRuleContext(0,BinaryInterfacePartContext)}naryInterfacePart(){return this.getRuleContext(0,NaryInterfacePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfacePart}enterRule(listener){listener.enterInterfacePart&&listener.enterInterfacePart(this)}exitRule(listener){listener.exitInterfacePart&&listener.exitInterfacePart(this)}accept(visitor){return visitor.visitInterfacePart?visitor.visitInterfacePart(this):visitor.visitChildren(this)}},BinaryInterfacePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}interfaceEndMember(i){return i===void 0?this.getRuleContexts(InterfaceEndMemberContext):this.getRuleContext(i,InterfaceEndMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}get ruleIndex(){return SysMLv2Parser.RULE_binaryInterfacePart}enterRule(listener){listener.enterBinaryInterfacePart&&listener.enterBinaryInterfacePart(this)}exitRule(listener){listener.exitBinaryInterfacePart&&listener.exitBinaryInterfacePart(this)}accept(visitor){return visitor.visitBinaryInterfacePart?visitor.visitBinaryInterfacePart(this):visitor.visitChildren(this)}},NaryInterfacePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}interfaceEndMember(i){return i===void 0?this.getRuleContexts(InterfaceEndMemberContext):this.getRuleContext(i,InterfaceEndMemberContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}get ruleIndex(){return SysMLv2Parser.RULE_naryInterfacePart}enterRule(listener){listener.enterNaryInterfacePart&&listener.enterNaryInterfacePart(this)}exitRule(listener){listener.exitNaryInterfacePart&&listener.exitNaryInterfacePart(this)}accept(visitor){return visitor.visitNaryInterfacePart?visitor.visitNaryInterfacePart(this):visitor.visitChildren(this)}},InterfaceEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}interfaceEnd(){return this.getRuleContext(0,InterfaceEndContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceEndMember}enterRule(listener){listener.enterInterfaceEndMember&&listener.enterInterfaceEndMember(this)}exitRule(listener){listener.exitInterfaceEndMember&&listener.exitInterfaceEndMember(this)}accept(visitor){return visitor.visitInterfaceEndMember?visitor.visitInterfaceEndMember(this):visitor.visitChildren(this)}},InterfaceEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,OwnedCrossMultiplicityMemberContext)}name(){return this.getRuleContext(0,NameContext)}COLON_COLON_GT(){return this.getToken(SysMLv2Parser.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(SysMLv2Parser.REFERENCES,0)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceEnd}enterRule(listener){listener.enterInterfaceEnd&&listener.enterInterfaceEnd(this)}exitRule(listener){listener.exitInterfaceEnd&&listener.exitInterfaceEnd(this)}accept(visitor){return visitor.visitInterfaceEnd?visitor.visitInterfaceEnd(this):visitor.visitChildren(this)}},AllocationDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}ALLOCATION(){return this.getToken(SysMLv2Parser.ALLOCATION,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_allocationDefinition}enterRule(listener){listener.enterAllocationDefinition&&listener.enterAllocationDefinition(this)}exitRule(listener){listener.exitAllocationDefinition&&listener.exitAllocationDefinition(this)}accept(visitor){return visitor.visitAllocationDefinition?visitor.visitAllocationDefinition(this):visitor.visitChildren(this)}},AllocationUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}allocationUsageDeclaration(){return this.getRuleContext(0,AllocationUsageDeclarationContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_allocationUsage}enterRule(listener){listener.enterAllocationUsage&&listener.enterAllocationUsage(this)}exitRule(listener){listener.exitAllocationUsage&&listener.exitAllocationUsage(this)}accept(visitor){return visitor.visitAllocationUsage?visitor.visitAllocationUsage(this):visitor.visitChildren(this)}},AllocationUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ALLOCATION(){return this.getToken(SysMLv2Parser.ALLOCATION,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}ALLOCATE(){return this.getToken(SysMLv2Parser.ALLOCATE,0)}connectorPart(){return this.getRuleContext(0,ConnectorPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_allocationUsageDeclaration}enterRule(listener){listener.enterAllocationUsageDeclaration&&listener.enterAllocationUsageDeclaration(this)}exitRule(listener){listener.exitAllocationUsageDeclaration&&listener.exitAllocationUsageDeclaration(this)}accept(visitor){return visitor.visitAllocationUsageDeclaration?visitor.visitAllocationUsageDeclaration(this):visitor.visitChildren(this)}},FlowDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowDefinition}enterRule(listener){listener.enterFlowDefinition&&listener.enterFlowDefinition(this)}exitRule(listener){listener.exitFlowDefinition&&listener.exitFlowDefinition(this)}accept(visitor){return visitor.visitFlowDefinition?visitor.visitFlowDefinition(this):visitor.visitChildren(this)}},MessageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}MESSAGE(){return this.getToken(SysMLv2Parser.MESSAGE,0)}messageDeclaration(){return this.getRuleContext(0,MessageDeclarationContext)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_message}enterRule(listener){listener.enterMessage&&listener.enterMessage(this)}exitRule(listener){listener.exitMessage&&listener.exitMessage(this)}accept(visitor){return visitor.visitMessage?visitor.visitMessage(this):visitor.visitChildren(this)}},MessageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}flowPayloadFeatureMember(){return this.getRuleContext(0,FlowPayloadFeatureMemberContext)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}messageEventMember(i){return i===void 0?this.getRuleContexts(MessageEventMemberContext):this.getRuleContext(i,MessageEventMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}get ruleIndex(){return SysMLv2Parser.RULE_messageDeclaration}enterRule(listener){listener.enterMessageDeclaration&&listener.enterMessageDeclaration(this)}exitRule(listener){listener.exitMessageDeclaration&&listener.exitMessageDeclaration(this)}accept(visitor){return visitor.visitMessageDeclaration?visitor.visitMessageDeclaration(this):visitor.visitChildren(this)}},MessageEventMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}messageEvent(){return this.getRuleContext(0,MessageEventContext)}get ruleIndex(){return SysMLv2Parser.RULE_messageEventMember}enterRule(listener){listener.enterMessageEventMember&&listener.enterMessageEventMember(this)}exitRule(listener){listener.exitMessageEventMember&&listener.exitMessageEventMember(this)}accept(visitor){return visitor.visitMessageEventMember?visitor.visitMessageEventMember(this):visitor.visitChildren(this)}},MessageEventContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}get ruleIndex(){return SysMLv2Parser.RULE_messageEvent}enterRule(listener){listener.enterMessageEvent&&listener.enterMessageEvent(this)}exitRule(listener){listener.exitMessageEvent&&listener.exitMessageEvent(this)}accept(visitor){return visitor.visitMessageEvent?visitor.visitMessageEvent(this):visitor.visitChildren(this)}},FlowUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,FlowDeclarationContext)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowUsage}enterRule(listener){listener.enterFlowUsage&&listener.enterFlowUsage(this)}exitRule(listener){listener.exitFlowUsage&&listener.exitFlowUsage(this)}accept(visitor){return visitor.visitFlowUsage?visitor.visitFlowUsage(this):visitor.visitChildren(this)}},SuccessionFlowUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,FlowDeclarationContext)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_successionFlowUsage}enterRule(listener){listener.enterSuccessionFlowUsage&&listener.enterSuccessionFlowUsage(this)}exitRule(listener){listener.exitSuccessionFlowUsage&&listener.exitSuccessionFlowUsage(this)}accept(visitor){return visitor.visitSuccessionFlowUsage?visitor.visitSuccessionFlowUsage(this):visitor.visitChildren(this)}},FlowPayloadFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}flowPayloadFeature(){return this.getRuleContext(0,FlowPayloadFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowPayloadFeatureMember}enterRule(listener){listener.enterFlowPayloadFeatureMember&&listener.enterFlowPayloadFeatureMember(this)}exitRule(listener){listener.exitFlowPayloadFeatureMember&&listener.exitFlowPayloadFeatureMember(this)}accept(visitor){return visitor.visitFlowPayloadFeatureMember?visitor.visitFlowPayloadFeatureMember(this):visitor.visitChildren(this)}},FlowPayloadFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadFeature(){return this.getRuleContext(0,PayloadFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowPayloadFeature}enterRule(listener){listener.enterFlowPayloadFeature&&listener.enterFlowPayloadFeature(this)}exitRule(listener){listener.exitFlowPayloadFeature&&listener.exitFlowPayloadFeature(this)}accept(visitor){return visitor.visitFlowPayloadFeature?visitor.visitFlowPayloadFeature(this):visitor.visitChildren(this)}},ActionDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionDefinition}enterRule(listener){listener.enterActionDefinition&&listener.enterActionDefinition(this)}exitRule(listener){listener.exitActionDefinition&&listener.exitActionDefinition(this)}accept(visitor){return visitor.visitActionDefinition?visitor.visitActionDefinition(this):visitor.visitChildren(this)}},ActionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBody}enterRule(listener){listener.enterActionBody&&listener.enterActionBody(this)}exitRule(listener){listener.exitActionBody&&listener.exitActionBody(this)}accept(visitor){return visitor.visitActionBody?visitor.visitActionBody(this):visitor.visitChildren(this)}},ActionBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonBehaviorBodyItem(){return this.getRuleContext(0,NonBehaviorBodyItemContext)}initialNodeMember(){return this.getRuleContext(0,InitialNodeMemberContext)}actionTargetSuccessionMember(i){return i===void 0?this.getRuleContexts(ActionTargetSuccessionMemberContext):this.getRuleContext(i,ActionTargetSuccessionMemberContext)}actionBehaviorMember(){return this.getRuleContext(0,ActionBehaviorMemberContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}guardedSuccessionMember(){return this.getRuleContext(0,GuardedSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBodyItem}enterRule(listener){listener.enterActionBodyItem&&listener.enterActionBodyItem(this)}exitRule(listener){listener.exitActionBodyItem&&listener.exitActionBodyItem(this)}accept(visitor){return visitor.visitActionBodyItem?visitor.visitActionBodyItem(this):visitor.visitChildren(this)}},NonBehaviorBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}importRule(){return this.getRuleContext(0,ImportRuleContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}definitionMember(){return this.getRuleContext(0,DefinitionMemberContext)}variantUsageMember(){return this.getRuleContext(0,VariantUsageMemberContext)}nonOccurrenceUsageMember(){return this.getRuleContext(0,NonOccurrenceUsageMemberContext)}structureUsageMember(){return this.getRuleContext(0,StructureUsageMemberContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonBehaviorBodyItem}enterRule(listener){listener.enterNonBehaviorBodyItem&&listener.enterNonBehaviorBodyItem(this)}exitRule(listener){listener.exitNonBehaviorBodyItem&&listener.exitNonBehaviorBodyItem(this)}accept(visitor){return visitor.visitNonBehaviorBodyItem?visitor.visitNonBehaviorBodyItem(this):visitor.visitChildren(this)}},ActionBehaviorMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionNodeMember(){return this.getRuleContext(0,ActionNodeMemberContext)}behaviorUsageMember(){return this.getRuleContext(0,BehaviorUsageMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBehaviorMember}enterRule(listener){listener.enterActionBehaviorMember&&listener.enterActionBehaviorMember(this)}exitRule(listener){listener.exitActionBehaviorMember&&listener.exitActionBehaviorMember(this)}accept(visitor){return visitor.visitActionBehaviorMember?visitor.visitActionBehaviorMember(this):visitor.visitChildren(this)}},InitialNodeMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_initialNodeMember}enterRule(listener){listener.enterInitialNodeMember&&listener.enterInitialNodeMember(this)}exitRule(listener){listener.exitInitialNodeMember&&listener.exitInitialNodeMember(this)}accept(visitor){return visitor.visitInitialNodeMember?visitor.visitInitialNodeMember(this):visitor.visitChildren(this)}},ActionNodeMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}actionNode(){return this.getRuleContext(0,ActionNodeContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionNodeMember}enterRule(listener){listener.enterActionNodeMember&&listener.enterActionNodeMember(this)}exitRule(listener){listener.exitActionNodeMember&&listener.exitActionNodeMember(this)}accept(visitor){return visitor.visitActionNodeMember?visitor.visitActionNodeMember(this):visitor.visitChildren(this)}},ActionTargetSuccessionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}actionTargetSuccession(){return this.getRuleContext(0,ActionTargetSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionTargetSuccessionMember}enterRule(listener){listener.enterActionTargetSuccessionMember&&listener.enterActionTargetSuccessionMember(this)}exitRule(listener){listener.exitActionTargetSuccessionMember&&listener.exitActionTargetSuccessionMember(this)}accept(visitor){return visitor.visitActionTargetSuccessionMember?visitor.visitActionTargetSuccessionMember(this):visitor.visitChildren(this)}},GuardedSuccessionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}guardedSuccession(){return this.getRuleContext(0,GuardedSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_guardedSuccessionMember}enterRule(listener){listener.enterGuardedSuccessionMember&&listener.enterGuardedSuccessionMember(this)}exitRule(listener){listener.exitGuardedSuccessionMember&&listener.exitGuardedSuccessionMember(this)}accept(visitor){return visitor.visitGuardedSuccessionMember?visitor.visitGuardedSuccessionMember(this):visitor.visitChildren(this)}},ActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}actionUsageDeclaration(){return this.getRuleContext(0,ActionUsageDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionUsage}enterRule(listener){listener.enterActionUsage&&listener.enterActionUsage(this)}exitRule(listener){listener.exitActionUsage&&listener.exitActionUsage(this)}accept(visitor){return visitor.visitActionUsage?visitor.visitActionUsage(this):visitor.visitChildren(this)}},ActionUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionUsageDeclaration}enterRule(listener){listener.enterActionUsageDeclaration&&listener.enterActionUsageDeclaration(this)}exitRule(listener){listener.exitActionUsageDeclaration&&listener.exitActionUsageDeclaration(this)}accept(visitor){return visitor.visitActionUsageDeclaration?visitor.visitActionUsageDeclaration(this):visitor.visitChildren(this)}},PerformActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}PERFORM(){return this.getToken(SysMLv2Parser.PERFORM,0)}performActionUsageDeclaration(){return this.getRuleContext(0,PerformActionUsageDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_performActionUsage}enterRule(listener){listener.enterPerformActionUsage&&listener.enterPerformActionUsage(this)}exitRule(listener){listener.exitPerformActionUsage&&listener.exitPerformActionUsage(this)}accept(visitor){return visitor.visitPerformActionUsage?visitor.visitPerformActionUsage(this):visitor.visitChildren(this)}},PerformActionUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}valuePart(){return this.getRuleContext(0,ValuePartContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_performActionUsageDeclaration}enterRule(listener){listener.enterPerformActionUsageDeclaration&&listener.enterPerformActionUsageDeclaration(this)}exitRule(listener){listener.exitPerformActionUsageDeclaration&&listener.exitPerformActionUsageDeclaration(this)}accept(visitor){return visitor.visitPerformActionUsageDeclaration?visitor.visitPerformActionUsageDeclaration(this):visitor.visitChildren(this)}},ActionNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNode(){return this.getRuleContext(0,ControlNodeContext)}sendNode(){return this.getRuleContext(0,SendNodeContext)}acceptNode(){return this.getRuleContext(0,AcceptNodeContext)}assignmentNode(){return this.getRuleContext(0,AssignmentNodeContext)}terminateNode(){return this.getRuleContext(0,TerminateNodeContext)}ifNode(){return this.getRuleContext(0,IfNodeContext)}whileLoopNode(){return this.getRuleContext(0,WhileLoopNodeContext)}forLoopNode(){return this.getRuleContext(0,ForLoopNodeContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionNode}enterRule(listener){listener.enterActionNode&&listener.enterActionNode(this)}exitRule(listener){listener.exitActionNode&&listener.exitActionNode(this)}accept(visitor){return visitor.visitActionNode?visitor.visitActionNode(this):visitor.visitChildren(this)}},ActionNodeUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionNodeUsageDeclaration}enterRule(listener){listener.enterActionNodeUsageDeclaration&&listener.enterActionNodeUsageDeclaration(this)}exitRule(listener){listener.exitActionNodeUsageDeclaration&&listener.exitActionNodeUsageDeclaration(this)}accept(visitor){return visitor.visitActionNodeUsageDeclaration?visitor.visitActionNodeUsageDeclaration(this):visitor.visitChildren(this)}},ActionNodePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionNodePrefix}enterRule(listener){listener.enterActionNodePrefix&&listener.enterActionNodePrefix(this)}exitRule(listener){listener.exitActionNodePrefix&&listener.exitActionNodePrefix(this)}accept(visitor){return visitor.visitActionNodePrefix?visitor.visitActionNodePrefix(this):visitor.visitChildren(this)}},ControlNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}mergeNode(){return this.getRuleContext(0,MergeNodeContext)}decisionNode(){return this.getRuleContext(0,DecisionNodeContext)}joinNode(){return this.getRuleContext(0,JoinNodeContext)}forkNode(){return this.getRuleContext(0,ForkNodeContext)}get ruleIndex(){return SysMLv2Parser.RULE_controlNode}enterRule(listener){listener.enterControlNode&&listener.enterControlNode(this)}exitRule(listener){listener.exitControlNode&&listener.exitControlNode(this)}accept(visitor){return visitor.visitControlNode?visitor.visitControlNode(this):visitor.visitChildren(this)}},ControlNodePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}refPrefix(){return this.getRuleContext(0,RefPrefixContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}portionKind(){return this.getRuleContext(0,PortionKindContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_controlNodePrefix}enterRule(listener){listener.enterControlNodePrefix&&listener.enterControlNodePrefix(this)}exitRule(listener){listener.exitControlNodePrefix&&listener.exitControlNodePrefix(this)}accept(visitor){return visitor.visitControlNodePrefix?visitor.visitControlNodePrefix(this):visitor.visitChildren(this)}},MergeNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNodePrefix(){return this.getRuleContext(0,ControlNodePrefixContext)}MERGE(){return this.getToken(SysMLv2Parser.MERGE,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_mergeNode}enterRule(listener){listener.enterMergeNode&&listener.enterMergeNode(this)}exitRule(listener){listener.exitMergeNode&&listener.exitMergeNode(this)}accept(visitor){return visitor.visitMergeNode?visitor.visitMergeNode(this):visitor.visitChildren(this)}},DecisionNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNodePrefix(){return this.getRuleContext(0,ControlNodePrefixContext)}DECIDE(){return this.getToken(SysMLv2Parser.DECIDE,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_decisionNode}enterRule(listener){listener.enterDecisionNode&&listener.enterDecisionNode(this)}exitRule(listener){listener.exitDecisionNode&&listener.exitDecisionNode(this)}accept(visitor){return visitor.visitDecisionNode?visitor.visitDecisionNode(this):visitor.visitChildren(this)}},JoinNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNodePrefix(){return this.getRuleContext(0,ControlNodePrefixContext)}JOIN(){return this.getToken(SysMLv2Parser.JOIN,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_joinNode}enterRule(listener){listener.enterJoinNode&&listener.enterJoinNode(this)}exitRule(listener){listener.exitJoinNode&&listener.exitJoinNode(this)}accept(visitor){return visitor.visitJoinNode?visitor.visitJoinNode(this):visitor.visitChildren(this)}},ForkNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNodePrefix(){return this.getRuleContext(0,ControlNodePrefixContext)}FORK(){return this.getToken(SysMLv2Parser.FORK,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_forkNode}enterRule(listener){listener.enterForkNode&&listener.enterForkNode(this)}exitRule(listener){listener.exitForkNode&&listener.exitForkNode(this)}accept(visitor){return visitor.visitForkNode?visitor.visitForkNode(this):visitor.visitChildren(this)}},AcceptNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}acceptNodeDeclaration(){return this.getRuleContext(0,AcceptNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_acceptNode}enterRule(listener){listener.enterAcceptNode&&listener.enterAcceptNode(this)}exitRule(listener){listener.exitAcceptNode&&listener.exitAcceptNode(this)}accept(visitor){return visitor.visitAcceptNode?visitor.visitAcceptNode(this):visitor.visitChildren(this)}},AcceptNodeDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ACCEPT(){return this.getToken(SysMLv2Parser.ACCEPT,0)}acceptParameterPart(){return this.getRuleContext(0,AcceptParameterPartContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_acceptNodeDeclaration}enterRule(listener){listener.enterAcceptNodeDeclaration&&listener.enterAcceptNodeDeclaration(this)}exitRule(listener){listener.exitAcceptNodeDeclaration&&listener.exitAcceptNodeDeclaration(this)}accept(visitor){return visitor.visitAcceptNodeDeclaration?visitor.visitAcceptNodeDeclaration(this):visitor.visitChildren(this)}},AcceptParameterPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadParameterMember(){return this.getRuleContext(0,PayloadParameterMemberContext)}VIA(){return this.getToken(SysMLv2Parser.VIA,0)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_acceptParameterPart}enterRule(listener){listener.enterAcceptParameterPart&&listener.enterAcceptParameterPart(this)}exitRule(listener){listener.exitAcceptParameterPart&&listener.exitAcceptParameterPart(this)}accept(visitor){return visitor.visitAcceptParameterPart?visitor.visitAcceptParameterPart(this):visitor.visitChildren(this)}},PayloadParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadParameter(){return this.getRuleContext(0,PayloadParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadParameterMember}enterRule(listener){listener.enterPayloadParameterMember&&listener.enterPayloadParameterMember(this)}exitRule(listener){listener.exitPayloadParameterMember&&listener.exitPayloadParameterMember(this)}accept(visitor){return visitor.visitPayloadParameterMember?visitor.visitPayloadParameterMember(this):visitor.visitChildren(this)}},PayloadParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadFeature(){return this.getRuleContext(0,PayloadFeatureContext)}triggerValuePart(){return this.getRuleContext(0,TriggerValuePartContext)}identification(){return this.getRuleContext(0,IdentificationContext)}payloadFeatureSpecializationPart(){return this.getRuleContext(0,PayloadFeatureSpecializationPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadParameter}enterRule(listener){listener.enterPayloadParameter&&listener.enterPayloadParameter(this)}exitRule(listener){listener.exitPayloadParameter&&listener.exitPayloadParameter(this)}accept(visitor){return visitor.visitPayloadParameter?visitor.visitPayloadParameter(this):visitor.visitChildren(this)}},TriggerValuePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}triggerFeatureValue(){return this.getRuleContext(0,TriggerFeatureValueContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerValuePart}enterRule(listener){listener.enterTriggerValuePart&&listener.enterTriggerValuePart(this)}exitRule(listener){listener.exitTriggerValuePart&&listener.exitTriggerValuePart(this)}accept(visitor){return visitor.visitTriggerValuePart?visitor.visitTriggerValuePart(this):visitor.visitChildren(this)}},TriggerFeatureValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}triggerExpression(){return this.getRuleContext(0,TriggerExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerFeatureValue}enterRule(listener){listener.enterTriggerFeatureValue&&listener.enterTriggerFeatureValue(this)}exitRule(listener){listener.exitTriggerFeatureValue&&listener.exitTriggerFeatureValue(this)}accept(visitor){return visitor.visitTriggerFeatureValue?visitor.visitTriggerFeatureValue(this):visitor.visitChildren(this)}},TriggerExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}argumentMember(){return this.getRuleContext(0,ArgumentMemberContext)}AT(){return this.getToken(SysMLv2Parser.AT,0)}AFTER(){return this.getToken(SysMLv2Parser.AFTER,0)}WHEN(){return this.getToken(SysMLv2Parser.WHEN,0)}argumentExpressionMember(){return this.getRuleContext(0,ArgumentExpressionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerExpression}enterRule(listener){listener.enterTriggerExpression&&listener.enterTriggerExpression(this)}exitRule(listener){listener.exitTriggerExpression&&listener.exitTriggerExpression(this)}accept(visitor){return visitor.visitTriggerExpression?visitor.visitTriggerExpression(this):visitor.visitChildren(this)}},SendNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}SEND(){return this.getToken(SysMLv2Parser.SEND,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}actionUsageDeclaration(){return this.getRuleContext(0,ActionUsageDeclarationContext)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}emptyParameterMember(){return this.getRuleContext(0,EmptyParameterMemberContext)}senderReceiverPart(){return this.getRuleContext(0,SenderReceiverPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_sendNode}enterRule(listener){listener.enterSendNode&&listener.enterSendNode(this)}exitRule(listener){listener.exitSendNode&&listener.exitSendNode(this)}accept(visitor){return visitor.visitSendNode?visitor.visitSendNode(this):visitor.visitChildren(this)}},SendNodeDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEND(){return this.getToken(SysMLv2Parser.SEND,0)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}senderReceiverPart(){return this.getRuleContext(0,SenderReceiverPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_sendNodeDeclaration}enterRule(listener){listener.enterSendNodeDeclaration&&listener.enterSendNodeDeclaration(this)}exitRule(listener){listener.exitSendNodeDeclaration&&listener.exitSendNodeDeclaration(this)}accept(visitor){return visitor.visitSendNodeDeclaration?visitor.visitSendNodeDeclaration(this):visitor.visitChildren(this)}},SenderReceiverPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}VIA(){return this.getToken(SysMLv2Parser.VIA,0)}nodeParameterMember(i){return i===void 0?this.getRuleContexts(NodeParameterMemberContext):this.getRuleContext(i,NodeParameterMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}emptyParameterMember(){return this.getRuleContext(0,EmptyParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_senderReceiverPart}enterRule(listener){listener.enterSenderReceiverPart&&listener.enterSenderReceiverPart(this)}exitRule(listener){listener.exitSenderReceiverPart&&listener.exitSenderReceiverPart(this)}accept(visitor){return visitor.visitSenderReceiverPart?visitor.visitSenderReceiverPart(this):visitor.visitChildren(this)}},NodeParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nodeParameter(){return this.getRuleContext(0,NodeParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_nodeParameterMember}enterRule(listener){listener.enterNodeParameterMember&&listener.enterNodeParameterMember(this)}exitRule(listener){listener.exitNodeParameterMember&&listener.exitNodeParameterMember(this)}accept(visitor){return visitor.visitNodeParameterMember?visitor.visitNodeParameterMember(this):visitor.visitChildren(this)}},NodeParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureBinding(){return this.getRuleContext(0,FeatureBindingContext)}get ruleIndex(){return SysMLv2Parser.RULE_nodeParameter}enterRule(listener){listener.enterNodeParameter&&listener.enterNodeParameter(this)}exitRule(listener){listener.exitNodeParameter&&listener.exitNodeParameter(this)}accept(visitor){return visitor.visitNodeParameter?visitor.visitNodeParameter(this):visitor.visitChildren(this)}},FeatureBindingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureBinding}enterRule(listener){listener.enterFeatureBinding&&listener.enterFeatureBinding(this)}exitRule(listener){listener.exitFeatureBinding&&listener.exitFeatureBinding(this)}accept(visitor){return visitor.visitFeatureBinding?visitor.visitFeatureBinding(this):visitor.visitChildren(this)}},EmptyParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyUsage_(){return this.getRuleContext(0,EmptyUsage_Context)}get ruleIndex(){return SysMLv2Parser.RULE_emptyParameterMember}enterRule(listener){listener.enterEmptyParameterMember&&listener.enterEmptyParameterMember(this)}exitRule(listener){listener.exitEmptyParameterMember&&listener.exitEmptyParameterMember(this)}accept(visitor){return visitor.visitEmptyParameterMember?visitor.visitEmptyParameterMember(this):visitor.visitChildren(this)}},AssignmentNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}assignmentNodeDeclaration(){return this.getRuleContext(0,AssignmentNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentNode}enterRule(listener){listener.enterAssignmentNode&&listener.enterAssignmentNode(this)}exitRule(listener){listener.exitAssignmentNode&&listener.exitAssignmentNode(this)}accept(visitor){return visitor.visitAssignmentNode?visitor.visitAssignmentNode(this):visitor.visitChildren(this)}},AssignmentNodeDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ASSIGN(){return this.getToken(SysMLv2Parser.ASSIGN,0)}assignmentTargetMember(){return this.getRuleContext(0,AssignmentTargetMemberContext)}featureChainMember(){return this.getRuleContext(0,FeatureChainMemberContext)}COLON_EQ(){return this.getToken(SysMLv2Parser.COLON_EQ,0)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentNodeDeclaration}enterRule(listener){listener.enterAssignmentNodeDeclaration&&listener.enterAssignmentNodeDeclaration(this)}exitRule(listener){listener.exitAssignmentNodeDeclaration&&listener.exitAssignmentNodeDeclaration(this)}accept(visitor){return visitor.visitAssignmentNodeDeclaration?visitor.visitAssignmentNodeDeclaration(this):visitor.visitChildren(this)}},AssignmentTargetMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}assignmentTargetParameter(){return this.getRuleContext(0,AssignmentTargetParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentTargetMember}enterRule(listener){listener.enterAssignmentTargetMember&&listener.enterAssignmentTargetMember(this)}exitRule(listener){listener.exitAssignmentTargetMember&&listener.exitAssignmentTargetMember(this)}accept(visitor){return visitor.visitAssignmentTargetMember?visitor.visitAssignmentTargetMember(this):visitor.visitChildren(this)}},AssignmentTargetParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}assignmentTargetBinding(){return this.getRuleContext(0,AssignmentTargetBindingContext)}DOT(){return this.getToken(SysMLv2Parser.DOT,0)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentTargetParameter}enterRule(listener){listener.enterAssignmentTargetParameter&&listener.enterAssignmentTargetParameter(this)}exitRule(listener){listener.exitAssignmentTargetParameter&&listener.exitAssignmentTargetParameter(this)}accept(visitor){return visitor.visitAssignmentTargetParameter?visitor.visitAssignmentTargetParameter(this):visitor.visitChildren(this)}},AssignmentTargetBindingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureChainPrimaryExpression(){return this.getRuleContext(0,NonFeatureChainPrimaryExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentTargetBinding}enterRule(listener){listener.enterAssignmentTargetBinding&&listener.enterAssignmentTargetBinding(this)}exitRule(listener){listener.exitAssignmentTargetBinding&&listener.exitAssignmentTargetBinding(this)}accept(visitor){return visitor.visitAssignmentTargetBinding?visitor.visitAssignmentTargetBinding(this):visitor.visitChildren(this)}},TerminateNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}TERMINATE(){return this.getToken(SysMLv2Parser.TERMINATE,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_terminateNode}enterRule(listener){listener.enterTerminateNode&&listener.enterTerminateNode(this)}exitRule(listener){listener.exitTerminateNode&&listener.exitTerminateNode(this)}accept(visitor){return visitor.visitTerminateNode?visitor.visitTerminateNode(this):visitor.visitChildren(this)}},IfNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionNodePrefix(){return this.getRuleContext(0,ActionNodePrefixContext)}IF(){return this.getToken(SysMLv2Parser.IF,0)}expressionParameterMember(){return this.getRuleContext(0,ExpressionParameterMemberContext)}actionBodyParameterMember(i){return i===void 0?this.getRuleContexts(ActionBodyParameterMemberContext):this.getRuleContext(i,ActionBodyParameterMemberContext)}ELSE(){return this.getToken(SysMLv2Parser.ELSE,0)}ifNodeParameterMember(){return this.getRuleContext(0,IfNodeParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_ifNode}enterRule(listener){listener.enterIfNode&&listener.enterIfNode(this)}exitRule(listener){listener.exitIfNode&&listener.exitIfNode(this)}accept(visitor){return visitor.visitIfNode?visitor.visitIfNode(this):visitor.visitChildren(this)}},ExpressionParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_expressionParameterMember}enterRule(listener){listener.enterExpressionParameterMember&&listener.enterExpressionParameterMember(this)}exitRule(listener){listener.exitExpressionParameterMember&&listener.exitExpressionParameterMember(this)}accept(visitor){return visitor.visitExpressionParameterMember?visitor.visitExpressionParameterMember(this):visitor.visitChildren(this)}},ActionBodyParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionBodyParameter(){return this.getRuleContext(0,ActionBodyParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBodyParameterMember}enterRule(listener){listener.enterActionBodyParameterMember&&listener.enterActionBodyParameterMember(this)}exitRule(listener){listener.exitActionBodyParameterMember&&listener.exitActionBodyParameterMember(this)}accept(visitor){return visitor.visitActionBodyParameterMember?visitor.visitActionBodyParameterMember(this):visitor.visitChildren(this)}},ActionBodyParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBodyParameter}enterRule(listener){listener.enterActionBodyParameter&&listener.enterActionBodyParameter(this)}exitRule(listener){listener.exitActionBodyParameter&&listener.exitActionBodyParameter(this)}accept(visitor){return visitor.visitActionBodyParameter?visitor.visitActionBodyParameter(this):visitor.visitChildren(this)}},IfNodeParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ifNode(){return this.getRuleContext(0,IfNodeContext)}get ruleIndex(){return SysMLv2Parser.RULE_ifNodeParameterMember}enterRule(listener){listener.enterIfNodeParameterMember&&listener.enterIfNodeParameterMember(this)}exitRule(listener){listener.exitIfNodeParameterMember&&listener.exitIfNodeParameterMember(this)}accept(visitor){return visitor.visitIfNodeParameterMember?visitor.visitIfNodeParameterMember(this):visitor.visitChildren(this)}},WhileLoopNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionNodePrefix(){return this.getRuleContext(0,ActionNodePrefixContext)}actionBodyParameterMember(){return this.getRuleContext(0,ActionBodyParameterMemberContext)}WHILE(){return this.getToken(SysMLv2Parser.WHILE,0)}expressionParameterMember(i){return i===void 0?this.getRuleContexts(ExpressionParameterMemberContext):this.getRuleContext(i,ExpressionParameterMemberContext)}LOOP(){return this.getToken(SysMLv2Parser.LOOP,0)}emptyParameterMember(){return this.getRuleContext(0,EmptyParameterMemberContext)}UNTIL(){return this.getToken(SysMLv2Parser.UNTIL,0)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}get ruleIndex(){return SysMLv2Parser.RULE_whileLoopNode}enterRule(listener){listener.enterWhileLoopNode&&listener.enterWhileLoopNode(this)}exitRule(listener){listener.exitWhileLoopNode&&listener.exitWhileLoopNode(this)}accept(visitor){return visitor.visitWhileLoopNode?visitor.visitWhileLoopNode(this):visitor.visitChildren(this)}},ForLoopNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionNodePrefix(){return this.getRuleContext(0,ActionNodePrefixContext)}FOR(){return this.getToken(SysMLv2Parser.FOR,0)}forVariableDeclarationMember(){return this.getRuleContext(0,ForVariableDeclarationMemberContext)}IN(){return this.getToken(SysMLv2Parser.IN,0)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}actionBodyParameterMember(){return this.getRuleContext(0,ActionBodyParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_forLoopNode}enterRule(listener){listener.enterForLoopNode&&listener.enterForLoopNode(this)}exitRule(listener){listener.exitForLoopNode&&listener.exitForLoopNode(this)}accept(visitor){return visitor.visitForLoopNode?visitor.visitForLoopNode(this):visitor.visitChildren(this)}},ForVariableDeclarationMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_forVariableDeclarationMember}enterRule(listener){listener.enterForVariableDeclarationMember&&listener.enterForVariableDeclarationMember(this)}exitRule(listener){listener.exitForVariableDeclarationMember&&listener.exitForVariableDeclarationMember(this)}accept(visitor){return visitor.visitForVariableDeclarationMember?visitor.visitForVariableDeclarationMember(this):visitor.visitChildren(this)}},ActionTargetSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}targetSuccession(){return this.getRuleContext(0,TargetSuccessionContext)}guardedTargetSuccession(){return this.getRuleContext(0,GuardedTargetSuccessionContext)}defaultTargetSuccession(){return this.getRuleContext(0,DefaultTargetSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionTargetSuccession}enterRule(listener){listener.enterActionTargetSuccession&&listener.enterActionTargetSuccession(this)}exitRule(listener){listener.exitActionTargetSuccession&&listener.exitActionTargetSuccession(this)}accept(visitor){return visitor.visitActionTargetSuccession?visitor.visitActionTargetSuccession(this):visitor.visitChildren(this)}},TargetSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sourceEndMember(){return this.getRuleContext(0,SourceEndMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}connectorEndMember(){return this.getRuleContext(0,ConnectorEndMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_targetSuccession}enterRule(listener){listener.enterTargetSuccession&&listener.enterTargetSuccession(this)}exitRule(listener){listener.exitTargetSuccession&&listener.exitTargetSuccession(this)}accept(visitor){return visitor.visitTargetSuccession?visitor.visitTargetSuccession(this):visitor.visitChildren(this)}},GuardedTargetSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}guardExpressionMember(){return this.getRuleContext(0,GuardExpressionMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_guardedTargetSuccession}enterRule(listener){listener.enterGuardedTargetSuccession&&listener.enterGuardedTargetSuccession(this)}exitRule(listener){listener.exitGuardedTargetSuccession&&listener.exitGuardedTargetSuccession(this)}accept(visitor){return visitor.visitGuardedTargetSuccession?visitor.visitGuardedTargetSuccession(this):visitor.visitChildren(this)}},DefaultTargetSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ELSE(){return this.getToken(SysMLv2Parser.ELSE,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_defaultTargetSuccession}enterRule(listener){listener.enterDefaultTargetSuccession&&listener.enterDefaultTargetSuccession(this)}exitRule(listener){listener.exitDefaultTargetSuccession&&listener.exitDefaultTargetSuccession(this)}accept(visitor){return visitor.visitDefaultTargetSuccession?visitor.visitDefaultTargetSuccession(this):visitor.visitChildren(this)}},GuardedSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}featureChainMember(){return this.getRuleContext(0,FeatureChainMemberContext)}guardExpressionMember(){return this.getRuleContext(0,GuardExpressionMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_guardedSuccession}enterRule(listener){listener.enterGuardedSuccession&&listener.enterGuardedSuccession(this)}exitRule(listener){listener.exitGuardedSuccession&&listener.exitGuardedSuccession(this)}accept(visitor){return visitor.visitGuardedSuccession?visitor.visitGuardedSuccession(this):visitor.visitChildren(this)}},StateDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}STATE(){return this.getToken(SysMLv2Parser.STATE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}stateDefBody(){return this.getRuleContext(0,StateDefBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateDefinition}enterRule(listener){listener.enterStateDefinition&&listener.enterStateDefinition(this)}exitRule(listener){listener.exitStateDefinition&&listener.exitStateDefinition(this)}accept(visitor){return visitor.visitStateDefinition?visitor.visitStateDefinition(this):visitor.visitChildren(this)}},StateDefBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}PARALLEL(){return this.getToken(SysMLv2Parser.PARALLEL,0)}stateBodyItem(i){return i===void 0?this.getRuleContexts(StateBodyItemContext):this.getRuleContext(i,StateBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateDefBody}enterRule(listener){listener.enterStateDefBody&&listener.enterStateDefBody(this)}exitRule(listener){listener.exitStateDefBody&&listener.exitStateDefBody(this)}accept(visitor){return visitor.visitStateDefBody?visitor.visitStateDefBody(this):visitor.visitChildren(this)}},StateBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonBehaviorBodyItem(){return this.getRuleContext(0,NonBehaviorBodyItemContext)}behaviorUsageMember(){return this.getRuleContext(0,BehaviorUsageMemberContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}targetTransitionUsageMember(i){return i===void 0?this.getRuleContexts(TargetTransitionUsageMemberContext):this.getRuleContext(i,TargetTransitionUsageMemberContext)}transitionUsageMember(){return this.getRuleContext(0,TransitionUsageMemberContext)}entryActionMember(){return this.getRuleContext(0,EntryActionMemberContext)}entryTransitionMember(i){return i===void 0?this.getRuleContexts(EntryTransitionMemberContext):this.getRuleContext(i,EntryTransitionMemberContext)}doActionMember(){return this.getRuleContext(0,DoActionMemberContext)}exitActionMember(){return this.getRuleContext(0,ExitActionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateBodyItem}enterRule(listener){listener.enterStateBodyItem&&listener.enterStateBodyItem(this)}exitRule(listener){listener.exitStateBodyItem&&listener.exitStateBodyItem(this)}accept(visitor){return visitor.visitStateBodyItem?visitor.visitStateBodyItem(this):visitor.visitChildren(this)}},EntryActionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}ENTRY(){return this.getToken(SysMLv2Parser.ENTRY,0)}stateActionUsage(){return this.getRuleContext(0,StateActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_entryActionMember}enterRule(listener){listener.enterEntryActionMember&&listener.enterEntryActionMember(this)}exitRule(listener){listener.exitEntryActionMember&&listener.exitEntryActionMember(this)}accept(visitor){return visitor.visitEntryActionMember?visitor.visitEntryActionMember(this):visitor.visitChildren(this)}},DoActionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}DO(){return this.getToken(SysMLv2Parser.DO,0)}stateActionUsage(){return this.getRuleContext(0,StateActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_doActionMember}enterRule(listener){listener.enterDoActionMember&&listener.enterDoActionMember(this)}exitRule(listener){listener.exitDoActionMember&&listener.exitDoActionMember(this)}accept(visitor){return visitor.visitDoActionMember?visitor.visitDoActionMember(this):visitor.visitChildren(this)}},ExitActionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}EXIT(){return this.getToken(SysMLv2Parser.EXIT,0)}stateActionUsage(){return this.getRuleContext(0,StateActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_exitActionMember}enterRule(listener){listener.enterExitActionMember&&listener.enterExitActionMember(this)}exitRule(listener){listener.exitExitActionMember&&listener.exitExitActionMember(this)}accept(visitor){return visitor.visitExitActionMember?visitor.visitExitActionMember(this):visitor.visitChildren(this)}},EntryTransitionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}guardedTargetSuccession(){return this.getRuleContext(0,GuardedTargetSuccessionContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_entryTransitionMember}enterRule(listener){listener.enterEntryTransitionMember&&listener.enterEntryTransitionMember(this)}exitRule(listener){listener.exitEntryTransitionMember&&listener.exitEntryTransitionMember(this)}accept(visitor){return visitor.visitEntryTransitionMember?visitor.visitEntryTransitionMember(this):visitor.visitChildren(this)}},StateActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyActionUsage_(){return this.getRuleContext(0,EmptyActionUsage_Context)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}statePerformActionUsage(){return this.getRuleContext(0,StatePerformActionUsageContext)}stateAcceptActionUsage(){return this.getRuleContext(0,StateAcceptActionUsageContext)}stateSendActionUsage(){return this.getRuleContext(0,StateSendActionUsageContext)}stateAssignmentActionUsage(){return this.getRuleContext(0,StateAssignmentActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateActionUsage}enterRule(listener){listener.enterStateActionUsage&&listener.enterStateActionUsage(this)}exitRule(listener){listener.exitStateActionUsage&&listener.exitStateActionUsage(this)}accept(visitor){return visitor.visitStateActionUsage?visitor.visitStateActionUsage(this):visitor.visitChildren(this)}},StatePerformActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}performActionUsageDeclaration(){return this.getRuleContext(0,PerformActionUsageDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_statePerformActionUsage}enterRule(listener){listener.enterStatePerformActionUsage&&listener.enterStatePerformActionUsage(this)}exitRule(listener){listener.exitStatePerformActionUsage&&listener.exitStatePerformActionUsage(this)}accept(visitor){return visitor.visitStatePerformActionUsage?visitor.visitStatePerformActionUsage(this):visitor.visitChildren(this)}},StateAcceptActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}acceptNodeDeclaration(){return this.getRuleContext(0,AcceptNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateAcceptActionUsage}enterRule(listener){listener.enterStateAcceptActionUsage&&listener.enterStateAcceptActionUsage(this)}exitRule(listener){listener.exitStateAcceptActionUsage&&listener.exitStateAcceptActionUsage(this)}accept(visitor){return visitor.visitStateAcceptActionUsage?visitor.visitStateAcceptActionUsage(this):visitor.visitChildren(this)}},StateSendActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sendNodeDeclaration(){return this.getRuleContext(0,SendNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateSendActionUsage}enterRule(listener){listener.enterStateSendActionUsage&&listener.enterStateSendActionUsage(this)}exitRule(listener){listener.exitStateSendActionUsage&&listener.exitStateSendActionUsage(this)}accept(visitor){return visitor.visitStateSendActionUsage?visitor.visitStateSendActionUsage(this):visitor.visitChildren(this)}},StateAssignmentActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}assignmentNodeDeclaration(){return this.getRuleContext(0,AssignmentNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateAssignmentActionUsage}enterRule(listener){listener.enterStateAssignmentActionUsage&&listener.enterStateAssignmentActionUsage(this)}exitRule(listener){listener.exitStateAssignmentActionUsage&&listener.exitStateAssignmentActionUsage(this)}accept(visitor){return visitor.visitStateAssignmentActionUsage?visitor.visitStateAssignmentActionUsage(this):visitor.visitChildren(this)}},TransitionUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}transitionUsage(){return this.getRuleContext(0,TransitionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionUsageMember}enterRule(listener){listener.enterTransitionUsageMember&&listener.enterTransitionUsageMember(this)}exitRule(listener){listener.exitTransitionUsageMember&&listener.exitTransitionUsageMember(this)}accept(visitor){return visitor.visitTransitionUsageMember?visitor.visitTransitionUsageMember(this):visitor.visitChildren(this)}},TargetTransitionUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}targetTransitionUsage(){return this.getRuleContext(0,TargetTransitionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_targetTransitionUsageMember}enterRule(listener){listener.enterTargetTransitionUsageMember&&listener.enterTargetTransitionUsageMember(this)}exitRule(listener){listener.exitTargetTransitionUsageMember&&listener.exitTargetTransitionUsageMember(this)}accept(visitor){return visitor.visitTargetTransitionUsageMember?visitor.visitTargetTransitionUsageMember(this):visitor.visitChildren(this)}},StateUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}STATE(){return this.getToken(SysMLv2Parser.STATE,0)}actionUsageDeclaration(){return this.getRuleContext(0,ActionUsageDeclarationContext)}stateUsageBody(){return this.getRuleContext(0,StateUsageBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateUsage}enterRule(listener){listener.enterStateUsage&&listener.enterStateUsage(this)}exitRule(listener){listener.exitStateUsage&&listener.exitStateUsage(this)}accept(visitor){return visitor.visitStateUsage?visitor.visitStateUsage(this):visitor.visitChildren(this)}},StateUsageBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}PARALLEL(){return this.getToken(SysMLv2Parser.PARALLEL,0)}stateBodyItem(i){return i===void 0?this.getRuleContexts(StateBodyItemContext):this.getRuleContext(i,StateBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateUsageBody}enterRule(listener){listener.enterStateUsageBody&&listener.enterStateUsageBody(this)}exitRule(listener){listener.exitStateUsageBody&&listener.exitStateUsageBody(this)}accept(visitor){return visitor.visitStateUsageBody?visitor.visitStateUsageBody(this):visitor.visitChildren(this)}},ExhibitStateUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}EXHIBIT(){return this.getToken(SysMLv2Parser.EXHIBIT,0)}stateUsageBody(){return this.getRuleContext(0,StateUsageBodyContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}STATE(){return this.getToken(SysMLv2Parser.STATE,0)}valuePart(){return this.getRuleContext(0,ValuePartContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_exhibitStateUsage}enterRule(listener){listener.enterExhibitStateUsage&&listener.enterExhibitStateUsage(this)}exitRule(listener){listener.exitExhibitStateUsage&&listener.exitExhibitStateUsage(this)}accept(visitor){return visitor.visitExhibitStateUsage?visitor.visitExhibitStateUsage(this):visitor.visitChildren(this)}},TransitionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TRANSITION(){return this.getToken(SysMLv2Parser.TRANSITION,0)}featureChainMember(){return this.getRuleContext(0,FeatureChainMemberContext)}emptyParameterMember(i){return i===void 0?this.getRuleContexts(EmptyParameterMemberContext):this.getRuleContext(i,EmptyParameterMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}triggerActionMember(){return this.getRuleContext(0,TriggerActionMemberContext)}guardExpressionMember(){return this.getRuleContext(0,GuardExpressionMemberContext)}effectBehaviorMember(){return this.getRuleContext(0,EffectBehaviorMemberContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionUsage}enterRule(listener){listener.enterTransitionUsage&&listener.enterTransitionUsage(this)}exitRule(listener){listener.exitTransitionUsage&&listener.exitTransitionUsage(this)}accept(visitor){return visitor.visitTransitionUsage?visitor.visitTransitionUsage(this):visitor.visitChildren(this)}},TargetTransitionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyParameterMember(i){return i===void 0?this.getRuleContexts(EmptyParameterMemberContext):this.getRuleContext(i,EmptyParameterMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}TRANSITION(){return this.getToken(SysMLv2Parser.TRANSITION,0)}triggerActionMember(){return this.getRuleContext(0,TriggerActionMemberContext)}guardExpressionMember(){return this.getRuleContext(0,GuardExpressionMemberContext)}effectBehaviorMember(){return this.getRuleContext(0,EffectBehaviorMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_targetTransitionUsage}enterRule(listener){listener.enterTargetTransitionUsage&&listener.enterTargetTransitionUsage(this)}exitRule(listener){listener.exitTargetTransitionUsage&&listener.exitTargetTransitionUsage(this)}accept(visitor){return visitor.visitTargetTransitionUsage?visitor.visitTargetTransitionUsage(this):visitor.visitChildren(this)}},TriggerActionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ACCEPT(){return this.getToken(SysMLv2Parser.ACCEPT,0)}triggerAction(){return this.getRuleContext(0,TriggerActionContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerActionMember}enterRule(listener){listener.enterTriggerActionMember&&listener.enterTriggerActionMember(this)}exitRule(listener){listener.exitTriggerActionMember&&listener.exitTriggerActionMember(this)}accept(visitor){return visitor.visitTriggerActionMember?visitor.visitTriggerActionMember(this):visitor.visitChildren(this)}},TriggerActionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}acceptParameterPart(){return this.getRuleContext(0,AcceptParameterPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerAction}enterRule(listener){listener.enterTriggerAction&&listener.enterTriggerAction(this)}exitRule(listener){listener.exitTriggerAction&&listener.exitTriggerAction(this)}accept(visitor){return visitor.visitTriggerAction?visitor.visitTriggerAction(this):visitor.visitChildren(this)}},GuardExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IF(){return this.getToken(SysMLv2Parser.IF,0)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_guardExpressionMember}enterRule(listener){listener.enterGuardExpressionMember&&listener.enterGuardExpressionMember(this)}exitRule(listener){listener.exitGuardExpressionMember&&listener.exitGuardExpressionMember(this)}accept(visitor){return visitor.visitGuardExpressionMember?visitor.visitGuardExpressionMember(this):visitor.visitChildren(this)}},EffectBehaviorMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DO(){return this.getToken(SysMLv2Parser.DO,0)}effectBehaviorUsage(){return this.getRuleContext(0,EffectBehaviorUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_effectBehaviorMember}enterRule(listener){listener.enterEffectBehaviorMember&&listener.enterEffectBehaviorMember(this)}exitRule(listener){listener.exitEffectBehaviorMember&&listener.exitEffectBehaviorMember(this)}accept(visitor){return visitor.visitEffectBehaviorMember?visitor.visitEffectBehaviorMember(this):visitor.visitChildren(this)}},EffectBehaviorUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyActionUsage_(){return this.getRuleContext(0,EmptyActionUsage_Context)}transitionPerformActionUsage(){return this.getRuleContext(0,TransitionPerformActionUsageContext)}transitionAcceptActionUsage(){return this.getRuleContext(0,TransitionAcceptActionUsageContext)}transitionSendActionUsage(){return this.getRuleContext(0,TransitionSendActionUsageContext)}transitionAssignmentActionUsage(){return this.getRuleContext(0,TransitionAssignmentActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_effectBehaviorUsage}enterRule(listener){listener.enterEffectBehaviorUsage&&listener.enterEffectBehaviorUsage(this)}exitRule(listener){listener.exitEffectBehaviorUsage&&listener.exitEffectBehaviorUsage(this)}accept(visitor){return visitor.visitEffectBehaviorUsage?visitor.visitEffectBehaviorUsage(this):visitor.visitChildren(this)}},TransitionPerformActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}performActionUsageDeclaration(){return this.getRuleContext(0,PerformActionUsageDeclarationContext)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionPerformActionUsage}enterRule(listener){listener.enterTransitionPerformActionUsage&&listener.enterTransitionPerformActionUsage(this)}exitRule(listener){listener.exitTransitionPerformActionUsage&&listener.exitTransitionPerformActionUsage(this)}accept(visitor){return visitor.visitTransitionPerformActionUsage?visitor.visitTransitionPerformActionUsage(this):visitor.visitChildren(this)}},TransitionAcceptActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}acceptNodeDeclaration(){return this.getRuleContext(0,AcceptNodeDeclarationContext)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionAcceptActionUsage}enterRule(listener){listener.enterTransitionAcceptActionUsage&&listener.enterTransitionAcceptActionUsage(this)}exitRule(listener){listener.exitTransitionAcceptActionUsage&&listener.exitTransitionAcceptActionUsage(this)}accept(visitor){return visitor.visitTransitionAcceptActionUsage?visitor.visitTransitionAcceptActionUsage(this):visitor.visitChildren(this)}},TransitionSendActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sendNodeDeclaration(){return this.getRuleContext(0,SendNodeDeclarationContext)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionSendActionUsage}enterRule(listener){listener.enterTransitionSendActionUsage&&listener.enterTransitionSendActionUsage(this)}exitRule(listener){listener.exitTransitionSendActionUsage&&listener.exitTransitionSendActionUsage(this)}accept(visitor){return visitor.visitTransitionSendActionUsage?visitor.visitTransitionSendActionUsage(this):visitor.visitChildren(this)}},TransitionAssignmentActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}assignmentNodeDeclaration(){return this.getRuleContext(0,AssignmentNodeDeclarationContext)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionAssignmentActionUsage}enterRule(listener){listener.enterTransitionAssignmentActionUsage&&listener.enterTransitionAssignmentActionUsage(this)}exitRule(listener){listener.exitTransitionAssignmentActionUsage&&listener.exitTransitionAssignmentActionUsage(this)}accept(visitor){return visitor.visitTransitionAssignmentActionUsage?visitor.visitTransitionAssignmentActionUsage(this):visitor.visitChildren(this)}},TransitionSuccessionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}transitionSuccession(){return this.getRuleContext(0,TransitionSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionSuccessionMember}enterRule(listener){listener.enterTransitionSuccessionMember&&listener.enterTransitionSuccessionMember(this)}exitRule(listener){listener.exitTransitionSuccessionMember&&listener.exitTransitionSuccessionMember(this)}accept(visitor){return visitor.visitTransitionSuccessionMember?visitor.visitTransitionSuccessionMember(this):visitor.visitChildren(this)}},TransitionSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyEndMember(){return this.getRuleContext(0,EmptyEndMemberContext)}connectorEndMember(){return this.getRuleContext(0,ConnectorEndMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionSuccession}enterRule(listener){listener.enterTransitionSuccession&&listener.enterTransitionSuccession(this)}exitRule(listener){listener.exitTransitionSuccession&&listener.exitTransitionSuccession(this)}accept(visitor){return visitor.visitTransitionSuccession?visitor.visitTransitionSuccession(this):visitor.visitChildren(this)}},EmptyEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyFeature_(){return this.getRuleContext(0,EmptyFeature_Context)}get ruleIndex(){return SysMLv2Parser.RULE_emptyEndMember}enterRule(listener){listener.enterEmptyEndMember&&listener.enterEmptyEndMember(this)}exitRule(listener){listener.exitEmptyEndMember&&listener.exitEmptyEndMember(this)}accept(visitor){return visitor.visitEmptyEndMember?visitor.visitEmptyEndMember(this):visitor.visitChildren(this)}},CalculationDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CALC(){return this.getToken(SysMLv2Parser.CALC,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationDefinition}enterRule(listener){listener.enterCalculationDefinition&&listener.enterCalculationDefinition(this)}exitRule(listener){listener.exitCalculationDefinition&&listener.exitCalculationDefinition(this)}accept(visitor){return visitor.visitCalculationDefinition?visitor.visitCalculationDefinition(this):visitor.visitChildren(this)}},CalculationUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}CALC(){return this.getToken(SysMLv2Parser.CALC,0)}actionUsageDeclaration(){return this.getRuleContext(0,ActionUsageDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationUsage}enterRule(listener){listener.enterCalculationUsage&&listener.enterCalculationUsage(this)}exitRule(listener){listener.exitCalculationUsage&&listener.exitCalculationUsage(this)}accept(visitor){return visitor.visitCalculationUsage?visitor.visitCalculationUsage(this):visitor.visitChildren(this)}},CalculationBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}calculationBodyPart(){return this.getRuleContext(0,CalculationBodyPartContext)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}get ruleIndex(){return SysMLv2Parser.RULE_calculationBody}enterRule(listener){listener.enterCalculationBody&&listener.enterCalculationBody(this)}exitRule(listener){listener.exitCalculationBody&&listener.exitCalculationBody(this)}accept(visitor){return visitor.visitCalculationBody?visitor.visitCalculationBody(this):visitor.visitChildren(this)}},CalculationBodyPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}calculationBodyItem(i){return i===void 0?this.getRuleContexts(CalculationBodyItemContext):this.getRuleContext(i,CalculationBodyItemContext)}resultExpressionMember(){return this.getRuleContext(0,ResultExpressionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationBodyPart}enterRule(listener){listener.enterCalculationBodyPart&&listener.enterCalculationBodyPart(this)}exitRule(listener){listener.exitCalculationBodyPart&&listener.exitCalculationBodyPart(this)}accept(visitor){return visitor.visitCalculationBodyPart?visitor.visitCalculationBodyPart(this):visitor.visitChildren(this)}},CalculationBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionBodyItem(){return this.getRuleContext(0,ActionBodyItemContext)}returnParameterMember(){return this.getRuleContext(0,ReturnParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationBodyItem}enterRule(listener){listener.enterCalculationBodyItem&&listener.enterCalculationBodyItem(this)}exitRule(listener){listener.exitCalculationBodyItem&&listener.exitCalculationBodyItem(this)}accept(visitor){return visitor.visitCalculationBodyItem?visitor.visitCalculationBodyItem(this):visitor.visitChildren(this)}},ReturnParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}RETURN(){return this.getToken(SysMLv2Parser.RETURN,0)}usageElement(){return this.getRuleContext(0,UsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_returnParameterMember}enterRule(listener){listener.enterReturnParameterMember&&listener.enterReturnParameterMember(this)}exitRule(listener){listener.exitReturnParameterMember&&listener.exitReturnParameterMember(this)}accept(visitor){return visitor.visitReturnParameterMember?visitor.visitReturnParameterMember(this):visitor.visitChildren(this)}},ConstraintDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CONSTRAINT(){return this.getToken(SysMLv2Parser.CONSTRAINT,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_constraintDefinition}enterRule(listener){listener.enterConstraintDefinition&&listener.enterConstraintDefinition(this)}exitRule(listener){listener.exitConstraintDefinition&&listener.exitConstraintDefinition(this)}accept(visitor){return visitor.visitConstraintDefinition?visitor.visitConstraintDefinition(this):visitor.visitChildren(this)}},ConstraintUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}CONSTRAINT(){return this.getToken(SysMLv2Parser.CONSTRAINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_constraintUsage}enterRule(listener){listener.enterConstraintUsage&&listener.enterConstraintUsage(this)}exitRule(listener){listener.exitConstraintUsage&&listener.exitConstraintUsage(this)}accept(visitor){return visitor.visitConstraintUsage?visitor.visitConstraintUsage(this):visitor.visitChildren(this)}},AssertConstraintUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}ASSERT(){return this.getToken(SysMLv2Parser.ASSERT,0)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}CONSTRAINT(){return this.getToken(SysMLv2Parser.CONSTRAINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}NOT(){return this.getToken(SysMLv2Parser.NOT,0)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_assertConstraintUsage}enterRule(listener){listener.enterAssertConstraintUsage&&listener.enterAssertConstraintUsage(this)}exitRule(listener){listener.exitAssertConstraintUsage&&listener.exitAssertConstraintUsage(this)}accept(visitor){return visitor.visitAssertConstraintUsage?visitor.visitAssertConstraintUsage(this):visitor.visitChildren(this)}},ConstraintUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_constraintUsageDeclaration}enterRule(listener){listener.enterConstraintUsageDeclaration&&listener.enterConstraintUsageDeclaration(this)}exitRule(listener){listener.exitConstraintUsageDeclaration&&listener.exitConstraintUsageDeclaration(this)}accept(visitor){return visitor.visitConstraintUsageDeclaration?visitor.visitConstraintUsageDeclaration(this):visitor.visitChildren(this)}},RequirementDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}REQUIREMENT(){return this.getToken(SysMLv2Parser.REQUIREMENT,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementDefinition}enterRule(listener){listener.enterRequirementDefinition&&listener.enterRequirementDefinition(this)}exitRule(listener){listener.exitRequirementDefinition&&listener.exitRequirementDefinition(this)}accept(visitor){return visitor.visitRequirementDefinition?visitor.visitRequirementDefinition(this):visitor.visitChildren(this)}},RequirementBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}requirementBodyItem(i){return i===void 0?this.getRuleContexts(RequirementBodyItemContext):this.getRuleContext(i,RequirementBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementBody}enterRule(listener){listener.enterRequirementBody&&listener.enterRequirementBody(this)}exitRule(listener){listener.exitRequirementBody&&listener.exitRequirementBody(this)}accept(visitor){return visitor.visitRequirementBody?visitor.visitRequirementBody(this):visitor.visitChildren(this)}},RequirementBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBodyItem(){return this.getRuleContext(0,DefinitionBodyItemContext)}subjectMember(){return this.getRuleContext(0,SubjectMemberContext)}requirementConstraintMember(){return this.getRuleContext(0,RequirementConstraintMemberContext)}framedConcernMember(){return this.getRuleContext(0,FramedConcernMemberContext)}requirementVerificationMember(){return this.getRuleContext(0,RequirementVerificationMemberContext)}actorMember(){return this.getRuleContext(0,ActorMemberContext)}stakeholderMember(){return this.getRuleContext(0,StakeholderMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementBodyItem}enterRule(listener){listener.enterRequirementBodyItem&&listener.enterRequirementBodyItem(this)}exitRule(listener){listener.exitRequirementBodyItem&&listener.exitRequirementBodyItem(this)}accept(visitor){return visitor.visitRequirementBodyItem?visitor.visitRequirementBodyItem(this):visitor.visitChildren(this)}},SubjectMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}subjectUsage(){return this.getRuleContext(0,SubjectUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_subjectMember}enterRule(listener){listener.enterSubjectMember&&listener.enterSubjectMember(this)}exitRule(listener){listener.exitSubjectMember&&listener.exitSubjectMember(this)}accept(visitor){return visitor.visitSubjectMember?visitor.visitSubjectMember(this):visitor.visitChildren(this)}},SubjectUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SUBJECT(){return this.getToken(SysMLv2Parser.SUBJECT,0)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_subjectUsage}enterRule(listener){listener.enterSubjectUsage&&listener.enterSubjectUsage(this)}exitRule(listener){listener.exitSubjectUsage&&listener.exitSubjectUsage(this)}accept(visitor){return visitor.visitSubjectUsage?visitor.visitSubjectUsage(this):visitor.visitChildren(this)}},RequirementConstraintMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}requirementKind(){return this.getRuleContext(0,RequirementKindContext)}requirementConstraintUsage(){return this.getRuleContext(0,RequirementConstraintUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementConstraintMember}enterRule(listener){listener.enterRequirementConstraintMember&&listener.enterRequirementConstraintMember(this)}exitRule(listener){listener.exitRequirementConstraintMember&&listener.exitRequirementConstraintMember(this)}accept(visitor){return visitor.visitRequirementConstraintMember?visitor.visitRequirementConstraintMember(this):visitor.visitChildren(this)}},RequirementKindContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ASSUME(){return this.getToken(SysMLv2Parser.ASSUME,0)}REQUIRE(){return this.getToken(SysMLv2Parser.REQUIRE,0)}get ruleIndex(){return SysMLv2Parser.RULE_requirementKind}enterRule(listener){listener.enterRequirementKind&&listener.enterRequirementKind(this)}exitRule(listener){listener.exitRequirementKind&&listener.exitRequirementKind(this)}accept(visitor){return visitor.visitRequirementKind?visitor.visitRequirementKind(this):visitor.visitChildren(this)}},RequirementConstraintUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}CONSTRAINT(){return this.getToken(SysMLv2Parser.CONSTRAINT,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementConstraintUsage}enterRule(listener){listener.enterRequirementConstraintUsage&&listener.enterRequirementConstraintUsage(this)}exitRule(listener){listener.exitRequirementConstraintUsage&&listener.exitRequirementConstraintUsage(this)}accept(visitor){return visitor.visitRequirementConstraintUsage?visitor.visitRequirementConstraintUsage(this):visitor.visitChildren(this)}},FramedConcernMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}FRAME(){return this.getToken(SysMLv2Parser.FRAME,0)}framedConcernUsage(){return this.getRuleContext(0,FramedConcernUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_framedConcernMember}enterRule(listener){listener.enterFramedConcernMember&&listener.enterFramedConcernMember(this)}exitRule(listener){listener.exitFramedConcernMember&&listener.exitFramedConcernMember(this)}accept(visitor){return visitor.visitFramedConcernMember?visitor.visitFramedConcernMember(this):visitor.visitChildren(this)}},FramedConcernUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}calculationUsageDeclaration(){return this.getRuleContext(0,CalculationUsageDeclarationContext)}CONCERN(){return this.getToken(SysMLv2Parser.CONCERN,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_framedConcernUsage}enterRule(listener){listener.enterFramedConcernUsage&&listener.enterFramedConcernUsage(this)}exitRule(listener){listener.exitFramedConcernUsage&&listener.exitFramedConcernUsage(this)}accept(visitor){return visitor.visitFramedConcernUsage?visitor.visitFramedConcernUsage(this):visitor.visitChildren(this)}},ActorMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}actorUsage(){return this.getRuleContext(0,ActorUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_actorMember}enterRule(listener){listener.enterActorMember&&listener.enterActorMember(this)}exitRule(listener){listener.exitActorMember&&listener.exitActorMember(this)}accept(visitor){return visitor.visitActorMember?visitor.visitActorMember(this):visitor.visitChildren(this)}},ActorUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ACTOR(){return this.getToken(SysMLv2Parser.ACTOR,0)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_actorUsage}enterRule(listener){listener.enterActorUsage&&listener.enterActorUsage(this)}exitRule(listener){listener.exitActorUsage&&listener.exitActorUsage(this)}accept(visitor){return visitor.visitActorUsage?visitor.visitActorUsage(this):visitor.visitChildren(this)}},StakeholderMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}stakeholderUsage(){return this.getRuleContext(0,StakeholderUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_stakeholderMember}enterRule(listener){listener.enterStakeholderMember&&listener.enterStakeholderMember(this)}exitRule(listener){listener.exitStakeholderMember&&listener.exitStakeholderMember(this)}accept(visitor){return visitor.visitStakeholderMember?visitor.visitStakeholderMember(this):visitor.visitChildren(this)}},StakeholderUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}STAKEHOLDER(){return this.getToken(SysMLv2Parser.STAKEHOLDER,0)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_stakeholderUsage}enterRule(listener){listener.enterStakeholderUsage&&listener.enterStakeholderUsage(this)}exitRule(listener){listener.exitStakeholderUsage&&listener.exitStakeholderUsage(this)}accept(visitor){return visitor.visitStakeholderUsage?visitor.visitStakeholderUsage(this):visitor.visitChildren(this)}},RequirementUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}REQUIREMENT(){return this.getToken(SysMLv2Parser.REQUIREMENT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementUsage}enterRule(listener){listener.enterRequirementUsage&&listener.enterRequirementUsage(this)}exitRule(listener){listener.exitRequirementUsage&&listener.exitRequirementUsage(this)}accept(visitor){return visitor.visitRequirementUsage?visitor.visitRequirementUsage(this):visitor.visitChildren(this)}},SatisfyRequirementUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}SATISFY(){return this.getToken(SysMLv2Parser.SATISFY,0)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}REQUIREMENT(){return this.getToken(SysMLv2Parser.REQUIREMENT,0)}ASSERT(){return this.getToken(SysMLv2Parser.ASSERT,0)}NOT(){return this.getToken(SysMLv2Parser.NOT,0)}valuePart(){return this.getRuleContext(0,ValuePartContext)}BY(){return this.getToken(SysMLv2Parser.BY,0)}satisfactionSubjectMember(){return this.getRuleContext(0,SatisfactionSubjectMemberContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfyRequirementUsage}enterRule(listener){listener.enterSatisfyRequirementUsage&&listener.enterSatisfyRequirementUsage(this)}exitRule(listener){listener.exitSatisfyRequirementUsage&&listener.exitSatisfyRequirementUsage(this)}accept(visitor){return visitor.visitSatisfyRequirementUsage?visitor.visitSatisfyRequirementUsage(this):visitor.visitChildren(this)}},SatisfactionSubjectMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}satisfactionParameter(){return this.getRuleContext(0,SatisfactionParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfactionSubjectMember}enterRule(listener){listener.enterSatisfactionSubjectMember&&listener.enterSatisfactionSubjectMember(this)}exitRule(listener){listener.exitSatisfactionSubjectMember&&listener.exitSatisfactionSubjectMember(this)}accept(visitor){return visitor.visitSatisfactionSubjectMember?visitor.visitSatisfactionSubjectMember(this):visitor.visitChildren(this)}},SatisfactionParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}satisfactionFeatureValue(){return this.getRuleContext(0,SatisfactionFeatureValueContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfactionParameter}enterRule(listener){listener.enterSatisfactionParameter&&listener.enterSatisfactionParameter(this)}exitRule(listener){listener.exitSatisfactionParameter&&listener.exitSatisfactionParameter(this)}accept(visitor){return visitor.visitSatisfactionParameter?visitor.visitSatisfactionParameter(this):visitor.visitChildren(this)}},SatisfactionFeatureValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}satisfactionReferenceExpression(){return this.getRuleContext(0,SatisfactionReferenceExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfactionFeatureValue}enterRule(listener){listener.enterSatisfactionFeatureValue&&listener.enterSatisfactionFeatureValue(this)}exitRule(listener){listener.exitSatisfactionFeatureValue&&listener.exitSatisfactionFeatureValue(this)}accept(visitor){return visitor.visitSatisfactionFeatureValue?visitor.visitSatisfactionFeatureValue(this):visitor.visitChildren(this)}},SatisfactionReferenceExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureChainMember(){return this.getRuleContext(0,FeatureChainMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfactionReferenceExpression}enterRule(listener){listener.enterSatisfactionReferenceExpression&&listener.enterSatisfactionReferenceExpression(this)}exitRule(listener){listener.exitSatisfactionReferenceExpression&&listener.exitSatisfactionReferenceExpression(this)}accept(visitor){return visitor.visitSatisfactionReferenceExpression?visitor.visitSatisfactionReferenceExpression(this):visitor.visitChildren(this)}},ConcernDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CONCERN(){return this.getToken(SysMLv2Parser.CONCERN,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_concernDefinition}enterRule(listener){listener.enterConcernDefinition&&listener.enterConcernDefinition(this)}exitRule(listener){listener.exitConcernDefinition&&listener.exitConcernDefinition(this)}accept(visitor){return visitor.visitConcernDefinition?visitor.visitConcernDefinition(this):visitor.visitChildren(this)}},ConcernUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}CONCERN(){return this.getToken(SysMLv2Parser.CONCERN,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_concernUsage}enterRule(listener){listener.enterConcernUsage&&listener.enterConcernUsage(this)}exitRule(listener){listener.exitConcernUsage&&listener.exitConcernUsage(this)}accept(visitor){return visitor.visitConcernUsage?visitor.visitConcernUsage(this):visitor.visitChildren(this)}},CaseDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_caseDefinition}enterRule(listener){listener.enterCaseDefinition&&listener.enterCaseDefinition(this)}exitRule(listener){listener.exitCaseDefinition&&listener.exitCaseDefinition(this)}accept(visitor){return visitor.visitCaseDefinition?visitor.visitCaseDefinition(this):visitor.visitChildren(this)}},CaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_caseUsage}enterRule(listener){listener.enterCaseUsage&&listener.enterCaseUsage(this)}exitRule(listener){listener.exitCaseUsage&&listener.exitCaseUsage(this)}accept(visitor){return visitor.visitCaseUsage?visitor.visitCaseUsage(this):visitor.visitChildren(this)}},CaseBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}caseBodyItem(i){return i===void 0?this.getRuleContexts(CaseBodyItemContext):this.getRuleContext(i,CaseBodyItemContext)}resultExpressionMember(){return this.getRuleContext(0,ResultExpressionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_caseBody}enterRule(listener){listener.enterCaseBody&&listener.enterCaseBody(this)}exitRule(listener){listener.exitCaseBody&&listener.exitCaseBody(this)}accept(visitor){return visitor.visitCaseBody?visitor.visitCaseBody(this):visitor.visitChildren(this)}},CaseBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionBodyItem(){return this.getRuleContext(0,ActionBodyItemContext)}returnParameterMember(){return this.getRuleContext(0,ReturnParameterMemberContext)}subjectMember(){return this.getRuleContext(0,SubjectMemberContext)}actorMember(){return this.getRuleContext(0,ActorMemberContext)}objectiveMember(){return this.getRuleContext(0,ObjectiveMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_caseBodyItem}enterRule(listener){listener.enterCaseBodyItem&&listener.enterCaseBodyItem(this)}exitRule(listener){listener.exitCaseBodyItem&&listener.exitCaseBodyItem(this)}accept(visitor){return visitor.visitCaseBodyItem?visitor.visitCaseBodyItem(this):visitor.visitChildren(this)}},ObjectiveMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}OBJECTIVE(){return this.getToken(SysMLv2Parser.OBJECTIVE,0)}objectiveRequirementUsage(){return this.getRuleContext(0,ObjectiveRequirementUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_objectiveMember}enterRule(listener){listener.enterObjectiveMember&&listener.enterObjectiveMember(this)}exitRule(listener){listener.exitObjectiveMember&&listener.exitObjectiveMember(this)}accept(visitor){return visitor.visitObjectiveMember?visitor.visitObjectiveMember(this):visitor.visitChildren(this)}},ObjectiveRequirementUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_objectiveRequirementUsage}enterRule(listener){listener.enterObjectiveRequirementUsage&&listener.enterObjectiveRequirementUsage(this)}exitRule(listener){listener.exitObjectiveRequirementUsage&&listener.exitObjectiveRequirementUsage(this)}accept(visitor){return visitor.visitObjectiveRequirementUsage?visitor.visitObjectiveRequirementUsage(this):visitor.visitChildren(this)}},AnalysisCaseDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}ANALYSIS(){return this.getToken(SysMLv2Parser.ANALYSIS,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_analysisCaseDefinition}enterRule(listener){listener.enterAnalysisCaseDefinition&&listener.enterAnalysisCaseDefinition(this)}exitRule(listener){listener.exitAnalysisCaseDefinition&&listener.exitAnalysisCaseDefinition(this)}accept(visitor){return visitor.visitAnalysisCaseDefinition?visitor.visitAnalysisCaseDefinition(this):visitor.visitChildren(this)}},AnalysisCaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}ANALYSIS(){return this.getToken(SysMLv2Parser.ANALYSIS,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_analysisCaseUsage}enterRule(listener){listener.enterAnalysisCaseUsage&&listener.enterAnalysisCaseUsage(this)}exitRule(listener){listener.exitAnalysisCaseUsage&&listener.exitAnalysisCaseUsage(this)}accept(visitor){return visitor.visitAnalysisCaseUsage?visitor.visitAnalysisCaseUsage(this):visitor.visitChildren(this)}},VerificationCaseDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}VERIFICATION(){return this.getToken(SysMLv2Parser.VERIFICATION,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_verificationCaseDefinition}enterRule(listener){listener.enterVerificationCaseDefinition&&listener.enterVerificationCaseDefinition(this)}exitRule(listener){listener.exitVerificationCaseDefinition&&listener.exitVerificationCaseDefinition(this)}accept(visitor){return visitor.visitVerificationCaseDefinition?visitor.visitVerificationCaseDefinition(this):visitor.visitChildren(this)}},VerificationCaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}VERIFICATION(){return this.getToken(SysMLv2Parser.VERIFICATION,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_verificationCaseUsage}enterRule(listener){listener.enterVerificationCaseUsage&&listener.enterVerificationCaseUsage(this)}exitRule(listener){listener.exitVerificationCaseUsage&&listener.exitVerificationCaseUsage(this)}accept(visitor){return visitor.visitVerificationCaseUsage?visitor.visitVerificationCaseUsage(this):visitor.visitChildren(this)}},RequirementVerificationMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}VERIFY(){return this.getToken(SysMLv2Parser.VERIFY,0)}requirementVerificationUsage(){return this.getRuleContext(0,RequirementVerificationUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementVerificationMember}enterRule(listener){listener.enterRequirementVerificationMember&&listener.enterRequirementVerificationMember(this)}exitRule(listener){listener.exitRequirementVerificationMember&&listener.exitRequirementVerificationMember(this)}accept(visitor){return visitor.visitRequirementVerificationMember?visitor.visitRequirementVerificationMember(this):visitor.visitChildren(this)}},RequirementVerificationUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}featureSpecialization(i){return i===void 0?this.getRuleContexts(FeatureSpecializationContext):this.getRuleContext(i,FeatureSpecializationContext)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}REQUIREMENT(){return this.getToken(SysMLv2Parser.REQUIREMENT,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementVerificationUsage}enterRule(listener){listener.enterRequirementVerificationUsage&&listener.enterRequirementVerificationUsage(this)}exitRule(listener){listener.exitRequirementVerificationUsage&&listener.exitRequirementVerificationUsage(this)}accept(visitor){return visitor.visitRequirementVerificationUsage?visitor.visitRequirementVerificationUsage(this):visitor.visitChildren(this)}},UseCaseDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}USE(){return this.getToken(SysMLv2Parser.USE,0)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_useCaseDefinition}enterRule(listener){listener.enterUseCaseDefinition&&listener.enterUseCaseDefinition(this)}exitRule(listener){listener.exitUseCaseDefinition&&listener.exitUseCaseDefinition(this)}accept(visitor){return visitor.visitUseCaseDefinition?visitor.visitUseCaseDefinition(this):visitor.visitChildren(this)}},UseCaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}USE(){return this.getToken(SysMLv2Parser.USE,0)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_useCaseUsage}enterRule(listener){listener.enterUseCaseUsage&&listener.enterUseCaseUsage(this)}exitRule(listener){listener.exitUseCaseUsage&&listener.exitUseCaseUsage(this)}accept(visitor){return visitor.visitUseCaseUsage?visitor.visitUseCaseUsage(this):visitor.visitChildren(this)}},IncludeUseCaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}INCLUDE(){return this.getToken(SysMLv2Parser.INCLUDE,0)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}USE(){return this.getToken(SysMLv2Parser.USE,0)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}valuePart(){return this.getRuleContext(0,ValuePartContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_includeUseCaseUsage}enterRule(listener){listener.enterIncludeUseCaseUsage&&listener.enterIncludeUseCaseUsage(this)}exitRule(listener){listener.exitIncludeUseCaseUsage&&listener.exitIncludeUseCaseUsage(this)}accept(visitor){return visitor.visitIncludeUseCaseUsage?visitor.visitIncludeUseCaseUsage(this):visitor.visitChildren(this)}},ViewDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}VIEW(){return this.getToken(SysMLv2Parser.VIEW,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}viewDefinitionBody(){return this.getRuleContext(0,ViewDefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewDefinition}enterRule(listener){listener.enterViewDefinition&&listener.enterViewDefinition(this)}exitRule(listener){listener.exitViewDefinition&&listener.exitViewDefinition(this)}accept(visitor){return visitor.visitViewDefinition?visitor.visitViewDefinition(this):visitor.visitChildren(this)}},ViewDefinitionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}viewDefinitionBodyItem(i){return i===void 0?this.getRuleContexts(ViewDefinitionBodyItemContext):this.getRuleContext(i,ViewDefinitionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewDefinitionBody}enterRule(listener){listener.enterViewDefinitionBody&&listener.enterViewDefinitionBody(this)}exitRule(listener){listener.exitViewDefinitionBody&&listener.exitViewDefinitionBody(this)}accept(visitor){return visitor.visitViewDefinitionBody?visitor.visitViewDefinitionBody(this):visitor.visitChildren(this)}},ViewDefinitionBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBodyItem(){return this.getRuleContext(0,DefinitionBodyItemContext)}elementFilterMember(){return this.getRuleContext(0,ElementFilterMemberContext)}viewRenderingMember(){return this.getRuleContext(0,ViewRenderingMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewDefinitionBodyItem}enterRule(listener){listener.enterViewDefinitionBodyItem&&listener.enterViewDefinitionBodyItem(this)}exitRule(listener){listener.exitViewDefinitionBodyItem&&listener.exitViewDefinitionBodyItem(this)}accept(visitor){return visitor.visitViewDefinitionBodyItem?visitor.visitViewDefinitionBodyItem(this):visitor.visitChildren(this)}},ViewRenderingMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}RENDER(){return this.getToken(SysMLv2Parser.RENDER,0)}viewRenderingUsage(){return this.getRuleContext(0,ViewRenderingUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewRenderingMember}enterRule(listener){listener.enterViewRenderingMember&&listener.enterViewRenderingMember(this)}exitRule(listener){listener.exitViewRenderingMember&&listener.exitViewRenderingMember(this)}accept(visitor){return visitor.visitViewRenderingMember?visitor.visitViewRenderingMember(this):visitor.visitChildren(this)}},ViewRenderingUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usage(){return this.getRuleContext(0,UsageContext)}RENDERING(){return this.getToken(SysMLv2Parser.RENDERING,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewRenderingUsage}enterRule(listener){listener.enterViewRenderingUsage&&listener.enterViewRenderingUsage(this)}exitRule(listener){listener.exitViewRenderingUsage&&listener.exitViewRenderingUsage(this)}accept(visitor){return visitor.visitViewRenderingUsage?visitor.visitViewRenderingUsage(this):visitor.visitChildren(this)}},ViewUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}VIEW(){return this.getToken(SysMLv2Parser.VIEW,0)}viewBody(){return this.getRuleContext(0,ViewBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewUsage}enterRule(listener){listener.enterViewUsage&&listener.enterViewUsage(this)}exitRule(listener){listener.exitViewUsage&&listener.exitViewUsage(this)}accept(visitor){return visitor.visitViewUsage?visitor.visitViewUsage(this):visitor.visitChildren(this)}},ViewBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}viewBodyItem(i){return i===void 0?this.getRuleContexts(ViewBodyItemContext):this.getRuleContext(i,ViewBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewBody}enterRule(listener){listener.enterViewBody&&listener.enterViewBody(this)}exitRule(listener){listener.exitViewBody&&listener.exitViewBody(this)}accept(visitor){return visitor.visitViewBody?visitor.visitViewBody(this):visitor.visitChildren(this)}},ViewBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBodyItem(){return this.getRuleContext(0,DefinitionBodyItemContext)}elementFilterMember(){return this.getRuleContext(0,ElementFilterMemberContext)}viewRenderingMember(){return this.getRuleContext(0,ViewRenderingMemberContext)}expose(){return this.getRuleContext(0,ExposeContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewBodyItem}enterRule(listener){listener.enterViewBodyItem&&listener.enterViewBodyItem(this)}exitRule(listener){listener.exitViewBodyItem&&listener.exitViewBodyItem(this)}accept(visitor){return visitor.visitViewBodyItem?visitor.visitViewBodyItem(this):visitor.visitChildren(this)}},ExposeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}EXPOSE(){return this.getToken(SysMLv2Parser.EXPOSE,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}membershipExpose(){return this.getRuleContext(0,MembershipExposeContext)}namespaceExpose(){return this.getRuleContext(0,NamespaceExposeContext)}get ruleIndex(){return SysMLv2Parser.RULE_expose}enterRule(listener){listener.enterExpose&&listener.enterExpose(this)}exitRule(listener){listener.exitExpose&&listener.exitExpose(this)}accept(visitor){return visitor.visitExpose?visitor.visitExpose(this):visitor.visitChildren(this)}},MembershipExposeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}membershipImport(){return this.getRuleContext(0,MembershipImportContext)}get ruleIndex(){return SysMLv2Parser.RULE_membershipExpose}enterRule(listener){listener.enterMembershipExpose&&listener.enterMembershipExpose(this)}exitRule(listener){listener.exitMembershipExpose&&listener.exitMembershipExpose(this)}accept(visitor){return visitor.visitMembershipExpose?visitor.visitMembershipExpose(this):visitor.visitChildren(this)}},NamespaceExposeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namespaceImport(){return this.getRuleContext(0,NamespaceImportContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceExpose}enterRule(listener){listener.enterNamespaceExpose&&listener.enterNamespaceExpose(this)}exitRule(listener){listener.exitNamespaceExpose&&listener.exitNamespaceExpose(this)}accept(visitor){return visitor.visitNamespaceExpose?visitor.visitNamespaceExpose(this):visitor.visitChildren(this)}},ViewpointDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}VIEWPOINT(){return this.getToken(SysMLv2Parser.VIEWPOINT,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewpointDefinition}enterRule(listener){listener.enterViewpointDefinition&&listener.enterViewpointDefinition(this)}exitRule(listener){listener.exitViewpointDefinition&&listener.exitViewpointDefinition(this)}accept(visitor){return visitor.visitViewpointDefinition?visitor.visitViewpointDefinition(this):visitor.visitChildren(this)}},ViewpointUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}VIEWPOINT(){return this.getToken(SysMLv2Parser.VIEWPOINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewpointUsage}enterRule(listener){listener.enterViewpointUsage&&listener.enterViewpointUsage(this)}exitRule(listener){listener.exitViewpointUsage&&listener.exitViewpointUsage(this)}accept(visitor){return visitor.visitViewpointUsage?visitor.visitViewpointUsage(this):visitor.visitChildren(this)}},RenderingDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}RENDERING(){return this.getToken(SysMLv2Parser.RENDERING,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_renderingDefinition}enterRule(listener){listener.enterRenderingDefinition&&listener.enterRenderingDefinition(this)}exitRule(listener){listener.exitRenderingDefinition&&listener.exitRenderingDefinition(this)}accept(visitor){return visitor.visitRenderingDefinition?visitor.visitRenderingDefinition(this):visitor.visitChildren(this)}},RenderingUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}RENDERING(){return this.getToken(SysMLv2Parser.RENDERING,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_renderingUsage}enterRule(listener){listener.enterRenderingUsage&&listener.enterRenderingUsage(this)}exitRule(listener){listener.exitRenderingUsage&&listener.exitRenderingUsage(this)}accept(visitor){return visitor.visitRenderingUsage?visitor.visitRenderingUsage(this):visitor.visitChildren(this)}},MetadataDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}METADATA(){return this.getToken(SysMLv2Parser.METADATA,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataDefinition}enterRule(listener){listener.enterMetadataDefinition&&listener.enterMetadataDefinition(this)}exitRule(listener){listener.exitMetadataDefinition&&listener.exitMetadataDefinition(this)}accept(visitor){return visitor.visitMetadataDefinition?visitor.visitMetadataDefinition(this):visitor.visitChildren(this)}},PrefixMetadataUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_prefixMetadataUsage}enterRule(listener){listener.enterPrefixMetadataUsage&&listener.enterPrefixMetadataUsage(this)}exitRule(listener){listener.exitPrefixMetadataUsage&&listener.exitPrefixMetadataUsage(this)}accept(visitor){return visitor.visitPrefixMetadataUsage?visitor.visitPrefixMetadataUsage(this):visitor.visitChildren(this)}},MetadataBodyUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}metadataBodyUsage(){return this.getRuleContext(0,MetadataBodyUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyUsageMember}enterRule(listener){listener.enterMetadataBodyUsageMember&&listener.enterMetadataBodyUsageMember(this)}exitRule(listener){listener.exitMetadataBodyUsageMember&&listener.exitMetadataBodyUsageMember(this)}accept(visitor){return visitor.visitMetadataBodyUsageMember?visitor.visitMetadataBodyUsageMember(this):visitor.visitChildren(this)}},MetadataBodyUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedRedefinition(){return this.getRuleContext(0,OwnedRedefinitionContext)}metadataBody(){return this.getRuleContext(0,MetadataBodyContext)}REF(){return this.getToken(SysMLv2Parser.REF,0)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}COLON_GT_GT(){return this.getToken(SysMLv2Parser.COLON_GT_GT,0)}REDEFINES(){return this.getToken(SysMLv2Parser.REDEFINES,0)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyUsage}enterRule(listener){listener.enterMetadataBodyUsage&&listener.enterMetadataBodyUsage(this)}exitRule(listener){listener.exitMetadataBodyUsage&&listener.exitMetadataBodyUsage(this)}accept(visitor){return visitor.visitMetadataBodyUsage?visitor.visitMetadataBodyUsage(this):visitor.visitChildren(this)}},ExtendedDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}basicDefinitionPrefix(){return this.getRuleContext(0,BasicDefinitionPrefixContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_extendedDefinition}enterRule(listener){listener.enterExtendedDefinition&&listener.enterExtendedDefinition(this)}exitRule(listener){listener.exitExtendedDefinition&&listener.exitExtendedDefinition(this)}accept(visitor){return visitor.visitExtendedDefinition?visitor.visitExtendedDefinition(this):visitor.visitChildren(this)}},ExtendedUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}unextendedUsagePrefix(){return this.getRuleContext(0,UnextendedUsagePrefixContext)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_extendedUsage}enterRule(listener){listener.enterExtendedUsage&&listener.enterExtendedUsage(this)}exitRule(listener){listener.exitExtendedUsage&&listener.exitExtendedUsage(this)}accept(visitor){return visitor.visitExtendedUsage?visitor.visitExtendedUsage(this):visitor.visitChildren(this)}},FilterPackageImportDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}membershipImport(){return this.getRuleContext(0,MembershipImportContext)}namespaceImportDirect(){return this.getRuleContext(0,NamespaceImportDirectContext)}get ruleIndex(){return SysMLv2Parser.RULE_filterPackageImportDeclaration}enterRule(listener){listener.enterFilterPackageImportDeclaration&&listener.enterFilterPackageImportDeclaration(this)}exitRule(listener){listener.exitFilterPackageImportDeclaration&&listener.exitFilterPackageImportDeclaration(this)}accept(visitor){return visitor.visitFilterPackageImportDeclaration?visitor.visitFilterPackageImportDeclaration(this):visitor.visitChildren(this)}},NamespaceImportDirectContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}COLON_COLON(i){return i===void 0?this.getTokens(SysMLv2Parser.COLON_COLON):this.getToken(SysMLv2Parser.COLON_COLON,i)}STAR(){return this.getToken(SysMLv2Parser.STAR,0)}STAR_STAR(){return this.getToken(SysMLv2Parser.STAR_STAR,0)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceImportDirect}enterRule(listener){listener.enterNamespaceImportDirect&&listener.enterNamespaceImportDirect(this)}exitRule(listener){listener.exitNamespaceImportDirect&&listener.exitNamespaceImportDirect(this)}accept(visitor){return visitor.visitNamespaceImportDirect?visitor.visitNamespaceImportDirect(this):visitor.visitChildren(this)}},CalculationUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationUsageDeclaration}enterRule(listener){listener.enterCalculationUsageDeclaration&&listener.enterCalculationUsageDeclaration(this)}exitRule(listener){listener.exitCalculationUsageDeclaration&&listener.exitCalculationUsageDeclaration(this)}accept(visitor){return visitor.visitCalculationUsageDeclaration?visitor.visitCalculationUsageDeclaration(this):visitor.visitChildren(this)}},EmptyActionUsage_Context=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_emptyActionUsage_}enterRule(listener){listener.enterEmptyActionUsage_&&listener.enterEmptyActionUsage_(this)}exitRule(listener){listener.exitEmptyActionUsage_&&listener.exitEmptyActionUsage_(this)}accept(visitor){return visitor.visitEmptyActionUsage_?visitor.visitEmptyActionUsage_(this):visitor.visitChildren(this)}},EmptyFeature_Context=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_emptyFeature_}enterRule(listener){listener.enterEmptyFeature_&&listener.enterEmptyFeature_(this)}exitRule(listener){listener.exitEmptyFeature_&&listener.exitEmptyFeature_(this)}accept(visitor){return visitor.visitEmptyFeature_?visitor.visitEmptyFeature_(this):visitor.visitChildren(this)}},EmptyMultiplicity_Context=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_emptyMultiplicity_}enterRule(listener){listener.enterEmptyMultiplicity_&&listener.enterEmptyMultiplicity_(this)}exitRule(listener){listener.exitEmptyMultiplicity_&&listener.exitEmptyMultiplicity_(this)}accept(visitor){return visitor.visitEmptyMultiplicity_?visitor.visitEmptyMultiplicity_(this):visitor.visitChildren(this)}},EmptyUsage_Context=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_emptyUsage_}enterRule(listener){listener.enterEmptyUsage_&&listener.enterEmptyUsage_(this)}exitRule(listener){listener.exitEmptyUsage_&&listener.exitEmptyUsage_(this)}accept(visitor){return visitor.visitEmptyUsage_?visitor.visitEmptyUsage_(this):visitor.visitChildren(this)}},FilterPackageImportContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IDENTIFIER(){return this.getToken(SysMLv2Parser.IDENTIFIER,0)}get ruleIndex(){return SysMLv2Parser.RULE_filterPackageImport}enterRule(listener){listener.enterFilterPackageImport&&listener.enterFilterPackageImport(this)}exitRule(listener){listener.exitFilterPackageImport&&listener.exitFilterPackageImport(this)}accept(visitor){return visitor.visitFilterPackageImport?visitor.visitFilterPackageImport(this):visitor.visitChildren(this)}},NonFeatureChainPrimaryExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IDENTIFIER(){return this.getToken(SysMLv2Parser.IDENTIFIER,0)}get ruleIndex(){return SysMLv2Parser.RULE_nonFeatureChainPrimaryExpression}enterRule(listener){listener.enterNonFeatureChainPrimaryExpression&&listener.enterNonFeatureChainPrimaryExpression(this)}exitRule(listener){listener.exitNonFeatureChainPrimaryExpression&&listener.exitNonFeatureChainPrimaryExpression(this)}accept(visitor){return visitor.visitNonFeatureChainPrimaryExpression?visitor.visitNonFeatureChainPrimaryExpression(this):visitor.visitChildren(this)}},PortConjugationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_portConjugation}enterRule(listener){listener.enterPortConjugation&&listener.enterPortConjugation(this)}exitRule(listener){listener.exitPortConjugation&&listener.exitPortConjugation(this)}accept(visitor){return visitor.visitPortConjugation?visitor.visitPortConjugation(this):visitor.visitChildren(this)}};var _loaded=!1,_everLoaded=!1,_dfaStatesCleaned=!1;function isDfaPreSeeded(){return _loaded}function hasStaleDfaStates(){return _everLoaded&&!_dfaStatesCleaned}function markDfaNotPreSeeded(){_loaded=!1}function clearAllDFAStates(){let dfas=SysMLv2Parser.decisionsToDFA;for(let dfa of dfas)dfa.s0&&(dfa.isPrecedenceDfa?dfa.s0=DFAState.fromState(-1):dfa.s0=void 0,dfa.states&&typeof dfa.states.clear=="function"&&dfa.states.clear());_dfaStatesCleaned=!0}var SysMLErrorListener=class extends BaseErrorListener{errors=[];syntaxError(recognizer,offendingSymbol,line,charPositionInLine,msg,_e){let token=offendingSymbol,length=token?.text?.length??1;this.errors.push({line:Math.max(0,line-1),column:charPositionInLine,message:msg,offendingSymbol:token,length})}getErrors(){return this.errors}clear(){this.errors=[]}hasErrors(){return this.errors.length>0}};function parseDocument(text){let result=parseDocumentCore(text);return result.errors.length>0&&hasStaleDfaStates()?(markDfaNotPreSeeded(),clearAllDFAStates(),parseDocumentLL(text,result.lexer,result.tokenStream)):(isDfaPreSeeded()&&markDfaNotPreSeeded(),result)}function parseDocumentCore(text){let inputStream=CharStream.fromString(text),lexer=new SysMLv2Lexer(inputStream),tokenStream=new CommonTokenStream(lexer),lexStart=Date.now();tokenStream.fill();let lexMs=Date.now()-lexStart,parser=new SysMLv2Parser(tokenStream),errorListener=new SysMLErrorListener;lexer.removeErrorListeners(),parser.removeErrorListeners();let tree=null,parseStart=Date.now();try{parser.interpreter.predictionMode=PredictionMode.SLL,parser.errorHandler=new BailErrorStrategy,tree=parser.rootNamespace()}catch{tree=null}if(!tree){tokenStream.seek(0),parser.reset(),parser.interpreter.predictionMode=PredictionMode.LL,parser.errorHandler=new DefaultErrorStrategy,parser.addErrorListener(errorListener);try{tree=parser.rootNamespace()}catch{}}let parseMs=Date.now()-parseStart;return{tree,tokenStream,parser,lexer,errors:errorListener.getErrors(),timing:{lexMs,parseMs}}}function parseDocumentLL(text,prevLexer,prevTokenStream){let lexer,tokenStream,lexMs;if(prevLexer&&prevTokenStream)lexer=prevLexer,tokenStream=prevTokenStream,tokenStream.seek(0),lexMs=0;else{let inputStream=CharStream.fromString(text);lexer=new SysMLv2Lexer(inputStream),tokenStream=new CommonTokenStream(lexer);let lexStart=Date.now();tokenStream.fill(),lexMs=Date.now()-lexStart}let parser=new SysMLv2Parser(tokenStream),errorListener=new SysMLErrorListener;lexer.removeErrorListeners(),parser.removeErrorListeners(),parser.addErrorListener(errorListener);let tree=null,parseStart=Date.now();parser.interpreter.predictionMode=PredictionMode.LL,parser.errorHandler=new DefaultErrorStrategy;try{tree=parser.rootNamespace()}catch{}let parseMs=Date.now()-parseStart;return{tree,tokenStream,parser,lexer,errors:errorListener.getErrors(),timing:{lexMs,parseMs}}}var _batchBailStrategy=new BailErrorStrategy,_batchDefaultStrategy=new DefaultErrorStrategy;var import_node=__toESM(require_node3());function isIdentPart(c){return c>=65&&c<=90||c>=97&&c<=122||c>=48&&c<=57||c===95}function stripComments(text){return text.replace(/\/\*[\s\S]*?\*\//g,m2=>m2.replace(/[^\n]/g," ")).replace(/\/\/[^\n]*/g,m2=>" ".repeat(m2.length))}var index,typeIndex;function resolveLibraryType(name){if(!typeIndex)return;let exact=typeIndex.get(name);if(exact)return exact;if(name.includes("::")){let member=name.split("::").pop();return typeIndex.get(member)}}function getLibraryPackageNames(){return index?Array.from(index.keys()):[]}function tokenToPosition(token){return{line:(token.line??1)-1,character:token.column??0}}function tokenToRange(token){let start=tokenToPosition(token),length=token.text?.length??1;return{start,end:{line:start.line,character:start.character+length}}}function contextToRange(ctx2){let startToken=ctx2.start,stopToken=ctx2.stop??ctx2.start;if(!startToken)return{start:{line:0,character:0},end:{line:0,character:0}};let start={line:(startToken.line??1)-1,character:startToken.column??0},end=stopToken?{line:(stopToken.line??1)-1,character:(stopToken.column??0)+(stopToken.text?.length??1)}:{line:start.line,character:start.character+1};return{start,end}}var SYSML_KEYWORDS_ARRAY=SysMLv2Lexer.literalNames.filter(n2=>n2!=null).map(n2=>n2.replace(/^'|'$/g,"")).filter(n2=>/^[a-z]+$/.test(n2)).sort(),SYSML_KEYWORDS=new Set(SYSML_KEYWORDS_ARRAY);var Scope=class{constructor(id,parent=null){this.id=id;this.parent=parent}id;parent;symbols=new Map;define(symbol2){this.symbols.set(symbol2.name,symbol2)}lookupLocal(name){return this.symbols.get(name)}resolve(name){let local=this.symbols.get(name);return local||this.parent?.resolve(name)}resolveQualified(qualifiedName){let parts=qualifiedName.split("::");if(parts.length===1)return this.resolve(parts[0]);let current=this.resolve(parts[0]);if(current)return current}getLocalSymbols(){return Array.from(this.symbols.values())}getAllVisibleSymbols(){let result=new Map,scope=this;for(;scope;){for(let[name,symbol2]of scope.symbols)result.has(name)||result.set(name,symbol2);scope=scope.parent}return Array.from(result.values())}};var RULE_INDEX_TO_KIND=new Map([[SysMLv2Parser.RULE_package,"package"],[SysMLv2Parser.RULE_libraryPackage,"package"],[SysMLv2Parser.RULE_partDefinition,"part def"],[SysMLv2Parser.RULE_attributeDefinition,"attribute def"],[SysMLv2Parser.RULE_portDefinition,"port def"],[SysMLv2Parser.RULE_connectionDefinition,"connection def"],[SysMLv2Parser.RULE_interfaceDefinition,"interface def"],[SysMLv2Parser.RULE_actionDefinition,"action def"],[SysMLv2Parser.RULE_stateDefinition,"state def"],[SysMLv2Parser.RULE_requirementDefinition,"requirement def"],[SysMLv2Parser.RULE_constraintDefinition,"constraint def"],[SysMLv2Parser.RULE_itemDefinition,"item def"],[SysMLv2Parser.RULE_allocationDefinition,"allocation def"],[SysMLv2Parser.RULE_useCaseDefinition,"use case def"],[SysMLv2Parser.RULE_enumerationDefinition,"enum def"],[SysMLv2Parser.RULE_enumeratedValue,"enum"],[SysMLv2Parser.RULE_enumerationUsage,"enum"],[SysMLv2Parser.RULE_calculationDefinition,"calc def"],[SysMLv2Parser.RULE_viewDefinition,"view def"],[SysMLv2Parser.RULE_viewpointDefinition,"viewpoint def"],[SysMLv2Parser.RULE_metadataDefinition,"metadata def"],[SysMLv2Parser.RULE_partUsage,"part"],[SysMLv2Parser.RULE_attributeUsage,"attribute"],[SysMLv2Parser.RULE_portUsage,"port"],[SysMLv2Parser.RULE_connectionUsage,"connection"],[SysMLv2Parser.RULE_actionUsage,"action"],[SysMLv2Parser.RULE_stateUsage,"state"],[SysMLv2Parser.RULE_requirementUsage,"requirement"],[SysMLv2Parser.RULE_constraintUsage,"constraint"],[SysMLv2Parser.RULE_itemUsage,"item"],[SysMLv2Parser.RULE_allocationUsage,"allocation"],[SysMLv2Parser.RULE_useCaseUsage,"use case"],[SysMLv2Parser.RULE_includeUseCaseUsage,"include use case"],[SysMLv2Parser.RULE_actorUsage,"actor"],[SysMLv2Parser.RULE_subjectUsage,"subject"],[SysMLv2Parser.RULE_stakeholderUsage,"stakeholder"],[SysMLv2Parser.RULE_referenceUsage,"ref"],[SysMLv2Parser.RULE_interfaceUsage,"interface"],[SysMLv2Parser.RULE_performActionUsage,"perform action"],[SysMLv2Parser.RULE_exhibitStateUsage,"exhibit state"],[SysMLv2Parser.RULE_transitionUsage,"transition"],[SysMLv2Parser.RULE_occurrenceDefinition,"occurrence def"],[SysMLv2Parser.RULE_occurrenceUsage,"occurrence"],[SysMLv2Parser.RULE_renderingDefinition,"rendering def"],[SysMLv2Parser.RULE_viewUsage,"view"],[SysMLv2Parser.RULE_viewpointUsage,"viewpoint"],[SysMLv2Parser.RULE_verificationCaseDefinition,"verification case def"],[SysMLv2Parser.RULE_verificationCaseUsage,"verification case"],[SysMLv2Parser.RULE_analysisCaseDefinition,"analysis case def"],[SysMLv2Parser.RULE_analysisCaseUsage,"analysis case"],[SysMLv2Parser.RULE_aliasMember,"alias"]]),NAME_RULE_INDICES=new Set([SysMLv2Parser.RULE_identification,SysMLv2Parser.RULE_name,SysMLv2Parser.RULE_qualifiedName]),PREFIX_EXTENSION_RULE_INDICES=new Set([SysMLv2Parser.RULE_prefixMetadataAnnotation,SysMLv2Parser.RULE_prefixMetadataMember,SysMLv2Parser.RULE_prefixMetadataFeature,SysMLv2Parser.RULE_prefixMetadataUsage,SysMLv2Parser.RULE_definitionExtensionKeyword,SysMLv2Parser.RULE_usageExtensionKeyword,SysMLv2Parser.RULE_occurrenceDefinitionPrefix,SysMLv2Parser.RULE_occurrenceUsagePrefix,SysMLv2Parser.RULE_definitionPrefix,SysMLv2Parser.RULE_basicDefinitionPrefix,SysMLv2Parser.RULE_typePrefix,SysMLv2Parser.RULE_featurePrefix,SysMLv2Parser.RULE_basicFeaturePrefix,SysMLv2Parser.RULE_endFeaturePrefix]),TYPE_SPECIALIZATION_RULE_INDICES=new Set([SysMLv2Parser.RULE_specialization,SysMLv2Parser.RULE_ownedSpecialization,SysMLv2Parser.RULE_subclassification,SysMLv2Parser.RULE_ownedSubclassification,SysMLv2Parser.RULE_subsetting,SysMLv2Parser.RULE_ownedSubsetting,SysMLv2Parser.RULE_specializationPart]),TYPE_TYPING_RULE_INDICES=new Set([SysMLv2Parser.RULE_typings,SysMLv2Parser.RULE_featureTyping,SysMLv2Parser.RULE_ownedFeatureTyping,SysMLv2Parser.RULE_conjugation,SysMLv2Parser.RULE_ownedConjugation,SysMLv2Parser.RULE_disjoining,SysMLv2Parser.RULE_ownedDisjoining]),TYPE_EXTRACTION_RULE_INDICES=new Set([...TYPE_SPECIALIZATION_RULE_INDICES,...TYPE_TYPING_RULE_INDICES]),TYPE_RECURSE_RULE_INDICES=new Set([SysMLv2Parser.RULE_featureSpecialization,SysMLv2Parser.RULE_featureSpecializationPart,SysMLv2Parser.RULE_featureDeclaration,SysMLv2Parser.RULE_usageCompletion,SysMLv2Parser.RULE_definition,SysMLv2Parser.RULE_usage]),DOC_RULE_INDICES=new Set([SysMLv2Parser.RULE_comment,SysMLv2Parser.RULE_documentation]),PREFIX_METADATA_RULE_INDICES=new Set([SysMLv2Parser.RULE_prefixMetadataMember,SysMLv2Parser.RULE_prefixMetadataAnnotation]),PREFIX_METADATA_RECURSE_RULE_INDICES=new Set([SysMLv2Parser.RULE_prefixMetadataFeature,SysMLv2Parser.RULE_prefixMetadataUsage,SysMLv2Parser.RULE_definitionExtensionKeyword,SysMLv2Parser.RULE_usageExtensionKeyword,SysMLv2Parser.RULE_definitionPrefix,SysMLv2Parser.RULE_basicDefinitionPrefix,SysMLv2Parser.RULE_definition,SysMLv2Parser.RULE_usage,SysMLv2Parser.RULE_occurrenceDefinitionPrefix,SysMLv2Parser.RULE_occurrenceUsagePrefix,SysMLv2Parser.RULE_usagePrefix,SysMLv2Parser.RULE_unextendedUsagePrefix,SysMLv2Parser.RULE_basicUsagePrefix]),RE_KEYWORD_TRUNCATE=/(?<![A-Za-z_])(redefines|subsets|references|connect|bind|first|then|flow|allocate|assign|accept|send|decide|merge|join|fork|via|default)\b.*/i,RE_KEYWORD_TRUNCATE_SPEC=/(?<![A-Za-z_])(redefines|references|connect|bind|first|then|flow|allocate|assign|accept|send|decide|merge|join|fork|via|default)\b.*/i,RE_SPEC=/(?:specializes|:>|:>>)\s*('[^']+'|[A-Za-z_]\w*(?:::\w+)*)(?:\s*,\s*(?:'[^']+'|[A-Za-z_]\w*(?:::\w+)*))*/,RE_SPEC_WITH_SUBSETS=/(?:specializes|subsets|:>|:>>)\s*('[^']+'|[A-Za-z_]\w*(?:::\w+)*)(?:\s*,\s*(?:'[^']+'|[A-Za-z_]\w*(?:::\w+)*))*/,RE_DEFINED_BY=/definedby\s*([A-Za-z_]\w*(?:::\w+)*(?:\s*,\s*[A-Za-z_]\w*(?:::\w+)*)*)/,RE_TYPING=/:(?![:>])\s*('[^']+'|[A-Za-z_]\w*(?:::\w+)*)/,RE_QUOTED_NAME=/'([^']+)'/,RE_IDENT_START=/^([A-Za-z_]\w*(?:::\w+)*)/,SymbolTable=class{symbols=new Map;symbolsByUri=new Map;symbolsByName=new Map;symbolsByPosition=new Map;typeNameRefs=new Map;allSymbolsCache;globalScope;constructor(){this.globalScope=new Scope("__global__")}build(uri,parseResult){this.clearUri(uri),parseResult.tree&&(this.walkTree(parseResult.tree,uri,this.globalScope,""),this.resolveViewInheritance(uri))}getSymbol(qualifiedName){return this.symbols.get(qualifiedName)}findByName(name){return this.symbolsByName.get(name)??[]}getSymbolsForUri(uri){return this.symbolsByUri.get(uri)??[]}getAllSymbols(){return this.allSymbolsCache||(this.allSymbolsCache=Array.from(this.symbols.values())),this.allSymbolsCache}getGlobalScope(){return this.globalScope}findSymbolAtPosition(uri,line,character){let sorted=this.symbolsByPosition.get(uri);if(!sorted||sorted.length===0)return;let lo=0,hi=sorted.length-1;for(;lo<hi;){let mid=lo+hi+1>>>1,r=sorted[mid].selectionRange.start;r.line<line||r.line===line&&r.character<=character?lo=mid:hi=mid-1}let best,bestSize=1/0;for(let i=lo;i>=0;i--){let sym=sorted[i],r=sym.selectionRange;if(r.start.line<line-1&&r.end.line<line)break;if(!(r.start.line<line&&r.end.line<line)&&line>=r.start.line&&line<=r.end.line&&(line>r.start.line||character>=r.start.character)&&(line<r.end.line||character<=r.end.character)){let size=(r.end.line-r.start.line)*1e4+(r.end.character-r.start.character);size<bestSize&&(best=sym,bestSize=size)}}return best}findReferences(name){let results=[],byName=this.symbolsByName.get(name);byName&&results.push(...byName);let refs=this.typeNameRefs.get(name);if(refs)for(let sym of refs)sym.name!==name&&results.push(sym);return results}countReferences(name){let count=0,byName=this.symbolsByName.get(name);byName&&(count+=byName.length);let refs=this.typeNameRefs.get(name);if(refs)for(let sym of refs)sym.name!==name&&count++;return count}removeUri(uri){this.clearUri(uri),this.symbolsByUri.delete(uri)}clearUri(uri){let existing=this.symbolsByUri.get(uri);if(existing&&existing.length>0){let affectedNames=new Set,affectedTypeNames=new Set;for(let sym of existing){this.symbols.delete(sym.qualifiedName),affectedNames.add(sym.name);for(let tn of sym.typeNames)affectedTypeNames.add(tn)}for(let name of affectedNames){let list=this.symbolsByName.get(name);if(list){let filtered=list.filter(s=>s.uri!==uri);filtered.length===0?this.symbolsByName.delete(name):this.symbolsByName.set(name,filtered)}}for(let tn of affectedTypeNames){let list=this.typeNameRefs.get(tn);if(list){let filtered=list.filter(s=>s.uri!==uri);filtered.length===0?this.typeNameRefs.delete(tn):this.typeNameRefs.set(tn,filtered)}}this.allSymbolsCache=void 0}this.symbolsByUri.set(uri,[]),this.symbolsByPosition.set(uri,[])}resolveViewInheritance(uri){let viewSymbols=(this.symbolsByUri.get(uri)??[]).filter(s=>s.kind==="view"||s.kind==="view def");if(viewSymbols.length===0)return;let viewDefsByName=new Map;for(let s of this.getAllSymbols())s.kind==="view def"&&viewDefsByName.set(s.name,s);for(let view of viewSymbols){let visited=new Set,current=view;for(let depth=0;depth<5&¤t&&!visited.has(current.name);depth++){visited.add(current.name);let parentName=current.typeNames[0]??current.typeName;if(!parentName)break;let parent=viewDefsByName.get(parentName);if(!parent)break;if(parent.viewFilters&&parent.viewFilters.length>0)if(!view.viewFilters)view.viewFilters=[...parent.viewFilters];else for(let f of parent.viewFilters)view.viewFilters.includes(f)||view.viewFilters.push(f);parent.viewRendering&&!view.viewRendering&&(view.viewRendering=parent.viewRendering),parent.exposeTargets&&parent.exposeTargets.length>0&&(!view.exposeTargets||view.exposeTargets.length===0)&&(view.exposeTargets=[...parent.exposeTargets]),current=parent}}}walkTree(ctx2,uri,currentScope,parentQualifiedName){let ruleName=this.getRuleName(ctx2),symbol2=this.tryExtractSymbol(ctx2,uri,ruleName,parentQualifiedName),childScope=currentScope;symbol2?(this.registerSymbol(symbol2,uri,currentScope),childScope=new Scope(symbol2.qualifiedName,currentScope)):this.registerAnonymousTypeRefs(ctx2,uri,parentQualifiedName);for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);child instanceof ParserRuleContext&&this.walkTree(child,uri,childScope,symbol2?.qualifiedName??parentQualifiedName)}}registerSymbol(symbol2,uri,scope){this.symbols.set(symbol2.qualifiedName,symbol2),this.allSymbolsCache=void 0;let uriSymbols=this.symbolsByUri.get(uri)??[];uriSymbols.push(symbol2),this.symbolsByUri.set(uri,uriSymbols);let nameList=this.symbolsByName.get(symbol2.name)??[];nameList.push(symbol2),this.symbolsByName.set(symbol2.name,nameList);let posList=this.symbolsByPosition.get(uri)??[],startLine=symbol2.selectionRange.start.line,startChar=symbol2.selectionRange.start.character;if(posList.length===0||startLine>posList[posList.length-1].selectionRange.start.line||startLine===posList[posList.length-1].selectionRange.start.line&&startChar>=posList[posList.length-1].selectionRange.start.character)posList.push(symbol2);else{let lo=0,hi=posList.length;for(;lo<hi;){let mid=lo+hi>>>1,mr=posList[mid].selectionRange.start;mr.line<startLine||mr.line===startLine&&mr.character<startChar?lo=mid+1:hi=mid}posList.splice(lo,0,symbol2)}this.symbolsByPosition.set(uri,posList);for(let tn of symbol2.typeNames){let refList=this.typeNameRefs.get(tn)??[];refList.push(symbol2),this.typeNameRefs.set(tn,refList)}scope.define(symbol2)}registerAnonymousTypeRefs(ctx2,uri,parentQualifiedName){let kind=RULE_INDEX_TO_KIND.get(ctx2.ruleIndex);if(kind===void 0)return;let typeNames=this.extractTypeNames(ctx2);if(typeNames.length===0)return;let range=contextToRange(ctx2),anonName=`<anonymous ${kind}>`,qualifiedName=parentQualifiedName?`${parentQualifiedName}::${anonName}#${range.start.line}`:`${anonName}#${range.start.line}`,anonSymbol={name:anonName,kind,qualifiedName,range,selectionRange:range,uri,typeName:typeNames[0],typeNames,specializationNames:[],parentQualifiedName:parentQualifiedName||void 0,children:[]};for(let tn of typeNames){let refList=this.typeNameRefs.get(tn)??[];refList.push(anonSymbol),this.typeNameRefs.set(tn,refList)}let uriSymbols=this.symbolsByUri.get(uri)??[];uriSymbols.push(anonSymbol),this.symbolsByUri.set(uri,uriSymbols);let posList=this.symbolsByPosition.get(uri)??[],startLine=range.start.line,startChar=range.start.character;if(posList.length===0||startLine>posList[posList.length-1].selectionRange.start.line||startLine===posList[posList.length-1].selectionRange.start.line&&startChar>=posList[posList.length-1].selectionRange.start.character)posList.push(anonSymbol);else{let lo=0,hi=posList.length;for(;lo<hi;){let mid=lo+hi>>>1,mr=posList[mid].selectionRange.start;mr.line<startLine||mr.line===startLine&&mr.character<startChar?lo=mid+1:hi=mid}posList.splice(lo,0,anonSymbol)}this.symbolsByPosition.set(uri,posList)}getRuleName(ctx2){let idx=ctx2.ruleIndex;if(idx>=0&&idx<SysMLv2Parser.ruleNames.length)return SysMLv2Parser.ruleNames[idx];let ctorName=ctx2.constructor.name;return ctorName.endsWith("Context")?ctorName.slice(0,-7):ctorName}tryExtractSymbol(ctx2,uri,ruleName,parentQualifiedName){let kind=this.inferKind(ruleName,ctx2);if(kind===void 0)return;let name=this.extractName(ctx2);if(!name)return;let qualifiedName=parentQualifiedName?`${parentQualifiedName}::${name}`:name,range=contextToRange(ctx2),selectionRange=this.extractNameRange(ctx2)??range,typeNames=this.extractTypeNames(ctx2),specializationNames=this.extractSpecializationNames(ctx2),typeName=typeNames[0],documentation=this.extractDocumentation(ctx2),{multiplicity,multiplicityRange}=isUsage(kind)?this.extractMultiplicity(ctx2):{},metadataAnnotations=this.extractPrefixMetadataAnnotations(ctx2),isView=kind==="view"||kind==="view def",isPackage=kind==="package",exposeTargets=isView?this.extractExposeTargets(ctx2):void 0,viewFilters=isView||isPackage?this.extractViewFilters(ctx2):void 0,viewRendering=isView?this.extractViewRendering(ctx2):void 0;return{name,kind,qualifiedName,range,selectionRange,uri,typeName,typeNames,specializationNames,documentation,parentQualifiedName:parentQualifiedName||void 0,children:[],multiplicity,multiplicityRange,metadataAnnotations:metadataAnnotations.length>0?metadataAnnotations:void 0,exposeTargets:exposeTargets&&exposeTargets.length>0?exposeTargets:void 0,viewFilters:viewFilters&&viewFilters.length>0?viewFilters:void 0,viewRendering:viewRendering||void 0}}inferKind(_ruleName,ctx2){return RULE_INDEX_TO_KIND.get(ctx2.ruleIndex)}extractName(ctx2){for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(child instanceof TerminalNode){let token=child.symbol;if(this.isIdentifierToken(token))return this.unquoteName(token.text??"")}if(child instanceof ParserRuleContext&&NAME_RULE_INDICES.has(child.ruleIndex)){let name=this.extractTextFromSubtree(child);if(name)return name}}for(let i=0;i<Math.min(ctx2.getChildCount(),5);i++){let child=ctx2.getChild(i);if(child instanceof ParserRuleContext){if(this.isPrefixOrExtensionContext(child))continue;let name=this.extractName(child);if(name)return name}}}extractNameRange(ctx2){for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(child instanceof TerminalNode&&this.isIdentifierToken(child.symbol))return tokenToRange(child.symbol);if(child instanceof ParserRuleContext){if(this.isPrefixOrExtensionContext(child))continue;let result=this.extractNameRange(child);if(result)return result}}}extractTypeNames(ctx2){let names=[];if(this.collectTypeNamesFromTree(ctx2,names,0),names.length>0)return names;let fullText=ctx2.getText(),braceIdx=fullText.indexOf("{"),text=braceIdx>=0?fullText.substring(0,braceIdx):fullText;text=text.replace(RE_KEYWORD_TRUNCATE,"");let specMatch=text.match(RE_SPEC);if(specMatch){let specStr=text.substring(text.indexOf(specMatch[0])+specMatch[0].indexOf(specMatch[1]));for(let part of specStr.split(",")){let qm=part.match(RE_QUOTED_NAME);if(qm){names.push(qm[1]);continue}let m2=part.trim().match(RE_IDENT_START);m2&&names.push(m2[1])}return names}let defByMatch=text.match(RE_DEFINED_BY);if(defByMatch){for(let part of defByMatch[1].split(",")){let m2=part.trim().match(RE_IDENT_START);m2&&names.push(m2[1])}return names}let typingMatch=text.match(RE_TYPING);if(typingMatch){let fullMatchIdx=text.indexOf(typingMatch[0]),afterColon=text.substring(fullMatchIdx+1).trim();for(let part of afterColon.split(",")){let qm=part.match(RE_QUOTED_NAME);if(qm){names.push(qm[1]);continue}let m2=part.trim().match(RE_IDENT_START);m2&&names.push(m2[1])}return names}return names}extractSpecializationNames(ctx2){let names=[];if(this.collectNamesFromTree(ctx2,names,0,TYPE_SPECIALIZATION_RULE_INDICES),names.length>0)return names;let fullText=ctx2.getText(),braceIdx=fullText.indexOf("{"),text=braceIdx>=0?fullText.substring(0,braceIdx):fullText;text=text.replace(RE_KEYWORD_TRUNCATE_SPEC,"");let specMatch=text.match(RE_SPEC_WITH_SUBSETS);if(specMatch){let specStr=text.substring(text.indexOf(specMatch[0])+specMatch[0].indexOf(specMatch[1]));for(let part of specStr.split(",")){let qm=part.match(RE_QUOTED_NAME);if(qm){names.push(qm[1]);continue}let m2=part.trim().match(RE_IDENT_START);m2&&names.push(m2[1])}}return names}collectTypeNamesFromTree(ctx2,names,depth){this.collectNamesFromTree(ctx2,names,depth,TYPE_EXTRACTION_RULE_INDICES)}collectNamesFromTree(ctx2,names,depth,extractionRules){if(!(depth>6))for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(!(child instanceof ParserRuleContext))continue;let ri=child.ruleIndex;if(extractionRules.has(ri)){let stripped=child.getText().replace(/^(specializes|:>>|:>|:|definedby|subsets|redefines|references|conjugates|disjoints)/i,"");for(let part of stripped.split(",")){let qm=part.match(/'([^']+)'/);if(qm)names.push(qm[1]);else{let m2=part.match(/([A-Za-z_]\w*(?:::\w+)*)/);m2&&names.push(m2[1])}}}else(TYPE_RECURSE_RULE_INDICES.has(ri)||SysMLv2Parser.ruleNames[ri]?.includes("eclaration"))&&this.collectNamesFromTree(child,names,depth+1,extractionRules)}}extractDocumentation(ctx2){for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(child instanceof ParserRuleContext){if(DOC_RULE_INDICES.has(child.ruleIndex)){let raw=child.getText();if(raw){let text=raw;return text.startsWith("doc")&&(text=text.slice(3)),text.startsWith("comment")&&(text=text.slice(7)),text=text.replace(/^\/\*\s*/,"").replace(/\s*\*\/$/,""),text=text.replace(/^\/\/\s*/,""),text.trim()||raw}return raw??void 0}let nested=this.extractDocumentation(child);if(nested)return nested}}}extractMultiplicity(ctx2){let multCtx=this.findMultiplicityBounds(ctx2);if(!multCtx)return{};let members=multCtx.multiplicityExpressionMember();if(!members||members.length===0)return{};let values=[];for(let member of members){let rawText=member.getText()?.trim();rawText&&values.push(rawText)}if(values.length===0)return{};let lower,upper,multiplicity;if(values.length===1)if(multiplicity=values[0],values[0]==="*")lower=0,upper="*";else{let num=parseInt(values[0],10);if(isNaN(num))return{multiplicity};lower=num,upper=num}else{if(multiplicity=`${values[0]}..${values[1]}`,lower=parseInt(values[0],10),isNaN(lower))return{multiplicity};if(values[1]==="*")upper="*";else if(upper=parseInt(values[1],10),isNaN(upper))return{multiplicity}}return{multiplicity,multiplicityRange:{lower,upper}}}findMultiplicityBounds(ctx2){if(ctx2.ruleIndex===SysMLv2Parser.RULE_multiplicityBounds)return ctx2;for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(child instanceof ParserRuleContext){let result=this.findMultiplicityBounds(child);if(result)return result}}}isPrefixOrExtensionContext(ctx2){return PREFIX_EXTENSION_RULE_INDICES.has(ctx2.ruleIndex)}extractPrefixMetadataAnnotations(ctx2){let annotations=[];return this.collectPrefixMetadata(ctx2,annotations,0),annotations}collectPrefixMetadata(ctx2,annotations,depth){if(!(depth>4))for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(!(child instanceof ParserRuleContext))continue;let ri=child.ruleIndex;if(PREFIX_METADATA_RULE_INDICES.has(ri)){let name=this.extractTextFromSubtree(child);name&&annotations.push(name)}else PREFIX_METADATA_RECURSE_RULE_INDICES.has(ri)&&this.collectPrefixMetadata(child,annotations,depth+1)}}isIdentifierToken(token){let text=token.text;return text?this.isQuotedName(text)?!0:/^[a-zA-Z_]/.test(text)&&!this.isKeyword(text):!1}isQuotedName(text){return text.length>=3&&text.startsWith("'")&&text.endsWith("'")}unquoteName(text){return this.isQuotedName(text)?text.slice(1,-1):text}isKeyword(text){return SYSML_KEYWORDS.has(text)}extractExposeTargets(ctx2){let targets=[];return this.collectExposeTargets(ctx2,targets,0),targets}collectExposeTargets(ctx2,targets,depth){if(!(depth>6))for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(!(child instanceof ParserRuleContext))continue;let ri=child.ruleIndex;if(ri===SysMLv2Parser.RULE_expose){let target=this.extractExposeQualifiedName(child);target&&targets.push(target)}else(ri===SysMLv2Parser.RULE_viewBody||ri===SysMLv2Parser.RULE_viewBodyItem||ri===SysMLv2Parser.RULE_viewDefinitionBody||ri===SysMLv2Parser.RULE_viewDefinitionBodyItem)&&this.collectExposeTargets(child,targets,depth+1)}}extractExposeQualifiedName(exposeCtx){for(let i=0;i<exposeCtx.getChildCount();i++){let child=exposeCtx.getChild(i);if(!(child instanceof ParserRuleContext))continue;let ri=child.ruleIndex;if(ri===SysMLv2Parser.RULE_membershipExpose||ri===SysMLv2Parser.RULE_namespaceExpose)return this.extractFullExposeText(child)}}extractFullExposeText(ctx2){let parts=[];return this.collectExposeText(ctx2,parts),parts.length>0?parts.join(""):void 0}collectExposeText(ctx2,parts){for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(child instanceof TerminalNode){let text=child.symbol.text;text&&parts.push(text)}else child instanceof ParserRuleContext&&this.collectExposeText(child,parts)}}extractViewFilters(ctx2){let filters=[];return this.collectViewFilters(ctx2,filters,0),filters}collectViewFilters(ctx2,filters,depth){if(!(depth>6))for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(!(child instanceof ParserRuleContext))continue;let ri=child.ruleIndex;if(ri===SysMLv2Parser.RULE_elementFilterMember){let text=this.extractFullExposeText(child);if(text){let cleaned=text.replace(/^filter/i,"").replace(/;$/g,"").trim();cleaned&&filters.push(cleaned)}}else(ri===SysMLv2Parser.RULE_viewBody||ri===SysMLv2Parser.RULE_viewBodyItem||ri===SysMLv2Parser.RULE_viewDefinitionBody||ri===SysMLv2Parser.RULE_viewDefinitionBodyItem||ri===SysMLv2Parser.RULE_packageBody||ri===SysMLv2Parser.RULE_packageBodyElement)&&this.collectViewFilters(child,filters,depth+1)}}extractViewRendering(ctx2){return this.findViewRendering(ctx2,0)}findViewRendering(ctx2,depth){if(!(depth>6))for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(!(child instanceof ParserRuleContext))continue;let ri=child.ruleIndex;if(ri===SysMLv2Parser.RULE_viewRenderingMember){let text=this.extractFullExposeText(child);if(text){let cleaned=text.replace(/^render/i,"").replace(/[;{}]/g,"").trim();if(cleaned)return cleaned}}else if(ri===SysMLv2Parser.RULE_viewBody||ri===SysMLv2Parser.RULE_viewBodyItem||ri===SysMLv2Parser.RULE_viewDefinitionBody||ri===SysMLv2Parser.RULE_viewDefinitionBodyItem){let found=this.findViewRendering(child,depth+1);if(found)return found}}}extractTextFromSubtree(ctx2){let parts=[];for(let i=0;i<ctx2.getChildCount();i++){let child=ctx2.getChild(i);if(child instanceof TerminalNode){let text=child.symbol.text;text&&this.isIdentifierToken(child.symbol)&&parts.push(this.unquoteName(text))}else if(child instanceof ParserRuleContext){let sub=this.extractTextFromSubtree(child);sub&&parts.push(sub)}}return parts.length>0?parts.join("::"):void 0}};function containsWord(text,word){let idx=0;for(;(idx=text.indexOf(word,idx))!==-1;){let before=idx>0?text.charCodeAt(idx-1):32,after=idx+word.length<text.length?text.charCodeAt(idx+word.length):32;if(!isIdentPart(before)&&!isIdentPart(after))return!0;idx+=1}return!1}function findWordPositions(text,word){let results=[],idx=0;for(;(idx=text.indexOf(word,idx))!==-1;){let before=idx>0?text.charCodeAt(idx-1):32,afterIdx=idx+word.length,after=afterIdx<text.length?text.charCodeAt(afterIdx):32;!isIdentPart(before)&&!isIdentPart(after)&&results.push({pos:idx,afterPos:afterIdx}),idx+=1}return results}function findWordPositionsCI(text,word){let lower=text.toLowerCase(),wordLower=word.toLowerCase(),results=[],idx=0;for(;(idx=lower.indexOf(wordLower,idx))!==-1;){let before=idx>0?lower.charCodeAt(idx-1):32,afterIdx=idx+wordLower.length,after=afterIdx<lower.length?lower.charCodeAt(afterIdx):32;!isIdentPart(before)&&!isIdentPart(after)&&results.push({pos:idx,afterPos:afterIdx}),idx+=1}return results}function skipWS(text,pos){for(;pos<text.length;){let ch=text[pos];if(ch===" "||ch===" "||ch===`
|
|
132
132
|
`||ch==="\r")pos++;else break}return pos}function readIdent(text,pos,allowDots=!1){let end=pos;for(;end<text.length;){let ch=text.charCodeAt(end);if(isIdentPart(ch))end++;else if(allowDots&&text[end]===".")end++;else if(text[end]===":"&&end+1<text.length&&text[end+1]===":")end+=2;else break}return[text.substring(pos,end),end]}function readNameOrQuoted(text,pos,allowDots=!1){if(pos<text.length&&text[pos]==="'"){let close=text.indexOf("'",pos+1);if(close>=0)return[text.substring(pos+1,close),close+1]}return readIdent(text,pos,allowDots)}function readWordAfterKeyword(text,afterPos,allowDots=!1){let start=skipWS(text,afterPos);return readIdent(text,start,allowDots)}function readCommaSeparatedIdents(text,pos){let names=[],p=skipWS(text,pos);for(;p<text.length;){let[name,end]=readIdent(text,p);if(!name)break;if(names.push(name),p=skipWS(text,end),p<text.length&&text[p]===",")p=skipWS(text,p+1);else break}return names}var SysMLModelProvider=class{constructor(documentManager){this.documentManager=documentManager}documentManager;_stCache=new Map;removeUri(uri){this._stCache.delete(uri)}clearAll(){let count=this._stCache.size;return this._stCache.clear(),count}get cacheSize(){return this._stCache.size}_getSymbolTable(uri,parseResult){let version2=this.documentManager.getVersion(uri),cached2=this._stCache.get(uri);if(cached2&&cached2.version===version2)return cached2.table;let table=new SymbolTable;return table.build(uri,parseResult),this._stCache.set(uri,{version:version2,table}),table}getModel(uri,version2,scopes){let startTime=Date.now(),parseResult=this.documentManager.get(uri);if(!parseResult)return{version:-1};let scopeSet=new Set(scopes&&scopes.length>0?scopes:["elements","relationships","sequenceDiagrams","activityDiagrams","resolvedTypes","diagnostics"]),symbolTable=this._getSymbolTable(uri,parseResult),lines=(this.documentManager.getText(uri)??"").split(`
|
|
133
133
|
`),result={version:version2};scopeSet.has("elements")&&(result.elements=this.convertToElementDTOs(symbolTable,uri,lines)),scopeSet.has("relationships")&&(result.relationships=this.extractRelationships(symbolTable,uri,lines)),scopeSet.has("sequenceDiagrams")&&(result.sequenceDiagrams=this.extractSequenceDiagrams(symbolTable,uri,lines)),scopeSet.has("activityDiagrams")&&(result.activityDiagrams=this.extractActivityDiagrams(symbolTable,uri,lines)),scopeSet.has("resolvedTypes")&&(result.resolvedTypes=this.extractResolvedTypes(symbolTable,uri,lines)),scopeSet.has("diagnostics")&&(result.diagnostics=this.extractSemanticDiagnostics(symbolTable,uri));let allSymbols=symbolTable.getSymbolsForUri(uri),resolved=allSymbols.filter(s=>s.typeNames.length>0),parseTimeMs=this.documentManager.getParseTimeMs(uri),timingBreakdown=this.documentManager.getTimingBreakdown(uri),modelBuildTimeMs=Date.now()-startTime;return result.stats={totalElements:allSymbols.length,resolvedElements:resolved.length,unresolvedElements:allSymbols.length-resolved.length,parseTimeMs,lexTimeMs:timingBreakdown.lexMs,parseOnlyTimeMs:timingBreakdown.parseMs,modelBuildTimeMs,complexity:analyseComplexity(allSymbols)},result}convertToElementDTOs(symbolTable,uri,lines){let symbols=symbolTable.getSymbolsForUri(uri),byQualifiedName=new Map;for(let sym of symbols)byQualifiedName.set(sym.qualifiedName,sym);let childrenOf=new Map;for(let sym of symbols)if(sym.parentQualifiedName&&byQualifiedName.has(sym.parentQualifiedName)){let list=childrenOf.get(sym.parentQualifiedName)??[];list.push(sym),childrenOf.set(sym.parentQualifiedName,list)}return symbols.filter(s=>!s.parentQualifiedName||!byQualifiedName.has(s.parentQualifiedName)).map(s=>this.symbolToElementDTO(s,childrenOf,lines))}symbolToElementDTO(symbol2,childrenOf,lines){let children=(childrenOf.get(symbol2.qualifiedName)??[]).filter(c=>c.qualifiedName!==symbol2.qualifiedName).map(c=>this.symbolToElementDTO(c,childrenOf,lines)),attributes={};if(symbol2.typeNames.length>0){let typeLabel=symbol2.typeNames.join(", ");symbol2.kind==="port"||symbol2.kind==="port def"?attributes.portType=typeLabel:attributes.partType=typeLabel}symbol2.documentation&&(attributes.documentation=symbol2.documentation),symbol2.metadataAnnotations&&symbol2.metadataAnnotations.length>0&&(attributes.metadataAnnotations=symbol2.metadataAnnotations.join(", ")),symbol2.exposeTargets&&symbol2.exposeTargets.length>0&&(attributes.exposeTargets=symbol2.exposeTargets.join(",")),symbol2.viewFilters&&symbol2.viewFilters.length>0&&(attributes.viewFilters=symbol2.viewFilters.join(",")),symbol2.viewRendering&&(attributes.viewRendering=symbol2.viewRendering);let direction=this.extractDirection(symbol2,lines);direction&&(attributes.direction=direction);let multiplicity=this.extractMultiplicity(symbol2,lines);multiplicity&&(attributes.multiplicity=multiplicity);let modifier=this.extractModifier(symbol2,lines);modifier&&(attributes.modifier=modifier);let visibility=this.extractVisibility(symbol2,lines);visibility&&(attributes.visibility=visibility);let value=this.extractValue(symbol2,lines);value&&(attributes.value=value);let relationships=[];for(let tn of symbol2.typeNames)relationships.push({type:"typing",source:symbol2.name,target:tn});let specializations=this.extractSpecializations(symbol2,lines);for(let spec of specializations)relationships.push({type:"specializes",source:symbol2.name,target:spec});return{type:symbol2.kind,name:symbol2.name,range:this.rangeToDTO(symbol2.range),children,attributes,relationships}}extractRelationships(symbolTable,uri,lines){let symbols=symbolTable.getSymbolsForUri(uri),relationships=[];for(let symbol2 of symbols){if(symbol2.kind==="package"||symbol2.kind==="import"||symbol2.kind==="comment"||symbol2.kind==="doc")continue;if(symbol2.typeNames.length>0&&isUsage(symbol2.kind))for(let tn of symbol2.typeNames)relationships.push({type:"typing",source:symbol2.name,target:tn});let specializations=this.extractSpecializations(symbol2,lines);for(let spec of specializations)relationships.push({type:"specializes",source:symbol2.name,target:spec});if(symbol2.kind==="connection"){let connectionTargets=this.extractConnectionEndpoints(symbol2,lines);connectionTargets.length===2&&relationships.push({type:"connection",source:connectionTargets[0],target:connectionTargets[1],name:symbol2.name})}if(symbol2.kind==="allocation"){let allocTargets=this.extractConnectionEndpoints(symbol2,lines);allocTargets.length===2&&relationships.push({type:"allocation",source:allocTargets[0],target:allocTargets[1],name:symbol2.name})}let elementText=this.getElementText(symbol2,lines),additionalRels=this.extractKeywordRelationships(symbol2.name,elementText);relationships.push(...additionalRels)}let fullText=lines.join(`
|
|
134
|
-
`),standaloneSatisfy=this.extractStandaloneSatisfyVerify(stripComments(fullText));for(let rel of standaloneSatisfy)relationships.some(r=>r.type===rel.type&&r.source===rel.source&&r.target===rel.target)||relationships.push(rel);return relationships}extractSequenceDiagrams(symbolTable,uri,lines){let symbols=symbolTable.getSymbolsForUri(uri),diagrams=[],seen=new Set;for(let symbol2 of symbols){if(symbol2.kind!=="action def"&&symbol2.kind!=="action")continue;let children=this.getChildSymbols(symbol2,symbolTable),participants=[],messages=[];for(let child of children)(child.kind==="part"||child.kind==="item")&&participants.push({name:child.name,type:child.typeNames.join(", ")||child.kind,range:this.rangeToDTO(child.range)});let fullText=this.getFullElementText(symbol2,lines),occurrence=1;for(let{afterPos}of findWordPositionsCI(fullText,"send")){let sigStart=skipWS(fullText,afterPos),[signal,afterSig]=readIdent(fullText,sigStart,!0);if(!signal)continue;let kwStart=skipWS(fullText,afterSig),[kw,afterKw]=readIdent(fullText,kwStart);if(kw!=="via"&&kw!=="to")continue;let tgtStart=skipWS(fullText,afterKw),[target]=readIdent(fullText,tgtStart,!0);target&&messages.push({name:`send_${occurrence}`,from:symbol2.name,to:target,payload:signal,occurrence:occurrence++,range:this.rangeToDTO(symbol2.range)})}for(let{afterPos}of findWordPositionsCI(fullText,"accept")){let sigStart=skipWS(fullText,afterPos),[signal,afterSig]=readIdent(fullText,sigStart,!0);if(!signal)continue;let kwStart=skipWS(fullText,afterSig),[kw,afterKw]=readIdent(fullText,kwStart);if(kw!=="via"&&kw!=="from")continue;let srcStart=skipWS(fullText,afterKw),[source]=readIdent(fullText,srcStart,!0);source&&messages.push({name:`accept_${occurrence}`,from:source,to:symbol2.name,payload:signal,occurrence:occurrence++,range:this.rangeToDTO(symbol2.range)})}for(let child of children)if(child.kind==="action"){let childText=this.getFullElementText(child,lines);for(let{afterPos}of findWordPositionsCI(childText,"send")){let sigStart=skipWS(childText,afterPos),[signal,afterSig]=readIdent(childText,sigStart,!0);if(!signal)continue;let kwStart=skipWS(childText,afterSig),[kw,afterKw]=readIdent(childText,kwStart);if(kw!=="via"&&kw!=="to")continue;let tgtStart=skipWS(childText,afterKw),[target]=readIdent(childText,tgtStart,!0);target&&messages.push({name:child.name,from:target??symbol2.name,to:signal??"",payload:signal??"",occurrence:occurrence++,range:this.rangeToDTO(child.range)})}for(let{afterPos}of findWordPositionsCI(childText,"accept")){let sigStart=skipWS(childText,afterPos),[signal,afterSig]=readIdent(childText,sigStart,!0);if(!signal)continue;let kwStart=skipWS(childText,afterSig),[kw,afterKw]=readIdent(childText,kwStart);if(kw!=="via"&&kw!=="from")continue;let srcStart=skipWS(childText,afterKw),[source]=readIdent(childText,srcStart,!0);source&&messages.push({name:child.name,from:source??"",to:symbol2.name,payload:signal??"",occurrence:occurrence++,range:this.rangeToDTO(child.range)})}}(participants.length>0||messages.length>0)&&(diagrams.push({name:symbol2.name,participants,messages,range:this.rangeToDTO(symbol2.range)}),messages.length>0&&seen.add(symbol2.qualifiedName))}for(let symbol2 of symbols){if(seen.has(symbol2.qualifiedName)||symbol2.kind!=="action def"&&symbol2.kind!=="action")continue;let children=this.getChildSymbols(symbol2,symbolTable);if(!children.some(c=>c.kind==="action"||c.kind==="action def"))continue;let flows=this.extractSuccessions(symbol2,lines);if(flows.length===0)continue;let participants=children.filter(c=>c.kind==="action"||c.kind==="action def").map(c=>({name:c.name,type:c.typeNames.join(", ")||"action",range:this.rangeToDTO(c.range)})),messages=[],occ=1;for(let flow of flows){if(flow.from==="start"||flow.to==="done")continue;let label=flow.guard??flow.to;messages.push({name:label,from:flow.from,to:flow.to,payload:flow.guard??"",occurrence:occ++,range:flow.range})}if(participants.length>0||messages.length>0){let existingIdx=diagrams.findIndex(d=>d.name===symbol2.name);existingIdx>=0&&diagrams.splice(existingIdx,1),diagrams.push({name:symbol2.name,participants,messages,range:this.rangeToDTO(symbol2.range)})}}return diagrams}extractActivityDiagrams(symbolTable,uri,lines){let symbols=symbolTable.getSymbolsForUri(uri),diagrams=[];for(let symbol2 of symbols){if(symbol2.kind!=="action def"&&symbol2.kind!=="action")continue;let children=this.getChildSymbols(symbol2,symbolTable),hasChildActions=children.some(c=>c.kind==="action"||c.kind==="action def");if(symbol2.kind==="action"&&!hasChildActions)continue;let actions=[],decisions=[],flows=[],states=[];for(let child of children){let childText=this.getElementText(child,lines);if(child.kind==="action"||child.kind==="action def"){let actionType="action",lowerText=childText.toLowerCase();lowerText.includes("fork")?actionType="fork":lowerText.includes("join")?actionType="join":lowerText.includes("merge")?actionType="merge":lowerText.includes("decide")&&(actionType="decision");let subActions=this.getChildSymbols(child,symbolTable).filter(c=>c.kind==="action"||c.kind==="action def").map(c=>this.symbolToActionDTO(c,symbolTable,lines));if(actions.push({name:child.name,type:actionType,isDefinition:child.kind==="action def",range:this.rangeToDTO(child.range),parent:symbol2.name,children:subActions.map(a=>a.name),subActions:subActions.length>0?subActions:void 0}),actionType==="decision"){let branches=this.extractDecisionBranches(child,lines);decisions.push({name:child.name,condition:"",branches,range:this.rangeToDTO(child.range)})}}if(child.kind==="state"||child.kind==="state def"){let stateType=childText.toLowerCase().includes("initial")?"initial":childText.toLowerCase().includes("final")?"final":"intermediate";states.push({name:child.name,type:stateType,range:this.rangeToDTO(child.range)})}}let successionFlows=this.extractSuccessions(symbol2,lines);flows.push(...successionFlows);let fullText=this.getFullElementText(symbol2,lines);if(findWordPositions(fullText,"decide").some(({afterPos})=>{let p=skipWS(fullText,afterPos);return p<fullText.length&&fullText[p]===";"})){let branches=[];for(let{afterPos:ifAfter}of findWordPositions(fullText,"if")){let thenIdx=fullText.indexOf("then",ifAfter);if(thenIdx<0)continue;let bBefore=thenIdx>0?fullText.charCodeAt(thenIdx-1):32,bAfter=thenIdx+4<fullText.length?fullText.charCodeAt(thenIdx+4):32;if(isIdentPart(bBefore)||isIdentPart(bAfter))continue;let condition=fullText.substring(ifAfter,thenIdx).trim(),[target]=readWordAfterKeyword(fullText,thenIdx+4);target&&branches.push({condition,target})}branches.length>0&&decisions.push({name:"decide",condition:"",branches,range:this.rangeToDTO(symbol2.range)})}if(flows.length>0){let hasStartFlow=flows.some(f=>f.from==="start"),hasDoneFlow=flows.some(f=>f.to==="done");hasStartFlow&&actions.unshift({name:"start",type:"initial",isDefinition:!1,range:this.rangeToDTO(symbol2.range)}),hasDoneFlow&&actions.push({name:"done",type:"final",isDefinition:!1,range:this.rangeToDTO(symbol2.range)}),flows.some(f=>f.from==="decide")&&actions.push({name:"decide",type:"decision",isDefinition:!1,range:this.rangeToDTO(symbol2.range)})}(actions.length>0||flows.length>0||states.length>0)&&diagrams.push({name:symbol2.name,actions,decisions,flows,states,range:this.rangeToDTO(symbol2.range)})}return diagrams}extractResolvedTypes(symbolTable,uri,lines){let symbols=symbolTable.getSymbolsForUri(uri),result={};for(let symbol2 of symbols){if(!isDefinition(symbol2.kind)&&symbol2.typeNames.length===0)continue;let specializes=[],specList=this.extractSpecializations(symbol2,lines);for(let s of specList)specializes.includes(s)||specializes.push(s);for(let tn of symbol2.typeNames)specializes.includes(tn)||specializes.push(tn);let specializationChain=[...specializes],features=this.getChildSymbols(symbol2,symbolTable).filter(c=>isUsage(c.kind)).map(c=>({name:c.name,kind:this.featureKindFromElementKind(c.kind),type:c.typeNames.join(", ")||void 0,isDerived:!1,isReadonly:!1}));result[symbol2.qualifiedName]={qualifiedName:symbol2.qualifiedName,simpleName:symbol2.name,kind:symbol2.kind,isLibraryType:!1,specializationChain,specializes,features}}return result}extractSemanticDiagnostics(symbolTable,uri){let symbols=symbolTable.getSymbolsForUri(uri),diagnostics=[],allSymbolNames=new Set(symbolTable.getAllSymbols().map(s=>s.name));for(let symbol2 of symbols){for(let tn of symbol2.typeNames)allSymbolNames.has(tn)||diagnostics.push({code:"unresolved-type",message:`Type '${tn}' could not be resolved in the current scope`,severity:"warning",range:this.rangeToDTO(symbol2.selectionRange),elementName:symbol2.name});symbol2.kind==="enum def"&&(this.getChildSymbols(symbol2,symbolTable).some(c=>c.kind==="enum"||c.kind==="attribute")||diagnostics.push({code:"empty-enum",message:`Enumeration '${symbol2.name}' has no enum values defined`,severity:"info",range:this.rangeToDTO(symbol2.range),elementName:symbol2.name}))}return diagnostics}rangeToDTO(range){return{start:{line:range.start.line,character:range.start.character},end:{line:range.end.line,character:range.end.character}}}getChildSymbols(parent,symbolTable){return symbolTable.getSymbolsForUri(parent.uri).filter(s=>s.parentQualifiedName===parent.qualifiedName)}getElementText(symbol2,lines){let startLine=symbol2.range.start.line,endLine=Math.min(startLine+2,symbol2.range.end.line,lines.length-1);return lines.slice(startLine,endLine+1).join(`
|
|
134
|
+
`),standaloneSatisfy=this.extractStandaloneSatisfyVerify(stripComments(fullText));for(let rel of standaloneSatisfy)relationships.some(r=>r.type===rel.type&&r.source===rel.source&&r.target===rel.target)||relationships.push(rel);return relationships}extractSequenceDiagrams(symbolTable,uri,lines){let symbols=symbolTable.getSymbolsForUri(uri),diagrams=[],seen=new Set;for(let symbol2 of symbols){if(symbol2.kind!=="action def"&&symbol2.kind!=="action")continue;let children=this.getChildSymbols(symbol2,symbolTable),participants=[],messages=[];for(let child of children)(child.kind==="part"||child.kind==="item")&&participants.push({name:child.name,type:child.typeNames.join(", ")||child.kind,range:this.rangeToDTO(child.range)});let fullText=this.getFullElementText(symbol2,lines),occurrence=1;for(let{afterPos}of findWordPositionsCI(fullText,"send")){let sigStart=skipWS(fullText,afterPos),[signal,afterSig]=readIdent(fullText,sigStart,!0);if(!signal)continue;let kwStart=skipWS(fullText,afterSig),[kw,afterKw]=readIdent(fullText,kwStart);if(kw!=="via"&&kw!=="to")continue;let tgtStart=skipWS(fullText,afterKw),[target]=readIdent(fullText,tgtStart,!0);target&&messages.push({name:`send_${occurrence}`,from:symbol2.name,to:target,payload:signal,occurrence:occurrence++,range:this.rangeToDTO(symbol2.range)})}for(let{afterPos}of findWordPositionsCI(fullText,"accept")){let sigStart=skipWS(fullText,afterPos),[signal,afterSig]=readIdent(fullText,sigStart,!0);if(!signal)continue;let kwStart=skipWS(fullText,afterSig),[kw,afterKw]=readIdent(fullText,kwStart);if(kw!=="via"&&kw!=="from")continue;let srcStart=skipWS(fullText,afterKw),[source]=readIdent(fullText,srcStart,!0);source&&messages.push({name:`accept_${occurrence}`,from:source,to:symbol2.name,payload:signal,occurrence:occurrence++,range:this.rangeToDTO(symbol2.range)})}for(let child of children)if(child.kind==="action"){let childText=this.getFullElementText(child,lines);for(let{afterPos}of findWordPositionsCI(childText,"send")){let sigStart=skipWS(childText,afterPos),[signal,afterSig]=readIdent(childText,sigStart,!0);if(!signal)continue;let kwStart=skipWS(childText,afterSig),[kw,afterKw]=readIdent(childText,kwStart);if(kw!=="via"&&kw!=="to")continue;let tgtStart=skipWS(childText,afterKw),[target]=readIdent(childText,tgtStart,!0);target&&messages.push({name:child.name,from:target??symbol2.name,to:signal??"",payload:signal??"",occurrence:occurrence++,range:this.rangeToDTO(child.range)})}for(let{afterPos}of findWordPositionsCI(childText,"accept")){let sigStart=skipWS(childText,afterPos),[signal,afterSig]=readIdent(childText,sigStart,!0);if(!signal)continue;let kwStart=skipWS(childText,afterSig),[kw,afterKw]=readIdent(childText,kwStart);if(kw!=="via"&&kw!=="from")continue;let srcStart=skipWS(childText,afterKw),[source]=readIdent(childText,srcStart,!0);source&&messages.push({name:child.name,from:source??"",to:symbol2.name,payload:signal??"",occurrence:occurrence++,range:this.rangeToDTO(child.range)})}}(participants.length>0||messages.length>0)&&(diagrams.push({name:symbol2.name,participants,messages,range:this.rangeToDTO(symbol2.range)}),messages.length>0&&seen.add(symbol2.qualifiedName))}for(let symbol2 of symbols){if(seen.has(symbol2.qualifiedName)||symbol2.kind!=="action def"&&symbol2.kind!=="action")continue;let children=this.getChildSymbols(symbol2,symbolTable);if(!children.some(c=>c.kind==="action"||c.kind==="action def"))continue;let flows=this.extractSuccessions(symbol2,lines);if(flows.length===0)continue;let participants=children.filter(c=>c.kind==="action"||c.kind==="action def").map(c=>({name:c.name,type:c.typeNames.join(", ")||"action",range:this.rangeToDTO(c.range)})),messages=[],occ=1;for(let flow of flows){if(flow.from==="start"||flow.to==="done")continue;let label=flow.guard??flow.to;messages.push({name:label,from:flow.from,to:flow.to,payload:flow.guard??"",occurrence:occ++,range:flow.range})}if(participants.length>0||messages.length>0){let existingIdx=diagrams.findIndex(d=>d.name===symbol2.name);existingIdx>=0&&diagrams.splice(existingIdx,1),diagrams.push({name:symbol2.name,participants,messages,range:this.rangeToDTO(symbol2.range)})}}let containerKinds=new Set(["part def","part","item def","item","interface def","interface","connection def","connection","occurrence def","occurrence"]),rootName=qualified=>{if(!qualified)return qualified;let dotIdx=qualified.indexOf("."),head=dotIdx>=0?qualified.substring(0,dotIdx):qualified,ccIdx=head.lastIndexOf("::");return ccIdx>=0?head.substring(ccIdx+2):head};for(let symbol2 of symbols){if(seen.has(symbol2.qualifiedName)||!containerKinds.has(symbol2.kind))continue;let children=this.getChildSymbols(symbol2,symbolTable),fullText=this.getFullElementText(symbol2,lines),parsedMessages=[],occ=1;for(let keyword of["flow","message"])for(let{afterPos}of findWordPositionsCI(fullText,keyword)){let nameStart=skipWS(fullText,afterPos),[name,afterName]=readIdent(fullText,nameStart);if(!name||name==="def")continue;let fromStart=skipWS(fullText,afterName),[fromKw,afterFromKw]=readIdent(fullText,fromStart);if(fromKw!=="from")continue;let srcStart=skipWS(fullText,afterFromKw),[srcRaw,afterSrc]=readIdent(fullText,srcStart,!0);if(!srcRaw)continue;let toStart=skipWS(fullText,afterSrc),[toKw,afterToKw]=readIdent(fullText,toStart);if(toKw!=="to")continue;let tgtStart=skipWS(fullText,afterToKw),[tgtRaw]=readIdent(fullText,tgtStart,!0);tgtRaw&&parsedMessages.push({name,from:rootName(srcRaw),to:rootName(tgtRaw),payload:name,occurrence:occ++,range:this.rangeToDTO(symbol2.range)})}if(parsedMessages.length===0)continue;let participants=[];for(let child of children)(child.kind==="part"||child.kind==="item"||child.kind==="part def"||child.kind==="item def"||child.kind==="ref")&&(participants.find(p=>p.name===child.name)||participants.push({name:child.name,type:child.typeNames.join(", ")||child.kind,range:this.rangeToDTO(child.range)}));for(let msg of parsedMessages)for(let endpoint of[msg.from,msg.to])endpoint&&!participants.find(p=>p.name===endpoint)&&participants.push({name:endpoint,type:"participant",range:this.rangeToDTO(symbol2.range)});let existingIdx=diagrams.findIndex(d=>d.name===symbol2.name);existingIdx>=0&&diagrams.splice(existingIdx,1),diagrams.push({name:symbol2.name,participants,messages:parsedMessages,range:this.rangeToDTO(symbol2.range)}),seen.add(symbol2.qualifiedName)}return diagrams}extractActivityDiagrams(symbolTable,uri,lines){let symbols=symbolTable.getSymbolsForUri(uri),diagrams=[];for(let symbol2 of symbols){if(symbol2.kind!=="action def"&&symbol2.kind!=="action")continue;let children=this.getChildSymbols(symbol2,symbolTable),hasChildActions=children.some(c=>c.kind==="action"||c.kind==="action def");if(symbol2.kind==="action"&&!hasChildActions)continue;let actions=[],decisions=[],flows=[],states=[];for(let child of children){let childText=this.getElementText(child,lines);if(child.kind==="action"||child.kind==="action def"){let actionType="action",lowerText=childText.toLowerCase();lowerText.includes("fork")?actionType="fork":lowerText.includes("join")?actionType="join":lowerText.includes("merge")?actionType="merge":lowerText.includes("decide")&&(actionType="decision");let subActions=this.getChildSymbols(child,symbolTable).filter(c=>c.kind==="action"||c.kind==="action def").map(c=>this.symbolToActionDTO(c,symbolTable,lines));if(actions.push({name:child.name,type:actionType,isDefinition:child.kind==="action def",range:this.rangeToDTO(child.range),parent:symbol2.name,children:subActions.map(a=>a.name),subActions:subActions.length>0?subActions:void 0}),actionType==="decision"){let branches=this.extractDecisionBranches(child,lines);decisions.push({name:child.name,condition:"",branches,range:this.rangeToDTO(child.range)})}}if(child.kind==="state"||child.kind==="state def"){let stateType=childText.toLowerCase().includes("initial")?"initial":childText.toLowerCase().includes("final")?"final":"intermediate";states.push({name:child.name,type:stateType,range:this.rangeToDTO(child.range)})}}let successionFlows=this.extractSuccessions(symbol2,lines);flows.push(...successionFlows);let fullText=this.getFullElementText(symbol2,lines);if(findWordPositions(fullText,"decide").some(({afterPos})=>{let p=skipWS(fullText,afterPos);return p<fullText.length&&fullText[p]===";"})){let branches=[];for(let{afterPos:ifAfter}of findWordPositions(fullText,"if")){let thenIdx=fullText.indexOf("then",ifAfter);if(thenIdx<0)continue;let bBefore=thenIdx>0?fullText.charCodeAt(thenIdx-1):32,bAfter=thenIdx+4<fullText.length?fullText.charCodeAt(thenIdx+4):32;if(isIdentPart(bBefore)||isIdentPart(bAfter))continue;let condition=fullText.substring(ifAfter,thenIdx).trim(),[target]=readWordAfterKeyword(fullText,thenIdx+4);target&&branches.push({condition,target})}branches.length>0&&decisions.push({name:"decide",condition:"",branches,range:this.rangeToDTO(symbol2.range)})}if(flows.length>0){let hasStartFlow=flows.some(f=>f.from==="start"),hasDoneFlow=flows.some(f=>f.to==="done");hasStartFlow&&actions.unshift({name:"start",type:"initial",isDefinition:!1,range:this.rangeToDTO(symbol2.range)}),hasDoneFlow&&actions.push({name:"done",type:"final",isDefinition:!1,range:this.rangeToDTO(symbol2.range)}),flows.some(f=>f.from==="decide")&&actions.push({name:"decide",type:"decision",isDefinition:!1,range:this.rangeToDTO(symbol2.range)})}(actions.length>0||flows.length>0||states.length>0)&&diagrams.push({name:symbol2.name,actions,decisions,flows,states,range:this.rangeToDTO(symbol2.range)})}return diagrams}extractResolvedTypes(symbolTable,uri,lines){let symbols=symbolTable.getSymbolsForUri(uri),result={};for(let symbol2 of symbols){if(!isDefinition(symbol2.kind)&&symbol2.typeNames.length===0)continue;let specializes=[],specList=this.extractSpecializations(symbol2,lines);for(let s of specList)specializes.includes(s)||specializes.push(s);for(let tn of symbol2.typeNames)specializes.includes(tn)||specializes.push(tn);let specializationChain=[...specializes],features=this.getChildSymbols(symbol2,symbolTable).filter(c=>isUsage(c.kind)).map(c=>({name:c.name,kind:this.featureKindFromElementKind(c.kind),type:c.typeNames.join(", ")||void 0,isDerived:!1,isReadonly:!1}));result[symbol2.qualifiedName]={qualifiedName:symbol2.qualifiedName,simpleName:symbol2.name,kind:symbol2.kind,isLibraryType:!1,specializationChain,specializes,features}}return result}extractSemanticDiagnostics(symbolTable,uri){let symbols=symbolTable.getSymbolsForUri(uri),diagnostics=[],allSymbolNames=new Set(symbolTable.getAllSymbols().map(s=>s.name));for(let symbol2 of symbols){for(let tn of symbol2.typeNames)allSymbolNames.has(tn)||diagnostics.push({code:"unresolved-type",message:`Type '${tn}' could not be resolved in the current scope`,severity:"warning",range:this.rangeToDTO(symbol2.selectionRange),elementName:symbol2.name});symbol2.kind==="enum def"&&(this.getChildSymbols(symbol2,symbolTable).some(c=>c.kind==="enum"||c.kind==="attribute")||diagnostics.push({code:"empty-enum",message:`Enumeration '${symbol2.name}' has no enum values defined`,severity:"info",range:this.rangeToDTO(symbol2.range),elementName:symbol2.name}))}return diagnostics}rangeToDTO(range){return{start:{line:range.start.line,character:range.start.character},end:{line:range.end.line,character:range.end.character}}}getChildSymbols(parent,symbolTable){return symbolTable.getSymbolsForUri(parent.uri).filter(s=>s.parentQualifiedName===parent.qualifiedName)}getElementText(symbol2,lines){let startLine=symbol2.range.start.line,endLine=Math.min(startLine+2,symbol2.range.end.line,lines.length-1);return lines.slice(startLine,endLine+1).join(`
|
|
135
135
|
`)}getFullElementText(symbol2,lines){let startLine=symbol2.range.start.line,endLine=Math.min(symbol2.range.end.line,lines.length-1);return lines.slice(startLine,endLine+1).join(`
|
|
136
136
|
`)}extractDirection(symbol2,lines){if(symbol2.kind!=="port"&&symbol2.kind!=="port def")return;let elementText=this.getElementText(symbol2,lines);if(containsWord(elementText,"inout"))return"inout";if(containsWord(elementText,"in"))return"in";if(containsWord(elementText,"out"))return"out"}extractMultiplicity(symbol2,lines){let elementText=this.getElementText(symbol2,lines),open=elementText.indexOf("[");if(open<0)return;let close=elementText.indexOf("]",open+1);if(!(close<0))return elementText.substring(open+1,close)}extractModifier(symbol2,lines){let elementText=this.getElementText(symbol2,lines),modifiers=[];return containsWord(elementText,"abstract")&&modifiers.push("abstract"),containsWord(elementText,"readonly")&&modifiers.push("readonly"),containsWord(elementText,"derived")&&modifiers.push("derived"),containsWord(elementText,"variation")&&modifiers.push("variation"),containsWord(elementText,"individual")&&modifiers.push("individual"),modifiers.length>0?modifiers.join(", "):void 0}extractVisibility(symbol2,lines){let elementText=this.getElementText(symbol2,lines);if(containsWord(elementText,"private"))return"private";if(containsWord(elementText,"protected"))return"protected";if(containsWord(elementText,"public"))return"public"}extractValue(symbol2,lines){if(symbol2.kind!=="attribute")return;let elementText=this.getElementText(symbol2,lines),eqIdx=elementText.indexOf("=");if(eqIdx<0)return;let start=eqIdx+1;if(start<elementText.length&&elementText[start]==="=")return;start=skipWS(elementText,start);let end=start;for(;end<elementText.length;){let ch=elementText[end];if(ch===";"||ch==="{"||ch==="}"||ch===`
|
|
137
137
|
`)break;end++}let val=elementText.substring(start,end).trim();if(val&&!val.includes("def")&&val.length<100)return val}extractSpecializations(symbol2,lines){let elementText=this.getElementText(symbol2,lines),colonGtIdx=elementText.indexOf(":>");if(colonGtIdx>=0&&!(colonGtIdx+2<elementText.length&&elementText[colonGtIdx+2]===">"))return readCommaSeparatedIdents(elementText,colonGtIdx+2);let specPositions=findWordPositions(elementText,"specializes");return specPositions.length>0?readCommaSeparatedIdents(elementText,specPositions[0].afterPos):[]}extractConnectionEndpoints(symbol2,lines){let elementText=this.getElementText(symbol2,lines),endpoints=[],connectPositions=findWordPositions(elementText,"connect");for(let{afterPos}of connectPositions){let[name1,end1]=readWordAfterKeyword(elementText,afterPos,!0);if(!name1)continue;let toPos=skipWS(elementText,end1);if(elementText.substring(toPos,toPos+2)==="to"){let afterTo=toPos+2,[name2]=readWordAfterKeyword(elementText,afterTo,!0);if(name2)return endpoints.push(name1,name2),endpoints}}let endPositions=findWordPositions(elementText,"end");for(let{afterPos}of endPositions){let[name]=readWordAfterKeyword(elementText,afterPos,!0);name&&endpoints.push(name)}return endpoints}extractStandaloneSatisfyVerify(text){let rels=[],keywords=["satisfy","verify"];for(let kw of keywords){let positions=findWordPositions(text,kw);for(let{afterPos}of positions){let pos=skipWS(text,afterPos),[nextWord,afterWord]=readNameOrQuoted(text,pos);nextWord==="requirement"?pos=skipWS(text,afterWord):pos=skipWS(text,afterPos);let[reqName,afterReq]=readNameOrQuoted(text,pos);if(!reqName||reqName==="requirement")continue;let byPos=skipWS(text,afterReq),[byWord,afterBy]=readIdent(text,byPos),source;if(byWord==="by"){let[byTarget]=readNameOrQuoted(text,skipWS(text,afterBy));if(!byTarget)continue;source=byTarget}rels.push({type:kw,source,target:reqName})}}return rels}extractKeywordRelationships(elementName,elementText){elementText=stripComments(elementText);let rels=[],subsetsPositions=findWordPositions(elementText,"subsets");if(subsetsPositions.length>0){let[target]=readWordAfterKeyword(elementText,subsetsPositions[0].afterPos);target&&rels.push({type:"subsetting",source:elementName,target})}let redefPositions=findWordPositions(elementText,"redefines");if(redefPositions.length>0){let[target]=readWordAfterKeyword(elementText,redefPositions[0].afterPos);target&&rels.push({type:"redefinition",source:elementName,target})}let satisfyPositions=findWordPositions(elementText,"satisfy");if(satisfyPositions.length>0){let pos=skipWS(elementText,satisfyPositions[0].afterPos),[nextWord,afterWord]=readNameOrQuoted(elementText,pos);nextWord==="requirement"&&(pos=skipWS(elementText,afterWord));let[reqName,afterReq]=readNameOrQuoted(elementText,pos);if(reqName&&reqName!=="requirement"){let satisfier=elementName,byPos=skipWS(elementText,afterReq),[byWord,afterBy]=readIdent(elementText,byPos);if(byWord==="by"){let[byTarget]=readNameOrQuoted(elementText,skipWS(elementText,afterBy));byTarget&&(satisfier=byTarget)}rels.push({type:"satisfy",source:satisfier,target:reqName})}}let verifyPositions=findWordPositions(elementText,"verify");if(verifyPositions.length>0){let pos=skipWS(elementText,verifyPositions[0].afterPos),[nextWord,afterWord]=readNameOrQuoted(elementText,pos);nextWord==="requirement"&&(pos=skipWS(elementText,afterWord));let[reqName,afterReq]=readNameOrQuoted(elementText,pos);if(reqName&&reqName!=="requirement"){let verifier=elementName,byPos=skipWS(elementText,afterReq),[byWord,afterBy]=readIdent(elementText,byPos);if(byWord==="by"){let[byTarget]=readNameOrQuoted(elementText,skipWS(elementText,afterBy));byTarget&&(verifier=byTarget)}rels.push({type:"verify",source:verifier,target:reqName})}}return rels}extractDecisionBranches(symbol2,lines){let elementText=this.getElementText(symbol2,lines),branches=[],ifPositions=findWordPositions(elementText,"if");for(let{afterPos}of ifPositions){let thenIdx=elementText.indexOf("then",afterPos);if(thenIdx<0)continue;let beforeThen=thenIdx>0?elementText.charCodeAt(thenIdx-1):32,afterThen=thenIdx+4<elementText.length?elementText.charCodeAt(thenIdx+4):32;if(isIdentPart(beforeThen)||isIdentPart(afterThen))continue;let condition=elementText.substring(afterPos,thenIdx).trim(),[target]=readWordAfterKeyword(elementText,thenIdx+4);target&&branches.push({condition,target})}let elsePositions=findWordPositions(elementText,"else");if(elsePositions.length>0){let[target]=readWordAfterKeyword(elementText,elsePositions[0].afterPos);target&&branches.push({condition:"else",target})}return branches}extractSuccessions(parent,lines){let elementText=this.getFullElementText(parent,lines),flows=[],seen=new Set,range=this.rangeToDTO(parent.range),addFlow=(from,to,guard)=>{if(from===to)return;let key=`${from}->${to}`;if(seen.has(key))return;seen.add(key);let f={from,to,range};guard&&(f.guard=guard),flows.push(f)};function braceDepthAt(text,pos){let depth=0;for(let i=0;i<pos&&i<text.length;i++)text[i]==="{"?depth++:text[i]==="}"&&depth--;return depth}let firstBrace=elementText.indexOf("{"),topDepth=firstBrace>=0?braceDepthAt(elementText,firstBrace+1):1,stripQualifier=name=>{let idx=name.lastIndexOf("::");return idx>=0?name.substring(idx+2):name},tokens=[];for(let{pos,afterPos}of findWordPositions(elementText,"first")){if(braceDepthAt(elementText,pos)!==topDepth)continue;let nameStart=skipWS(elementText,afterPos),[name]=readNameOrQuoted(elementText,nameStart);name&&tokens.push({type:"first",name:stripQualifier(name),index:pos})}for(let{pos,afterPos}of findWordPositions(elementText,"then")){if(braceDepthAt(elementText,pos)!==topDepth)continue;let lookbackStart=Math.max(0,pos-100),preceding=elementText.substring(lookbackStart,pos);if(containsWord(preceding,"if")&&!preceding.includes(";"))continue;let nameStart=skipWS(elementText,afterPos),[maybeAction,afterAction]=readIdent(elementText,nameStart);maybeAction==="action"&&(nameStart=skipWS(elementText,afterAction));let[name]=readNameOrQuoted(elementText,nameStart);!name||name==="if"||tokens.push({type:"then",name:stripQualifier(name),index:pos})}tokens.sort((a,b)=>a.index-b.index);let coveredIndices=new Set;for(let i=0;i<tokens.length;i++)if(tokens[i].type==="first"){let chain=[tokens[i].name];coveredIndices.add(i);for(let j=i+1;j<tokens.length&&tokens[j].type==="then";j++)chain.push(tokens[j].name),coveredIndices.add(j);for(let k=0;k<chain.length-1;k++)addFlow(chain[k],chain[k+1])}let uncoveredThens=tokens.filter((t,i)=>!coveredIndices.has(i)&&t.type==="then");if(uncoveredThens.length>0)for(let i=0;i<uncoveredThens.length-1;i++)addFlow(uncoveredThens[i].name,uncoveredThens[i+1].name);if(flows.length>0){let allTargets=new Set(flows.map(f=>f.to)),allSources=new Set(flows.map(f=>f.from)),entryActions=flows.map(f=>f.from).filter(name=>name!=="start"&&name!=="done"&&!allTargets.has(name)),exitActions=flows.map(f=>f.to).filter(name=>name!=="start"&&name!=="done"&&!allSources.has(name));entryActions.length>0&&addFlow("start",entryActions[0]),exitActions.length>0&&addFlow(exitActions[exitActions.length-1],"done")}for(let{afterPos}of findWordPositions(elementText,"succession")){let p=skipWS(elementText,afterPos),[word1,afterWord1]=readIdent(elementText,p);if(word1==="flow"){p=skipWS(elementText,afterWord1);let[fromKw,afterFrom]=readIdent(elementText,p);if(fromKw==="from"){p=skipWS(elementText,afterFrom);let[srcFull,afterSrc]=readIdent(elementText,p,!0),src=srcFull.includes(".")?srcFull.substring(0,srcFull.indexOf(".")):srcFull;p=skipWS(elementText,afterSrc);let[toKw,afterTo]=readIdent(elementText,p);if(toKw==="to"){p=skipWS(elementText,afterTo);let[dstFull]=readIdent(elementText,p,!0),dst=dstFull.includes(".")?dstFull.substring(0,dstFull.indexOf(".")):dstFull;src&&dst&&addFlow(src,dst)}}continue}let nameStart=p;word1==="first"&&(nameStart=skipWS(elementText,afterWord1));let[name1]=readNameOrQuoted(elementText,nameStart);if(!name1)continue;let afterName1=nameStart+name1.length+(elementText[nameStart]==="'"?2:0),thenCheck=skipWS(elementText,afterName1),[thenKw,afterThen]=readIdent(elementText,thenCheck);if(thenKw==="then"){let name2Start=skipWS(elementText,afterThen),[name2]=readNameOrQuoted(elementText,name2Start);name2&&addFlow(stripQualifier(name1),stripQualifier(name2))}}if(findWordPositions(elementText,"decide").some(({afterPos})=>{let p=skipWS(elementText,afterPos);return p<elementText.length&&elementText[p]===";"})){for(let fi=flows.length-1;fi>=0;fi--)flows[fi].from==="decide"&&(seen.delete(`decide->${flows[fi].to}`),flows.splice(fi,1));let branchTargets=[];for(let{afterPos:ifAfter}of findWordPositions(elementText,"if")){let thenIdx=elementText.indexOf("then",ifAfter);if(thenIdx<0)continue;let bBefore=thenIdx>0?elementText.charCodeAt(thenIdx-1):32,bAfter=thenIdx+4<elementText.length?elementText.charCodeAt(thenIdx+4):32;if(isIdentPart(bBefore)||isIdentPart(bAfter))continue;let condition=elementText.substring(ifAfter,thenIdx).trim(),targetStart=skipWS(elementText,thenIdx+4),[target]=readNameOrQuoted(elementText,targetStart);if(target){let afterTarget=targetStart+target.length+(elementText[targetStart]==="'"?2:0),semi=skipWS(elementText,afterTarget);semi<elementText.length&&elementText[semi]===";"&&(addFlow("decide",target,condition),branchTargets.push(target))}}for(let{pos:mergePos,afterPos:mergeAfter}of findWordPositions(elementText,"merge")){let mStart=skipWS(elementText,mergeAfter),[mergeTarget]=readNameOrQuoted(elementText,mStart);if(!mergeTarget)continue;let afterMT=mStart+mergeTarget.length+(elementText[mStart]==="'"?2:0),semiP=skipWS(elementText,afterMT);if(semiP>=elementText.length||elementText[semiP]!==";")continue;for(let branch of branchTargets)addFlow(branch,mergeTarget);let afterMerge=tokens.filter(t=>t.type==="then"&&t.index>mergePos);afterMerge.length>0?addFlow(mergeTarget,afterMerge[0].name):mergeTarget!=="done"&&addFlow(mergeTarget,"done")}}return flows}featureKindFromElementKind(kind){switch(kind){case"attribute":case"attribute def":return"attribute";case"port":case"port def":return"port";case"action":case"action def":return"action";case"state":case"state def":return"state";default:return"reference"}}symbolToActionDTO(symbol2,symbolTable,lines){let childText=this.getElementText(symbol2,lines),actionType="action",lowerText=childText.toLowerCase();return lowerText.includes("fork")?actionType="fork":lowerText.includes("join")?actionType="join":lowerText.includes("merge")?actionType="merge":lowerText.includes("decide")&&(actionType="decision"),{name:symbol2.name,type:actionType,isDefinition:symbol2.kind==="action def",range:this.rangeToDTO(symbol2.range)}}};var STANDARD_LIBRARY_TYPES=new Set(["Boolean","String","Integer","Real","Natural","Positive","Complex","Number","Rational","ScalarValues","DataFunctions","Anything","Nothing","Object","Occurrence","Base","Objects","Occurrences","Items","Parts","Ports","Actions","States","Connections","Interfaces","Allocations","Requirements","Constraints","Calculations","Cases","Flows","Transfers","Performances","TransitionPerformances","ISQ","SI","USCustomaryUnits","Quantities","MeasurementReferences","ScalarValues","GeneralView","InterconnectionView","ActionFlowView","StateTransitionView","SequenceView","GeometryView","GridView","BrowserView","StandardViewDefinitions","View","ViewpointCheck","Rendering","TextualRendering","GraphicalRendering","TabularRendering","Views","LengthValue","MassValue","DurationValue","TimeValue","ElectricCurrentValue","ThermodynamicTemperatureValue","TemperatureValue","AmountOfSubstanceValue","LuminousIntensityValue","AreaValue","VolumeValue","SpeedValue","VelocityValue","AccelerationValue","ForceValue","EnergyValue","PowerValue","PressureValue","TorqueValue","MomentOfForceValue","AngularVelocityValue","FrequencyValue","DensityValue","MassFlowRateValue","VolumeFlowRateValue","LengthUnit","MassUnit","DurationUnit","TimeUnit"]),CONSTRAINT_KEYWORDS=new Set(["and","or","not","xor","implies","if","then","else","true","false","null","require","constraint","subject","return","doc","comment","assert","assume"]);function isISQValueType(name){if(!name.endsWith("Value")||name.length<6)return!1;let ch0=name.charCodeAt(0);if(ch0<65||ch0>90)return!1;for(let i=1;i<name.length;i++){let c=name.charCodeAt(i);if(!(c>=65&&c<=90||c>=97&&c<=122))return!1}return!0}var SemanticValidator=class _SemanticValidator{constructor(documentManager){this.documentManager=documentManager;this.modelProvider=new SysMLModelProvider(documentManager)}documentManager;modelProvider;satisfyCache;verifyCache;indexCache;symbolNamesCache;libraryNamesCache;addRequirementNameVariants(out,ref){if(!ref)return;let trimmed=ref.trim();if(!trimmed)return;out.add(trimmed);let lastSeg=trimmed.includes("::")?trimmed.split("::").pop():trimmed;out.add(lastSeg)}collectWorkspaceRequirementRelationshipNames(){let satisfiedNames=new Set,verifiedNames=new Set,uris=this.documentManager.getUris();for(let uri of uris){let version2=this.documentManager.getVersion(uri);if(version2<0)continue;let rels=this.modelProvider.getModel(uri,version2,["relationships"]).relationships??[];for(let rel of rels)rel.type==="satisfy"?this.addRequirementNameVariants(satisfiedNames,rel.target):rel.type==="verify"&&this.addRequirementNameVariants(verifiedNames,rel.target)}return{satisfiedNames,verifiedNames}}validate(uri){let symbolTable=this.documentManager.getWorkspaceSymbolTable(),symbols=symbolTable.getSymbolsForUri(uri);if(symbols.length===0)return[];let allSymbols=symbolTable.getAllSymbols(),allSymbolNames;this.symbolNamesCache&&this.symbolNamesCache.symbols===allSymbols?allSymbolNames=this.symbolNamesCache.names:(allSymbolNames=new Set(allSymbols.map(s=>s.name)),this.symbolNamesCache={symbols:allSymbols,names:allSymbolNames}),this.libraryNamesCache||(this.libraryNamesCache=new Set(getLibraryPackageNames()));let libraryNames=this.libraryNamesCache,text=this.documentManager.getText(uri)??"",indexes=this.getOrBuildIndexes(allSymbols),diagnostics=[];for(let symbol2 of symbols)diagnostics.push(...this.checkUnresolvedType(symbol2,allSymbolNames,libraryNames),...this.checkInvalidMultiplicity(symbol2),...this.checkEmptyEnum(symbol2,symbols),...this.checkNamingConvention(symbol2),...this.checkMissingDocumentation(symbol2));return diagnostics.push(...this.checkDuplicateDefinitions(symbols)),diagnostics.push(...this.checkUnusedDefinitions(allSymbols,uri)),diagnostics.push(...this.checkRedefinitionMultiplicity(symbols,indexes,text)),diagnostics.push(...this.checkPortCompatibility(text,uri,indexes)),diagnostics.push(...this.checkConstraintBodyReferences(text,uri,symbols,indexes)),diagnostics.push(...this.checkCircularSpecialization(symbols,indexes)),diagnostics.push(...this.checkCircularContainment(symbols,indexes)),diagnostics.push(...this.checkUnsatisfiedRequirements(symbols,indexes)),diagnostics.push(...this.checkUnverifiedRequirements(symbols,indexes)),diagnostics.push(...this.checkViewpointSatisfaction(symbols,indexes)),this.dedupeDiagnostics(diagnostics)}checkUnresolvedType(symbol2,allSymbolNames,libraryNames){if(!symbol2.typeName)return[];let typeName=symbol2.typeName,kwMatch=typeName.match(/^([A-Z][A-Za-z_0-9]*?)(redefines|subsets|references|connect|bind|default|via|accept|send|flow|allocate|assign|decide|merge|join|fork)([A-Z])/);kwMatch&&(typeName=kwMatch[1]);let rootSegment=typeName.split("::")[0];if(allSymbolNames.has(typeName)||allSymbolNames.has(rootSegment)||STANDARD_LIBRARY_TYPES.has(typeName)||STANDARD_LIBRARY_TYPES.has(rootSegment)||libraryNames.has(rootSegment)||isISQValueType(typeName)||resolveLibraryType(typeName)!==void 0||resolveLibraryType(rootSegment)!==void 0||typeName.charCodeAt(0)>=97&&typeName.charCodeAt(0)<=122)return[];let isMandatory=symbol2.multiplicityRange&&symbol2.multiplicityRange.lower>=1,severity=isMandatory?import_node.DiagnosticSeverity.Error:import_node.DiagnosticSeverity.Warning,message=`Type '${typeName}' is not defined in the current document or standard library`;if(isMandatory){let multStr=symbol2.multiplicity??"1";message+=` (feature '${symbol2.name}' requires multiplicity [${multStr}])`}return[{severity,range:symbol2.selectionRange,message,source:"sysml",code:"unresolved-type",data:{typeName}}]}checkInvalidMultiplicity(symbol2){if(!symbol2.multiplicityRange||!symbol2.multiplicity)return[];let{lower,upper}=symbol2.multiplicityRange;return typeof upper=="number"&&lower>upper?[{severity:import_node.DiagnosticSeverity.Error,range:symbol2.selectionRange,message:`Invalid multiplicity [${symbol2.multiplicity}]: lower bound (${lower}) exceeds upper bound (${upper})`,source:"sysml",code:"invalid-multiplicity"}]:lower<0?[{severity:import_node.DiagnosticSeverity.Error,range:symbol2.selectionRange,message:`Invalid multiplicity [${symbol2.multiplicity}]: lower bound cannot be negative`,source:"sysml",code:"invalid-multiplicity"}]:[]}checkEmptyEnum(symbol2,allSymbols){return symbol2.kind!=="enum def"?[]:allSymbols.filter(s=>s.parentQualifiedName===symbol2.qualifiedName).some(c=>c.kind==="enum"||c.kind==="attribute")?[]:[{severity:import_node.DiagnosticSeverity.Information,range:symbol2.selectionRange,message:`Enumeration '${symbol2.name}' has no enum values defined`,source:"sysml",code:"empty-enum"}]}checkNamingConvention(symbol2){if(!symbol2.name)return[];if(symbol2.kind==="package"||symbol2.kind==="import"||symbol2.kind==="comment"||symbol2.kind==="doc"||symbol2.kind==="alias"||symbol2.kind==="unknown")return[];if(isDefinition(symbol2.kind)){let ch=symbol2.name[0];if(ch===ch.toLowerCase()&&ch!==ch.toUpperCase())return[{severity:import_node.DiagnosticSeverity.Hint,range:symbol2.selectionRange,message:`Definition '${symbol2.name}' should use PascalCase`,source:"sysml",code:"naming-convention",data:{name:symbol2.name,convention:"PascalCase"}}]}else{let ch=symbol2.name[0];if(ch===ch.toUpperCase()&&ch!==ch.toLowerCase())return[{severity:import_node.DiagnosticSeverity.Hint,range:symbol2.selectionRange,message:`Usage '${symbol2.name}' should use camelCase`,source:"sysml",code:"naming-convention",data:{name:symbol2.name,convention:"camelCase"}}]}return[]}checkMissingDocumentation(symbol2){return isDefinition(symbol2.kind)?symbol2.documentation?[]:[{severity:import_node.DiagnosticSeverity.Information,range:symbol2.selectionRange,message:`Definition '${symbol2.name}' has no documentation`,source:"sysml",code:"missing-doc",data:{name:symbol2.name}}]:[]}checkUnusedDefinitions(symbols,targetUri){let defs=symbols.filter(s=>s.kind==="part def"||s.kind==="action def"),defsInScope=targetUri?defs.filter(def=>def.uri===targetUri):defs,referencedTypes=new Set(symbols.filter(s=>s.kind!=="package").flatMap(s=>s.typeNames));for(let s of symbols)if(s.exposeTargets)for(let target of s.exposeTargets){let simpleName=target.replace(/::\*{1,2}$/,"").split("::").pop();simpleName&&referencedTypes.add(simpleName)}let diagnostics=[];for(let def of defsInScope){let isReferenced=referencedTypes.has(def.name),hasBaseType=(def.typeNames?.length??0)>0;!isReferenced&&!hasBaseType&&diagnostics.push({severity:import_node.DiagnosticSeverity.Warning,range:def.selectionRange,message:`Definition '${def.name}' is not referenced by any usage in the workspace`,source:"sysml",code:"unused-definition",data:{name:def.name}})}return diagnostics}static validateSymbols(symbolsInUri,allNames,opts){let diagnostics=[],instance=Object.create(_SemanticValidator.prototype),allSymbols=opts?.allSymbols??symbolsInUri,includeStyleRules=opts?.includeStyleRules??!0,indexes=instance.buildSymbolIndexes(allSymbols);for(let symbol2 of symbolsInUri)diagnostics.push(...instance.checkUnresolvedType(symbol2,allNames,new Set),...instance.checkInvalidMultiplicity(symbol2),...instance.checkEmptyEnum(symbol2,symbolsInUri)),includeStyleRules&&diagnostics.push(...instance.checkNamingConvention(symbol2),...instance.checkMissingDocumentation(symbol2));return diagnostics.push(...instance.checkDuplicateDefinitions(symbolsInUri)),diagnostics.push(...instance.checkUnusedDefinitions(allSymbols)),diagnostics.push(...instance.checkRedefinitionMultiplicity(symbolsInUri,indexes,opts?.text)),diagnostics.push(...instance.checkCircularSpecialization(symbolsInUri,indexes)),diagnostics.push(...instance.checkCircularContainment(symbolsInUri,indexes)),diagnostics.push(...instance.checkUnsatisfiedRequirements(allSymbols,indexes,opts?.text?[opts.text]:[])),diagnostics.push(...instance.checkUnverifiedRequirements(allSymbols,indexes,opts?.text?[opts.text]:[])),opts?.text&&opts.uri&&(diagnostics.push(...instance.checkPortCompatibility(opts.text,opts.uri,indexes)),diagnostics.push(...instance.checkConstraintBodyReferences(opts.text,opts.uri,symbolsInUri,indexes))),instance.dedupeDiagnostics(diagnostics)}checkCircularSpecialization(symbolsInUri,indexes){let diagnostics=[],defsInFile=symbolsInUri.filter(s=>isDefinition(s.kind)&&s.typeNames.length>0);for(let def of defsInFile){let visited=new Set;visited.add(def.name);let cycle=this.followSpecializationChain(def.name,def.typeNames,visited,indexes);cycle&&diagnostics.push({severity:import_node.DiagnosticSeverity.Error,range:def.selectionRange,message:`Circular specialization: ${cycle.join(" :> ")} :> ${cycle[0]}`,source:"sysml",code:"circular-specialization"})}return diagnostics}followSpecializationChain(originName,typeNames,visited,indexes){for(let tn of typeNames){if(visited.has(tn))return[...visited];let candidates=indexes.definitionsByName.get(tn);if(!candidates||candidates.length===0)continue;let target=candidates[0];if(target.typeNames.length===0)continue;visited.add(tn);let cycle=this.followSpecializationChain(originName,target.typeNames,visited,indexes);if(cycle)return cycle;visited.delete(tn)}}checkCircularContainment(symbolsInUri,indexes){let diagnostics=[],defsInFile=symbolsInUri.filter(s=>isDefinition(s.kind));for(let def of defsInFile){let children=indexes.byParent.get(def.qualifiedName)??[],childTypeNames=children.flatMap(c=>c.typeNames).filter(t=>t.length>0);if(childTypeNames.length!==0)for(let childTypeName of childTypeNames){if(childTypeName===def.name)continue;let visited=new Set;visited.add(def.name);let cycle=this.followContainmentChain(childTypeName,visited,indexes);if(cycle){let range=children.find(c=>c.typeNames.includes(childTypeName))?.selectionRange??def.selectionRange;diagnostics.push({severity:import_node.DiagnosticSeverity.Error,range,message:`Circular containment: ${cycle.join(" -> ")} -> ${cycle[0]}`,source:"sysml",code:"circular-containment"});break}}}return diagnostics}followContainmentChain(typeName,visited,indexes){if(visited.has(typeName))return[...visited];let candidates=indexes.definitionsByName.get(typeName);if(!candidates||candidates.length===0)return;let target=candidates[0],childTypeNames=(indexes.byParent.get(target.qualifiedName)??[]).flatMap(c=>c.typeNames).filter(t=>t.length>0);if(childTypeNames.length!==0){visited.add(typeName);for(let tn of childTypeNames){let cycle=this.followContainmentChain(tn,visited,indexes);if(cycle)return cycle}visited.delete(typeName)}}checkUnsatisfiedRequirements(allSymbols,indexes,workspaceTexts){let diagnostics=[],satisfiedNames,satisfyBlockRanges;if(workspaceTexts){satisfiedNames=new Set,satisfyBlockRanges=new Map;for(let text of workspaceTexts)this.extractSatisfyReferences(text,satisfiedNames),satisfyBlockRanges.set("__static__",this.extractSatisfyBlockRanges(text))}else if(this.documentManager){let uris=this.documentManager.getUris(),versionKey=uris.map(u=>u+":"+this.documentManager.getVersion(u)).join("|");if(this.satisfyCache&&this.satisfyCache.versionKey===versionKey)satisfiedNames=this.satisfyCache.satisfiedNames,satisfyBlockRanges=this.satisfyCache.satisfyBlockRanges;else{let relNames=this.collectWorkspaceRequirementRelationshipNames();satisfiedNames=relNames.satisfiedNames,satisfyBlockRanges=new Map;for(let uri of uris){let text=this.documentManager.getText(uri);text&&satisfyBlockRanges.set(uri,this.extractSatisfyBlockRanges(text))}this.satisfyCache={versionKey,satisfiedNames,satisfyBlockRanges},(!this.verifyCache||this.verifyCache.versionKey!==versionKey)&&(this.verifyCache={versionKey,verifiedNames:relNames.verifiedNames})}}else satisfiedNames=new Set,satisfyBlockRanges=new Map;let requirementUsages=allSymbols.filter(s=>s.kind==="requirement");for(let req of requirementUsages){if(req.parentQualifiedName&&indexes.byQualifiedName.get(req.parentQualifiedName)?.kind==="requirement")continue;let uriRanges=satisfyBlockRanges.get(req.uri)??satisfyBlockRanges.get("__static__")??[],reqLine=req.selectionRange.start.line;if(uriRanges.some(r=>reqLine>=r.startLine&&reqLine<=r.endLine))continue;satisfiedNames.has(req.name)||satisfiedNames.has(req.qualifiedName)||diagnostics.push({severity:import_node.DiagnosticSeverity.Warning,range:req.selectionRange,message:`Requirement '${req.name}' is not satisfied by any element`,source:"sysml",code:"unsatisfied-requirement",data:{name:req.name,qualifiedName:req.qualifiedName}})}return diagnostics}extractSatisfyReferences(text,out){let stripped=stripComments(text),re=/\bsatisfy\s+(?:requirement\s+)?([\w]+(?:::[\w]+)*)\s+(?:by\b|;|:)/g,m2;for(;(m2=re.exec(stripped))!==null;){let ref=m2[1];out.add(ref);let lastSeg=ref.includes("::")?ref.split("::").pop():ref;out.add(lastSeg)}}extractSatisfyBlockRanges(text){let ranges=[],stripped=stripComments(text),re=/\bsatisfy\b[^;{]*\{/g,m2,lineOffsets;for(;(m2=re.exec(stripped))!==null;){let open=m2.index+m2[0].length-1,depth=1,i=open+1;for(;i<stripped.length&&depth>0;)stripped[i]==="{"&&depth++,stripped[i]==="}"&&depth--,i++;if(depth===0){if(!lineOffsets){lineOffsets=[0];for(let j=0;j<text.length;j++)text[j]===`
|