sysml-v2-lsp 0.1.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.
@@ -0,0 +1,101 @@
1
+ import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
+ var s5=Object.create;var h4=Object.defineProperty;var a5=Object.getOwnPropertyDescriptor;var o5=Object.getOwnPropertyNames;var l5=Object.getPrototypeOf,u5=Object.prototype.hasOwnProperty;var Dt=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var _=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var c5=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of o5(e))!u5.call(r,n)&&n!==t&&h4(r,n,{get:()=>e[n],enumerable:!(i=a5(e,n))||i.enumerable});return r};var yt=(r,e,t)=>(t=r!=null?s5(l5(r)):{},c5(e||!r||!r.__esModule?h4(t,"default",{value:r,enumerable:!0}):t,r));var ll=_(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.thenable=Ve.typedArray=Ve.stringArray=Ve.array=Ve.func=Ve.error=Ve.number=Ve.string=Ve.boolean=void 0;function h5(r){return r===!0||r===!1}Ve.boolean=h5;function d4(r){return typeof r=="string"||r instanceof String}Ve.string=d4;function d5(r){return typeof r=="number"||r instanceof Number}Ve.number=d5;function p5(r){return r instanceof Error}Ve.error=p5;function p4(r){return typeof r=="function"}Ve.func=p4;function f4(r){return Array.isArray(r)}Ve.array=f4;function f5(r){return f4(r)&&r.every(e=>d4(e))}Ve.stringArray=f5;function x5(r,e){return Array.isArray(r)&&r.every(e)}Ve.typedArray=x5;function m5(r){return r&&p4(r.then)}Ve.thenable=m5});var fn=_(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.stringArray=at.array=at.func=at.error=at.number=at.string=at.boolean=void 0;function b5(r){return r===!0||r===!1}at.boolean=b5;function x4(r){return typeof r=="string"||r instanceof String}at.string=x4;function R5(r){return typeof r=="number"||r instanceof Number}at.number=R5;function g5(r){return r instanceof Error}at.error=g5;function y5(r){return typeof r=="function"}at.func=y5;function m4(r){return Array.isArray(r)}at.array=m4;function C5(r){return m4(r)&&r.every(e=>x4(e))}at.stringArray=C5});var k2=_(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.Message=G.NotificationType9=G.NotificationType8=G.NotificationType7=G.NotificationType6=G.NotificationType5=G.NotificationType4=G.NotificationType3=G.NotificationType2=G.NotificationType1=G.NotificationType0=G.NotificationType=G.RequestType9=G.RequestType8=G.RequestType7=G.RequestType6=G.RequestType5=G.RequestType4=G.RequestType3=G.RequestType2=G.RequestType1=G.RequestType=G.RequestType0=G.AbstractMessageSignature=G.ParameterStructures=G.ResponseError=G.ErrorCodes=void 0;var vi=fn(),d2;(function(r){r.ParseError=-32700,r.InvalidRequest=-32600,r.MethodNotFound=-32601,r.InvalidParams=-32602,r.InternalError=-32603,r.jsonrpcReservedErrorRangeStart=-32099,r.serverErrorStart=-32099,r.MessageWriteError=-32099,r.MessageReadError=-32098,r.PendingResponseRejected=-32097,r.ConnectionInactive=-32096,r.ServerNotInitialized=-32002,r.UnknownErrorCode=-32001,r.jsonrpcReservedErrorRangeEnd=-32e3,r.serverErrorEnd=-32e3})(d2||(G.ErrorCodes=d2={}));var p2=class r extends Error{constructor(e,t,i){super(t),this.code=vi.number(e)?e:d2.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,r.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};G.ResponseError=p2;var Ct=class r{constructor(e){this.kind=e}static is(e){return e===r.auto||e===r.byName||e===r.byPosition}toString(){return this.kind}};G.ParameterStructures=Ct;Ct.auto=new Ct("auto");Ct.byPosition=new Ct("byPosition");Ct.byName=new Ct("byName");var Pe=class{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return Ct.auto}};G.AbstractMessageSignature=Pe;var f2=class extends Pe{constructor(e){super(e,0)}};G.RequestType0=f2;var x2=class extends Pe{constructor(e,t=Ct.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};G.RequestType=x2;var m2=class extends Pe{constructor(e,t=Ct.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};G.RequestType1=m2;var b2=class extends Pe{constructor(e){super(e,2)}};G.RequestType2=b2;var R2=class extends Pe{constructor(e){super(e,3)}};G.RequestType3=R2;var g2=class extends Pe{constructor(e){super(e,4)}};G.RequestType4=g2;var y2=class extends Pe{constructor(e){super(e,5)}};G.RequestType5=y2;var C2=class extends Pe{constructor(e){super(e,6)}};G.RequestType6=C2;var v2=class extends Pe{constructor(e){super(e,7)}};G.RequestType7=v2;var E2=class extends Pe{constructor(e){super(e,8)}};G.RequestType8=E2;var L2=class extends Pe{constructor(e){super(e,9)}};G.RequestType9=L2;var S2=class extends Pe{constructor(e,t=Ct.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};G.NotificationType=S2;var P2=class extends Pe{constructor(e){super(e,0)}};G.NotificationType0=P2;var T2=class extends Pe{constructor(e,t=Ct.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};G.NotificationType1=T2;var A2=class extends Pe{constructor(e){super(e,2)}};G.NotificationType2=A2;var M2=class extends Pe{constructor(e){super(e,3)}};G.NotificationType3=M2;var N2=class extends Pe{constructor(e){super(e,4)}};G.NotificationType4=N2;var U2=class extends Pe{constructor(e){super(e,5)}};G.NotificationType5=U2;var w2=class extends Pe{constructor(e){super(e,6)}};G.NotificationType6=w2;var D2=class extends Pe{constructor(e){super(e,7)}};G.NotificationType7=D2;var I2=class extends Pe{constructor(e){super(e,8)}};G.NotificationType8=I2;var O2=class extends Pe{constructor(e){super(e,9)}};G.NotificationType9=O2;var b4;(function(r){function e(n){let a=n;return a&&vi.string(a.method)&&(vi.string(a.id)||vi.number(a.id))}r.isRequest=e;function t(n){let a=n;return a&&vi.string(a.method)&&n.id===void 0}r.isNotification=t;function i(n){let a=n;return a&&(a.result!==void 0||!!a.error)&&(vi.string(a.id)||vi.number(a.id)||a.id===null)}r.isResponse=i})(b4||(G.Message=b4={}))});var H2=_(jr=>{"use strict";var R4;Object.defineProperty(jr,"__esModule",{value:!0});jr.LRUCache=jr.LinkedMap=jr.Touch=void 0;var ot;(function(r){r.None=0,r.First=1,r.AsOld=r.First,r.Last=2,r.AsNew=r.Last})(ot||(jr.Touch=ot={}));var ul=class{constructor(){this[R4]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=ot.None){let i=this._map.get(e);if(i)return t!==ot.None&&this.touch(i,t),i.value}set(e,t,i=ot.None){let n=this._map.get(e);if(n)n.value=t,i!==ot.None&&this.touch(n,i);else{switch(n={key:e,value:t,next:void 0,previous:void 0},i){case ot.None:this.addItemLast(n);break;case ot.First:this.addItemFirst(n);break;case ot.Last:this.addItemLast(n);break;default:this.addItemLast(n);break}this._map.set(e,n),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let i=this._state,n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");n=n.next}}keys(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let n={value:t.key,done:!1};return t=t.next,n}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let n={value:t.value,done:!1};return t=t.next,n}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let n={value:[t.key,t.value],done:!1};return t=t.next,n}else return{value:void 0,done:!0}}};return i}[(R4=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==ot.First&&t!==ot.Last)){if(t===ot.First){if(e===this._head)return;let i=e.next,n=e.previous;e===this._tail?(n.next=void 0,this._tail=n):(i.previous=n,n.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===ot.Last){if(e===this._tail)return;let i=e.next,n=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=n,n.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(let[t,i]of e)this.set(t,i)}};jr.LinkedMap=ul;var F2=class extends ul{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=ot.AsNew){return super.get(e,t)}peek(e){return super.get(e,ot.None)}set(e,t){return super.set(e,t,ot.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};jr.LRUCache=F2});var y4=_(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.Disposable=void 0;var g4;(function(r){function e(t){return{dispose:t}}r.create=e})(g4||(cl.Disposable=g4={}))});var Gr=_(V2=>{"use strict";Object.defineProperty(V2,"__esModule",{value:!0});var B2;function _2(){if(B2===void 0)throw new Error("No runtime abstraction layer installed");return B2}(function(r){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");B2=t}r.install=e})(_2||(_2={}));V2.default=_2});var mn=_(xn=>{"use strict";Object.defineProperty(xn,"__esModule",{value:!0});xn.Emitter=xn.Event=void 0;var v5=Gr(),C4;(function(r){let e={dispose(){}};r.None=function(){return e}})(C4||(xn.Event=C4={}));var q2=class{add(e,t=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let i=!1;for(let n=0,a=this._callbacks.length;n<a;n++)if(this._callbacks[n]===e)if(this._contexts[n]===t){this._callbacks.splice(n,1),this._contexts.splice(n,1);return}else i=!0;if(i)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],i=this._callbacks.slice(0),n=this._contexts.slice(0);for(let a=0,o=i.length;a<o;a++)try{t.push(i[a].apply(n[a],e))}catch(l){(0,v5.default)().console.error(l)}return t}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},hl=class r{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,i)=>{this._callbacks||(this._callbacks=new q2),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let n={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),n.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(n),n}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};xn.Emitter=hl;hl._noop=function(){}});var fl=_(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.CancellationTokenSource=bn.CancellationToken=void 0;var E5=Gr(),L5=fn(),j2=mn(),dl;(function(r){r.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:j2.Event.None}),r.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:j2.Event.None});function e(t){let i=t;return i&&(i===r.None||i===r.Cancelled||L5.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}r.is=e})(dl||(bn.CancellationToken=dl={}));var S5=Object.freeze(function(r,e){let t=(0,E5.default)().timer.setTimeout(r.bind(e),0);return{dispose(){t.dispose()}}}),pl=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?S5:(this._emitter||(this._emitter=new j2.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},G2=class{get token(){return this._token||(this._token=new pl),this._token}cancel(){this._token?this._token.cancel():this._token=dl.Cancelled}dispose(){this._token?this._token instanceof pl&&this._token.dispose():this._token=dl.None}};bn.CancellationTokenSource=G2});var v4=_(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.SharedArrayReceiverStrategy=Rn.SharedArraySenderStrategy=void 0;var P5=fl(),Ds;(function(r){r.Continue=0,r.Cancelled=1})(Ds||(Ds={}));var W2=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let t=new SharedArrayBuffer(4),i=new Int32Array(t,0,1);i[0]=Ds.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let i=this.buffers.get(t);if(i===void 0)return;let n=new Int32Array(i,0,1);Atomics.store(n,0,Ds.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};Rn.SharedArraySenderStrategy=W2;var K2=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===Ds.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},z2=class{constructor(e){this.token=new K2(e)}cancel(){}dispose(){}},Q2=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let t=e.$cancellationData;return t===void 0?new P5.CancellationTokenSource:new z2(t)}};Rn.SharedArrayReceiverStrategy=Q2});var Y2=_(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});xl.Semaphore=void 0;var T5=Gr(),$2=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,i)=>{this._waiting.push({thunk:e,resolve:t,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,T5.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}};xl.Semaphore=$2});var L4=_(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.ReadableStreamMessageReader=Wr.AbstractMessageReader=Wr.MessageReader=void 0;var X2=Gr(),gn=fn(),J2=mn(),A5=Y2(),E4;(function(r){function e(t){let i=t;return i&&gn.func(i.listen)&&gn.func(i.dispose)&&gn.func(i.onError)&&gn.func(i.onClose)&&gn.func(i.onPartialMessage)}r.is=e})(E4||(Wr.MessageReader=E4={}));var ml=class{constructor(){this.errorEmitter=new J2.Emitter,this.closeEmitter=new J2.Emitter,this.partialMessageEmitter=new J2.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${gn.string(e.message)?e.message:"unknown"}`)}};Wr.AbstractMessageReader=ml;var Z2;(function(r){function e(t){let i,n,a,o=new Map,l,d=new Map;if(t===void 0||typeof t=="string")i=t??"utf-8";else{if(i=t.charset??"utf-8",t.contentDecoder!==void 0&&(a=t.contentDecoder,o.set(a.name,a)),t.contentDecoders!==void 0)for(let f of t.contentDecoders)o.set(f.name,f);if(t.contentTypeDecoder!==void 0&&(l=t.contentTypeDecoder,d.set(l.name,l)),t.contentTypeDecoders!==void 0)for(let f of t.contentTypeDecoders)d.set(f.name,f)}return l===void 0&&(l=(0,X2.default)().applicationJson.decoder,d.set(l.name,l)),{charset:i,contentDecoder:a,contentDecoders:o,contentTypeDecoder:l,contentTypeDecoders:d}}r.fromOptions=e})(Z2||(Z2={}));var ep=class extends ml{constructor(e,t){super(),this.readable=e,this.options=Z2.fromOptions(t),this.buffer=(0,X2.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new A5.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let n=i.get("content-length");if(!n){this.fireError(new Error(`Header must provide a Content-Length property.
3
+ ${JSON.stringify(Object.fromEntries(i))}`));return}let a=parseInt(n);if(isNaN(a)){this.fireError(new Error(`Content-Length value must be a number. Got ${n}`));return}this.nextMessageLength=a}let t=this.buffer.tryReadBody(this.nextMessageLength);if(t===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(t):t,n=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(n)}).catch(i=>{this.fireError(i)})}}catch(t){this.fireError(t)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,X2.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};Wr.ReadableStreamMessageReader=ep});var M4=_(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.WriteableStreamMessageWriter=Kr.AbstractMessageWriter=Kr.MessageWriter=void 0;var S4=Gr(),Is=fn(),M5=Y2(),P4=mn(),N5="Content-Length: ",T4=`\r
4
+ `,A4;(function(r){function e(t){let i=t;return i&&Is.func(i.dispose)&&Is.func(i.onClose)&&Is.func(i.onError)&&Is.func(i.write)}r.is=e})(A4||(Kr.MessageWriter=A4={}));var bl=class{constructor(){this.errorEmitter=new P4.Emitter,this.closeEmitter=new P4.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,i){this.errorEmitter.fire([this.asError(e),t,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${Is.string(e.message)?e.message:"unknown"}`)}};Kr.AbstractMessageWriter=bl;var tp;(function(r){function e(t){return t===void 0||typeof t=="string"?{charset:t??"utf-8",contentTypeEncoder:(0,S4.default)().applicationJson.encoder}:{charset:t.charset??"utf-8",contentEncoder:t.contentEncoder,contentTypeEncoder:t.contentTypeEncoder??(0,S4.default)().applicationJson.encoder}}r.fromOptions=e})(tp||(tp={}));var rp=class extends bl{constructor(e,t){super(),this.writable=e,this.options=tp.fromOptions(t),this.errorCount=0,this.writeSemaphore=new M5.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let n=[];return n.push(N5,i.byteLength.toString(),T4),n.push(T4),this.doWrite(e,n,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,t,i){try{return await this.writable.write(t.join(""),"ascii"),this.writable.write(i)}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}};Kr.WriteableStreamMessageWriter=rp});var N4=_(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.AbstractMessageBuffer=void 0;var U5=13,w5=10,D5=`\r
5
+ `,ip=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let t=0,i=0,n=0,a=0;e:for(;i<this._chunks.length;){let f=this._chunks[i];for(n=0;n<f.length;){switch(f[n]){case U5:switch(t){case 0:t=1;break;case 2:t=3;break;default:t=0}break;case w5:switch(t){case 1:t=2;break;case 3:t=4,n++;break e;default:t=0}break;default:t=0}n++}a+=f.byteLength,i++}if(t!==4)return;let o=this._read(a+n),l=new Map,d=this.toString(o,"ascii").split(D5);if(d.length<2)return l;for(let f=0;f<d.length-2;f++){let b=d[f],E=b.indexOf(":");if(E===-1)throw new Error(`Message header must separate key and value using ':'
6
+ ${b}`);let A=b.substr(0,E),D=b.substr(E+1).trim();l.set(e?A.toLowerCase():A,D)}return l}tryReadBody(e){if(!(this._totalLength<e))return this._read(e)}get numberOfBytes(){return this._totalLength}_read(e){if(e===0)return this.emptyBuffer();if(e>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let a=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(a)}if(this._chunks[0].byteLength>e){let a=this._chunks[0],o=this.asNative(a,e);return this._chunks[0]=a.slice(e),this._totalLength-=e,o}let t=this.allocNative(e),i=0,n=0;for(;e>0;){let a=this._chunks[n];if(a.byteLength>e){let o=a.slice(0,e);t.set(o,i),i+=e,this._chunks[n]=a.slice(e),this._totalLength-=e,e-=e}else t.set(a,i),i+=a.byteLength,this._chunks.shift(),this._totalLength-=a.byteLength,e-=a.byteLength}return t}};Rl.AbstractMessageBuffer=ip});var O4=_(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.createMessageConnection=Z.ConnectionOptions=Z.MessageStrategy=Z.CancellationStrategy=Z.CancellationSenderStrategy=Z.CancellationReceiverStrategy=Z.RequestCancellationReceiverStrategy=Z.IdCancellationReceiverStrategy=Z.ConnectionStrategy=Z.ConnectionError=Z.ConnectionErrors=Z.LogTraceNotification=Z.SetTraceNotification=Z.TraceFormat=Z.TraceValues=Z.Trace=Z.NullLogger=Z.ProgressType=Z.ProgressToken=void 0;var U4=Gr(),Ue=fn(),K=k2(),w4=H2(),Os=mn(),np=fl(),Hs;(function(r){r.type=new K.NotificationType("$/cancelRequest")})(Hs||(Hs={}));var sp;(function(r){function e(t){return typeof t=="string"||typeof t=="number"}r.is=e})(sp||(Z.ProgressToken=sp={}));var ks;(function(r){r.type=new K.NotificationType("$/progress")})(ks||(ks={}));var ap=class{constructor(){}};Z.ProgressType=ap;var op;(function(r){function e(t){return Ue.func(t)}r.is=e})(op||(op={}));Z.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var he;(function(r){r[r.Off=0]="Off",r[r.Messages=1]="Messages",r[r.Compact=2]="Compact",r[r.Verbose=3]="Verbose"})(he||(Z.Trace=he={}));var D4;(function(r){r.Off="off",r.Messages="messages",r.Compact="compact",r.Verbose="verbose"})(D4||(Z.TraceValues=D4={}));(function(r){function e(i){if(!Ue.string(i))return r.Off;switch(i=i.toLowerCase(),i){case"off":return r.Off;case"messages":return r.Messages;case"compact":return r.Compact;case"verbose":return r.Verbose;default:return r.Off}}r.fromString=e;function t(i){switch(i){case r.Off:return"off";case r.Messages:return"messages";case r.Compact:return"compact";case r.Verbose:return"verbose";default:return"off"}}r.toString=t})(he||(Z.Trace=he={}));var At;(function(r){r.Text="text",r.JSON="json"})(At||(Z.TraceFormat=At={}));(function(r){function e(t){return Ue.string(t)?(t=t.toLowerCase(),t==="json"?r.JSON:r.Text):r.Text}r.fromString=e})(At||(Z.TraceFormat=At={}));var lp;(function(r){r.type=new K.NotificationType("$/setTrace")})(lp||(Z.SetTraceNotification=lp={}));var gl;(function(r){r.type=new K.NotificationType("$/logTrace")})(gl||(Z.LogTraceNotification=gl={}));var Fs;(function(r){r[r.Closed=1]="Closed",r[r.Disposed=2]="Disposed",r[r.AlreadyListening=3]="AlreadyListening"})(Fs||(Z.ConnectionErrors=Fs={}));var yn=class r extends Error{constructor(e,t){super(t),this.code=e,Object.setPrototypeOf(this,r.prototype)}};Z.ConnectionError=yn;var up;(function(r){function e(t){let i=t;return i&&Ue.func(i.cancelUndispatched)}r.is=e})(up||(Z.ConnectionStrategy=up={}));var yl;(function(r){function e(t){let i=t;return i&&(i.kind===void 0||i.kind==="id")&&Ue.func(i.createCancellationTokenSource)&&(i.dispose===void 0||Ue.func(i.dispose))}r.is=e})(yl||(Z.IdCancellationReceiverStrategy=yl={}));var cp;(function(r){function e(t){let i=t;return i&&i.kind==="request"&&Ue.func(i.createCancellationTokenSource)&&(i.dispose===void 0||Ue.func(i.dispose))}r.is=e})(cp||(Z.RequestCancellationReceiverStrategy=cp={}));var Cl;(function(r){r.Message=Object.freeze({createCancellationTokenSource(t){return new np.CancellationTokenSource}});function e(t){return yl.is(t)||cp.is(t)}r.is=e})(Cl||(Z.CancellationReceiverStrategy=Cl={}));var vl;(function(r){r.Message=Object.freeze({sendCancellation(t,i){return t.sendNotification(Hs.type,{id:i})},cleanup(t){}});function e(t){let i=t;return i&&Ue.func(i.sendCancellation)&&Ue.func(i.cleanup)}r.is=e})(vl||(Z.CancellationSenderStrategy=vl={}));var El;(function(r){r.Message=Object.freeze({receiver:Cl.Message,sender:vl.Message});function e(t){let i=t;return i&&Cl.is(i.receiver)&&vl.is(i.sender)}r.is=e})(El||(Z.CancellationStrategy=El={}));var Ll;(function(r){function e(t){let i=t;return i&&Ue.func(i.handleMessage)}r.is=e})(Ll||(Z.MessageStrategy=Ll={}));var I4;(function(r){function e(t){let i=t;return i&&(El.is(i.cancellationStrategy)||up.is(i.connectionStrategy)||Ll.is(i.messageStrategy))}r.is=e})(I4||(Z.ConnectionOptions=I4={}));var er;(function(r){r[r.New=1]="New",r[r.Listening=2]="Listening",r[r.Closed=3]="Closed",r[r.Disposed=4]="Disposed"})(er||(er={}));function I5(r,e,t,i){let n=t!==void 0?t:Z.NullLogger,a=0,o=0,l=0,d="2.0",f,b=new Map,E,A=new Map,D=new Map,z,pe=new w4.LinkedMap,Ae=new Map,oe=new Set,P=new Map,C=he.Off,I=At.Text,ee,ve=er.New,De=new Os.Emitter,Yt=new Os.Emitter,Ri=new Os.Emitter,_r=new Os.Emitter,Vr=new Os.Emitter,gt=i&&i.cancellationStrategy?i.cancellationStrategy:El.Message;function on(R){if(R===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+R.toString()}function ln(R){return R===null?"res-unknown-"+(++l).toString():"res-"+R.toString()}function Ko(){return"not-"+(++o).toString()}function h2(R,M){K.Message.isRequest(M)?R.set(on(M.id),M):K.Message.isResponse(M)?R.set(ln(M.id),M):R.set(Ko(),M)}function zo(R){}function Ts(){return ve===er.Listening}function gi(){return ve===er.Closed}function Er(){return ve===er.Disposed}function un(){(ve===er.New||ve===er.Listening)&&(ve=er.Closed,Yt.fire(void 0))}function yi(R){De.fire([R,void 0,void 0])}function Qo(R){De.fire(R)}r.onClose(un),r.onError(yi),e.onClose(un),e.onError(Qo);function As(){z||pe.size===0||(z=(0,U4.default)().timer.setImmediate(()=>{z=void 0,$o()}))}function Ms(R){K.Message.isRequest(R)?Jo(R):K.Message.isNotification(R)?Zo(R):K.Message.isResponse(R)?Xo(R):cn(R)}function $o(){if(pe.size===0)return;let R=pe.shift();try{let M=i?.messageStrategy;Ll.is(M)?M.handleMessage(R,Ms):Ms(R)}finally{As()}}let Yo=R=>{try{if(K.Message.isNotification(R)&&R.method===Hs.type.method){let M=R.params.id,O=on(M),j=pe.get(O);if(K.Message.isRequest(j)){let fe=i?.connectionStrategy,Se=fe&&fe.cancelUndispatched?fe.cancelUndispatched(j,zo):void 0;if(Se&&(Se.error!==void 0||Se.result!==void 0)){pe.delete(O),P.delete(M),Se.id=j.id,Ci(Se,R.method,Date.now()),e.write(Se).catch(()=>n.error("Sending response for canceled message failed."));return}}let be=P.get(M);if(be!==void 0){be.cancel(),hn(R);return}else oe.add(M)}h2(pe,R)}finally{As()}};function Jo(R){if(Er())return;function M(ie,ye,ue){let Ie={jsonrpc:d,id:R.id};ie instanceof K.ResponseError?Ie.error=ie.toJson():Ie.result=ie===void 0?null:ie,Ci(Ie,ye,ue),e.write(Ie).catch(()=>n.error("Sending response failed."))}function O(ie,ye,ue){let Ie={jsonrpc:d,id:R.id,error:ie.toJson()};Ci(Ie,ye,ue),e.write(Ie).catch(()=>n.error("Sending response failed."))}function j(ie,ye,ue){ie===void 0&&(ie=null);let Ie={jsonrpc:d,id:R.id,result:ie};Ci(Ie,ye,ue),e.write(Ie).catch(()=>n.error("Sending response failed."))}rl(R);let be=b.get(R.method),fe,Se;be&&(fe=be.type,Se=be.handler);let Me=Date.now();if(Se||f){let ie=R.id??String(Date.now()),ye=yl.is(gt.receiver)?gt.receiver.createCancellationTokenSource(ie):gt.receiver.createCancellationTokenSource(R);R.id!==null&&oe.has(R.id)&&ye.cancel(),R.id!==null&&P.set(ie,ye);try{let ue;if(Se)if(R.params===void 0){if(fe!==void 0&&fe.numberOfParams!==0){O(new K.ResponseError(K.ErrorCodes.InvalidParams,`Request ${R.method} defines ${fe.numberOfParams} params but received none.`),R.method,Me);return}ue=Se(ye.token)}else if(Array.isArray(R.params)){if(fe!==void 0&&fe.parameterStructures===K.ParameterStructures.byName){O(new K.ResponseError(K.ErrorCodes.InvalidParams,`Request ${R.method} defines parameters by name but received parameters by position`),R.method,Me);return}ue=Se(...R.params,ye.token)}else{if(fe!==void 0&&fe.parameterStructures===K.ParameterStructures.byPosition){O(new K.ResponseError(K.ErrorCodes.InvalidParams,`Request ${R.method} defines parameters by position but received parameters by name`),R.method,Me);return}ue=Se(R.params,ye.token)}else f&&(ue=f(R.method,R.params,ye.token));let Ie=ue;ue?Ie.then?Ie.then($e=>{P.delete(ie),M($e,R.method,Me)},$e=>{P.delete(ie),$e instanceof K.ResponseError?O($e,R.method,Me):$e&&Ue.string($e.message)?O(new K.ResponseError(K.ErrorCodes.InternalError,`Request ${R.method} failed with message: ${$e.message}`),R.method,Me):O(new K.ResponseError(K.ErrorCodes.InternalError,`Request ${R.method} failed unexpectedly without providing any details.`),R.method,Me)}):(P.delete(ie),M(ue,R.method,Me)):(P.delete(ie),j(ue,R.method,Me))}catch(ue){P.delete(ie),ue instanceof K.ResponseError?M(ue,R.method,Me):ue&&Ue.string(ue.message)?O(new K.ResponseError(K.ErrorCodes.InternalError,`Request ${R.method} failed with message: ${ue.message}`),R.method,Me):O(new K.ResponseError(K.ErrorCodes.InternalError,`Request ${R.method} failed unexpectedly without providing any details.`),R.method,Me)}}else O(new K.ResponseError(K.ErrorCodes.MethodNotFound,`Unhandled method ${R.method}`),R.method,Me)}function Xo(R){if(!Er())if(R.id===null)R.error?n.error(`Received response message without id: Error is:
7
+ ${JSON.stringify(R.error,void 0,4)}`):n.error("Received response message without id. No further error information provided.");else{let M=R.id,O=Ae.get(M);if(il(R,O),O!==void 0){Ae.delete(M);try{if(R.error){let j=R.error;O.reject(new K.ResponseError(j.code,j.message,j.data))}else if(R.result!==void 0)O.resolve(R.result);else throw new Error("Should never happen.")}catch(j){j.message?n.error(`Response handler '${O.method}' failed with message: ${j.message}`):n.error(`Response handler '${O.method}' failed unexpectedly.`)}}}}function Zo(R){if(Er())return;let M,O;if(R.method===Hs.type.method){let j=R.params.id;oe.delete(j),hn(R);return}else{let j=A.get(R.method);j&&(O=j.handler,M=j.type)}if(O||E)try{if(hn(R),O)if(R.params===void 0)M!==void 0&&M.numberOfParams!==0&&M.parameterStructures!==K.ParameterStructures.byName&&n.error(`Notification ${R.method} defines ${M.numberOfParams} params but received none.`),O();else if(Array.isArray(R.params)){let j=R.params;R.method===ks.type.method&&j.length===2&&sp.is(j[0])?O({token:j[0],value:j[1]}):(M!==void 0&&(M.parameterStructures===K.ParameterStructures.byName&&n.error(`Notification ${R.method} defines parameters by name but received parameters by position`),M.numberOfParams!==R.params.length&&n.error(`Notification ${R.method} defines ${M.numberOfParams} params but received ${j.length} arguments`)),O(...j))}else M!==void 0&&M.parameterStructures===K.ParameterStructures.byPosition&&n.error(`Notification ${R.method} defines parameters by position but received parameters by name`),O(R.params);else E&&E(R.method,R.params)}catch(j){j.message?n.error(`Notification handler '${R.method}' failed with message: ${j.message}`):n.error(`Notification handler '${R.method}' failed unexpectedly.`)}else Ri.fire(R)}function cn(R){if(!R){n.error("Received empty message.");return}n.error(`Received message which is neither a response nor a notification message:
8
+ ${JSON.stringify(R,null,4)}`);let M=R;if(Ue.string(M.id)||Ue.number(M.id)){let O=M.id,j=Ae.get(O);j&&j.reject(new Error("The received response has neither a result nor an error property."))}}function Jt(R){if(R!=null)switch(C){case he.Verbose:return JSON.stringify(R,null,4);case he.Compact:return JSON.stringify(R);default:return}}function el(R){if(!(C===he.Off||!ee))if(I===At.Text){let M;(C===he.Verbose||C===he.Compact)&&R.params&&(M=`Params: ${Jt(R.params)}
9
+
10
+ `),ee.log(`Sending request '${R.method} - (${R.id})'.`,M)}else Lr("send-request",R)}function tl(R){if(!(C===he.Off||!ee))if(I===At.Text){let M;(C===he.Verbose||C===he.Compact)&&(R.params?M=`Params: ${Jt(R.params)}
11
+
12
+ `:M=`No parameters provided.
13
+
14
+ `),ee.log(`Sending notification '${R.method}'.`,M)}else Lr("send-notification",R)}function Ci(R,M,O){if(!(C===he.Off||!ee))if(I===At.Text){let j;(C===he.Verbose||C===he.Compact)&&(R.error&&R.error.data?j=`Error data: ${Jt(R.error.data)}
15
+
16
+ `:R.result?j=`Result: ${Jt(R.result)}
17
+
18
+ `:R.error===void 0&&(j=`No result returned.
19
+
20
+ `)),ee.log(`Sending response '${M} - (${R.id})'. Processing request took ${Date.now()-O}ms`,j)}else Lr("send-response",R)}function rl(R){if(!(C===he.Off||!ee))if(I===At.Text){let M;(C===he.Verbose||C===he.Compact)&&R.params&&(M=`Params: ${Jt(R.params)}
21
+
22
+ `),ee.log(`Received request '${R.method} - (${R.id})'.`,M)}else Lr("receive-request",R)}function hn(R){if(!(C===he.Off||!ee||R.method===gl.type.method))if(I===At.Text){let M;(C===he.Verbose||C===he.Compact)&&(R.params?M=`Params: ${Jt(R.params)}
23
+
24
+ `:M=`No parameters provided.
25
+
26
+ `),ee.log(`Received notification '${R.method}'.`,M)}else Lr("receive-notification",R)}function il(R,M){if(!(C===he.Off||!ee))if(I===At.Text){let O;if((C===he.Verbose||C===he.Compact)&&(R.error&&R.error.data?O=`Error data: ${Jt(R.error.data)}
27
+
28
+ `:R.result?O=`Result: ${Jt(R.result)}
29
+
30
+ `:R.error===void 0&&(O=`No result returned.
31
+
32
+ `)),M){let j=R.error?` Request failed: ${R.error.message} (${R.error.code}).`:"";ee.log(`Received response '${M.method} - (${R.id})' in ${Date.now()-M.timerStart}ms.${j}`,O)}else ee.log(`Received response ${R.id} without active response promise.`,O)}else Lr("receive-response",R)}function Lr(R,M){if(!ee||C===he.Off)return;let O={isLSPMessage:!0,type:R,message:M,timestamp:Date.now()};ee.log(O)}function qr(){if(gi())throw new yn(Fs.Closed,"Connection is closed.");if(Er())throw new yn(Fs.Disposed,"Connection is disposed.")}function nl(){if(Ts())throw new yn(Fs.AlreadyListening,"Connection is already listening")}function sl(){if(!Ts())throw new Error("Call listen() first.")}function hr(R){return R===void 0?null:R}function Ns(R){if(R!==null)return R}function Us(R){return R!=null&&!Array.isArray(R)&&typeof R=="object"}function dn(R,M){switch(R){case K.ParameterStructures.auto:return Us(M)?Ns(M):[hr(M)];case K.ParameterStructures.byName:if(!Us(M))throw new Error("Received parameters by name but param is not an object literal.");return Ns(M);case K.ParameterStructures.byPosition:return[hr(M)];default:throw new Error(`Unknown parameter structure ${R.toString()}`)}}function ws(R,M){let O,j=R.numberOfParams;switch(j){case 0:O=void 0;break;case 1:O=dn(R.parameterStructures,M[0]);break;default:O=[];for(let be=0;be<M.length&&be<j;be++)O.push(hr(M[be]));if(M.length<j)for(let be=M.length;be<j;be++)O.push(null);break}return O}let Sr={sendNotification:(R,...M)=>{qr();let O,j;if(Ue.string(R)){O=R;let fe=M[0],Se=0,Me=K.ParameterStructures.auto;K.ParameterStructures.is(fe)&&(Se=1,Me=fe);let ie=M.length,ye=ie-Se;switch(ye){case 0:j=void 0;break;case 1:j=dn(Me,M[Se]);break;default:if(Me===K.ParameterStructures.byName)throw new Error(`Received ${ye} parameters for 'by Name' notification parameter structure.`);j=M.slice(Se,ie).map(ue=>hr(ue));break}}else{let fe=M;O=R.method,j=ws(R,fe)}let be={jsonrpc:d,method:O,params:j};return tl(be),e.write(be).catch(fe=>{throw n.error("Sending notification failed."),fe})},onNotification:(R,M)=>{qr();let O;return Ue.func(R)?E=R:M&&(Ue.string(R)?(O=R,A.set(R,{type:void 0,handler:M})):(O=R.method,A.set(R.method,{type:R,handler:M}))),{dispose:()=>{O!==void 0?A.delete(O):E=void 0}}},onProgress:(R,M,O)=>{if(D.has(M))throw new Error(`Progress handler for token ${M} already registered`);return D.set(M,O),{dispose:()=>{D.delete(M)}}},sendProgress:(R,M,O)=>Sr.sendNotification(ks.type,{token:M,value:O}),onUnhandledProgress:_r.event,sendRequest:(R,...M)=>{qr(),sl();let O,j,be;if(Ue.string(R)){O=R;let ie=M[0],ye=M[M.length-1],ue=0,Ie=K.ParameterStructures.auto;K.ParameterStructures.is(ie)&&(ue=1,Ie=ie);let $e=M.length;np.CancellationToken.is(ye)&&($e=$e-1,be=ye);let Tt=$e-ue;switch(Tt){case 0:j=void 0;break;case 1:j=dn(Ie,M[ue]);break;default:if(Ie===K.ParameterStructures.byName)throw new Error(`Received ${Tt} parameters for 'by Name' request parameter structure.`);j=M.slice(ue,$e).map(al=>hr(al));break}}else{let ie=M;O=R.method,j=ws(R,ie);let ye=R.numberOfParams;be=np.CancellationToken.is(ie[ye])?ie[ye]:void 0}let fe=a++,Se;be&&(Se=be.onCancellationRequested(()=>{let ie=gt.sender.sendCancellation(Sr,fe);return ie===void 0?(n.log(`Received no promise from cancellation strategy when cancelling id ${fe}`),Promise.resolve()):ie.catch(()=>{n.log(`Sending cancellation messages for id ${fe} failed`)})}));let Me={jsonrpc:d,id:fe,method:O,params:j};return el(Me),typeof gt.sender.enableCancellation=="function"&&gt.sender.enableCancellation(Me),new Promise(async(ie,ye)=>{let ue=Tt=>{ie(Tt),gt.sender.cleanup(fe),Se?.dispose()},Ie=Tt=>{ye(Tt),gt.sender.cleanup(fe),Se?.dispose()},$e={method:O,timerStart:Date.now(),resolve:ue,reject:Ie};try{await e.write(Me),Ae.set(fe,$e)}catch(Tt){throw n.error("Sending request failed."),$e.reject(new K.ResponseError(K.ErrorCodes.MessageWriteError,Tt.message?Tt.message:"Unknown reason")),Tt}})},onRequest:(R,M)=>{qr();let O=null;return op.is(R)?(O=void 0,f=R):Ue.string(R)?(O=null,M!==void 0&&(O=R,b.set(R,{handler:M,type:void 0}))):M!==void 0&&(O=R.method,b.set(R.method,{type:R,handler:M})),{dispose:()=>{O!==null&&(O!==void 0?b.delete(O):f=void 0)}}},hasPendingResponse:()=>Ae.size>0,trace:async(R,M,O)=>{let j=!1,be=At.Text;O!==void 0&&(Ue.boolean(O)?j=O:(j=O.sendNotification||!1,be=O.traceFormat||At.Text)),C=R,I=be,C===he.Off?ee=void 0:ee=M,j&&!gi()&&!Er()&&await Sr.sendNotification(lp.type,{value:he.toString(R)})},onError:De.event,onClose:Yt.event,onUnhandledNotification:Ri.event,onDispose:Vr.event,end:()=>{e.end()},dispose:()=>{if(Er())return;ve=er.Disposed,Vr.fire(void 0);let R=new K.ResponseError(K.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let M of Ae.values())M.reject(R);Ae=new Map,P=new Map,oe=new Set,pe=new w4.LinkedMap,Ue.func(e.dispose)&&e.dispose(),Ue.func(r.dispose)&&r.dispose()},listen:()=>{qr(),nl(),ve=er.Listening,r.listen(Yo)},inspect:()=>{(0,U4.default)().console.log("inspect")}};return Sr.onNotification(gl.type,R=>{if(C===he.Off||!ee)return;let M=C===he.Verbose||C===he.Compact;ee.log(R.message,M?R.verbose:void 0)}),Sr.onNotification(ks.type,R=>{let M=D.get(R.token);M?M(R.value):_r.fire(R)}),Sr}Z.createMessageConnection=I5});var Sl=_(T=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});T.ProgressType=T.ProgressToken=T.createMessageConnection=T.NullLogger=T.ConnectionOptions=T.ConnectionStrategy=T.AbstractMessageBuffer=T.WriteableStreamMessageWriter=T.AbstractMessageWriter=T.MessageWriter=T.ReadableStreamMessageReader=T.AbstractMessageReader=T.MessageReader=T.SharedArrayReceiverStrategy=T.SharedArraySenderStrategy=T.CancellationToken=T.CancellationTokenSource=T.Emitter=T.Event=T.Disposable=T.LRUCache=T.Touch=T.LinkedMap=T.ParameterStructures=T.NotificationType9=T.NotificationType8=T.NotificationType7=T.NotificationType6=T.NotificationType5=T.NotificationType4=T.NotificationType3=T.NotificationType2=T.NotificationType1=T.NotificationType0=T.NotificationType=T.ErrorCodes=T.ResponseError=T.RequestType9=T.RequestType8=T.RequestType7=T.RequestType6=T.RequestType5=T.RequestType4=T.RequestType3=T.RequestType2=T.RequestType1=T.RequestType0=T.RequestType=T.Message=T.RAL=void 0;T.MessageStrategy=T.CancellationStrategy=T.CancellationSenderStrategy=T.CancellationReceiverStrategy=T.ConnectionError=T.ConnectionErrors=T.LogTraceNotification=T.SetTraceNotification=T.TraceFormat=T.TraceValues=T.Trace=void 0;var Le=k2();Object.defineProperty(T,"Message",{enumerable:!0,get:function(){return Le.Message}});Object.defineProperty(T,"RequestType",{enumerable:!0,get:function(){return Le.RequestType}});Object.defineProperty(T,"RequestType0",{enumerable:!0,get:function(){return Le.RequestType0}});Object.defineProperty(T,"RequestType1",{enumerable:!0,get:function(){return Le.RequestType1}});Object.defineProperty(T,"RequestType2",{enumerable:!0,get:function(){return Le.RequestType2}});Object.defineProperty(T,"RequestType3",{enumerable:!0,get:function(){return Le.RequestType3}});Object.defineProperty(T,"RequestType4",{enumerable:!0,get:function(){return Le.RequestType4}});Object.defineProperty(T,"RequestType5",{enumerable:!0,get:function(){return Le.RequestType5}});Object.defineProperty(T,"RequestType6",{enumerable:!0,get:function(){return Le.RequestType6}});Object.defineProperty(T,"RequestType7",{enumerable:!0,get:function(){return Le.RequestType7}});Object.defineProperty(T,"RequestType8",{enumerable:!0,get:function(){return Le.RequestType8}});Object.defineProperty(T,"RequestType9",{enumerable:!0,get:function(){return Le.RequestType9}});Object.defineProperty(T,"ResponseError",{enumerable:!0,get:function(){return Le.ResponseError}});Object.defineProperty(T,"ErrorCodes",{enumerable:!0,get:function(){return Le.ErrorCodes}});Object.defineProperty(T,"NotificationType",{enumerable:!0,get:function(){return Le.NotificationType}});Object.defineProperty(T,"NotificationType0",{enumerable:!0,get:function(){return Le.NotificationType0}});Object.defineProperty(T,"NotificationType1",{enumerable:!0,get:function(){return Le.NotificationType1}});Object.defineProperty(T,"NotificationType2",{enumerable:!0,get:function(){return Le.NotificationType2}});Object.defineProperty(T,"NotificationType3",{enumerable:!0,get:function(){return Le.NotificationType3}});Object.defineProperty(T,"NotificationType4",{enumerable:!0,get:function(){return Le.NotificationType4}});Object.defineProperty(T,"NotificationType5",{enumerable:!0,get:function(){return Le.NotificationType5}});Object.defineProperty(T,"NotificationType6",{enumerable:!0,get:function(){return Le.NotificationType6}});Object.defineProperty(T,"NotificationType7",{enumerable:!0,get:function(){return Le.NotificationType7}});Object.defineProperty(T,"NotificationType8",{enumerable:!0,get:function(){return Le.NotificationType8}});Object.defineProperty(T,"NotificationType9",{enumerable:!0,get:function(){return Le.NotificationType9}});Object.defineProperty(T,"ParameterStructures",{enumerable:!0,get:function(){return Le.ParameterStructures}});var hp=H2();Object.defineProperty(T,"LinkedMap",{enumerable:!0,get:function(){return hp.LinkedMap}});Object.defineProperty(T,"LRUCache",{enumerable:!0,get:function(){return hp.LRUCache}});Object.defineProperty(T,"Touch",{enumerable:!0,get:function(){return hp.Touch}});var O5=y4();Object.defineProperty(T,"Disposable",{enumerable:!0,get:function(){return O5.Disposable}});var k4=mn();Object.defineProperty(T,"Event",{enumerable:!0,get:function(){return k4.Event}});Object.defineProperty(T,"Emitter",{enumerable:!0,get:function(){return k4.Emitter}});var F4=fl();Object.defineProperty(T,"CancellationTokenSource",{enumerable:!0,get:function(){return F4.CancellationTokenSource}});Object.defineProperty(T,"CancellationToken",{enumerable:!0,get:function(){return F4.CancellationToken}});var H4=v4();Object.defineProperty(T,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return H4.SharedArraySenderStrategy}});Object.defineProperty(T,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return H4.SharedArrayReceiverStrategy}});var dp=L4();Object.defineProperty(T,"MessageReader",{enumerable:!0,get:function(){return dp.MessageReader}});Object.defineProperty(T,"AbstractMessageReader",{enumerable:!0,get:function(){return dp.AbstractMessageReader}});Object.defineProperty(T,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return dp.ReadableStreamMessageReader}});var pp=M4();Object.defineProperty(T,"MessageWriter",{enumerable:!0,get:function(){return pp.MessageWriter}});Object.defineProperty(T,"AbstractMessageWriter",{enumerable:!0,get:function(){return pp.AbstractMessageWriter}});Object.defineProperty(T,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return pp.WriteableStreamMessageWriter}});var k5=N4();Object.defineProperty(T,"AbstractMessageBuffer",{enumerable:!0,get:function(){return k5.AbstractMessageBuffer}});var it=O4();Object.defineProperty(T,"ConnectionStrategy",{enumerable:!0,get:function(){return it.ConnectionStrategy}});Object.defineProperty(T,"ConnectionOptions",{enumerable:!0,get:function(){return it.ConnectionOptions}});Object.defineProperty(T,"NullLogger",{enumerable:!0,get:function(){return it.NullLogger}});Object.defineProperty(T,"createMessageConnection",{enumerable:!0,get:function(){return it.createMessageConnection}});Object.defineProperty(T,"ProgressToken",{enumerable:!0,get:function(){return it.ProgressToken}});Object.defineProperty(T,"ProgressType",{enumerable:!0,get:function(){return it.ProgressType}});Object.defineProperty(T,"Trace",{enumerable:!0,get:function(){return it.Trace}});Object.defineProperty(T,"TraceValues",{enumerable:!0,get:function(){return it.TraceValues}});Object.defineProperty(T,"TraceFormat",{enumerable:!0,get:function(){return it.TraceFormat}});Object.defineProperty(T,"SetTraceNotification",{enumerable:!0,get:function(){return it.SetTraceNotification}});Object.defineProperty(T,"LogTraceNotification",{enumerable:!0,get:function(){return it.LogTraceNotification}});Object.defineProperty(T,"ConnectionErrors",{enumerable:!0,get:function(){return it.ConnectionErrors}});Object.defineProperty(T,"ConnectionError",{enumerable:!0,get:function(){return it.ConnectionError}});Object.defineProperty(T,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return it.CancellationReceiverStrategy}});Object.defineProperty(T,"CancellationSenderStrategy",{enumerable:!0,get:function(){return it.CancellationSenderStrategy}});Object.defineProperty(T,"CancellationStrategy",{enumerable:!0,get:function(){return it.CancellationStrategy}});Object.defineProperty(T,"MessageStrategy",{enumerable:!0,get:function(){return it.MessageStrategy}});var F5=Gr();T.RAL=F5.default});var V4=_(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var B4=Dt("util"),Tr=Sl(),Pl=class r extends Tr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return r.emptyBuffer}fromString(e,t){return Buffer.from(e,t)}toString(e,t){return e instanceof Buffer?e.toString(t):new B4.TextDecoder(t).decode(e)}asNative(e,t){return t===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,t):Buffer.from(e,0,t)}allocNative(e){return Buffer.allocUnsafe(e)}};Pl.emptyBuffer=Buffer.allocUnsafe(0);var fp=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Tr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Tr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Tr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),Tr.Disposable.create(()=>this.stream.off("data",e))}},xp=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Tr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Tr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Tr.Disposable.create(()=>this.stream.off("end",e))}write(e,t){return new Promise((i,n)=>{let a=o=>{o==null?i():n(o)};typeof e=="string"?this.stream.write(e,t,a):this.stream.write(e,a)})}end(){this.stream.end()}},_4=Object.freeze({messageBuffer:Object.freeze({create:r=>new Pl(r)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(r,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(r,void 0,0),e.charset))}catch(t){return Promise.reject(t)}}}),decoder:Object.freeze({name:"application/json",decode:(r,e)=>{try{return r instanceof Buffer?Promise.resolve(JSON.parse(r.toString(e.charset))):Promise.resolve(JSON.parse(new B4.TextDecoder(e.charset).decode(r)))}catch(t){return Promise.reject(t)}}})}),stream:Object.freeze({asReadableStream:r=>new fp(r),asWritableStream:r=>new xp(r)}),console,timer:Object.freeze({setTimeout(r,e,...t){let i=setTimeout(r,e,...t);return{dispose:()=>clearTimeout(i)}},setImmediate(r,...e){let t=setImmediate(r,...e);return{dispose:()=>clearImmediate(t)}},setInterval(r,e,...t){let i=setInterval(r,e,...t);return{dispose:()=>clearInterval(i)}}})});function mp(){return _4}(function(r){function e(){Tr.RAL.install(_4)}r.install=e})(mp||(mp={}));bp.default=mp});var Si=_(ae=>{"use strict";var H5=ae&&ae.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),B5=ae&&ae.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&H5(e,r,t)};Object.defineProperty(ae,"__esModule",{value:!0});ae.createMessageConnection=ae.createServerSocketTransport=ae.createClientSocketTransport=ae.createServerPipeTransport=ae.createClientPipeTransport=ae.generateRandomPipeName=ae.StreamMessageWriter=ae.StreamMessageReader=ae.SocketMessageWriter=ae.SocketMessageReader=ae.PortMessageWriter=ae.PortMessageReader=ae.IPCMessageWriter=ae.IPCMessageReader=void 0;var Cn=V4();Cn.default.install();var q4=Dt("path"),_5=Dt("os"),V5=Dt("crypto"),Ml=Dt("net"),Mt=Sl();B5(Sl(),ae);var Rp=class extends Mt.AbstractMessageReader{constructor(e){super(),this.process=e;let t=this.process;t.on("error",i=>this.fireError(i)),t.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Mt.Disposable.create(()=>this.process.off("message",e))}};ae.IPCMessageReader=Rp;var gp=class extends Mt.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let t=this.process;t.on("error",i=>this.fireError(i)),t.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,t=>{t?(this.errorCount++,this.handleError(t,e)):this.errorCount=0}),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}};ae.IPCMessageWriter=gp;var yp=class extends Mt.AbstractMessageReader{constructor(e){super(),this.onData=new Mt.Emitter,e.on("close",()=>this.fireClose),e.on("error",t=>this.fireError(t)),e.on("message",t=>{this.onData.fire(t)})}listen(e){return this.onData.event(e)}};ae.PortMessageReader=yp;var Cp=class extends Mt.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",t=>this.fireError(t))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}};ae.PortMessageWriter=Cp;var Ei=class extends Mt.ReadableStreamMessageReader{constructor(e,t="utf-8"){super((0,Cn.default)().stream.asReadableStream(e),t)}};ae.SocketMessageReader=Ei;var Li=class extends Mt.WriteableStreamMessageWriter{constructor(e,t){super((0,Cn.default)().stream.asWritableStream(e),t),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};ae.SocketMessageWriter=Li;var Tl=class extends Mt.ReadableStreamMessageReader{constructor(e,t){super((0,Cn.default)().stream.asReadableStream(e),t)}};ae.StreamMessageReader=Tl;var Al=class extends Mt.WriteableStreamMessageWriter{constructor(e,t){super((0,Cn.default)().stream.asWritableStream(e),t)}};ae.StreamMessageWriter=Al;var j4=process.env.XDG_RUNTIME_DIR,q5=new Map([["linux",107],["darwin",103]]);function j5(){let r=(0,V5.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${r}-sock`;let e;j4?e=q4.join(j4,`vscode-ipc-${r}.sock`):e=q4.join(_5.tmpdir(),`vscode-${r}.sock`);let t=q5.get(process.platform);return t!==void 0&&e.length>t&&(0,Cn.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${t} characters.`),e}ae.generateRandomPipeName=j5;function G5(r,e="utf-8"){let t,i=new Promise((n,a)=>{t=n});return new Promise((n,a)=>{let o=(0,Ml.createServer)(l=>{o.close(),t([new Ei(l,e),new Li(l,e)])});o.on("error",a),o.listen(r,()=>{o.removeListener("error",a),n({onConnected:()=>i})})})}ae.createClientPipeTransport=G5;function W5(r,e="utf-8"){let t=(0,Ml.createConnection)(r);return[new Ei(t,e),new Li(t,e)]}ae.createServerPipeTransport=W5;function K5(r,e="utf-8"){let t,i=new Promise((n,a)=>{t=n});return new Promise((n,a)=>{let o=(0,Ml.createServer)(l=>{o.close(),t([new Ei(l,e),new Li(l,e)])});o.on("error",a),o.listen(r,"127.0.0.1",()=>{o.removeListener("error",a),n({onConnected:()=>i})})})}ae.createClientSocketTransport=K5;function z5(r,e="utf-8"){let t=(0,Ml.createConnection)(r,"127.0.0.1");return[new Ei(t,e),new Li(t,e)]}ae.createServerSocketTransport=z5;function Q5(r){let e=r;return e.read!==void 0&&e.addListener!==void 0}function $5(r){let e=r;return e.write!==void 0&&e.addListener!==void 0}function Y5(r,e,t,i){t||(t=Mt.NullLogger);let n=Q5(r)?new Tl(r):r,a=$5(e)?new Al(e):e;return Mt.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Mt.createMessageConnection)(n,a,t,i)}ae.createMessageConnection=Y5});var vp=_((b8,G4)=>{"use strict";G4.exports=Si()});var Ul=_((W4,Nl)=>{(function(r){if(typeof Nl=="object"&&typeof Nl.exports=="object"){var e=r(Dt,W4);e!==void 0&&(Nl.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],r)})(function(r,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var t;(function(p){function g(y){return typeof y=="string"}p.is=g})(t||(e.DocumentUri=t={}));var i;(function(p){function g(y){return typeof y=="string"}p.is=g})(i||(e.URI=i={}));var n;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function g(y){return typeof y=="number"&&p.MIN_VALUE<=y&&y<=p.MAX_VALUE}p.is=g})(n||(e.integer=n={}));var a;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function g(y){return typeof y=="number"&&p.MIN_VALUE<=y&&y<=p.MAX_VALUE}p.is=g})(a||(e.uinteger=a={}));var o;(function(p){function g(x,h){return x===Number.MAX_VALUE&&(x=a.MAX_VALUE),h===Number.MAX_VALUE&&(h=a.MAX_VALUE),{line:x,character:h}}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&S.uinteger(h.line)&&S.uinteger(h.character)}p.is=y})(o||(e.Position=o={}));var l;(function(p){function g(x,h,L,N){if(S.uinteger(x)&&S.uinteger(h)&&S.uinteger(L)&&S.uinteger(N))return{start:o.create(x,h),end:o.create(L,N)};if(o.is(x)&&o.is(h))return{start:x,end:h};throw new Error("Range#create called with invalid arguments[".concat(x,", ").concat(h,", ").concat(L,", ").concat(N,"]"))}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&o.is(h.start)&&o.is(h.end)}p.is=y})(l||(e.Range=l={}));var d;(function(p){function g(x,h){return{uri:x,range:h}}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&l.is(h.range)&&(S.string(h.uri)||S.undefined(h.uri))}p.is=y})(d||(e.Location=d={}));var f;(function(p){function g(x,h,L,N){return{targetUri:x,targetRange:h,targetSelectionRange:L,originSelectionRange:N}}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&l.is(h.targetRange)&&S.string(h.targetUri)&&l.is(h.targetSelectionRange)&&(l.is(h.originSelectionRange)||S.undefined(h.originSelectionRange))}p.is=y})(f||(e.LocationLink=f={}));var b;(function(p){function g(x,h,L,N){return{red:x,green:h,blue:L,alpha:N}}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&S.numberRange(h.red,0,1)&&S.numberRange(h.green,0,1)&&S.numberRange(h.blue,0,1)&&S.numberRange(h.alpha,0,1)}p.is=y})(b||(e.Color=b={}));var E;(function(p){function g(x,h){return{range:x,color:h}}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&l.is(h.range)&&b.is(h.color)}p.is=y})(E||(e.ColorInformation=E={}));var A;(function(p){function g(x,h,L){return{label:x,textEdit:h,additionalTextEdits:L}}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&S.string(h.label)&&(S.undefined(h.textEdit)||ee.is(h))&&(S.undefined(h.additionalTextEdits)||S.typedArray(h.additionalTextEdits,ee.is))}p.is=y})(A||(e.ColorPresentation=A={}));var D;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(D||(e.FoldingRangeKind=D={}));var z;(function(p){function g(x,h,L,N,X,Oe){var Ee={startLine:x,endLine:h};return S.defined(L)&&(Ee.startCharacter=L),S.defined(N)&&(Ee.endCharacter=N),S.defined(X)&&(Ee.kind=X),S.defined(Oe)&&(Ee.collapsedText=Oe),Ee}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&S.uinteger(h.startLine)&&S.uinteger(h.startLine)&&(S.undefined(h.startCharacter)||S.uinteger(h.startCharacter))&&(S.undefined(h.endCharacter)||S.uinteger(h.endCharacter))&&(S.undefined(h.kind)||S.string(h.kind))}p.is=y})(z||(e.FoldingRange=z={}));var pe;(function(p){function g(x,h){return{location:x,message:h}}p.create=g;function y(x){var h=x;return S.defined(h)&&d.is(h.location)&&S.string(h.message)}p.is=y})(pe||(e.DiagnosticRelatedInformation=pe={}));var Ae;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(Ae||(e.DiagnosticSeverity=Ae={}));var oe;(function(p){p.Unnecessary=1,p.Deprecated=2})(oe||(e.DiagnosticTag=oe={}));var P;(function(p){function g(y){var x=y;return S.objectLiteral(x)&&S.string(x.href)}p.is=g})(P||(e.CodeDescription=P={}));var C;(function(p){function g(x,h,L,N,X,Oe){var Ee={range:x,message:h};return S.defined(L)&&(Ee.severity=L),S.defined(N)&&(Ee.code=N),S.defined(X)&&(Ee.source=X),S.defined(Oe)&&(Ee.relatedInformation=Oe),Ee}p.create=g;function y(x){var h,L=x;return S.defined(L)&&l.is(L.range)&&S.string(L.message)&&(S.number(L.severity)||S.undefined(L.severity))&&(S.integer(L.code)||S.string(L.code)||S.undefined(L.code))&&(S.undefined(L.codeDescription)||S.string((h=L.codeDescription)===null||h===void 0?void 0:h.href))&&(S.string(L.source)||S.undefined(L.source))&&(S.undefined(L.relatedInformation)||S.typedArray(L.relatedInformation,pe.is))}p.is=y})(C||(e.Diagnostic=C={}));var I;(function(p){function g(x,h){for(var L=[],N=2;N<arguments.length;N++)L[N-2]=arguments[N];var X={title:x,command:h};return S.defined(L)&&L.length>0&&(X.arguments=L),X}p.create=g;function y(x){var h=x;return S.defined(h)&&S.string(h.title)&&S.string(h.command)}p.is=y})(I||(e.Command=I={}));var ee;(function(p){function g(L,N){return{range:L,newText:N}}p.replace=g;function y(L,N){return{range:{start:L,end:L},newText:N}}p.insert=y;function x(L){return{range:L,newText:""}}p.del=x;function h(L){var N=L;return S.objectLiteral(N)&&S.string(N.newText)&&l.is(N.range)}p.is=h})(ee||(e.TextEdit=ee={}));var ve;(function(p){function g(x,h,L){var N={label:x};return h!==void 0&&(N.needsConfirmation=h),L!==void 0&&(N.description=L),N}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&S.string(h.label)&&(S.boolean(h.needsConfirmation)||h.needsConfirmation===void 0)&&(S.string(h.description)||h.description===void 0)}p.is=y})(ve||(e.ChangeAnnotation=ve={}));var De;(function(p){function g(y){var x=y;return S.string(x)}p.is=g})(De||(e.ChangeAnnotationIdentifier=De={}));var Yt;(function(p){function g(L,N,X){return{range:L,newText:N,annotationId:X}}p.replace=g;function y(L,N,X){return{range:{start:L,end:L},newText:N,annotationId:X}}p.insert=y;function x(L,N){return{range:L,newText:"",annotationId:N}}p.del=x;function h(L){var N=L;return ee.is(N)&&(ve.is(N.annotationId)||De.is(N.annotationId))}p.is=h})(Yt||(e.AnnotatedTextEdit=Yt={}));var Ri;(function(p){function g(x,h){return{textDocument:x,edits:h}}p.create=g;function y(x){var h=x;return S.defined(h)&&gi.is(h.textDocument)&&Array.isArray(h.edits)}p.is=y})(Ri||(e.TextDocumentEdit=Ri={}));var _r;(function(p){function g(x,h,L){var N={kind:"create",uri:x};return h!==void 0&&(h.overwrite!==void 0||h.ignoreIfExists!==void 0)&&(N.options=h),L!==void 0&&(N.annotationId=L),N}p.create=g;function y(x){var h=x;return h&&h.kind==="create"&&S.string(h.uri)&&(h.options===void 0||(h.options.overwrite===void 0||S.boolean(h.options.overwrite))&&(h.options.ignoreIfExists===void 0||S.boolean(h.options.ignoreIfExists)))&&(h.annotationId===void 0||De.is(h.annotationId))}p.is=y})(_r||(e.CreateFile=_r={}));var Vr;(function(p){function g(x,h,L,N){var X={kind:"rename",oldUri:x,newUri:h};return L!==void 0&&(L.overwrite!==void 0||L.ignoreIfExists!==void 0)&&(X.options=L),N!==void 0&&(X.annotationId=N),X}p.create=g;function y(x){var h=x;return h&&h.kind==="rename"&&S.string(h.oldUri)&&S.string(h.newUri)&&(h.options===void 0||(h.options.overwrite===void 0||S.boolean(h.options.overwrite))&&(h.options.ignoreIfExists===void 0||S.boolean(h.options.ignoreIfExists)))&&(h.annotationId===void 0||De.is(h.annotationId))}p.is=y})(Vr||(e.RenameFile=Vr={}));var gt;(function(p){function g(x,h,L){var N={kind:"delete",uri:x};return h!==void 0&&(h.recursive!==void 0||h.ignoreIfNotExists!==void 0)&&(N.options=h),L!==void 0&&(N.annotationId=L),N}p.create=g;function y(x){var h=x;return h&&h.kind==="delete"&&S.string(h.uri)&&(h.options===void 0||(h.options.recursive===void 0||S.boolean(h.options.recursive))&&(h.options.ignoreIfNotExists===void 0||S.boolean(h.options.ignoreIfNotExists)))&&(h.annotationId===void 0||De.is(h.annotationId))}p.is=y})(gt||(e.DeleteFile=gt={}));var on;(function(p){function g(y){var x=y;return x&&(x.changes!==void 0||x.documentChanges!==void 0)&&(x.documentChanges===void 0||x.documentChanges.every(function(h){return S.string(h.kind)?_r.is(h)||Vr.is(h)||gt.is(h):Ri.is(h)}))}p.is=g})(on||(e.WorkspaceEdit=on={}));var ln=(function(){function p(g,y){this.edits=g,this.changeAnnotations=y}return p.prototype.insert=function(g,y,x){var h,L;if(x===void 0?h=ee.insert(g,y):De.is(x)?(L=x,h=Yt.insert(g,y,x)):(this.assertChangeAnnotations(this.changeAnnotations),L=this.changeAnnotations.manage(x),h=Yt.insert(g,y,L)),this.edits.push(h),L!==void 0)return L},p.prototype.replace=function(g,y,x){var h,L;if(x===void 0?h=ee.replace(g,y):De.is(x)?(L=x,h=Yt.replace(g,y,x)):(this.assertChangeAnnotations(this.changeAnnotations),L=this.changeAnnotations.manage(x),h=Yt.replace(g,y,L)),this.edits.push(h),L!==void 0)return L},p.prototype.delete=function(g,y){var x,h;if(y===void 0?x=ee.del(g):De.is(y)?(h=y,x=Yt.del(g,y)):(this.assertChangeAnnotations(this.changeAnnotations),h=this.changeAnnotations.manage(y),x=Yt.del(g,h)),this.edits.push(x),h!==void 0)return h},p.prototype.add=function(g){this.edits.push(g)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(g){if(g===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p})(),Ko=(function(){function p(g){this._annotations=g===void 0?Object.create(null):g,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(g,y){var x;if(De.is(g)?x=g:(x=this.nextId(),y=g),this._annotations[x]!==void 0)throw new Error("Id ".concat(x," is already in use."));if(y===void 0)throw new Error("No annotation provided for id ".concat(x));return this._annotations[x]=y,this._size++,x},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p})(),h2=(function(){function p(g){var y=this;this._textEditChanges=Object.create(null),g!==void 0?(this._workspaceEdit=g,g.documentChanges?(this._changeAnnotations=new Ko(g.changeAnnotations),g.changeAnnotations=this._changeAnnotations.all(),g.documentChanges.forEach(function(x){if(Ri.is(x)){var h=new ln(x.edits,y._changeAnnotations);y._textEditChanges[x.textDocument.uri]=h}})):g.changes&&Object.keys(g.changes).forEach(function(x){var h=new ln(g.changes[x]);y._textEditChanges[x]=h})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(g){if(gi.is(g)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var y={uri:g.uri,version:g.version},x=this._textEditChanges[y.uri];if(!x){var h=[],L={textDocument:y,edits:h};this._workspaceEdit.documentChanges.push(L),x=new ln(h,this._changeAnnotations),this._textEditChanges[y.uri]=x}return x}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var x=this._textEditChanges[g];if(!x){var h=[];this._workspaceEdit.changes[g]=h,x=new ln(h),this._textEditChanges[g]=x}return x}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Ko,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(g,y,x){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var h;ve.is(y)||De.is(y)?h=y:x=y;var L,N;if(h===void 0?L=_r.create(g,x):(N=De.is(h)?h:this._changeAnnotations.manage(h),L=_r.create(g,x,N)),this._workspaceEdit.documentChanges.push(L),N!==void 0)return N},p.prototype.renameFile=function(g,y,x,h){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var L;ve.is(x)||De.is(x)?L=x:h=x;var N,X;if(L===void 0?N=Vr.create(g,y,h):(X=De.is(L)?L:this._changeAnnotations.manage(L),N=Vr.create(g,y,h,X)),this._workspaceEdit.documentChanges.push(N),X!==void 0)return X},p.prototype.deleteFile=function(g,y,x){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var h;ve.is(y)||De.is(y)?h=y:x=y;var L,N;if(h===void 0?L=gt.create(g,x):(N=De.is(h)?h:this._changeAnnotations.manage(h),L=gt.create(g,x,N)),this._workspaceEdit.documentChanges.push(L),N!==void 0)return N},p})();e.WorkspaceChange=h2;var zo;(function(p){function g(x){return{uri:x}}p.create=g;function y(x){var h=x;return S.defined(h)&&S.string(h.uri)}p.is=y})(zo||(e.TextDocumentIdentifier=zo={}));var Ts;(function(p){function g(x,h){return{uri:x,version:h}}p.create=g;function y(x){var h=x;return S.defined(h)&&S.string(h.uri)&&S.integer(h.version)}p.is=y})(Ts||(e.VersionedTextDocumentIdentifier=Ts={}));var gi;(function(p){function g(x,h){return{uri:x,version:h}}p.create=g;function y(x){var h=x;return S.defined(h)&&S.string(h.uri)&&(h.version===null||S.integer(h.version))}p.is=y})(gi||(e.OptionalVersionedTextDocumentIdentifier=gi={}));var Er;(function(p){function g(x,h,L,N){return{uri:x,languageId:h,version:L,text:N}}p.create=g;function y(x){var h=x;return S.defined(h)&&S.string(h.uri)&&S.string(h.languageId)&&S.integer(h.version)&&S.string(h.text)}p.is=y})(Er||(e.TextDocumentItem=Er={}));var un;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function g(y){var x=y;return x===p.PlainText||x===p.Markdown}p.is=g})(un||(e.MarkupKind=un={}));var yi;(function(p){function g(y){var x=y;return S.objectLiteral(y)&&un.is(x.kind)&&S.string(x.value)}p.is=g})(yi||(e.MarkupContent=yi={}));var Qo;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Qo||(e.CompletionItemKind=Qo={}));var As;(function(p){p.PlainText=1,p.Snippet=2})(As||(e.InsertTextFormat=As={}));var Ms;(function(p){p.Deprecated=1})(Ms||(e.CompletionItemTag=Ms={}));var $o;(function(p){function g(x,h,L){return{newText:x,insert:h,replace:L}}p.create=g;function y(x){var h=x;return h&&S.string(h.newText)&&l.is(h.insert)&&l.is(h.replace)}p.is=y})($o||(e.InsertReplaceEdit=$o={}));var Yo;(function(p){p.asIs=1,p.adjustIndentation=2})(Yo||(e.InsertTextMode=Yo={}));var Jo;(function(p){function g(y){var x=y;return x&&(S.string(x.detail)||x.detail===void 0)&&(S.string(x.description)||x.description===void 0)}p.is=g})(Jo||(e.CompletionItemLabelDetails=Jo={}));var Xo;(function(p){function g(y){return{label:y}}p.create=g})(Xo||(e.CompletionItem=Xo={}));var Zo;(function(p){function g(y,x){return{items:y||[],isIncomplete:!!x}}p.create=g})(Zo||(e.CompletionList=Zo={}));var cn;(function(p){function g(x){return x.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=g;function y(x){var h=x;return S.string(h)||S.objectLiteral(h)&&S.string(h.language)&&S.string(h.value)}p.is=y})(cn||(e.MarkedString=cn={}));var Jt;(function(p){function g(y){var x=y;return!!x&&S.objectLiteral(x)&&(yi.is(x.contents)||cn.is(x.contents)||S.typedArray(x.contents,cn.is))&&(y.range===void 0||l.is(y.range))}p.is=g})(Jt||(e.Hover=Jt={}));var el;(function(p){function g(y,x){return x?{label:y,documentation:x}:{label:y}}p.create=g})(el||(e.ParameterInformation=el={}));var tl;(function(p){function g(y,x){for(var h=[],L=2;L<arguments.length;L++)h[L-2]=arguments[L];var N={label:y};return S.defined(x)&&(N.documentation=x),S.defined(h)?N.parameters=h:N.parameters=[],N}p.create=g})(tl||(e.SignatureInformation=tl={}));var Ci;(function(p){p.Text=1,p.Read=2,p.Write=3})(Ci||(e.DocumentHighlightKind=Ci={}));var rl;(function(p){function g(y,x){var h={range:y};return S.number(x)&&(h.kind=x),h}p.create=g})(rl||(e.DocumentHighlight=rl={}));var hn;(function(p){p.File=1,p.Module=2,p.Namespace=3,p.Package=4,p.Class=5,p.Method=6,p.Property=7,p.Field=8,p.Constructor=9,p.Enum=10,p.Interface=11,p.Function=12,p.Variable=13,p.Constant=14,p.String=15,p.Number=16,p.Boolean=17,p.Array=18,p.Object=19,p.Key=20,p.Null=21,p.EnumMember=22,p.Struct=23,p.Event=24,p.Operator=25,p.TypeParameter=26})(hn||(e.SymbolKind=hn={}));var il;(function(p){p.Deprecated=1})(il||(e.SymbolTag=il={}));var Lr;(function(p){function g(y,x,h,L,N){var X={name:y,kind:x,location:{uri:L,range:h}};return N&&(X.containerName=N),X}p.create=g})(Lr||(e.SymbolInformation=Lr={}));var qr;(function(p){function g(y,x,h,L){return L!==void 0?{name:y,kind:x,location:{uri:h,range:L}}:{name:y,kind:x,location:{uri:h}}}p.create=g})(qr||(e.WorkspaceSymbol=qr={}));var nl;(function(p){function g(x,h,L,N,X,Oe){var Ee={name:x,detail:h,kind:L,range:N,selectionRange:X};return Oe!==void 0&&(Ee.children=Oe),Ee}p.create=g;function y(x){var h=x;return h&&S.string(h.name)&&S.number(h.kind)&&l.is(h.range)&&l.is(h.selectionRange)&&(h.detail===void 0||S.string(h.detail))&&(h.deprecated===void 0||S.boolean(h.deprecated))&&(h.children===void 0||Array.isArray(h.children))&&(h.tags===void 0||Array.isArray(h.tags))}p.is=y})(nl||(e.DocumentSymbol=nl={}));var sl;(function(p){p.Empty="",p.QuickFix="quickfix",p.Refactor="refactor",p.RefactorExtract="refactor.extract",p.RefactorInline="refactor.inline",p.RefactorRewrite="refactor.rewrite",p.Source="source",p.SourceOrganizeImports="source.organizeImports",p.SourceFixAll="source.fixAll"})(sl||(e.CodeActionKind=sl={}));var hr;(function(p){p.Invoked=1,p.Automatic=2})(hr||(e.CodeActionTriggerKind=hr={}));var Ns;(function(p){function g(x,h,L){var N={diagnostics:x};return h!=null&&(N.only=h),L!=null&&(N.triggerKind=L),N}p.create=g;function y(x){var h=x;return S.defined(h)&&S.typedArray(h.diagnostics,C.is)&&(h.only===void 0||S.typedArray(h.only,S.string))&&(h.triggerKind===void 0||h.triggerKind===hr.Invoked||h.triggerKind===hr.Automatic)}p.is=y})(Ns||(e.CodeActionContext=Ns={}));var Us;(function(p){function g(x,h,L){var N={title:x},X=!0;return typeof h=="string"?(X=!1,N.kind=h):I.is(h)?N.command=h:N.edit=h,X&&L!==void 0&&(N.kind=L),N}p.create=g;function y(x){var h=x;return h&&S.string(h.title)&&(h.diagnostics===void 0||S.typedArray(h.diagnostics,C.is))&&(h.kind===void 0||S.string(h.kind))&&(h.edit!==void 0||h.command!==void 0)&&(h.command===void 0||I.is(h.command))&&(h.isPreferred===void 0||S.boolean(h.isPreferred))&&(h.edit===void 0||on.is(h.edit))}p.is=y})(Us||(e.CodeAction=Us={}));var dn;(function(p){function g(x,h){var L={range:x};return S.defined(h)&&(L.data=h),L}p.create=g;function y(x){var h=x;return S.defined(h)&&l.is(h.range)&&(S.undefined(h.command)||I.is(h.command))}p.is=y})(dn||(e.CodeLens=dn={}));var ws;(function(p){function g(x,h){return{tabSize:x,insertSpaces:h}}p.create=g;function y(x){var h=x;return S.defined(h)&&S.uinteger(h.tabSize)&&S.boolean(h.insertSpaces)}p.is=y})(ws||(e.FormattingOptions=ws={}));var Sr;(function(p){function g(x,h,L){return{range:x,target:h,data:L}}p.create=g;function y(x){var h=x;return S.defined(h)&&l.is(h.range)&&(S.undefined(h.target)||S.string(h.target))}p.is=y})(Sr||(e.DocumentLink=Sr={}));var R;(function(p){function g(x,h){return{range:x,parent:h}}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&l.is(h.range)&&(h.parent===void 0||p.is(h.parent))}p.is=y})(R||(e.SelectionRange=R={}));var M;(function(p){p.namespace="namespace",p.type="type",p.class="class",p.enum="enum",p.interface="interface",p.struct="struct",p.typeParameter="typeParameter",p.parameter="parameter",p.variable="variable",p.property="property",p.enumMember="enumMember",p.event="event",p.function="function",p.method="method",p.macro="macro",p.keyword="keyword",p.modifier="modifier",p.comment="comment",p.string="string",p.number="number",p.regexp="regexp",p.operator="operator",p.decorator="decorator"})(M||(e.SemanticTokenTypes=M={}));var O;(function(p){p.declaration="declaration",p.definition="definition",p.readonly="readonly",p.static="static",p.deprecated="deprecated",p.abstract="abstract",p.async="async",p.modification="modification",p.documentation="documentation",p.defaultLibrary="defaultLibrary"})(O||(e.SemanticTokenModifiers=O={}));var j;(function(p){function g(y){var x=y;return S.objectLiteral(x)&&(x.resultId===void 0||typeof x.resultId=="string")&&Array.isArray(x.data)&&(x.data.length===0||typeof x.data[0]=="number")}p.is=g})(j||(e.SemanticTokens=j={}));var be;(function(p){function g(x,h){return{range:x,text:h}}p.create=g;function y(x){var h=x;return h!=null&&l.is(h.range)&&S.string(h.text)}p.is=y})(be||(e.InlineValueText=be={}));var fe;(function(p){function g(x,h,L){return{range:x,variableName:h,caseSensitiveLookup:L}}p.create=g;function y(x){var h=x;return h!=null&&l.is(h.range)&&S.boolean(h.caseSensitiveLookup)&&(S.string(h.variableName)||h.variableName===void 0)}p.is=y})(fe||(e.InlineValueVariableLookup=fe={}));var Se;(function(p){function g(x,h){return{range:x,expression:h}}p.create=g;function y(x){var h=x;return h!=null&&l.is(h.range)&&(S.string(h.expression)||h.expression===void 0)}p.is=y})(Se||(e.InlineValueEvaluatableExpression=Se={}));var Me;(function(p){function g(x,h){return{frameId:x,stoppedLocation:h}}p.create=g;function y(x){var h=x;return S.defined(h)&&l.is(x.stoppedLocation)}p.is=y})(Me||(e.InlineValueContext=Me={}));var ie;(function(p){p.Type=1,p.Parameter=2;function g(y){return y===1||y===2}p.is=g})(ie||(e.InlayHintKind=ie={}));var ye;(function(p){function g(x){return{value:x}}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&(h.tooltip===void 0||S.string(h.tooltip)||yi.is(h.tooltip))&&(h.location===void 0||d.is(h.location))&&(h.command===void 0||I.is(h.command))}p.is=y})(ye||(e.InlayHintLabelPart=ye={}));var ue;(function(p){function g(x,h,L){var N={position:x,label:h};return L!==void 0&&(N.kind=L),N}p.create=g;function y(x){var h=x;return S.objectLiteral(h)&&o.is(h.position)&&(S.string(h.label)||S.typedArray(h.label,ye.is))&&(h.kind===void 0||ie.is(h.kind))&&h.textEdits===void 0||S.typedArray(h.textEdits,ee.is)&&(h.tooltip===void 0||S.string(h.tooltip)||yi.is(h.tooltip))&&(h.paddingLeft===void 0||S.boolean(h.paddingLeft))&&(h.paddingRight===void 0||S.boolean(h.paddingRight))}p.is=y})(ue||(e.InlayHint=ue={}));var Ie;(function(p){function g(y){return{kind:"snippet",value:y}}p.createSnippet=g})(Ie||(e.StringValue=Ie={}));var $e;(function(p){function g(y,x,h,L){return{insertText:y,filterText:x,range:h,command:L}}p.create=g})($e||(e.InlineCompletionItem=$e={}));var Tt;(function(p){function g(y){return{items:y}}p.create=g})(Tt||(e.InlineCompletionList=Tt={}));var al;(function(p){p.Invoked=0,p.Automatic=1})(al||(e.InlineCompletionTriggerKind=al={}));var a4;(function(p){function g(y,x){return{range:y,text:x}}p.create=g})(a4||(e.SelectedCompletionInfo=a4={}));var o4;(function(p){function g(y,x){return{triggerKind:y,selectedCompletionInfo:x}}p.create=g})(o4||(e.InlineCompletionContext=o4={}));var l4;(function(p){function g(y){var x=y;return S.objectLiteral(x)&&i.is(x.uri)&&S.string(x.name)}p.is=g})(l4||(e.WorkspaceFolder=l4={})),e.EOL=[`
33
+ `,`\r
34
+ `,"\r"];var u4;(function(p){function g(L,N,X,Oe){return new n5(L,N,X,Oe)}p.create=g;function y(L){var N=L;return!!(S.defined(N)&&S.string(N.uri)&&(S.undefined(N.languageId)||S.string(N.languageId))&&S.uinteger(N.lineCount)&&S.func(N.getText)&&S.func(N.positionAt)&&S.func(N.offsetAt))}p.is=y;function x(L,N){for(var X=L.getText(),Oe=h(N,function(pn,ol){var c4=pn.range.start.line-ol.range.start.line;return c4===0?pn.range.start.character-ol.range.start.character:c4}),Ee=X.length,Xt=Oe.length-1;Xt>=0;Xt--){var Zt=Oe[Xt],Pr=L.offsetAt(Zt.range.start),se=L.offsetAt(Zt.range.end);if(se<=Ee)X=X.substring(0,Pr)+Zt.newText+X.substring(se,X.length);else throw new Error("Overlapping edit");Ee=Pr}return X}p.applyEdits=x;function h(L,N){if(L.length<=1)return L;var X=L.length/2|0,Oe=L.slice(0,X),Ee=L.slice(X);h(Oe,N),h(Ee,N);for(var Xt=0,Zt=0,Pr=0;Xt<Oe.length&&Zt<Ee.length;){var se=N(Oe[Xt],Ee[Zt]);se<=0?L[Pr++]=Oe[Xt++]:L[Pr++]=Ee[Zt++]}for(;Xt<Oe.length;)L[Pr++]=Oe[Xt++];for(;Zt<Ee.length;)L[Pr++]=Ee[Zt++];return L}})(u4||(e.TextDocument=u4={}));var n5=(function(){function p(g,y,x,h){this._uri=g,this._languageId=y,this._version=x,this._content=h,this._lineOffsets=void 0}return Object.defineProperty(p.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(p.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(p.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),p.prototype.getText=function(g){if(g){var y=this.offsetAt(g.start),x=this.offsetAt(g.end);return this._content.substring(y,x)}return this._content},p.prototype.update=function(g,y){this._content=g.text,this._version=y,this._lineOffsets=void 0},p.prototype.getLineOffsets=function(){if(this._lineOffsets===void 0){for(var g=[],y=this._content,x=!0,h=0;h<y.length;h++){x&&(g.push(h),x=!1);var L=y.charAt(h);x=L==="\r"||L===`
35
+ `,L==="\r"&&h+1<y.length&&y.charAt(h+1)===`
36
+ `&&h++}x&&y.length>0&&g.push(y.length),this._lineOffsets=g}return this._lineOffsets},p.prototype.positionAt=function(g){g=Math.max(Math.min(g,this._content.length),0);var y=this.getLineOffsets(),x=0,h=y.length;if(h===0)return o.create(0,g);for(;x<h;){var L=Math.floor((x+h)/2);y[L]>g?h=L:x=L+1}var N=x-1;return o.create(N,g-y[N])},p.prototype.offsetAt=function(g){var y=this.getLineOffsets();if(g.line>=y.length)return this._content.length;if(g.line<0)return 0;var x=y[g.line],h=g.line+1<y.length?y[g.line+1]:this._content.length;return Math.max(Math.min(x+g.character,h),x)},Object.defineProperty(p.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),p})(),S;(function(p){var g=Object.prototype.toString;function y(se){return typeof se<"u"}p.defined=y;function x(se){return typeof se>"u"}p.undefined=x;function h(se){return se===!0||se===!1}p.boolean=h;function L(se){return g.call(se)==="[object String]"}p.string=L;function N(se){return g.call(se)==="[object Number]"}p.number=N;function X(se,pn,ol){return g.call(se)==="[object Number]"&&pn<=se&&se<=ol}p.numberRange=X;function Oe(se){return g.call(se)==="[object Number]"&&-2147483648<=se&&se<=2147483647}p.integer=Oe;function Ee(se){return g.call(se)==="[object Number]"&&0<=se&&se<=2147483647}p.uinteger=Ee;function Xt(se){return g.call(se)==="[object Function]"}p.func=Xt;function Zt(se){return se!==null&&typeof se=="object"}p.objectLiteral=Zt;function Pr(se,pn){return Array.isArray(se)&&se.every(pn)}p.typedArray=Pr})(S||(S={}))})});var Ne=_(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.ProtocolNotificationType=vt.ProtocolNotificationType0=vt.ProtocolRequestType=vt.ProtocolRequestType0=vt.RegistrationType=vt.MessageDirection=void 0;var vn=Si(),K4;(function(r){r.clientToServer="clientToServer",r.serverToClient="serverToClient",r.both="both"})(K4||(vt.MessageDirection=K4={}));var Ep=class{constructor(e){this.method=e}};vt.RegistrationType=Ep;var Lp=class extends vn.RequestType0{constructor(e){super(e)}};vt.ProtocolRequestType0=Lp;var Sp=class extends vn.RequestType{constructor(e){super(e,vn.ParameterStructures.byName)}};vt.ProtocolRequestType=Sp;var Pp=class extends vn.NotificationType0{constructor(e){super(e)}};vt.ProtocolNotificationType0=Pp;var Tp=class extends vn.NotificationType{constructor(e){super(e,vn.ParameterStructures.byName)}};vt.ProtocolNotificationType=Tp});var wl=_(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.objectLiteral=qe.typedArray=qe.stringArray=qe.array=qe.func=qe.error=qe.number=qe.string=qe.boolean=void 0;function J5(r){return r===!0||r===!1}qe.boolean=J5;function z4(r){return typeof r=="string"||r instanceof String}qe.string=z4;function X5(r){return typeof r=="number"||r instanceof Number}qe.number=X5;function Z5(r){return r instanceof Error}qe.error=Z5;function eg(r){return typeof r=="function"}qe.func=eg;function Q4(r){return Array.isArray(r)}qe.array=Q4;function tg(r){return Q4(r)&&r.every(e=>z4(e))}qe.stringArray=tg;function rg(r,e){return Array.isArray(r)&&r.every(e)}qe.typedArray=rg;function ig(r){return r!==null&&typeof r=="object"}qe.objectLiteral=ig});var J4=_(Dl=>{"use strict";Object.defineProperty(Dl,"__esModule",{value:!0});Dl.ImplementationRequest=void 0;var $4=Ne(),Y4;(function(r){r.method="textDocument/implementation",r.messageDirection=$4.MessageDirection.clientToServer,r.type=new $4.ProtocolRequestType(r.method)})(Y4||(Dl.ImplementationRequest=Y4={}))});var ef=_(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});Il.TypeDefinitionRequest=void 0;var X4=Ne(),Z4;(function(r){r.method="textDocument/typeDefinition",r.messageDirection=X4.MessageDirection.clientToServer,r.type=new X4.ProtocolRequestType(r.method)})(Z4||(Il.TypeDefinitionRequest=Z4={}))});var nf=_(En=>{"use strict";Object.defineProperty(En,"__esModule",{value:!0});En.DidChangeWorkspaceFoldersNotification=En.WorkspaceFoldersRequest=void 0;var Ol=Ne(),tf;(function(r){r.method="workspace/workspaceFolders",r.messageDirection=Ol.MessageDirection.serverToClient,r.type=new Ol.ProtocolRequestType0(r.method)})(tf||(En.WorkspaceFoldersRequest=tf={}));var rf;(function(r){r.method="workspace/didChangeWorkspaceFolders",r.messageDirection=Ol.MessageDirection.clientToServer,r.type=new Ol.ProtocolNotificationType(r.method)})(rf||(En.DidChangeWorkspaceFoldersNotification=rf={}))});var of=_(kl=>{"use strict";Object.defineProperty(kl,"__esModule",{value:!0});kl.ConfigurationRequest=void 0;var sf=Ne(),af;(function(r){r.method="workspace/configuration",r.messageDirection=sf.MessageDirection.serverToClient,r.type=new sf.ProtocolRequestType(r.method)})(af||(kl.ConfigurationRequest=af={}))});var cf=_(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});Ln.ColorPresentationRequest=Ln.DocumentColorRequest=void 0;var Fl=Ne(),lf;(function(r){r.method="textDocument/documentColor",r.messageDirection=Fl.MessageDirection.clientToServer,r.type=new Fl.ProtocolRequestType(r.method)})(lf||(Ln.DocumentColorRequest=lf={}));var uf;(function(r){r.method="textDocument/colorPresentation",r.messageDirection=Fl.MessageDirection.clientToServer,r.type=new Fl.ProtocolRequestType(r.method)})(uf||(Ln.ColorPresentationRequest=uf={}))});var pf=_(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.FoldingRangeRefreshRequest=Sn.FoldingRangeRequest=void 0;var Hl=Ne(),hf;(function(r){r.method="textDocument/foldingRange",r.messageDirection=Hl.MessageDirection.clientToServer,r.type=new Hl.ProtocolRequestType(r.method)})(hf||(Sn.FoldingRangeRequest=hf={}));var df;(function(r){r.method="workspace/foldingRange/refresh",r.messageDirection=Hl.MessageDirection.serverToClient,r.type=new Hl.ProtocolRequestType0(r.method)})(df||(Sn.FoldingRangeRefreshRequest=df={}))});var mf=_(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});Bl.DeclarationRequest=void 0;var ff=Ne(),xf;(function(r){r.method="textDocument/declaration",r.messageDirection=ff.MessageDirection.clientToServer,r.type=new ff.ProtocolRequestType(r.method)})(xf||(Bl.DeclarationRequest=xf={}))});var gf=_(_l=>{"use strict";Object.defineProperty(_l,"__esModule",{value:!0});_l.SelectionRangeRequest=void 0;var bf=Ne(),Rf;(function(r){r.method="textDocument/selectionRange",r.messageDirection=bf.MessageDirection.clientToServer,r.type=new bf.ProtocolRequestType(r.method)})(Rf||(_l.SelectionRangeRequest=Rf={}))});var Ef=_(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.WorkDoneProgressCancelNotification=zr.WorkDoneProgressCreateRequest=zr.WorkDoneProgress=void 0;var ng=Si(),Vl=Ne(),yf;(function(r){r.type=new ng.ProgressType;function e(t){return t===r.type}r.is=e})(yf||(zr.WorkDoneProgress=yf={}));var Cf;(function(r){r.method="window/workDoneProgress/create",r.messageDirection=Vl.MessageDirection.serverToClient,r.type=new Vl.ProtocolRequestType(r.method)})(Cf||(zr.WorkDoneProgressCreateRequest=Cf={}));var vf;(function(r){r.method="window/workDoneProgress/cancel",r.messageDirection=Vl.MessageDirection.clientToServer,r.type=new Vl.ProtocolNotificationType(r.method)})(vf||(zr.WorkDoneProgressCancelNotification=vf={}))});var Tf=_(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.CallHierarchyOutgoingCallsRequest=Qr.CallHierarchyIncomingCallsRequest=Qr.CallHierarchyPrepareRequest=void 0;var Pn=Ne(),Lf;(function(r){r.method="textDocument/prepareCallHierarchy",r.messageDirection=Pn.MessageDirection.clientToServer,r.type=new Pn.ProtocolRequestType(r.method)})(Lf||(Qr.CallHierarchyPrepareRequest=Lf={}));var Sf;(function(r){r.method="callHierarchy/incomingCalls",r.messageDirection=Pn.MessageDirection.clientToServer,r.type=new Pn.ProtocolRequestType(r.method)})(Sf||(Qr.CallHierarchyIncomingCallsRequest=Sf={}));var Pf;(function(r){r.method="callHierarchy/outgoingCalls",r.messageDirection=Pn.MessageDirection.clientToServer,r.type=new Pn.ProtocolRequestType(r.method)})(Pf||(Qr.CallHierarchyOutgoingCallsRequest=Pf={}))});var Df=_(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.SemanticTokensRefreshRequest=Et.SemanticTokensRangeRequest=Et.SemanticTokensDeltaRequest=Et.SemanticTokensRequest=Et.SemanticTokensRegistrationType=Et.TokenFormat=void 0;var Ar=Ne(),Af;(function(r){r.Relative="relative"})(Af||(Et.TokenFormat=Af={}));var Bs;(function(r){r.method="textDocument/semanticTokens",r.type=new Ar.RegistrationType(r.method)})(Bs||(Et.SemanticTokensRegistrationType=Bs={}));var Mf;(function(r){r.method="textDocument/semanticTokens/full",r.messageDirection=Ar.MessageDirection.clientToServer,r.type=new Ar.ProtocolRequestType(r.method),r.registrationMethod=Bs.method})(Mf||(Et.SemanticTokensRequest=Mf={}));var Nf;(function(r){r.method="textDocument/semanticTokens/full/delta",r.messageDirection=Ar.MessageDirection.clientToServer,r.type=new Ar.ProtocolRequestType(r.method),r.registrationMethod=Bs.method})(Nf||(Et.SemanticTokensDeltaRequest=Nf={}));var Uf;(function(r){r.method="textDocument/semanticTokens/range",r.messageDirection=Ar.MessageDirection.clientToServer,r.type=new Ar.ProtocolRequestType(r.method),r.registrationMethod=Bs.method})(Uf||(Et.SemanticTokensRangeRequest=Uf={}));var wf;(function(r){r.method="workspace/semanticTokens/refresh",r.messageDirection=Ar.MessageDirection.serverToClient,r.type=new Ar.ProtocolRequestType0(r.method)})(wf||(Et.SemanticTokensRefreshRequest=wf={}))});var kf=_(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.ShowDocumentRequest=void 0;var If=Ne(),Of;(function(r){r.method="window/showDocument",r.messageDirection=If.MessageDirection.serverToClient,r.type=new If.ProtocolRequestType(r.method)})(Of||(ql.ShowDocumentRequest=Of={}))});var Bf=_(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});jl.LinkedEditingRangeRequest=void 0;var Ff=Ne(),Hf;(function(r){r.method="textDocument/linkedEditingRange",r.messageDirection=Ff.MessageDirection.clientToServer,r.type=new Ff.ProtocolRequestType(r.method)})(Hf||(jl.LinkedEditingRangeRequest=Hf={}))});var zf=_(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.WillDeleteFilesRequest=lt.DidDeleteFilesNotification=lt.DidRenameFilesNotification=lt.WillRenameFilesRequest=lt.DidCreateFilesNotification=lt.WillCreateFilesRequest=lt.FileOperationPatternKind=void 0;var It=Ne(),_f;(function(r){r.file="file",r.folder="folder"})(_f||(lt.FileOperationPatternKind=_f={}));var Vf;(function(r){r.method="workspace/willCreateFiles",r.messageDirection=It.MessageDirection.clientToServer,r.type=new It.ProtocolRequestType(r.method)})(Vf||(lt.WillCreateFilesRequest=Vf={}));var qf;(function(r){r.method="workspace/didCreateFiles",r.messageDirection=It.MessageDirection.clientToServer,r.type=new It.ProtocolNotificationType(r.method)})(qf||(lt.DidCreateFilesNotification=qf={}));var jf;(function(r){r.method="workspace/willRenameFiles",r.messageDirection=It.MessageDirection.clientToServer,r.type=new It.ProtocolRequestType(r.method)})(jf||(lt.WillRenameFilesRequest=jf={}));var Gf;(function(r){r.method="workspace/didRenameFiles",r.messageDirection=It.MessageDirection.clientToServer,r.type=new It.ProtocolNotificationType(r.method)})(Gf||(lt.DidRenameFilesNotification=Gf={}));var Wf;(function(r){r.method="workspace/didDeleteFiles",r.messageDirection=It.MessageDirection.clientToServer,r.type=new It.ProtocolNotificationType(r.method)})(Wf||(lt.DidDeleteFilesNotification=Wf={}));var Kf;(function(r){r.method="workspace/willDeleteFiles",r.messageDirection=It.MessageDirection.clientToServer,r.type=new It.ProtocolRequestType(r.method)})(Kf||(lt.WillDeleteFilesRequest=Kf={}))});var Xf=_($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.MonikerRequest=$r.MonikerKind=$r.UniquenessLevel=void 0;var Qf=Ne(),$f;(function(r){r.document="document",r.project="project",r.group="group",r.scheme="scheme",r.global="global"})($f||($r.UniquenessLevel=$f={}));var Yf;(function(r){r.$import="import",r.$export="export",r.local="local"})(Yf||($r.MonikerKind=Yf={}));var Jf;(function(r){r.method="textDocument/moniker",r.messageDirection=Qf.MessageDirection.clientToServer,r.type=new Qf.ProtocolRequestType(r.method)})(Jf||($r.MonikerRequest=Jf={}))});var rx=_(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.TypeHierarchySubtypesRequest=Yr.TypeHierarchySupertypesRequest=Yr.TypeHierarchyPrepareRequest=void 0;var Tn=Ne(),Zf;(function(r){r.method="textDocument/prepareTypeHierarchy",r.messageDirection=Tn.MessageDirection.clientToServer,r.type=new Tn.ProtocolRequestType(r.method)})(Zf||(Yr.TypeHierarchyPrepareRequest=Zf={}));var ex;(function(r){r.method="typeHierarchy/supertypes",r.messageDirection=Tn.MessageDirection.clientToServer,r.type=new Tn.ProtocolRequestType(r.method)})(ex||(Yr.TypeHierarchySupertypesRequest=ex={}));var tx;(function(r){r.method="typeHierarchy/subtypes",r.messageDirection=Tn.MessageDirection.clientToServer,r.type=new Tn.ProtocolRequestType(r.method)})(tx||(Yr.TypeHierarchySubtypesRequest=tx={}))});var sx=_(An=>{"use strict";Object.defineProperty(An,"__esModule",{value:!0});An.InlineValueRefreshRequest=An.InlineValueRequest=void 0;var Gl=Ne(),ix;(function(r){r.method="textDocument/inlineValue",r.messageDirection=Gl.MessageDirection.clientToServer,r.type=new Gl.ProtocolRequestType(r.method)})(ix||(An.InlineValueRequest=ix={}));var nx;(function(r){r.method="workspace/inlineValue/refresh",r.messageDirection=Gl.MessageDirection.serverToClient,r.type=new Gl.ProtocolRequestType0(r.method)})(nx||(An.InlineValueRefreshRequest=nx={}))});var ux=_(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.InlayHintRefreshRequest=Jr.InlayHintResolveRequest=Jr.InlayHintRequest=void 0;var Mn=Ne(),ax;(function(r){r.method="textDocument/inlayHint",r.messageDirection=Mn.MessageDirection.clientToServer,r.type=new Mn.ProtocolRequestType(r.method)})(ax||(Jr.InlayHintRequest=ax={}));var ox;(function(r){r.method="inlayHint/resolve",r.messageDirection=Mn.MessageDirection.clientToServer,r.type=new Mn.ProtocolRequestType(r.method)})(ox||(Jr.InlayHintResolveRequest=ox={}));var lx;(function(r){r.method="workspace/inlayHint/refresh",r.messageDirection=Mn.MessageDirection.serverToClient,r.type=new Mn.ProtocolRequestType0(r.method)})(lx||(Jr.InlayHintRefreshRequest=lx={}))});var mx=_(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.DiagnosticRefreshRequest=Ot.WorkspaceDiagnosticRequest=Ot.DocumentDiagnosticRequest=Ot.DocumentDiagnosticReportKind=Ot.DiagnosticServerCancellationData=void 0;var xx=Si(),sg=wl(),Nn=Ne(),cx;(function(r){function e(t){let i=t;return i&&sg.boolean(i.retriggerRequest)}r.is=e})(cx||(Ot.DiagnosticServerCancellationData=cx={}));var hx;(function(r){r.Full="full",r.Unchanged="unchanged"})(hx||(Ot.DocumentDiagnosticReportKind=hx={}));var dx;(function(r){r.method="textDocument/diagnostic",r.messageDirection=Nn.MessageDirection.clientToServer,r.type=new Nn.ProtocolRequestType(r.method),r.partialResult=new xx.ProgressType})(dx||(Ot.DocumentDiagnosticRequest=dx={}));var px;(function(r){r.method="workspace/diagnostic",r.messageDirection=Nn.MessageDirection.clientToServer,r.type=new Nn.ProtocolRequestType(r.method),r.partialResult=new xx.ProgressType})(px||(Ot.WorkspaceDiagnosticRequest=px={}));var fx;(function(r){r.method="workspace/diagnostic/refresh",r.messageDirection=Nn.MessageDirection.serverToClient,r.type=new Nn.ProtocolRequestType0(r.method)})(fx||(Ot.DiagnosticRefreshRequest=fx={}))});var Ex=_(ke=>{"use strict";Object.defineProperty(ke,"__esModule",{value:!0});ke.DidCloseNotebookDocumentNotification=ke.DidSaveNotebookDocumentNotification=ke.DidChangeNotebookDocumentNotification=ke.NotebookCellArrayChange=ke.DidOpenNotebookDocumentNotification=ke.NotebookDocumentSyncRegistrationType=ke.NotebookDocument=ke.NotebookCell=ke.ExecutionSummary=ke.NotebookCellKind=void 0;var _s=Ul(),tr=wl(),dr=Ne(),Ap;(function(r){r.Markup=1,r.Code=2;function e(t){return t===1||t===2}r.is=e})(Ap||(ke.NotebookCellKind=Ap={}));var Mp;(function(r){function e(n,a){let o={executionOrder:n};return(a===!0||a===!1)&&(o.success=a),o}r.create=e;function t(n){let a=n;return tr.objectLiteral(a)&&_s.uinteger.is(a.executionOrder)&&(a.success===void 0||tr.boolean(a.success))}r.is=t;function i(n,a){return n===a?!0:n==null||a===null||a===void 0?!1:n.executionOrder===a.executionOrder&&n.success===a.success}r.equals=i})(Mp||(ke.ExecutionSummary=Mp={}));var Wl;(function(r){function e(a,o){return{kind:a,document:o}}r.create=e;function t(a){let o=a;return tr.objectLiteral(o)&&Ap.is(o.kind)&&_s.DocumentUri.is(o.document)&&(o.metadata===void 0||tr.objectLiteral(o.metadata))}r.is=t;function i(a,o){let l=new Set;return a.document!==o.document&&l.add("document"),a.kind!==o.kind&&l.add("kind"),a.executionSummary!==o.executionSummary&&l.add("executionSummary"),(a.metadata!==void 0||o.metadata!==void 0)&&!n(a.metadata,o.metadata)&&l.add("metadata"),(a.executionSummary!==void 0||o.executionSummary!==void 0)&&!Mp.equals(a.executionSummary,o.executionSummary)&&l.add("executionSummary"),l}r.diff=i;function n(a,o){if(a===o)return!0;if(a==null||o===null||o===void 0||typeof a!=typeof o||typeof a!="object")return!1;let l=Array.isArray(a),d=Array.isArray(o);if(l!==d)return!1;if(l&&d){if(a.length!==o.length)return!1;for(let f=0;f<a.length;f++)if(!n(a[f],o[f]))return!1}if(tr.objectLiteral(a)&&tr.objectLiteral(o)){let f=Object.keys(a),b=Object.keys(o);if(f.length!==b.length||(f.sort(),b.sort(),!n(f,b)))return!1;for(let E=0;E<f.length;E++){let A=f[E];if(!n(a[A],o[A]))return!1}}return!0}})(Wl||(ke.NotebookCell=Wl={}));var bx;(function(r){function e(i,n,a,o){return{uri:i,notebookType:n,version:a,cells:o}}r.create=e;function t(i){let n=i;return tr.objectLiteral(n)&&tr.string(n.uri)&&_s.integer.is(n.version)&&tr.typedArray(n.cells,Wl.is)}r.is=t})(bx||(ke.NotebookDocument=bx={}));var Un;(function(r){r.method="notebookDocument/sync",r.messageDirection=dr.MessageDirection.clientToServer,r.type=new dr.RegistrationType(r.method)})(Un||(ke.NotebookDocumentSyncRegistrationType=Un={}));var Rx;(function(r){r.method="notebookDocument/didOpen",r.messageDirection=dr.MessageDirection.clientToServer,r.type=new dr.ProtocolNotificationType(r.method),r.registrationMethod=Un.method})(Rx||(ke.DidOpenNotebookDocumentNotification=Rx={}));var gx;(function(r){function e(i){let n=i;return tr.objectLiteral(n)&&_s.uinteger.is(n.start)&&_s.uinteger.is(n.deleteCount)&&(n.cells===void 0||tr.typedArray(n.cells,Wl.is))}r.is=e;function t(i,n,a){let o={start:i,deleteCount:n};return a!==void 0&&(o.cells=a),o}r.create=t})(gx||(ke.NotebookCellArrayChange=gx={}));var yx;(function(r){r.method="notebookDocument/didChange",r.messageDirection=dr.MessageDirection.clientToServer,r.type=new dr.ProtocolNotificationType(r.method),r.registrationMethod=Un.method})(yx||(ke.DidChangeNotebookDocumentNotification=yx={}));var Cx;(function(r){r.method="notebookDocument/didSave",r.messageDirection=dr.MessageDirection.clientToServer,r.type=new dr.ProtocolNotificationType(r.method),r.registrationMethod=Un.method})(Cx||(ke.DidSaveNotebookDocumentNotification=Cx={}));var vx;(function(r){r.method="notebookDocument/didClose",r.messageDirection=dr.MessageDirection.clientToServer,r.type=new dr.ProtocolNotificationType(r.method),r.registrationMethod=Un.method})(vx||(ke.DidCloseNotebookDocumentNotification=vx={}))});var Px=_(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.InlineCompletionRequest=void 0;var Lx=Ne(),Sx;(function(r){r.method="textDocument/inlineCompletion",r.messageDirection=Lx.MessageDirection.clientToServer,r.type=new Lx.ProtocolRequestType(r.method)})(Sx||(Kl.InlineCompletionRequest=Sx={}))});var Bm=_(m=>{"use strict";Object.defineProperty(m,"__esModule",{value:!0});m.WorkspaceSymbolRequest=m.CodeActionResolveRequest=m.CodeActionRequest=m.DocumentSymbolRequest=m.DocumentHighlightRequest=m.ReferencesRequest=m.DefinitionRequest=m.SignatureHelpRequest=m.SignatureHelpTriggerKind=m.HoverRequest=m.CompletionResolveRequest=m.CompletionRequest=m.CompletionTriggerKind=m.PublishDiagnosticsNotification=m.WatchKind=m.RelativePattern=m.FileChangeType=m.DidChangeWatchedFilesNotification=m.WillSaveTextDocumentWaitUntilRequest=m.WillSaveTextDocumentNotification=m.TextDocumentSaveReason=m.DidSaveTextDocumentNotification=m.DidCloseTextDocumentNotification=m.DidChangeTextDocumentNotification=m.TextDocumentContentChangeEvent=m.DidOpenTextDocumentNotification=m.TextDocumentSyncKind=m.TelemetryEventNotification=m.LogMessageNotification=m.ShowMessageRequest=m.ShowMessageNotification=m.MessageType=m.DidChangeConfigurationNotification=m.ExitNotification=m.ShutdownRequest=m.InitializedNotification=m.InitializeErrorCodes=m.InitializeRequest=m.WorkDoneProgressOptions=m.TextDocumentRegistrationOptions=m.StaticRegistrationOptions=m.PositionEncodingKind=m.FailureHandlingKind=m.ResourceOperationKind=m.UnregistrationRequest=m.RegistrationRequest=m.DocumentSelector=m.NotebookCellTextDocumentFilter=m.NotebookDocumentFilter=m.TextDocumentFilter=void 0;m.MonikerRequest=m.MonikerKind=m.UniquenessLevel=m.WillDeleteFilesRequest=m.DidDeleteFilesNotification=m.WillRenameFilesRequest=m.DidRenameFilesNotification=m.WillCreateFilesRequest=m.DidCreateFilesNotification=m.FileOperationPatternKind=m.LinkedEditingRangeRequest=m.ShowDocumentRequest=m.SemanticTokensRegistrationType=m.SemanticTokensRefreshRequest=m.SemanticTokensRangeRequest=m.SemanticTokensDeltaRequest=m.SemanticTokensRequest=m.TokenFormat=m.CallHierarchyPrepareRequest=m.CallHierarchyOutgoingCallsRequest=m.CallHierarchyIncomingCallsRequest=m.WorkDoneProgressCancelNotification=m.WorkDoneProgressCreateRequest=m.WorkDoneProgress=m.SelectionRangeRequest=m.DeclarationRequest=m.FoldingRangeRefreshRequest=m.FoldingRangeRequest=m.ColorPresentationRequest=m.DocumentColorRequest=m.ConfigurationRequest=m.DidChangeWorkspaceFoldersNotification=m.WorkspaceFoldersRequest=m.TypeDefinitionRequest=m.ImplementationRequest=m.ApplyWorkspaceEditRequest=m.ExecuteCommandRequest=m.PrepareRenameRequest=m.RenameRequest=m.PrepareSupportDefaultBehavior=m.DocumentOnTypeFormattingRequest=m.DocumentRangesFormattingRequest=m.DocumentRangeFormattingRequest=m.DocumentFormattingRequest=m.DocumentLinkResolveRequest=m.DocumentLinkRequest=m.CodeLensRefreshRequest=m.CodeLensResolveRequest=m.CodeLensRequest=m.WorkspaceSymbolResolveRequest=void 0;m.InlineCompletionRequest=m.DidCloseNotebookDocumentNotification=m.DidSaveNotebookDocumentNotification=m.DidChangeNotebookDocumentNotification=m.NotebookCellArrayChange=m.DidOpenNotebookDocumentNotification=m.NotebookDocumentSyncRegistrationType=m.NotebookDocument=m.NotebookCell=m.ExecutionSummary=m.NotebookCellKind=m.DiagnosticRefreshRequest=m.WorkspaceDiagnosticRequest=m.DocumentDiagnosticRequest=m.DocumentDiagnosticReportKind=m.DiagnosticServerCancellationData=m.InlayHintRefreshRequest=m.InlayHintResolveRequest=m.InlayHintRequest=m.InlineValueRefreshRequest=m.InlineValueRequest=m.TypeHierarchySupertypesRequest=m.TypeHierarchySubtypesRequest=m.TypeHierarchyPrepareRequest=void 0;var w=Ne(),Tx=Ul(),Ye=wl(),ag=J4();Object.defineProperty(m,"ImplementationRequest",{enumerable:!0,get:function(){return ag.ImplementationRequest}});var og=ef();Object.defineProperty(m,"TypeDefinitionRequest",{enumerable:!0,get:function(){return og.TypeDefinitionRequest}});var Om=nf();Object.defineProperty(m,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Om.WorkspaceFoldersRequest}});Object.defineProperty(m,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Om.DidChangeWorkspaceFoldersNotification}});var lg=of();Object.defineProperty(m,"ConfigurationRequest",{enumerable:!0,get:function(){return lg.ConfigurationRequest}});var km=cf();Object.defineProperty(m,"DocumentColorRequest",{enumerable:!0,get:function(){return km.DocumentColorRequest}});Object.defineProperty(m,"ColorPresentationRequest",{enumerable:!0,get:function(){return km.ColorPresentationRequest}});var Fm=pf();Object.defineProperty(m,"FoldingRangeRequest",{enumerable:!0,get:function(){return Fm.FoldingRangeRequest}});Object.defineProperty(m,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Fm.FoldingRangeRefreshRequest}});var ug=mf();Object.defineProperty(m,"DeclarationRequest",{enumerable:!0,get:function(){return ug.DeclarationRequest}});var cg=gf();Object.defineProperty(m,"SelectionRangeRequest",{enumerable:!0,get:function(){return cg.SelectionRangeRequest}});var Ip=Ef();Object.defineProperty(m,"WorkDoneProgress",{enumerable:!0,get:function(){return Ip.WorkDoneProgress}});Object.defineProperty(m,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return Ip.WorkDoneProgressCreateRequest}});Object.defineProperty(m,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return Ip.WorkDoneProgressCancelNotification}});var Op=Tf();Object.defineProperty(m,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Op.CallHierarchyIncomingCallsRequest}});Object.defineProperty(m,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Op.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(m,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Op.CallHierarchyPrepareRequest}});var wn=Df();Object.defineProperty(m,"TokenFormat",{enumerable:!0,get:function(){return wn.TokenFormat}});Object.defineProperty(m,"SemanticTokensRequest",{enumerable:!0,get:function(){return wn.SemanticTokensRequest}});Object.defineProperty(m,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return wn.SemanticTokensDeltaRequest}});Object.defineProperty(m,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return wn.SemanticTokensRangeRequest}});Object.defineProperty(m,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return wn.SemanticTokensRefreshRequest}});Object.defineProperty(m,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return wn.SemanticTokensRegistrationType}});var hg=kf();Object.defineProperty(m,"ShowDocumentRequest",{enumerable:!0,get:function(){return hg.ShowDocumentRequest}});var dg=Bf();Object.defineProperty(m,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return dg.LinkedEditingRangeRequest}});var Pi=zf();Object.defineProperty(m,"FileOperationPatternKind",{enumerable:!0,get:function(){return Pi.FileOperationPatternKind}});Object.defineProperty(m,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Pi.DidCreateFilesNotification}});Object.defineProperty(m,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Pi.WillCreateFilesRequest}});Object.defineProperty(m,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Pi.DidRenameFilesNotification}});Object.defineProperty(m,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Pi.WillRenameFilesRequest}});Object.defineProperty(m,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Pi.DidDeleteFilesNotification}});Object.defineProperty(m,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Pi.WillDeleteFilesRequest}});var kp=Xf();Object.defineProperty(m,"UniquenessLevel",{enumerable:!0,get:function(){return kp.UniquenessLevel}});Object.defineProperty(m,"MonikerKind",{enumerable:!0,get:function(){return kp.MonikerKind}});Object.defineProperty(m,"MonikerRequest",{enumerable:!0,get:function(){return kp.MonikerRequest}});var Fp=rx();Object.defineProperty(m,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Fp.TypeHierarchyPrepareRequest}});Object.defineProperty(m,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Fp.TypeHierarchySubtypesRequest}});Object.defineProperty(m,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Fp.TypeHierarchySupertypesRequest}});var Hm=sx();Object.defineProperty(m,"InlineValueRequest",{enumerable:!0,get:function(){return Hm.InlineValueRequest}});Object.defineProperty(m,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Hm.InlineValueRefreshRequest}});var Hp=ux();Object.defineProperty(m,"InlayHintRequest",{enumerable:!0,get:function(){return Hp.InlayHintRequest}});Object.defineProperty(m,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Hp.InlayHintResolveRequest}});Object.defineProperty(m,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Hp.InlayHintRefreshRequest}});var Vs=mx();Object.defineProperty(m,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Vs.DiagnosticServerCancellationData}});Object.defineProperty(m,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Vs.DocumentDiagnosticReportKind}});Object.defineProperty(m,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Vs.DocumentDiagnosticRequest}});Object.defineProperty(m,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Vs.WorkspaceDiagnosticRequest}});Object.defineProperty(m,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Vs.DiagnosticRefreshRequest}});var pr=Ex();Object.defineProperty(m,"NotebookCellKind",{enumerable:!0,get:function(){return pr.NotebookCellKind}});Object.defineProperty(m,"ExecutionSummary",{enumerable:!0,get:function(){return pr.ExecutionSummary}});Object.defineProperty(m,"NotebookCell",{enumerable:!0,get:function(){return pr.NotebookCell}});Object.defineProperty(m,"NotebookDocument",{enumerable:!0,get:function(){return pr.NotebookDocument}});Object.defineProperty(m,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return pr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(m,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return pr.DidOpenNotebookDocumentNotification}});Object.defineProperty(m,"NotebookCellArrayChange",{enumerable:!0,get:function(){return pr.NotebookCellArrayChange}});Object.defineProperty(m,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return pr.DidChangeNotebookDocumentNotification}});Object.defineProperty(m,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return pr.DidSaveNotebookDocumentNotification}});Object.defineProperty(m,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return pr.DidCloseNotebookDocumentNotification}});var pg=Px();Object.defineProperty(m,"InlineCompletionRequest",{enumerable:!0,get:function(){return pg.InlineCompletionRequest}});var Np;(function(r){function e(t){let i=t;return Ye.string(i)||Ye.string(i.language)||Ye.string(i.scheme)||Ye.string(i.pattern)}r.is=e})(Np||(m.TextDocumentFilter=Np={}));var Up;(function(r){function e(t){let i=t;return Ye.objectLiteral(i)&&(Ye.string(i.notebookType)||Ye.string(i.scheme)||Ye.string(i.pattern))}r.is=e})(Up||(m.NotebookDocumentFilter=Up={}));var wp;(function(r){function e(t){let i=t;return Ye.objectLiteral(i)&&(Ye.string(i.notebook)||Up.is(i.notebook))&&(i.language===void 0||Ye.string(i.language))}r.is=e})(wp||(m.NotebookCellTextDocumentFilter=wp={}));var Dp;(function(r){function e(t){if(!Array.isArray(t))return!1;for(let i of t)if(!Ye.string(i)&&!Np.is(i)&&!wp.is(i))return!1;return!0}r.is=e})(Dp||(m.DocumentSelector=Dp={}));var Ax;(function(r){r.method="client/registerCapability",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolRequestType(r.method)})(Ax||(m.RegistrationRequest=Ax={}));var Mx;(function(r){r.method="client/unregisterCapability",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolRequestType(r.method)})(Mx||(m.UnregistrationRequest=Mx={}));var Nx;(function(r){r.Create="create",r.Rename="rename",r.Delete="delete"})(Nx||(m.ResourceOperationKind=Nx={}));var Ux;(function(r){r.Abort="abort",r.Transactional="transactional",r.TextOnlyTransactional="textOnlyTransactional",r.Undo="undo"})(Ux||(m.FailureHandlingKind=Ux={}));var wx;(function(r){r.UTF8="utf-8",r.UTF16="utf-16",r.UTF32="utf-32"})(wx||(m.PositionEncodingKind=wx={}));var Dx;(function(r){function e(t){let i=t;return i&&Ye.string(i.id)&&i.id.length>0}r.hasId=e})(Dx||(m.StaticRegistrationOptions=Dx={}));var Ix;(function(r){function e(t){let i=t;return i&&(i.documentSelector===null||Dp.is(i.documentSelector))}r.is=e})(Ix||(m.TextDocumentRegistrationOptions=Ix={}));var Ox;(function(r){function e(i){let n=i;return Ye.objectLiteral(n)&&(n.workDoneProgress===void 0||Ye.boolean(n.workDoneProgress))}r.is=e;function t(i){let n=i;return n&&Ye.boolean(n.workDoneProgress)}r.hasWorkDoneProgress=t})(Ox||(m.WorkDoneProgressOptions=Ox={}));var kx;(function(r){r.method="initialize",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(kx||(m.InitializeRequest=kx={}));var Fx;(function(r){r.unknownProtocolVersion=1})(Fx||(m.InitializeErrorCodes=Fx={}));var Hx;(function(r){r.method="initialized",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType(r.method)})(Hx||(m.InitializedNotification=Hx={}));var Bx;(function(r){r.method="shutdown",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType0(r.method)})(Bx||(m.ShutdownRequest=Bx={}));var _x;(function(r){r.method="exit",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType0(r.method)})(_x||(m.ExitNotification=_x={}));var Vx;(function(r){r.method="workspace/didChangeConfiguration",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType(r.method)})(Vx||(m.DidChangeConfigurationNotification=Vx={}));var qx;(function(r){r.Error=1,r.Warning=2,r.Info=3,r.Log=4,r.Debug=5})(qx||(m.MessageType=qx={}));var jx;(function(r){r.method="window/showMessage",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolNotificationType(r.method)})(jx||(m.ShowMessageNotification=jx={}));var Gx;(function(r){r.method="window/showMessageRequest",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolRequestType(r.method)})(Gx||(m.ShowMessageRequest=Gx={}));var Wx;(function(r){r.method="window/logMessage",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolNotificationType(r.method)})(Wx||(m.LogMessageNotification=Wx={}));var Kx;(function(r){r.method="telemetry/event",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolNotificationType(r.method)})(Kx||(m.TelemetryEventNotification=Kx={}));var zx;(function(r){r.None=0,r.Full=1,r.Incremental=2})(zx||(m.TextDocumentSyncKind=zx={}));var Qx;(function(r){r.method="textDocument/didOpen",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType(r.method)})(Qx||(m.DidOpenTextDocumentNotification=Qx={}));var $x;(function(r){function e(i){let n=i;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}r.isIncremental=e;function t(i){let n=i;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}r.isFull=t})($x||(m.TextDocumentContentChangeEvent=$x={}));var Yx;(function(r){r.method="textDocument/didChange",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType(r.method)})(Yx||(m.DidChangeTextDocumentNotification=Yx={}));var Jx;(function(r){r.method="textDocument/didClose",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType(r.method)})(Jx||(m.DidCloseTextDocumentNotification=Jx={}));var Xx;(function(r){r.method="textDocument/didSave",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType(r.method)})(Xx||(m.DidSaveTextDocumentNotification=Xx={}));var Zx;(function(r){r.Manual=1,r.AfterDelay=2,r.FocusOut=3})(Zx||(m.TextDocumentSaveReason=Zx={}));var em;(function(r){r.method="textDocument/willSave",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType(r.method)})(em||(m.WillSaveTextDocumentNotification=em={}));var tm;(function(r){r.method="textDocument/willSaveWaitUntil",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(tm||(m.WillSaveTextDocumentWaitUntilRequest=tm={}));var rm;(function(r){r.method="workspace/didChangeWatchedFiles",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolNotificationType(r.method)})(rm||(m.DidChangeWatchedFilesNotification=rm={}));var im;(function(r){r.Created=1,r.Changed=2,r.Deleted=3})(im||(m.FileChangeType=im={}));var nm;(function(r){function e(t){let i=t;return Ye.objectLiteral(i)&&(Tx.URI.is(i.baseUri)||Tx.WorkspaceFolder.is(i.baseUri))&&Ye.string(i.pattern)}r.is=e})(nm||(m.RelativePattern=nm={}));var sm;(function(r){r.Create=1,r.Change=2,r.Delete=4})(sm||(m.WatchKind=sm={}));var am;(function(r){r.method="textDocument/publishDiagnostics",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolNotificationType(r.method)})(am||(m.PublishDiagnosticsNotification=am={}));var om;(function(r){r.Invoked=1,r.TriggerCharacter=2,r.TriggerForIncompleteCompletions=3})(om||(m.CompletionTriggerKind=om={}));var lm;(function(r){r.method="textDocument/completion",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(lm||(m.CompletionRequest=lm={}));var um;(function(r){r.method="completionItem/resolve",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(um||(m.CompletionResolveRequest=um={}));var cm;(function(r){r.method="textDocument/hover",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(cm||(m.HoverRequest=cm={}));var hm;(function(r){r.Invoked=1,r.TriggerCharacter=2,r.ContentChange=3})(hm||(m.SignatureHelpTriggerKind=hm={}));var dm;(function(r){r.method="textDocument/signatureHelp",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(dm||(m.SignatureHelpRequest=dm={}));var pm;(function(r){r.method="textDocument/definition",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(pm||(m.DefinitionRequest=pm={}));var fm;(function(r){r.method="textDocument/references",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(fm||(m.ReferencesRequest=fm={}));var xm;(function(r){r.method="textDocument/documentHighlight",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(xm||(m.DocumentHighlightRequest=xm={}));var mm;(function(r){r.method="textDocument/documentSymbol",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(mm||(m.DocumentSymbolRequest=mm={}));var bm;(function(r){r.method="textDocument/codeAction",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(bm||(m.CodeActionRequest=bm={}));var Rm;(function(r){r.method="codeAction/resolve",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Rm||(m.CodeActionResolveRequest=Rm={}));var gm;(function(r){r.method="workspace/symbol",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(gm||(m.WorkspaceSymbolRequest=gm={}));var ym;(function(r){r.method="workspaceSymbol/resolve",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(ym||(m.WorkspaceSymbolResolveRequest=ym={}));var Cm;(function(r){r.method="textDocument/codeLens",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Cm||(m.CodeLensRequest=Cm={}));var vm;(function(r){r.method="codeLens/resolve",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(vm||(m.CodeLensResolveRequest=vm={}));var Em;(function(r){r.method="workspace/codeLens/refresh",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolRequestType0(r.method)})(Em||(m.CodeLensRefreshRequest=Em={}));var Lm;(function(r){r.method="textDocument/documentLink",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Lm||(m.DocumentLinkRequest=Lm={}));var Sm;(function(r){r.method="documentLink/resolve",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Sm||(m.DocumentLinkResolveRequest=Sm={}));var Pm;(function(r){r.method="textDocument/formatting",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Pm||(m.DocumentFormattingRequest=Pm={}));var Tm;(function(r){r.method="textDocument/rangeFormatting",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Tm||(m.DocumentRangeFormattingRequest=Tm={}));var Am;(function(r){r.method="textDocument/rangesFormatting",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Am||(m.DocumentRangesFormattingRequest=Am={}));var Mm;(function(r){r.method="textDocument/onTypeFormatting",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Mm||(m.DocumentOnTypeFormattingRequest=Mm={}));var Nm;(function(r){r.Identifier=1})(Nm||(m.PrepareSupportDefaultBehavior=Nm={}));var Um;(function(r){r.method="textDocument/rename",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Um||(m.RenameRequest=Um={}));var wm;(function(r){r.method="textDocument/prepareRename",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(wm||(m.PrepareRenameRequest=wm={}));var Dm;(function(r){r.method="workspace/executeCommand",r.messageDirection=w.MessageDirection.clientToServer,r.type=new w.ProtocolRequestType(r.method)})(Dm||(m.ExecuteCommandRequest=Dm={}));var Im;(function(r){r.method="workspace/applyEdit",r.messageDirection=w.MessageDirection.serverToClient,r.type=new w.ProtocolRequestType("workspace/applyEdit")})(Im||(m.ApplyWorkspaceEditRequest=Im={}))});var Vm=_(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.createProtocolConnection=void 0;var _m=Si();function fg(r,e,t,i){return _m.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,_m.createMessageConnection)(r,e,t,i)}zl.createProtocolConnection=fg});var jm=_(Lt=>{"use strict";var xg=Lt&&Lt.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),Ql=Lt&&Lt.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&xg(e,r,t)};Object.defineProperty(Lt,"__esModule",{value:!0});Lt.LSPErrorCodes=Lt.createProtocolConnection=void 0;Ql(Si(),Lt);Ql(Ul(),Lt);Ql(Ne(),Lt);Ql(Bm(),Lt);var mg=Vm();Object.defineProperty(Lt,"createProtocolConnection",{enumerable:!0,get:function(){return mg.createProtocolConnection}});var qm;(function(r){r.lspReservedErrorRangeStart=-32899,r.RequestFailed=-32803,r.ServerCancelled=-32802,r.ContentModified=-32801,r.RequestCancelled=-32800,r.lspReservedErrorRangeEnd=-32800})(qm||(Lt.LSPErrorCodes=qm={}))});var He=_(fr=>{"use strict";var bg=fr&&fr.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),Gm=fr&&fr.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&bg(e,r,t)};Object.defineProperty(fr,"__esModule",{value:!0});fr.createProtocolConnection=void 0;var Rg=vp();Gm(vp(),fr);Gm(jm(),fr);function gg(r,e,t,i){return(0,Rg.createMessageConnection)(r,e,t,i)}fr.createProtocolConnection=gg});var Bp=_(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.generateUuid=kt.parse=kt.isUUID=kt.v4=kt.empty=void 0;var qs=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},js=class r extends qs{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return r._oneOf(r._chars)}constructor(){super([r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),"-",r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),"-","4",r._randomHex(),r._randomHex(),r._randomHex(),"-",r._oneOf(r._timeHighBits),r._randomHex(),r._randomHex(),r._randomHex(),"-",r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex()].join(""))}};js._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];js._timeHighBits=["8","9","a","b"];kt.empty=new qs("00000000-0000-0000-0000-000000000000");function Wm(){return new js}kt.v4=Wm;var yg=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Km(r){return yg.test(r)}kt.isUUID=Km;function Cg(r){if(!Km(r))throw new Error("invalid uuid");return new qs(r)}kt.parse=Cg;function vg(){return Wm().asHex()}kt.generateUuid=vg});var zm=_(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.attachPartialResult=Zr.ProgressFeature=Zr.attachWorkDone=void 0;var Xr=He(),Eg=Bp(),Ti=class r{constructor(e,t){this._connection=e,this._token=t,r.Instances.set(this._token,this)}begin(e,t,i,n){let a={kind:"begin",title:e,percentage:t,message:i,cancellable:n};this._connection.sendProgress(Xr.WorkDoneProgress.type,this._token,a)}report(e,t){let i={kind:"report"};typeof e=="number"?(i.percentage=e,t!==void 0&&(i.message=t)):i.message=e,this._connection.sendProgress(Xr.WorkDoneProgress.type,this._token,i)}done(){r.Instances.delete(this._token),this._connection.sendProgress(Xr.WorkDoneProgress.type,this._token,{kind:"end"})}};Ti.Instances=new Map;var $l=class extends Ti{constructor(e,t){super(e,t),this._source=new Xr.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Gs=class{constructor(){}begin(){}report(){}done(){}},Yl=class extends Gs{constructor(){super(),this._source=new Xr.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function Lg(r,e){if(e===void 0||e.workDoneToken===void 0)return new Gs;let t=e.workDoneToken;return delete e.workDoneToken,new Ti(r,t)}Zr.attachWorkDone=Lg;var Sg=r=>class extends r{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(Xr.WorkDoneProgressCancelNotification.type,t=>{let i=Ti.Instances.get(t.token);(i instanceof $l||i instanceof Yl)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Gs:new Ti(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,Eg.generateUuid)();return this.connection.sendRequest(Xr.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new $l(this.connection,e))}else return Promise.resolve(new Yl)}};Zr.ProgressFeature=Sg;var _p;(function(r){r.type=new Xr.ProgressType})(_p||(_p={}));var Vp=class{constructor(e,t){this._connection=e,this._token=t}report(e){this._connection.sendProgress(_p.type,this._token,e)}};function Pg(r,e){if(e===void 0||e.partialResultToken===void 0)return;let t=e.partialResultToken;return delete e.partialResultToken,new Vp(r,t)}Zr.attachPartialResult=Pg});var Qm=_(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.ConfigurationFeature=void 0;var Tg=He(),Ag=ll(),Mg=r=>class extends r{getConfiguration(e){return e?Ag.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let t={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(Tg.ConfigurationRequest.type,t).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};Jl.ConfigurationFeature=Mg});var $m=_(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.WorkspaceFoldersFeature=void 0;var Xl=He(),Ng=r=>class extends r{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let t=e.workspace;t&&t.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new Xl.Emitter,this.connection.onNotification(Xl.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let t=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=t===!0||typeof t=="string"}getWorkspaceFolders(){return this.connection.sendRequest(Xl.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(Xl.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};Zl.WorkspaceFoldersFeature=Ng});var Ym=_(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});eu.CallHierarchyFeature=void 0;var qp=He(),Ug=r=>class extends r{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(qp.CallHierarchyPrepareRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),void 0)),onIncomingCalls:e=>{let t=qp.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))},onOutgoingCalls:e=>{let t=qp.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};eu.CallHierarchyFeature=Ug});var Gp=_(ei=>{"use strict";Object.defineProperty(ei,"__esModule",{value:!0});ei.SemanticTokensBuilder=ei.SemanticTokensDiff=ei.SemanticTokensFeature=void 0;var tu=He(),wg=r=>class extends r{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(tu.SemanticTokensRefreshRequest.type),on:e=>{let t=tu.SemanticTokensRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))},onDelta:e=>{let t=tu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))},onRange:e=>{let t=tu.SemanticTokensRangeRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};ei.SemanticTokensFeature=wg;var ru=class{constructor(e,t){this.originalSequence=e,this.modifiedSequence=t}computeDiff(){let e=this.originalSequence.length,t=this.modifiedSequence.length,i=0;for(;i<t&&i<e&&this.originalSequence[i]===this.modifiedSequence[i];)i++;if(i<t&&i<e){let n=e-1,a=t-1;for(;n>=i&&a>=i&&this.originalSequence[n]===this.modifiedSequence[a];)n--,a--;(n<i||a<i)&&(n++,a++);let o=n-i+1,l=this.modifiedSequence.slice(i,a+1);return l.length===1&&l[0]===this.originalSequence[n]?[{start:i,deleteCount:o-1}]:[{start:i,deleteCount:o,data:l}]}else return i<t?[{start:i,deleteCount:0,data:this.modifiedSequence.slice(i)}]:i<e?[{start:i,deleteCount:e-i}]:[]}};ei.SemanticTokensDiff=ru;var jp=class{constructor(){this._prevData=void 0,this.initialize()}initialize(){this._id=Date.now(),this._prevLine=0,this._prevChar=0,this._data=[],this._dataLen=0}push(e,t,i,n,a){let o=e,l=t;this._dataLen>0&&(o-=this._prevLine,o===0&&(l-=this._prevChar)),this._data[this._dataLen++]=o,this._data[this._dataLen++]=l,this._data[this._dataLen++]=i,this._data[this._dataLen++]=n,this._data[this._dataLen++]=a,this._prevLine=e,this._prevChar=t}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new ru(this._prevData,this._data).computeDiff()}:this.build()}};ei.SemanticTokensBuilder=jp});var Jm=_(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.ShowDocumentFeature=void 0;var Dg=He(),Ig=r=>class extends r{showDocument(e){return this.connection.sendRequest(Dg.ShowDocumentRequest.type,e)}};iu.ShowDocumentFeature=Ig});var Xm=_(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.FileOperationsFeature=void 0;var Dn=He(),Og=r=>class extends r{onDidCreateFiles(e){return this.connection.onNotification(Dn.DidCreateFilesNotification.type,t=>{e(t)})}onDidRenameFiles(e){return this.connection.onNotification(Dn.DidRenameFilesNotification.type,t=>{e(t)})}onDidDeleteFiles(e){return this.connection.onNotification(Dn.DidDeleteFilesNotification.type,t=>{e(t)})}onWillCreateFiles(e){return this.connection.onRequest(Dn.WillCreateFilesRequest.type,(t,i)=>e(t,i))}onWillRenameFiles(e){return this.connection.onRequest(Dn.WillRenameFilesRequest.type,(t,i)=>e(t,i))}onWillDeleteFiles(e){return this.connection.onRequest(Dn.WillDeleteFilesRequest.type,(t,i)=>e(t,i))}};nu.FileOperationsFeature=Og});var Zm=_(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.LinkedEditingRangeFeature=void 0;var kg=He(),Fg=r=>class extends r{onLinkedEditingRange(e){return this.connection.onRequest(kg.LinkedEditingRangeRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),void 0))}};su.LinkedEditingRangeFeature=Fg});var eb=_(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.TypeHierarchyFeature=void 0;var Wp=He(),Hg=r=>class extends r{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Wp.TypeHierarchyPrepareRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),void 0)),onSupertypes:e=>{let t=Wp.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))},onSubtypes:e=>{let t=Wp.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};au.TypeHierarchyFeature=Hg});var rb=_(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.InlineValueFeature=void 0;var tb=He(),Bg=r=>class extends r{get inlineValue(){return{refresh:()=>this.connection.sendRequest(tb.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(tb.InlineValueRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t)))}}};ou.InlineValueFeature=Bg});var nb=_(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.FoldingRangeFeature=void 0;var ib=He(),_g=r=>class extends r{get foldingRange(){return{refresh:()=>this.connection.sendRequest(ib.FoldingRangeRefreshRequest.type),on:e=>{let t=ib.FoldingRangeRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};lu.FoldingRangeFeature=_g});var sb=_(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.InlayHintFeature=void 0;var Kp=He(),Vg=r=>class extends r{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Kp.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Kp.InlayHintRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t))),resolve:e=>this.connection.onRequest(Kp.InlayHintResolveRequest.type,(t,i)=>e(t,i))}}};uu.InlayHintFeature=Vg});var ab=_(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.DiagnosticFeature=void 0;var Ws=He(),qg=r=>class extends r{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ws.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ws.DocumentDiagnosticRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),this.attachPartialResultProgress(Ws.DocumentDiagnosticRequest.partialResult,t))),onWorkspace:e=>this.connection.onRequest(Ws.WorkspaceDiagnosticRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),this.attachPartialResultProgress(Ws.WorkspaceDiagnosticRequest.partialResult,t)))}}};cu.DiagnosticFeature=qg});var Qp=_(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.TextDocuments=void 0;var Ai=He(),zp=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Ai.Emitter,this._onDidOpen=new Ai.Emitter,this._onDidClose=new Ai.Emitter,this._onDidSave=new Ai.Emitter,this._onWillSave=new Ai.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Ai.TextDocumentSyncKind.Incremental;let t=[];return t.push(e.onDidOpenTextDocument(i=>{let n=i.textDocument,a=this._configuration.create(n.uri,n.languageId,n.version,n.text);this._syncedDocuments.set(n.uri,a);let o=Object.freeze({document:a});this._onDidOpen.fire(o),this._onDidChangeContent.fire(o)})),t.push(e.onDidChangeTextDocument(i=>{let n=i.textDocument,a=i.contentChanges;if(a.length===0)return;let{version:o}=n;if(o==null)throw new Error(`Received document change event for ${n.uri} without valid version identifier`);let l=this._syncedDocuments.get(n.uri);l!==void 0&&(l=this._configuration.update(l,a,o),this._syncedDocuments.set(n.uri,l),this._onDidChangeContent.fire(Object.freeze({document:l})))})),t.push(e.onDidCloseTextDocument(i=>{let n=this._syncedDocuments.get(i.textDocument.uri);n!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:n})))})),t.push(e.onWillSaveTextDocument(i=>{let n=this._syncedDocuments.get(i.textDocument.uri);n!==void 0&&this._onWillSave.fire(Object.freeze({document:n,reason:i.reason}))})),t.push(e.onWillSaveTextDocumentWaitUntil((i,n)=>{let a=this._syncedDocuments.get(i.textDocument.uri);return a!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:a,reason:i.reason}),n):[]})),t.push(e.onDidSaveTextDocument(i=>{let n=this._syncedDocuments.get(i.textDocument.uri);n!==void 0&&this._onDidSave.fire(Object.freeze({document:n}))})),Ai.Disposable.create(()=>{t.forEach(i=>i.dispose())})}};hu.TextDocuments=zp});var Yp=_(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.NotebookDocuments=In.NotebookSyncFeature=void 0;var Ft=He(),ob=Qp(),jg=r=>class extends r{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Ft.DidOpenNotebookDocumentNotification.type,t=>{e(t)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Ft.DidChangeNotebookDocumentNotification.type,t=>{e(t)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Ft.DidSaveNotebookDocumentNotification.type,t=>{e(t)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Ft.DidCloseNotebookDocumentNotification.type,t=>{e(t)})}}};In.NotebookSyncFeature=jg;var du=class r{onDidOpenTextDocument(e){return this.openHandler=e,Ft.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Ft.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Ft.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return r.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return r.NULL_DISPOSE}onDidSaveTextDocument(){return r.NULL_DISPOSE}};du.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $p=class{constructor(e){e instanceof ob.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new ob.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Ft.Emitter,this._onDidChange=new Ft.Emitter,this._onDidSave=new Ft.Emitter,this._onDidClose=new Ft.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let t=this.notebookCellMap.get(e);return t&&t[0]}findNotebookDocumentForCell(e){let t=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(t);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let t=new du,i=[];return i.push(this.cellTextDocuments.listen(t)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(n=>{this.notebookDocuments.set(n.notebookDocument.uri,n.notebookDocument);for(let a of n.cellTextDocuments)t.openTextDocument({textDocument:a});this.updateCellMap(n.notebookDocument),this._onDidOpen.fire(n.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(n=>{let a=this.notebookDocuments.get(n.notebookDocument.uri);if(a===void 0)return;a.version=n.notebookDocument.version;let o=a.metadata,l=!1,d=n.change;d.metadata!==void 0&&(l=!0,a.metadata=d.metadata);let f=[],b=[],E=[],A=[];if(d.cells!==void 0){let oe=d.cells;if(oe.structure!==void 0){let P=oe.structure.array;if(a.cells.splice(P.start,P.deleteCount,...P.cells!==void 0?P.cells:[]),oe.structure.didOpen!==void 0)for(let C of oe.structure.didOpen)t.openTextDocument({textDocument:C}),f.push(C.uri);if(oe.structure.didClose)for(let C of oe.structure.didClose)t.closeTextDocument({textDocument:C}),b.push(C.uri)}if(oe.data!==void 0){let P=new Map(oe.data.map(C=>[C.document,C]));for(let C=0;C<=a.cells.length;C++){let I=P.get(a.cells[C].document);if(I!==void 0){let ee=a.cells.splice(C,1,I);if(E.push({old:ee[0],new:I}),P.delete(I.document),P.size===0)break}}}if(oe.textContent!==void 0)for(let P of oe.textContent)t.changeTextDocument({textDocument:P.document,contentChanges:P.changes}),A.push(P.document.uri)}this.updateCellMap(a);let D={notebookDocument:a};l&&(D.metadata={old:o,new:a.metadata});let z=[];for(let oe of f)z.push(this.getNotebookCell(oe));let pe=[];for(let oe of b)pe.push(this.getNotebookCell(oe));let Ae=[];for(let oe of A)Ae.push(this.getNotebookCell(oe));(z.length>0||pe.length>0||E.length>0||Ae.length>0)&&(D.cells={added:z,removed:pe,changed:{data:E,textContent:Ae}}),(D.metadata!==void 0||D.cells!==void 0)&&this._onDidChange.fire(D)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(n=>{let a=this.notebookDocuments.get(n.notebookDocument.uri);a!==void 0&&this._onDidSave.fire(a)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(n=>{let a=this.notebookDocuments.get(n.notebookDocument.uri);if(a!==void 0){this._onDidClose.fire(a);for(let o of n.cellTextDocuments)t.closeTextDocument({textDocument:o});this.notebookDocuments.delete(n.notebookDocument.uri);for(let o of a.cells)this.notebookCellMap.delete(o.document)}})),Ft.Disposable.create(()=>{i.forEach(n=>n.dispose())})}updateCellMap(e){for(let t of e.cells)this.notebookCellMap.set(t.document,[t,e])}};In.NotebookDocuments=$p});var lb=_(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.MonikerFeature=void 0;var Gg=He(),Wg=r=>class extends r{get moniker(){return{on:e=>{let t=Gg.MonikerRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};pu.MonikerFeature=Wg});var r3=_(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.createConnection=ce.combineFeatures=ce.combineNotebooksFeatures=ce.combineLanguagesFeatures=ce.combineWorkspaceFeatures=ce.combineWindowFeatures=ce.combineClientFeatures=ce.combineTracerFeatures=ce.combineTelemetryFeatures=ce.combineConsoleFeatures=ce._NotebooksImpl=ce._LanguagesImpl=ce.BulkUnregistration=ce.BulkRegistration=ce.ErrorMessageTracker=void 0;var B=He(),Ht=ll(),Xp=Bp(),J=zm(),Kg=Qm(),zg=$m(),Qg=Ym(),$g=Gp(),Yg=Jm(),Jg=Xm(),Xg=Zm(),Zg=eb(),e6=rb(),t6=nb(),r6=sb(),i6=ab(),n6=Yp(),s6=lb();function Jp(r){if(r!==null)return r}var Zp=class{constructor(){this._messages=Object.create(null)}add(e){let t=this._messages[e];t||(t=0),t++,this._messages[e]=t}sendErrors(e){Object.keys(this._messages).forEach(t=>{e.window.showErrorMessage(t)})}};ce.ErrorMessageTracker=Zp;var fu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(B.MessageType.Error,e)}warn(e){this.send(B.MessageType.Warning,e)}info(e){this.send(B.MessageType.Info,e)}log(e){this.send(B.MessageType.Log,e)}debug(e){this.send(B.MessageType.Debug,e)}send(e,t){this._rawConnection&&this._rawConnection.sendNotification(B.LogMessageNotification.type,{type:e,message:t}).catch(()=>{(0,B.RAL)().console.error("Sending log message failed")})}},e3=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...t){let i={type:B.MessageType.Error,message:e,actions:t};return this.connection.sendRequest(B.ShowMessageRequest.type,i).then(Jp)}showWarningMessage(e,...t){let i={type:B.MessageType.Warning,message:e,actions:t};return this.connection.sendRequest(B.ShowMessageRequest.type,i).then(Jp)}showInformationMessage(e,...t){let i={type:B.MessageType.Info,message:e,actions:t};return this.connection.sendRequest(B.ShowMessageRequest.type,i).then(Jp)}},ub=(0,Yg.ShowDocumentFeature)((0,J.ProgressFeature)(e3)),cb;(function(r){function e(){return new xu}r.create=e})(cb||(ce.BulkRegistration=cb={}));var xu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,t){let i=Ht.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let n=Xp.generateUuid();this._registrations.push({id:n,method:i,registerOptions:t||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},hb;(function(r){function e(){return new Ks(void 0,[])}r.create=e})(hb||(ce.BulkUnregistration=hb={}));var Ks=class{constructor(e,t){this._connection=e,this._unregistrations=new Map,t.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let t={unregisterations:e};this._connection.sendRequest(B.UnregistrationRequest.type,t).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let t=Ht.string(e)?e:e.method,i=this._unregistrations.get(t);if(!i)return!1;let n={unregisterations:[i]};return this._connection.sendRequest(B.UnregistrationRequest.type,n).then(()=>{this._unregistrations.delete(t)},a=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},mu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,t,i){return e instanceof xu?this.registerMany(e):e instanceof Ks?this.registerSingle1(e,t,i):this.registerSingle2(e,t)}registerSingle1(e,t,i){let n=Ht.string(t)?t:t.method,a=Xp.generateUuid(),o={registrations:[{id:a,method:n,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(B.RegistrationRequest.type,o).then(l=>(e.add({id:a,method:n}),e),l=>(this.connection.console.info(`Registering request handler for ${n} failed.`),Promise.reject(l)))}registerSingle2(e,t){let i=Ht.string(e)?e:e.method,n=Xp.generateUuid(),a={registrations:[{id:n,method:i,registerOptions:t||{}}]};return this.connection.sendRequest(B.RegistrationRequest.type,a).then(o=>B.Disposable.create(()=>{this.unregisterSingle(n,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${n} failed.`)})}),o=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(o)))}unregisterSingle(e,t){let i={unregisterations:[{id:e,method:t}]};return this.connection.sendRequest(B.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let t=e.asRegistrationParams();return this.connection.sendRequest(B.RegistrationRequest.type,t).then(()=>new Ks(this._connection,t.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},t3=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function t(n){return n&&!!n.edit}let i=t(e)?e:{edit:e};return this.connection.sendRequest(B.ApplyWorkspaceEditRequest.type,i)}},db=(0,Jg.FileOperationsFeature)((0,zg.WorkspaceFoldersFeature)((0,Kg.ConfigurationFeature)(t3))),bu=class{constructor(){this._trace=B.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,t){this._trace!==B.Trace.Off&&this.connection.sendNotification(B.LogTraceNotification.type,{message:e,verbose:this._trace===B.Trace.Verbose?t:void 0}).catch(()=>{})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(B.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},gu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,J.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,t){return(0,J.attachPartialResult)(this.connection,t)}};ce._LanguagesImpl=gu;var pb=(0,t6.FoldingRangeFeature)((0,s6.MonikerFeature)((0,i6.DiagnosticFeature)((0,r6.InlayHintFeature)((0,e6.InlineValueFeature)((0,Zg.TypeHierarchyFeature)((0,Xg.LinkedEditingRangeFeature)((0,$g.SemanticTokensFeature)((0,Qg.CallHierarchyFeature)(gu))))))))),yu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,J.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,t){return(0,J.attachPartialResult)(this.connection,t)}};ce._NotebooksImpl=yu;var fb=(0,n6.NotebookSyncFeature)(yu);function xb(r,e){return function(t){return e(r(t))}}ce.combineConsoleFeatures=xb;function mb(r,e){return function(t){return e(r(t))}}ce.combineTelemetryFeatures=mb;function bb(r,e){return function(t){return e(r(t))}}ce.combineTracerFeatures=bb;function Rb(r,e){return function(t){return e(r(t))}}ce.combineClientFeatures=Rb;function gb(r,e){return function(t){return e(r(t))}}ce.combineWindowFeatures=gb;function yb(r,e){return function(t){return e(r(t))}}ce.combineWorkspaceFeatures=yb;function Cb(r,e){return function(t){return e(r(t))}}ce.combineLanguagesFeatures=Cb;function vb(r,e){return function(t){return e(r(t))}}ce.combineNotebooksFeatures=vb;function a6(r,e){function t(n,a,o){return n&&a?o(n,a):n||a}return{__brand:"features",console:t(r.console,e.console,xb),tracer:t(r.tracer,e.tracer,bb),telemetry:t(r.telemetry,e.telemetry,mb),client:t(r.client,e.client,Rb),window:t(r.window,e.window,gb),workspace:t(r.workspace,e.workspace,yb),languages:t(r.languages,e.languages,Cb),notebooks:t(r.notebooks,e.notebooks,vb)}}ce.combineFeatures=a6;function o6(r,e,t){let i=t&&t.console?new(t.console(fu)):new fu,n=r(i);i.rawAttach(n);let a=t&&t.tracer?new(t.tracer(bu)):new bu,o=t&&t.telemetry?new(t.telemetry(Ru)):new Ru,l=t&&t.client?new(t.client(mu)):new mu,d=t&&t.window?new(t.window(ub)):new ub,f=t&&t.workspace?new(t.workspace(db)):new db,b=t&&t.languages?new(t.languages(pb)):new pb,E=t&&t.notebooks?new(t.notebooks(fb)):new fb,A=[i,a,o,l,d,f,b,E];function D(P){return P instanceof Promise?P:Ht.thenable(P)?new Promise((C,I)=>{P.then(ee=>C(ee),ee=>I(ee))}):Promise.resolve(P)}let z,pe,Ae,oe={listen:()=>n.listen(),sendRequest:(P,...C)=>n.sendRequest(Ht.string(P)?P:P.method,...C),onRequest:(P,C)=>n.onRequest(P,C),sendNotification:(P,C)=>{let I=Ht.string(P)?P:P.method;return n.sendNotification(I,C)},onNotification:(P,C)=>n.onNotification(P,C),onProgress:n.onProgress,sendProgress:n.sendProgress,onInitialize:P=>(pe=P,{dispose:()=>{pe=void 0}}),onInitialized:P=>n.onNotification(B.InitializedNotification.type,P),onShutdown:P=>(z=P,{dispose:()=>{z=void 0}}),onExit:P=>(Ae=P,{dispose:()=>{Ae=void 0}}),get console(){return i},get telemetry(){return o},get tracer(){return a},get client(){return l},get window(){return d},get workspace(){return f},get languages(){return b},get notebooks(){return E},onDidChangeConfiguration:P=>n.onNotification(B.DidChangeConfigurationNotification.type,P),onDidChangeWatchedFiles:P=>n.onNotification(B.DidChangeWatchedFilesNotification.type,P),__textDocumentSync:void 0,onDidOpenTextDocument:P=>n.onNotification(B.DidOpenTextDocumentNotification.type,P),onDidChangeTextDocument:P=>n.onNotification(B.DidChangeTextDocumentNotification.type,P),onDidCloseTextDocument:P=>n.onNotification(B.DidCloseTextDocumentNotification.type,P),onWillSaveTextDocument:P=>n.onNotification(B.WillSaveTextDocumentNotification.type,P),onWillSaveTextDocumentWaitUntil:P=>n.onRequest(B.WillSaveTextDocumentWaitUntilRequest.type,P),onDidSaveTextDocument:P=>n.onNotification(B.DidSaveTextDocumentNotification.type,P),sendDiagnostics:P=>n.sendNotification(B.PublishDiagnosticsNotification.type,P),onHover:P=>n.onRequest(B.HoverRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),void 0)),onCompletion:P=>n.onRequest(B.CompletionRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onCompletionResolve:P=>n.onRequest(B.CompletionResolveRequest.type,P),onSignatureHelp:P=>n.onRequest(B.SignatureHelpRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),void 0)),onDeclaration:P=>n.onRequest(B.DeclarationRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onDefinition:P=>n.onRequest(B.DefinitionRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onTypeDefinition:P=>n.onRequest(B.TypeDefinitionRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onImplementation:P=>n.onRequest(B.ImplementationRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onReferences:P=>n.onRequest(B.ReferencesRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onDocumentHighlight:P=>n.onRequest(B.DocumentHighlightRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onDocumentSymbol:P=>n.onRequest(B.DocumentSymbolRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onWorkspaceSymbol:P=>n.onRequest(B.WorkspaceSymbolRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onWorkspaceSymbolResolve:P=>n.onRequest(B.WorkspaceSymbolResolveRequest.type,P),onCodeAction:P=>n.onRequest(B.CodeActionRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onCodeActionResolve:P=>n.onRequest(B.CodeActionResolveRequest.type,(C,I)=>P(C,I)),onCodeLens:P=>n.onRequest(B.CodeLensRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onCodeLensResolve:P=>n.onRequest(B.CodeLensResolveRequest.type,(C,I)=>P(C,I)),onDocumentFormatting:P=>n.onRequest(B.DocumentFormattingRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),void 0)),onDocumentRangeFormatting:P=>n.onRequest(B.DocumentRangeFormattingRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),void 0)),onDocumentOnTypeFormatting:P=>n.onRequest(B.DocumentOnTypeFormattingRequest.type,(C,I)=>P(C,I)),onRenameRequest:P=>n.onRequest(B.RenameRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),void 0)),onPrepareRename:P=>n.onRequest(B.PrepareRenameRequest.type,(C,I)=>P(C,I)),onDocumentLinks:P=>n.onRequest(B.DocumentLinkRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onDocumentLinkResolve:P=>n.onRequest(B.DocumentLinkResolveRequest.type,(C,I)=>P(C,I)),onDocumentColor:P=>n.onRequest(B.DocumentColorRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onColorPresentation:P=>n.onRequest(B.ColorPresentationRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onFoldingRanges:P=>n.onRequest(B.FoldingRangeRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onSelectionRanges:P=>n.onRequest(B.SelectionRangeRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),(0,J.attachPartialResult)(n,C))),onExecuteCommand:P=>n.onRequest(B.ExecuteCommandRequest.type,(C,I)=>P(C,I,(0,J.attachWorkDone)(n,C),void 0)),dispose:()=>n.dispose()};for(let P of A)P.attach(oe);return n.onRequest(B.InitializeRequest.type,P=>{e.initialize(P),Ht.string(P.trace)&&(a.trace=B.Trace.fromString(P.trace));for(let C of A)C.initialize(P.capabilities);if(pe){let C=pe(P,new B.CancellationTokenSource().token,(0,J.attachWorkDone)(n,P),void 0);return D(C).then(I=>{if(I instanceof B.ResponseError)return I;let ee=I;ee||(ee={capabilities:{}});let ve=ee.capabilities;ve||(ve={},ee.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=Ht.number(oe.__textDocumentSync)?oe.__textDocumentSync:B.TextDocumentSyncKind.None:!Ht.number(ve.textDocumentSync)&&!Ht.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=Ht.number(oe.__textDocumentSync)?oe.__textDocumentSync:B.TextDocumentSyncKind.None);for(let De of A)De.fillServerCapabilities(ve);return ee})}else{let C={capabilities:{textDocumentSync:B.TextDocumentSyncKind.None}};for(let I of A)I.fillServerCapabilities(C.capabilities);return C}}),n.onRequest(B.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,z)return z(new B.CancellationTokenSource().token)}),n.onNotification(B.ExitNotification.type,()=>{try{Ae&&Ae()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),n.onNotification(B.SetTraceNotification.type,P=>{a.trace=B.Trace.fromString(P.value)}),oe}ce.createConnection=o6});var Eb=_(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.resolveModulePath=St.FileSystem=St.resolveGlobalYarnPath=St.resolveGlobalNodePath=St.resolve=St.uriToFilePath=void 0;var l6=Dt("url"),rr=Dt("path"),i3=Dt("fs"),o3=Dt("child_process");function u6(r){let e=l6.parse(r);if(e.protocol!=="file:"||!e.path)return;let t=e.path.split("/");for(var i=0,n=t.length;i<n;i++)t[i]=decodeURIComponent(t[i]);if(process.platform==="win32"&&t.length>1){let a=t[0],o=t[1];a.length===0&&o.length>1&&o[1]===":"&&t.shift()}return rr.normalize(t.join("/"))}St.uriToFilePath=u6;function n3(){return process.platform==="win32"}function Cu(r,e,t,i){let n="NODE_PATH",a=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((o,l)=>{let d=process.env,f=Object.create(null);Object.keys(d).forEach(b=>f[b]=d[b]),e&&i3.existsSync(e)&&(f[n]?f[n]=e+rr.delimiter+f[n]:f[n]=e,i&&i(`NODE_PATH value is: ${f[n]}`)),f.ELECTRON_RUN_AS_NODE="1";try{let b=(0,o3.fork)("",[],{cwd:t,env:f,execArgv:["-e",a]});if(b.pid===void 0){l(new Error(`Starting process to resolve node module ${r} failed`));return}b.on("error",A=>{l(A)}),b.on("message",A=>{A.c==="r"&&(b.send({c:"e"}),A.s?o(A.r):l(new Error(`Failed to resolve module: ${r}`)))});let E={c:"rs",a:r};b.send(E)}catch(b){l(b)}})}St.resolve=Cu;function s3(r){let e="npm",t=Object.create(null);Object.keys(process.env).forEach(a=>t[a]=process.env[a]),t.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:t};n3()&&(e="npm.cmd",i.shell=!0);let n=()=>{};try{process.on("SIGPIPE",n);let a=(0,o3.spawnSync)(e,["config","get","prefix"],i).stdout;if(!a){r&&r("'npm config get prefix' didn't return a value.");return}let o=a.trim();return r&&r(`'npm config get prefix' value is: ${o}`),o.length>0?n3()?rr.join(o,"node_modules"):rr.join(o,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",n)}}St.resolveGlobalNodePath=s3;function c6(r){let e="yarn",t={encoding:"utf8"};n3()&&(e="yarn.cmd",t.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let n=(0,o3.spawnSync)(e,["global","dir","--json"],t),a=n.stdout;if(!a){r&&(r("'yarn global dir' didn't return a value."),n.stderr&&r(n.stderr));return}let o=a.trim().split(/\r?\n/);for(let l of o)try{let d=JSON.parse(l);if(d.type==="log")return rr.join(d.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}St.resolveGlobalYarnPath=c6;var a3;(function(r){let e;function t(){return e!==void 0||(process.platform==="win32"?e=!1:e=!i3.existsSync(__filename.toUpperCase())||!i3.existsSync(__filename.toLowerCase())),e}r.isCaseSensitive=t;function i(n,a){return t()?rr.normalize(a).indexOf(rr.normalize(n))===0:rr.normalize(a).toLowerCase().indexOf(rr.normalize(n).toLowerCase())===0}r.isParent=i})(a3||(St.FileSystem=a3={}));function h6(r,e,t,i){return t?(rr.isAbsolute(t)||(t=rr.join(r,t)),Cu(e,t,t,i).then(n=>a3.isParent(t,n)?n:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,n=>Cu(e,s3(i),r,i))):Cu(e,s3(i),r,i)}St.resolveModulePath=h6});var l3=_((P9,Lb)=>{"use strict";Lb.exports=He()});var Sb=_(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.InlineCompletionFeature=void 0;var d6=He(),p6=r=>class extends r{get inlineCompletion(){return{on:e=>this.connection.onRequest(d6.InlineCompletionRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t)))}}};vu.InlineCompletionFeature=p6});var Ab=_(ut=>{"use strict";var f6=ut&&ut.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),Tb=ut&&ut.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&f6(e,r,t)};Object.defineProperty(ut,"__esModule",{value:!0});ut.ProposedFeatures=ut.NotebookDocuments=ut.TextDocuments=ut.SemanticTokensBuilder=void 0;var x6=Gp();Object.defineProperty(ut,"SemanticTokensBuilder",{enumerable:!0,get:function(){return x6.SemanticTokensBuilder}});var m6=Sb();Tb(He(),ut);var b6=Qp();Object.defineProperty(ut,"TextDocuments",{enumerable:!0,get:function(){return b6.TextDocuments}});var R6=Yp();Object.defineProperty(ut,"NotebookDocuments",{enumerable:!0,get:function(){return R6.NotebookDocuments}});Tb(r3(),ut);var Pb;(function(r){r.all={__brand:"features",languages:m6.InlineCompletionFeature}})(Pb||(ut.ProposedFeatures=Pb={}))});var Ib=_(Bt=>{"use strict";var g6=Bt&&Bt.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),wb=Bt&&Bt.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&g6(e,r,t)};Object.defineProperty(Bt,"__esModule",{value:!0});Bt.createConnection=Bt.Files=void 0;var Mb=Dt("node:util"),u3=ll(),y6=r3(),zs=Eb(),Mi=l3();wb(l3(),Bt);wb(Ab(),Bt);var Nb;(function(r){r.uriToFilePath=zs.uriToFilePath,r.resolveGlobalNodePath=zs.resolveGlobalNodePath,r.resolveGlobalYarnPath=zs.resolveGlobalYarnPath,r.resolve=zs.resolve,r.resolveModulePath=zs.resolveModulePath})(Nb||(Bt.Files=Nb={}));var Ub;function Eu(){if(Ub!==void 0)try{Ub.end()}catch{}}var On=!1,Db;function C6(){let r="--clientProcessId";function e(t){try{let i=parseInt(t);isNaN(i)||(Db=setInterval(()=>{try{process.kill(i,0)}catch{Eu(),process.exit(On?0:1)}},3e3))}catch{}}for(let t=2;t<process.argv.length;t++){let i=process.argv[t];if(i===r&&t+1<process.argv.length){e(process.argv[t+1]);return}else{let n=i.split("=");n[0]===r&&e(n[1])}}}C6();var v6={initialize:r=>{let e=r.processId;u3.number(e)&&Db===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(On?0:1)}},3e3)},get shutdownReceived(){return On},set shutdownReceived(r){On=r},exit:r=>{Eu(),process.exit(r)}};function E6(r,e,t,i){let n,a,o,l;return r!==void 0&&r.__brand==="features"&&(n=r,r=e,e=t,t=i),Mi.ConnectionStrategy.is(r)||Mi.ConnectionOptions.is(r)?l=r:(a=r,o=e,l=t),L6(a,o,l,n)}Bt.createConnection=E6;function L6(r,e,t,i){let n=!1;if(!r&&!e&&process.argv.length>2){let d,f,b=process.argv.slice(2);for(let E=0;E<b.length;E++){let A=b[E];if(A==="--node-ipc"){r=new Mi.IPCMessageReader(process),e=new Mi.IPCMessageWriter(process);break}else if(A==="--stdio"){n=!0,r=process.stdin,e=process.stdout;break}else if(A==="--socket"){d=parseInt(b[E+1]);break}else if(A==="--pipe"){f=b[E+1];break}else{var a=A.split("=");if(a[0]==="--socket"){d=parseInt(a[1]);break}else if(a[0]==="--pipe"){f=a[1];break}}}if(d){let E=(0,Mi.createServerSocketTransport)(d);r=E[0],e=E[1]}else if(f){let E=(0,Mi.createServerPipeTransport)(f);r=E[0],e=E[1]}}var o="Use arguments of createConnection or set command line parameters: '--node-ipc', '--stdio' or '--socket={number}'";if(!r)throw new Error("Connection input stream is not set. "+o);if(!e)throw new Error("Connection output stream is not set. "+o);if(u3.func(r.read)&&u3.func(r.on)){let d=r;d.on("end",()=>{Eu(),process.exit(On?0:1)}),d.on("close",()=>{Eu(),process.exit(On?0:1)})}let l=d=>{let f=(0,Mi.createProtocolConnection)(r,e,d,t);return n&&S6(d),f};return(0,y6.createConnection)(l,v6,i)}function S6(r){function e(i){return i.map(n=>typeof n=="string"?n:(0,Mb.inspect)(n)).join(" ")}let t=new Map;console.assert=function(n,...a){if(!n)if(a.length===0)r.error("Assertion failed");else{let[o,...l]=a;r.error(`Assertion failed: ${o} ${e(l)}`)}},console.count=function(n="default"){let a=String(n),o=t.get(a)??0;o+=1,t.set(a,o),r.log(`${a}: ${a}`)},console.countReset=function(n){n===void 0?t.clear():t.delete(String(n))},console.debug=function(...n){r.log(e(n))},console.dir=function(n,a){r.log((0,Mb.inspect)(n,a))},console.log=function(...n){r.log(e(n))},console.error=function(...n){r.error(e(n))},console.trace=function(...n){let a=new Error().stack.replace(/(.+\n){2}/,""),o="Trace";n.length!==0&&(o+=`: ${e(n)}`),r.log(`${o}
37
+ ${a}`)},console.warn=function(...n){r.warn(e(n))}}});var pt=_((U9,Ob)=>{"use strict";Ob.exports=Ib()});var $t=yt(pt(),1);var Lu=class r{constructor(e,t,i,n){this._uri=e,this._languageId=t,this._version=i,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(t,i)}return this._content}update(e,t){for(let i of e)if(r.isIncremental(i)){let n=Hb(i.range),a=this.offsetAt(n.start),o=this.offsetAt(n.end);this._content=this._content.substring(0,a)+i.text+this._content.substring(o,this._content.length);let l=Math.max(n.start.line,0),d=Math.max(n.end.line,0),f=this._lineOffsets,b=kb(i.text,!1,a);if(d-l===b.length)for(let A=0,D=b.length;A<D;A++)f[A+l+1]=b[A];else b.length<1e4?f.splice(l+1,d-l,...b):this._lineOffsets=f=f.slice(0,l+1).concat(b,f.slice(d+1));let E=i.text.length-(o-a);if(E!==0)for(let A=l+1+b.length,D=f.length;A<D;A++)f[A]=f[A]+E}else if(r.isFull(i))this._content=i.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=kb(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),i=0,n=t.length;if(n===0)return{line:0,character:e};for(;i<n;){let o=Math.floor((i+n)/2);t[o]>e?n=o:i=o+1}let a=i-1;return e=this.ensureBeforeEOL(e,t[a]),{line:a,character:e-t[a]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let i=t[e.line];if(e.character<=0)return i;let n=e.line+1<t.length?t[e.line+1]:this._content.length,a=Math.min(i+e.character,n);return this.ensureBeforeEOL(a,i)}ensureBeforeEOL(e,t){for(;e>t&&Fb(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){let t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}},Su;(function(r){function e(n,a,o,l){return new Lu(n,a,o,l)}r.create=e;function t(n,a,o){if(n instanceof Lu)return n.update(a,o),n;throw new Error("TextDocument.update: document must be created by TextDocument.create")}r.update=t;function i(n,a){let o=n.getText(),l=c3(a.map(P6),(b,E)=>{let A=b.range.start.line-E.range.start.line;return A===0?b.range.start.character-E.range.start.character:A}),d=0,f=[];for(let b of l){let E=n.offsetAt(b.range.start);if(E<d)throw new Error("Overlapping edit");E>d&&f.push(o.substring(d,E)),b.newText.length&&f.push(b.newText),d=n.offsetAt(b.range.end)}return f.push(o.substr(d)),f.join("")}r.applyEdits=i})(Su||(Su={}));function c3(r,e){if(r.length<=1)return r;let t=r.length/2|0,i=r.slice(0,t),n=r.slice(t);c3(i,e),c3(n,e);let a=0,o=0,l=0;for(;a<i.length&&o<n.length;)e(i[a],n[o])<=0?r[l++]=i[a++]:r[l++]=n[o++];for(;a<i.length;)r[l++]=i[a++];for(;o<n.length;)r[l++]=n[o++];return r}function kb(r,e,t=0){let i=e?[t]:[];for(let n=0;n<r.length;n++){let a=r.charCodeAt(n);Fb(a)&&(a===13&&n+1<r.length&&r.charCodeAt(n+1)===10&&n++,i.push(t+n+1))}return i}function Fb(r){return r===13||r===10}function Hb(r){let e=r.start,t=r.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:r}function P6(r){let e=Hb(r.range);return e!==r.range?{newText:r.newText,range:e}:r}import{Worker as w7}from"node:worker_threads";import{fileURLToPath as D7}from"node:url";import{dirname as I7,join as O7}from"node:path";var T6=Object.defineProperty,v=(r,e)=>T6(r,"name",{value:e,configurable:!0}),Uu;(r=>{r.EOF=-1,r.UNKNOWN_SOURCE_NAME="<unknown>"})(Uu||(Uu={}));var U;(r=>{r.INVALID_TYPE=0,r.EPSILON=-2,r.MIN_USER_TOKEN_TYPE=1,r.EOF=Uu.EOF,r.DEFAULT_CHANNEL=0,r.HIDDEN_CHANNEL=1,r.MIN_USER_CHANNEL_VALUE=2})(U||(U={}));var A6=v(r=>{let e=r;return e.tokenSource!==void 0&&e.channel!==void 0},"isToken"),Rr=class{static{v(this,"BitSet")}data;constructor(r){r?this.data=new Uint32Array(r.map(e=>e>>>0)):this.data=new Uint32Array(1)}[Symbol.iterator](){let r=this.data.length,e=0,t=this.data[e],i=this.data;return{[Symbol.iterator](){return this},next:v(()=>{for(;e<r;)if(t!==0){let n=t&-t,a=(e<<5)+this.bitCount(n-1);return t^=n,{done:!1,value:a}}else e++,e<r&&(t=i[e]);return{done:!0,value:void 0}},"next")}}clear(r){r===void 0?this.data=new Uint32Array:(this.resize(r),this.data[r>>>5]&=~(1<<r))}or(r){let e=Math.min(this.data.length,r.data.length);for(let t=0;t<e;++t)this.data[t]|=r.data[t];if(this.data.length<r.data.length){this.resize((r.data.length<<5)-1);let t=r.data.length;for(let i=e;i<t;++i)this.data[i]=r.data[i]}}get(r){if(r<0)throw new RangeError("index cannot be negative");let e=r>>>5;return e>=this.data.length?!1:(this.data[e]&1<<r%32)!==0}get length(){let r=0,e=this.data.length,t=this.data;for(let i=0;i<e;i++)r+=this.bitCount(t[i]);return r}values(){let r=new Array(this.length),e=0,t=this.data.length;for(let i=0;i<t;++i){let n=this.data[i];for(;n!==0;){let a=n&-n;r[e++]=(i<<5)+this.bitCount(a-1),n^=a}}return r}nextSetBit(r){if(r<0)throw new RangeError("index cannot be negative");for(let e of this)if(e>=r)return e}set(r){if(r<0)throw new RangeError("index cannot be negative");this.resize(r),this.data[r>>>5]|=1<<r%32}toString(){return"{"+this.values().join(", ")+"}"}resize(r){let e=r+32>>>5;if(e<=this.data.length)return;let t=new Uint32Array(e);t.set(this.data),t.fill(0,this.data.length),this.data=t}bitCount(r){return r=r-(r>>1&1431655765),r=(r&858993459)+(r>>2&858993459),r=r+(r>>4)&252645135,r=r+(r>>8),r=r+(r>>16),r&63}},M6=3432918353,N6=461845907,Bb=15,_b=13,U6=5,w6=3864292196,k=class $s{static{v(this,"MurmurHash")}static defaultSeed=701;constructor(){}static initialize(e=$s.defaultSeed){return e}static updateFromComparable(e,t){return this.update(e,t?.hashCode()??0)}static update(e,t){return t=Math.imul(t,M6),t=t<<Bb|t>>>32-Bb,t=Math.imul(t,N6),e=e^t,e=e<<_b|e>>>32-_b,e=Math.imul(e,U6)+w6,e}static finish(e,t){return e^=t*4,e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^=e>>>16,e}static hashCode(e,t){return $s.finish($s.update(t??$s.defaultSeed,e),1)}},Ii=class Zb{static{v(this,"ObjectEqualityComparator")}static instance=new Zb;hashCode(e){return e==null?0:e.hashCode()}equals(e,t){return e==null?t==null:e.equals(t)}},eR=class tR{static{v(this,"DefaultEqualityComparator")}static instance=new tR;hashCode(e){return e==null?0:Ii.instance.hashCode(e)}equals(e,t){return e==null?t==null:typeof e=="string"||typeof e=="number"?e===t:Ii.instance.equals(e,t)}},qt=class nr{static{v(this,"HashSet")}static defaultLoadFactor=.75;static initialCapacity=16;comparator;buckets;threshold;itemCount=0;constructor(e,t=nr.initialCapacity){if(e instanceof nr){this.comparator=e.comparator,this.buckets=e.buckets.slice(0);for(let i=0;i<this.buckets.length;i++){let n=this.buckets[i];n&&(this.buckets[i]=n.slice(0))}this.itemCount=e.itemCount,this.threshold=e.threshold}else this.comparator=e??eR.instance,this.buckets=this.createBuckets(t),this.threshold=Math.floor(nr.initialCapacity*nr.defaultLoadFactor)}getOrAdd(e){this.itemCount>this.threshold&&this.expand();let t=this.getBucket(e),i=this.buckets[t];if(!i)return i=[e],this.buckets[t]=i,++this.itemCount,e;for(let n of i)if(this.comparator.equals(n,e))return n;return i.push(e),++this.itemCount,e}get(e){if(e==null)return e;let t=this.getBucket(e),i=this.buckets[t];if(i){for(let n of i)if(this.comparator.equals(n,e))return n}}remove(e){if(e==null)return!1;let t=this.getBucket(e),i=this.buckets[t];if(!i)return!1;for(let n=0;n<i.length;n++){let a=i[n];if(this.comparator.equals(a,e))return i.splice(n,1),--this.itemCount,!0}return!1}hashCode(){let e=k.initialize();for(let t of this.buckets)if(t!=null)for(let i of t){if(i==null)break;e=k.update(e,this.comparator.hashCode(i))}return e=k.finish(e,this.size),e}equals(e){return e===this?!0:!(e instanceof nr)||e.size!==this.size?!1:this.containsAll(e)}add(e){return this.getOrAdd(e)===e}contains(e){return this.containsFast(e)}containsFast(e){return e==null?!1:this.get(e)!==void 0}*[Symbol.iterator](){yield*this.toArray()}toArray(){let e=new Array(this.size),t=0;for(let i of this.buckets)if(i!=null)for(let n of i){if(n==null)break;e[t++]=n}return e}containsAll(e){if(e instanceof nr){for(let t of e.buckets)if(t!=null)for(let i of t){if(i==null)break;if(!this.containsFast(i))return!1}}else for(let t of e)if(!this.containsFast(t))return!1;return!0}addAll(e){let t=!1;for(let i of e)this.getOrAdd(i)!==i&&(t=!0);return t}clear(){this.buckets=this.createBuckets(nr.initialCapacity),this.itemCount=0,this.threshold=Math.floor(nr.initialCapacity*nr.defaultLoadFactor)}toString(){if(this.size===0)return"{}";let e="{",t=!0;for(let i of this.buckets)if(i!=null)for(let n of i){if(n==null)break;t?t=!1:e+=", ",e+=n.toString()}return e+="}",e}toTableString(){let e="";for(let t of this.buckets){if(t==null){e+=`null
38
+ `;continue}e+="[";let i=!0;for(let n of t)i?i=!1:e+=" ",n==null?e+="_":e+=n.toString();e+=`]
39
+ `}return e}getBucket(e){return this.comparator.hashCode(e)&this.buckets.length-1}expand(){let e=this.buckets,t=this.buckets.length*2,i=this.createBuckets(t);this.buckets=i,this.threshold=Math.floor(t*nr.defaultLoadFactor);for(let n of e)if(n)for(let a of n){let o=this.getBucket(a),l=this.buckets[o];l||(l=[],this.buckets[o]=l),l.push(a)}}get size(){return this.itemCount}get isEmpty(){return this.itemCount===0}createBuckets(e){return new Array(e)}},xe=class _t{static{v(this,"Interval")}static INVALID_INTERVAL=new _t(-1,-2);static INTERVAL_POOL_MAX_VALUE=1e3;static cache=[];start;stop;cachedHashCode;constructor(e,t){this.start=e,this.stop=t,this.cachedHashCode=Math.imul(651+e,31)+t}static of(e,t){return e!==t||e<0||e>_t.INTERVAL_POOL_MAX_VALUE?new _t(e,t):(_t.cache[e]||(_t.cache[e]=new _t(e,e)),_t.cache[e])}equals(e){return this.start===e.start&&this.stop===e.stop}hashCode(){return this.cachedHashCode}startsBeforeDisjoint(e){return this.start<e.start&&this.stop<e.start}startsBeforeNonDisjoint(e){return this.start<=e.start&&this.stop>=e.start}startsAfter(e){return this.start>e.start}startsAfterDisjoint(e){return this.start>e.stop}startsAfterNonDisjoint(e){return this.start>e.start&&this.start<=e.stop}disjoint(e){return this.startsBeforeDisjoint(e)||this.startsAfterDisjoint(e)}adjacent(e){return this.start===e.stop+1||this.stop===e.start-1}properlyContains(e){return e.start>=this.start&&e.stop<=this.stop}union(e){return _t.of(Math.min(this.start,e.start),Math.max(this.stop,e.stop))}intersection(e){return _t.of(Math.max(this.start,e.start),Math.min(this.stop,e.stop))}differenceNotProperlyContained(e){let t=null;return e.startsBeforeNonDisjoint(this)?t=_t.of(Math.max(this.start,e.stop+1),this.stop):e.startsAfterNonDisjoint(this)&&(t=_t.of(this.start,e.start-1)),t}toString(){return`${this.start}..${this.stop}`}get length(){return this.stop<this.start?0:this.stop-this.start+1}},or=class mr{static{v(this,"Vocabulary")}static EMPTY_NAMES=[];static EMPTY_VOCABULARY=new mr(mr.EMPTY_NAMES,mr.EMPTY_NAMES,mr.EMPTY_NAMES);maxTokenType;literalNames;symbolicNames;displayNames;constructor(e,t,i){this.literalNames=e??mr.EMPTY_NAMES,this.symbolicNames=t??mr.EMPTY_NAMES,this.displayNames=i??mr.EMPTY_NAMES,this.maxTokenType=Math.max(this.displayNames.length,Math.max(this.literalNames.length,this.symbolicNames.length))-1}static fromTokenNames(e){if(e==null||e.length===0)return mr.EMPTY_VOCABULARY;let t=[...e],i=[...e];for(let n=0;n<e.length;n++){let a=e[n];if(a!=null){if(a.length>0){let o=a.codePointAt(0);if(o===39){i[n]=null;continue}else if(o>=65&&o<=90){t[n]=null;continue}}t[n]=null,i[n]=null}}return new mr(t,i,e)}getMaxTokenType(){return this.maxTokenType}getLiteralName(e){return e>=0&&e<this.literalNames.length?this.literalNames[e]:null}getSymbolicName(e){return e>=0&&e<this.symbolicNames.length?this.symbolicNames[e]:e===U.EOF?"EOF":null}getDisplayName(e){if(e>=0&&e<this.displayNames.length){let n=this.displayNames[e];if(n!=null)return n}let t=this.getLiteralName(e);if(t!=null)return t;let i=this.getSymbolicName(e);return i??`${e}`}getLiteralNames(){return this.literalNames}getSymbolicNames(){return this.symbolicNames}getDisplayNames(){return this.displayNames}},ar=class Nt{static{v(this,"IntervalSet")}intervals=[];cachedHashCode;constructor(e){if(e)if(Array.isArray(e))for(let t of e)this.addOne(t);else this.addSet(e)}static of(e,t){let i=new Nt;return i.addRange(e,t),i}static or(e){let t=new Nt;for(let i of e)t.addSet(i);return t}[Symbol.iterator](){return this.intervals[Symbol.iterator]()}get(e){return this.intervals[e]}get minElement(){return this.intervals.length===0?U.INVALID_TYPE:this.intervals[0].start}get maxElement(){return this.intervals.length===0?U.INVALID_TYPE:this.intervals[this.intervals.length-1].stop}clear(){this.cachedHashCode=void 0,this.intervals=[]}addOne(e){this.addInterval(new xe(e,e))}addRange(e,t){this.addInterval(new xe(e,t))}addInterval(e){if(this.cachedHashCode=void 0,this.intervals.length===0)this.intervals.push(e);else{for(let t=0;t<this.intervals.length;t++){let i=this.intervals[t];if(e.equals(i))return;if(e.adjacent(i)||!e.disjoint(i)){let n=e.union(i);this.intervals[t]=n;for(let a=t+1;a<this.intervals.length;){let o=this.intervals[a];if(!n.adjacent(o)&&n.disjoint(o))break;this.intervals.splice(a,1),this.intervals[t]=n.union(o)}return}if(e.startsBeforeDisjoint(i)){this.intervals.splice(t,0,e);return}}this.intervals.push(e)}}addSet(e){return e.intervals.forEach(t=>this.addInterval(t),this),this}complementWithVocabulary(e){let t=new Nt;return!e||e.length===0?t:(t.addSet(e),t.subtract(this))}complement(e,t){let i=new Nt;return i.addInterval(new xe(e,t)),i.subtract(this)}or(e){let t=new Nt;return t.addSet(this),e.forEach(i=>t.addSet(i)),t}and(e){if(e.length===0)return new Nt;let t=this.intervals,i=e.intervals,n,a=t.length,o=i.length,l=0,d=0;for(;l<a&&d<o;){let f=t[l],b=i[d];f.startsBeforeDisjoint(b)?l++:b.startsBeforeDisjoint(f)?d++:f.properlyContains(b)?(n||(n=new Nt),n.addInterval(f.intersection(b)),d++):b.properlyContains(f)?(n||(n=new Nt),n.addInterval(f.intersection(b)),l++):f.disjoint(b)||(n||(n=new Nt),n.addInterval(f.intersection(b)),f.startsAfterNonDisjoint(b)?d++:b.startsAfterNonDisjoint(f)&&l++)}return n||new Nt}subtract(e){if(this.length===0)return new Nt;let t=new Nt(this);if(e.length===0)return t;let i=0,n=0;for(;i<t.intervals.length&&n<e.intervals.length;){let a=t.intervals[i],o=e.intervals[n];if(o.stop<a.start){n++;continue}if(o.start>a.stop){i++;continue}let l,d;o.start>a.start&&(l=new xe(a.start,o.start-1)),o.stop<a.stop&&(d=new xe(o.stop+1,a.stop)),l?d?(t.intervals[i]=l,t.intervals.splice(i+1,0,d),i++,n++):(t.intervals[i]=l,i++):d?(t.intervals[i]=d,n++):t.intervals.splice(i,1)}return t}contains(e){let t=this.intervals.length,i=0,n=t-1;for(;i<=n;){let a=Math.floor((i+n)/2),o=this.intervals[a];if(o.stop<e)i=a+1;else if(o.start>e)n=a-1;else return!0}return!1}removeRange(e){if(this.cachedHashCode=void 0,e.start===e.stop)this.removeOne(e.start);else if(this.intervals!==null){let t=0;for(let i of this.intervals){if(e.stop<=i.start)return;if(e.start>i.start&&e.stop<i.stop){this.intervals[t]=new xe(i.start,e.start);let n=new xe(e.stop,i.stop);this.intervals.splice(t,0,n);return}else e.start<=i.start&&e.stop>=i.stop?(this.intervals.splice(t,1),t=t-1):e.start<i.stop?this.intervals[t]=new xe(i.start,e.start):e.stop<i.stop&&(this.intervals[t]=new xe(e.stop,i.stop));t+=1}}}removeOne(e){this.cachedHashCode=void 0;for(let t=0;t<this.intervals.length;t++){let i=this.intervals[t];if(e<i.start)return;if(e===i.start&&e===i.stop){this.intervals.splice(t,1);return}else if(e===i.start){this.intervals[t]=new xe(i.start+1,i.stop);return}else if(e===i.stop){this.intervals[t]=new xe(i.start,i.stop-1);return}else if(e<i.stop){let n=new xe(i.start,e-1);this.intervals[t]=new xe(e+1,i.stop),this.intervals.splice(t,0,n);return}}}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();for(let t of this.intervals)e=k.update(e,t.start),e=k.update(e,t.stop);this.cachedHashCode=k.finish(e,this.intervals.length*2)}return this.cachedHashCode}equals(e){if(this===e)return!0;if(this.intervals.length!==e.intervals.length)return!1;for(let t=0;t<this.intervals.length;t++)if(!this.intervals[t].equals(e.intervals[t]))return!1;return!0}toString(e){if(this.intervals.length===0)return"{}";let t="";this.length>1&&(t+="{");for(let i=0;i<this.intervals.length;++i){let n=this.intervals[i],a=n.start,o=n.stop;a===o?a===U.EOF?t+="<EOF>":e?t+="'"+String.fromCodePoint(a)+"'":t+=a:e?t+="'"+String.fromCodePoint(a)+"'..'"+String.fromCodePoint(o)+"'":t+=a+".."+o,i<this.intervals.length-1&&(t+=", ")}return this.length>1&&(t+="}"),t}toStringWithVocabulary(e){if(this.intervals.length===0)return"{}";let t="";this.length>1&&(t+="{");for(let i=0;i<this.intervals.length;++i){let n=this.intervals[i],a=n.start,o=n.stop;if(a===o)a===U.EOF?t+="<EOF>":t+=this.elementName(e,a);else for(let l=a;l<=o;++l)l>a&&(t+=", "),t+=this.elementName(e,l);i<this.intervals.length-1&&(t+=", ")}return this.length>1&&(t+="}"),t}toStringWithRuleNames(e){if(this.intervals.length===0)return"{}";let t="";this.length>1&&(t+="{");let i=or.fromTokenNames(e);for(let n=0;n<this.intervals.length;++n){let a=this.intervals[n],o=a.start,l=a.stop;if(o===l)o===U.EOF?t+="<EOF>":t+=this.elementName(i,o);else for(let d=o;d<=l;++d)d>o&&(t+=", "),t+=this.elementName(i,d);n<this.intervals.length-1&&(t+=", ")}return this.length>1&&(t+="}"),t}toArray(){let e=[];for(let t of this.intervals)for(let i=t.start;i<=t.stop;i++)e.push(i);return e}get length(){let e=0;for(let t of this.intervals)e+=t.length;return e}elementName(e,t){return t===U.EOF?"<EOF>":t===U.EPSILON?"<EPSILON>":e.getDisplayName(t)}};var D6=v(r=>r===null?"null":r,"valueToString"),_n=v(r=>Array.isArray(r)?"["+r.map(D6).join(", ")+"]":"null","arrayToString"),Iu=v((r,e)=>{if(r===e)return!0;if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++){let i=r[t],n=e[t];if(i!==n&&(!i||!i.equals(n)))return!1}return!0},"equalArrays"),I6=v((r,e)=>{if(r===e)return!0;if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!==e[t])return!1;return!0},"equalNumberArrays"),O6=v((r,e=!1)=>(r=r.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),e&&(r=r.replace(/ /g,"\xB7")),r),"escapeWhitespace"),Re=class Ni{static{v(this,"SemanticContext")}cachedHashCode;static andContext(e,t){if(e===null||e===Ni.NONE)return t;if(t===null||t===Ni.NONE)return e;let i=new k6(e,t);return i.operands.length===1?i.operands[0]:i}static orContext(e,t){if(e===null)return t;if(t===null)return e;if(e===Ni.NONE||t===Ni.NONE)return Ni.NONE;let i=new F6(e,t);return i.operands.length===1?i.operands[0]:i}static filterPrecedencePredicates(e){let t=[];for(let i of e)i instanceof Ni.PrecedencePredicate&&t.push(i);return t}evalPrecedence(e,t){return this}},k6=class Au extends Re{static{v(this,"AND")}operands;constructor(e,t){super();let i=new qt;e instanceof Au?e.operands.forEach(a=>{i.add(a)}):i.add(e),t instanceof Au?t.operands.forEach(a=>{i.add(a)}):i.add(t);let n=Re.filterPrecedencePredicates(i);if(n.length>0){let a=null;n.forEach(o=>{(a===null||o.precedence<a.precedence)&&(a=o)}),a&&i.add(a)}this.operands=i.toArray()}equals(e){return this===e?!0:e instanceof Au?Iu(this.operands,e.operands):!1}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();for(let t of this.operands)e=k.updateFromComparable(e,t);e=k.update(e,3813686060),this.cachedHashCode=k.finish(e,this.operands.length+1)}return this.cachedHashCode}evaluate(e,t){for(let i of this.operands)if(!i.evaluate(e,t))return!1;return!0}evalPrecedence(e,t){let i=!1,n=[];for(let o of this.operands){let l=o.evalPrecedence(e,t);if(i||=l!==o,l===null)return null;l!==Re.NONE&&n.push(l)}if(!i)return this;if(n.length===0)return Re.NONE;let a=null;return n.forEach(o=>{a=a===null?o:Re.andContext(a,o)}),a}toString(){let e=this.operands.map(t=>t.toString());return(e.length>3?e.slice(3):e).join("&&")}},F6=class Mu extends Re{static{v(this,"OR")}operands;constructor(e,t){super();let i=new qt;e instanceof Mu?e.operands.forEach(a=>{i.add(a)}):i.add(e),t instanceof Mu?t.operands.forEach(a=>{i.add(a)}):i.add(t);let n=Re.filterPrecedencePredicates(i);if(n.length>0){let a=n.sort((l,d)=>l.compareTo(d)),o=a[a.length-1];i.add(o)}this.operands=i.toArray()}equals(e){return this===e?!0:e instanceof Mu?Iu(this.operands,e.operands):!1}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();for(let t of this.operands)e=k.updateFromComparable(e,t);e=k.update(e,3383313031),this.cachedHashCode=k.finish(e,this.operands.length+1)}return this.cachedHashCode}evaluate(e,t){for(let i of this.operands)if(i.evaluate(e,t))return!0;return!1}evalPrecedence(e,t){let i=!1,n=[];for(let o of this.operands){let l=o.evalPrecedence(e,t);if(i||=l!==o,l===Re.NONE)return Re.NONE;l!==null&&n.push(l)}if(!i)return this;if(n.length===0)return null;let a=null;return n.forEach(o=>{a=a===null?o:Re.orContext(a,o)}),a}toString(){let e=this.operands.map(t=>t.toString());return(e.length>3?e.slice(3):e).join("||")}};(r=>{class e extends r{static{v(this,"Predicate")}ruleIndex;predIndex;isCtxDependent;constructor(n,a,o){super(),this.ruleIndex=n??-1,this.predIndex=a??-1,this.isCtxDependent=o??!1}evaluate(n,a){let o=this.isCtxDependent?a:null;return n.sempred(o,this.ruleIndex,this.predIndex)}hashCode(){if(this.cachedHashCode===void 0){let n=k.initialize();n=k.update(n,this.ruleIndex),n=k.update(n,this.predIndex),n=k.update(n,this.isCtxDependent?1:0),n=k.finish(n,3),this.cachedHashCode=n}return this.cachedHashCode}equals(n){return this===n?!0:this.ruleIndex===n.ruleIndex&&this.predIndex===n.predIndex&&this.isCtxDependent===n.isCtxDependent}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}}r.Predicate=e;class t extends r{static{v(this,"PrecedencePredicate")}precedence;constructor(n){super(),this.precedence=n??0}evaluate(n,a){return n.precpred(a,this.precedence)}evalPrecedence(n,a){return n.precpred(a??null,this.precedence)?r.NONE:null}compareTo(n){return this.precedence-n.precedence}hashCode(){return 31+this.precedence}equals(n){return this===n?!0:this.precedence===n.precedence}toString(){return"{"+this.precedence+">=prec}?"}}r.PrecedencePredicate=t,r.NONE=new e})(Re||(Re={}));var We=class Ys{static{v(this,"ATNConfig")}state;alt;reachesIntoOuterContext=!1;precedenceFilterSuppressed=!1;get semanticContext(){return this.#t}cachedHashCode;#e=null;#t;constructor(e,t,i,n){this.state=t,this.alt=e.alt,this.context=i,this.#t=n??Re.NONE,this.reachesIntoOuterContext=e.reachesIntoOuterContext,e.precedenceFilterSuppressed!==void 0&&(this.precedenceFilterSuppressed=e.precedenceFilterSuppressed)}static duplicate(e,t){return new Ys(e,e.state,e.context,t??e.semanticContext)}static createWithContext(e,t,i,n){return new Ys({alt:t},e,i,n)}static createWithConfig(e,t,i){return new Ys(t,e,i??t.context,t.semanticContext)}static createWithSemanticContext(e,t,i){return new Ys(t,e??t.state,t.context,i)}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize(7);e=k.update(e,this.state.stateNumber),e=k.update(e,this.alt),e=k.updateFromComparable(e,this.#e),e=k.updateFromComparable(e,this.semanticContext),e=k.finish(e,4),this.cachedHashCode=e}return this.cachedHashCode}get context(){return this.#e}set context(e){this.#e=e,this.cachedHashCode=void 0}equals(e){return this===e?!0:this.state.stateNumber===e.state.stateNumber&&this.alt===e.alt&&(this.context===null?e.context===null:this.context.equals(e.context))&&this.semanticContext.equals(e.semanticContext)&&this.precedenceFilterSuppressed===e.precedenceFilterSuppressed}toString(e,t=!0){let i="";return t&&(i=","+this.alt),"("+this.state+i+(this.context!==null?",["+this.context.toString()+"]":"")+(this.semanticContext!==Re.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext?",up="+this.reachesIntoOuterContext:"")+")"}},W=class rR{static{v(this,"ATNState")}static INVALID_STATE_NUMBER=-1;static INVALID_TYPE=0;static BASIC=1;static RULE_START=2;static BLOCK_START=3;static PLUS_BLOCK_START=4;static STAR_BLOCK_START=5;static TOKEN_START=6;static RULE_STOP=7;static BLOCK_END=8;static STAR_LOOP_BACK=9;static STAR_LOOP_ENTRY=10;static PLUS_LOOP_BACK=11;static LOOP_END=12;static stateType=rR.INVALID_STATE_NUMBER;stateNumber=0;ruleIndex=0;epsilonOnlyTransitions=!1;nextTokenWithinRule;transitions=[];hashCode(){return this.stateNumber}equals(e){return this.stateNumber===e.stateNumber}toString(){return`${this.stateNumber}`}addTransitionAtIndex(e,t){this.transitions.length===0?this.epsilonOnlyTransitions=t.isEpsilon:this.epsilonOnlyTransitions!==t.isEpsilon&&(this.epsilonOnlyTransitions=!1),this.transitions.splice(e,0,t)}addTransition(e){this.transitions.length===0?this.epsilonOnlyTransitions=e.isEpsilon:this.epsilonOnlyTransitions!==e.isEpsilon&&(this.epsilonOnlyTransitions=!1),this.transitions.push(e)}setTransition(e,t){this.transitions.splice(e,1,t)}removeTransition(e){return this.transitions.splice(e,1)[0]}},nt=class iR{static{v(this,"PredictionContext")}static EMPTY_RETURN_STATE=2147483647;static traceATNSimulator=!1;cachedHashCode;constructor(e){this.cachedHashCode=e}static calculateEmptyHashCode(){let e=k.initialize(31);return e=k.finish(e,0),e}static calculateHashCodeSingle(e,t){let i=k.initialize(31);return i=k.updateFromComparable(i,e),i=k.update(i,t),i=k.finish(i,2),i}static calculateHashCodeList(e,t){let i=k.initialize(31);for(let n of e)i=k.updateFromComparable(i,n);for(let n of t)i=k.update(i,n);return i=k.finish(i,2*e.length),i}isEmpty(){return!1}hasEmptyPath(){return this.getReturnState(this.length-1)===iR.EMPTY_RETURN_STATE}hashCode(){return this.cachedHashCode}toString(e){return""}},Vn=class nR extends nt{static{v(this,"SingletonPredictionContext")}parent;returnState;constructor(e,t){super(e?nt.calculateHashCodeSingle(e,t):nt.calculateEmptyHashCode()),this.parent=e??null,this.returnState=t}getParent(e){return this.parent}getReturnState(e){return this.returnState}equals(e){return this===e?!0:!(e instanceof nR)||this.hashCode()!==e.hashCode()||this.returnState!==e.returnState?!1:this.parent==null?e.parent==null:this.parent.equals(e.parent)}toString(){let e=this.parent===null?"":this.parent.toString();return e.length===0?this.returnState===nt.EMPTY_RETURN_STATE?"$":""+this.returnState:""+this.returnState+" "+e}get length(){return 1}},ze=class sR extends Vn{static{v(this,"EmptyPredictionContext")}static instance=new sR;constructor(){super(void 0,nt.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(){return null}getReturnState(){return this.returnState}equals(e){return this===e}toString(){return"$"}},q=class{static{v(this,"Transition")}static INVALID=0;static EPSILON=1;static RANGE=2;static RULE=3;static PREDICATE=4;static ATOM=5;static ACTION=6;static SET=7;static NOT_SET=8;static WILDCARD=9;static PRECEDENCE=10;target;constructor(r){this.target=r}get isEpsilon(){return!1}get label(){return null}toString(){return""}},E3=class extends q{static{v(this,"SetTransition")}set;constructor(r,e){super(r),e?this.set=e:this.set=ar.of(U.INVALID_TYPE,U.INVALID_TYPE)}get transitionType(){return q.SET}get label(){return this.set}matches(r,e,t){return this.set.contains(r)}toString(){return this.set.toString()}},L3=class extends E3{static{v(this,"NotSetTransition")}get transitionType(){return q.NOT_SET}matches(r,e,t){return r>=e&&r<=t&&!super.matches(r,e,t)}toString(){return"~"+super.toString()}},H6=class{static{v(this,"MapKeyEqualityComparator")}keyComparator;constructor(r){this.keyComparator=r}hashCode(r){return this.keyComparator.hashCode(r.key)}equals(r,e){return this.keyComparator.equals(r.key,e.key)}},wr=class aR{static{v(this,"HashMap")}backingStore;constructor(e){e instanceof aR?this.backingStore=new qt(e.backingStore):(e=e??eR.instance,this.backingStore=new qt(new H6(e)))}clear(){this.backingStore.clear()}containsKey(e){return this.backingStore.contains({key:e})}get(e){let t=this.backingStore.get({key:e});if(t)return t.value}get isEmpty(){return this.backingStore.isEmpty}set(e,t){let i=this.backingStore.get({key:e,value:t}),n;return i?(n=i.value,i.value=t):this.backingStore.add({key:e,value:t}),n}setIfAbsent(e,t){let i=this.backingStore.get({key:e,value:t}),n;return i?n=i.value:this.backingStore.add({key:e,value:t}),n}keys(){return this.backingStore.toArray().map(e=>e.key)}values(){return this.backingStore.toArray().map(e=>e.value)}get size(){return this.backingStore.size}hashCode(){return this.backingStore.hashCode()}equals(e){return this.backingStore.equals(e.backingStore)}},ct=class{static{v(this,"TerminalNode")}parent=null;symbol;constructor(r){this.symbol=r}getChild(r){return null}getSymbol(){return this.symbol}getPayload(){return this.symbol}getSourceInterval(){if(this.symbol===null)return xe.INVALID_INTERVAL;let r=this.symbol.tokenIndex;return new xe(r,r)}getChildCount(){return 0}accept(r){return r.visitTerminal(this)}getText(){return this.symbol?.text??""}toString(){return this.symbol?.type===U.EOF?"<EOF>":this.symbol?.text??""}toStringTree(){return this.toString()}},ra=class extends ct{static{v(this,"ErrorNode")}accept(r){return r.visitErrorNode(this)}},wu=class Hn{static{v(this,"CommonToken")}static EMPTY_SOURCE=[null,null];source;tokenIndex;start;stop;type;line;column;channel;#e;constructor(e){this.type=e.type,this.source=e.source,this.tokenIndex=e.tokenIndex??-1,this.line=e.line??0,this.column=e.column??-1,this.channel=e.channel??U.DEFAULT_CHANNEL,this.start=e.start??0,this.stop=e.stop??0,this.#e=e.text,e.line===void 0&&e.source[0]!==null&&(this.line=e.source[0].line),e.column===void 0&&e.source[0]!==null&&(this.column=e.source[0].column)}static fromToken(e){let t=[e.tokenSource,e.inputStream];return new Hn({type:e.type,line:e.line,tokenIndex:e.tokenIndex,column:e.column,channel:e.channel,start:e.start,stop:e.stop,text:e.text,source:t})}static fromType(e,t){return new Hn({type:e,text:t,source:Hn.EMPTY_SOURCE})}static fromSource(e,t,i,n,a){return new Hn({type:t,channel:i,start:n,stop:a,source:e})}get tokenSource(){return this.source[0]}get inputStream(){return this.source[1]}set inputStream(e){this.source[1]=e}clone(){return new Hn({source:this.source,type:this.type,channel:this.channel,start:this.start,stop:this.stop,tokenIndex:this.tokenIndex,line:this.line,column:this.column,text:this.#e})}toString(e){let t="";this.channel>0&&(t=",channel="+this.channel);let i=this.text;i?(i=i.replace(/\n/g,"\\n"),i=i.replace(/\r/g,"\\r"),i=i.replace(/\t/g,"\\t")):i="<no text>";let n=String(this.type);return e&&(n=e.vocabulary.getDisplayName(this.type)??"<unknown>"),"[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+i+"',<"+n+">"+t+","+this.line+":"+this.column+"]"}get text(){if(this.#e!==void 0)return this.#e;let e=this.inputStream;if(!e)return;let t=e.size;return this.start<t&&this.stop<t?e.getTextFromRange(this.start,this.stop):"<EOF>"}set text(e){this.#e=e}setText(e){this.#e=e}setType(e){this.type=e}setLine(e){this.line=e}setCharPositionInLine(e){this.column=e}setChannel(e){this.channel=e}setTokenIndex(e){this.tokenIndex=e}},ii=class Mr{static{v(this,"Trees")}static toStringTree(e,t,i){t=t??null,i&&(t=i.ruleNames);let n=Mr.getNodeText(e,t);n=O6(n,!1);let a=e.getChildCount();if(a===0)return n;let o="("+n+" ";a>0&&(n=Mr.toStringTree(e.getChild(0),t),o=o.concat(n));for(let l=1;l<a;l++)n=Mr.toStringTree(e.getChild(l),t),o=o.concat(" "+n);return o=o.concat(")"),o}static getNodeText(e,t,i){if(t=t??null,i&&(t=i.ruleNames),t!==null)if(e instanceof u){let o=e.ruleContext.getAltNumber();return o!==0?t[e.ruleIndex]+":"+o:t[e.ruleIndex]}else{if(e instanceof ra)return e.toString();if(e instanceof ct)return e.symbol.text}let n=e.getPayload();return A6(n)?n.text:String(e.getPayload())}static getChildren(e){let t=[];for(let i=0;i<e.getChildCount();i++)t.push(e.getChild(i));return t}static getAncestors(e){if(e.parent===null)return[];let t=[],i=e.parent;for(;i!==null;)t=[i].concat(t),i=i.parent;return t}static isAncestorOf(e,t){if(e===null||t===null||e.parent===null)return!1;let i=t.parent;for(;i!==null;){if(e===i)return!0;i=i.parent}return!1}static findAllTokenNodes(e,t){return Mr.findAllNodes(e,t,!0)}static findAllRuleNodes(e,t){return Mr.findAllNodes(e,t,!1)}static findAllNodes(e,t,i){let n=[];return Mr.doFindAllNodes(e,t,i,n),n}static descendants(e){let t=[e];for(let i=0;i<e.getChildCount();i++)t=t.concat(Mr.descendants(e.getChild(i)));return t}static getRootOfSubtreeEnclosingRegion(e,t,i){let n=e.getChildCount();for(let a=0;a<n;a++){let o=e.getChild(a),l=this.getRootOfSubtreeEnclosingRegion(o,t,i);if(l!==null)return l}return e instanceof u&&t>=e.start.tokenIndex&&(e.stop===null||i<=e.stop.tokenIndex)?e:null}static stripChildrenOutOfRange(e,t,i,n){if(e!==null)for(let a=0;a<e.getChildCount();a++){let o=e.getChild(a),l=o.getSourceInterval();if(e instanceof u&&(l.stop<i||l.start>n)&&this.isAncestorOf(o,t)){let d=wu.fromType(U.INVALID_TYPE,"...");e.children[a]=new ct(d)}}}static doFindAllNodes(e,t,i,n){i&&e instanceof ct?e.symbol?.type===t&&n.push(e):!i&&e instanceof u&&e.ruleIndex===t&&n.push(e);for(let a=0;a<e.getChildCount();a++)Mr.doFindAllNodes(e.getChild(a),t,i,n)}},u=class oR{static{v(this,"ParserRuleContext")}static empty=new oR(null);start=null;stop=null;children=[];invokingState;parent;constructor(e,t=-1){this.parent=e,this.invokingState=t}copyFrom(e){this.parent=e.parent,this.invokingState=e.invokingState,this.children.slice(0,this.children.length),this.start=e.start,this.stop=e.stop,e.children&&e.children.forEach(t=>{t instanceof ra&&(this.children.push(t),t.parent=this)})}enterRule(e){}exitRule(e){}addChild(e){return this.children.push(e),e}removeLastChild(){this.children.pop()}addTokenNode(e){let t=new ct(e);return this.children.push(t),t.parent=this,t}addErrorNode(e){return e.parent=this,this.children.push(e),e}getChild(e,t){if(e<0||e>=this.children.length)return null;if(!t)return this.children[e];for(let i of this.children)if(i instanceof t){if(e===0)return i;e-=1}return null}getToken(e,t){if(t<0||t>=this.children.length)return null;for(let i of this.children)if("symbol"in i&&i.symbol?.type===e){if(t===0)return i;t-=1}return null}getTokens(e){let t=[];for(let i of this.children)"symbol"in i&&i.symbol?.type===e&&t.push(i);return t}getRuleContext(e,t){return this.getChild(e,t)}getRuleContexts(e){let t=[];for(let i of this.children)i instanceof e&&t.push(i);return t}getChildCount(){return this.children.length}getSourceInterval(){return this.start===null?xe.INVALID_INTERVAL:this.stop===null||this.stop.tokenIndex<this.start.tokenIndex?new xe(this.start.tokenIndex,this.start.tokenIndex-1):new xe(this.start.tokenIndex,this.stop.tokenIndex)}depth(){let e=0,t=this;for(;t!==null;)t=t.parent,e+=1;return e}isEmpty(){return this.invokingState===-1}get ruleContext(){return this}get ruleIndex(){return-1}getPayload(){return this}getText(){return this.children.length===0?"":this.children.map(e=>e.getText()).join("")}getAltNumber(){return Q.INVALID_ALT_NUMBER}setAltNumber(e){}accept(e){return e.visitChildren(this)}toStringTree(...e){return e.length<2?ii.toStringTree(this,null,e[0]):ii.toStringTree(this,e[0],e[1])}toString(e,t){e=e??null,t=t??null;let i=this,n="[";for(;i!==null&&i!==t;){if(e===null)i.isEmpty()||(n+=i.invokingState);else{let a=i.ruleIndex,o=a>=0&&a<e.length?e[a]:""+a;n+=o}i.parent!==null&&(e!==null||!i.parent.isEmpty())&&(n+=" "),i=i.parent}return n+="]",n}},ni=class lR extends nt{static{v(this,"ArrayPredictionContext")}parents=[];returnStates=[];constructor(e,t){return super(nt.calculateHashCodeList(e,t)),this.parents=e,this.returnStates=t,this}isEmpty(){return this.returnStates[0]===nt.EMPTY_RETURN_STATE}get length(){return this.returnStates.length}getParent(e){return this.parents[e]}getReturnState(e){return this.returnStates[e]}equals(e){return this===e?!0:!(e instanceof lR)||this.hashCode()!==e.hashCode()?!1:I6(this.returnStates,e.returnStates)&&Iu(this.parents,e.parents)}toString(){if(this.isEmpty())return"[]";let e=[];for(let t=0;t<this.returnStates.length;t++){if(this.returnStates[t]===nt.EMPTY_RETURN_STATE){e.push("$");continue}e.push(this.returnStates[t].toString()),this.parents[t]?e.push(this.parents[t].toString()):e.push("null")}return`[${e.join(", ")}]`}},Oi=v((r,e)=>e===nt.EMPTY_RETURN_STATE&&r===null?ze.instance:new Vn(r,e),"createSingletonPredictionContext"),S3=v((r,e)=>{if(e||(e=u.empty),!e.parent||e===u.empty)return ze.instance;let t=S3(r,e.parent),n=r.states[e.invokingState].transitions[0];return Oi(t,n.followState.stateNumber)},"predictionContextFromRuleContext"),uR=v((r,e,t)=>{if(r.isEmpty())return r;let i=t.get(r);if(i)return i;if(i=e.get(r),i)return t.set(r,i),i;let n=!1,a=[];for(let l=0;l<a.length;l++){let d=uR(r.getParent(l),e,t);if(n||d!==r.getParent(l)){if(!n){a=[];for(let f=0;f<r.length;f++)a[f]=r.getParent(f);n=!0}a[l]=d}}if(!n)return e.add(r),t.set(r,r),r;let o;return a.length===0?o=ze.instance:a.length===1?o=Oi(a[0]??void 0,r.getReturnState(0)):o=new ni(a,r.returnStates),e.add(o),t.set(o,o),t.set(r,o),o},"getCachedPredictionContext"),P3=v((r,e,t,i)=>{if(r===e||r.equals(e))return r;if(r instanceof Vn&&e instanceof Vn)return V6(r,e,t,i);if(t){if(r instanceof ze)return r;if(e instanceof ze)return e}return r instanceof Vn&&(r=new ni([r.parent],[r.returnState])),e instanceof Vn&&(e=new ni([e.parent],[e.returnState])),B6(r,e,t,i)},"merge"),B6=v((r,e,t,i)=>{if(i){let b=i.get(r,e);if(b||(b=i.get(e,r),b))return b}let n=0,a=0,o=0,l=new Array(r.returnStates.length+e.returnStates.length).fill(0),d=new Array(r.returnStates.length+e.returnStates.length).fill(null);for(;n<r.returnStates.length&&a<e.returnStates.length;){let b=r.parents[n],E=e.parents[a];if(r.returnStates[n]===e.returnStates[a]){let A=r.returnStates[n];A===nt.EMPTY_RETURN_STATE&&b===null&&E===null||b!==null&&E!==null&&b===E?(d[o]=b,l[o]=A):(d[o]=P3(b,E,t,i),l[o]=A),n+=1,a+=1}else r.returnStates[n]<e.returnStates[a]?(d[o]=b,l[o]=r.returnStates[n],n+=1):(d[o]=E,l[o]=e.returnStates[a],a+=1);o+=1}if(n<r.returnStates.length)for(let b=n;b<r.returnStates.length;b++)d[o]=r.parents[b],l[o]=r.returnStates[b],o+=1;else for(let b=a;b<e.returnStates.length;b++)d[o]=e.parents[b],l[o]=e.returnStates[b],o+=1;if(o<d.length){if(o===1){let b=Oi(d[0]??void 0,l[0]);return i!==null&&i.set(r,e,b),b}d=d.slice(0,o),l=l.slice(0,o)}let f=new ni(d,l);return f.equals(r)?(i!==null&&i.set(r,e,r),nt.traceATNSimulator&&console.log("mergeArrays a="+r+",b="+e+" -> a"),r):f.equals(e)?(i!==null&&i.set(r,e,e),e):(_6(d),i!==null&&i.set(r,e,f),nt.traceATNSimulator&&console.log("mergeArrays a="+r+",b="+e+" -> "+f),f)},"mergeArrays"),_6=v(r=>{let e=new wr(Ii.instance);for(let t of r)t&&(e.containsKey(t)||e.set(t,t));for(let t=0;t<r.length;t++)r[t]&&(r[t]=e.get(r[t])??null)},"combineCommonParents"),V6=v((r,e,t,i)=>{if(i!==null){let a=i.get(r,e);if(a!==null||(a=i.get(e,r),a!==null))return a}let n=q6(r,e,t);if(n!==null)return i!==null&&i.set(r,e,n),n;if(r.returnState===e.returnState){let a=P3(r.parent,e.parent,t,i);if(a===r.parent)return r;if(a===e.parent)return e;let o=Oi(a,r.returnState);return i!==null&&i.set(r,e,o),o}else{let a=null;if((r===e||r.parent!==null&&r.parent.equals(e.parent))&&(a=r.parent),a!==null){let f=[r.returnState,e.returnState];r.returnState>e.returnState&&(f[0]=e.returnState,f[1]=r.returnState);let b=[a,a],E=new ni(b,f);return i!==null&&i.set(r,e,E),E}let o=[r.returnState,e.returnState],l=[r.parent,e.parent];r.returnState>e.returnState&&(o[0]=e.returnState,o[1]=r.returnState,l=[e.parent,r.parent]);let d=new ni(l,o);return i!==null&&i.set(r,e,d),d}},"mergeSingletons"),q6=v((r,e,t)=>{if(t){if(r===ze.instance||e===ze.instance)return ze.instance}else{if(r===ze.instance&&e===ze.instance)return ze.instance;if(r===ze.instance){let i=[e.returnState,nt.EMPTY_RETURN_STATE],n=[e.parent,null];return new ni(n,i)}if(e===ze.instance){let i=[r.returnState,nt.EMPTY_RETURN_STATE],n=[r.parent,null];return new ni(n,i)}}return null},"mergeRoot"),j6=class m3{constructor(e){this.atn=e}static{v(this,"LL1Analyzer")}static hitPredicate=U.INVALID_TYPE;getDecisionLookahead(e){let t=e.transitions.length,i=new Array(t);for(let n=0;n<t;n++){let a=new ar,o=new qt;this.doLook(e.transitions[n].target,void 0,ze.instance,a,o,new Rr,!1,!1),a.length>0&&!a.contains(m3.hitPredicate)&&(i[n]=a)}return i}look(e,t,i){let n=new ar,a=i?S3(this.atn,i):null;return this.doLook(e,t,a,n,new qt,new Rr,!0,!0),n}doLook(e,t,i,n,a,o,l,d){let f=We.createWithContext(e,0,i);if(!a.get(f)){if(a.add(f),e===t)if(i){if(i.isEmpty()&&d){n.addOne(U.EOF);return}}else{n.addOne(U.EPSILON);return}if(e.constructor.stateType===W.RULE_STOP){if(i){if(i.isEmpty()&&d){n.addOne(U.EOF);return}}else{n.addOne(U.EPSILON);return}if(i!==ze.instance){let b=o.get(e.ruleIndex);try{o.clear(e.ruleIndex);for(let E=0;E<i.length;E++){let A=this.atn.states[i.getReturnState(E)];this.doLook(A,t,i.getParent(E),n,a,o,l,d)}}finally{b&&o.set(e.ruleIndex)}return}}for(let b of e.transitions)switch(b.transitionType){case q.RULE:{if(o.get(b.target.ruleIndex))continue;let E=Oi(i??void 0,b.followState.stateNumber);try{o.set(b.target.ruleIndex),this.doLook(b.target,t,E,n,a,o,l,d)}finally{o.clear(b.target.ruleIndex)}break}case q.PREDICATE:case q.PRECEDENCE:{l?this.doLook(b.target,t,i,n,a,o,l,d):n.addOne(m3.hitPredicate);break}case q.WILDCARD:{n.addRange(U.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType);break}default:{if(b.isEpsilon)this.doLook(b.target,t,i,n,a,o,l,d);else{let E=b.label;E&&(b instanceof L3&&(E=E.complement(U.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType)),n.addSet(E))}break}}}}},Q=class{static{v(this,"ATN")}static INVALID_ALT_NUMBER=0;static LEXER=0;static PARSER=1;grammarType;maxTokenType;states=[];decisionToState=[];ruleToStartState=[];ruleToStopState=[];modeNameToStartState=new Map;ruleToTokenType=[];lexerActions=[];modeToStartState=[];analyzer;constructor(r,e){this.grammarType=r,this.maxTokenType=e,this.analyzer=new j6(this)}nextTokens(r,e){if(!e&&r.nextTokenWithinRule)return r.nextTokenWithinRule;let t=this.analyzer.look(r,void 0,e);return e||(r.nextTokenWithinRule=t),t}addState(r){r&&(r.stateNumber=this.states.length),this.states.push(r)}removeState(r){this.states[r.stateNumber]=null}defineDecisionState(r){return this.decisionToState.push(r),r.decision=this.decisionToState.length-1,r.decision}getDecisionState(r){return this.decisionToState.length===0?null:this.decisionToState[r]}getNumberOfDecisions(){return this.decisionToState.length}getExpectedTokens(r,e){if(r<0||r>=this.states.length)throw new Error("Invalid state number.");let t=this.states[r],i=this.nextTokens(t);if(!i.contains(U.EPSILON))return i;let n=e,a=new ar;for(a.addSet(i),a.removeOne(U.EPSILON);n!==null&&n.invokingState>=0&&i.contains(U.EPSILON);){let l=this.states[n.invokingState].transitions[0];i=this.nextTokens(l.followState),a.addSet(i),a.removeOne(U.EPSILON),n=n.parent}return i.contains(U.EPSILON)&&a.addOne(U.EOF),a}},Vb=class cR{static{v(this,"KeyTypeEqualityComparer")}static instance=new cR;hashCode(e){let t=7;return t=31*t+e.state.stateNumber,t=31*t+e.alt,t=31*t+e.semanticContext.hashCode(),t}equals(e,t){return e===t?!0:e.state.stateNumber===t.state.stateNumber&&e.alt===t.alt&&e.semanticContext.equals(t.semanticContext)}},Ur=class{static{v(this,"ATNConfigSet")}configLookup=new qt(Vb.instance);configs=[];uniqueAlt=0;hasSemanticContext=!1;dipsIntoOuterContext=!1;fullCtx=!1;readOnly=!1;conflictingAlts=null;firstStopState;#e=-1;constructor(r){if(r!==void 0)if(typeof r=="boolean")this.fullCtx=r??!0;else{let e=r;this.addAll(e.configs),this.uniqueAlt=e.uniqueAlt,this.conflictingAlts=e.conflictingAlts,this.hasSemanticContext=e.hasSemanticContext,this.dipsIntoOuterContext=e.dipsIntoOuterContext}}[Symbol.iterator](){return this.configs[Symbol.iterator]()}add(r,e=null){if(this.readOnly)throw new Error("This set is readonly");!this.firstStopState&&r.state.constructor.stateType===W.RULE_STOP&&(this.firstStopState=r),this.hasSemanticContext||=r.semanticContext!==Re.NONE,this.dipsIntoOuterContext||=r.reachesIntoOuterContext;let t=this.configLookup.getOrAdd(r);if(t===r){this.#e=-1,this.configs.push(r);return}let i=!this.fullCtx,n=P3(t.context,r.context,i,e);t.reachesIntoOuterContext||=r.reachesIntoOuterContext,t.precedenceFilterSuppressed||=r.precedenceFilterSuppressed,t.context=n}get elements(){return this.configs}getAlts(){let r=new Rr;for(let e of this.configs)r.set(e.alt);return r}getPredicates(){let r=[];for(let e of this.configs)e.semanticContext!==Re.NONE&&r.push(e.semanticContext);return r}getStates(){let r=new qt;for(let e of this.configs)r.add(e.state);return r}optimizeConfigs(r){if(this.readOnly)throw new Error("This set is readonly");if(this.configLookup.size!==0)for(let e of this.configs)e.context=r.getCachedContext(e.context)}addAll(r){for(let e of r)this.add(e);return!1}equals(r){return!!(this===r||this.fullCtx===r.fullCtx&&this.uniqueAlt===r.uniqueAlt&&this.conflictingAlts===r.conflictingAlts&&this.hasSemanticContext===r.hasSemanticContext&&this.dipsIntoOuterContext===r.dipsIntoOuterContext&&Iu(this.configs,r.configs))}hashCode(){return this.#e===-1&&(this.#e=this.computeHashCode()),this.#e}get length(){return this.configs.length}isEmpty(){return this.configs.length===0}contains(r){if(this.configLookup===null)throw new Error("This method is not implemented for readonly sets.");return this.configLookup.contains(r)}containsFast(r){if(this.configLookup===null)throw new Error("This method is not implemented for readonly sets.");return this.configLookup.contains(r)}clear(){if(this.readOnly)throw new Error("This set is readonly");this.configs=[],this.#e=-1,this.configLookup=new qt(Vb.instance)}setReadonly(r){this.readOnly=r,r&&(this.configLookup=null)}toString(){return _n(this.configs)+(this.hasSemanticContext?",hasSemanticContext="+this.hasSemanticContext:"")+(this.uniqueAlt!==Q.INVALID_ALT_NUMBER?",uniqueAlt="+this.uniqueAlt:"")+(this.conflictingAlts!==null?",conflictingAlts="+this.conflictingAlts:"")+(this.dipsIntoOuterContext?",dipsIntoOuterContext":"")}computeHashCode(){let r=k.initialize();return this.configs.forEach(e=>{r=k.update(r,e.hashCode())}),r=k.finish(r,this.configs.length),r}},qb=class extends W{static{v(this,"BasicState")}static stateType=W.BASIC},ki=class extends W{static{v(this,"DecisionState")}decision=-1;nonGreedy=!1},Di=class extends ki{static{v(this,"BlockStartState")}endState},h3=class extends W{static{v(this,"BlockEndState")}static stateType=W.BLOCK_END;startState},kn=class extends W{static{v(this,"LoopEndState")}static stateType=W.LOOP_END;loopBackState},b3=class extends W{static{v(this,"RuleStartState")}static stateType=W.RULE_START;stopState;isLeftRecursiveRule=!1},sr=class extends W{static{v(this,"RuleStopState")}static stateType=W.RULE_STOP},G6=class extends ki{static{v(this,"TokensStartState")}static stateType=W.TOKEN_START},jb=class extends ki{static{v(this,"PlusLoopbackState")}static stateType=W.PLUS_LOOP_BACK},d3=class extends W{static{v(this,"StarLoopbackState")}static stateType=W.STAR_LOOP_BACK},ri=class extends ki{static{v(this,"StarLoopEntryState")}static stateType=W.STAR_LOOP_ENTRY;loopBackState;precedenceRuleDecision=!1},p3=class extends Di{static{v(this,"PlusBlockStartState")}static stateType=W.PLUS_BLOCK_START;loopBackState},f3=class extends Di{static{v(this,"StarBlockStartState")}static stateType=W.STAR_BLOCK_START},Gb=class extends Di{static{v(this,"BasicBlockStartState")}static stateType=W.BLOCK_START},ea=class extends q{static{v(this,"AtomTransition")}labelValue;#e;constructor(r,e){super(r),this.labelValue=e,this.#e=ar.of(e,e)}get label(){return this.#e}get transitionType(){return q.ATOM}matches(r){return this.labelValue===r}toString(){return this.labelValue.toString()}},R3=class extends q{static{v(this,"RuleTransition")}ruleIndex;precedence;followState;constructor(r,e,t,i){super(r),this.ruleIndex=e,this.precedence=t,this.followState=i}get isEpsilon(){return!0}get transitionType(){return q.RULE}matches(r,e,t){return!1}},g3=class extends q{static{v(this,"RangeTransition")}start;stop;#e=new ar;constructor(r,e,t){super(r),this.start=e,this.stop=t,this.#e.addRange(e,t)}get label(){return this.#e}get transitionType(){return q.RANGE}matches(r,e,t){return r>=this.start&&r<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}},hR=class extends q{static{v(this,"ActionTransition")}ruleIndex;actionIndex;isCtxDependent;constructor(r,e,t,i){super(r),this.ruleIndex=e,this.actionIndex=t??-1,this.isCtxDependent=i??!1}get isEpsilon(){return!0}get transitionType(){return q.ACTION}matches(r,e,t){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}},Qs=class extends q{static{v(this,"EpsilonTransition")}#e;constructor(r,e=-1){super(r),this.#e=e}get outermostPrecedenceReturn(){return this.#e}get isEpsilon(){return!0}get transitionType(){return q.EPSILON}matches(){return!1}toString(){return"epsilon"}},W6=class extends q{static{v(this,"WildcardTransition")}get transitionType(){return q.WILDCARD}matches(r,e,t){return r>=e&&r<=t}toString(){return"."}},dR=class extends q{static{v(this,"AbstractPredicateTransition")}constructor(r){super(r)}},pR=class extends dR{static{v(this,"PredicateTransition")}ruleIndex;predIndex;isCtxDependent;constructor(r,e,t,i){super(r),this.ruleIndex=e,this.predIndex=t,this.isCtxDependent=i}get isEpsilon(){return!0}matches(r,e,t){return!1}get transitionType(){return q.PREDICATE}getPredicate(){return new Re.Predicate(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}},K6=class extends dR{static{v(this,"PrecedencePredicateTransition")}precedence;constructor(r,e){super(r),this.precedence=e}get isEpsilon(){return!0}matches(r,e,t){return!1}getPredicate(){return new Re.PrecedencePredicate(this.precedence)}get transitionType(){return q.PRECEDENCE}toString(){return this.precedence+" >= _p"}},Ce={CHANNEL:0,CUSTOM:1,MODE:2,MORE:3,POP_MODE:4,PUSH_MODE:5,SKIP:6,TYPE:7},z6=class fR{static{v(this,"LexerSkipAction")}static instance=new fR;actionType;isPositionDependent=!1;constructor(){this.actionType=Ce.SKIP}equals(e){return e===this}hashCode(){return Ce.SKIP}execute(e){e.skip()}toString(){return"skip"}},Q6=class xR{static{v(this,"LexerChannelAction")}channel;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){this.actionType=Ce.CHANNEL,this.channel=e}execute(e){e.channel=this.channel}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();e=k.update(e,this.actionType),e=k.update(e,this.channel),this.cachedHashCode=k.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof xR?this.channel===e.channel:!1}toString(){return"channel("+this.channel+")"}},$6=class mR{static{v(this,"LexerCustomAction")}ruleIndex;actionIndex;actionType;isPositionDependent=!0;cachedHashCode;constructor(e,t){this.actionType=Ce.CUSTOM,this.ruleIndex=e,this.actionIndex=t}execute(e){e.action(null,this.ruleIndex,this.actionIndex)}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();e=k.update(e,this.actionType),e=k.update(e,this.ruleIndex),e=k.update(e,this.actionIndex),this.cachedHashCode=k.finish(e,3)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof mR?this.ruleIndex===e.ruleIndex&&this.actionIndex===e.actionIndex:!1}},Y6=class bR{static{v(this,"LexerMoreAction")}static instance=new bR;actionType;isPositionDependent=!1;constructor(){this.actionType=Ce.MORE}equals(e){return e===this}hashCode(){return Ce.MORE}execute(e){e.more()}toString(){return"more"}},J6=class RR{static{v(this,"LexerTypeAction")}type;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){this.actionType=Ce.TYPE,this.type=e}execute(e){e.type=this.type}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();e=k.update(e,this.actionType),e=k.update(e,this.type),this.cachedHashCode=k.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof RR?this.type===e.type:!1}toString(){return"type("+this.type+")"}},X6=class gR{static{v(this,"LexerPushModeAction")}mode;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){this.actionType=Ce.PUSH_MODE,this.mode=e}execute(e){e.pushMode(this.mode)}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();e=k.update(e,this.actionType),e=k.update(e,this.mode),this.cachedHashCode=k.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof gR?this.mode===e.mode:!1}toString(){return"pushMode("+this.mode+")"}},Z6=class yR{static{v(this,"LexerPopModeAction")}static instance=new yR;actionType;isPositionDependent=!1;constructor(){this.actionType=Ce.POP_MODE}equals(e){return e===this}hashCode(){return Ce.POP_MODE}execute(e){e.popMode()}toString(){return"popMode"}},e7=class CR{static{v(this,"LexerModeAction")}mode;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){this.actionType=Ce.MODE,this.mode=e}execute(e){e.mode=this.mode}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();e=k.update(e,this.actionType),e=k.update(e,this.mode),this.cachedHashCode=k.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof CR?this.mode===e.mode:!1}toString(){return"mode("+this.mode+")"}},si=class Js{static{v(this,"ATNDeserializer")}static SERIALIZED_VERSION=4;static stateTypeMapper=new Map([[W.INVALID_TYPE,void 0],[W.BASIC,qb],[W.RULE_START,b3],[W.BLOCK_START,Gb],[W.PLUS_BLOCK_START,p3],[W.STAR_BLOCK_START,f3],[W.TOKEN_START,G6],[W.RULE_STOP,sr],[W.BLOCK_END,h3],[W.STAR_LOOP_BACK,d3],[W.STAR_LOOP_ENTRY,ri],[W.PLUS_LOOP_BACK,jb],[W.LOOP_END,kn]]);static lexerActionFactoryMapper=new Map([[Ce.CHANNEL,e=>new Q6(e)],[Ce.CUSTOM,(e,t)=>new $6(e,t)],[Ce.MODE,e=>new e7(e)],[Ce.MORE,()=>Y6.instance],[Ce.POP_MODE,()=>Z6.instance],[Ce.PUSH_MODE,e=>new X6(e)],[Ce.SKIP,()=>z6.instance],[Ce.TYPE,e=>new J6(e)]]);data=[];pos=0;deserializationOptions;actionFactories;constructor(e){e||(e={readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!1}),this.deserializationOptions=e}deserialize(e){this.data=e,this.checkVersion();let t=this.readATN();this.readStates(t),this.readRules(t),this.readModes(t);let i=[];return this.readSets(t,i),this.readEdges(t,i),this.readDecisions(t),this.readLexerActions(t),this.markPrecedenceDecisions(t),this.verifyATN(t),this.deserializationOptions.generateRuleBypassTransitions&&t.grammarType===Q.PARSER&&(this.generateRuleBypassTransitions(t),this.verifyATN(t)),t}checkVersion(){let e=this.data[this.pos++];if(e!==Js.SERIALIZED_VERSION)throw new Error("Could not deserialize ATN with version "+e+" (expected "+Js.SERIALIZED_VERSION+").")}readATN(){let e=this.data[this.pos++],t=this.data[this.pos++];return new Q(e,t)}readStates(e){let t,i,n=[],a=[],o=this.data[this.pos++];for(let f=0;f<o;f++){let b=this.data[this.pos++];if(b===W.INVALID_TYPE){e.addState(null);continue}let E=this.data[this.pos++],A=this.stateFactory(b,E);if(b===W.LOOP_END){let D=this.data[this.pos++];n.push([A,D])}else if(A instanceof Di){let D=this.data[this.pos++];a.push([A,D])}e.addState(A)}for(t=0;t<n.length;t++){let f=n[t];f[0].loopBackState=e.states[f[1]]??void 0}for(t=0;t<a.length;t++){let f=a[t];f[0].endState=e.states[f[1]]}let l=this.data[this.pos++];for(t=0;t<l;t++)i=this.data[this.pos++],e.states[i].nonGreedy=!0;let d=this.data[this.pos++];for(t=0;t<d;t++)i=this.data[this.pos++],e.states[i].isLeftRecursiveRule=!0}readRules(e){let t,i=this.data[this.pos++];for(e.grammarType===Q.LEXER&&(e.ruleToTokenType=new Array(i),e.ruleToTokenType.fill(0)),e.ruleToStartState=new Array(i),e.ruleToStartState.fill(null),t=0;t<i;t++){let n=this.data[this.pos++];if(e.ruleToStartState[t]=e.states[n],e.grammarType===Q.LEXER){let a=this.data[this.pos++];e.ruleToTokenType[t]=a}}for(e.ruleToStopState=new Array(i),e.ruleToStopState.fill(null),t=0;t<e.states.length;t++){let n=e.states[t];n instanceof sr&&(e.ruleToStopState[n.ruleIndex]=n,e.ruleToStartState[n.ruleIndex].stopState=n)}}readModes(e){let t=this.data[this.pos++];for(let i=0;i<t;i++){let n=this.data[this.pos++];e.modeToStartState.push(e.states[n])}}readSets(e,t){let i=this.data[this.pos++];for(let n=0;n<i;n++){let a=new ar;t.push(a);let o=this.data[this.pos++];this.data[this.pos++]!==0&&a.addOne(-1);for(let d=0;d<o;d++){let f=this.data[this.pos++],b=this.data[this.pos++];a.addRange(f,b)}}}readEdges(e,t){let i,n,a,o,l,d=this.data[this.pos++];for(i=0;i<d;i++){let f=this.data[this.pos++],b=this.data[this.pos++],E=this.data[this.pos++],A=this.data[this.pos++],D=this.data[this.pos++],z=this.data[this.pos++];o=this.edgeFactory(e,E,b,A,D,z,t),e.states[f].addTransition(o)}for(i=0;i<e.states.length;i++)for(a=e.states[i],n=0;n<a.transitions.length;n++){let f=a.transitions[n];if(!(f instanceof R3))continue;let b=-1;e.ruleToStartState[f.target.ruleIndex].isLeftRecursiveRule&&f.precedence===0&&(b=f.target.ruleIndex),o=new Qs(f.followState,b),e.ruleToStopState[f.target.ruleIndex].addTransition(o)}for(i=0;i<e.states.length;i++){if(a=e.states[i],a instanceof Di){if(!a.endState)throw new Error("IllegalState");if(a.endState.startState)throw new Error("IllegalState");a.endState.startState=a}if(a instanceof jb)for(n=0;n<a.transitions.length;n++)l=a.transitions[n].target,l instanceof p3&&(l.loopBackState=a);else if(a instanceof d3)for(n=0;n<a.transitions.length;n++)l=a.transitions[n].target,l instanceof ri&&(l.loopBackState=a)}}readDecisions(e){let t=this.data[this.pos++];for(let i=0;i<t;i++){let n=this.data[this.pos++],a=e.states[n];e.decisionToState.push(a),a.decision=i}}readLexerActions(e){if(e.grammarType===Q.LEXER){let t=this.data[this.pos++];e.lexerActions=[];for(let i=0;i<t;i++){let n=this.data[this.pos++],a=this.data[this.pos++],o=this.data[this.pos++];e.lexerActions.push(this.lexerActionFactory(n,a,o))}}}generateRuleBypassTransitions(e){let t,i=e.ruleToStartState.length;for(t=0;t<i;t++)e.ruleToTokenType[t]=e.maxTokenType+t+1;for(t=0;t<i;t++)this.generateRuleBypassTransition(e,t)}generateRuleBypassTransition(e,t){let i,n,a=new Gb;a.ruleIndex=t,e.addState(a);let o=new h3;o.ruleIndex=t,e.addState(o),a.endState=o,e.defineDecisionState(a),o.startState=a;let l=null,d=null;if(e.ruleToStartState[t].isLeftRecursiveRule){for(d=null,i=0;i<e.states.length;i++)if(n=e.states[i],this.stateIsEndStateFor(n,t)){d=n,l=n.loopBackState.transitions[0];break}if(l===null)throw new Error("Couldn't identify final state of the precedence rule prefix section.")}else d=e.ruleToStopState[t];for(i=0;i<e.states.length;i++){n=e.states[i];for(let E of n.transitions)E!==l&&E.target===d&&(E.target=o)}let f=e.ruleToStartState[t];for(;f.transitions.length>0;){let E=f.removeTransition(f.transitions.length-1);a.addTransition(E)}e.ruleToStartState[t].addTransition(new Qs(a)),d&&o.addTransition(new Qs(d));let b=new qb;e.addState(b),b.addTransition(new ea(o,e.ruleToTokenType[t])),a.addTransition(new Qs(b))}stateIsEndStateFor(e,t){if(e.ruleIndex!==t||!(e instanceof ri))return null;let i=e.transitions[e.transitions.length-1].target;return i instanceof kn&&i.epsilonOnlyTransitions&&i.transitions[0].target instanceof sr?e:null}markPrecedenceDecisions(e){for(let t of e.states)if(t instanceof ri&&e.ruleToStartState[t.ruleIndex].isLeftRecursiveRule){let i=t.transitions[t.transitions.length-1].target;i instanceof kn&&i.epsilonOnlyTransitions&&i.transitions[0].target instanceof sr&&(t.precedenceRuleDecision=!0)}}verifyATN(e){if(this.deserializationOptions.verifyATN){for(let t of e.states)if(t!==null)if(this.checkCondition(t.epsilonOnlyTransitions||t.transitions.length<=1),t instanceof p3)this.checkCondition(t.loopBackState!==null);else if(t instanceof ri)if(this.checkCondition(t.loopBackState!==null),this.checkCondition(t.transitions.length===2),t.transitions[0].target instanceof f3)this.checkCondition(t.transitions[1].target instanceof kn),this.checkCondition(!t.nonGreedy);else if(t.transitions[0].target instanceof kn)this.checkCondition(t.transitions[1].target instanceof f3),this.checkCondition(t.nonGreedy);else throw new Error("IllegalState");else t instanceof d3?(this.checkCondition(t.transitions.length===1),this.checkCondition(t.transitions[0].target instanceof ri)):t instanceof kn?this.checkCondition(t.loopBackState!==null):t instanceof b3?this.checkCondition(t.stopState!==null):t instanceof Di?this.checkCondition(t.endState!==null):t instanceof h3?this.checkCondition(t.startState!==null):t instanceof ki?this.checkCondition(t.transitions.length<=1||t.decision>=0):this.checkCondition(t.transitions.length<=1||t instanceof sr)}}checkCondition(e,t){if(!e)throw t==null&&(t="IllegalState"),t}edgeFactory(e,t,i,n,a,o,l){let d=e.states[i];switch(t){case q.EPSILON:return new Qs(d);case q.RANGE:return o!==0?new g3(d,U.EOF,a):new g3(d,n,a);case q.RULE:return new R3(e.states[n],a,o,d);case q.PREDICATE:return new pR(d,n,a,o!==0);case q.PRECEDENCE:return new K6(d,n);case q.ATOM:return o!==0?new ea(d,U.EOF):new ea(d,n);case q.ACTION:return new hR(d,n,a,o!==0);case q.SET:return new E3(d,l[n]);case q.NOT_SET:return new L3(d,l[n]);case q.WILDCARD:return new W6(d);default:throw new Error("The specified transition type: "+t+" is not valid.")}}stateFactory(e,t){let i=Js.stateTypeMapper.get(e);if(!i)throw new Error("The specified state type "+e+" is not valid.");let n=new i;return n.ruleIndex=t,n}lexerActionFactory(e,t,i){let n=Js.lexerActionFactoryMapper.get(e);if(!n)throw new Error("The specified lexer action type "+e+" is not valid.");return n(t,i)}},t7=class vR extends wr{static{v(this,"OrderedHashMap")}#e=[];clear(){super.clear(),this.#e=[]}get(e){return super.get(e)}set(e,t){let i=super.set(e,t);return i===void 0&&this.#e.push(e),i}setIfAbsent(e,t){let i=super.setIfAbsent(e,t);return i===void 0&&this.#e.push(e),i}values(){return{[Symbol.iterator]:()=>{let e=0;return{next:v(()=>e<this.#e.length?{done:!1,value:super.get(this.#e[e++])}:{done:!0,value:void 0},"next")}}}}keys(){return this.#e[Symbol.iterator]()}equals(e){return e instanceof vR?super.equals(e):!1}},D9=class y3{static{v(this,"ATNSerializer")}atn;data=[];sets=new t7(Ii.instance);nonGreedyStates=[];precedenceStates=[];constructor(e){this.atn=e}static getSerialized(e){return new y3(e).serialize()}static serializeSets(e,t){e.push(t.length);for(let i of t){let n=i.contains(U.EOF),a=[...i];n&&a[0].stop===U.EOF?e.push(a.length-1):e.push(a.length),e.push(n?1:0);for(let o of a){if(o.start===U.EOF){if(o.stop===U.EOF)continue;e.push(0)}else e.push(o.start);e.push(o.stop)}}}serialize(){this.addPreamble();let e=this.addEdges();this.addNonGreedyStates(),this.addPrecedenceStates(),this.addRuleStatesAndLexerTokenTypes(),this.addModeStartStates();let t=this.addSets();return this.addEdges(e,t),this.addDecisionStartStates(),this.addLexerActions(),this.data}addPreamble(){this.data.push(si.SERIALIZED_VERSION),this.data.push(this.atn.grammarType),this.data.push(this.atn.maxTokenType)}addLexerActions(){if(this.atn.grammarType===Q.LEXER){this.data.push(this.atn.lexerActions.length);for(let e of this.atn.lexerActions)switch(this.data.push(e.actionType),e.actionType){case Ce.CHANNEL:{let t=e.channel;this.data.push(t),this.data.push(0);break}case Ce.CUSTOM:{let t=e.ruleIndex,i=e.actionIndex;this.data.push(t),this.data.push(i);break}case Ce.MODE:{let t=e.mode;this.data.push(t),this.data.push(0);break}case Ce.MORE:{this.data.push(0),this.data.push(0);break}case Ce.POP_MODE:{this.data.push(0),this.data.push(0);break}case Ce.PUSH_MODE:{let t=e.mode;this.data.push(t),this.data.push(0);break}case Ce.SKIP:{this.data.push(0),this.data.push(0);break}case Ce.TYPE:{let t=e.type;this.data.push(t),this.data.push(0);break}default:throw new Error(`The specified lexer action type ${e.actionType} is not valid.`)}}}addDecisionStartStates(){this.data.push(this.atn.decisionToState.length);for(let e of this.atn.decisionToState)this.data.push(e.stateNumber)}addEdges(...e){switch(e.length){case 0:{let t=0;this.data.push(this.atn.states.length);for(let i of this.atn.states){if(i===null){this.data.push(W.INVALID_TYPE);continue}let n=i.constructor.stateType;i instanceof ki&&i.nonGreedy&&this.nonGreedyStates.push(i.stateNumber),i instanceof b3&&i.isLeftRecursiveRule&&this.precedenceStates.push(i.stateNumber),this.data.push(n),this.data.push(i.ruleIndex),i.constructor.stateType===W.LOOP_END?this.data.push(i.loopBackState.stateNumber):i instanceof Di&&this.data.push(i.endState.stateNumber),i.constructor.stateType!==W.RULE_STOP&&(t+=i.transitions.length);for(let a of i.transitions){let o=a.transitionType;if(o===q.SET||o===q.NOT_SET){let l=a;this.sets.set(l.set,!0)}}}return t}case 2:{let[t,i]=e;this.data.push(t);for(let n of this.atn.states)if(n!==null&&n.constructor.stateType!==W.RULE_STOP)for(let a of n.transitions){if(this.atn.states[a.target.stateNumber]===null)throw new Error("Cannot serialize a transition to a removed state.");let o=n.stateNumber,l=a.target.stateNumber,d=a.transitionType,f=0,b=0,E=0;switch(d){case q.RULE:{l=a.followState.stateNumber,f=a.target.stateNumber,b=a.ruleIndex,E=a.precedence;break}case q.PRECEDENCE:{f=a.precedence;break}case q.PREDICATE:{let A=a;f=A.ruleIndex,b=A.predIndex,E=A.isCtxDependent?1:0;break}case q.RANGE:{f=a.start,b=a.stop,f===U.EOF&&(f=0,E=1);break}case q.ATOM:{f=a.labelValue,f===U.EOF&&(f=0,E=1);break}case q.ACTION:{let A=a;f=A.ruleIndex,b=A.actionIndex,E=A.isCtxDependent?1:0;break}case q.SET:{f=i.get(a.set);break}case q.NOT_SET:{f=i.get(a.set);break}case q.WILDCARD:break;default:}this.data.push(o),this.data.push(l),this.data.push(d),this.data.push(f),this.data.push(b),this.data.push(E)}break}default:throw new Error("Invalid number of arguments")}}addSets(){y3.serializeSets(this.data,[...this.sets.keys()]);let e=new wr,t=0;for(let i of this.sets.keys())e.set(i,t++);return e}addModeStartStates(){let e=this.atn.modeToStartState.length;if(this.data.push(e),e>0)for(let t of this.atn.modeToStartState)this.data.push(t.stateNumber)}addRuleStatesAndLexerTokenTypes(){let e=this.atn.ruleToStartState.length;this.data.push(e);for(let t=0;t<e;t++){let i=this.atn.ruleToStartState[t];this.data.push(i.stateNumber),this.atn.grammarType===Q.LEXER&&this.data.push(this.atn.ruleToTokenType[t])}}addPrecedenceStates(){this.data.push(this.precedenceStates.length);for(let e of this.precedenceStates)this.data.push(e)}addNonGreedyStates(){this.data.push(this.nonGreedyStates.length);for(let e of this.nonGreedyStates)this.data.push(e)}},qn=class C3{static{v(this,"DFAState")}stateNumber=-1;configs;edges=[];isAcceptState=!1;prediction=-1;lexerActionExecutor=null;requiresFullContext=!1;predicates=null;constructor(e){e&&(this.configs=e)}static fromState(e){let t=new C3;return t.stateNumber=e,t}static fromConfigs(e){return new C3(e)}static hashCode(e){return e.configs.hashCode()}static equals(e,t){return e.configs.equals(t.configs)}getAltSet(){let e=new Set;for(let t of this.configs)e.add(t.alt);return e.size===0?null:e}toString(){let e="";return e+=this.stateNumber,e+=":",e+=this.configs?this.configs.toString():"",this.isAcceptState&&(e+="=>",this.predicates?e+=_n(this.predicates):e+=this.prediction),e.toString()}},br=class{static{v(this,"ATNSimulator")}static ERROR=qn.fromState(2147483647);atn;sharedContextCache;constructor(r,e){return this.atn=r,this.sharedContextCache=e,this}getCachedContext(r){if(!this.sharedContextCache)return r;let e=new wr(Ii.instance);return uR(r,this.sharedContextCache,e)}},I9=class ER{static{v(this,"CodePointTransitions")}static createWithCodePoint(e,t){return ER.createWithCodePointRange(e,t,t)}static createWithCodePointRange(e,t,i){return t===i?new ea(e,t):new g3(e,t,i)}},r7=class{static{v(this,"DecisionInfo")}decision=0;invocations=0;timeInPrediction=0;sllTotalLook=0;sllMinLook=0;sllMaxLook=0;sllMaxLookEvent;llTotalLook=0;llMinLook=0;llMaxLook=0;llMaxLookEvent;contextSensitivities;errors;ambiguities;predicateEvals;sllATNTransitions=0;sllDFATransitions=0;llFallback=0;llATNTransitions=0;llDFATransitions=0;constructor(r){this.decision=r,this.contextSensitivities=[],this.errors=[],this.ambiguities=[],this.predicateEvals=[]}toString(){return"{decision="+this.decision+", contextSensitivities="+this.contextSensitivities.length+", errors="+this.errors.length+", ambiguities="+this.ambiguities.length+", sllLookahead="+this.sllTotalLook+", sllATNTransitions="+this.sllATNTransitions+", sllDFATransitions="+this.sllDFATransitions+", llFallback="+this.llFallback+", llLookahead="+this.llTotalLook+", llATNTransitions="+this.llATNTransitions+"}"}},xr=class Xs extends We{static{v(this,"LexerATNConfig")}lexerActionExecutor;passedThroughNonGreedyDecision;constructor(e,t,i,n){return super(e,t,i??e.context,i?Re.NONE:e.semanticContext),this.lexerActionExecutor=i?n:e.lexerActionExecutor??null,this.passedThroughNonGreedyDecision=Xs.checkNonGreedyDecision(e,this.state),this}static createWithExecutor(e,t,i){return new Xs(e,t,e.context,i)}static createWithConfig(e,t,i){return new Xs(t,e,i??null,t.lexerActionExecutor)}static createWithContext(e,t,i){return new Xs({alt:t},e,i,null)}static checkNonGreedyDecision(e,t){return e.passedThroughNonGreedyDecision||"nonGreedy"in t&&t.nonGreedy}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize(7);e=k.update(e,this.state.stateNumber),e=k.update(e,this.alt),e=k.updateFromComparable(e,this.context),e=k.updateFromComparable(e,this.semanticContext),e=k.update(e,this.passedThroughNonGreedyDecision?1:0),e=k.updateFromComparable(e,this.lexerActionExecutor),e=k.finish(e,6),this.cachedHashCode=e}return this.cachedHashCode}equals(e){return this===e?!0:this.passedThroughNonGreedyDecision===e.passedThroughNonGreedyDecision&&(this.lexerActionExecutor&&e.lexerActionExecutor?this.lexerActionExecutor.equals(e.lexerActionExecutor):!e.lexerActionExecutor)&&super.equals(e)}},Wn=class{static{v(this,"BaseErrorListener")}syntaxError(r,e,t,i,n,a){}reportAmbiguity(r,e,t,i,n,a,o){}reportAttemptingFullContext(r,e,t,i,n,a){}reportContextSensitivity(r,e,t,i,n,a){}},i7=class LR extends Wn{static{v(this,"ConsoleErrorListener")}static instance=new LR;syntaxError(e,t,i,n,a,o){console.error("line "+i+":"+n+" "+a)}},n7=class extends Wn{constructor(r){return super(),this.delegates=r,this}static{v(this,"ProxyErrorListener")}syntaxError(r,e,t,i,n,a){this.delegates.forEach(o=>{o.syntaxError(r,e,t,i,n,a)})}reportAmbiguity(r,e,t,i,n,a,o){this.delegates.forEach(l=>{l.reportAmbiguity(r,e,t,i,n,a,o)})}reportAttemptingFullContext(r,e,t,i,n,a){this.delegates.forEach(o=>{o.reportAttemptingFullContext(r,e,t,i,n,a)})}reportContextSensitivity(r,e,t,i,n,a){this.delegates.forEach(o=>{o.reportContextSensitivity(r,e,t,i,n,a)})}},SR=class Zs{static{v(this,"Recognizer")}static EOF=-1;static tokenTypeMapCache=new Map;static ruleIndexMapCache=new Map;interpreter;listeners=[i7.instance];stateNumber=-1;checkVersion(e){let t="4.13.1";t!==e&&console.error("ANTLR runtime and generated code versions disagree: "+t+"!="+e)}addErrorListener(e){this.listeners.push(e)}removeErrorListeners(){this.listeners=[]}removeErrorListener(e){for(let t=0;t<this.listeners.length;t++)if(this.listeners[t]===e){this.listeners.splice(t,1);return}}getErrorListeners(){return this.listeners}getTokenTypeMap(){let e=this.vocabulary,t=Zs.tokenTypeMapCache.get(e);if(!t){t=new Map;for(let i=0;i<=this.atn.maxTokenType;i++){let n=e.getLiteralName(i);n&&t.set(n,i);let a=e.getSymbolicName(i);a&&t.set(a,i)}t.set("EOF",U.EOF),Zs.tokenTypeMapCache.set(e,t)}return t}getRuleIndexMap(){let e=this.ruleNames,t=Zs.ruleIndexMapCache.get(e);return t||(t=new Map,e.forEach((i,n)=>t.set(i,n)),Zs.ruleIndexMapCache.set(e,t)),t}getTokenType(e){let t=this.getTokenTypeMap().get(e);return t||U.INVALID_TYPE}getErrorHeader(e){let t=e.offendingToken?.line,i=e.offendingToken?.column;return"line "+t+":"+i}get errorListenerDispatch(){return new n7(this.listeners)}sempred(e,t,i){return!0}precpred(e,t){return!0}action(e,t,i){}get atn(){return this.interpreter.atn}get state(){return this.stateNumber}set state(e){this.stateNumber=e}getParseInfo(){}},PR=class TR{static{v(this,"CommonTokenFactory")}static DEFAULT=new TR;copyText=!1;constructor(e){this.copyText=e??!1}create(e,t,i,n,a,o,l,d){let f=wu.fromSource(e,t,n,a,o);return f.line=l,f.column=d,i?f.text=i:this.copyText&&e[1]!==null&&(f.text=e[1].getTextFromRange(a,o)),f}},c=class AR extends Error{static{v(this,"RecognitionException")}ctx;offendingToken=null;offendingState=-1;recognizer;input;constructor(e){super(e.message),Error.captureStackTrace&&Error.captureStackTrace(this,AR),this.message=e.message,this.recognizer=e.recognizer,this.input=e.input,this.ctx=e.ctx,this.recognizer!==null&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return this.recognizer!==null&&this.ctx!==null?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}},Du=class extends c{static{v(this,"LexerNoViableAltException")}startIndex;deadEndConfigs;constructor(r,e,t,i){super({message:"",recognizer:r,input:e,ctx:null}),this.startIndex=t,this.deadEndConfigs=i}toString(){let r="";return this.input&&this.startIndex>=0&&this.startIndex<this.input.size&&(r=this.input.getTextFromRange(this.startIndex,this.startIndex)),`LexerNoViableAltException(${r})`}},gr=class ti extends SR{static{v(this,"Lexer")}static DEFAULT_MODE=0;static MORE=-2;static SKIP=-3;static DEFAULT_TOKEN_CHANNEL=U.DEFAULT_CHANNEL;static HIDDEN=U.HIDDEN_CHANNEL;options={minDFAEdge:0,maxDFAEdge:256,minCodePoint:0,maxCodePoint:1114111};tokenStartCharIndex=-1;channel=0;type=0;mode=ti.DEFAULT_MODE;currentTokenColumn=0;currentTokenStartLine=0;input;token=null;hitEOF=!1;factory;#e=[];#t;constructor(e,t){super(),this.options={...this.options,...t},this.input=e,this.factory=PR.DEFAULT}reset(e=!0){e&&this.input.seek(0),this.token=null,this.type=U.INVALID_TYPE,this.channel=U.DEFAULT_CHANNEL,this.tokenStartCharIndex=-1,this.currentTokenColumn=-1,this.currentTokenStartLine=-1,this.#t=void 0,this.hitEOF=!1,this.mode=ti.DEFAULT_MODE,this.#e=[],this.interpreter.reset()}nextToken(){if(this.input===null)throw new Error("nextToken requires a non-null input stream.");let e=this.input.mark();try{for(;;){if(this.hitEOF)return this.emitEOF(),this.token;this.token=null,this.channel=U.DEFAULT_CHANNEL,this.tokenStartCharIndex=this.input.index,this.currentTokenColumn=this.interpreter.column,this.currentTokenStartLine=this.interpreter.line,this.#t=void 0;let t=!1;for(;;){this.type=U.INVALID_TYPE;let i=ti.SKIP;try{i=this.interpreter.match(this.input,this.mode)}catch(n){if(n instanceof Du)this.notifyListeners(n),this.recover(n);else throw n}if(this.input.LA(1)===U.EOF&&(this.hitEOF=!0),this.type===U.INVALID_TYPE&&(this.type=i),this.type===ti.SKIP){t=!0;break}if(this.type!==ti.MORE)break}if(!t)return this.token===null&&this.emit(),this.token}}finally{this.input.release(e)}}skip(){this.type=ti.SKIP}more(){this.type=ti.MORE}pushMode(e){jn.debug&&console.log("pushMode "+e),this.#e.push(this.mode),this.mode=e}popMode(){if(this.#e.length===0)throw new Error("Empty Stack");return jn.debug&&console.log("popMode back to "+this.#e.slice(0,-1)),this.mode=this.#e.pop(),this.mode}get modeStack(){return this.#e}emitToken(e){this.token=e}emit(){let e=this.factory.create([this,this.input],this.type,this.#t,this.channel,this.tokenStartCharIndex,this.getCharIndex()-1,this.currentTokenStartLine,this.currentTokenColumn);return this.emitToken(e),e}emitEOF(){let e=this.factory.create([this,this.input],U.EOF,void 0,U.DEFAULT_CHANNEL,this.input.index,this.input.index-1,this.line,this.column);return this.emitToken(e),e}getCharIndex(){return this.input.index}getAllTokens(){let e=[],t=this.nextToken();for(;t.type!==U.EOF;)e.push(t),t=this.nextToken();return e}notifyListeners(e){let t=this.tokenStartCharIndex,i=this.input.index,n=this.input.getTextFromRange(t,i),a="token recognition error at: '"+this.getErrorDisplay(n)+"'";this.errorListenerDispatch.syntaxError(this,null,this.currentTokenStartLine,this.currentTokenColumn,a,e)}getErrorDisplay(e){return e}getErrorDisplayForChar(e){return e.charCodeAt(0)===U.EOF?"<EOF>":e===`
40
+ `?"\\n":e===" "?"\\t":e==="\r"?"\\r":e}getCharErrorDisplay(e){return"'"+this.getErrorDisplayForChar(e)+"'"}recover(e){this.input.LA(1)!==U.EOF&&(e instanceof Du?this.interpreter.consume(this.input):this.input.consume())}get inputStream(){return this.input}set inputStream(e){this.reset(!1),this.input=e}set tokenFactory(e){this.factory=e}get tokenFactory(){return this.factory}get sourceName(){return this.input.getSourceName()}get line(){return this.interpreter.line}set line(e){this.interpreter.line=e}get column(){return this.interpreter.column}set column(e){this.interpreter.column=e}get text(){return this.#t?this.#t:this.interpreter.getText(this.input)}set text(e){this.#t=e}},MR=class{static{v(this,"DFASerializer")}dfa;vocabulary;constructor(r,e){this.dfa=r,this.vocabulary=e}toString(){if(!this.dfa.s0)return"";let r="",e=this.dfa.getStates();for(let t of e){let i=0;i=t.edges.length;for(let n=0;n<i;n++){let a=t.edges[n];if(a&&a.stateNumber!==2147483647){r+=this.getStateString(t);let o=this.getEdgeLabel(n);r+="-",r+=o,r+="->",r+=this.getStateString(a),r+=`
41
+ `}}}return r}getEdgeLabel(r){return`${this.vocabulary.getDisplayName(r-1)}`}getStateString(r){let e=r.stateNumber,t=(r.isAcceptState?":":"")+"s"+e+(r.requiresFullContext?"^":"");return r.isAcceptState?r.predicates!==null?`${t}=>${r.predicates.toString()}`:`${t}=>${r.prediction}`:`${t}`}},s7=class extends MR{static{v(this,"LexerDFASerializer")}constructor(r){super(r,or.EMPTY_VOCABULARY)}getEdgeLabel=v(r=>"'"+String.fromCharCode(r)+"'","getEdgeLabel")},Dr=class{static{v(this,"DFA")}s0;decision;atnStartState;isPrecedenceDfa;states=new Map;constructor(r,e){this.atnStartState=r,this.decision=e??0;let t=!1;r instanceof ri&&r.precedenceRuleDecision&&(t=!0,this.s0=qn.fromState(-1)),this.isPrecedenceDfa=t}[Symbol.iterator]=()=>this.states.values()[Symbol.iterator]();getPrecedenceStartState=v(r=>{if(!this.isPrecedenceDfa)throw new Error("Only precedence DFAs may contain a precedence start state.");if(!(!this.s0||!this.s0.edges||r<0||r>=this.s0.edges.length))return this.s0.edges[r]},"getPrecedenceStartState");setPrecedenceStartState=v((r,e)=>{if(!this.isPrecedenceDfa)throw new Error("Only precedence DFAs may contain a precedence start state.");r<0||!this.s0||(this.s0.edges[r]=e)},"setPrecedenceStartState");getStates(){let r=[...this.states.values()];return r.sort((e,t)=>e.stateNumber-t.stateNumber),r}getState(r){return this.states.get(r.configs.hashCode())??null}getStateForConfigs(r){return this.states.get(r.hashCode())??null}addState(r){let e=r.configs.hashCode();this.states.has(e)||(this.states.set(e,r),r.stateNumber=this.states.size-1)}toString(r){return r?this.s0?new MR(this,r).toString()??"":"":this.toString(or.EMPTY_VOCABULARY)}toLexerString(){return this.s0?new s7(this).toString()??"":""}get length(){return this.states.size}},x3=class NR{static{v(this,"LexerIndexedCustomAction")}offset;action;actionType;isPositionDependent=!0;cachedHashCode;constructor(e,t){this.actionType=t.actionType,this.offset=e,this.action=t}execute(e){this.action.execute(e)}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize();e=k.update(e,this.offset),e=k.updateFromComparable(e,this.action),this.cachedHashCode=k.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof NR?this.offset===e.offset&&this.action===e.action:!1}},a7=class Nu{static{v(this,"LexerActionExecutor")}lexerActions;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){return this.actionType=-1,this.lexerActions=e??[],this}static append(e,t){if(e===null)return new Nu([t]);let i=e.lexerActions.concat([t]);return new Nu(i)}fixOffsetBeforeMatch(e){let t=null;for(let i=0;i<this.lexerActions.length;i++)this.lexerActions[i].isPositionDependent&&!(this.lexerActions[i]instanceof x3)&&(t===null&&(t=this.lexerActions.concat([])),t[i]=new x3(e,this.lexerActions[i]));return t===null?this:new Nu(t)}execute(e,t,i){if(t===void 0||i===void 0)return;let n=!1,a=t.index;try{for(let o of this.lexerActions){let l=o;if(o instanceof x3){let d=o.offset;t.seek(i+d),l=o.action,n=i+d!==a}else o.isPositionDependent&&(t.seek(a),n=!1);l.execute(e)}}finally{n&&t.seek(a)}}hashCode(){if(this.cachedHashCode===void 0){let e=k.initialize(7);for(let t of this.lexerActions)e=k.update(e,t.hashCode());this.cachedHashCode=k.finish(e,this.lexerActions.length)}return this.cachedHashCode}equals(e){return this===e?!0:this.cachedHashCode!==e.cachedHashCode||this.lexerActions.length!==e.lexerActions.length?!1:this.lexerActions.every((t,i)=>t.equals(e.lexerActions[i]))}},o7=class UR extends qt{static{v(this,"OrderedHashSet")}elements=[];getOrAdd(e){let t=this.size,i=super.getOrAdd(e);return this.size>t&&this.elements.push(e),i}equals(e){return e instanceof UR?super.equals(e):!1}clear(){super.clear(),this.elements=[]}*[Symbol.iterator](){yield*this.elements}toArray(){return this.elements.slice(0)}},Wb=class extends Ur{static{v(this,"OrderedATNConfigSet")}constructor(){super(),this.configLookup=new o7}},jn=class Vt extends br{static{v(this,"LexerATNSimulator")}static debug=!1;decisionToDFA;recognizer=null;startIndex=-1;line=1;column=0;mode=gr.DEFAULT_MODE;prevAccept;options;lexerATNConfigFactory;constructor(e,t,i,n){super(t,n),this.decisionToDFA=i,this.recognizer=e,e?this.options=e.options:this.options={minDFAEdge:0,maxDFAEdge:256,minCodePoint:0,maxCodePoint:1114111}}match(e,t){this.mode=t;let i=e.mark();try{this.startIndex=e.index,this.prevAccept=void 0;let n=this.decisionToDFA[t];return n.s0?this.execATN(e,n.s0):this.matchATN(e)}finally{e.release(i)}}reset(){this.prevAccept=void 0,this.startIndex=-1,this.line=1,this.column=0,this.mode=gr.DEFAULT_MODE}clearDFA(){for(let e=0;e<this.decisionToDFA.length;e++)this.decisionToDFA[e]=new Dr(this.atn.getDecisionState(e),e)}getDFA(e){return this.decisionToDFA[e]}getText(e){return e.getTextFromRange(this.startIndex,e.index-1)}consume(e){e.LA(1)===10?(this.line+=1,this.column=0):this.column+=1,e.consume()}getTokenName(e){return e===U.EOF?"EOF":"'"+String.fromCharCode(e)+"'"}matchATN(e){let t=this.atn.modeToStartState[this.mode];Vt.debug&&console.log("matchATN mode "+this.mode+" start: "+t);let i=this.mode,n=this.computeStartState(e,t),a=n.hasSemanticContext;n.hasSemanticContext=!1;let o=this.addDFAState(n);a||(this.decisionToDFA[this.mode].s0=o);let l=this.execATN(e,o);return Vt.debug&&console.log("DFA after matchATN: "+this.decisionToDFA[i].toLexerString()),l}execATN(e,t){Vt.debug&&console.log("start state closure="+t.configs),t.isAcceptState&&this.captureSimState(e,t);let i=e.LA(1);for(;;){Vt.debug&&console.log("execATN loop starting closure: "+t.configs);let n=this.getExistingTargetState(t,i);if(n||(n=this.computeTargetState(e,t,i)),n===br.ERROR||(i!==U.EOF&&this.consume(e),n.isAcceptState&&(this.captureSimState(e,n),i===U.EOF)))break;i=e.LA(1),t=n}return this.failOrAccept(e,t.configs,i)}getExistingTargetState(e,t){if(t>=this.options.minDFAEdge&&t<=this.options.maxDFAEdge){let i=e.edges[t-this.options.minDFAEdge];return Vt.debug&&i&&console.log("reuse state "+e.stateNumber+" edge to "+i.stateNumber),i}}computeTargetState(e,t,i){let n=new Wb;return this.getReachableConfigSet(e,t.configs,n,i),n.length===0?(n.hasSemanticContext||this.addDFAEdge(t,i,br.ERROR),br.ERROR):this.addDFAEdge(t,i,null,n)}failOrAccept(e,t,i){if(this.prevAccept?.dfaState){let{dfaState:n,index:a,line:o,column:l}=this.prevAccept;return this.accept(e,n.lexerActionExecutor,this.startIndex,a,o,l),n.prediction}if(i===U.EOF&&e.index===this.startIndex)return U.EOF;throw new Du(this.recognizer,e,this.startIndex,t)}getReachableConfigSet(e,t,i,n){let a=Q.INVALID_ALT_NUMBER;for(let o of t){let l=o.alt===a;if(!(l&&o.passedThroughNonGreedyDecision)){Vt.debug&&console.log(`testing %s at %s
42
+ `,this.getTokenName(n),o.toString(this.recognizer,!0));for(let d of o.state.transitions){let f=this.getReachableTarget(d,n);if(f){let b=o.lexerActionExecutor;b&&(b=b.fixOffsetBeforeMatch(e.index-this.startIndex));let E=n===U.EOF,A=xr.createWithExecutor(o,f,b);this.closure(e,A,i,l,!0,E)&&(a=o.alt)}}}}}accept(e,t,i,n,a,o){Vt.debug&&console.log(`ACTION %s
43
+ `,t),e.seek(n),this.line=a,this.column=o,t&&this.recognizer&&t.execute(this.recognizer,e,i)}getReachableTarget(e,t){if(e.matches(t,this.options.minCodePoint,this.options.maxCodePoint))return e.target}computeStartState(e,t){let i=ze.instance,n=new Wb;for(let a=0;a<t.transitions.length;a++){let o=t.transitions[a].target,l=xr.createWithContext(o,a+1,i);this.closure(e,l,n,!1,!1,!1)}return n}closure(e,t,i,n,a,o){let l=null;if(Vt.debug&&console.log("closure("+t.toString(this.recognizer,!0)+")"),t.state.constructor.stateType===W.RULE_STOP){if(Vt.debug&&(this.recognizer!==null?console.log(`closure at %s rule stop %s
44
+ `,this.recognizer.ruleNames[t.state.ruleIndex],t):console.log(`closure at rule stop %s
45
+ `,t)),!t.context||t.context.hasEmptyPath()){if(!t.context||t.context.isEmpty())return i.add(t),!0;i.add(xr.createWithConfig(t.state,t,ze.instance)),n=!0}if(t.context&&!t.context.isEmpty()){for(let d=0;d<t.context.length;d++)if(t.context.getReturnState(d)!==nt.EMPTY_RETURN_STATE){let f=t.context.getParent(d),b=this.atn.states[t.context.getReturnState(d)];l=xr.createWithConfig(b,t,f),n=this.closure(e,l,i,n,a,o)}}return n}t.state.epsilonOnlyTransitions||(!n||!t.passedThroughNonGreedyDecision)&&i.add(t);for(let d of t.state.transitions)l=this.getEpsilonTarget(e,t,d,i,a,o),l&&(n=this.closure(e,l,i,n,a,o));return n}getEpsilonTarget(e,t,i,n,a,o){this.lexerATNConfigFactory||this.setupATNFactoryLookup();let l=this.lexerATNConfigFactory[i.transitionType];return l?l(e,t,i,n,a,o):null}setupATNFactoryLookup(){this.lexerATNConfigFactory=[],this.lexerATNConfigFactory[q.RULE]=(t,i,n)=>{let a=Oi(i.context??void 0,n.followState.stateNumber);return xr.createWithConfig(n.target,i,a)},this.lexerATNConfigFactory[q.PRECEDENCE]=()=>{throw new Error("Precedence predicates are not supported in lexers.")},this.lexerATNConfigFactory[q.PREDICATE]=(t,i,n,a,o)=>{let l=n;return Vt.debug&&console.log("EVAL rule "+l.ruleIndex+":"+l.predIndex),a.hasSemanticContext=!0,this.evaluatePredicate(t,l.ruleIndex,l.predIndex,o)?xr.createWithConfig(n.target,i):null},this.lexerATNConfigFactory[q.ACTION]=(t,i,n)=>{if(i.context===null||i.context.hasEmptyPath()){let a=a7.append(i.lexerActionExecutor,this.atn.lexerActions[n.actionIndex]);return xr.createWithExecutor(i,n.target,a)}else return xr.createWithConfig(n.target,i)},this.lexerATNConfigFactory[q.EPSILON]=(t,i,n)=>xr.createWithConfig(n.target,i);let e=v((t,i,n,a,o,l)=>l&&n.matches(U.EOF,this.options.minCodePoint,this.options.maxCodePoint)?xr.createWithConfig(n.target,i):null,"simple");this.lexerATNConfigFactory[q.ATOM]=e,this.lexerATNConfigFactory[q.RANGE]=e,this.lexerATNConfigFactory[q.SET]=e}evaluatePredicate(e,t,i,n){if(!this.recognizer)return!0;if(!n)return this.recognizer.sempred(null,t,i);let a=this.column,o=this.line,l=e.index,d=e.mark();try{return this.consume(e),this.recognizer.sempred(null,t,i)}finally{this.column=a,this.line=o,e.seek(l),e.release(d)}}captureSimState(e,t){this.prevAccept={index:e.index,line:this.line,column:this.column,dfaState:t}}addDFAEdge(e,t,i,n){if(!i&&n){let a=n.hasSemanticContext;if(n.hasSemanticContext=!1,i=this.addDFAState(n),a)return i}return t<this.options.minDFAEdge||t>this.options.maxDFAEdge||(Vt.debug&&console.log("EDGE "+e+" -> "+i+" upon "+t),e.edges[t-this.options.minDFAEdge]=i),i}addDFAState(e){let t=this.decisionToDFA[this.mode],i=t.getStateForConfigs(e);if(i)return i;let n=qn.fromConfigs(e),a=e.firstStopState;return a&&(n.isAcceptState=!0,n.lexerActionExecutor=a.lexerActionExecutor,n.prediction=this.atn.ruleToTokenType[a.state.ruleIndex]),e.setReadonly(!0),t.addState(n),n}},l7=class{static{v(this,"ParseInfo")}atnSimulator;constructor(r){this.atnSimulator=r}getDecisionInfo(){return this.atnSimulator.getDecisionInfo()}getLLDecisions(){let r=this.atnSimulator.getDecisionInfo(),e=new Array;for(let t=0;t<r.length;t++)r[t].llFallback>0&&e.push(t);return e}getTotalTimeInPrediction(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.timeInPrediction;return e}getTotalSLLLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.sllTotalLook;return e}getTotalLLLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.llTotalLook;return e}getTotalSLLATNLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.sllATNTransitions;return e}getTotalLLATNLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.llATNTransitions;return e}getTotalATNLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.sllATNTransitions,e+=t.llATNTransitions;return e}getDFASize(r){if(r===void 0){let e=0,t=this.atnSimulator.decisionToDFA;for(let i=0;i<t.length;i++)e+=this.getDFASize(i);return e}else return this.atnSimulator.decisionToDFA[r].length}},V=class extends c{static{v(this,"NoViableAltException")}deadEndConfigs=null;startToken;constructor(r,e=null,t=null,i=null,n=null,a=null){a=a??r.context,i=i??r.getCurrentToken(),t=t??r.getCurrentToken(),e=e??r.inputStream,super({message:"",recognizer:r,input:e,ctx:a}),this.deadEndConfigs=n,this.startToken=t,this.offendingToken=i}},Kb=class{static{v(this,"DoubleDict")}cacheMap;constructor(){this.cacheMap=new wr}get(r,e){let t=this.cacheMap.get(r)??null;return t===null?null:t.get(e)??null}set(r,e,t){let i=this.cacheMap.get(r);i||(i=new wr,this.cacheMap.set(r,i)),i.set(e,t)}},u7=class wR{static{v(this,"SubsetEqualityComparer")}static instance=new wR;hashCode(e){let t=k.initialize(7);return t=k.update(t,e.state.stateNumber),t=k.updateFromComparable(t,e.context),t=k.finish(t,2),t}equals(e,t){return e.state.stateNumber===t.state.stateNumber&&(e.context?.equals(t.context)??!0)}},Ke=class Nr{static{v(this,"PredictionMode")}static SLL=0;static LL=1;static LL_EXACT_AMBIG_DETECTION=2;static hasSLLConflictTerminatingPrediction(e,t){if(Nr.allConfigsInRuleStopStates(t))return!0;if(e===Nr.SLL&&t.hasSemanticContext){let n=new Ur;for(let a of t)a=We.duplicate(a,Re.NONE),n.add(a);t=n}let i=Nr.getConflictingAltSubsets(t);return Nr.hasConflictingAltSet(i)&&!Nr.hasStateAssociatedWithOneAlt(t)}static hasConfigInRuleStopState(e){for(let t of e)if(t.state instanceof sr)return!0;return!1}static allConfigsInRuleStopStates(e){for(let t of e)if(!(t.state instanceof sr))return!1;return!0}static resolvesToJustOneViableAlt(e){return Nr.getSingleViableAlt(e)}static allSubsetsConflict(e){return!Nr.hasNonConflictingAltSet(e)}static hasNonConflictingAltSet(e){for(let t of e)if(t.length===1)return!0;return!1}static hasConflictingAltSet(e){for(let t of e)if(t.length>1)return!0;return!1}static allSubsetsEqual(e){let t=null;for(let i of e)if(t===null)t=i;else if(i!==t)return!1;return!0}static getUniqueAlt(e){let t=Nr.getAlts(e);return t.length===1?t.nextSetBit(0):Q.INVALID_ALT_NUMBER}static getAlts(e){let t=new Rr;return e.forEach(i=>{t.or(i)}),t}static getConflictingAltSubsets(e){let t=new wr(u7.instance);for(let i of e){let n=t.get(i);n||(n=new Rr,t.set(i,n)),n.set(i.alt)}return Array.from(t.values())}static getStateToAltMap(e){let t=new wr(Ii.instance);for(let i of e){let n=t.get(i.state);n||(n=new Rr,t.set(i.state,n)),n.set(i.alt)}return t}static hasStateAssociatedWithOneAlt(e){let t={};for(let i of e){let n=i.state.stateNumber;t[n]||(t[n]=0),t[n]++}return Object.values(t).some(i=>i===1)}static getSingleViableAlt(e){let t=null;for(let i of e){let n=i.nextSetBit(0);if(t===null)t=n;else if(t!==n)return Q.INVALID_ALT_NUMBER}return t??0}},na=class Y extends br{static{v(this,"ParserATNSimulator")}static traceATNSimulator=!1;static debug;static debugAdd=!1;static debugClosure=!1;static dfaDebug=!1;static retryDebug=!1;predictionMode;decisionToDFA;parser;mergeCache=new Kb;predictionState;constructor(e,t,i,n){super(t,n),this.parser=e,this.decisionToDFA=i}static getUniqueAlt(e){let t=Q.INVALID_ALT_NUMBER;for(let i of e)if(t===Q.INVALID_ALT_NUMBER)t=i.alt;else if(i.alt!==t)return Q.INVALID_ALT_NUMBER;return t}reset(){}clearDFA(){for(let e=0;e<this.decisionToDFA.length;e++)this.decisionToDFA[e]=new Dr(this.atn.getDecisionState(e),e)}adaptivePredict(e,t,i){(Y.debug||Y.traceATNSimulator)&&console.log("adaptivePredict decision "+t+" exec LA(1)=="+this.getLookaheadName(e)+" line "+e.LT(1).line+":"+e.LT(1).column);let n=this.decisionToDFA[t];this.predictionState={input:e,startIndex:e.index,outerContext:i??void 0,dfa:n};let a=e.mark(),o=e.index;try{let l;if(n.isPrecedenceDfa?l=n.getPrecedenceStartState(this.parser.getPrecedence()):l=n.s0,!l){i||(i=u.empty),Y.debug&&console.log("predictATN decision "+n.decision+" exec LA(1)=="+this.getLookaheadName(e)+", outerContext="+i.toString(this.parser.ruleNames));let b=this.computeStartState(n.atnStartState,u.empty,!1);n.isPrecedenceDfa?(b=this.applyPrecedenceFilter(b),l=this.addDFAState(n,qn.fromConfigs(b)),n.setPrecedenceStartState(this.parser.getPrecedence(),l)):(l=this.addDFAState(n,qn.fromConfigs(b)),n.s0=l)}let d=this.execATN(n,l,e,o,i);return Y.debug&&console.log("DFA after predictATN: "+n.toString(this.parser.vocabulary)),d}finally{this.predictionState.dfa=void 0,this.mergeCache=new Kb,e.seek(o),e.release(a)}}execATN(e,t,i,n,a){(Y.debug||Y.traceATNSimulator)&&console.log("execATN decision "+e.decision+", DFA state "+t+", LA(1)=="+this.getLookaheadName(i)+" line "+i.LT(1).line+":"+i.LT(1).column);let o,l=t,d=i.LA(1);for(;;){let f=this.getExistingTargetState(l,d);if(f||(f=this.computeTargetState(e,l,d)),f===br.ERROR){let b=this.noViableAlt(i,a,l.configs,n);if(i.seek(n),o=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(l.configs,a),o!==Q.INVALID_ALT_NUMBER)return o;throw b}if(f.requiresFullContext&&this.predictionMode!==Ke.SLL){let b=null;if(f.predicates!==null){Y.debug&&console.log("DFA state has preds in DFA sim LL failover");let D=i.index;if(D!==n&&i.seek(n),b=this.evalSemanticContext(f.predicates,a,!0),b.length===1)return Y.debug&&console.log("Full LL avoided"),b.nextSetBit(0);D!==n&&i.seek(D)}Y.dfaDebug&&console.log("ctx sensitive state "+a+" in "+f);let A=this.computeStartState(e.atnStartState,a,!0);return this.reportAttemptingFullContext(e,b,f.configs,n,i.index),o=this.execATNWithFullContext(e,f,A,i,n,a),o}if(f.isAcceptState){if(f.predicates===null)return f.prediction;let b=i.index;i.seek(n);let E=this.evalSemanticContext(f.predicates,a,!0);if(E.length===0)throw this.noViableAlt(i,a,f.configs,n);return E.length===1||this.reportAmbiguity(e,f,n,b,!1,E,f.configs),E.nextSetBit(0)}l=f,d!==U.EOF&&(i.consume(),d=i.LA(1))}}getExistingTargetState(e,t){return e.edges[t+1]}computeTargetState(e,t,i){let n=this.computeReachSet(t.configs,i,!1);if(n===null)return this.addDFAEdge(e,t,i,br.ERROR),br.ERROR;let a=qn.fromConfigs(n),o=Y.getUniqueAlt(n);if(Y.debug){let l=Ke.getConflictingAltSubsets(n);console.log("SLL altSubSets="+_n(l)+", configs="+n+", predict="+o+", allSubsetsConflict="+Ke.allSubsetsConflict(l)+", conflictingAlts="+this.getConflictingAlts(n))}return o!==Q.INVALID_ALT_NUMBER?(a.isAcceptState=!0,a.configs.uniqueAlt=o,a.prediction=o):Ke.hasSLLConflictTerminatingPrediction(this.predictionMode,n)&&(a.configs.conflictingAlts=this.getConflictingAlts(n),a.requiresFullContext=!0,a.isAcceptState=!0,a.prediction=a.configs.conflictingAlts.nextSetBit(0)),a.isAcceptState&&a.configs.hasSemanticContext&&(this.predicateDFAState(a,this.atn.getDecisionState(e.decision)),a.predicates!==null&&(a.prediction=Q.INVALID_ALT_NUMBER)),a=this.addDFAEdge(e,t,i,a),a}getRuleName(e){return this.parser!==null&&e>=0?this.parser.ruleNames[e]:"<rule "+e+">"}getTokenName(e){if(e===U.EOF)return"EOF";let i=(this.parser?.vocabulary??or.EMPTY_VOCABULARY).getDisplayName(e);return i===e.toString()?i:i+"<"+e+">"}getLookaheadName(e){return this.getTokenName(e.LA(1))}dumpDeadEndConfigs(e){console.log("dead end configs: ");let t=e.deadEndConfigs;for(let i of t){let n="no edges";if(i.state.transitions.length>0){let a=i.state.transitions[0];a instanceof ea?n="Atom "+this.getTokenName(a.labelValue):a instanceof E3&&(n=(a instanceof L3?"~":"")+"Set "+a.label)}console.error(i.toString(this.parser,!0)+":"+n)}}predicateDFAState(e,t){let i=t.transitions.length,n=this.getConflictingAltsOrUniqueAlt(e.configs),a=this.getPredsForAmbigAlts(n,e.configs,i);a!==null?(e.predicates=this.getPredicatePredictions(n,a),e.prediction=Q.INVALID_ALT_NUMBER):e.prediction=n.nextSetBit(0)}execATNWithFullContext(e,t,i,n,a,o){(Y.debug||Y.traceATNSimulator)&&console.log("execATNWithFullContext "+i);let l=!0,d=!1,f,b=i;n.seek(a);let E=n.LA(1),A=-1;for(;;){if(f=this.computeReachSet(b,E,l),f===null){let z=this.noViableAlt(n,o,b,a);n.seek(a);let pe=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(b,o);if(pe!==Q.INVALID_ALT_NUMBER)return pe;throw z}let D=Ke.getConflictingAltSubsets(f);if(Y.debug&&console.log("LL altSubSets="+D+", predict="+Ke.getUniqueAlt(D)+", resolvesToJustOneViableAlt="+Ke.resolvesToJustOneViableAlt(D)),f.uniqueAlt=Y.getUniqueAlt(f),f.uniqueAlt!==Q.INVALID_ALT_NUMBER){A=f.uniqueAlt;break}else if(this.predictionMode!==Ke.LL_EXACT_AMBIG_DETECTION){if(A=Ke.resolvesToJustOneViableAlt(D),A!==Q.INVALID_ALT_NUMBER)break}else if(Ke.allSubsetsConflict(D)&&Ke.allSubsetsEqual(D)){d=!0,A=Ke.getSingleViableAlt(D);break}b=f,E!==U.EOF&&(n.consume(),E=n.LA(1))}return f.uniqueAlt!==Q.INVALID_ALT_NUMBER?(this.reportContextSensitivity(e,A,f,a,n.index),A):(this.reportAmbiguity(e,t,a,n.index,d,f.getAlts(),f),A)}computeReachSet(e,t,i){Y.debug&&console.log("in computeReachSet, starting closure: "+e);let n=new Ur(i),a=null;for(let l of e){if(Y.debug&&console.log("testing "+this.getTokenName(t)+" at "+l),l.state instanceof sr){(i||t===U.EOF)&&(a===null&&(a=[]),a.push(l));continue}for(let d of l.state.transitions){let f=this.getReachableTarget(d,t);if(f!==null){let b=We.createWithConfig(f,l);n.add(b,this.mergeCache),Y.debugAdd&&console.log("added "+b+" to intermediate")}}}let o=null;if(a===null&&t!==U.EOF&&(n.length===1||Y.getUniqueAlt(n)!==Q.INVALID_ALT_NUMBER)&&(o=n),o===null){o=new Ur(i);let l=new qt,d=t===U.EOF;for(let f of n)this.closure(f,o,l,!1,i,d)}if(t===U.EOF&&(o=this.removeAllConfigsNotInRuleStopState(o,o===n)),a!==null&&(!i||!Ke.hasConfigInRuleStopState(o)))for(let l of a)o.add(l,this.mergeCache);return Y.traceATNSimulator&&console.log("computeReachSet "+e+" -> "+o),o.length===0?null:o}removeAllConfigsNotInRuleStopState(e,t){if(Ke.allConfigsInRuleStopStates(e))return e;let i=new Ur(e.fullCtx);for(let n of e){if(n.state instanceof sr){i.add(n,this.mergeCache);continue}if(t&&n.state.epsilonOnlyTransitions&&this.atn.nextTokens(n.state).contains(U.EPSILON)){let o=this.atn.ruleToStopState[n.state.ruleIndex];i.add(We.createWithConfig(o,n),this.mergeCache)}}return i}computeStartState(e,t,i){let n=S3(this.atn,t),a=new Ur(i);Y.traceATNSimulator&&console.log("computeStartState from ATN state "+e+" initialContext="+n.toString(this.parser));for(let o=0;o<e.transitions.length;o++){let l=e.transitions[o].target,d=We.createWithContext(l,o+1,n),f=new qt;this.closure(d,a,f,!0,i,!1)}return a}applyPrecedenceFilter(e){let t=[],i=new Ur(e.fullCtx);for(let n of e){if(n.alt!==1)continue;let a=n.semanticContext.evalPrecedence(this.parser,this.predictionState.outerContext);a!==null&&(t[n.state.stateNumber]=n.context,a!==n.semanticContext?i.add(We.duplicate(n,a),this.mergeCache):i.add(n,this.mergeCache))}for(let n of e)if(n.alt!==1){if(!n.precedenceFilterSuppressed){let a=t[n.state.stateNumber]||null;if(a!==null&&a.equals(n.context))continue}i.add(n,this.mergeCache)}return i}getReachableTarget(e,t){return e.matches(t,0,this.atn.maxTokenType)?e.target:null}getPredsForAmbigAlts(e,t,i){let n=[];for(let o of t)e.get(o.alt)&&(n[o.alt]=Re.orContext(n[o.alt]??null,o.semanticContext));let a=0;for(let o=1;o<i+1;o++){let l=n[o]??null;l===null?n[o]=Re.NONE:l!==Re.NONE&&(a+=1)}return a===0&&(n=null),Y.debug&&console.log("getPredsForAmbigAlts result "+_n(n)),n}getPredicatePredictions(e,t){let i=[],n=!1;for(let a=1;a<t.length;a++){let o=t[a];e.get(a)&&i.push({pred:o,alt:a}),o!==Re.NONE&&(n=!0)}return n?i:null}getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(e,t){let i=this.splitAccordingToSemanticValidity(e,t),n=i[0],a=i[1],o=this.getAltThatFinishedDecisionEntryRule(n);return o!==Q.INVALID_ALT_NUMBER||a.length>0&&(o=this.getAltThatFinishedDecisionEntryRule(a),o!==Q.INVALID_ALT_NUMBER)?o:Q.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(e){let t=[];for(let i of e)(i.reachesIntoOuterContext||i.state instanceof sr&&i.context.hasEmptyPath())&&t.indexOf(i.alt)<0&&t.push(i.alt);return t.length===0?Q.INVALID_ALT_NUMBER:Math.min(...t)}splitAccordingToSemanticValidity(e,t){let i=new Ur(e.fullCtx),n=new Ur(e.fullCtx);for(let a of e)a.semanticContext!==Re.NONE?a.semanticContext.evaluate(this.parser,t)?i.add(a):n.add(a):i.add(a);return[i,n]}evalSemanticContext(e,t,i){let n=new Rr;for(let a of e){if(a.pred===Re.NONE){if(n.set(a.alt),!i)break;continue}let o=a.pred.evaluate(this.parser,t);if((Y.debug||Y.dfaDebug)&&console.log("eval pred "+a+"="+o),o&&(n.set(a.alt),!i))break}return n}closure(e,t,i,n,a,o){this.closureCheckingStopState(e,t,i,n,a,0,o)}closureCheckingStopState(e,t,i,n,a,o,l){if((Y.traceATNSimulator||Y.debugClosure)&&console.log("closure("+e.toString(this.parser,!0)+")"),e.state instanceof sr)if(e.context&&!e.context.isEmpty()){for(let d=0;d<e.context.length;d++){if(e.context.getReturnState(d)===nt.EMPTY_RETURN_STATE){if(a){t.add(We.createWithConfig(e.state,e,ze.instance),this.mergeCache);continue}else Y.debug&&console.log("FALLING off rule "+this.getRuleName(e.state.ruleIndex)),this.closure_(e,t,i,n,a,o,l);continue}let f=this.atn.states[e.context.getReturnState(d)],b=e.context.getParent(d),E=We.createWithContext(f,e.alt,b,e.semanticContext);E.reachesIntoOuterContext=e.reachesIntoOuterContext,this.closureCheckingStopState(E,t,i,n,a,o-1,l)}return}else if(a){t.add(e,this.mergeCache);return}else Y.debug&&console.log("FALLING off rule "+this.getRuleName(e.state.ruleIndex));this.closure_(e,t,i,n,a,o,l)}closure_(e,t,i,n,a,o,l){let d=e.state;d.epsilonOnlyTransitions||t.add(e,this.mergeCache);for(let f=0;f<d.transitions.length;f++){if(f===0&&this.canDropLoopEntryEdgeInLeftRecursiveRule(e))continue;let b=d.transitions[f],E=n&&!(b instanceof hR),A=this.getEpsilonTarget(e,b,E,o===0,a,l);if(A){let D=o;if(e.state.constructor.stateType===W.RULE_STOP){if(this.predictionState.dfa&&this.predictionState?.dfa.isPrecedenceDfa&&b.outermostPrecedenceReturn===this.predictionState?.dfa.atnStartState?.ruleIndex&&(A.precedenceFilterSuppressed=!0),A.reachesIntoOuterContext=!0,i.getOrAdd(A)!==A)continue;t.dipsIntoOuterContext=!0,D-=1,Y.debug&&console.log("dips into outer ctx: "+A)}else{if(!b.isEpsilon&&i.getOrAdd(A)!==A)continue;b instanceof R3&&D>=0&&(D+=1)}this.closureCheckingStopState(A,t,i,E,a,D,l)}}}canDropLoopEntryEdgeInLeftRecursiveRule(e){let t=e.state;if(t.constructor.stateType!==W.STAR_LOOP_ENTRY||!e.context||!t.precedenceRuleDecision||e.context.isEmpty()||e.context.hasEmptyPath())return!1;let i=e.context.length;for(let l=0;l<i;l++)if(this.atn.states[e.context.getReturnState(l)].ruleIndex!==t.ruleIndex)return!1;let a=t.transitions[0].target.endState.stateNumber,o=this.atn.states[a];for(let l=0;l<i;l++){let d=e.context.getReturnState(l),f=this.atn.states[d];if(f.transitions.length!==1||!f.transitions[0].isEpsilon)return!1;let b=f.transitions[0].target;if(!(f.constructor.stateType===W.BLOCK_END&&b===t)&&f!==o&&b!==o&&!(b.constructor.stateType===W.BLOCK_END&&b.transitions.length===1&&b.transitions[0].isEpsilon&&b.transitions[0].target===t))return!1}return!0}getEpsilonTarget(e,t,i,n,a,o){switch(t.transitionType){case q.RULE:return this.ruleTransition(e,t);case q.PRECEDENCE:return this.precedenceTransition(e,t,i,n,a);case q.PREDICATE:return this.predTransition(e,t,i,n,a);case q.ACTION:{if(Y.debug){let l=t,d=l.actionIndex===-1?65535:l.actionIndex;console.log("ACTION edge "+l.ruleIndex+":"+d)}return We.createWithConfig(t.target,e)}case q.EPSILON:return We.createWithConfig(t.target,e);case q.ATOM:case q.RANGE:case q.SET:return o&&t.matches(U.EOF,0,1)?We.createWithConfig(t.target,e):null;default:return null}}precedenceTransition(e,t,i,n,a){Y.debug&&(console.log("PRED (collectPredicates="+i+") "+t.precedence+">=_p, ctx dependent=true"),this.parser!==null&&console.log("context surrounding pred is "+_n(this.parser.getRuleInvocationStack())));let o=null;if(i&&n)if(a&&this.predictionState?.input){let l=this.predictionState.input.index;this.predictionState.input.seek(this.predictionState.startIndex);let d=t.getPredicate().evaluate(this.parser,this.predictionState.outerContext);this.predictionState.input.seek(l),d&&(o=We.createWithConfig(t.target,e))}else{let l=Re.andContext(e.semanticContext,t.getPredicate());o=We.createWithSemanticContext(t.target,e,l)}else o=We.createWithConfig(t.target,e);return Y.debug&&console.log("config from pred transition="+o),o}predTransition(e,t,i,n,a){Y.debug&&(console.log("PRED (collectPredicates="+i+") "+t.ruleIndex+":"+t.predIndex+", ctx dependent="+t.isCtxDependent),this.parser!==null&&console.log("context surrounding pred is "+_n(this.parser.getRuleInvocationStack())));let o=null;if(i&&(t.isCtxDependent&&n||!t.isCtxDependent))if(a&&this.predictionState?.input){let l=this.predictionState.input.index;this.predictionState.input.seek(this.predictionState.startIndex);let d=t.getPredicate().evaluate(this.parser,this.predictionState.outerContext);this.predictionState.input.seek(l),d&&(o=We.createWithConfig(t.target,e))}else{let l=Re.andContext(e.semanticContext,t.getPredicate());o=We.createWithSemanticContext(t.target,e,l)}else o=We.createWithConfig(t.target,e);return Y.debug&&console.log("config from pred transition="+o),o}ruleTransition(e,t){Y.debug&&console.log("CALL rule "+this.getRuleName(t.target.ruleIndex)+", ctx="+e.context);let i=t.followState,n=Oi(e.context??void 0,i.stateNumber);return We.createWithConfig(t.target,e,n)}getConflictingAlts(e){let t=Ke.getConflictingAltSubsets(e);return Ke.getAlts(t)}getConflictingAltsOrUniqueAlt(e){let t;return e.uniqueAlt!==Q.INVALID_ALT_NUMBER?(t=new Rr,t.set(e.uniqueAlt)):t=e.conflictingAlts,t}noViableAlt(e,t,i,n){return new V(this.parser,e,e.get(n),e.LT(1),i,t)}addDFAEdge(e,t,i,n){return Y.debug&&console.log("EDGE "+t+" -> "+n+" upon "+this.getTokenName(i)),n=this.addDFAState(e,n),i<-1||i>this.atn.maxTokenType||(Y.debug&&console.log(`DFA=
46
+ `+e.toString(this.parser!=null?this.parser.vocabulary:or.EMPTY_VOCABULARY)),t.edges[i+1]=n),n}addDFAState(e,t){if(t===br.ERROR)return t;let i=e.getState(t);return i!==null?i:(t.configs.readOnly||(t.configs.optimizeConfigs(this),t.configs.setReadonly(!0)),Y.traceATNSimulator&&console.log("addDFAState new "+t),e.addState(t),t)}reportAttemptingFullContext(e,t,i,n,a){if(Y.debug||Y.retryDebug){let o=new xe(n,a+1);console.log("reportAttemptingFullContext decision="+e.decision+":"+i+", input="+this.parser.tokenStream.getTextFromInterval(o))}this.parser.errorListenerDispatch.reportAttemptingFullContext(this.parser,e,n,a,t,i)}reportContextSensitivity(e,t,i,n,a){if(Y.debug||Y.retryDebug){let o=new xe(n,a+1);console.log("reportContextSensitivity decision="+e.decision+":"+i+", input="+this.parser.tokenStream.getTextFromInterval(o))}this.parser.errorListenerDispatch.reportContextSensitivity(this.parser,e,n,a,t,i)}reportAmbiguity(e,t,i,n,a,o,l){if(Y.debug||Y.retryDebug){let d=new xe(i,n+1);console.log("reportAmbiguity "+o+":"+l+", input="+this.parser.tokenStream.getTextFromInterval(d))}this.parser.errorListenerDispatch.reportAmbiguity(this.parser,e,i,n,a,o,l)}},Fi=class{static{v(this,"PredictionContextCache")}cache=new wr(Ii.instance);add(r){if(r===ze.instance)return r;let e=this.cache.get(r);return e||(this.cache.set(r,r),r)}get(r){return this.cache.get(r)}get length(){return this.cache.size}},Pu=class extends na{static{v(this,"ProfilingATNSimulator")}decisions;numDecisions=0;currentDecision=0;currentState;conflictingAltResolvedBySLL;sllStopIndex=0;llStopIndex=0;constructor(r){let e=r.interpreter.sharedContextCache;if(super(r,r.interpreter.atn,r.interpreter.decisionToDFA,e),e){this.numDecisions=this.atn.decisionToState.length,this.decisions=new Array(this.numDecisions);for(let t=0;t<this.numDecisions;t++)this.decisions[t]=new r7(t)}}adaptivePredict(r,e,t){try{this.sllStopIndex=-1,this.llStopIndex=-1,this.currentDecision=e;let i=performance.now(),n=super.adaptivePredict(r,e,t),a=performance.now();this.decisions[e].timeInPrediction+=a-i,this.decisions[e].invocations++;let o=this.sllStopIndex-this.predictionState.startIndex+1;if(this.decisions[e].sllTotalLook+=o,this.decisions[e].sllMinLook=this.decisions[e].sllMinLook===0?o:Math.min(this.decisions[e].sllMinLook,o),o>this.decisions[e].sllMaxLook&&(this.decisions[e].sllMaxLook=o,this.decisions[e].sllMaxLookEvent={decision:e,configs:null,predictedAlt:n,input:r,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1}),this.llStopIndex>=0){let l=this.llStopIndex-this.predictionState.startIndex+1;this.decisions[e].llTotalLook+=l,this.decisions[e].llMinLook=this.decisions[e].llMinLook===0?l:Math.min(this.decisions[e].llMinLook,l),l>this.decisions[e].llMaxLook&&(this.decisions[e].llMaxLook=l,this.decisions[e].llMaxLookEvent={decision:e,configs:null,predictedAlt:n,input:r,startIndex:this.predictionState.startIndex,stopIndex:this.llStopIndex,fullCtx:!0})}return n}finally{this.currentDecision=-1}}getExistingTargetState(r,e){this.sllStopIndex=this.predictionState.input.index;let t=super.getExistingTargetState(r,e);return t!==void 0&&(this.decisions[this.currentDecision].sllDFATransitions++,t===br.ERROR&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:r.configs,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1})),this.currentState=t,t}computeTargetState(r,e,t){let i=super.computeTargetState(r,e,t);return this.currentState=i,i}computeReachSet(r,e,t){t&&this.predictionState?.input&&(this.llStopIndex=this.predictionState.input.index);let i=super.computeReachSet(r,e,t);return this.predictionState?.input&&(t?(this.decisions[this.currentDecision].llATNTransitions++,i===null&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:r,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!0})):(this.decisions[this.currentDecision].sllATNTransitions++,i===null&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:r,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1}))),i}reportAttemptingFullContext(r,e,t,i,n){e!==null?this.conflictingAltResolvedBySLL=e.nextSetBit(0):this.conflictingAltResolvedBySLL=t.getAlts().nextSetBit(0),this.decisions[this.currentDecision].llFallback++,e&&super.reportAttemptingFullContext(r,e,t,i,n)}reportContextSensitivity(r,e,t,i,n){e!==this.conflictingAltResolvedBySLL&&this.predictionState.input&&this.decisions[this.currentDecision].contextSensitivities.push({decision:this.currentDecision,configs:t,input:this.predictionState.input,startIndex:i,stopIndex:n,fullCtx:!0}),super.reportContextSensitivity(r,e,t,i,n)}reportAmbiguity(r,e,t,i,n,a,o){let l;a?l=a.nextSetBit(0):l=o.getAlts().nextSetBit(0),this.predictionState?.input&&(o.fullCtx&&l!==this.conflictingAltResolvedBySLL&&this.decisions[this.currentDecision].contextSensitivities.push({decision:this.currentDecision,configs:o,input:this.predictionState.input,startIndex:t,stopIndex:i,fullCtx:!0}),this.decisions[this.currentDecision].ambiguities.push({ambigAlts:a,decision:this.currentDecision,configs:o,input:this.predictionState.input,startIndex:t,stopIndex:i,fullCtx:o.fullCtx})),super.reportAmbiguity(r,e,t,i,n,a,o)}getDecisionInfo(){return this.decisions}getCurrentState(){return this.currentState}},zb;(r=>{r.toString=v(e=>`(${e.pred}, ${e.alt})`,"toString")})(zb||(zb={}));var v3=class extends Error{static{v(this,"ParseCancellationException")}constructor(r){super(),this.cause=r}},O9=class{static{v(this,"InterpreterDataReader")}static parseInterpreterData(r){let e=[],t=[],i=[],n=[],a=[],o=r.split(`
47
+ `),l=0,d=o[l++];if(d!=="token literal names:")throw new Error("Unexpected data entry");do{if(d=o[l++],d.length===0)break;n.push(d==="null"?null:d)}while(!0);if(d=o[l++],d!=="token symbolic names:")throw new Error("Unexpected data entry");do{if(d=o[l++],d.length===0)break;a.push(d==="null"?null:d)}while(!0);if(d=o[l++],d!=="rule names:")throw new Error("Unexpected data entry");do{if(d=o[l++],d.length===0)break;e.push(d)}while(!0);if(d=o[l++],d==="channel names:"){do{if(d=o[l++],d.length===0)break;t.push(d)}while(!0);if(d=o[l++],d!=="mode names:")throw new Error("Unexpected data entry");do{if(d=o[l++],d.length===0)break;i.push(d)}while(!0)}if(d=o[l++],d!=="atn:")throw new Error("Unexpected data entry");d=o[l++];let f=d.split(","),b,E=[];for(let D=0;D<f.length;++D){let z=f[D];z.startsWith("[")?b=Number(z.substring(1).trim()):z.endsWith("]")?b=Number(z.substring(0,z.length-1).trim()):b=Number(z.trim()),E[D]=b}return{atn:new si().deserialize(E),vocabulary:new or(n,a,[]),ruleNames:e,channels:t.length>0?t:void 0,modes:i.length>0?i:void 0}}},k9=class{static{v(this,"AbstractParseTreeVisitor")}visit(r){return r.accept(this)}visitChildren(r){let e=this.defaultResult(),t=r.getChildCount();for(let i=0;i<t&&this.shouldVisitNextChild(r,e);i++){let n=r.getChild(i);if(n){let a=n.accept(this);e=this.aggregateResult(e,a)}}return e}visitTerminal(r){return this.defaultResult()}visitErrorNode(r){return this.defaultResult()}defaultResult(){return null}shouldVisitNextChild(r,e){return!0}aggregateResult(r,e){return e}},F9=class DR{static{v(this,"ParseTreeWalker")}static DEFAULT=new DR;walk(e,t){if(t instanceof ra)e.visitErrorNode(t);else if(t instanceof ct)e.visitTerminal(t);else{let n=t;this.enterRule(e,n);for(let a=0;a<t.getChildCount();a++)this.walk(e,t.getChild(a));this.exitRule(e,n)}}enterRule(e,t){let i=t.ruleContext;e.enterEveryRule(i),i.enterRule(e)}exitRule(e,t){let i=t.ruleContext;i.exitRule(e),e.exitEveryRule(i)}},Gn;(r=>{r.fromString=v(e=>new c7(e),"fromString")})(Gn||(Gn={}));var c7=class{static{v(this,"CharStreamImpl")}name="";index=0;data;constructor(r){let e=[];for(let t of r)e.push(t.codePointAt(0));this.data=new Uint32Array(e)}reset(){this.index=0}consume(){if(this.index>=this.data.length)throw new Error("cannot consume EOF");this.index+=1}LA(r){if(r===0)return 0;r<0&&(r+=1);let e=this.index+r-1;return e<0||e>=this.data.length?U.EOF:this.data[e]}mark(){return-1}release(r){}seek(r){if(r<=this.index){this.index=r;return}this.index=Math.min(r,this.data.length)}getTextFromRange(r,e){return e=e??this.data.length-1,e>=this.data.length&&(e=this.data.length-1),r>=this.data.length?"":this.stringFromRange(r,e+1)}getTextFromInterval(r){let e=r.start,t=r.stop;return t>=this.data.length&&(t=this.data.length-1),e>=this.data.length?"":this.stringFromRange(e,t+1)}toString(){return this.stringFromRange(0)}get size(){return this.data.length}getSourceName(){return this.name?this.name:Uu.UNKNOWN_SOURCE_NAME}stringFromRange(r,e){let t=this.data.slice(r,e),i="";return t.forEach(n=>{i+=String.fromCodePoint(n)}),i}},IR=v(r=>r.setText!==void 0,"isWritableToken"),h7=class{static{v(this,"BufferedTokenStream")}tokenSource;tokens=[];p=-1;fetchedEOF=!1;constructor(r){this.tokenSource=r}mark(){return 0}release(r){}reset(){this.seek(0)}seek(r){this.lazyInit(),this.p=this.adjustSeekIndex(r)}get size(){return this.tokens.length}get index(){return this.p}get(r){return this.lazyInit(),this.tokens[r]}consume(){let r=!1;if(this.p>=0?this.fetchedEOF?r=this.p<this.tokens.length-1:r=this.p<this.tokens.length:r=!1,!r&&this.LA(1)===U.EOF)throw new Error("cannot consume EOF");this.sync(this.p+1)&&(this.p=this.adjustSeekIndex(this.p+1))}sync(r){let e=r-this.tokens.length+1;return e>0?this.fetch(e)>=e:!0}fetch(r){if(this.fetchedEOF)return 0;for(let e=0;e<r;e++){let t=this.tokenSource.nextToken();if(IR(t)&&(t.tokenIndex=this.tokens.length),this.tokens.push(t),t.type===U.EOF)return this.fetchedEOF=!0,e+1}return r}getTokens(r,e,t){if(this.lazyInit(),r===void 0&&e===void 0)return this.tokens;if(r??=0,e===void 0&&(e=this.tokens.length-1),r<0||e>=this.tokens.length||e<0||r>=this.tokens.length)throw new RangeError("start "+r+" or stop "+e+" not in 0.."+(this.tokens.length-1));if(r>e)return[];if(t===void 0)return this.tokens.slice(r,e+1);let i=[];e>=this.tokens.length&&(e=this.tokens.length-1);for(let n=r;n<e;n++){let a=this.tokens[n];if(a.type===U.EOF){i.push(a);break}t.has(a.type)&&i.push(a)}return i}LA(r){return this.LT(r)?.type??U.INVALID_TYPE}LB(r){return this.p-r<0?null:this.tokens[this.p-r]}LT(r){if(this.lazyInit(),r===0)return null;if(r<0)return this.LB(-r);let e=this.p+r-1;return this.sync(e),e>=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[e]}adjustSeekIndex(r){return r}lazyInit(){this.p===-1&&this.setup()}setup(){this.sync(0),this.p=this.adjustSeekIndex(0)}setTokenSource(r){this.tokenSource=r,this.tokens=[],this.p=-1,this.fetchedEOF=!1}nextTokenOnChannel(r,e){if(this.sync(r),r>=this.tokens.length)return-1;let t=this.tokens[r];for(;t.channel!==e;){if(t.type===U.EOF)return-1;r+=1,this.sync(r),t=this.tokens[r]}return r}previousTokenOnChannel(r,e){if(r>=this.tokens.length)return this.tokens.length-1;for(;r>=0;){let t=this.tokens[r];if(t.type===U.EOF||t.channel===e)return r;--r}return r}getHiddenTokensToRight(r,e){if(e===void 0&&(e=-1),this.lazyInit(),r<0||r>=this.tokens.length)throw new Error(`${r} not in 0..${this.tokens.length-1}`);let t=this.nextTokenOnChannel(r+1,gr.DEFAULT_TOKEN_CHANNEL),i=r+1,n=t===-1?this.tokens.length-1:t;return this.filterForChannel(i,n,e)}getHiddenTokensToLeft(r,e){if(e===void 0&&(e=-1),this.lazyInit(),r<0||r>=this.tokens.length)throw new Error(`${r} not in 0..${this.tokens.length-1}`);let t=this.previousTokenOnChannel(r-1,gr.DEFAULT_TOKEN_CHANNEL);if(t===r-1)return;let i=t+1,n=r-1;return this.filterForChannel(i,n,e)}filterForChannel(r,e,t){let i=[];for(let n=r;n<e+1;n++){let a=this.tokens[n];t===-1?a.channel!==gr.DEFAULT_TOKEN_CHANNEL&&i.push(a):a.channel===t&&i.push(a)}if(i.length!==0)return i}getSourceName(){return this.tokenSource.sourceName}getText(){return this.getTextFromInterval(xe.of(0,this.size-1))}getTextFromInterval(r){let e=r.start,t=r.stop;if(e<0||t<0)return"";this.sync(t),t>=this.tokens.length&&(t=this.tokens.length-1);let i="";for(let n=e;n<=t;++n){let a=this.tokens[n];if(a.type===U.EOF)break;i+=a.text}return i}getTextFromContext(r){return this.getTextFromInterval(r.getSourceInterval())}getTextFromRange(r,e){return r!==null&&e!==null?this.getTextFromInterval(xe.of(r.tokenIndex,e.tokenIndex)):""}fill(){for(this.lazyInit();this.fetch(1e3)===1e3;);}setLine(r){this.tokenSource.line=r}setColumn(r){this.tokenSource.column=r}},Ou=class extends h7{static{v(this,"CommonTokenStream")}channel=U.DEFAULT_CHANNEL;constructor(r,e){super(r),this.channel=e??U.DEFAULT_CHANNEL}adjustSeekIndex(r){return this.nextTokenOnChannel(r,this.channel)}LB(r){if(r===0||this.index-r<0)return null;let e=this.index,t=1;for(;t<=r;)e=this.previousTokenOnChannel(e-1,this.channel),t+=1;return e<0?null:this.tokens[e]}LT(r){if(this.lazyInit(),r===0)return null;if(r<0)return this.LB(-r);let e=this.index,t=1;for(;t<r;)this.sync(e+1)&&(e=this.nextTokenOnChannel(e+1,this.channel)),t+=1;return this.tokens[e]}getNumberOfOnChannelTokens(){let r=0;this.fill();for(let e of this.tokens)if(e.channel===this.channel&&(r+=1),e.type===U.EOF)break;return r}},ir=class Ge extends gr{static{v(this,"XPathLexer")}static TOKEN_REF=1;static RULE_REF=2;static ANYWHERE=3;static ROOT=4;static WILDCARD=5;static BANG=6;static ID=7;static STRING=8;static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static literalNames=[null,null,null,"'//'","'/'","'*'","'!'"];static symbolicNames=[null,"TOKEN_REF","RULE_REF","ANYWHERE","ROOT","WILDCARD","BANG","ID","STRING"];static modeNames=["DEFAULT_MODE"];static ruleNames=["ANYWHERE","ROOT","WILDCARD","BANG","ID","NameChar","NameStartChar","STRING"];constructor(e){super(e),this.interpreter=new jn(this,Ge._ATN,Ge.decisionsToDFA,new Fi)}get grammarFileName(){return"XPathLexer.g4"}get literalNames(){return Ge.literalNames}get symbolicNames(){return Ge.symbolicNames}get ruleNames(){return Ge.ruleNames}get serializedATN(){return Ge._serializedATN}get channelNames(){return Ge.channelNames}get modeNames(){return Ge.modeNames}action(e,t,i){t===4&&this.ID_action(e,i)}ID_action(e,t){if(t===0){let i=this.text;i.charAt(0)===i.charAt(0).toUpperCase()?this.type=Ge.TOKEN_REF:this.type=Ge.RULE_REF}}static _serializedATN=[4,0,8,48,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,1,0,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,5,4,29,8,4,10,4,12,4,32,9,4,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,5,7,42,8,7,10,7,12,7,45,9,7,1,7,1,7,1,43,0,8,1,3,3,4,5,5,7,6,9,7,11,0,13,0,15,8,1,0,2,784,0,0,8,14,27,48,57,65,90,95,95,97,122,127,159,170,170,173,173,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1536,1541,1552,1562,1564,1564,1568,1641,1646,1747,1749,1757,1759,1768,1770,1788,1791,1791,1807,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2192,2193,2200,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8203,8207,8234,8238,8255,8256,8276,8276,8288,8292,8294,8303,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65279,65279,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65529,65531,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69821,69821,69826,69826,69837,69837,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,113824,113827,118528,118573,118576,118598,119141,119145,119149,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552,205743,917505,917505,917536,917631,917760,917999,662,0,65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6276,6279,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552,205743,47,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,15,1,0,0,0,1,17,1,0,0,0,3,20,1,0,0,0,5,22,1,0,0,0,7,24,1,0,0,0,9,26,1,0,0,0,11,35,1,0,0,0,13,37,1,0,0,0,15,39,1,0,0,0,17,18,5,47,0,0,18,19,5,47,0,0,19,2,1,0,0,0,20,21,5,47,0,0,21,4,1,0,0,0,22,23,5,42,0,0,23,6,1,0,0,0,24,25,5,33,0,0,25,8,1,0,0,0,26,30,3,13,6,0,27,29,3,11,5,0,28,27,1,0,0,0,29,32,1,0,0,0,30,28,1,0,0,0,30,31,1,0,0,0,31,33,1,0,0,0,32,30,1,0,0,0,33,34,6,4,0,0,34,10,1,0,0,0,35,36,7,0,0,0,36,12,1,0,0,0,37,38,7,1,0,0,38,14,1,0,0,0,39,43,5,39,0,0,40,42,9,0,0,0,41,40,1,0,0,0,42,45,1,0,0,0,43,44,1,0,0,0,43,41,1,0,0,0,44,46,1,0,0,0,45,43,1,0,0,0,46,47,5,39,0,0,47,16,1,0,0,0,3,0,30,43,1,1,4,0];static __ATN;static get _ATN(){return Ge.__ATN||(Ge.__ATN=new si().deserialize(Ge._serializedATN)),Ge.__ATN}static vocabulary=new or(Ge.literalNames,Ge.symbolicNames,[]);get vocabulary(){return Ge.vocabulary}static decisionsToDFA=Ge._ATN.decisionToState.map((e,t)=>new Dr(e,t))},d7=class extends Wn{static{v(this,"XPathLexerErrorListener")}syntaxError(r,e,t,i,n,a){}},Kn=class{static{v(this,"XPathElement")}invert;nodeName;constructor(r){this.nodeName=r,this.invert=!1}toString(){return"XPathElement["+(this.invert?"!":"")+this.nodeName+"]"}},p7=class extends Kn{static{v(this,"XPathRuleAnywhereElement")}ruleIndex;constructor(r,e){super(r),this.ruleIndex=e}evaluate(r){return ii.findAllRuleNodes(r,this.ruleIndex)}toString(){return"XPathRuleAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},f7=class extends Kn{static{v(this,"XPathRuleElement")}ruleIndex;constructor(r,e){super(r),this.ruleIndex=e}evaluate(r){let e=[];for(let t of ii.getChildren(r))t instanceof u&&(t.ruleIndex===this.ruleIndex&&!this.invert||t.ruleIndex!==this.ruleIndex&&this.invert)&&e.push(t);return e}toString(){return"XPathRuleElement["+(this.invert?"!":"")+this.nodeName+"]"}},x7=class extends Kn{static{v(this,"XPathTokenAnywhereElement")}tokenType;constructor(r,e){super(r),this.tokenType=e}evaluate(r){return ii.findAllTokenNodes(r,this.tokenType)}toString(){return"XPathTokenAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},m7=class extends Kn{static{v(this,"XPathTokenElement")}tokenType;constructor(r,e){super(r),this.tokenType=e}evaluate(r){let e=[];for(let t of ii.getChildren(r))t instanceof ct&&t.symbol&&(t.symbol.type===this.tokenType&&!this.invert||t.symbol.type!==this.tokenType&&this.invert)&&e.push(t);return e}toString(){return"XPathTokenElement["+(this.invert?"!":"")+this.nodeName+"]"}},b7=class extends Kn{static{v(this,"XPathWildcardAnywhereElement")}constructor(){super(T3.WILDCARD)}evaluate(r){return this.invert?[]:ii.descendants(r)}toString(){return"XPathWildcardAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},R7=class extends Kn{static{v(this,"XPathWildcardElement")}constructor(){super(T3.WILDCARD)}evaluate(r){let e=[];if(this.invert)return e;for(let t of ii.getChildren(r))e.push(t);return e}toString(){return"XPathWildcardElement["+(this.invert?"!":"")+this.nodeName+"]"}},T3=class OR{static{v(this,"XPath")}static WILDCARD="*";static NOT="!";path;elements;parser;constructor(e,t){this.parser=e,this.path=t,this.elements=this.split(t)}static findAll(e,t,i){return new OR(i,t).evaluate(e)}split(e){let t=new ir(Gn.fromString(e));t.recover=d=>{throw d},t.removeErrorListeners(),t.addErrorListener(new d7);let i=new Ou(t);try{i.fill()}catch(d){if(d instanceof Du){let b="Invalid tokens or characters at index "+t.column+" in path '"+e+"' -- "+d.message;throw new RangeError(b)}throw d}let n=i.getTokens(),a=[],o=n.length,l=0;e:for(;l<o;){let d=n[l],f;switch(d.type){case ir.ROOT:case ir.ANYWHERE:let b=d.type===ir.ANYWHERE;l++,f=n[l];let E=f.type===ir.BANG;E&&(l++,f=n[l]);let A=this.getXPathElement(f,b);A.invert=E,a.push(A),l++;break;case ir.TOKEN_REF:case ir.RULE_REF:case ir.WILDCARD:a.push(this.getXPathElement(d,!1)),++l;break;case U.EOF:break e;default:throw new Error("Unknown path element "+d)}}return a}evaluate(e){let t=new u(null);t.addChild(e);let i=new Set([t]),n=0;for(;n<this.elements.length;){let a=new Set;for(let o of i)o.getChildCount()>0&&this.elements[n].evaluate(o).forEach(d=>{a.add(d)},a);n++,i=a}return i}getXPathElement(e,t){if(e.type===U.EOF)throw new Error("Missing path element at end of path");let i=e.text;if(i==null)throw new Error("Expected wordToken to have text content.");let n=this.parser.getTokenType(i),a=this.parser.getRuleIndex(i);switch(e.type){case ir.WILDCARD:return t?new b7:new R7;case ir.TOKEN_REF:case ir.STRING:if(n===U.INVALID_TYPE)throw new Error(i+" at index "+e.start+" isn't a valid token name");return t?new x7(i,n):new m7(i,n);default:if(a===-1)throw new Error(i+" at index "+e.start+" isn't a valid rule name");return t?new p7(i,a):new f7(i,a)}}},kR=class{static{v(this,"Chunk")}},g7=class{static{v(this,"ParseTreeMatch")}tree;pattern;labels;mismatchedNode;constructor(r,e,t,i){this.tree=r,this.pattern=e,this.labels=t,this.mismatchedNode=i}get(r){let e=this.labels.get(r);return!e||e.length===0?null:e[e.length-1]}getAll(r){return this.labels.get(r)??[]}getLabels(){return this.labels}getMismatchedNode(){return this.mismatchedNode}succeeded(){return!this.mismatchedNode}getPattern(){return this.pattern}getTree(){return this.tree}toString(){return`Match ${this.succeeded()?"succeeded":"failed"}; found ${this.getLabels().size} labels`}},y7=class{static{v(this,"ParseTreePattern")}patternRuleIndex;pattern;patternTree;matcher;constructor(r,e,t,i){this.matcher=r,this.patternRuleIndex=t,this.pattern=e,this.patternTree=i}match(r){return this.matcher.match(r,this)}matches(r){return this.matcher.match(r,this).succeeded()}findAll(r,e){let t=T3.findAll(r,e,this.matcher.getParser()),i=new Array;for(let n of t){let a=this.match(n);a.succeeded()&&i.push(a)}return i}getMatcher(){return this.matcher}getPattern(){return this.pattern}getPatternRuleIndex(){return this.patternRuleIndex}getPatternTree(){return this.patternTree}},ta=class extends c{static{v(this,"InputMismatchException")}constructor(r){super({message:"",recognizer:r,input:r.inputStream,ctx:r.context}),this.offendingToken=r.getCurrentToken()}},ia=class extends c{static{v(this,"FailedPredicateException")}ruleIndex=0;predicateIndex=0;predicate;constructor(r,e,t=null){super({message:C7(e??"no predicate",t??null),recognizer:r,input:r.inputStream,ctx:r.context});let n=r.atn.states[r.state].transitions[0];n instanceof pR?(this.ruleIndex=n.ruleIndex,this.predicateIndex=n.predIndex):(this.ruleIndex=0,this.predicateIndex=0),this.predicate=e,this.offendingToken=r.getCurrentToken()}},C7=v((r,e)=>e!==null?e:"failed predicate: {"+r+"}?","formatMessage"),ku=class{static{v(this,"DefaultErrorStrategy")}errorRecoveryMode=!1;lastErrorIndex=-1;lastErrorStates=new ar;nextTokensContext=null;nextTokenState=0;reset(r){this.endErrorCondition(r)}beginErrorCondition(r){this.errorRecoveryMode=!0}inErrorRecoveryMode(r){return this.errorRecoveryMode}endErrorCondition(r){this.errorRecoveryMode=!1,this.lastErrorStates=new ar,this.lastErrorIndex=-1}reportMatch(r){this.endErrorCondition(r)}reportError(r,e){this.inErrorRecoveryMode(r)||(this.beginErrorCondition(r),e instanceof V?this.reportNoViableAlternative(r,e):e instanceof ta?this.reportInputMismatch(r,e):e instanceof ia?this.reportFailedPredicate(r,e):r.notifyErrorListeners(e.message,e.offendingToken,e))}recover(r,e){this.lastErrorIndex===r.inputStream?.index&&this.lastErrorStates.contains(r.state)&&r.consume(),this.lastErrorIndex=r.inputStream?.index??0,this.lastErrorStates.addOne(r.state);let t=this.getErrorRecoverySet(r);this.consumeUntil(r,t)}sync(r){if(this.inErrorRecoveryMode(r))return;let e=r.atn.states[r.state],t=r.tokenStream.LA(1),i=r.atn.nextTokens(e);if(i.contains(t)){this.nextTokensContext=null,this.nextTokenState=W.INVALID_STATE_NUMBER;return}if(i.contains(U.EPSILON)){this.nextTokensContext===null&&(this.nextTokensContext=r.context,this.nextTokenState=r.state);return}switch(e.constructor.stateType){case W.BLOCK_START:case W.STAR_BLOCK_START:case W.PLUS_BLOCK_START:case W.STAR_LOOP_ENTRY:{if(this.singleTokenDeletion(r)!==null)return;throw new ta(r)}case W.PLUS_LOOP_BACK:case W.STAR_LOOP_BACK:{this.reportUnwantedToken(r);let n=new ar;n.addSet(r.getExpectedTokens());let a=n.addSet(this.getErrorRecoverySet(r));this.consumeUntil(r,a);break}default:}}reportNoViableAlternative(r,e){if(e.message.length>0){r.notifyErrorListeners(e.message,e.offendingToken,e);return}let t=r.tokenStream,i;t!==null&&e.startToken?e.startToken.type===U.EOF?i="<EOF>":i=t.getTextFromRange(e.startToken,e.offendingToken):i="<unknown input>";let n="no viable alternative at input "+this.escapeWSAndQuote(i);r.notifyErrorListeners(n,e.offendingToken,e)}reportInputMismatch(r,e){if(e.message.length>0){r.notifyErrorListeners(e.message,e.offendingToken,e);return}let t="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toStringWithVocabulary(r.vocabulary);r.notifyErrorListeners(t,e.offendingToken,e)}reportFailedPredicate(r,e){let i="rule "+r.ruleNames[r.context.ruleIndex]+" "+e.message;r.notifyErrorListeners(i,e.offendingToken,e)}reportUnwantedToken(r){if(this.inErrorRecoveryMode(r))return;this.beginErrorCondition(r);let e=r.getCurrentToken(),t=this.getTokenErrorDisplay(e),i=this.getExpectedTokens(r),n="extraneous input "+t+" expecting "+i.toStringWithVocabulary(r.vocabulary);r.notifyErrorListeners(n,e,null)}reportMissingToken(r){if(this.inErrorRecoveryMode(r))return;this.beginErrorCondition(r);let e=r.getCurrentToken(),i="missing "+this.getExpectedTokens(r).toStringWithVocabulary(r.vocabulary)+" at "+this.getTokenErrorDisplay(e);r.notifyErrorListeners(i,e,null)}recoverInline(r){let e=this.singleTokenDeletion(r);if(e)return r.consume(),e;if(this.singleTokenInsertion(r))return this.getMissingSymbol(r);throw new ta(r)}singleTokenInsertion(r){let e=r.tokenStream?.LA(1)??-1,t=r.atn,n=t.states[r.state].transitions[0].target;return t.nextTokens(n,r.context??void 0).contains(e)?(this.reportMissingToken(r),!0):!1}singleTokenDeletion(r){let e=r.tokenStream?.LA(2)??-1;if(this.getExpectedTokens(r).contains(e)){this.reportUnwantedToken(r),r.consume();let i=r.getCurrentToken();return this.reportMatch(r),i}return null}getMissingSymbol(r){let e=r.getCurrentToken(),t=this.getExpectedTokens(r),i=U.INVALID_TYPE;t.length!==0&&(i=t.minElement);let n;i===U.EOF?n="<missing EOF>":n="<missing "+r.vocabulary.getDisplayName(i)+">";let a=e,o=r.tokenStream?.LT(-1);return a.type===U.EOF&&o!==null&&(a=o),r.getTokenFactory().create(a.source,i,n,U.DEFAULT_CHANNEL,-1,-1,a.line,a.column)}getExpectedTokens(r){return r.getExpectedTokens()}getTokenErrorDisplay(r){if(r===null)return"<no token>";let e=r.text;return e||(r.type===U.EOF?e="<EOF>":e="<"+r.type+">"),this.escapeWSAndQuote(e)}escapeWSAndQuote(r){return r=r.replace(/\n/g,"\\n"),r=r.replace(/\r/g,"\\r"),r=r.replace(/\t/g,"\\t"),"'"+r+"'"}getErrorRecoverySet(r){let e=r.atn,t=r.context,i=new ar;for(;t!==null&&t.invokingState>=0;){let a=e.states[t.invokingState].transitions[0],o=e.nextTokens(a.followState);i.addSet(o),t=t.parent}return i.removeOne(U.EPSILON),i}consumeUntil(r,e){let t=r.tokenStream?.LA(1)??-1;for(;t!==U.EOF&&!e.contains(t);)r.consume(),t=r.tokenStream?.LA(1)??-1}},A3=class extends ku{static{v(this,"BailErrorStrategy")}recover(r,e){throw new v3(e)}recoverInline(r){let e=new ta(r);throw new v3(e)}sync(r){}},v7=class{static{v(this,"ListTokenSource")}sourceName;tokenFactory=PR.DEFAULT;tokens=[];i=0;eofToken=null;constructor(r,e){this.tokens=r,this.sourceName=e??""}get column(){if(this.i<this.tokens.length)return this.tokens[this.i].column;if(this.eofToken!==null)return this.eofToken.column;if(this.tokens.length>0){let r=this.tokens[this.tokens.length-1],e=r.text;if(e){let t=e.lastIndexOf(`
48
+ `);if(t>=0)return e.length-t-1}return r.column+r.stop-r.start+1}return 0}nextToken(){if(this.i>=this.tokens.length){if(this.eofToken===null){let e=-1;if(this.tokens.length>0){let i=this.tokens[this.tokens.length-1].stop;i!==-1&&(e=i+1)}let t=Math.max(-1,e-1);this.eofToken=this.tokenFactory.create([this,this.inputStream],U.EOF,"EOF",U.DEFAULT_CHANNEL,e,t,this.line,this.column)}return this.eofToken}let r=this.tokens[this.i];return this.i===this.tokens.length-1&&r.type===U.EOF&&(this.eofToken=r),this.i++,r}get line(){if(this.i<this.tokens.length)return this.tokens[this.i].line;if(this.eofToken!==null)return this.eofToken.line;if(this.tokens.length>0){let r=this.tokens[this.tokens.length-1],e=r.line,t=r.text;if(t)for(let i of t)i===`
49
+ `&&e++;return e}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 r=this.inputStream;return r!==null?r.getSourceName():"List"}},E7=class extends u{static{v(this,"InterpreterRuleContext")}#e;constructor(r,e,t){super(e,t),this.#e=r}get ruleIndex(){return this.#e}},L7=class{static{v(this,"TraceListener")}parser;constructor(r){this.parser=r}enterEveryRule(r){console.log("enter "+this.parser.ruleNames[r.ruleIndex]+", LT(1)="+this.parser.inputStream?.LT(1)?.text)}visitTerminal(r){console.log("consume "+r.getSymbol()+" rule "+this.parser.ruleNames[this.parser.context.ruleIndex])}exitEveryRule(r){console.log("exit "+this.parser.ruleNames[r.ruleIndex]+", LT(1)="+this.parser.inputStream?.LT(1)?.text)}visitErrorNode(r){}},M3=class extends SR{static{v(this,"Parser")}printer=null;buildParseTrees=!0;errorHandler=new ku;context=null;precedenceStack=[];parseListeners=null;syntaxErrors=0;matchedEOF=!1;tracer=null;bypassAltsAtnCache=null;#e;constructor(r){super(),this.precedenceStack.push(0),this.syntaxErrors=0,this.#e=r}reset(r=!0){r&&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(r){let e=this.getCurrentToken();return e.type===r?(r===U.EOF&&(this.matchedEOF=!0),this.errorHandler.reportMatch(this),this.consume()):(e=this.errorHandler.recoverInline(this),this.buildParseTrees&&e.tokenIndex===-1&&this.context.addErrorNode(this.createErrorNode(this.context,e))),e}matchWildcard(){let r=this.getCurrentToken();return r.type>0?(this.errorHandler.reportMatch(this),this.consume()):(r=this.errorHandler.recoverInline(this),this.buildParseTrees&&r.tokenIndex===-1&&this.context.addErrorNode(this.createErrorNode(this.context,r))),r}getParseListeners(){return this.parseListeners??[]}addParseListener(r){if(r===null)throw new Error("listener");this.parseListeners===null&&(this.parseListeners=[]),this.parseListeners.push(r)}removeParseListener(r){if(this.parseListeners!==null&&r!==null){let e=this.parseListeners.indexOf(r);e>=0&&this.parseListeners.splice(e,1),this.parseListeners.length===0&&(this.parseListeners=null)}}removeParseListeners(){this.parseListeners=null}triggerEnterRuleEvent(){if(this.parseListeners!==null){let r=this.context;this.parseListeners.forEach(e=>{e.enterEveryRule(r),r.enterRule(e)})}}triggerExitRuleEvent(){if(this.parseListeners!==null){let r=this.context;this.parseListeners.slice(0).reverse().forEach(e=>{r.exitRule(e),e.exitEveryRule(r)})}}getTokenFactory(){return this.inputStream.tokenSource.tokenFactory}setTokenFactory(r){this.inputStream.tokenSource.tokenFactory=r}compileParseTreePattern(r,e,t){if(!t&&this.tokenStream!==null){let n=this.tokenStream.tokenSource;n instanceof gr&&(t=n)}if(!t)throw new Error("Parser can't discover a lexer to use");return new A7(t,this).compile(r,e)}getATNWithBypassAlts(){let r=this.serializedATN;if(r===null)throw new Error("The current parser does not support an ATN with bypass alternatives.");if(this.bypassAltsAtnCache!==null)return this.bypassAltsAtnCache;let e={readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!0};return this.bypassAltsAtnCache=new si(e).deserialize(r),this.bypassAltsAtnCache}get numberOfSyntaxErrors(){return this.syntaxErrors}get inputStream(){return this.#e}set inputStream(r){this.tokenStream=r}get tokenStream(){return this.#e}set tokenStream(r){this.reset(!1),this.#e=r}getCurrentToken(){return this.inputStream.LT(1)}notifyErrorListeners(r,e,t){e=e??null,t=t??null,e===null&&(e=this.getCurrentToken()),this.syntaxErrors+=1;let i=e.line,n=e.column;this.errorListenerDispatch.syntaxError(this,e,i,n,r,t)}consume(){let r=this.getCurrentToken();r.type!==U.EOF&&this.tokenStream.consume();let e=this.parseListeners!==null&&this.parseListeners.length>0;if(this.buildParseTrees||e){let t;this.errorHandler.inErrorRecoveryMode(this)?t=this.context.addErrorNode(this.createErrorNode(this.context,r)):t=this.context.addTokenNode(r),e&&this.parseListeners.forEach(i=>{t instanceof ra?i.visitErrorNode(t):i.visitTerminal(t)})}return r}addContextToParseTree(){this.context?.parent&&this.context.parent.addChild(this.context)}enterRule(r,e,t){this.state=e,this.context=r,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(r,e){r.setAltNumber(e),this.buildParseTrees&&this.context!==r&&this.context?.parent&&(this.context.parent.removeLastChild(),this.context.parent.addChild(r)),this.context=r}getPrecedence(){return this.precedenceStack.length===0?-1:this.precedenceStack[this.precedenceStack.length-1]}enterRecursionRule(r,e,t,i){this.state=e,this.precedenceStack.push(i),this.context=r,this.context.start=this.inputStream.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(r,e,t){let i=this.context;i.parent=r,i.invokingState=e,i.stop=this.inputStream.LT(-1),this.context=r,this.context.start=i.start,this.buildParseTrees&&this.context.addChild(i),this.triggerEnterRuleEvent()}unrollRecursionContexts(r){this.precedenceStack.pop(),this.context.stop=this.inputStream.LT(-1);let e=this.context,t=this.getParseListeners();if(t!==null&&t.length>0)for(;this.context!==r;)this.triggerExitRuleEvent(),this.context=this.context.parent;else this.context=r;e.parent=r,this.buildParseTrees&&r!==null&&r.addChild(e)}getInvokingContext(r){let e=this.context;for(;e!==null;){if(e.ruleIndex===r)return e;e=e.parent}return null}precpred(r,e){return e>=this.precedenceStack[this.precedenceStack.length-1]}isExpectedToken(r){let e=this.interpreter.atn,t=this.context,i=e.states[this.state],n=e.nextTokens(i);if(n.contains(r))return!0;if(!n.contains(U.EPSILON))return!1;for(;t!==null&&t.invokingState>=0&&n.contains(U.EPSILON);){let o=e.states[t.invokingState].transitions[0];if(n=e.nextTokens(o.followState),n.contains(r))return!0;t=t.parent}return!!(n.contains(U.EPSILON)&&r===U.EOF)}getExpectedTokens(){return this.interpreter.atn.getExpectedTokens(this.state,this.context)}getExpectedTokensWithinCurrentRule(){let r=this.interpreter.atn,e=r.states[this.state];return r.nextTokens(e)}getRuleIndex(r){return this.getRuleIndexMap().get(r)??-1}getRuleInvocationStack(r){r=r??null,r===null&&(r=this.context);let e=[];for(;r!==null;){let t=r.ruleIndex;t<0?e.push("n/a"):e.push(this.ruleNames[t]),r=r.parent}return e}getDFAStrings(){return this.interpreter.decisionToDFA.toString()}dumpDFA(){let r=!1;for(let e of this.interpreter.decisionToDFA)e.length>0&&(r&&console.log(),this.printer&&(this.printer.println("Decision "+e.decision+":"),this.printer.print(e.toString(this.vocabulary))),r=!0)}getSourceName(){return this.inputStream.getSourceName()}getParseInfo(){let r=this.interpreter;if(r instanceof Pu)return new l7(r)}setProfile(r){let e=this.interpreter,t=e.predictionMode;if(r)e instanceof Pu||(this.interpreter=new Pu(this));else if(e instanceof Pu){let i=e.sharedContextCache;if(i){let n=new na(this,this.atn,e.decisionToDFA,i);this.interpreter=n}}this.interpreter.predictionMode=t}setTrace(r){r?(this.tracer!==null&&this.removeParseListener(this.tracer),this.tracer=new L7(this),this.addParseListener(this.tracer)):(this.removeParseListener(this.tracer),this.tracer=null)}createTerminalNode(r,e){return new ct(e)}createErrorNode(r,e){return new ra(e)}},S7=class extends M3{static{v(this,"ParserInterpreter")}rootContext;overrideDecisionRoot=null;parentContextStack=[];overrideDecisionAlt=-1;overrideDecisionReached=!1;decisionToDFA;sharedContextCache=new Fi;pushRecursionContextStates;#e=-1;#t=-1;#i;#r;#n;#s;constructor(r,e,t,i,n){super(n),this.#i=r,this.#r=i,this.#n=t.slice(0),this.#s=e,this.pushRecursionContextStates=new Rr;for(let a of i.states)a instanceof ri&&a.precedenceRuleDecision&&this.pushRecursionContextStates.set(a.stateNumber);this.decisionToDFA=i.decisionToState.map((a,o)=>new Dr(a,o)),this.interpreter=new na(this,i,this.decisionToDFA,this.sharedContextCache)}reset(){super.reset(),this.overrideDecisionReached=!1,this.overrideDecisionRoot=null}get atn(){return this.#r}get vocabulary(){return this.#s}get ruleNames(){return this.#n}get grammarFileName(){return this.#i}get atnState(){return this.#r.states[this.state]}parse(r){let e=this.#r.ruleToStartState[r];for(this.rootContext=this.createInterpreterRuleContext(null,W.INVALID_STATE_NUMBER,r),e.isLeftRecursiveRule?this.enterRecursionRule(this.rootContext,e.stateNumber,r,0):this.enterRule(this.rootContext,e.stateNumber,r);;){let t=this.atnState;switch(t.constructor.stateType){case W.RULE_STOP:{if(this.context?.isEmpty())if(e.isLeftRecursiveRule){let i=this.context,n=this.parentContextStack.pop();return this.unrollRecursionContexts(n[0]),i}else return this.exitRule(),this.rootContext;this.visitRuleStopState(t);break}default:{try{this.visitState(t)}catch(i){if(i instanceof c)this.state=this.#r.ruleToStopState[t.ruleIndex].stateNumber,this.errorHandler.reportError(this,i),this.recover(i);else throw i}break}}}}addDecisionOverride(r,e,t){this.#e=r,this.#t=e,this.overrideDecisionAlt=t}get overrideDecision(){return this.#e}get overrideDecisionInputIndex(){return this.#t}enterRecursionRule(r,e,t,i){this.parentContextStack.push([this.context,r.invokingState]),super.enterRecursionRule(r,e,t,i)}get serializedATN(){throw new Error("The ParserInterpreter does not support the serializedATN property.")}visitState(r){let e=1;r instanceof ki&&(e=this.visitDecisionState(r));let t=r.transitions[e-1];switch(t.transitionType){case q.EPSILON:if(this.pushRecursionContextStates.get(r.stateNumber)&&t.target.constructor.stateType!==W.LOOP_END){let d=this.parentContextStack[this.parentContextStack.length-1],f=this.createInterpreterRuleContext(d[0],d[1],this.context.ruleIndex);this.pushNewRecursionContext(f,this.#r.ruleToStartState[r.ruleIndex].stateNumber,this.context.ruleIndex)}break;case q.ATOM:this.match(t.label.minElement);break;case q.RANGE:case q.SET:case q.NOT_SET:t.matches(this.inputStream.LA(1),U.MIN_USER_TOKEN_TYPE,65535)||this.recoverInline(),this.matchWildcard();break;case q.WILDCARD:this.matchWildcard();break;case q.RULE:let i=t.target,n=i.ruleIndex,a=this.createInterpreterRuleContext(this.context,r.stateNumber,n);i.isLeftRecursiveRule?this.enterRecursionRule(a,i.stateNumber,n,t.precedence):this.enterRule(a,t.target.stateNumber,n);break;case q.PREDICATE:let o=t;if(!this.sempred(this.context,o.ruleIndex,o.predIndex))throw new ia(this);break;case q.ACTION:let l=t;this.action(this.context,l.ruleIndex,l.actionIndex);break;case q.PRECEDENCE:if(!this.precpred(this.context,t.precedence)){let d=t.precedence;throw new ia(this,`precpred(_ctx, ${d})`)}break;default:throw new Error("UnsupportedOperationException: Unrecognized ATN transition type.")}this.state=t.target.stateNumber}visitDecisionState(r){let e=1;if(r.transitions.length>1){this.errorHandler.sync(this);let t=r.decision;t===this.#e&&this.inputStream.index===this.#t&&!this.overrideDecisionReached?(e=this.overrideDecisionAlt,this.overrideDecisionReached=!0):e=this.interpreter.adaptivePredict(this.inputStream,t,this.context)}return e}createInterpreterRuleContext(r,e,t){return new E7(t,r,e)}visitRuleStopState(r){if(this.#r.ruleToStartState[r.ruleIndex].isLeftRecursiveRule){let[i,n]=this.parentContextStack.pop();this.unrollRecursionContexts(i),this.state=n}else this.exitRule();let t=this.#r.states[this.state].transitions[0];this.state=t.followState.stateNumber}recover(r){let e=this.inputStream.index;if(this.errorHandler.recover(this,r),this.inputStream.index===e){let t=r.offendingToken;if(!t)throw new Error("Expected exception to have an offending token");let i=t.tokenSource,n=i?.inputStream??null,a=[i,n];if(r instanceof ta){let o=r.getExpectedTokens();if(!o)throw new Error("Expected the exception to provide expected tokens");let l=U.INVALID_TYPE;o.length!==0&&(l=o.minElement);let d=this.getTokenFactory().create(a,l,t.text,U.DEFAULT_CHANNEL,-1,-1,t.line,t.column);this.context.addErrorNode(this.createErrorNode(this.context,d))}else{let o=this.getTokenFactory().create(a,U.INVALID_TYPE,t.text,U.DEFAULT_CHANNEL,-1,-1,t.line,t.column);this.context.addErrorNode(this.createErrorNode(this.context,o))}}}recoverInline(){return this.errorHandler.recoverInline(this)}},Qb=class extends Map{static{v(this,"MultiMap")}map(r,e){let t=this.get(r);t||(t=new Array,this.set(r,t)),t.push(e)}getPairs(){let r=new Array;for(let e of this.keys()){let t=this.get(e)??[];for(let i of t)r.push([e,i])}return r}toString(){let r=[];return this.forEach((e,t)=>{r.push(`${t}=[${e.join(", ")}]`)}),`{${r.join(", ")}}`}},P7=class extends Error{static{v(this,"CannotInvokeStartRuleError")}constructor(r){super(),this.cause=r}},$b=class{static{v(this,"RuleTagToken")}label;ruleName;bypassTokenType;constructor(r,e,t){this.ruleName=r,this.bypassTokenType=e,this.label=t}get channel(){return U.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}},T7=class extends Error{static{v(this,"StartRuleDoesNotConsumeFullPatternError")}},Yb=class extends kR{static{v(this,"TagChunk")}tag;label;constructor(...r){let e,t;if(r.length===1?t=r[0]:(e=r[0],t=r[1]),super(),!t)throw new Error("tag cannot be null or empty");this.label=e,this.tag=t}toString(){return this.label!==void 0?this.label+":"+this.tag:this.tag}},Fn=class extends kR{static{v(this,"TextChunk")}text;constructor(r){super(),this.text=r}toString(){return"'"+this.text+"'"}},Jb=class extends wu{static{v(this,"TokenTagToken")}tokenName;label;constructor(r,e,t){super({type:e,source:wu.EMPTY_SOURCE}),this.tokenName=r,this.label=t}get text(){return this.label!==void 0?"<"+this.label+":"+this.tokenName+">":"<"+this.tokenName+">"}toString(){return this.tokenName+":"+this.type}},A7=class{static{v(this,"ParseTreePatternMatcher")}start="<";stop=">";escape="\\";lexer;parser;constructor(r,e){this.lexer=r,this.parser=e}setDelimiters(r,e,t){if(r===null||r.length===0)throw new Error("start cannot be null or empty");if(e===null||e.length===0)throw new Error("stop cannot be null or empty");this.start=r,this.stop=e,this.escape=t}matches(...r){switch(r.length){case 2:{let[e,t]=r,i=new Qb;return this.matchImpl(e,t.getPatternTree(),i)===null}case 3:{let[e,t,i]=r,n=this.compile(t,i);return this.matches(e,n)}default:throw new Error("Invalid number of arguments")}}match(...r){switch(r.length){case 2:{let[e,t]=r,i=new Qb,n=this.matchImpl(e,t.getPatternTree(),i);return new g7(e,t,i,n)}case 3:{let[e,t,i]=r,n=this.compile(t,i);return this.match(e,n)}default:throw new Error("Invalid number of arguments")}}compile(r,e){let t=this.tokenize(r),i=new v7(t),n=new Ou(i),a=new S7(this.parser.grammarFileName,this.parser.vocabulary,this.parser.ruleNames,this.parser.getATNWithBypassAlts(),n);a.removeErrorListeners();let o=null;try{a.errorHandler=new A3,o=a.parse(e)}catch(l){throw l instanceof v3?l.cause:l instanceof c?l:l instanceof Error?new P7(l):l}if(n.LA(1)!==U.EOF)throw new T7;return new y7(this,r,e,o)}getLexer(){return this.lexer}getParser(){return this.parser}tokenize(r){let e=this.split(r),t=new Array;for(let i of e)if(i instanceof Yb){let n=i,a=n.tag[0];if(a===a.toUpperCase()){let o=this.parser.getTokenType(n.tag);if(o===U.INVALID_TYPE)throw new Error("Unknown token "+n.tag+" in pattern: "+r);let l=new Jb(n.tag,o,n.label);t.push(l)}else if(a===a.toLowerCase()){let o=this.parser.getRuleIndex(n.tag);if(o===-1)throw new Error("Unknown rule "+n.tag+" in pattern: "+r);let l=this.parser.getATNWithBypassAlts().ruleToTokenType[o];t.push(new $b(n.tag,l,n.label))}else throw new Error("invalid tag: "+n.tag+" in pattern: "+r)}else{let n=i,a=Gn.fromString(n.text);this.lexer.inputStream=a;let o=this.lexer.nextToken();for(;o.type!==U.EOF;)t.push(o),o=this.lexer.nextToken()}return t}split(r){let e=0,t=r.length,i=new Array,n=new Array,a=new Array;for(;e<t;)e===r.indexOf(this.escape+this.start,e)?e+=this.escape.length+this.start.length:e===r.indexOf(this.escape+this.stop,e)?e+=this.escape.length+this.stop.length:e===r.indexOf(this.start,e)?(n.push(e),e+=this.start.length):e===r.indexOf(this.stop,e)?(a.push(e),e+=this.stop.length):e++;if(n.length>a.length)throw new Error("unterminated tag in pattern: "+r);if(n.length<a.length)throw new Error("missing start tag in pattern: "+r);let o=n.length;for(let l=0;l<o;l++)if(n[l]>=a[l])throw new Error("tag delimiters out of order in pattern: "+r);if(o===0){let l=r.substring(0,t);i.push(new Fn(l))}if(o>0&&n[0]>0){let l=r.substring(0,n[0]);i.push(new Fn(l))}for(let l=0;l<o;l++){let d=r.substring(n[l]+this.start.length,a[l]),f=d,b,E=d.indexOf(":");if(E>=0&&(b=d.substring(0,E),f=d.substring(E+1,d.length)),i.push(new Yb(b,f)),l+1<o){let A=r.substring(a[l]+this.stop.length,n[l+1]);i.push(new Fn(A))}}if(o>0){let l=a[o-1]+this.stop.length;if(l<t){let d=r.substring(l,t);i.push(new Fn(d))}}for(let l=0;l<i.length;l++){let d=i[l];if(d instanceof Fn){let f=d,b=f.text.replaceAll(this.escape,"");b.length<f.text.length&&(i[l]=new Fn(b))}}return i}matchImpl(r,e,t){if(r instanceof ct&&e instanceof ct){let i=r,n=e,a;if(i.getSymbol().type===n.getSymbol().type)if(n.getSymbol()instanceof Jb){let o=n.getSymbol();t.map(o.tokenName,r),o.label!==void 0&&t.map(o.label,r)}else i.getText()===n.getText()||a||(a=i);else a||(a=i);return a}if(r instanceof u&&e instanceof u){let i,n=this.getRuleTagToken(e);if(n)return r.ruleIndex===e.ruleIndex?(t.map(n.ruleName,r),n.label&&t.map(n.label,r)):i||(i=r),i;if(r.getChildCount()!==e.getChildCount())return i||(i=r),i;let a=r.getChildCount();for(let o=0;o<a;o++){let l=this.matchImpl(r.getChild(o),e.getChild(o),t);if(l)return l}return i}return r}getRuleTagToken(r){if(r instanceof u&&r.getChildCount()===1&&r.getChild(0)instanceof ct){let e=r.getChild(0);if(e.getSymbol()instanceof $b)return e.getSymbol()}}},H9=class extends Wn{static{v(this,"DiagnosticErrorListener")}exactOnly;constructor(r){super(),this.exactOnly=r??!0}reportAmbiguity=v((r,e,t,i,n,a,o)=>{if(this.exactOnly&&!n)return;let l=this.getDecisionDescription(r,e),d=this.getConflictingAlts(a,o),f=r.tokenStream?.getTextFromInterval(xe.of(t,i)),b=`reportAmbiguity d=${l}: ambigAlts=${d}, input='${f}'`;r.notifyErrorListeners(b,null,null)},"reportAmbiguity");reportAttemptingFullContext=v((r,e,t,i,n,a)=>{let o=this.getDecisionDescription(r,e),l=r.tokenStream?.getTextFromInterval(xe.of(t,i)),d=`reportAttemptingFullContext d=${o}, input='${l}'`;r.notifyErrorListeners(d,null,null)},"reportAttemptingFullContext");reportContextSensitivity=v((r,e,t,i,n,a)=>{let o=this.getDecisionDescription(r,e),l=r.tokenStream?.getTextFromInterval(xe.of(t,i)),d=`reportContextSensitivity d=${o}, input='${l}'`;r.notifyErrorListeners(d,null,null)},"reportContextSensitivity");getDecisionDescription=v((r,e)=>{let t=e.decision,i=e.atnStartState.ruleIndex,n=r.ruleNames;if(i<0||i>=n.length)return t.toString();let a=n[i];return a.length===0?t.toString():`${t} (${a})`},"getDecisionDescription");getConflictingAlts=v((r,e)=>{if(r)return r;let t=new Rr;for(let i=0;i<e.configs.length;i++)t.set(e.configs[i].alt);return t},"getConflictingAlts")},B9=class extends gr{static{v(this,"LexerInterpreter")}decisionToDFA;sharedContextCache=new Fi;#e;#t;#i;#r;#n;#s;constructor(r,e,t,i,n,a,o){if(super(o),a.grammarType!==Q.LEXER)throw new Error("IllegalArgumentException: The ATN must be a lexer ATN.");this.#e=r,this.#t=a,this.#i=t.slice(0),this.#r=i.slice(0),this.#n=n.slice(0),this.#s=e,this.decisionToDFA=a.decisionToState.map((l,d)=>new Dr(l,d)),this.interpreter=new jn(this,a,this.decisionToDFA,this.sharedContextCache)}get atn(){return this.#t}get grammarFileName(){return this.#e}get ruleNames(){return this.#i}get channelNames(){return this.#r}get modeNames(){return this.#n}get vocabulary(){return this.#s}get serializedATN(){throw new Error("The LexerInterpreter does not support the serializedATN property.")}},_9=class Ui{static{v(this,"RuntimeMetaData")}static VERSION="4.13.1";static getRuntimeVersion(){return Ui.VERSION}static checkVersion(e,t){let i=Ui.VERSION,n=!1,a=!1;n=i!==e&&Ui.getMajorMinorVersion(i)!==Ui.getMajorMinorVersion(e),a=i!==t&&Ui.getMajorMinorVersion(i)!==Ui.getMajorMinorVersion(t),n&&console.error(`ANTLR Tool version ${e} used for code generation does not match the current runtime version ${i}`),a&&console.error(`ANTLR Runtime version ${t} used for parser compilation does not match the current runtime version ${i}`)}static getMajorMinorVersion(e){let t=e.indexOf("."),i=t>=0?e.indexOf(".",t+1):-1,n=e.indexOf("-"),a=e.length;return i>=0&&(a=Math.min(a,i)),n>=0&&(a=Math.min(a,n)),e.substring(0,a)}},V9=class wi{static{v(this,"TokenStreamRewriter")}static DEFAULT_PROGRAM_NAME="default";static PROGRAM_INIT_SIZE=100;static MIN_TOKEN_INDEX=0;tokens;programs=new Map;lastRewriteTokenIndexes;constructor(e){this.tokens=e}getTokenStream(){return this.tokens}insertAfter(e,t,i=wi.DEFAULT_PROGRAM_NAME){let n;typeof e=="number"?n=e:n=e.tokenIndex;let a=this.getProgram(i),o=new Xb(this.tokens,n,a.length,t);a.push(o)}insertBefore(e,t,i=wi.DEFAULT_PROGRAM_NAME){let n;typeof e=="number"?n=e:n=e.tokenIndex;let a=this.getProgram(i),o=new Bn(this.tokens,n,a.length,t);a.push(o)}replaceSingle(e,t,i=wi.DEFAULT_PROGRAM_NAME){this.replace(e,e,t,i)}replace(e,t,i,n=wi.DEFAULT_PROGRAM_NAME){if(typeof e!="number"&&(e=e.tokenIndex),typeof t!="number"&&(t=t.tokenIndex),e>t||e<0||t<0||t>=this.tokens.size)throw new RangeError(`replace: range invalid: ${e}..${t}(size=${this.tokens.size})`);let a=this.getProgram(n),o=new Tu(this.tokens,e,t,a.length,i);a.push(o)}delete(e,t,i=wi.DEFAULT_PROGRAM_NAME){t==null&&(t=e),this.replace(e,t,null,i)}getProgram(e){let t=this.programs.get(e);return t==null&&(t=this.initializeProgram(e)),t}initializeProgram(e){let t=[];return this.programs.set(e,t),t}getText(e,t=wi.DEFAULT_PROGRAM_NAME){let i;e instanceof xe?i=e:i=new xe(0,this.tokens.size-1),typeof e=="string"&&(t=e);let n=this.programs.get(t),a=i.start,o=i.stop;if(o>this.tokens.size-1&&(o=this.tokens.size-1),a<0&&(a=0),n==null||n.length===0)return this.tokens.getTextFromInterval(new xe(a,o));let l=[],d=this.reduceToSingleOperationPerIndex(n),f=a;for(;f<=o&&f<this.tokens.size;){let b=d.get(f);d.delete(f);let E=this.tokens.get(f);b==null?(E.type!==U.EOF&&l.push(String(E.text)),f++):f=b.execute(l)}if(o===this.tokens.size-1)for(let b of d.values())b&&b.index>=this.tokens.size-1&&l.push(String(b.text));return l.join("")}reduceToSingleOperationPerIndex(e){for(let i=0;i<e.length;i++){let n=e[i];if(n==null||!(n instanceof Tu))continue;let a=n,o=this.getKindOfOps(e,Bn,i);for(let d of o)d.index===a.index?(e[d.instructionIndex]=null,a.text=String(d.text)+(a.text!=null?a.text.toString():"")):d.index>a.index&&d.index<=a.lastIndex&&(e[d.instructionIndex]=null);let l=this.getKindOfOps(e,Tu,i);for(let d of l){if(d.index>=a.index&&d.lastIndex<=a.lastIndex){e[d.instructionIndex]=null;continue}let f=d.lastIndex<a.index||d.index>a.lastIndex;if(d.text==null&&a.text==null&&!f)e[d.instructionIndex]=null,a.index=Math.min(d.index,a.index),a.lastIndex=Math.max(d.lastIndex,a.lastIndex);else if(!f)throw new Error(`replace op boundaries of ${a} overlap with previous ${d}`)}}for(let i=0;i<e.length;i++){let n=e[i];if(n==null||!(n instanceof Bn))continue;let a=n,o=this.getKindOfOps(e,Bn,i);for(let d of o)d.index===a.index&&(d instanceof Xb?(a.text=this.catOpText(d.text,a.text),e[d.instructionIndex]=null):d instanceof Bn&&(a.text=this.catOpText(a.text,d.text),e[d.instructionIndex]=null));let l=this.getKindOfOps(e,Tu,i);for(let d of l){if(a.index===d.index){d.text=this.catOpText(a.text,d.text),e[i]=null;continue}if(a.index>=d.index&&a.index<=d.lastIndex)throw new Error(`insert op ${a} within boundaries of previous ${d}`)}}let t=new Map;for(let i of e)if(i!=null){if(t.get(i.index)!=null)throw new Error("should only be one op per index");t.set(i.index,i)}return t}catOpText(e,t){let i="",n="";return e!=null&&(i=e.toString()),t!=null&&(n=t.toString()),i+n}getKindOfOps(e,t,i){return e.slice(0,i).filter(n=>n&&n instanceof t)}},FR=class{static{v(this,"RewriteOperation")}instructionIndex;index;text;tokens;constructor(r,e,t,i){this.tokens=r,this.instructionIndex=t,this.index=e,this.text=i===void 0?"":i}execute(r){return this.index}toString(){return"<RewriteOperation@"+this.tokens.get(this.index)+':"'+this.text+'">'}},Bn=class extends FR{static{v(this,"InsertBeforeOp")}constructor(r,e,t,i){super(r,e,t,i)}execute(r){return this.text&&r.push(this.text.toString()),this.tokens.get(this.index).type!==U.EOF&&r.push(String(this.tokens.get(this.index).text)),this.index+1}toString(){return"<InsertBeforeOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},Xb=class extends Bn{static{v(this,"InsertAfterOp")}constructor(r,e,t,i){super(r,e+1,t,i)}toString(){return"<InsertAfterOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},Tu=class extends FR{static{v(this,"ReplaceOp")}lastIndex;constructor(r,e,t,i,n){super(r,e,i,n),this.lastIndex=t}execute(r){return this.text&&r.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+'">'}},q9=class{static{v(this,"UnbufferedTokenStream")}tokenSource;tokens;n;p=0;numMarkers=0;lastToken;lastTokenBufferStart;currentTokenIndex=0;constructor(r,e){this.tokenSource=r,e=e??256,this.tokens=new Array(e),this.n=0,this.fill(1)}get(r){let e=this.getBufferStartIndex();if(r<e||r>=e+this.n)throw new Error("get("+r+") outside buffer: "+e+".."+(e+this.n));return this.tokens[r-e]}LT(r){if(r===-1)return this.lastToken;this.sync(r);let e=this.p+r-1;if(e<0)throw new Error("LT("+r+") gives negative index");return e>=this.n?this.tokens[this.n-1]:this.tokens[e]}LA(r){return this.LT(r).type}getText(){return""}getTextFromContext(r){return this.getTextFromInterval(r.getSourceInterval())}getTextFromInterval(r){let e=this.getBufferStartIndex(),t=e+this.tokens.length-1,i=r.start,n=r.stop;if(i<e||n>t)throw new Error("interval "+r+" not in token buffer window: "+e+".."+t);let a=i-e,o=n-e,l="";for(let d=a;d<=o;d++){let f=this.tokens[d];l+=f.text}return l}getTextFromRange(r,e){return this.getTextFromInterval(xe.of(r.tokenIndex,e.tokenIndex))}consume(){if(this.LA(1)===U.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 r=-this.numMarkers-1;return this.numMarkers++,r}release(r){let e=-this.numMarkers;if(r!==e)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(r){if(r===this.currentTokenIndex)return;r>this.currentTokenIndex&&(this.sync(r-this.currentTokenIndex),r=Math.min(r,this.getBufferStartIndex()+this.n-1));let e=this.getBufferStartIndex(),t=r-e;if(t<0)throw new Error("cannot seek to negative index "+r);if(t>=this.n)throw new Error("seek to index outside buffer: "+r+" not in "+e+".."+(e+this.n));this.p=t,this.currentTokenIndex=r,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(r){this.tokenSource.line=r}setColumn(r){this.tokenSource.column=r}sync(r){let e=this.p+r-1-this.n+1;e>0&&this.fill(e)}fill(r){for(let e=0;e<r;e++){if(this.n>0&&this.tokens[this.n-1].type===U.EOF)return e;let t=this.tokenSource.nextToken();this.add(t)}return r}add(r){this.n>=this.tokens.length&&(this.tokens.length=this.tokens.length*2),IR(r)&&r.setTokenIndex(this.getBufferStartIndex()+this.n),this.tokens[this.n++]=r}getBufferStartIndex(){return this.currentTokenIndex-this.p}};var Fu=class r extends gr{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 WS=225;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'","'!=='","'::>'","':>>'","'==='","'!='","'**'","'->'","'..'","'.?'","'::'","':='","':>'","'<='","'=='","'=>'","'>='","'??'","'@@'","'#'","'$'","'%'","'&'","'('","')'","'*'","'+'","','","'-'","'.'","'/'","':'","';'","'<'","'='","'>'","'?'","'@'","'['","']'","'^'","'{'","'|'","'}'","'~'"];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","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","WS"];constructor(e){super(e),this.interpreter=new jn(this,r._ATN,r.decisionsToDFA,new Fi)}get grammarFileName(){return"SysMLv2Lexer.g4"}get literalNames(){return r.literalNames}get symbolicNames(){return r.symbolicNames}get ruleNames(){return r.ruleNames}get serializedATN(){return r._serializedATN}get channelNames(){return r.channelNames}get modeNames(){return r.modeNames}static _serializedATN=[4,0,225,1950,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,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,1850,8,217,10,217,12,217,1853,9,217,1,218,1,218,1,218,1,218,5,218,1859,8,218,10,218,12,218,1862,9,218,1,218,1,218,1,219,1,219,1,219,1,219,5,219,1870,8,219,10,219,12,219,1873,9,219,1,219,1,219,1,220,4,220,1878,8,220,11,220,12,220,1879,1,221,5,221,1883,8,221,10,221,12,221,1886,9,221,1,221,1,221,4,221,1890,8,221,11,221,12,221,1891,1,221,1,221,3,221,1896,8,221,1,221,4,221,1899,8,221,11,221,12,221,1900,3,221,1903,8,221,1,221,4,221,1906,8,221,11,221,12,221,1907,1,221,1,221,3,221,1912,8,221,1,221,4,221,1915,8,221,11,221,12,221,1916,3,221,1919,8,221,1,222,1,222,1,222,1,222,5,222,1925,8,222,10,222,12,222,1928,9,222,1,222,1,222,1,222,1,223,1,223,1,223,1,223,5,223,1937,8,223,10,223,12,223,1940,9,223,1,223,1,223,1,224,4,224,1945,8,224,11,224,12,224,1946,1,224,1,224,1,1926,0,225,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,1,0,9,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,2,0,10,10,13,13,3,0,9,10,13,13,32,32,1967,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,1,451,1,0,0,0,3,457,1,0,0,0,5,466,1,0,0,0,7,473,1,0,0,0,9,480,1,0,0,0,11,486,1,0,0,0,13,492,1,0,0,0,15,498,1,0,0,0,17,502,1,0,0,0,19,511,1,0,0,0,21,522,1,0,0,0,23,531,1,0,0,0,25,535,1,0,0,0,27,538,1,0,0,0,29,545,1,0,0,0,31,552,1,0,0,0,33,558,1,0,0,0,35,565,1,0,0,0,37,568,1,0,0,0,39,578,1,0,0,0,41,587,1,0,0,0,43,592,1,0,0,0,45,600,1,0,0,0,47,605,1,0,0,0,49,608,1,0,0,0,51,613,1,0,0,0,53,618,1,0,0,0,55,625,1,0,0,0,57,631,1,0,0,0,59,642,1,0,0,0,61,650,1,0,0,0,63,660,1,0,0,0,65,668,1,0,0,0,67,678,1,0,0,0,69,689,1,0,0,0,71,701,1,0,0,0,73,709,1,0,0,0,75,720,1,0,0,0,77,730,1,0,0,0,79,736,1,0,0,0,81,745,1,0,0,0,83,756,1,0,0,0,85,764,1,0,0,0,87,773,1,0,0,0,89,780,1,0,0,0,91,784,1,0,0,0,93,792,1,0,0,0,95,800,1,0,0,0,97,811,1,0,0,0,99,819,1,0,0,0,101,831,1,0,0,0,103,842,1,0,0,0,105,851,1,0,0,0,107,854,1,0,0,0,109,858,1,0,0,0,111,863,1,0,0,0,113,867,1,0,0,0,115,873,1,0,0,0,117,878,1,0,0,0,119,884,1,0,0,0,121,892,1,0,0,0,123,897,1,0,0,0,125,904,1,0,0,0,127,909,1,0,0,0,129,915,1,0,0,0,131,923,1,0,0,0,133,932,1,0,0,0,135,942,1,0,0,0,137,949,1,0,0,0,139,955,1,0,0,0,141,960,1,0,0,0,143,964,1,0,0,0,145,969,1,0,0,0,147,975,1,0,0,0,149,980,1,0,0,0,151,989,1,0,0,0,153,997,1,0,0,0,155,1e3,1,0,0,0,157,1008,1,0,0,0,159,1015,1,0,0,0,161,1018,1,0,0,0,163,1026,1,0,0,0,165,1037,1,0,0,0,167,1043,1,0,0,0,169,1055,1,0,0,0,171,1065,1,0,0,0,173,1076,1,0,0,0,175,1080,1,0,0,0,177,1088,1,0,0,0,179,1098,1,0,0,0,181,1105,1,0,0,0,183,1110,1,0,0,0,185,1115,1,0,0,0,187,1124,1,0,0,0,189,1132,1,0,0,0,191,1139,1,0,0,0,193,1144,1,0,0,0,195,1151,1,0,0,0,197,1157,1,0,0,0,199,1165,1,0,0,0,201,1170,1,0,0,0,203,1180,1,0,0,0,205,1189,1,0,0,0,207,1202,1,0,0,0,209,1212,1,0,0,0,211,1216,1,0,0,0,213,1226,1,0,0,0,215,1230,1,0,0,0,217,1235,1,0,0,0,219,1245,1,0,0,0,221,1256,1,0,0,0,223,1259,1,0,0,0,225,1262,1,0,0,0,227,1270,1,0,0,0,229,1274,1,0,0,0,231,1282,1,0,0,0,233,1291,1,0,0,0,235,1296,1,0,0,0,237,1304,1,0,0,0,239,1309,1,0,0,0,241,1317,1,0,0,0,243,1327,1,0,0,0,245,1335,1,0,0,0,247,1345,1,0,0,0,249,1352,1,0,0,0,251,1362,1,0,0,0,253,1375,1,0,0,0,255,1379,1,0,0,0,257,1390,1,0,0,0,259,1397,1,0,0,0,261,1407,1,0,0,0,263,1411,1,0,0,0,265,1419,1,0,0,0,267,1431,1,0,0,0,269,1438,1,0,0,0,271,1446,1,0,0,0,273,1451,1,0,0,0,275,1460,1,0,0,0,277,1475,1,0,0,0,279,1487,1,0,0,0,281,1499,1,0,0,0,283,1508,1,0,0,0,285,1514,1,0,0,0,287,1519,1,0,0,0,289,1526,1,0,0,0,291,1540,1,0,0,0,293,1548,1,0,0,0,295,1555,1,0,0,0,297,1563,1,0,0,0,299,1571,1,0,0,0,301,1582,1,0,0,0,303,1592,1,0,0,0,305,1597,1,0,0,0,307,1607,1,0,0,0,309,1610,1,0,0,0,311,1621,1,0,0,0,313,1626,1,0,0,0,315,1631,1,0,0,0,317,1637,1,0,0,0,319,1644,1,0,0,0,321,1651,1,0,0,0,323,1657,1,0,0,0,325,1661,1,0,0,0,327,1665,1,0,0,0,329,1673,1,0,0,0,331,1683,1,0,0,0,333,1696,1,0,0,0,335,1703,1,0,0,0,337,1707,1,0,0,0,339,1712,1,0,0,0,341,1722,1,0,0,0,343,1727,1,0,0,0,345,1733,1,0,0,0,347,1737,1,0,0,0,349,1741,1,0,0,0,351,1745,1,0,0,0,353,1749,1,0,0,0,355,1753,1,0,0,0,357,1756,1,0,0,0,359,1759,1,0,0,0,361,1762,1,0,0,0,363,1765,1,0,0,0,365,1768,1,0,0,0,367,1771,1,0,0,0,369,1774,1,0,0,0,371,1777,1,0,0,0,373,1780,1,0,0,0,375,1783,1,0,0,0,377,1786,1,0,0,0,379,1789,1,0,0,0,381,1792,1,0,0,0,383,1795,1,0,0,0,385,1797,1,0,0,0,387,1799,1,0,0,0,389,1801,1,0,0,0,391,1803,1,0,0,0,393,1805,1,0,0,0,395,1807,1,0,0,0,397,1809,1,0,0,0,399,1811,1,0,0,0,401,1813,1,0,0,0,403,1815,1,0,0,0,405,1817,1,0,0,0,407,1819,1,0,0,0,409,1821,1,0,0,0,411,1823,1,0,0,0,413,1825,1,0,0,0,415,1827,1,0,0,0,417,1829,1,0,0,0,419,1831,1,0,0,0,421,1833,1,0,0,0,423,1835,1,0,0,0,425,1837,1,0,0,0,427,1839,1,0,0,0,429,1841,1,0,0,0,431,1843,1,0,0,0,433,1845,1,0,0,0,435,1847,1,0,0,0,437,1854,1,0,0,0,439,1865,1,0,0,0,441,1877,1,0,0,0,443,1918,1,0,0,0,445,1920,1,0,0,0,447,1932,1,0,0,0,449,1944,1,0,0,0,451,452,5,97,0,0,452,453,5,98,0,0,453,454,5,111,0,0,454,455,5,117,0,0,455,456,5,116,0,0,456,2,1,0,0,0,457,458,5,97,0,0,458,459,5,98,0,0,459,460,5,115,0,0,460,461,5,116,0,0,461,462,5,114,0,0,462,463,5,97,0,0,463,464,5,99,0,0,464,465,5,116,0,0,465,4,1,0,0,0,466,467,5,97,0,0,467,468,5,99,0,0,468,469,5,99,0,0,469,470,5,101,0,0,470,471,5,112,0,0,471,472,5,116,0,0,472,6,1,0,0,0,473,474,5,97,0,0,474,475,5,99,0,0,475,476,5,116,0,0,476,477,5,105,0,0,477,478,5,111,0,0,478,479,5,110,0,0,479,8,1,0,0,0,480,481,5,97,0,0,481,482,5,99,0,0,482,483,5,116,0,0,483,484,5,111,0,0,484,485,5,114,0,0,485,10,1,0,0,0,486,487,5,97,0,0,487,488,5,102,0,0,488,489,5,116,0,0,489,490,5,101,0,0,490,491,5,114,0,0,491,12,1,0,0,0,492,493,5,97,0,0,493,494,5,108,0,0,494,495,5,105,0,0,495,496,5,97,0,0,496,497,5,115,0,0,497,14,1,0,0,0,498,499,5,97,0,0,499,500,5,108,0,0,500,501,5,108,0,0,501,16,1,0,0,0,502,503,5,97,0,0,503,504,5,108,0,0,504,505,5,108,0,0,505,506,5,111,0,0,506,507,5,99,0,0,507,508,5,97,0,0,508,509,5,116,0,0,509,510,5,101,0,0,510,18,1,0,0,0,511,512,5,97,0,0,512,513,5,108,0,0,513,514,5,108,0,0,514,515,5,111,0,0,515,516,5,99,0,0,516,517,5,97,0,0,517,518,5,116,0,0,518,519,5,105,0,0,519,520,5,111,0,0,520,521,5,110,0,0,521,20,1,0,0,0,522,523,5,97,0,0,523,524,5,110,0,0,524,525,5,97,0,0,525,526,5,108,0,0,526,527,5,121,0,0,527,528,5,115,0,0,528,529,5,105,0,0,529,530,5,115,0,0,530,22,1,0,0,0,531,532,5,97,0,0,532,533,5,110,0,0,533,534,5,100,0,0,534,24,1,0,0,0,535,536,5,97,0,0,536,537,5,115,0,0,537,26,1,0,0,0,538,539,5,97,0,0,539,540,5,115,0,0,540,541,5,115,0,0,541,542,5,101,0,0,542,543,5,114,0,0,543,544,5,116,0,0,544,28,1,0,0,0,545,546,5,97,0,0,546,547,5,115,0,0,547,548,5,115,0,0,548,549,5,105,0,0,549,550,5,103,0,0,550,551,5,110,0,0,551,30,1,0,0,0,552,553,5,97,0,0,553,554,5,115,0,0,554,555,5,115,0,0,555,556,5,111,0,0,556,557,5,99,0,0,557,32,1,0,0,0,558,559,5,97,0,0,559,560,5,115,0,0,560,561,5,115,0,0,561,562,5,117,0,0,562,563,5,109,0,0,563,564,5,101,0,0,564,34,1,0,0,0,565,566,5,97,0,0,566,567,5,116,0,0,567,36,1,0,0,0,568,569,5,97,0,0,569,570,5,116,0,0,570,571,5,116,0,0,571,572,5,114,0,0,572,573,5,105,0,0,573,574,5,98,0,0,574,575,5,117,0,0,575,576,5,116,0,0,576,577,5,101,0,0,577,38,1,0,0,0,578,579,5,98,0,0,579,580,5,101,0,0,580,581,5,104,0,0,581,582,5,97,0,0,582,583,5,118,0,0,583,584,5,105,0,0,584,585,5,111,0,0,585,586,5,114,0,0,586,40,1,0,0,0,587,588,5,98,0,0,588,589,5,105,0,0,589,590,5,110,0,0,590,591,5,100,0,0,591,42,1,0,0,0,592,593,5,98,0,0,593,594,5,105,0,0,594,595,5,110,0,0,595,596,5,100,0,0,596,597,5,105,0,0,597,598,5,110,0,0,598,599,5,103,0,0,599,44,1,0,0,0,600,601,5,98,0,0,601,602,5,111,0,0,602,603,5,111,0,0,603,604,5,108,0,0,604,46,1,0,0,0,605,606,5,98,0,0,606,607,5,121,0,0,607,48,1,0,0,0,608,609,5,99,0,0,609,610,5,97,0,0,610,611,5,108,0,0,611,612,5,99,0,0,612,50,1,0,0,0,613,614,5,99,0,0,614,615,5,97,0,0,615,616,5,115,0,0,616,617,5,101,0,0,617,52,1,0,0,0,618,619,5,99,0,0,619,620,5,104,0,0,620,621,5,97,0,0,621,622,5,105,0,0,622,623,5,110,0,0,623,624,5,115,0,0,624,54,1,0,0,0,625,626,5,99,0,0,626,627,5,108,0,0,627,628,5,97,0,0,628,629,5,115,0,0,629,630,5,115,0,0,630,56,1,0,0,0,631,632,5,99,0,0,632,633,5,108,0,0,633,634,5,97,0,0,634,635,5,115,0,0,635,636,5,115,0,0,636,637,5,105,0,0,637,638,5,102,0,0,638,639,5,105,0,0,639,640,5,101,0,0,640,641,5,114,0,0,641,58,1,0,0,0,642,643,5,99,0,0,643,644,5,111,0,0,644,645,5,109,0,0,645,646,5,109,0,0,646,647,5,101,0,0,647,648,5,110,0,0,648,649,5,116,0,0,649,60,1,0,0,0,650,651,5,99,0,0,651,652,5,111,0,0,652,653,5,109,0,0,653,654,5,112,0,0,654,655,5,111,0,0,655,656,5,115,0,0,656,657,5,105,0,0,657,658,5,116,0,0,658,659,5,101,0,0,659,62,1,0,0,0,660,661,5,99,0,0,661,662,5,111,0,0,662,663,5,110,0,0,663,664,5,99,0,0,664,665,5,101,0,0,665,666,5,114,0,0,666,667,5,110,0,0,667,64,1,0,0,0,668,669,5,99,0,0,669,670,5,111,0,0,670,671,5,110,0,0,671,672,5,106,0,0,672,673,5,117,0,0,673,674,5,103,0,0,674,675,5,97,0,0,675,676,5,116,0,0,676,677,5,101,0,0,677,66,1,0,0,0,678,679,5,99,0,0,679,680,5,111,0,0,680,681,5,110,0,0,681,682,5,106,0,0,682,683,5,117,0,0,683,684,5,103,0,0,684,685,5,97,0,0,685,686,5,116,0,0,686,687,5,101,0,0,687,688,5,115,0,0,688,68,1,0,0,0,689,690,5,99,0,0,690,691,5,111,0,0,691,692,5,110,0,0,692,693,5,106,0,0,693,694,5,117,0,0,694,695,5,103,0,0,695,696,5,97,0,0,696,697,5,116,0,0,697,698,5,105,0,0,698,699,5,111,0,0,699,700,5,110,0,0,700,70,1,0,0,0,701,702,5,99,0,0,702,703,5,111,0,0,703,704,5,110,0,0,704,705,5,110,0,0,705,706,5,101,0,0,706,707,5,99,0,0,707,708,5,116,0,0,708,72,1,0,0,0,709,710,5,99,0,0,710,711,5,111,0,0,711,712,5,110,0,0,712,713,5,110,0,0,713,714,5,101,0,0,714,715,5,99,0,0,715,716,5,116,0,0,716,717,5,105,0,0,717,718,5,111,0,0,718,719,5,110,0,0,719,74,1,0,0,0,720,721,5,99,0,0,721,722,5,111,0,0,722,723,5,110,0,0,723,724,5,110,0,0,724,725,5,101,0,0,725,726,5,99,0,0,726,727,5,116,0,0,727,728,5,111,0,0,728,729,5,114,0,0,729,76,1,0,0,0,730,731,5,99,0,0,731,732,5,111,0,0,732,733,5,110,0,0,733,734,5,115,0,0,734,735,5,116,0,0,735,78,1,0,0,0,736,737,5,99,0,0,737,738,5,111,0,0,738,739,5,110,0,0,739,740,5,115,0,0,740,741,5,116,0,0,741,742,5,97,0,0,742,743,5,110,0,0,743,744,5,116,0,0,744,80,1,0,0,0,745,746,5,99,0,0,746,747,5,111,0,0,747,748,5,110,0,0,748,749,5,115,0,0,749,750,5,116,0,0,750,751,5,114,0,0,751,752,5,97,0,0,752,753,5,105,0,0,753,754,5,110,0,0,754,755,5,116,0,0,755,82,1,0,0,0,756,757,5,99,0,0,757,758,5,114,0,0,758,759,5,111,0,0,759,760,5,115,0,0,760,761,5,115,0,0,761,762,5,101,0,0,762,763,5,115,0,0,763,84,1,0,0,0,764,765,5,100,0,0,765,766,5,97,0,0,766,767,5,116,0,0,767,768,5,97,0,0,768,769,5,116,0,0,769,770,5,121,0,0,770,771,5,112,0,0,771,772,5,101,0,0,772,86,1,0,0,0,773,774,5,100,0,0,774,775,5,101,0,0,775,776,5,99,0,0,776,777,5,105,0,0,777,778,5,100,0,0,778,779,5,101,0,0,779,88,1,0,0,0,780,781,5,100,0,0,781,782,5,101,0,0,782,783,5,102,0,0,783,90,1,0,0,0,784,785,5,100,0,0,785,786,5,101,0,0,786,787,5,102,0,0,787,788,5,97,0,0,788,789,5,117,0,0,789,790,5,108,0,0,790,791,5,116,0,0,791,92,1,0,0,0,792,793,5,100,0,0,793,794,5,101,0,0,794,795,5,102,0,0,795,796,5,105,0,0,796,797,5,110,0,0,797,798,5,101,0,0,798,799,5,100,0,0,799,94,1,0,0,0,800,801,5,100,0,0,801,802,5,101,0,0,802,803,5,112,0,0,803,804,5,101,0,0,804,805,5,110,0,0,805,806,5,100,0,0,806,807,5,101,0,0,807,808,5,110,0,0,808,809,5,99,0,0,809,810,5,121,0,0,810,96,1,0,0,0,811,812,5,100,0,0,812,813,5,101,0,0,813,814,5,114,0,0,814,815,5,105,0,0,815,816,5,118,0,0,816,817,5,101,0,0,817,818,5,100,0,0,818,98,1,0,0,0,819,820,5,100,0,0,820,821,5,105,0,0,821,822,5,102,0,0,822,823,5,102,0,0,823,824,5,101,0,0,824,825,5,114,0,0,825,826,5,101,0,0,826,827,5,110,0,0,827,828,5,99,0,0,828,829,5,101,0,0,829,830,5,115,0,0,830,100,1,0,0,0,831,832,5,100,0,0,832,833,5,105,0,0,833,834,5,115,0,0,834,835,5,106,0,0,835,836,5,111,0,0,836,837,5,105,0,0,837,838,5,110,0,0,838,839,5,105,0,0,839,840,5,110,0,0,840,841,5,103,0,0,841,102,1,0,0,0,842,843,5,100,0,0,843,844,5,105,0,0,844,845,5,115,0,0,845,846,5,106,0,0,846,847,5,111,0,0,847,848,5,105,0,0,848,849,5,110,0,0,849,850,5,116,0,0,850,104,1,0,0,0,851,852,5,100,0,0,852,853,5,111,0,0,853,106,1,0,0,0,854,855,5,100,0,0,855,856,5,111,0,0,856,857,5,99,0,0,857,108,1,0,0,0,858,859,5,101,0,0,859,860,5,108,0,0,860,861,5,115,0,0,861,862,5,101,0,0,862,110,1,0,0,0,863,864,5,101,0,0,864,865,5,110,0,0,865,866,5,100,0,0,866,112,1,0,0,0,867,868,5,101,0,0,868,869,5,110,0,0,869,870,5,116,0,0,870,871,5,114,0,0,871,872,5,121,0,0,872,114,1,0,0,0,873,874,5,101,0,0,874,875,5,110,0,0,875,876,5,117,0,0,876,877,5,109,0,0,877,116,1,0,0,0,878,879,5,101,0,0,879,880,5,118,0,0,880,881,5,101,0,0,881,882,5,110,0,0,882,883,5,116,0,0,883,118,1,0,0,0,884,885,5,101,0,0,885,886,5,120,0,0,886,887,5,104,0,0,887,888,5,105,0,0,888,889,5,98,0,0,889,890,5,105,0,0,890,891,5,116,0,0,891,120,1,0,0,0,892,893,5,101,0,0,893,894,5,120,0,0,894,895,5,105,0,0,895,896,5,116,0,0,896,122,1,0,0,0,897,898,5,101,0,0,898,899,5,120,0,0,899,900,5,112,0,0,900,901,5,111,0,0,901,902,5,115,0,0,902,903,5,101,0,0,903,124,1,0,0,0,904,905,5,101,0,0,905,906,5,120,0,0,906,907,5,112,0,0,907,908,5,114,0,0,908,126,1,0,0,0,909,910,5,102,0,0,910,911,5,97,0,0,911,912,5,108,0,0,912,913,5,115,0,0,913,914,5,101,0,0,914,128,1,0,0,0,915,916,5,102,0,0,916,917,5,101,0,0,917,918,5,97,0,0,918,919,5,116,0,0,919,920,5,117,0,0,920,921,5,114,0,0,921,922,5,101,0,0,922,130,1,0,0,0,923,924,5,102,0,0,924,925,5,101,0,0,925,926,5,97,0,0,926,927,5,116,0,0,927,928,5,117,0,0,928,929,5,114,0,0,929,930,5,101,0,0,930,931,5,100,0,0,931,132,1,0,0,0,932,933,5,102,0,0,933,934,5,101,0,0,934,935,5,97,0,0,935,936,5,116,0,0,936,937,5,117,0,0,937,938,5,114,0,0,938,939,5,105,0,0,939,940,5,110,0,0,940,941,5,103,0,0,941,134,1,0,0,0,942,943,5,102,0,0,943,944,5,105,0,0,944,945,5,108,0,0,945,946,5,116,0,0,946,947,5,101,0,0,947,948,5,114,0,0,948,136,1,0,0,0,949,950,5,102,0,0,950,951,5,105,0,0,951,952,5,114,0,0,952,953,5,115,0,0,953,954,5,116,0,0,954,138,1,0,0,0,955,956,5,102,0,0,956,957,5,108,0,0,957,958,5,111,0,0,958,959,5,119,0,0,959,140,1,0,0,0,960,961,5,102,0,0,961,962,5,111,0,0,962,963,5,114,0,0,963,142,1,0,0,0,964,965,5,102,0,0,965,966,5,111,0,0,966,967,5,114,0,0,967,968,5,107,0,0,968,144,1,0,0,0,969,970,5,102,0,0,970,971,5,114,0,0,971,972,5,97,0,0,972,973,5,109,0,0,973,974,5,101,0,0,974,146,1,0,0,0,975,976,5,102,0,0,976,977,5,114,0,0,977,978,5,111,0,0,978,979,5,109,0,0,979,148,1,0,0,0,980,981,5,102,0,0,981,982,5,117,0,0,982,983,5,110,0,0,983,984,5,99,0,0,984,985,5,116,0,0,985,986,5,105,0,0,986,987,5,111,0,0,987,988,5,110,0,0,988,150,1,0,0,0,989,990,5,104,0,0,990,991,5,97,0,0,991,992,5,115,0,0,992,993,5,116,0,0,993,994,5,121,0,0,994,995,5,112,0,0,995,996,5,101,0,0,996,152,1,0,0,0,997,998,5,105,0,0,998,999,5,102,0,0,999,154,1,0,0,0,1e3,1001,5,105,0,0,1001,1002,5,109,0,0,1002,1003,5,112,0,0,1003,1004,5,108,0,0,1004,1005,5,105,0,0,1005,1006,5,101,0,0,1006,1007,5,115,0,0,1007,156,1,0,0,0,1008,1009,5,105,0,0,1009,1010,5,109,0,0,1010,1011,5,112,0,0,1011,1012,5,111,0,0,1012,1013,5,114,0,0,1013,1014,5,116,0,0,1014,158,1,0,0,0,1015,1016,5,105,0,0,1016,1017,5,110,0,0,1017,160,1,0,0,0,1018,1019,5,105,0,0,1019,1020,5,110,0,0,1020,1021,5,99,0,0,1021,1022,5,108,0,0,1022,1023,5,117,0,0,1023,1024,5,100,0,0,1024,1025,5,101,0,0,1025,162,1,0,0,0,1026,1027,5,105,0,0,1027,1028,5,110,0,0,1028,1029,5,100,0,0,1029,1030,5,105,0,0,1030,1031,5,118,0,0,1031,1032,5,105,0,0,1032,1033,5,100,0,0,1033,1034,5,117,0,0,1034,1035,5,97,0,0,1035,1036,5,108,0,0,1036,164,1,0,0,0,1037,1038,5,105,0,0,1038,1039,5,110,0,0,1039,1040,5,111,0,0,1040,1041,5,117,0,0,1041,1042,5,116,0,0,1042,166,1,0,0,0,1043,1044,5,105,0,0,1044,1045,5,110,0,0,1045,1046,5,116,0,0,1046,1047,5,101,0,0,1047,1048,5,114,0,0,1048,1049,5,97,0,0,1049,1050,5,99,0,0,1050,1051,5,116,0,0,1051,1052,5,105,0,0,1052,1053,5,111,0,0,1053,1054,5,110,0,0,1054,168,1,0,0,0,1055,1056,5,105,0,0,1056,1057,5,110,0,0,1057,1058,5,116,0,0,1058,1059,5,101,0,0,1059,1060,5,114,0,0,1060,1061,5,102,0,0,1061,1062,5,97,0,0,1062,1063,5,99,0,0,1063,1064,5,101,0,0,1064,170,1,0,0,0,1065,1066,5,105,0,0,1066,1067,5,110,0,0,1067,1068,5,116,0,0,1068,1069,5,101,0,0,1069,1070,5,114,0,0,1070,1071,5,115,0,0,1071,1072,5,101,0,0,1072,1073,5,99,0,0,1073,1074,5,116,0,0,1074,1075,5,115,0,0,1075,172,1,0,0,0,1076,1077,5,105,0,0,1077,1078,5,110,0,0,1078,1079,5,118,0,0,1079,174,1,0,0,0,1080,1081,5,105,0,0,1081,1082,5,110,0,0,1082,1083,5,118,0,0,1083,1084,5,101,0,0,1084,1085,5,114,0,0,1085,1086,5,115,0,0,1086,1087,5,101,0,0,1087,176,1,0,0,0,1088,1089,5,105,0,0,1089,1090,5,110,0,0,1090,1091,5,118,0,0,1091,1092,5,101,0,0,1092,1093,5,114,0,0,1093,1094,5,116,0,0,1094,1095,5,105,0,0,1095,1096,5,110,0,0,1096,1097,5,103,0,0,1097,178,1,0,0,0,1098,1099,5,105,0,0,1099,1100,5,115,0,0,1100,1101,5,116,0,0,1101,1102,5,121,0,0,1102,1103,5,112,0,0,1103,1104,5,101,0,0,1104,180,1,0,0,0,1105,1106,5,105,0,0,1106,1107,5,116,0,0,1107,1108,5,101,0,0,1108,1109,5,109,0,0,1109,182,1,0,0,0,1110,1111,5,106,0,0,1111,1112,5,111,0,0,1112,1113,5,105,0,0,1113,1114,5,110,0,0,1114,184,1,0,0,0,1115,1116,5,108,0,0,1116,1117,5,97,0,0,1117,1118,5,110,0,0,1118,1119,5,103,0,0,1119,1120,5,117,0,0,1120,1121,5,97,0,0,1121,1122,5,103,0,0,1122,1123,5,101,0,0,1123,186,1,0,0,0,1124,1125,5,108,0,0,1125,1126,5,105,0,0,1126,1127,5,98,0,0,1127,1128,5,114,0,0,1128,1129,5,97,0,0,1129,1130,5,114,0,0,1130,1131,5,121,0,0,1131,188,1,0,0,0,1132,1133,5,108,0,0,1133,1134,5,111,0,0,1134,1135,5,99,0,0,1135,1136,5,97,0,0,1136,1137,5,108,0,0,1137,1138,5,101,0,0,1138,190,1,0,0,0,1139,1140,5,108,0,0,1140,1141,5,111,0,0,1141,1142,5,111,0,0,1142,1143,5,112,0,0,1143,192,1,0,0,0,1144,1145,5,109,0,0,1145,1146,5,101,0,0,1146,1147,5,109,0,0,1147,1148,5,98,0,0,1148,1149,5,101,0,0,1149,1150,5,114,0,0,1150,194,1,0,0,0,1151,1152,5,109,0,0,1152,1153,5,101,0,0,1153,1154,5,114,0,0,1154,1155,5,103,0,0,1155,1156,5,101,0,0,1156,196,1,0,0,0,1157,1158,5,109,0,0,1158,1159,5,101,0,0,1159,1160,5,115,0,0,1160,1161,5,115,0,0,1161,1162,5,97,0,0,1162,1163,5,103,0,0,1163,1164,5,101,0,0,1164,198,1,0,0,0,1165,1166,5,109,0,0,1166,1167,5,101,0,0,1167,1168,5,116,0,0,1168,1169,5,97,0,0,1169,200,1,0,0,0,1170,1171,5,109,0,0,1171,1172,5,101,0,0,1172,1173,5,116,0,0,1173,1174,5,97,0,0,1174,1175,5,99,0,0,1175,1176,5,108,0,0,1176,1177,5,97,0,0,1177,1178,5,115,0,0,1178,1179,5,115,0,0,1179,202,1,0,0,0,1180,1181,5,109,0,0,1181,1182,5,101,0,0,1182,1183,5,116,0,0,1183,1184,5,97,0,0,1184,1185,5,100,0,0,1185,1186,5,97,0,0,1186,1187,5,116,0,0,1187,1188,5,97,0,0,1188,204,1,0,0,0,1189,1190,5,109,0,0,1190,1191,5,117,0,0,1191,1192,5,108,0,0,1192,1193,5,116,0,0,1193,1194,5,105,0,0,1194,1195,5,112,0,0,1195,1196,5,108,0,0,1196,1197,5,105,0,0,1197,1198,5,99,0,0,1198,1199,5,105,0,0,1199,1200,5,116,0,0,1200,1201,5,121,0,0,1201,206,1,0,0,0,1202,1203,5,110,0,0,1203,1204,5,97,0,0,1204,1205,5,109,0,0,1205,1206,5,101,0,0,1206,1207,5,115,0,0,1207,1208,5,112,0,0,1208,1209,5,97,0,0,1209,1210,5,99,0,0,1210,1211,5,101,0,0,1211,208,1,0,0,0,1212,1213,5,110,0,0,1213,1214,5,101,0,0,1214,1215,5,119,0,0,1215,210,1,0,0,0,1216,1217,5,110,0,0,1217,1218,5,111,0,0,1218,1219,5,110,0,0,1219,1220,5,117,0,0,1220,1221,5,110,0,0,1221,1222,5,105,0,0,1222,1223,5,113,0,0,1223,1224,5,117,0,0,1224,1225,5,101,0,0,1225,212,1,0,0,0,1226,1227,5,110,0,0,1227,1228,5,111,0,0,1228,1229,5,116,0,0,1229,214,1,0,0,0,1230,1231,5,110,0,0,1231,1232,5,117,0,0,1232,1233,5,108,0,0,1233,1234,5,108,0,0,1234,216,1,0,0,0,1235,1236,5,111,0,0,1236,1237,5,98,0,0,1237,1238,5,106,0,0,1238,1239,5,101,0,0,1239,1240,5,99,0,0,1240,1241,5,116,0,0,1241,1242,5,105,0,0,1242,1243,5,118,0,0,1243,1244,5,101,0,0,1244,218,1,0,0,0,1245,1246,5,111,0,0,1246,1247,5,99,0,0,1247,1248,5,99,0,0,1248,1249,5,117,0,0,1249,1250,5,114,0,0,1250,1251,5,114,0,0,1251,1252,5,101,0,0,1252,1253,5,110,0,0,1253,1254,5,99,0,0,1254,1255,5,101,0,0,1255,220,1,0,0,0,1256,1257,5,111,0,0,1257,1258,5,102,0,0,1258,222,1,0,0,0,1259,1260,5,111,0,0,1260,1261,5,114,0,0,1261,224,1,0,0,0,1262,1263,5,111,0,0,1263,1264,5,114,0,0,1264,1265,5,100,0,0,1265,1266,5,101,0,0,1266,1267,5,114,0,0,1267,1268,5,101,0,0,1268,1269,5,100,0,0,1269,226,1,0,0,0,1270,1271,5,111,0,0,1271,1272,5,117,0,0,1272,1273,5,116,0,0,1273,228,1,0,0,0,1274,1275,5,112,0,0,1275,1276,5,97,0,0,1276,1277,5,99,0,0,1277,1278,5,107,0,0,1278,1279,5,97,0,0,1279,1280,5,103,0,0,1280,1281,5,101,0,0,1281,230,1,0,0,0,1282,1283,5,112,0,0,1283,1284,5,97,0,0,1284,1285,5,114,0,0,1285,1286,5,97,0,0,1286,1287,5,108,0,0,1287,1288,5,108,0,0,1288,1289,5,101,0,0,1289,1290,5,108,0,0,1290,232,1,0,0,0,1291,1292,5,112,0,0,1292,1293,5,97,0,0,1293,1294,5,114,0,0,1294,1295,5,116,0,0,1295,234,1,0,0,0,1296,1297,5,112,0,0,1297,1298,5,101,0,0,1298,1299,5,114,0,0,1299,1300,5,102,0,0,1300,1301,5,111,0,0,1301,1302,5,114,0,0,1302,1303,5,109,0,0,1303,236,1,0,0,0,1304,1305,5,112,0,0,1305,1306,5,111,0,0,1306,1307,5,114,0,0,1307,1308,5,116,0,0,1308,238,1,0,0,0,1309,1310,5,112,0,0,1310,1311,5,111,0,0,1311,1312,5,114,0,0,1312,1313,5,116,0,0,1313,1314,5,105,0,0,1314,1315,5,111,0,0,1315,1316,5,110,0,0,1316,240,1,0,0,0,1317,1318,5,112,0,0,1318,1319,5,114,0,0,1319,1320,5,101,0,0,1320,1321,5,100,0,0,1321,1322,5,105,0,0,1322,1323,5,99,0,0,1323,1324,5,97,0,0,1324,1325,5,116,0,0,1325,1326,5,101,0,0,1326,242,1,0,0,0,1327,1328,5,112,0,0,1328,1329,5,114,0,0,1329,1330,5,105,0,0,1330,1331,5,118,0,0,1331,1332,5,97,0,0,1332,1333,5,116,0,0,1333,1334,5,101,0,0,1334,244,1,0,0,0,1335,1336,5,112,0,0,1336,1337,5,114,0,0,1337,1338,5,111,0,0,1338,1339,5,116,0,0,1339,1340,5,101,0,0,1340,1341,5,99,0,0,1341,1342,5,116,0,0,1342,1343,5,101,0,0,1343,1344,5,100,0,0,1344,246,1,0,0,0,1345,1346,5,112,0,0,1346,1347,5,117,0,0,1347,1348,5,98,0,0,1348,1349,5,108,0,0,1349,1350,5,105,0,0,1350,1351,5,99,0,0,1351,248,1,0,0,0,1352,1353,5,114,0,0,1353,1354,5,101,0,0,1354,1355,5,100,0,0,1355,1356,5,101,0,0,1356,1357,5,102,0,0,1357,1358,5,105,0,0,1358,1359,5,110,0,0,1359,1360,5,101,0,0,1360,1361,5,115,0,0,1361,250,1,0,0,0,1362,1363,5,114,0,0,1363,1364,5,101,0,0,1364,1365,5,100,0,0,1365,1366,5,101,0,0,1366,1367,5,102,0,0,1367,1368,5,105,0,0,1368,1369,5,110,0,0,1369,1370,5,105,0,0,1370,1371,5,116,0,0,1371,1372,5,105,0,0,1372,1373,5,111,0,0,1373,1374,5,110,0,0,1374,252,1,0,0,0,1375,1376,5,114,0,0,1376,1377,5,101,0,0,1377,1378,5,102,0,0,1378,254,1,0,0,0,1379,1380,5,114,0,0,1380,1381,5,101,0,0,1381,1382,5,102,0,0,1382,1383,5,101,0,0,1383,1384,5,114,0,0,1384,1385,5,101,0,0,1385,1386,5,110,0,0,1386,1387,5,99,0,0,1387,1388,5,101,0,0,1388,1389,5,115,0,0,1389,256,1,0,0,0,1390,1391,5,114,0,0,1391,1392,5,101,0,0,1392,1393,5,110,0,0,1393,1394,5,100,0,0,1394,1395,5,101,0,0,1395,1396,5,114,0,0,1396,258,1,0,0,0,1397,1398,5,114,0,0,1398,1399,5,101,0,0,1399,1400,5,110,0,0,1400,1401,5,100,0,0,1401,1402,5,101,0,0,1402,1403,5,114,0,0,1403,1404,5,105,0,0,1404,1405,5,110,0,0,1405,1406,5,103,0,0,1406,260,1,0,0,0,1407,1408,5,114,0,0,1408,1409,5,101,0,0,1409,1410,5,112,0,0,1410,262,1,0,0,0,1411,1412,5,114,0,0,1412,1413,5,101,0,0,1413,1414,5,113,0,0,1414,1415,5,117,0,0,1415,1416,5,105,0,0,1416,1417,5,114,0,0,1417,1418,5,101,0,0,1418,264,1,0,0,0,1419,1420,5,114,0,0,1420,1421,5,101,0,0,1421,1422,5,113,0,0,1422,1423,5,117,0,0,1423,1424,5,105,0,0,1424,1425,5,114,0,0,1425,1426,5,101,0,0,1426,1427,5,109,0,0,1427,1428,5,101,0,0,1428,1429,5,110,0,0,1429,1430,5,116,0,0,1430,266,1,0,0,0,1431,1432,5,114,0,0,1432,1433,5,101,0,0,1433,1434,5,116,0,0,1434,1435,5,117,0,0,1435,1436,5,114,0,0,1436,1437,5,110,0,0,1437,268,1,0,0,0,1438,1439,5,115,0,0,1439,1440,5,97,0,0,1440,1441,5,116,0,0,1441,1442,5,105,0,0,1442,1443,5,115,0,0,1443,1444,5,102,0,0,1444,1445,5,121,0,0,1445,270,1,0,0,0,1446,1447,5,115,0,0,1447,1448,5,101,0,0,1448,1449,5,110,0,0,1449,1450,5,100,0,0,1450,272,1,0,0,0,1451,1452,5,115,0,0,1452,1453,5,110,0,0,1453,1454,5,97,0,0,1454,1455,5,112,0,0,1455,1456,5,115,0,0,1456,1457,5,104,0,0,1457,1458,5,111,0,0,1458,1459,5,116,0,0,1459,274,1,0,0,0,1460,1461,5,115,0,0,1461,1462,5,112,0,0,1462,1463,5,101,0,0,1463,1464,5,99,0,0,1464,1465,5,105,0,0,1465,1466,5,97,0,0,1466,1467,5,108,0,0,1467,1468,5,105,0,0,1468,1469,5,122,0,0,1469,1470,5,97,0,0,1470,1471,5,116,0,0,1471,1472,5,105,0,0,1472,1473,5,111,0,0,1473,1474,5,110,0,0,1474,276,1,0,0,0,1475,1476,5,115,0,0,1476,1477,5,112,0,0,1477,1478,5,101,0,0,1478,1479,5,99,0,0,1479,1480,5,105,0,0,1480,1481,5,97,0,0,1481,1482,5,108,0,0,1482,1483,5,105,0,0,1483,1484,5,122,0,0,1484,1485,5,101,0,0,1485,1486,5,115,0,0,1486,278,1,0,0,0,1487,1488,5,115,0,0,1488,1489,5,116,0,0,1489,1490,5,97,0,0,1490,1491,5,107,0,0,1491,1492,5,101,0,0,1492,1493,5,104,0,0,1493,1494,5,111,0,0,1494,1495,5,108,0,0,1495,1496,5,100,0,0,1496,1497,5,101,0,0,1497,1498,5,114,0,0,1498,280,1,0,0,0,1499,1500,5,115,0,0,1500,1501,5,116,0,0,1501,1502,5,97,0,0,1502,1503,5,110,0,0,1503,1504,5,100,0,0,1504,1505,5,97,0,0,1505,1506,5,114,0,0,1506,1507,5,100,0,0,1507,282,1,0,0,0,1508,1509,5,115,0,0,1509,1510,5,116,0,0,1510,1511,5,97,0,0,1511,1512,5,116,0,0,1512,1513,5,101,0,0,1513,284,1,0,0,0,1514,1515,5,115,0,0,1515,1516,5,116,0,0,1516,1517,5,101,0,0,1517,1518,5,112,0,0,1518,286,1,0,0,0,1519,1520,5,115,0,0,1520,1521,5,116,0,0,1521,1522,5,114,0,0,1522,1523,5,117,0,0,1523,1524,5,99,0,0,1524,1525,5,116,0,0,1525,288,1,0,0,0,1526,1527,5,115,0,0,1527,1528,5,117,0,0,1528,1529,5,98,0,0,1529,1530,5,99,0,0,1530,1531,5,108,0,0,1531,1532,5,97,0,0,1532,1533,5,115,0,0,1533,1534,5,115,0,0,1534,1535,5,105,0,0,1535,1536,5,102,0,0,1536,1537,5,105,0,0,1537,1538,5,101,0,0,1538,1539,5,114,0,0,1539,290,1,0,0,0,1540,1541,5,115,0,0,1541,1542,5,117,0,0,1542,1543,5,98,0,0,1543,1544,5,106,0,0,1544,1545,5,101,0,0,1545,1546,5,99,0,0,1546,1547,5,116,0,0,1547,292,1,0,0,0,1548,1549,5,115,0,0,1549,1550,5,117,0,0,1550,1551,5,98,0,0,1551,1552,5,115,0,0,1552,1553,5,101,0,0,1553,1554,5,116,0,0,1554,294,1,0,0,0,1555,1556,5,115,0,0,1556,1557,5,117,0,0,1557,1558,5,98,0,0,1558,1559,5,115,0,0,1559,1560,5,101,0,0,1560,1561,5,116,0,0,1561,1562,5,115,0,0,1562,296,1,0,0,0,1563,1564,5,115,0,0,1564,1565,5,117,0,0,1565,1566,5,98,0,0,1566,1567,5,116,0,0,1567,1568,5,121,0,0,1568,1569,5,112,0,0,1569,1570,5,101,0,0,1570,298,1,0,0,0,1571,1572,5,115,0,0,1572,1573,5,117,0,0,1573,1574,5,99,0,0,1574,1575,5,99,0,0,1575,1576,5,101,0,0,1576,1577,5,115,0,0,1577,1578,5,115,0,0,1578,1579,5,105,0,0,1579,1580,5,111,0,0,1580,1581,5,110,0,0,1581,300,1,0,0,0,1582,1583,5,116,0,0,1583,1584,5,101,0,0,1584,1585,5,114,0,0,1585,1586,5,109,0,0,1586,1587,5,105,0,0,1587,1588,5,110,0,0,1588,1589,5,97,0,0,1589,1590,5,116,0,0,1590,1591,5,101,0,0,1591,302,1,0,0,0,1592,1593,5,116,0,0,1593,1594,5,104,0,0,1594,1595,5,101,0,0,1595,1596,5,110,0,0,1596,304,1,0,0,0,1597,1598,5,116,0,0,1598,1599,5,105,0,0,1599,1600,5,109,0,0,1600,1601,5,101,0,0,1601,1602,5,115,0,0,1602,1603,5,108,0,0,1603,1604,5,105,0,0,1604,1605,5,99,0,0,1605,1606,5,101,0,0,1606,306,1,0,0,0,1607,1608,5,116,0,0,1608,1609,5,111,0,0,1609,308,1,0,0,0,1610,1611,5,116,0,0,1611,1612,5,114,0,0,1612,1613,5,97,0,0,1613,1614,5,110,0,0,1614,1615,5,115,0,0,1615,1616,5,105,0,0,1616,1617,5,116,0,0,1617,1618,5,105,0,0,1618,1619,5,111,0,0,1619,1620,5,110,0,0,1620,310,1,0,0,0,1621,1622,5,116,0,0,1622,1623,5,114,0,0,1623,1624,5,117,0,0,1624,1625,5,101,0,0,1625,312,1,0,0,0,1626,1627,5,116,0,0,1627,1628,5,121,0,0,1628,1629,5,112,0,0,1629,1630,5,101,0,0,1630,314,1,0,0,0,1631,1632,5,116,0,0,1632,1633,5,121,0,0,1633,1634,5,112,0,0,1634,1635,5,101,0,0,1635,1636,5,100,0,0,1636,316,1,0,0,0,1637,1638,5,116,0,0,1638,1639,5,121,0,0,1639,1640,5,112,0,0,1640,1641,5,105,0,0,1641,1642,5,110,0,0,1642,1643,5,103,0,0,1643,318,1,0,0,0,1644,1645,5,117,0,0,1645,1646,5,110,0,0,1646,1647,5,105,0,0,1647,1648,5,111,0,0,1648,1649,5,110,0,0,1649,1650,5,115,0,0,1650,320,1,0,0,0,1651,1652,5,117,0,0,1652,1653,5,110,0,0,1653,1654,5,116,0,0,1654,1655,5,105,0,0,1655,1656,5,108,0,0,1656,322,1,0,0,0,1657,1658,5,117,0,0,1658,1659,5,115,0,0,1659,1660,5,101,0,0,1660,324,1,0,0,0,1661,1662,5,118,0,0,1662,1663,5,97,0,0,1663,1664,5,114,0,0,1664,326,1,0,0,0,1665,1666,5,118,0,0,1666,1667,5,97,0,0,1667,1668,5,114,0,0,1668,1669,5,105,0,0,1669,1670,5,97,0,0,1670,1671,5,110,0,0,1671,1672,5,116,0,0,1672,328,1,0,0,0,1673,1674,5,118,0,0,1674,1675,5,97,0,0,1675,1676,5,114,0,0,1676,1677,5,105,0,0,1677,1678,5,97,0,0,1678,1679,5,116,0,0,1679,1680,5,105,0,0,1680,1681,5,111,0,0,1681,1682,5,110,0,0,1682,330,1,0,0,0,1683,1684,5,118,0,0,1684,1685,5,101,0,0,1685,1686,5,114,0,0,1686,1687,5,105,0,0,1687,1688,5,102,0,0,1688,1689,5,105,0,0,1689,1690,5,99,0,0,1690,1691,5,97,0,0,1691,1692,5,116,0,0,1692,1693,5,105,0,0,1693,1694,5,111,0,0,1694,1695,5,110,0,0,1695,332,1,0,0,0,1696,1697,5,118,0,0,1697,1698,5,101,0,0,1698,1699,5,114,0,0,1699,1700,5,105,0,0,1700,1701,5,102,0,0,1701,1702,5,121,0,0,1702,334,1,0,0,0,1703,1704,5,118,0,0,1704,1705,5,105,0,0,1705,1706,5,97,0,0,1706,336,1,0,0,0,1707,1708,5,118,0,0,1708,1709,5,105,0,0,1709,1710,5,101,0,0,1710,1711,5,119,0,0,1711,338,1,0,0,0,1712,1713,5,118,0,0,1713,1714,5,105,0,0,1714,1715,5,101,0,0,1715,1716,5,119,0,0,1716,1717,5,112,0,0,1717,1718,5,111,0,0,1718,1719,5,105,0,0,1719,1720,5,110,0,0,1720,1721,5,116,0,0,1721,340,1,0,0,0,1722,1723,5,119,0,0,1723,1724,5,104,0,0,1724,1725,5,101,0,0,1725,1726,5,110,0,0,1726,342,1,0,0,0,1727,1728,5,119,0,0,1728,1729,5,104,0,0,1729,1730,5,105,0,0,1730,1731,5,108,0,0,1731,1732,5,101,0,0,1732,344,1,0,0,0,1733,1734,5,120,0,0,1734,1735,5,111,0,0,1735,1736,5,114,0,0,1736,346,1,0,0,0,1737,1738,5,33,0,0,1738,1739,5,61,0,0,1739,1740,5,61,0,0,1740,348,1,0,0,0,1741,1742,5,58,0,0,1742,1743,5,58,0,0,1743,1744,5,62,0,0,1744,350,1,0,0,0,1745,1746,5,58,0,0,1746,1747,5,62,0,0,1747,1748,5,62,0,0,1748,352,1,0,0,0,1749,1750,5,61,0,0,1750,1751,5,61,0,0,1751,1752,5,61,0,0,1752,354,1,0,0,0,1753,1754,5,33,0,0,1754,1755,5,61,0,0,1755,356,1,0,0,0,1756,1757,5,42,0,0,1757,1758,5,42,0,0,1758,358,1,0,0,0,1759,1760,5,45,0,0,1760,1761,5,62,0,0,1761,360,1,0,0,0,1762,1763,5,46,0,0,1763,1764,5,46,0,0,1764,362,1,0,0,0,1765,1766,5,46,0,0,1766,1767,5,63,0,0,1767,364,1,0,0,0,1768,1769,5,58,0,0,1769,1770,5,58,0,0,1770,366,1,0,0,0,1771,1772,5,58,0,0,1772,1773,5,61,0,0,1773,368,1,0,0,0,1774,1775,5,58,0,0,1775,1776,5,62,0,0,1776,370,1,0,0,0,1777,1778,5,60,0,0,1778,1779,5,61,0,0,1779,372,1,0,0,0,1780,1781,5,61,0,0,1781,1782,5,61,0,0,1782,374,1,0,0,0,1783,1784,5,61,0,0,1784,1785,5,62,0,0,1785,376,1,0,0,0,1786,1787,5,62,0,0,1787,1788,5,61,0,0,1788,378,1,0,0,0,1789,1790,5,63,0,0,1790,1791,5,63,0,0,1791,380,1,0,0,0,1792,1793,5,64,0,0,1793,1794,5,64,0,0,1794,382,1,0,0,0,1795,1796,5,35,0,0,1796,384,1,0,0,0,1797,1798,5,36,0,0,1798,386,1,0,0,0,1799,1800,5,37,0,0,1800,388,1,0,0,0,1801,1802,5,38,0,0,1802,390,1,0,0,0,1803,1804,5,40,0,0,1804,392,1,0,0,0,1805,1806,5,41,0,0,1806,394,1,0,0,0,1807,1808,5,42,0,0,1808,396,1,0,0,0,1809,1810,5,43,0,0,1810,398,1,0,0,0,1811,1812,5,44,0,0,1812,400,1,0,0,0,1813,1814,5,45,0,0,1814,402,1,0,0,0,1815,1816,5,46,0,0,1816,404,1,0,0,0,1817,1818,5,47,0,0,1818,406,1,0,0,0,1819,1820,5,58,0,0,1820,408,1,0,0,0,1821,1822,5,59,0,0,1822,410,1,0,0,0,1823,1824,5,60,0,0,1824,412,1,0,0,0,1825,1826,5,61,0,0,1826,414,1,0,0,0,1827,1828,5,62,0,0,1828,416,1,0,0,0,1829,1830,5,63,0,0,1830,418,1,0,0,0,1831,1832,5,64,0,0,1832,420,1,0,0,0,1833,1834,5,91,0,0,1834,422,1,0,0,0,1835,1836,5,93,0,0,1836,424,1,0,0,0,1837,1838,5,94,0,0,1838,426,1,0,0,0,1839,1840,5,123,0,0,1840,428,1,0,0,0,1841,1842,5,124,0,0,1842,430,1,0,0,0,1843,1844,5,125,0,0,1844,432,1,0,0,0,1845,1846,5,126,0,0,1846,434,1,0,0,0,1847,1851,7,0,0,0,1848,1850,7,1,0,0,1849,1848,1,0,0,0,1850,1853,1,0,0,0,1851,1849,1,0,0,0,1851,1852,1,0,0,0,1852,436,1,0,0,0,1853,1851,1,0,0,0,1854,1860,5,39,0,0,1855,1856,5,92,0,0,1856,1859,9,0,0,0,1857,1859,8,2,0,0,1858,1855,1,0,0,0,1858,1857,1,0,0,0,1859,1862,1,0,0,0,1860,1858,1,0,0,0,1860,1861,1,0,0,0,1861,1863,1,0,0,0,1862,1860,1,0,0,0,1863,1864,5,39,0,0,1864,438,1,0,0,0,1865,1871,5,34,0,0,1866,1867,5,92,0,0,1867,1870,9,0,0,0,1868,1870,8,3,0,0,1869,1866,1,0,0,0,1869,1868,1,0,0,0,1870,1873,1,0,0,0,1871,1869,1,0,0,0,1871,1872,1,0,0,0,1872,1874,1,0,0,0,1873,1871,1,0,0,0,1874,1875,5,34,0,0,1875,440,1,0,0,0,1876,1878,7,4,0,0,1877,1876,1,0,0,0,1878,1879,1,0,0,0,1879,1877,1,0,0,0,1879,1880,1,0,0,0,1880,442,1,0,0,0,1881,1883,7,4,0,0,1882,1881,1,0,0,0,1883,1886,1,0,0,0,1884,1882,1,0,0,0,1884,1885,1,0,0,0,1885,1887,1,0,0,0,1886,1884,1,0,0,0,1887,1889,5,46,0,0,1888,1890,7,4,0,0,1889,1888,1,0,0,0,1890,1891,1,0,0,0,1891,1889,1,0,0,0,1891,1892,1,0,0,0,1892,1902,1,0,0,0,1893,1895,7,5,0,0,1894,1896,7,6,0,0,1895,1894,1,0,0,0,1895,1896,1,0,0,0,1896,1898,1,0,0,0,1897,1899,7,4,0,0,1898,1897,1,0,0,0,1899,1900,1,0,0,0,1900,1898,1,0,0,0,1900,1901,1,0,0,0,1901,1903,1,0,0,0,1902,1893,1,0,0,0,1902,1903,1,0,0,0,1903,1919,1,0,0,0,1904,1906,7,4,0,0,1905,1904,1,0,0,0,1906,1907,1,0,0,0,1907,1905,1,0,0,0,1907,1908,1,0,0,0,1908,1909,1,0,0,0,1909,1911,7,5,0,0,1910,1912,7,6,0,0,1911,1910,1,0,0,0,1911,1912,1,0,0,0,1912,1914,1,0,0,0,1913,1915,7,4,0,0,1914,1913,1,0,0,0,1915,1916,1,0,0,0,1916,1914,1,0,0,0,1916,1917,1,0,0,0,1917,1919,1,0,0,0,1918,1884,1,0,0,0,1918,1905,1,0,0,0,1919,444,1,0,0,0,1920,1921,5,47,0,0,1921,1922,5,42,0,0,1922,1926,1,0,0,0,1923,1925,9,0,0,0,1924,1923,1,0,0,0,1925,1928,1,0,0,0,1926,1927,1,0,0,0,1926,1924,1,0,0,0,1927,1929,1,0,0,0,1928,1926,1,0,0,0,1929,1930,5,42,0,0,1930,1931,5,47,0,0,1931,446,1,0,0,0,1932,1933,5,47,0,0,1933,1934,5,47,0,0,1934,1938,1,0,0,0,1935,1937,8,7,0,0,1936,1935,1,0,0,0,1937,1940,1,0,0,0,1938,1936,1,0,0,0,1938,1939,1,0,0,0,1939,1941,1,0,0,0,1940,1938,1,0,0,0,1941,1942,6,223,0,0,1942,448,1,0,0,0,1943,1945,7,8,0,0,1944,1943,1,0,0,0,1945,1946,1,0,0,0,1946,1944,1,0,0,0,1946,1947,1,0,0,0,1947,1948,1,0,0,0,1948,1949,6,224,0,0,1949,450,1,0,0,0,19,0,1851,1858,1860,1869,1871,1879,1884,1891,1895,1900,1902,1907,1911,1916,1918,1926,1938,1946,1,6,0,0];static __ATN;static get _ATN(){return r.__ATN||(r.__ATN=new si().deserialize(r._serializedATN)),r.__ATN}static vocabulary=new or(r.literalNames,r.symbolicNames,[]);get vocabulary(){return r.vocabulary}static decisionsToDFA=r._ATN.decisionToState.map((e,t)=>new Dr(e,t))};var s=class r extends M3{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 WS=225;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_metadataAccessExpression=6;static RULE_invocationExpression=7;static RULE_constructorExpression=8;static RULE_bodyExpression=9;static RULE_argumentList=10;static RULE_positionalArgumentList=11;static RULE_namedArgumentList=12;static RULE_namedArgument=13;static RULE_literalExpression=14;static RULE_literalBoolean=15;static RULE_literalString=16;static RULE_literalInteger=17;static RULE_literalReal=18;static RULE_literalInfinity=19;static RULE_argumentMember=20;static RULE_argumentExpressionMember=21;static RULE_name=22;static RULE_identification=23;static RULE_relationshipBody=24;static RULE_relationshipOwnedElement=25;static RULE_ownedRelatedElement=26;static RULE_dependency=27;static RULE_annotation=28;static RULE_ownedAnnotation=29;static RULE_annotatingElement=30;static RULE_comment=31;static RULE_documentation=32;static RULE_textualRepresentation=33;static RULE_rootNamespace=34;static RULE_namespace=35;static RULE_namespaceDeclaration=36;static RULE_namespaceBody=37;static RULE_namespaceBodyElement=38;static RULE_memberPrefix=39;static RULE_visibilityIndicator=40;static RULE_namespaceMember=41;static RULE_nonFeatureMember=42;static RULE_namespaceFeatureMember=43;static RULE_aliasMember=44;static RULE_qualifiedName=45;static RULE_importRule=46;static RULE_importDeclaration=47;static RULE_membershipImport=48;static RULE_namespaceImport=49;static RULE_filterPackage=50;static RULE_filterPackageMember=51;static RULE_memberElement=52;static RULE_nonFeatureElement=53;static RULE_featureElement=54;static RULE_type=55;static RULE_typePrefix=56;static RULE_typeDeclaration=57;static RULE_specializationPart=58;static RULE_conjugationPart=59;static RULE_typeRelationshipPart=60;static RULE_disjoiningPart=61;static RULE_unioningPart=62;static RULE_intersectingPart=63;static RULE_differencingPart=64;static RULE_typeBody=65;static RULE_typeBodyElement=66;static RULE_specialization=67;static RULE_ownedSpecialization=68;static RULE_specificType=69;static RULE_generalType=70;static RULE_conjugation=71;static RULE_ownedConjugation=72;static RULE_disjoining=73;static RULE_ownedDisjoining=74;static RULE_unioning=75;static RULE_intersecting=76;static RULE_differencing=77;static RULE_featureMember=78;static RULE_typeFeatureMember=79;static RULE_ownedFeatureMember=80;static RULE_classifier=81;static RULE_classifierDeclaration=82;static RULE_superclassingPart=83;static RULE_subclassification=84;static RULE_ownedSubclassification=85;static RULE_feature=86;static RULE_endFeaturePrefix=87;static RULE_basicFeaturePrefix=88;static RULE_featurePrefix=89;static RULE_ownedCrossFeatureMember=90;static RULE_ownedCrossFeature=91;static RULE_featureDirection=92;static RULE_featureDeclaration=93;static RULE_featureIdentification=94;static RULE_featureRelationshipPart=95;static RULE_chainingPart=96;static RULE_invertingPart=97;static RULE_typeFeaturingPart=98;static RULE_featureSpecializationPart=99;static RULE_multiplicityPart=100;static RULE_featureSpecialization=101;static RULE_typings=102;static RULE_typedBy=103;static RULE_subsettings=104;static RULE_subsets=105;static RULE_references=106;static RULE_crosses=107;static RULE_redefinitions=108;static RULE_redefines=109;static RULE_featureTyping=110;static RULE_ownedFeatureTyping=111;static RULE_subsetting=112;static RULE_ownedSubsetting=113;static RULE_ownedReferenceSubsetting=114;static RULE_ownedCrossSubsetting=115;static RULE_redefinition=116;static RULE_ownedRedefinition=117;static RULE_ownedFeatureChain=118;static RULE_featureChain=119;static RULE_ownedFeatureChaining=120;static RULE_featureInverting=121;static RULE_ownedFeatureInverting=122;static RULE_typeFeaturing=123;static RULE_ownedTypeFeaturing=124;static RULE_dataType=125;static RULE_class=126;static RULE_structure=127;static RULE_association=128;static RULE_associationStructure=129;static RULE_connector=130;static RULE_connectorDeclaration=131;static RULE_binaryConnectorDeclaration=132;static RULE_naryConnectorDeclaration=133;static RULE_connectorEndMember=134;static RULE_connectorEnd=135;static RULE_ownedCrossMultiplicityMember=136;static RULE_ownedCrossMultiplicity=137;static RULE_bindingConnector=138;static RULE_bindingConnectorDeclaration=139;static RULE_succession=140;static RULE_successionDeclaration=141;static RULE_behavior=142;static RULE_step=143;static RULE_function=144;static RULE_functionBody=145;static RULE_functionBodyPart=146;static RULE_returnFeatureMember=147;static RULE_resultExpressionMember=148;static RULE_expression=149;static RULE_predicate=150;static RULE_booleanExpression=151;static RULE_invariant=152;static RULE_ownedExpressionMember=153;static RULE_metadataReference=154;static RULE_typeReferenceMember=155;static RULE_typeResultMember=156;static RULE_referenceTyping=157;static RULE_emptyResultMember=158;static RULE_sequenceOperatorExpression=159;static RULE_sequenceExpressionListMember=160;static RULE_bodyArgumentMember=161;static RULE_bodyArgument=162;static RULE_bodyArgumentValue=163;static RULE_functionReferenceArgumentMember=164;static RULE_functionReferenceArgument=165;static RULE_functionReferenceArgumentValue=166;static RULE_functionReferenceExpression=167;static RULE_functionReferenceMember=168;static RULE_functionReference=169;static RULE_featureChainMember=170;static RULE_ownedFeatureChainMember=171;static RULE_featureReferenceMember=172;static RULE_featureReference=173;static RULE_elementReferenceMember=174;static RULE_constructorResultMember=175;static RULE_constructorResult=176;static RULE_instantiatedTypeMember=177;static RULE_instantiatedTypeReference=178;static RULE_namedArgumentMember=179;static RULE_parameterRedefinition=180;static RULE_expressionBodyMember=181;static RULE_expressionBody=182;static RULE_booleanValue=183;static RULE_realValue=184;static RULE_interaction=185;static RULE_flow=186;static RULE_successionFlow=187;static RULE_flowDeclaration=188;static RULE_payloadFeatureMember=189;static RULE_payloadFeature=190;static RULE_payloadFeatureSpecializationPart=191;static RULE_flowEndMember=192;static RULE_flowEnd=193;static RULE_flowFeatureMember=194;static RULE_flowFeature=195;static RULE_flowFeatureRedefinition=196;static RULE_valuePart=197;static RULE_featureValue=198;static RULE_multiplicity=199;static RULE_multiplicitySubset=200;static RULE_multiplicityRange=201;static RULE_ownedMultiplicity=202;static RULE_ownedMultiplicityRange=203;static RULE_multiplicityBounds=204;static RULE_multiplicityExpressionMember=205;static RULE_metaclass=206;static RULE_prefixMetadataAnnotation=207;static RULE_prefixMetadataMember=208;static RULE_prefixMetadataFeature=209;static RULE_metadataFeature=210;static RULE_metadataFeatureDeclaration=211;static RULE_metadataBody=212;static RULE_metadataBodyElement=213;static RULE_metadataBodyFeatureMember=214;static RULE_metadataBodyFeature=215;static RULE_package=216;static RULE_libraryPackage=217;static RULE_packageDeclaration=218;static RULE_packageBody=219;static RULE_elementFilterMember=220;static RULE_dependencyDeclaration=221;static RULE_annotatingMember=222;static RULE_packageBodyElement=223;static RULE_packageMember=224;static RULE_definitionElement=225;static RULE_usageElement=226;static RULE_basicDefinitionPrefix=227;static RULE_definitionExtensionKeyword=228;static RULE_definitionPrefix=229;static RULE_definition=230;static RULE_definitionDeclaration=231;static RULE_definitionBody=232;static RULE_definitionBodyItem=233;static RULE_definitionBodyItemContent=234;static RULE_definitionMember=235;static RULE_variantUsageMember=236;static RULE_nonOccurrenceUsageMember=237;static RULE_occurrenceUsageMember=238;static RULE_structureUsageMember=239;static RULE_behaviorUsageMember=240;static RULE_refPrefix=241;static RULE_basicUsagePrefix=242;static RULE_endUsagePrefix=243;static RULE_usageExtensionKeyword=244;static RULE_unextendedUsagePrefix=245;static RULE_usagePrefix=246;static RULE_usage=247;static RULE_usageDeclaration=248;static RULE_usageCompletion=249;static RULE_usageBody=250;static RULE_defaultReferenceUsage=251;static RULE_referenceUsage=252;static RULE_endFeatureUsage=253;static RULE_variantReference=254;static RULE_nonOccurrenceUsageElement=255;static RULE_occurrenceUsageElement=256;static RULE_structureUsageElement=257;static RULE_behaviorUsageElement=258;static RULE_variantUsageElement=259;static RULE_subclassificationPart=260;static RULE_attributeDefinition=261;static RULE_attributeUsage=262;static RULE_enumerationDefinition=263;static RULE_enumerationBody=264;static RULE_enumerationUsageMember=265;static RULE_enumeratedValue=266;static RULE_enumerationUsage=267;static RULE_occurrenceDefinitionPrefix=268;static RULE_occurrenceDefinition=269;static RULE_individualDefinition=270;static RULE_emptyMultiplicityMember=271;static RULE_occurrenceUsagePrefix=272;static RULE_occurrenceUsage=273;static RULE_individualUsage=274;static RULE_portionUsage=275;static RULE_portionKind=276;static RULE_eventOccurrenceUsage=277;static RULE_sourceSuccessionMember=278;static RULE_sourceSuccession=279;static RULE_sourceEndMember=280;static RULE_sourceEnd=281;static RULE_itemDefinition=282;static RULE_itemUsage=283;static RULE_partDefinition=284;static RULE_partUsage=285;static RULE_portDefinition=286;static RULE_conjugatedPortDefinitionMember=287;static RULE_conjugatedPortDefinition=288;static RULE_portUsage=289;static RULE_conjugatedPortTyping=290;static RULE_connectionDefinition=291;static RULE_connectionUsage=292;static RULE_connectorPart=293;static RULE_binaryConnectorPart=294;static RULE_naryConnectorPart=295;static RULE_bindingConnectorAsUsage=296;static RULE_successionAsUsage=297;static RULE_interfaceDefinition=298;static RULE_interfaceBody=299;static RULE_interfaceBodyItem=300;static RULE_interfaceNonOccurrenceUsageMember=301;static RULE_interfaceNonOccurrenceUsageElement=302;static RULE_interfaceOccurrenceUsageMember=303;static RULE_interfaceOccurrenceUsageElement=304;static RULE_defaultInterfaceEnd=305;static RULE_interfaceUsage=306;static RULE_interfaceUsageDeclaration=307;static RULE_interfacePart=308;static RULE_binaryInterfacePart=309;static RULE_naryInterfacePart=310;static RULE_interfaceEndMember=311;static RULE_interfaceEnd=312;static RULE_allocationDefinition=313;static RULE_allocationUsage=314;static RULE_allocationUsageDeclaration=315;static RULE_flowDefinition=316;static RULE_message=317;static RULE_messageDeclaration=318;static RULE_messageEventMember=319;static RULE_messageEvent=320;static RULE_flowUsage=321;static RULE_successionFlowUsage=322;static RULE_flowPayloadFeatureMember=323;static RULE_flowPayloadFeature=324;static RULE_flowEndSubsetting=325;static RULE_featureChainPrefix=326;static RULE_actionDefinition=327;static RULE_actionBody=328;static RULE_actionBodyItem=329;static RULE_nonBehaviorBodyItem=330;static RULE_actionBehaviorMember=331;static RULE_initialNodeMember=332;static RULE_actionNodeMember=333;static RULE_actionTargetSuccessionMember=334;static RULE_guardedSuccessionMember=335;static RULE_actionUsage=336;static RULE_actionUsageDeclaration=337;static RULE_performActionUsage=338;static RULE_performActionUsageDeclaration=339;static RULE_actionNode=340;static RULE_actionNodeUsageDeclaration=341;static RULE_actionNodePrefix=342;static RULE_controlNode=343;static RULE_controlNodePrefix=344;static RULE_mergeNode=345;static RULE_decisionNode=346;static RULE_joinNode=347;static RULE_forkNode=348;static RULE_acceptNode=349;static RULE_acceptNodeDeclaration=350;static RULE_acceptParameterPart=351;static RULE_payloadParameterMember=352;static RULE_payloadParameter=353;static RULE_triggerValuePart=354;static RULE_triggerFeatureValue=355;static RULE_triggerExpression=356;static RULE_sendNode=357;static RULE_sendNodeDeclaration=358;static RULE_senderReceiverPart=359;static RULE_nodeParameterMember=360;static RULE_nodeParameter=361;static RULE_featureBinding=362;static RULE_emptyParameterMember=363;static RULE_assignmentNode=364;static RULE_assignmentNodeDeclaration=365;static RULE_assignmentTargetMember=366;static RULE_assignmentTargetParameter=367;static RULE_assignmentTargetBinding=368;static RULE_terminateNode=369;static RULE_ifNode=370;static RULE_expressionParameterMember=371;static RULE_actionBodyParameterMember=372;static RULE_actionBodyParameter=373;static RULE_ifNodeParameterMember=374;static RULE_whileLoopNode=375;static RULE_forLoopNode=376;static RULE_forVariableDeclarationMember=377;static RULE_forVariableDeclaration=378;static RULE_actionTargetSuccession=379;static RULE_targetSuccession=380;static RULE_guardedTargetSuccession=381;static RULE_defaultTargetSuccession=382;static RULE_guardedSuccession=383;static RULE_stateDefinition=384;static RULE_stateDefBody=385;static RULE_stateBodyItem=386;static RULE_entryActionMember=387;static RULE_doActionMember=388;static RULE_exitActionMember=389;static RULE_entryTransitionMember=390;static RULE_stateActionUsage=391;static RULE_statePerformActionUsage=392;static RULE_stateAcceptActionUsage=393;static RULE_stateSendActionUsage=394;static RULE_stateAssignmentActionUsage=395;static RULE_transitionUsageMember=396;static RULE_targetTransitionUsageMember=397;static RULE_stateUsage=398;static RULE_stateUsageBody=399;static RULE_exhibitStateUsage=400;static RULE_transitionUsage=401;static RULE_targetTransitionUsage=402;static RULE_triggerActionMember=403;static RULE_triggerAction=404;static RULE_guardExpressionMember=405;static RULE_effectBehaviorMember=406;static RULE_effectBehaviorUsage=407;static RULE_transitionPerformActionUsage=408;static RULE_transitionAcceptActionUsage=409;static RULE_transitionSendActionUsage=410;static RULE_transitionAssignmentActionUsage=411;static RULE_transitionSuccessionMember=412;static RULE_transitionSuccession=413;static RULE_emptyEndMember=414;static RULE_calculationDefinition=415;static RULE_calculationUsage=416;static RULE_calculationBody=417;static RULE_calculationBodyPart=418;static RULE_calculationBodyItem=419;static RULE_returnParameterMember=420;static RULE_constraintDefinition=421;static RULE_constraintUsage=422;static RULE_assertConstraintUsage=423;static RULE_constraintUsageDeclaration=424;static RULE_requirementDefinition=425;static RULE_requirementBody=426;static RULE_requirementBodyItem=427;static RULE_subjectMember=428;static RULE_subjectUsage=429;static RULE_requirementConstraintMember=430;static RULE_requirementKind=431;static RULE_requirementConstraintUsage=432;static RULE_framedConcernMember=433;static RULE_framedConcernUsage=434;static RULE_actorMember=435;static RULE_actorUsage=436;static RULE_stakeholderMember=437;static RULE_stakeholderUsage=438;static RULE_requirementUsage=439;static RULE_satisfyRequirementUsage=440;static RULE_satisfactionSubjectMember=441;static RULE_satisfactionParameter=442;static RULE_satisfactionFeatureValue=443;static RULE_satisfactionReferenceExpression=444;static RULE_concernDefinition=445;static RULE_concernUsage=446;static RULE_caseDefinition=447;static RULE_caseUsage=448;static RULE_caseBody=449;static RULE_caseBodyItem=450;static RULE_objectiveMember=451;static RULE_objectiveRequirementUsage=452;static RULE_analysisCaseDefinition=453;static RULE_analysisCaseUsage=454;static RULE_verificationCaseDefinition=455;static RULE_verificationCaseUsage=456;static RULE_requirementVerificationMember=457;static RULE_requirementVerificationUsage=458;static RULE_useCaseDefinition=459;static RULE_useCaseUsage=460;static RULE_includeUseCaseUsage=461;static RULE_viewDefinition=462;static RULE_viewDefinitionBody=463;static RULE_viewDefinitionBodyItem=464;static RULE_viewRenderingMember=465;static RULE_viewRenderingUsage=466;static RULE_viewUsage=467;static RULE_viewBody=468;static RULE_viewBodyItem=469;static RULE_expose=470;static RULE_membershipExpose=471;static RULE_namespaceExpose=472;static RULE_viewpointDefinition=473;static RULE_viewpointUsage=474;static RULE_renderingDefinition=475;static RULE_renderingUsage=476;static RULE_metadataDefinition=477;static RULE_prefixMetadataUsage=478;static RULE_metadataUsage=479;static RULE_metadataUsageDeclaration=480;static RULE_metadataBodyUsageMember=481;static RULE_metadataBodyUsage=482;static RULE_extendedDefinition=483;static RULE_extendedUsage=484;static RULE_filterPackageImportDeclaration=485;static RULE_namespaceImportDirect=486;static RULE_calculationUsageDeclaration=487;static RULE_emptyActionUsage=488;static RULE_emptyFeature=489;static RULE_emptyMultiplicity=490;static RULE_emptyUsage=491;static RULE_filterPackageImport=492;static RULE_nonFeatureChainPrimaryExpression=493;static RULE_portConjugation=494;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'","'!=='","'::>'","':>>'","'==='","'!='","'**'","'->'","'..'","'.?'","'::'","':='","':>'","'<='","'=='","'=>'","'>='","'??'","'@@'","'#'","'$'","'%'","'&'","'('","')'","'*'","'+'","','","'-'","'.'","'/'","':'","';'","'<'","'='","'>'","'?'","'@'","'['","']'","'^'","'{'","'|'","'}'","'~'"];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","WS"];static ruleNames=["ownedExpression","typeReference","sequenceExpressionList","baseExpression","nullExpression","featureReferenceExpression","metadataAccessExpression","invocationExpression","constructorExpression","bodyExpression","argumentList","positionalArgumentList","namedArgumentList","namedArgument","literalExpression","literalBoolean","literalString","literalInteger","literalReal","literalInfinity","argumentMember","argumentExpressionMember","name","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","ownedFeatureChain","featureChain","ownedFeatureChaining","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","ownedExpressionMember","metadataReference","typeReferenceMember","typeResultMember","referenceTyping","emptyResultMember","sequenceOperatorExpression","sequenceExpressionListMember","bodyArgumentMember","bodyArgument","bodyArgumentValue","functionReferenceArgumentMember","functionReferenceArgument","functionReferenceArgumentValue","functionReferenceExpression","functionReferenceMember","functionReference","featureChainMember","ownedFeatureChainMember","featureReferenceMember","featureReference","elementReferenceMember","constructorResultMember","constructorResult","instantiatedTypeMember","instantiatedTypeReference","namedArgumentMember","parameterRedefinition","expressionBodyMember","expressionBody","booleanValue","realValue","interaction","flow","successionFlow","flowDeclaration","payloadFeatureMember","payloadFeature","payloadFeatureSpecializationPart","flowEndMember","flowEnd","flowFeatureMember","flowFeature","flowFeatureRedefinition","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","occurrenceUsageMember","structureUsageMember","behaviorUsageMember","refPrefix","basicUsagePrefix","endUsagePrefix","usageExtensionKeyword","unextendedUsagePrefix","usagePrefix","usage","usageDeclaration","usageCompletion","usageBody","defaultReferenceUsage","referenceUsage","endFeatureUsage","variantReference","nonOccurrenceUsageElement","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","flowEndSubsetting","featureChainPrefix","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","forVariableDeclaration","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","metadataUsage","metadataUsageDeclaration","metadataBodyUsageMember","metadataBodyUsage","extendedDefinition","extendedUsage","filterPackageImportDeclaration","namespaceImportDirect","calculationUsageDeclaration","emptyActionUsage","emptyFeature","emptyMultiplicity","emptyUsage","filterPackageImport","nonFeatureChainPrimaryExpression","portConjugation"];get grammarFileName(){return"SysMLv2Parser.g4"}get literalNames(){return r.literalNames}get symbolicNames(){return r.symbolicNames}get ruleNames(){return r.ruleNames}get serializedATN(){return r._serializedATN}createFailedPredicateException(e,t){return new ia(this,e,t)}constructor(e){super(e),this.interpreter=new na(this,r._ATN,r.decisionsToDFA,new Fi)}ownedExpression(e){e===void 0&&(e=0);let t=this.context,i=this.state,n=new te(this.context,i),a=n,o=0;this.enterRecursionRule(n,0,r.RULE_ownedExpression,e);let l;try{let d;this.enterOuterAlt(n,1);{switch(this.state=1005,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.IF:this.state=991,this.match(r.IF),this.state=992,this.ownedExpression(0),this.state=993,this.match(r.QUESTION),this.state=994,this.ownedExpression(0),this.state=995,this.match(r.ELSE),this.state=996,this.ownedExpression(28);break;case r.NOT:case r.PLUS:case r.MINUS:case r.TILDE:this.state=998,l=this.tokenStream.LA(1),l===107||(l-199&-32)===0&&(1<<l-199&262149)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=999,this.ownedExpression(14);break;case r.AT_AT:case r.AT_SIGN:this.state=1e3,l=this.tokenStream.LA(1),l===191||l===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1001,this.typeReference();break;case r.ALL:this.state=1002,this.match(r.ALL),this.state=1003,this.typeReference();break;case r.FALSE:case r.NEW:case r.NULL:case r.TRUE:case r.DOLLAR:case r.LPAREN:case r.STAR:case r.LBRACE:case r.IDENTIFIER:case r.STRING:case r.DOUBLE_STRING:case r.INTEGER:case r.REAL:this.state=1004,this.baseExpression();break;default:throw new V(this)}for(this.context.stop=this.tokenStream.LT(-1),this.state=1088,this.errorHandler.sync(this),d=this.interpreter.adaptivePredict(this.tokenStream,5,this.context);d!==2&&d!==Q.INVALID_ALT_NUMBER;){if(d===1)switch(this.parseListeners!=null&&this.triggerExitRuleEvent(),a=n,this.state=1086,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,4,this.context)){case 1:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1007,!this.precpred(this.context,27))throw this.createFailedPredicateException("this.precpred(this.context, 27)");this.state=1008,this.match(r.QUESTION_QUESTION),this.state=1009,this.ownedExpression(28)}break;case 2:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1010,!this.precpred(this.context,26))throw this.createFailedPredicateException("this.precpred(this.context, 26)");this.state=1011,this.match(r.IMPLIES),this.state=1012,this.ownedExpression(27)}break;case 3:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1013,!this.precpred(this.context,25))throw this.createFailedPredicateException("this.precpred(this.context, 25)");this.state=1014,this.match(r.OR),this.state=1015,this.ownedExpression(26)}break;case 4:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1016,!this.precpred(this.context,24))throw this.createFailedPredicateException("this.precpred(this.context, 24)");this.state=1017,this.match(r.AND),this.state=1018,this.ownedExpression(25)}break;case 5:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1019,!this.precpred(this.context,23))throw this.createFailedPredicateException("this.precpred(this.context, 23)");this.state=1020,this.match(r.XOR),this.state=1021,this.ownedExpression(24)}break;case 6:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1022,!this.precpred(this.context,22))throw this.createFailedPredicateException("this.precpred(this.context, 22)");this.state=1023,this.match(r.PIPE),this.state=1024,this.ownedExpression(23)}break;case 7:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1025,!this.precpred(this.context,21))throw this.createFailedPredicateException("this.precpred(this.context, 21)");this.state=1026,this.match(r.AMP),this.state=1027,this.ownedExpression(22)}break;case 8:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1028,!this.precpred(this.context,20))throw this.createFailedPredicateException("this.precpred(this.context, 20)");this.state=1029,l=this.tokenStream.LA(1),(l-174&-32)===0&&(1<<l-174&8217)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1030,this.ownedExpression(21)}break;case 9:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1031,!this.precpred(this.context,19))throw this.createFailedPredicateException("this.precpred(this.context, 19)");this.state=1032,l=this.tokenStream.LA(1),(l-186&-32)===0&&(1<<l-186&5242889)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1033,this.ownedExpression(20)}break;case 10:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1034,!this.precpred(this.context,18))throw this.createFailedPredicateException("this.precpred(this.context, 18)");this.state=1035,this.match(r.DOT_DOT),this.state=1036,this.ownedExpression(19)}break;case 11:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1037,!this.precpred(this.context,17))throw this.createFailedPredicateException("this.precpred(this.context, 17)");this.state=1038,l=this.tokenStream.LA(1),l===199||l===201?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1039,this.ownedExpression(18)}break;case 12:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1040,!this.precpred(this.context,16))throw this.createFailedPredicateException("this.precpred(this.context, 16)");this.state=1041,l=this.tokenStream.LA(1),(l-194&-32)===0&&(1<<l-194&529)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1042,this.ownedExpression(17)}break;case 13:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1043,!this.precpred(this.context,15))throw this.createFailedPredicateException("this.precpred(this.context, 15)");this.state=1044,l=this.tokenStream.LA(1),l===179||l===213?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1045,this.ownedExpression(15)}break;case 14:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1046,!this.precpred(this.context,12))throw this.createFailedPredicateException("this.precpred(this.context, 12)");this.state=1047,l=this.tokenStream.LA(1),l===76||l===90||l===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1048,this.typeReference()}break;case 15:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1049,!this.precpred(this.context,11))throw this.createFailedPredicateException("this.precpred(this.context, 11)");this.state=1050,this.match(r.AS),this.state=1051,this.typeReference()}break;case 16:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1052,!this.precpred(this.context,10))throw this.createFailedPredicateException("this.precpred(this.context, 10)");this.state=1053,this.match(r.AT_AT),this.state=1054,this.typeReference()}break;case 17:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1055,!this.precpred(this.context,9))throw this.createFailedPredicateException("this.precpred(this.context, 9)");this.state=1056,this.match(r.META),this.state=1057,this.typeReference()}break;case 18:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1058,!this.precpred(this.context,8))throw this.createFailedPredicateException("this.precpred(this.context, 8)");this.state=1059,this.match(r.LBRACK),this.state=1061,this.errorHandler.sync(this),l=this.tokenStream.LA(1),(l===8||l===64||l===77||(l-105&-32)===0&&(1<<l-105&13)!==0||l===156||(l-191&-32)===0&&(1<<l-191&4236772773)!==0)&&(this.state=1060,this.sequenceExpressionList()),this.state=1063,this.match(r.RBRACK)}break;case 19:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1064,!this.precpred(this.context,7))throw this.createFailedPredicateException("this.precpred(this.context, 7)");this.state=1065,this.match(r.HASH),this.state=1066,this.match(r.LPAREN),this.state=1068,this.errorHandler.sync(this),l=this.tokenStream.LA(1),(l===8||l===64||l===77||(l-105&-32)===0&&(1<<l-105&13)!==0||l===156||(l-191&-32)===0&&(1<<l-191&4236772773)!==0)&&(this.state=1067,this.sequenceExpressionList()),this.state=1070,this.match(r.RPAREN)}break;case 20:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1071,!this.precpred(this.context,6))throw this.createFailedPredicateException("this.precpred(this.context, 6)");this.state=1072,this.argumentList()}break;case 21:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1073,!this.precpred(this.context,5))throw this.createFailedPredicateException("this.precpred(this.context, 5)");this.state=1074,this.match(r.DOT),this.state=1075,this.qualifiedName()}break;case 22:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1076,!this.precpred(this.context,4))throw this.createFailedPredicateException("this.precpred(this.context, 4)");this.state=1077,this.match(r.DOT_QUESTION),this.state=1078,this.bodyExpression()}break;case 23:{if(n=new te(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1079,!this.precpred(this.context,3))throw this.createFailedPredicateException("this.precpred(this.context, 3)");switch(this.state=1080,this.match(r.ARROW),this.state=1081,this.qualifiedName(),this.state=1084,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LBRACE:this.state=1082,this.bodyExpression();break;case r.LPAREN:this.state=1083,this.argumentList();break;default:throw new V(this)}}break}this.state=1090,this.errorHandler.sync(this),d=this.interpreter.adaptivePredict(this.tokenStream,5,this.context)}}}catch(d){if(d instanceof c)this.errorHandler.reportError(this,d),this.errorHandler.recover(this,d);else throw d}finally{this.unrollRecursionContexts(t)}return n}typeReference(){let e=new zn(this.context,this.state);this.enterRule(e,2,r.RULE_typeReference);try{this.enterOuterAlt(e,1),this.state=1091,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sequenceExpressionList(){let e=new Qn(this.context,this.state);this.enterRule(e,4,r.RULE_sequenceExpressionList);let t;try{for(this.enterOuterAlt(e,1),this.state=1093,this.ownedExpression(0),this.state=1098,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1094,this.match(r.COMMA),this.state=1095,this.ownedExpression(0),this.state=1100,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}baseExpression(){let e=new Hu(this.context,this.state);this.enterRule(e,6,r.RULE_baseExpression);let t;try{switch(this.state=1116,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,9,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1101,this.nullExpression();break;case 2:this.enterOuterAlt(e,2),this.state=1102,this.literalExpression();break;case 3:switch(this.enterOuterAlt(e,3),this.state=1103,this.qualifiedName(),this.state=1107,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,7,this.context)){case 1:this.state=1104,this.argumentList();break;case 2:this.state=1105,this.match(r.DOT),this.state=1106,this.match(r.METADATA);break}break;case 4:this.enterOuterAlt(e,4),this.state=1109,this.constructorExpression();break;case 5:this.enterOuterAlt(e,5),this.state=1110,this.bodyExpression();break;case 6:this.enterOuterAlt(e,6),this.state=1111,this.match(r.LPAREN),this.state=1113,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||t===64||t===77||(t-105&-32)===0&&(1<<t-105&13)!==0||t===156||(t-191&-32)===0&&(1<<t-191&4236772773)!==0)&&(this.state=1112,this.sequenceExpressionList()),this.state=1115,this.match(r.RPAREN);break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}nullExpression(){let e=new Bu(this.context,this.state);this.enterRule(e,8,r.RULE_nullExpression);try{switch(this.state=1121,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.NULL:this.enterOuterAlt(e,1),this.state=1118,this.match(r.NULL);break;case r.LPAREN:this.enterOuterAlt(e,2),this.state=1119,this.match(r.LPAREN),this.state=1120,this.match(r.RPAREN);break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureReferenceExpression(){let e=new _u(this.context,this.state);this.enterRule(e,10,r.RULE_featureReferenceExpression);try{this.enterOuterAlt(e,1),this.state=1123,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataAccessExpression(){let e=new N3(this.context,this.state);this.enterRule(e,12,r.RULE_metadataAccessExpression);try{this.enterOuterAlt(e,1),this.state=1125,this.qualifiedName(),this.state=1126,this.match(r.DOT),this.state=1127,this.match(r.METADATA)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}invocationExpression(){let e=new U3(this.context,this.state);this.enterRule(e,14,r.RULE_invocationExpression);try{this.enterOuterAlt(e,1),this.state=1129,this.qualifiedName(),this.state=1130,this.argumentList()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constructorExpression(){let e=new Vu(this.context,this.state);this.enterRule(e,16,r.RULE_constructorExpression);try{this.enterOuterAlt(e,1),this.state=1132,this.match(r.NEW),this.state=1133,this.qualifiedName(),this.state=1134,this.argumentList()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bodyExpression(){let e=new $n(this.context,this.state);this.enterRule(e,18,r.RULE_bodyExpression);try{this.enterOuterAlt(e,1),this.state=1136,this.match(r.LBRACE),this.state=1137,this.functionBodyPart(),this.state=1138,this.match(r.RBRACE)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}argumentList(){let e=new ai(this.context,this.state);this.enterRule(e,20,r.RULE_argumentList);try{this.enterOuterAlt(e,1);{switch(this.state=1140,this.match(r.LPAREN),this.state=1143,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,11,this.context)){case 1:this.state=1141,this.positionalArgumentList();break;case 2:this.state=1142,this.namedArgumentList();break}this.state=1145,this.match(r.RPAREN)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}positionalArgumentList(){let e=new qu(this.context,this.state);this.enterRule(e,22,r.RULE_positionalArgumentList);let t;try{for(this.enterOuterAlt(e,1),this.state=1147,this.ownedExpression(0),this.state=1152,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1148,this.match(r.COMMA),this.state=1149,this.ownedExpression(0),this.state=1154,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namedArgumentList(){let e=new ju(this.context,this.state);this.enterRule(e,24,r.RULE_namedArgumentList);let t;try{for(this.enterOuterAlt(e,1),this.state=1155,this.namedArgument(),this.state=1160,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1156,this.match(r.COMMA),this.state=1157,this.namedArgument(),this.state=1162,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namedArgument(){let e=new Yn(this.context,this.state);this.enterRule(e,26,r.RULE_namedArgument);try{this.enterOuterAlt(e,1),this.state=1163,this.qualifiedName(),this.state=1164,this.match(r.EQ),this.state=1165,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalExpression(){let e=new sa(this.context,this.state);this.enterRule(e,28,r.RULE_literalExpression);try{switch(this.state=1172,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.FALSE:case r.TRUE:this.enterOuterAlt(e,1),this.state=1167,this.literalBoolean();break;case r.DOUBLE_STRING:this.enterOuterAlt(e,2),this.state=1168,this.literalString();break;case r.INTEGER:this.enterOuterAlt(e,3),this.state=1169,this.literalInteger();break;case r.REAL:this.enterOuterAlt(e,4),this.state=1170,this.literalReal();break;case r.STAR:this.enterOuterAlt(e,5),this.state=1171,this.literalInfinity();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalBoolean(){let e=new Gu(this.context,this.state);this.enterRule(e,30,r.RULE_literalBoolean);let t;try{this.enterOuterAlt(e,1),this.state=1174,t=this.tokenStream.LA(1),t===64||t===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}literalString(){let e=new Wu(this.context,this.state);this.enterRule(e,32,r.RULE_literalString);try{this.enterOuterAlt(e,1),this.state=1176,this.match(r.DOUBLE_STRING)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalInteger(){let e=new Ku(this.context,this.state);this.enterRule(e,34,r.RULE_literalInteger);try{this.enterOuterAlt(e,1),this.state=1178,this.match(r.INTEGER)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalReal(){let e=new zu(this.context,this.state);this.enterRule(e,36,r.RULE_literalReal);try{this.enterOuterAlt(e,1),this.state=1180,this.match(r.REAL)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalInfinity(){let e=new Qu(this.context,this.state);this.enterRule(e,38,r.RULE_literalInfinity);try{this.enterOuterAlt(e,1),this.state=1182,this.match(r.STAR)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}argumentMember(){let e=new $u(this.context,this.state);this.enterRule(e,40,r.RULE_argumentMember);try{this.enterOuterAlt(e,1),this.state=1184,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}argumentExpressionMember(){let e=new Yu(this.context,this.state);this.enterRule(e,42,r.RULE_argumentExpressionMember);try{this.enterOuterAlt(e,1),this.state=1186,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}name(){let e=new ft(this.context,this.state);this.enterRule(e,44,r.RULE_name);let t;try{this.enterOuterAlt(e,1),this.state=1188,t=this.tokenStream.LA(1),t===218||t===219?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}identification(){let e=new me(this.context,this.state);this.enterRule(e,46,r.RULE_identification);try{switch(this.state=1200,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,15,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1190,this.match(r.LT),this.state=1191,this.name(),this.state=1192,this.match(r.GT),this.state=1193,this.name();break;case 2:this.enterOuterAlt(e,2),this.state=1195,this.match(r.LT),this.state=1196,this.name(),this.state=1197,this.match(r.GT);break;case 3:this.enterOuterAlt(e,3),this.state=1199,this.name();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}relationshipBody(){let e=new Je(this.context,this.state);this.enterRule(e,48,r.RULE_relationshipBody);let t;try{switch(this.state=1219,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,18,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1202,this.match(r.SEMI);break;case 2:this.enterOuterAlt(e,2);{for(this.state=1203,this.match(r.LBRACE),this.state=1207,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&4040229124)!==0||(t-33&-32)===0&&(1<<t-33&1085130343)!==0||(t-65&-32)===0&&(1<<t-65&1909228581)!==0||(t-101&-32)===0&&(1<<t-101&1259892783)!==0||(t-138&-32)===0&&(1<<t-138&37232361)!==0||(t-175&-32)===0&&(1<<t-175&2684756995)!==0||(t-210&-32)===0&&(1<<t-210&9091)!==0;)this.state=1204,this.relationshipOwnedElement(),this.state=1209,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1210,this.match(r.RBRACE)}break;case 3:this.enterOuterAlt(e,3);{for(this.state=1211,this.match(r.LBRACE),this.state=1215,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===30||t===54||(t-93&-32)===0&&(1<<t-93&517)!==0||t===131||(t-192&-32)===0&&(1<<t-192&2147745793)!==0;)this.state=1212,this.ownedAnnotation(),this.state=1217,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1218,this.match(r.RBRACE)}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}relationshipOwnedElement(){let e=new aa(this.context,this.state);this.enterRule(e,50,r.RULE_relationshipOwnedElement);try{switch(this.state=1223,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,19,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1221,this.ownedRelatedElement();break;case 2:this.enterOuterAlt(e,2),this.state=1222,this.ownedAnnotation();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedRelatedElement(){let e=new Ju(this.context,this.state);this.enterRule(e,52,r.RULE_ownedRelatedElement);try{switch(this.state=1227,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,20,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1225,this.nonFeatureElement();break;case 2:this.enterOuterAlt(e,2),this.state=1226,this.featureElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}dependency(){let e=new oa(this.context,this.state);this.enterRule(e,54,r.RULE_dependency);let t;try{switch(this.state=1271,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,27,this.context)){case 1:this.enterOuterAlt(e,1);{for(this.state=1232,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=1229,this.prefixMetadataAnnotation(),this.state=1234,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=1235,this.match(r.DEPENDENCY),this.state=1240,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,23,this.context)===1&&(this.state=1237,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1236,this.identification()),this.state=1239,this.match(r.FROM)),this.state=1242,this.qualifiedName(),this.state=1247,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1243,this.match(r.COMMA),this.state=1244,this.qualifiedName(),this.state=1249,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=1250,this.match(r.TO),this.state=1251,this.qualifiedName(),this.state=1256,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1252,this.match(r.COMMA),this.state=1253,this.qualifiedName(),this.state=1258,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1259,this.relationshipBody()}break;case 2:this.enterOuterAlt(e,2);{for(this.state=1264,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=1261,this.prefixMetadataAnnotation(),this.state=1266,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1267,this.match(r.DEPENDENCY),this.state=1268,this.dependencyDeclaration(),this.state=1269,this.relationshipBody()}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}annotation(){let e=new Ir(this.context,this.state);this.enterRule(e,56,r.RULE_annotation);try{this.enterOuterAlt(e,1),this.state=1273,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedAnnotation(){let e=new Jn(this.context,this.state);this.enterRule(e,58,r.RULE_ownedAnnotation);try{this.enterOuterAlt(e,1),this.state=1275,this.annotatingElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}annotatingElement(){let e=new Hi(this.context,this.state);this.enterRule(e,60,r.RULE_annotatingElement);try{switch(this.state=1281,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COMMENT:case r.LOCALE:case r.REGULAR_COMMENT:this.enterOuterAlt(e,1),this.state=1277,this.comment();break;case r.DOC:this.enterOuterAlt(e,2),this.state=1278,this.documentation();break;case r.LANGUAGE:case r.REP:this.enterOuterAlt(e,3),this.state=1279,this.textualRepresentation();break;case r.METADATA:case r.HASH:case r.AT_SIGN:this.enterOuterAlt(e,4),this.state=1280,this.metadataFeature();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}comment(){let e=new Xu(this.context,this.state);this.enterRule(e,62,r.RULE_comment);let t;try{this.enterOuterAlt(e,1);{if(this.state=1298,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===30&&(this.state=1283,this.match(r.COMMENT),this.state=1285,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1284,this.identification()),this.state=1296,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===1))for(this.state=1287,this.match(r.ABOUT),this.state=1288,this.annotation(),this.state=1293,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1289,this.match(r.COMMA),this.state=1290,this.annotation(),this.state=1295,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1302,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===95&&(this.state=1300,this.match(r.LOCALE),this.state=1301,this.match(r.DOUBLE_STRING)),this.state=1304,this.match(r.REGULAR_COMMENT)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}documentation(){let e=new Zu(this.context,this.state);this.enterRule(e,64,r.RULE_documentation);let t;try{this.enterOuterAlt(e,1),this.state=1306,this.match(r.DOC),this.state=1308,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1307,this.identification()),this.state=1312,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===95&&(this.state=1310,this.match(r.LOCALE),this.state=1311,this.match(r.DOUBLE_STRING)),this.state=1314,this.match(r.REGULAR_COMMENT)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}textualRepresentation(){let e=new ec(this.context,this.state);this.enterRule(e,66,r.RULE_textualRepresentation);let t;try{this.enterOuterAlt(e,1),this.state=1320,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===131&&(this.state=1316,this.match(r.REP),this.state=1318,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1317,this.identification())),this.state=1322,this.match(r.LANGUAGE),this.state=1323,this.match(r.DOUBLE_STRING),this.state=1324,this.match(r.REGULAR_COMMENT)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}rootNamespace(){let e=new w3(this.context,this.state);this.enterRule(e,68,r.RULE_rootNamespace);let t;try{this.enterOuterAlt(e,1);{for(this.state=1329,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-68&-32)===0&&(1<<t-68&2390947847)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3364135109)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=1326,this.packageBodyElement(),this.state=1331,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1332,this.match(r.EOF)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespace(){let e=new tc(this.context,this.state);this.enterRule(e,70,r.RULE_namespace);let t;try{this.enterOuterAlt(e,1);{for(this.state=1337,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=1334,this.prefixMetadataMember(),this.state=1339,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1340,this.namespaceDeclaration(),this.state=1341,this.namespaceBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceDeclaration(){let e=new rc(this.context,this.state);this.enterRule(e,72,r.RULE_namespaceDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=1343,this.match(r.NAMESPACE),this.state=1345,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1344,this.identification())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceBody(){let e=new ic(this.context,this.state);this.enterRule(e,74,r.RULE_namespaceBody);let t;try{switch(this.state=1356,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=1347,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=1348,this.match(r.LBRACE),this.state=1352,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&4040229252)!==0||(t-33&-32)===0&&(1<<t-33&1085130343)!==0||(t-65&-32)===0&&(1<<t-65&1909244965)!==0||(t-101&-32)===0&&(1<<t-101&1274572847)!==0||(t-138&-32)===0&&(1<<t-138&37232361)!==0||(t-175&-32)===0&&(1<<t-175&2684756995)!==0||(t-210&-32)===0&&(1<<t-210&9091)!==0;)this.state=1349,this.namespaceBodyElement(),this.state=1354,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1355,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceBodyElement(){let e=new la(this.context,this.state);this.enterRule(e,76,r.RULE_namespaceBodyElement);try{switch(this.state=1361,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,43,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1358,this.namespaceMember();break;case 2:this.enterOuterAlt(e,2),this.state=1359,this.aliasMember();break;case 3:this.enterOuterAlt(e,3),this.state=1360,this.importRule();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}memberPrefix(){let e=new re(this.context,this.state);this.enterRule(e,78,r.RULE_memberPrefix);let t;try{this.enterOuterAlt(e,1),this.state=1364,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-122&-32)===0&&(1<<t-122&7)!==0&&(this.state=1363,this.visibilityIndicator())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}visibilityIndicator(){let e=new ua(this.context,this.state);this.enterRule(e,80,r.RULE_visibilityIndicator);let t;try{this.enterOuterAlt(e,1),this.state=1366,t=this.tokenStream.LA(1),(t-122&-32)===0&&(1<<t-122&7)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceMember(){let e=new nc(this.context,this.state);this.enterRule(e,82,r.RULE_namespaceMember);try{switch(this.state=1370,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,45,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1368,this.nonFeatureMember();break;case 2:this.enterOuterAlt(e,2),this.state=1369,this.namespaceFeatureMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nonFeatureMember(){let e=new Xn(this.context,this.state);this.enterRule(e,84,r.RULE_nonFeatureMember);try{this.enterOuterAlt(e,1),this.state=1372,this.memberPrefix(),this.state=1373,this.memberElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}namespaceFeatureMember(){let e=new sc(this.context,this.state);this.enterRule(e,86,r.RULE_namespaceFeatureMember);try{this.enterOuterAlt(e,1),this.state=1375,this.memberPrefix(),this.state=1376,this.featureElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}aliasMember(){let e=new lr(this.context,this.state);this.enterRule(e,88,r.RULE_aliasMember);let t;try{this.enterOuterAlt(e,1),this.state=1378,this.memberPrefix(),this.state=1379,this.match(r.ALIAS),this.state=1384,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===206&&(this.state=1380,this.match(r.LT),this.state=1381,this.name(),this.state=1382,this.match(r.GT)),this.state=1387,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===218||t===219)&&(this.state=1386,this.name()),this.state=1389,this.match(r.FOR),this.state=1390,this.qualifiedName(),this.state=1391,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}qualifiedName(){let e=new F(this.context,this.state);this.enterRule(e,90,r.RULE_qualifiedName);let t;try{let i;this.enterOuterAlt(e,1);{for(this.state=1395,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===193&&(this.state=1393,this.match(r.DOLLAR),this.state=1394,this.match(r.COLON_COLON)),this.state=1402,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,49,this.context);i!==2&&i!==Q.INVALID_ALT_NUMBER;)i===1&&(this.state=1397,this.name(),this.state=1398,this.match(r.COLON_COLON)),this.state=1404,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,49,this.context);this.state=1405,this.name()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}importRule(){let e=new jt(this.context,this.state);this.enterRule(e,92,r.RULE_importRule);let t;try{this.enterOuterAlt(e,1),this.state=1408,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-122&-32)===0&&(1<<t-122&7)!==0&&(this.state=1407,this.visibilityIndicator()),this.state=1410,this.match(r.IMPORT),this.state=1412,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=1411,this.match(r.ALL)),this.state=1414,this.importDeclaration(),this.state=1415,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}importDeclaration(){let e=new ac(this.context,this.state);this.enterRule(e,94,r.RULE_importDeclaration);try{switch(this.state=1419,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,52,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1417,this.membershipImport();break;case 2:this.enterOuterAlt(e,2),this.state=1418,this.namespaceImport();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}membershipImport(){let e=new Zn(this.context,this.state);this.enterRule(e,96,r.RULE_membershipImport);let t;try{this.enterOuterAlt(e,1),this.state=1421,this.qualifiedName(),this.state=1424,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===183&&(this.state=1422,this.match(r.COLON_COLON),this.state=1423,this.match(r.STAR_STAR))}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceImport(){let e=new ca(this.context,this.state);this.enterRule(e,98,r.RULE_namespaceImport);let t;try{switch(this.state=1434,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,55,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1426,this.qualifiedName(),this.state=1427,this.match(r.COLON_COLON),this.state=1428,this.match(r.STAR),this.state=1431,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===183&&(this.state=1429,this.match(r.COLON_COLON),this.state=1430,this.match(r.STAR_STAR));break;case 2:this.enterOuterAlt(e,2),this.state=1433,this.filterPackage();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}filterPackage(){let e=new oc(this.context,this.state);this.enterRule(e,100,r.RULE_filterPackage);let t;try{switch(this.state=1448,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,58,this.context)){case 1:this.enterOuterAlt(e,1);{this.state=1436,this.filterPackageImportDeclaration(),this.state=1438,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=1437,this.filterPackageMember(),this.state=1440,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===211)}break;case 2:this.enterOuterAlt(e,2);{this.state=1442,this.filterPackageImport(),this.state=1444,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=1443,this.filterPackageMember(),this.state=1446,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===211)}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}filterPackageMember(){let e=new ha(this.context,this.state);this.enterRule(e,102,r.RULE_filterPackageMember);try{this.enterOuterAlt(e,1),this.state=1450,this.match(r.LBRACK),this.state=1451,this.ownedExpression(0),this.state=1452,this.match(r.RBRACK)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}memberElement(){let e=new lc(this.context,this.state);this.enterRule(e,104,r.RULE_memberElement);try{switch(this.state=1456,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,59,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1454,this.annotatingElement();break;case 2:this.enterOuterAlt(e,2),this.state=1455,this.nonFeatureElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nonFeatureElement(){let e=new da(this.context,this.state);this.enterRule(e,106,r.RULE_nonFeatureElement);try{switch(this.state=1484,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,60,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1458,this.dependency();break;case 2:this.enterOuterAlt(e,2),this.state=1459,this.namespace();break;case 3:this.enterOuterAlt(e,3),this.state=1460,this.type_();break;case 4:this.enterOuterAlt(e,4),this.state=1461,this.classifier();break;case 5:this.enterOuterAlt(e,5),this.state=1462,this.dataType();break;case 6:this.enterOuterAlt(e,6),this.state=1463,this.class_();break;case 7:this.enterOuterAlt(e,7),this.state=1464,this.structure();break;case 8:this.enterOuterAlt(e,8),this.state=1465,this.metaclass();break;case 9:this.enterOuterAlt(e,9),this.state=1466,this.association();break;case 10:this.enterOuterAlt(e,10),this.state=1467,this.associationStructure();break;case 11:this.enterOuterAlt(e,11),this.state=1468,this.interaction();break;case 12:this.enterOuterAlt(e,12),this.state=1469,this.behavior();break;case 13:this.enterOuterAlt(e,13),this.state=1470,this.function_();break;case 14:this.enterOuterAlt(e,14),this.state=1471,this.predicate();break;case 15:this.enterOuterAlt(e,15),this.state=1472,this.multiplicity();break;case 16:this.enterOuterAlt(e,16),this.state=1473,this.package_();break;case 17:this.enterOuterAlt(e,17),this.state=1474,this.libraryPackage();break;case 18:this.enterOuterAlt(e,18),this.state=1475,this.specialization();break;case 19:this.enterOuterAlt(e,19),this.state=1476,this.conjugation();break;case 20:this.enterOuterAlt(e,20),this.state=1477,this.subclassification();break;case 21:this.enterOuterAlt(e,21),this.state=1478,this.disjoining();break;case 22:this.enterOuterAlt(e,22),this.state=1479,this.featureInverting();break;case 23:this.enterOuterAlt(e,23),this.state=1480,this.featureTyping();break;case 24:this.enterOuterAlt(e,24),this.state=1481,this.subsetting();break;case 25:this.enterOuterAlt(e,25),this.state=1482,this.redefinition();break;case 26:this.enterOuterAlt(e,26),this.state=1483,this.typeFeaturing();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureElement(){let e=new oi(this.context,this.state);this.enterRule(e,108,r.RULE_featureElement);try{switch(this.state=1496,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,61,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1486,this.feature();break;case 2:this.enterOuterAlt(e,2),this.state=1487,this.step();break;case 3:this.enterOuterAlt(e,3),this.state=1488,this.expression();break;case 4:this.enterOuterAlt(e,4),this.state=1489,this.booleanExpression();break;case 5:this.enterOuterAlt(e,5),this.state=1490,this.invariant();break;case 6:this.enterOuterAlt(e,6),this.state=1491,this.connector();break;case 7:this.enterOuterAlt(e,7),this.state=1492,this.bindingConnector();break;case 8:this.enterOuterAlt(e,8),this.state=1493,this.succession();break;case 9:this.enterOuterAlt(e,9),this.state=1494,this.flow();break;case 10:this.enterOuterAlt(e,10),this.state=1495,this.successionFlow();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}type_(){let e=new uc(this.context,this.state);this.enterRule(e,110,r.RULE_type);try{this.enterOuterAlt(e,1),this.state=1498,this.typePrefix(),this.state=1499,this.match(r.TYPE),this.state=1500,this.typeDeclaration(),this.state=1501,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typePrefix(){let e=new xt(this.context,this.state);this.enterRule(e,112,r.RULE_typePrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=1504,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===2&&(this.state=1503,this.match(r.ABSTRACT)),this.state=1509,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=1506,this.prefixMetadataMember(),this.state=1511,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeDeclaration(){let e=new cc(this.context,this.state);this.enterRule(e,114,r.RULE_typeDeclaration);let t;try{this.enterOuterAlt(e,1);{this.state=1513,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=1512,this.match(r.ALL)),this.state=1516,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1515,this.identification()),this.state=1519,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===103||t===211)&&(this.state=1518,this.ownedMultiplicity()),this.state=1523,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do{switch(this.state=1523,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SPECIALIZES:case r.COLON_GT:this.state=1521,this.specializationPart();break;case r.CONJUGATES:case r.TILDE:this.state=1522,this.conjugationPart();break;default:throw new V(this)}this.state=1525,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}while(t===34||t===139||t===185||t===217);for(this.state=1530,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===50||t===52||t===86||t===160;)this.state=1527,this.typeRelationshipPart(),this.state=1532,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}specializationPart(){let e=new pa(this.context,this.state);this.enterRule(e,116,r.RULE_specializationPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1533,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1534,this.ownedSpecialization(),this.state=1539,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1535,this.match(r.COMMA),this.state=1536,this.ownedSpecialization(),this.state=1541,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}conjugationPart(){let e=new Bi(this.context,this.state);this.enterRule(e,118,r.RULE_conjugationPart);let t;try{this.enterOuterAlt(e,1),this.state=1542,t=this.tokenStream.LA(1),t===34||t===217?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1543,this.ownedConjugation()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeRelationshipPart(){let e=new li(this.context,this.state);this.enterRule(e,120,r.RULE_typeRelationshipPart);try{switch(this.state=1549,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DISJOINT:this.enterOuterAlt(e,1),this.state=1545,this.disjoiningPart();break;case r.UNIONS:this.enterOuterAlt(e,2),this.state=1546,this.unioningPart();break;case r.INTERSECTS:this.enterOuterAlt(e,3),this.state=1547,this.intersectingPart();break;case r.DIFFERENCES:this.enterOuterAlt(e,4),this.state=1548,this.differencingPart();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}disjoiningPart(){let e=new hc(this.context,this.state);this.enterRule(e,122,r.RULE_disjoiningPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1551,this.match(r.DISJOINT),this.state=1552,this.match(r.FROM),this.state=1553,this.ownedDisjoining(),this.state=1558,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1554,this.match(r.COMMA),this.state=1555,this.ownedDisjoining(),this.state=1560,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}unioningPart(){let e=new dc(this.context,this.state);this.enterRule(e,124,r.RULE_unioningPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1561,this.match(r.UNIONS),this.state=1562,this.unioning(),this.state=1567,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1563,this.match(r.COMMA),this.state=1564,this.unioning(),this.state=1569,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}intersectingPart(){let e=new pc(this.context,this.state);this.enterRule(e,126,r.RULE_intersectingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1570,this.match(r.INTERSECTS),this.state=1571,this.intersecting(),this.state=1576,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1572,this.match(r.COMMA),this.state=1573,this.intersecting(),this.state=1578,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}differencingPart(){let e=new fc(this.context,this.state);this.enterRule(e,128,r.RULE_differencingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1579,this.match(r.DIFFERENCES),this.state=1580,this.differencing(),this.state=1585,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1581,this.match(r.COMMA),this.state=1582,this.differencing(),this.state=1587,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeBody(){let e=new Fe(this.context,this.state);this.enterRule(e,130,r.RULE_typeBody);let t;try{switch(this.state=1597,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=1588,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=1589,this.match(r.LBRACE),this.state=1593,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&4040229252)!==0||(t-33&-32)===0&&(1<<t-33&1085130343)!==0||(t-65&-32)===0&&(1<<t-65&1909244965)!==0||(t-97&-32)===0&&(1<<t-97&3213296369)!==0||(t-131&-32)===0&&(1<<t-131&470774913)!==0||(t-163&-32)===0&&(1<<t-163&1648373761)!==0||(t-204&-32)===0&&(1<<t-204&581829)!==0;)this.state=1590,this.typeBodyElement(),this.state=1595,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1596,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeBodyElement(){let e=new _i(this.context,this.state);this.enterRule(e,132,r.RULE_typeBodyElement);try{switch(this.state=1603,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,78,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1599,this.nonFeatureMember();break;case 2:this.enterOuterAlt(e,2),this.state=1600,this.featureMember();break;case 3:this.enterOuterAlt(e,3),this.state=1601,this.aliasMember();break;case 4:this.enterOuterAlt(e,4),this.state=1602,this.importRule();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}specialization(){let e=new xc(this.context,this.state);this.enterRule(e,134,r.RULE_specialization);let t;try{this.enterOuterAlt(e,1),this.state=1609,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=1605,this.match(r.SPECIALIZATION),this.state=1607,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1606,this.identification())),this.state=1611,this.match(r.SUBTYPE),this.state=1612,this.specificType(),this.state=1613,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1614,this.generalType(),this.state=1615,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedSpecialization(){let e=new fa(this.context,this.state);this.enterRule(e,136,r.RULE_ownedSpecialization);try{this.enterOuterAlt(e,1),this.state=1617,this.generalType()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}specificType(){let e=new es(this.context,this.state);this.enterRule(e,138,r.RULE_specificType);let t;try{for(this.enterOuterAlt(e,1),this.state=1619,this.qualifiedName(),this.state=1624,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1620,this.match(r.DOT),this.state=1621,this.qualifiedName(),this.state=1626,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}generalType(){let e=new ui(this.context,this.state);this.enterRule(e,140,r.RULE_generalType);let t;try{for(this.enterOuterAlt(e,1),this.state=1627,this.qualifiedName(),this.state=1632,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1628,this.match(r.DOT),this.state=1629,this.qualifiedName(),this.state=1634,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}conjugation(){let e=new mc(this.context,this.state);this.enterRule(e,142,r.RULE_conjugation);let t;try{this.enterOuterAlt(e,1);{for(this.state=1639,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===35&&(this.state=1635,this.match(r.CONJUGATION),this.state=1637,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1636,this.identification())),this.state=1641,this.match(r.CONJUGATE),this.state=1642,this.qualifiedName(),this.state=1647,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1643,this.match(r.DOT),this.state=1644,this.qualifiedName(),this.state=1649,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=1650,t=this.tokenStream.LA(1),t===34||t===217?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1651,this.qualifiedName(),this.state=1656,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1652,this.match(r.DOT),this.state=1653,this.qualifiedName(),this.state=1658,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1659,this.relationshipBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedConjugation(){let e=new bc(this.context,this.state);this.enterRule(e,144,r.RULE_ownedConjugation);let t;try{for(this.enterOuterAlt(e,1),this.state=1661,this.qualifiedName(),this.state=1666,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1662,this.match(r.DOT),this.state=1663,this.qualifiedName(),this.state=1668,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}disjoining(){let e=new Rc(this.context,this.state);this.enterRule(e,146,r.RULE_disjoining);let t;try{this.enterOuterAlt(e,1);{for(this.state=1673,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===51&&(this.state=1669,this.match(r.DISJOINING),this.state=1671,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1670,this.identification())),this.state=1675,this.match(r.DISJOINT),this.state=1676,this.qualifiedName(),this.state=1681,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1677,this.match(r.DOT),this.state=1678,this.qualifiedName(),this.state=1683,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=1684,this.match(r.FROM),this.state=1685,this.qualifiedName(),this.state=1690,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1686,this.match(r.DOT),this.state=1687,this.qualifiedName(),this.state=1692,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1693,this.relationshipBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedDisjoining(){let e=new xa(this.context,this.state);this.enterRule(e,148,r.RULE_ownedDisjoining);let t;try{for(this.enterOuterAlt(e,1),this.state=1695,this.qualifiedName(),this.state=1700,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1696,this.match(r.DOT),this.state=1697,this.qualifiedName(),this.state=1702,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}unioning(){let e=new ma(this.context,this.state);this.enterRule(e,150,r.RULE_unioning);let t;try{for(this.enterOuterAlt(e,1),this.state=1703,this.qualifiedName(),this.state=1708,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1704,this.match(r.DOT),this.state=1705,this.qualifiedName(),this.state=1710,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}intersecting(){let e=new ba(this.context,this.state);this.enterRule(e,152,r.RULE_intersecting);let t;try{for(this.enterOuterAlt(e,1),this.state=1711,this.qualifiedName(),this.state=1716,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1712,this.match(r.DOT),this.state=1713,this.qualifiedName(),this.state=1718,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}differencing(){let e=new Ra(this.context,this.state);this.enterRule(e,154,r.RULE_differencing);let t;try{for(this.enterOuterAlt(e,1),this.state=1719,this.qualifiedName(),this.state=1724,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1720,this.match(r.DOT),this.state=1721,this.qualifiedName(),this.state=1726,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureMember(){let e=new gc(this.context,this.state);this.enterRule(e,156,r.RULE_featureMember);try{switch(this.state=1729,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,96,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1727,this.typeFeatureMember();break;case 2:this.enterOuterAlt(e,2),this.state=1728,this.ownedFeatureMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typeFeatureMember(){let e=new yc(this.context,this.state);this.enterRule(e,158,r.RULE_typeFeatureMember);try{this.enterOuterAlt(e,1),this.state=1731,this.memberPrefix(),this.state=1732,this.match(r.MEMBER),this.state=1733,this.featureElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedFeatureMember(){let e=new Cc(this.context,this.state);this.enterRule(e,160,r.RULE_ownedFeatureMember);try{this.enterOuterAlt(e,1),this.state=1735,this.memberPrefix(),this.state=1736,this.featureElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}classifier(){let e=new vc(this.context,this.state);this.enterRule(e,162,r.RULE_classifier);try{this.enterOuterAlt(e,1),this.state=1738,this.typePrefix(),this.state=1739,this.match(r.CLASSIFIER),this.state=1740,this.classifierDeclaration(),this.state=1741,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}classifierDeclaration(){let e=new Pt(this.context,this.state);this.enterRule(e,164,r.RULE_classifierDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=1744,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=1743,this.match(r.ALL)),this.state=1747,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1746,this.identification()),this.state=1750,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===103||t===211)&&(this.state=1749,this.ownedMultiplicity()),this.state=1754,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SPECIALIZES:case r.COLON_GT:this.state=1752,this.superclassingPart();break;case r.CONJUGATES:case r.TILDE:this.state=1753,this.conjugationPart();break;case r.DIFFERENCES:case r.DISJOINT:case r.INTERSECTS:case r.UNIONS:case r.SEMI:case r.LBRACE:break;default:break}for(this.state=1759,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===50||t===52||t===86||t===160;)this.state=1756,this.typeRelationshipPart(),this.state=1761,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}superclassingPart(){let e=new Ec(this.context,this.state);this.enterRule(e,166,r.RULE_superclassingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1762,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1763,this.ownedSubclassification(),this.state=1768,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1764,this.match(r.COMMA),this.state=1765,this.ownedSubclassification(),this.state=1770,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}subclassification(){let e=new Lc(this.context,this.state);this.enterRule(e,168,r.RULE_subclassification);let t;try{this.enterOuterAlt(e,1),this.state=1775,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=1771,this.match(r.SPECIALIZATION),this.state=1773,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1772,this.identification())),this.state=1777,this.match(r.SUBCLASSIFIER),this.state=1778,this.qualifiedName(),this.state=1779,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1780,this.qualifiedName(),this.state=1781,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedSubclassification(){let e=new Vi(this.context,this.state);this.enterRule(e,170,r.RULE_ownedSubclassification);try{this.enterOuterAlt(e,1),this.state=1783,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}feature(){let e=new Sc(this.context,this.state);this.enterRule(e,172,r.RULE_feature);let t;try{this.enterOuterAlt(e,1);{switch(this.state=1799,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,108,this.context)){case 1:{switch(this.state=1785,this.featurePrefix(),this.state=1788,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.FEATURE:this.state=1786,this.match(r.FEATURE);break;case r.HASH:this.state=1787,this.prefixMetadataMember();break;default:throw new V(this)}this.state=1791,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||(t-34&-32)===0&&(1<<t-34&8449)!==0||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||(t-217&-32)===0&&(1<<t-217&7)!==0)&&(this.state=1790,this.featureDeclaration())}break;case 2:{switch(this.state=1795,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,107,this.context)){case 1:this.state=1793,this.endFeaturePrefix();break;case 2:this.state=1794,this.basicFeaturePrefix();break}this.state=1797,this.featureDeclaration()}break}this.state=1802,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=1801,this.valuePart()),this.state=1804,this.typeBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}endFeaturePrefix(){let e=new ga(this.context,this.state);this.enterRule(e,174,r.RULE_endFeaturePrefix);let t;try{this.enterOuterAlt(e,1),this.state=1807,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===39&&(this.state=1806,this.match(r.CONST)),this.state=1809,this.match(r.END)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}basicFeaturePrefix(){let e=new ts(this.context,this.state);this.enterRule(e,176,r.RULE_basicFeaturePrefix);let t;try{this.enterOuterAlt(e,1),this.state=1812,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===80||t===83||t===114)&&(this.state=1811,this.featureDirection()),this.state=1815,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===49&&(this.state=1814,this.match(r.DERIVED)),this.state=1818,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===2&&(this.state=1817,this.match(r.ABSTRACT)),this.state=1821,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===31||t===120)&&(this.state=1820,t=this.tokenStream.LA(1),t===31||t===120?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1824,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===39||t===163)&&(this.state=1823,t=this.tokenStream.LA(1),t===39||t===163?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featurePrefix(){let e=new Ut(this.context,this.state);this.enterRule(e,178,r.RULE_featurePrefix);try{let t;this.enterOuterAlt(e,1);{switch(this.state=1831,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,117,this.context)){case 1:this.state=1826,this.endFeaturePrefix(),this.state=1828,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,116,this.context)===1&&(this.state=1827,this.ownedCrossFeatureMember());break;case 2:this.state=1830,this.basicFeaturePrefix();break}for(this.state=1836,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,118,this.context);t!==2&&t!==Q.INVALID_ALT_NUMBER;)t===1&&(this.state=1833,this.prefixMetadataMember()),this.state=1838,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,118,this.context)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedCrossFeatureMember(){let e=new ya(this.context,this.state);this.enterRule(e,180,r.RULE_ownedCrossFeatureMember);try{this.enterOuterAlt(e,1),this.state=1839,this.ownedCrossFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedCrossFeature(){let e=new Pc(this.context,this.state);this.enterRule(e,182,r.RULE_ownedCrossFeature);try{switch(this.state=1848,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,120,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1841,this.basicFeaturePrefix(),this.state=1842,this.featureDeclaration();break;case 2:this.enterOuterAlt(e,2),this.state=1844,this.basicUsagePrefix(),this.state=1846,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,119,this.context)===1&&(this.state=1845,this.usageDeclaration());break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureDirection(){let e=new Ca(this.context,this.state);this.enterRule(e,184,r.RULE_featureDirection);let t;try{this.enterOuterAlt(e,1),this.state=1850,t=this.tokenStream.LA(1),t===80||t===83||t===114?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureDeclaration(){let e=new ht(this.context,this.state);this.enterRule(e,186,r.RULE_featureDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=1853,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=1852,this.match(r.ALL)),this.state=1862,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LT:case r.IDENTIFIER:case r.STRING:switch(this.state=1855,this.featureIdentification(),this.state=1858,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,122,this.context)){case 1:this.state=1856,this.featureSpecializationPart();break;case 2:this.state=1857,this.conjugationPart();break}break;case r.CROSSES:case r.DEFINED:case r.MULTIPLICITY:case r.NONUNIQUE:case r.ORDERED:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:case r.LBRACK:this.state=1860,this.featureSpecializationPart();break;case r.CONJUGATES:case r.TILDE:this.state=1861,this.conjugationPart();break;default:throw new V(this)}for(this.state=1867,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t-27&-32)===0&&(1<<t-27&41943041)!==0||(t-66&-32)===0&&(1<<t-66&5242881)!==0||t===160;)this.state=1864,this.featureRelationshipPart(),this.state=1869,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureIdentification(){let e=new Tc(this.context,this.state);this.enterRule(e,188,r.RULE_featureIdentification);try{switch(this.state=1877,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LT:this.enterOuterAlt(e,1),this.state=1870,this.match(r.LT),this.state=1871,this.name(),this.state=1872,this.match(r.GT),this.state=1874,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,125,this.context)===1&&(this.state=1873,this.name());break;case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,2),this.state=1876,this.name();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureRelationshipPart(){let e=new va(this.context,this.state);this.enterRule(e,190,r.RULE_featureRelationshipPart);try{switch(this.state=1883,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DIFFERENCES:case r.DISJOINT:case r.INTERSECTS:case r.UNIONS:this.enterOuterAlt(e,1),this.state=1879,this.typeRelationshipPart();break;case r.CHAINS:this.enterOuterAlt(e,2),this.state=1880,this.chainingPart();break;case r.INVERSE:this.enterOuterAlt(e,3),this.state=1881,this.invertingPart();break;case r.FEATURED:this.enterOuterAlt(e,4),this.state=1882,this.typeFeaturingPart();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}chainingPart(){let e=new Ac(this.context,this.state);this.enterRule(e,192,r.RULE_chainingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1885,this.match(r.CHAINS),this.state=1886,this.qualifiedName(),this.state=1891,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1887,this.match(r.DOT),this.state=1888,this.qualifiedName(),this.state=1893,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}invertingPart(){let e=new Mc(this.context,this.state);this.enterRule(e,194,r.RULE_invertingPart);try{this.enterOuterAlt(e,1),this.state=1894,this.match(r.INVERSE),this.state=1895,this.match(r.OF),this.state=1896,this.ownedFeatureInverting()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typeFeaturingPart(){let e=new Nc(this.context,this.state);this.enterRule(e,196,r.RULE_typeFeaturingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1898,this.match(r.FEATURED),this.state=1899,this.match(r.BY),this.state=1900,this.ownedTypeFeaturing(),this.state=1905,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1901,this.match(r.COMMA),this.state=1902,this.ownedTypeFeaturing(),this.state=1907,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureSpecializationPart(){let e=new dt(this.context,this.state);this.enterRule(e,198,r.RULE_featureSpecializationPart);try{let t;switch(this.state=1929,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.CROSSES:case r.DEFINED:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:this.enterOuterAlt(e,1);{this.state=1909,this.errorHandler.sync(this),t=1;do{if(t===1)this.state=1908,this.featureSpecialization();else throw new V(this);this.state=1911,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,130,this.context)}while(t!==2&&t!==Q.INVALID_ALT_NUMBER);for(this.state=1914,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,131,this.context)===1&&(this.state=1913,this.multiplicityPart()),this.state=1919,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,132,this.context);t!==2&&t!==Q.INVALID_ALT_NUMBER;)t===1&&(this.state=1916,this.featureSpecialization()),this.state=1921,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,132,this.context)}break;case r.MULTIPLICITY:case r.NONUNIQUE:case r.ORDERED:case r.LBRACK:for(this.enterOuterAlt(e,2),this.state=1922,this.multiplicityPart(),this.state=1926,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,133,this.context);t!==2&&t!==Q.INVALID_ALT_NUMBER;)t===1&&(this.state=1923,this.featureSpecialization()),this.state=1928,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,133,this.context);break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}multiplicityPart(){let e=new Ea(this.context,this.state);this.enterRule(e,200,r.RULE_multiplicityPart);try{switch(this.state=1952,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.MULTIPLICITY:case r.LBRACK:switch(this.enterOuterAlt(e,1),this.state=1931,this.ownedMultiplicity(),this.state=1940,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,137,this.context)){case 1:this.state=1932,this.match(r.ORDERED),this.state=1934,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,135,this.context)===1&&(this.state=1933,this.match(r.NONUNIQUE));break;case 2:this.state=1936,this.match(r.NONUNIQUE),this.state=1938,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,136,this.context)===1&&(this.state=1937,this.match(r.ORDERED));break}break;case r.NONUNIQUE:case r.ORDERED:switch(this.enterOuterAlt(e,2),this.state=1950,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.ORDERED:this.state=1942,this.match(r.ORDERED),this.state=1944,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,138,this.context)===1&&(this.state=1943,this.match(r.NONUNIQUE));break;case r.NONUNIQUE:this.state=1946,this.match(r.NONUNIQUE),this.state=1948,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,139,this.context)===1&&(this.state=1947,this.match(r.ORDERED));break;default:throw new V(this)}break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureSpecialization(){let e=new ur(this.context,this.state);this.enterRule(e,202,r.RULE_featureSpecialization);try{switch(this.state=1959,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DEFINED:case r.TYPED:case r.COLON:this.enterOuterAlt(e,1),this.state=1954,this.typings();break;case r.SUBSETS:case r.COLON_GT:this.enterOuterAlt(e,2),this.state=1955,this.subsettings();break;case r.REFERENCES:case r.COLON_COLON_GT:this.enterOuterAlt(e,3),this.state=1956,this.references();break;case r.CROSSES:case r.FAT_ARROW:this.enterOuterAlt(e,4),this.state=1957,this.crosses();break;case r.REDEFINES:case r.COLON_GT_GT:this.enterOuterAlt(e,5),this.state=1958,this.redefinitions();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typings(){let e=new Uc(this.context,this.state);this.enterRule(e,204,r.RULE_typings);let t;try{switch(this.state=1977,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,145,this.context)){case 1:for(this.enterOuterAlt(e,1),this.state=1961,this.typedBy(),this.state=1966,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1962,this.match(r.COMMA),this.state=1963,this.ownedFeatureTyping(),this.state=1968,this.errorHandler.sync(this),t=this.tokenStream.LA(1);break;case 2:for(this.enterOuterAlt(e,2),this.state=1969,this.typedBy(),this.state=1974,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1970,this.match(r.COMMA),this.state=1971,this.featureTyping(),this.state=1976,this.errorHandler.sync(this),t=this.tokenStream.LA(1);break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typedBy(){let e=new wc(this.context,this.state);this.enterRule(e,206,r.RULE_typedBy);try{switch(this.state=1991,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,148,this.context)){case 1:this.enterOuterAlt(e,1);{switch(this.state=1982,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=1979,this.match(r.COLON);break;case r.TYPED:this.state=1980,this.match(r.TYPED),this.state=1981,this.match(r.BY);break;default:throw new V(this)}this.state=1984,this.ownedFeatureTyping()}break;case 2:this.enterOuterAlt(e,2);{switch(this.state=1988,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=1985,this.match(r.COLON);break;case r.DEFINED:this.state=1986,this.match(r.DEFINED),this.state=1987,this.match(r.BY);break;default:throw new V(this)}this.state=1990,this.featureTyping()}break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}subsettings(){let e=new Dc(this.context,this.state);this.enterRule(e,208,r.RULE_subsettings);let t;try{for(this.enterOuterAlt(e,1),this.state=1993,this.subsets(),this.state=1998,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1994,this.match(r.COMMA),this.state=1995,this.ownedSubsetting(),this.state=2e3,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}subsets(){let e=new La(this.context,this.state);this.enterRule(e,210,r.RULE_subsets);let t;try{this.enterOuterAlt(e,1),this.state=2001,t=this.tokenStream.LA(1),t===148||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2002,this.ownedSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}references(){let e=new Ic(this.context,this.state);this.enterRule(e,212,r.RULE_references);let t;try{this.enterOuterAlt(e,1),this.state=2004,t=this.tokenStream.LA(1),t===128||t===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2005,this.ownedReferenceSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}crosses(){let e=new Oc(this.context,this.state);this.enterRule(e,214,r.RULE_crosses);let t;try{this.enterOuterAlt(e,1),this.state=2007,t=this.tokenStream.LA(1),t===42||t===188?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2008,this.ownedCrossSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}redefinitions(){let e=new kc(this.context,this.state);this.enterRule(e,216,r.RULE_redefinitions);let t;try{for(this.enterOuterAlt(e,1),this.state=2010,this.redefines(),this.state=2015,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2011,this.match(r.COMMA),this.state=2012,this.ownedRedefinition(),this.state=2017,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}redefines(){let e=new Fc(this.context,this.state);this.enterRule(e,218,r.RULE_redefines);let t;try{this.enterOuterAlt(e,1),this.state=2018,t=this.tokenStream.LA(1),t===125||t===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2019,this.ownedRedefinition()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureTyping(){let e=new qi(this.context,this.state);this.enterRule(e,220,r.RULE_featureTyping);let t;try{switch(this.state=2039,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SPECIALIZATION:case r.TYPING:this.enterOuterAlt(e,1);{switch(this.state=2025,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=2021,this.match(r.SPECIALIZATION),this.state=2023,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2022,this.identification())),this.state=2027,this.match(r.TYPING),this.state=2028,this.qualifiedName(),this.state=2032,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=2029,this.match(r.COLON);break;case r.TYPED:this.state=2030,this.match(r.TYPED),this.state=2031,this.match(r.BY);break;default:throw new V(this)}this.state=2034,this.generalType(),this.state=2035,this.relationshipBody()}break;case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,2),this.state=2037,this.ownedFeatureTyping();break;case r.TILDE:this.enterOuterAlt(e,3),this.state=2038,this.conjugatedPortTyping();break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureTyping(){let e=new Gt(this.context,this.state);this.enterRule(e,222,r.RULE_ownedFeatureTyping);let t;try{for(this.enterOuterAlt(e,1),this.state=2041,this.qualifiedName(),this.state=2046,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2042,this.match(r.DOT),this.state=2043,this.qualifiedName(),this.state=2048,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}subsetting(){let e=new Hc(this.context,this.state);this.enterRule(e,224,r.RULE_subsetting);let t;try{this.enterOuterAlt(e,1),this.state=2053,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=2049,this.match(r.SPECIALIZATION),this.state=2051,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2050,this.identification())),this.state=2055,this.match(r.SUBSET),this.state=2056,this.specificType(),this.state=2057,t=this.tokenStream.LA(1),t===148||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2058,this.generalType(),this.state=2059,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedSubsetting(){let e=new rs(this.context,this.state);this.enterRule(e,226,r.RULE_ownedSubsetting);let t;try{for(this.enterOuterAlt(e,1),this.state=2061,this.qualifiedName(),this.state=2066,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2062,this.match(r.DOT),this.state=2063,this.qualifiedName(),this.state=2068,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedReferenceSubsetting(){let e=new Xe(this.context,this.state);this.enterRule(e,228,r.RULE_ownedReferenceSubsetting);let t;try{for(this.enterOuterAlt(e,1),this.state=2069,this.qualifiedName(),this.state=2074,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2070,this.match(r.DOT),this.state=2071,this.qualifiedName(),this.state=2076,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedCrossSubsetting(){let e=new Bc(this.context,this.state);this.enterRule(e,230,r.RULE_ownedCrossSubsetting);let t;try{for(this.enterOuterAlt(e,1),this.state=2077,this.qualifiedName(),this.state=2082,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2078,this.match(r.DOT),this.state=2079,this.qualifiedName(),this.state=2084,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}redefinition(){let e=new _c(this.context,this.state);this.enterRule(e,232,r.RULE_redefinition);let t;try{this.enterOuterAlt(e,1),this.state=2089,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=2085,this.match(r.SPECIALIZATION),this.state=2087,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2086,this.identification())),this.state=2091,this.match(r.REDEFINITION),this.state=2092,this.specificType(),this.state=2093,t=this.tokenStream.LA(1),t===125||t===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2094,this.generalType(),this.state=2095,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedRedefinition(){let e=new ci(this.context,this.state);this.enterRule(e,234,r.RULE_ownedRedefinition);let t;try{for(this.enterOuterAlt(e,1),this.state=2097,this.qualifiedName(),this.state=2102,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2098,this.match(r.DOT),this.state=2099,this.qualifiedName(),this.state=2104,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureChain(){let e=new Vc(this.context,this.state);this.enterRule(e,236,r.RULE_ownedFeatureChain);let t;try{switch(this.state=2113,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,165,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2105,this.featureChain();break;case 2:this.enterOuterAlt(e,2);{this.state=2106,this.ownedFeatureChaining(),this.state=2109,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=2107,this.match(r.DOT),this.state=2108,this.ownedFeatureChaining(),this.state=2111,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===202)}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureChain(){let e=new Sa(this.context,this.state);this.enterRule(e,238,r.RULE_featureChain);let t;try{this.enterOuterAlt(e,1);{this.state=2115,this.ownedFeatureChaining(),this.state=2118,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=2116,this.match(r.DOT),this.state=2117,this.ownedFeatureChaining(),this.state=2120,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===202)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureChaining(){let e=new Or(this.context,this.state);this.enterRule(e,240,r.RULE_ownedFeatureChaining);try{this.enterOuterAlt(e,1),this.state=2122,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureInverting(){let e=new qc(this.context,this.state);this.enterRule(e,242,r.RULE_featureInverting);let t;try{this.enterOuterAlt(e,1);{for(this.state=2128,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===89&&(this.state=2124,this.match(r.INVERTING),this.state=2126,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2125,this.identification())),this.state=2130,this.match(r.INVERSE),this.state=2131,this.qualifiedName(),this.state=2136,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2132,this.match(r.DOT),this.state=2133,this.qualifiedName(),this.state=2138,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=2139,this.match(r.OF),this.state=2140,this.qualifiedName(),this.state=2145,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2141,this.match(r.DOT),this.state=2142,this.qualifiedName(),this.state=2147,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2148,this.relationshipBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureInverting(){let e=new jc(this.context,this.state);this.enterRule(e,244,r.RULE_ownedFeatureInverting);let t;try{for(this.enterOuterAlt(e,1),this.state=2150,this.qualifiedName(),this.state=2155,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2151,this.match(r.DOT),this.state=2152,this.qualifiedName(),this.state=2157,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeFeaturing(){let e=new Gc(this.context,this.state);this.enterRule(e,246,r.RULE_typeFeaturing);let t;try{this.enterOuterAlt(e,1),this.state=2158,this.match(r.FEATURING),this.state=2163,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,173,this.context)===1&&(this.state=2160,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2159,this.identification()),this.state=2162,this.match(r.OF)),this.state=2165,this.qualifiedName(),this.state=2166,this.match(r.BY),this.state=2167,this.qualifiedName(),this.state=2168,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedTypeFeaturing(){let e=new Pa(this.context,this.state);this.enterRule(e,248,r.RULE_ownedTypeFeaturing);try{this.enterOuterAlt(e,1),this.state=2170,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}dataType(){let e=new Wc(this.context,this.state);this.enterRule(e,250,r.RULE_dataType);try{this.enterOuterAlt(e,1),this.state=2172,this.typePrefix(),this.state=2173,this.match(r.DATATYPE),this.state=2174,this.classifierDeclaration(),this.state=2175,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}class_(){let e=new Kc(this.context,this.state);this.enterRule(e,252,r.RULE_class);try{this.enterOuterAlt(e,1),this.state=2177,this.typePrefix(),this.state=2178,this.match(r.CLASS),this.state=2179,this.classifierDeclaration(),this.state=2180,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}structure(){let e=new zc(this.context,this.state);this.enterRule(e,254,r.RULE_structure);try{this.enterOuterAlt(e,1),this.state=2182,this.typePrefix(),this.state=2183,this.match(r.STRUCT),this.state=2184,this.classifierDeclaration(),this.state=2185,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}association(){let e=new Qc(this.context,this.state);this.enterRule(e,256,r.RULE_association);try{this.enterOuterAlt(e,1),this.state=2187,this.typePrefix(),this.state=2188,this.match(r.ASSOC),this.state=2189,this.classifierDeclaration(),this.state=2190,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}associationStructure(){let e=new $c(this.context,this.state);this.enterRule(e,258,r.RULE_associationStructure);try{this.enterOuterAlt(e,1),this.state=2192,this.typePrefix(),this.state=2193,this.match(r.ASSOC),this.state=2194,this.match(r.STRUCT),this.state=2195,this.classifierDeclaration(),this.state=2196,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}connector(){let e=new Yc(this.context,this.state);this.enterRule(e,260,r.RULE_connector);let t;try{this.enterOuterAlt(e,1);{switch(this.state=2198,this.featurePrefix(),this.state=2199,this.match(r.CONNECTOR),this.state=2207,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,176,this.context)){case 1:this.state=2201,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||(t-34&-32)===0&&(1<<t-34&8449)!==0||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||(t-217&-32)===0&&(1<<t-217&7)!==0)&&(this.state=2200,this.featureDeclaration()),this.state=2204,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2203,this.valuePart());break;case 2:this.state=2206,this.connectorDeclaration();break}this.state=2209,this.typeBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}connectorDeclaration(){let e=new Jc(this.context,this.state);this.enterRule(e,262,r.RULE_connectorDeclaration);try{switch(this.state=2213,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,177,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2211,this.binaryConnectorDeclaration();break;case 2:this.enterOuterAlt(e,2),this.state=2212,this.naryConnectorDeclaration();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}binaryConnectorDeclaration(){let e=new Xc(this.context,this.state);this.enterRule(e,264,r.RULE_binaryConnectorDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=2223,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,180,this.context)){case 1:this.state=2216,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||(t-34&-32)===0&&(1<<t-34&8449)!==0||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||(t-217&-32)===0&&(1<<t-217&7)!==0)&&(this.state=2215,this.featureDeclaration()),this.state=2218,this.match(r.FROM);break;case 2:this.state=2219,this.match(r.ALL),this.state=2221,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===74&&(this.state=2220,this.match(r.FROM));break}this.state=2225,this.connectorEndMember(),this.state=2226,this.match(r.TO),this.state=2227,this.connectorEndMember()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}naryConnectorDeclaration(){let e=new Zc(this.context,this.state);this.enterRule(e,266,r.RULE_naryConnectorDeclaration);let t;try{this.enterOuterAlt(e,1);{for(this.state=2230,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||(t-34&-32)===0&&(1<<t-34&8449)!==0||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||(t-217&-32)===0&&(1<<t-217&7)!==0)&&(this.state=2229,this.featureDeclaration()),this.state=2232,this.match(r.LPAREN),this.state=2233,this.connectorEndMember(),this.state=2234,this.match(r.COMMA),this.state=2235,this.connectorEndMember(),this.state=2240,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2236,this.match(r.COMMA),this.state=2237,this.connectorEndMember(),this.state=2242,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2243,this.match(r.RPAREN)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}connectorEndMember(){let e=new Be(this.context,this.state);this.enterRule(e,268,r.RULE_connectorEndMember);try{this.enterOuterAlt(e,1),this.state=2245,this.connectorEnd()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}connectorEnd(){let e=new e1(this.context,this.state);this.enterRule(e,270,r.RULE_connectorEnd);let t;try{this.enterOuterAlt(e,1),this.state=2248,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===103||t===211)&&(this.state=2247,this.ownedCrossMultiplicityMember()),this.state=2253,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,184,this.context)===1&&(this.state=2250,this.name(),this.state=2251,t=this.tokenStream.LA(1),t===128||t===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2255,this.ownedReferenceSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedCrossMultiplicityMember(){let e=new Ta(this.context,this.state);this.enterRule(e,272,r.RULE_ownedCrossMultiplicityMember);try{this.enterOuterAlt(e,1),this.state=2257,this.ownedCrossMultiplicity()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedCrossMultiplicity(){let e=new t1(this.context,this.state);this.enterRule(e,274,r.RULE_ownedCrossMultiplicity);try{this.enterOuterAlt(e,1),this.state=2259,this.ownedMultiplicity()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bindingConnector(){let e=new r1(this.context,this.state);this.enterRule(e,276,r.RULE_bindingConnector);try{this.enterOuterAlt(e,1),this.state=2261,this.featurePrefix(),this.state=2262,this.match(r.BINDING),this.state=2263,this.bindingConnectorDeclaration(),this.state=2264,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bindingConnectorDeclaration(){let e=new i1(this.context,this.state);this.enterRule(e,278,r.RULE_bindingConnectorDeclaration);let t;try{switch(this.state=2286,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,189,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2266,this.featureDeclaration(),this.state=2272,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=2267,this.match(r.OF),this.state=2268,this.connectorEndMember(),this.state=2269,this.match(r.EQ),this.state=2270,this.connectorEndMember());break;case 2:this.enterOuterAlt(e,2),this.state=2275,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=2274,this.match(r.ALL)),this.state=2284,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===103||t===111||(t-193&-32)===0&&(1<<t-193&100925441)!==0)&&(this.state=2278,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=2277,this.match(r.OF)),this.state=2280,this.connectorEndMember(),this.state=2281,this.match(r.EQ),this.state=2282,this.connectorEndMember());break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}succession(){let e=new n1(this.context,this.state);this.enterRule(e,280,r.RULE_succession);try{this.enterOuterAlt(e,1),this.state=2288,this.featurePrefix(),this.state=2289,this.match(r.SUCCESSION),this.state=2290,this.successionDeclaration(),this.state=2291,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}successionDeclaration(){let e=new s1(this.context,this.state);this.enterRule(e,282,r.RULE_successionDeclaration);let t;try{switch(this.state=2313,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,194,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2293,this.featureDeclaration(),this.state=2299,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===69&&(this.state=2294,this.match(r.FIRST),this.state=2295,this.connectorEndMember(),this.state=2296,this.match(r.THEN),this.state=2297,this.connectorEndMember());break;case 2:this.enterOuterAlt(e,2),this.state=2302,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=2301,this.match(r.ALL)),this.state=2311,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===69||t===103||(t-193&-32)===0&&(1<<t-193&100925441)!==0)&&(this.state=2305,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===69&&(this.state=2304,this.match(r.FIRST)),this.state=2307,this.connectorEndMember(),this.state=2308,this.match(r.THEN),this.state=2309,this.connectorEndMember());break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}behavior(){let e=new a1(this.context,this.state);this.enterRule(e,284,r.RULE_behavior);try{this.enterOuterAlt(e,1),this.state=2315,this.typePrefix(),this.state=2316,this.match(r.BEHAVIOR),this.state=2317,this.classifierDeclaration(),this.state=2318,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}step(){let e=new o1(this.context,this.state);this.enterRule(e,286,r.RULE_step);let t;try{this.enterOuterAlt(e,1),this.state=2320,this.featurePrefix(),this.state=2321,this.match(r.STEP),this.state=2322,this.featureDeclaration(),this.state=2324,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2323,this.valuePart()),this.state=2326,this.typeBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}function_(){let e=new l1(this.context,this.state);this.enterRule(e,288,r.RULE_function);try{this.enterOuterAlt(e,1),this.state=2328,this.typePrefix(),this.state=2329,this.match(r.FUNCTION),this.state=2330,this.classifierDeclaration(),this.state=2331,this.functionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionBody(){let e=new hi(this.context,this.state);this.enterRule(e,290,r.RULE_functionBody);try{switch(this.state=2338,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=2333,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2),this.state=2334,this.match(r.LBRACE),this.state=2335,this.functionBodyPart(),this.state=2336,this.match(r.RBRACE);break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionBodyPart(){let e=new is(this.context,this.state);this.enterRule(e,292,r.RULE_functionBodyPart);let t;try{let i;this.enterOuterAlt(e,1);{for(this.state=2344,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,198,this.context);i!==2&&i!==Q.INVALID_ALT_NUMBER;){if(i===1)switch(this.state=2342,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,197,this.context)){case 1:this.state=2340,this.typeBodyElement();break;case 2:this.state=2341,this.returnFeatureMember();break}this.state=2346,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,198,this.context)}this.state=2348,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||t===64||t===77||(t-105&-32)===0&&(1<<t-105&917517)!==0||t===156||(t-191&-32)===0&&(1<<t-191&4236772773)!==0)&&(this.state=2347,this.resultExpressionMember())}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}returnFeatureMember(){let e=new Aa(this.context,this.state);this.enterRule(e,294,r.RULE_returnFeatureMember);try{this.enterOuterAlt(e,1),this.state=2350,this.memberPrefix(),this.state=2351,this.match(r.RETURN),this.state=2352,this.featureElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}resultExpressionMember(){let e=new ns(this.context,this.state);this.enterRule(e,296,r.RULE_resultExpressionMember);try{this.enterOuterAlt(e,1),this.state=2355,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,200,this.context)===1&&(this.state=2354,this.memberPrefix()),this.state=2357,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expression(){let e=new u1(this.context,this.state);this.enterRule(e,298,r.RULE_expression);let t;try{this.enterOuterAlt(e,1),this.state=2359,this.featurePrefix(),this.state=2360,this.match(r.EXPR),this.state=2361,this.featureDeclaration(),this.state=2363,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2362,this.valuePart()),this.state=2365,this.functionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}predicate(){let e=new c1(this.context,this.state);this.enterRule(e,300,r.RULE_predicate);try{this.enterOuterAlt(e,1),this.state=2367,this.typePrefix(),this.state=2368,this.match(r.PREDICATE),this.state=2369,this.classifierDeclaration(),this.state=2370,this.functionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}booleanExpression(){let e=new h1(this.context,this.state);this.enterRule(e,302,r.RULE_booleanExpression);let t;try{this.enterOuterAlt(e,1),this.state=2372,this.featurePrefix(),this.state=2373,this.match(r.BOOL),this.state=2374,this.featureDeclaration(),this.state=2376,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2375,this.valuePart()),this.state=2378,this.functionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}invariant(){let e=new d1(this.context,this.state);this.enterRule(e,304,r.RULE_invariant);let t;try{this.enterOuterAlt(e,1),this.state=2380,this.featurePrefix(),this.state=2381,this.match(r.INV),this.state=2383,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===64||t===156)&&(this.state=2382,t=this.tokenStream.LA(1),t===64||t===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2385,this.featureDeclaration(),this.state=2387,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2386,this.valuePart()),this.state=2389,this.functionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedExpressionMember(){let e=new p1(this.context,this.state);this.enterRule(e,306,r.RULE_ownedExpressionMember);try{this.enterOuterAlt(e,1),this.state=2391,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataReference(){let e=new D3(this.context,this.state);this.enterRule(e,308,r.RULE_metadataReference);try{this.enterOuterAlt(e,1),this.state=2393,this.elementReferenceMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typeReferenceMember(){let e=new I3(this.context,this.state);this.enterRule(e,310,r.RULE_typeReferenceMember);try{this.enterOuterAlt(e,1),this.state=2395,this.typeReference()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typeResultMember(){let e=new O3(this.context,this.state);this.enterRule(e,312,r.RULE_typeResultMember);try{this.enterOuterAlt(e,1),this.state=2397,this.typeReference()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}referenceTyping(){let e=new f1(this.context,this.state);this.enterRule(e,314,r.RULE_referenceTyping);try{this.enterOuterAlt(e,1),this.state=2399,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyResultMember(){let e=new k3(this.context,this.state);this.enterRule(e,316,r.RULE_emptyResultMember);try{this.enterOuterAlt(e,1),this.state=2401,this.emptyFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sequenceOperatorExpression(){let e=new F3(this.context,this.state);this.enterRule(e,318,r.RULE_sequenceOperatorExpression);try{this.enterOuterAlt(e,1),this.state=2403,this.ownedExpressionMember(),this.state=2404,this.match(r.COMMA),this.state=2405,this.sequenceExpressionListMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sequenceExpressionListMember(){let e=new x1(this.context,this.state);this.enterRule(e,320,r.RULE_sequenceExpressionListMember);try{this.enterOuterAlt(e,1),this.state=2407,this.sequenceExpressionList()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bodyArgumentMember(){let e=new H3(this.context,this.state);this.enterRule(e,322,r.RULE_bodyArgumentMember);try{this.enterOuterAlt(e,1),this.state=2409,this.bodyArgument()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bodyArgument(){let e=new m1(this.context,this.state);this.enterRule(e,324,r.RULE_bodyArgument);try{this.enterOuterAlt(e,1),this.state=2411,this.bodyArgumentValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bodyArgumentValue(){let e=new b1(this.context,this.state);this.enterRule(e,326,r.RULE_bodyArgumentValue);try{this.enterOuterAlt(e,1),this.state=2413,this.bodyExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceArgumentMember(){let e=new B3(this.context,this.state);this.enterRule(e,328,r.RULE_functionReferenceArgumentMember);try{this.enterOuterAlt(e,1),this.state=2415,this.functionReferenceArgument()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceArgument(){let e=new R1(this.context,this.state);this.enterRule(e,330,r.RULE_functionReferenceArgument);try{this.enterOuterAlt(e,1),this.state=2417,this.functionReferenceArgumentValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceArgumentValue(){let e=new g1(this.context,this.state);this.enterRule(e,332,r.RULE_functionReferenceArgumentValue);try{this.enterOuterAlt(e,1),this.state=2419,this.functionReferenceExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceExpression(){let e=new y1(this.context,this.state);this.enterRule(e,334,r.RULE_functionReferenceExpression);try{this.enterOuterAlt(e,1),this.state=2421,this.functionReferenceMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceMember(){let e=new C1(this.context,this.state);this.enterRule(e,336,r.RULE_functionReferenceMember);try{this.enterOuterAlt(e,1),this.state=2423,this.functionReference()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReference(){let e=new v1(this.context,this.state);this.enterRule(e,338,r.RULE_functionReference);try{this.enterOuterAlt(e,1),this.state=2425,this.referenceTyping()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureChainMember(){let e=new ji(this.context,this.state);this.enterRule(e,340,r.RULE_featureChainMember);let t;try{for(this.enterOuterAlt(e,1),this.state=2427,this.qualifiedName(),this.state=2432,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2428,this.match(r.DOT),this.state=2429,this.qualifiedName(),this.state=2434,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureChainMember(){let e=new _3(this.context,this.state);this.enterRule(e,342,r.RULE_ownedFeatureChainMember);try{switch(this.state=2437,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,206,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2435,this.featureChain();break;case 2:this.enterOuterAlt(e,2),this.state=2436,this.ownedFeatureChain();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureReferenceMember(){let e=new V3(this.context,this.state);this.enterRule(e,344,r.RULE_featureReferenceMember);try{this.enterOuterAlt(e,1),this.state=2439,this.featureReference()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureReference(){let e=new E1(this.context,this.state);this.enterRule(e,346,r.RULE_featureReference);try{this.enterOuterAlt(e,1),this.state=2441,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}elementReferenceMember(){let e=new L1(this.context,this.state);this.enterRule(e,348,r.RULE_elementReferenceMember);try{this.enterOuterAlt(e,1),this.state=2443,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constructorResultMember(){let e=new q3(this.context,this.state);this.enterRule(e,350,r.RULE_constructorResultMember);try{this.enterOuterAlt(e,1),this.state=2445,this.constructorResult()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constructorResult(){let e=new S1(this.context,this.state);this.enterRule(e,352,r.RULE_constructorResult);try{this.enterOuterAlt(e,1),this.state=2447,this.argumentList()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}instantiatedTypeMember(){let e=new j3(this.context,this.state);this.enterRule(e,354,r.RULE_instantiatedTypeMember);let t;try{for(this.enterOuterAlt(e,1),this.state=2449,this.qualifiedName(),this.state=2454,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2450,this.match(r.DOT),this.state=2451,this.qualifiedName(),this.state=2456,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}instantiatedTypeReference(){let e=new G3(this.context,this.state);this.enterRule(e,356,r.RULE_instantiatedTypeReference);try{this.enterOuterAlt(e,1),this.state=2457,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}namedArgumentMember(){let e=new W3(this.context,this.state);this.enterRule(e,358,r.RULE_namedArgumentMember);try{this.enterOuterAlt(e,1),this.state=2459,this.namedArgument()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}parameterRedefinition(){let e=new K3(this.context,this.state);this.enterRule(e,360,r.RULE_parameterRedefinition);try{this.enterOuterAlt(e,1),this.state=2461,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expressionBodyMember(){let e=new z3(this.context,this.state);this.enterRule(e,362,r.RULE_expressionBodyMember);try{this.enterOuterAlt(e,1),this.state=2463,this.expressionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expressionBody(){let e=new P1(this.context,this.state);this.enterRule(e,364,r.RULE_expressionBody);try{this.enterOuterAlt(e,1),this.state=2465,this.match(r.LBRACE),this.state=2466,this.functionBodyPart(),this.state=2467,this.match(r.RBRACE)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}booleanValue(){let e=new Q3(this.context,this.state);this.enterRule(e,366,r.RULE_booleanValue);let t;try{this.enterOuterAlt(e,1),this.state=2469,t=this.tokenStream.LA(1),t===64||t===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}realValue(){let e=new $3(this.context,this.state);this.enterRule(e,368,r.RULE_realValue);let t;try{switch(this.state=2477,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOT:case r.INTEGER:this.enterOuterAlt(e,1),this.state=2472,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===221&&(this.state=2471,this.match(r.INTEGER)),this.state=2474,this.match(r.DOT),this.state=2475,t=this.tokenStream.LA(1),t===221||t===222?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case r.REAL:this.enterOuterAlt(e,2),this.state=2476,this.match(r.REAL);break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interaction(){let e=new T1(this.context,this.state);this.enterRule(e,370,r.RULE_interaction);try{this.enterOuterAlt(e,1),this.state=2479,this.typePrefix(),this.state=2480,this.match(r.INTERACTION),this.state=2481,this.classifierDeclaration(),this.state=2482,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flow(){let e=new A1(this.context,this.state);this.enterRule(e,372,r.RULE_flow);try{this.enterOuterAlt(e,1),this.state=2484,this.featurePrefix(),this.state=2485,this.match(r.FLOW),this.state=2486,this.flowDeclaration(),this.state=2487,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}successionFlow(){let e=new M1(this.context,this.state);this.enterRule(e,374,r.RULE_successionFlow);try{this.enterOuterAlt(e,1),this.state=2489,this.featurePrefix(),this.state=2490,this.match(r.SUCCESSION),this.state=2491,this.match(r.FLOW),this.state=2492,this.flowDeclaration(),this.state=2493,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowDeclaration(){let e=new Gi(this.context,this.state);this.enterRule(e,376,r.RULE_flowDeclaration);let t;try{switch(this.state=2534,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,218,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2495,this.featureDeclaration(),this.state=2497,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2496,this.valuePart()),this.state=2501,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=2499,this.match(r.OF),this.state=2500,this.payloadFeatureMember()),this.state=2508,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===74&&(this.state=2503,this.match(r.FROM),this.state=2504,this.flowEndMember(),this.state=2505,this.match(r.TO),this.state=2506,this.flowEndMember());break;case 2:this.enterOuterAlt(e,2),this.state=2511,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=2510,this.match(r.ALL)),this.state=2513,this.flowEndMember(),this.state=2514,this.match(r.TO),this.state=2515,this.flowEndMember();break;case 3:this.enterOuterAlt(e,3),this.state=2518,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=2517,this.usageDeclaration()),this.state=2521,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2520,this.valuePart()),this.state=2525,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=2523,this.match(r.OF),this.state=2524,this.flowPayloadFeatureMember()),this.state=2532,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===74&&(this.state=2527,this.match(r.FROM),this.state=2528,this.flowEndMember(),this.state=2529,this.match(r.TO),this.state=2530,this.flowEndMember());break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}payloadFeatureMember(){let e=new N1(this.context,this.state);this.enterRule(e,378,r.RULE_payloadFeatureMember);try{this.enterOuterAlt(e,1),this.state=2536,this.payloadFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}payloadFeature(){let e=new ss(this.context,this.state);this.enterRule(e,380,r.RULE_payloadFeature);let t;try{switch(this.state=2557,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,224,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2539,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2538,this.identification()),this.state=2541,this.valuePart();break;case 2:this.enterOuterAlt(e,2),this.state=2543,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2542,this.identification()),this.state=2545,this.payloadFeatureSpecializationPart(),this.state=2547,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2546,this.valuePart());break;case 3:this.enterOuterAlt(e,3),this.state=2549,this.ownedFeatureTyping(),this.state=2551,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===103||t===211)&&(this.state=2550,this.ownedMultiplicity());break;case 4:this.enterOuterAlt(e,4),this.state=2553,this.ownedMultiplicity(),this.state=2555,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-193&-32)===0&&(1<<t-193&100663297)!==0&&(this.state=2554,this.ownedFeatureTyping());break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}payloadFeatureSpecializationPart(){let e=new Ma(this.context,this.state);this.enterRule(e,382,r.RULE_payloadFeatureSpecializationPart);let t;try{let i;switch(this.state=2579,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.CROSSES:case r.DEFINED:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:this.enterOuterAlt(e,1);{this.state=2560,this.errorHandler.sync(this),i=1;do{if(i===1)this.state=2559,this.featureSpecialization();else throw new V(this);this.state=2562,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,225,this.context)}while(i!==2&&i!==Q.INVALID_ALT_NUMBER);for(this.state=2565,this.errorHandler.sync(this),t=this.tokenStream.LA(1),((t-103&-32)===0&&(1<<t-103&1033)!==0||t===211)&&(this.state=2564,this.multiplicityPart()),this.state=2570,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===42||t===47||(t-125&-32)===0&&(1<<t-125&8388617)!==0||(t-158&-32)===0&&(1<<t-158&1208352769)!==0||t===204;)this.state=2567,this.featureSpecialization(),this.state=2572,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}break;case r.MULTIPLICITY:case r.NONUNIQUE:case r.ORDERED:case r.LBRACK:this.enterOuterAlt(e,2);{this.state=2573,this.multiplicityPart(),this.state=2575,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=2574,this.featureSpecialization(),this.state=2577,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===42||t===47||(t-125&-32)===0&&(1<<t-125&8388617)!==0||(t-158&-32)===0&&(1<<t-158&1208352769)!==0||t===204)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}flowEndMember(){let e=new Na(this.context,this.state);this.enterRule(e,384,r.RULE_flowEndMember);try{this.enterOuterAlt(e,1),this.state=2581,this.flowEnd()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowEnd(){let e=new U1(this.context,this.state);this.enterRule(e,386,r.RULE_flowEnd);let t;try{for(this.enterOuterAlt(e,1),this.state=2583,this.qualifiedName(),this.state=2588,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2584,this.match(r.DOT),this.state=2585,this.qualifiedName(),this.state=2590,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}flowFeatureMember(){let e=new Y3(this.context,this.state);this.enterRule(e,388,r.RULE_flowFeatureMember);try{this.enterOuterAlt(e,1),this.state=2591,this.flowFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowFeature(){let e=new w1(this.context,this.state);this.enterRule(e,390,r.RULE_flowFeature);try{this.enterOuterAlt(e,1),this.state=2593,this.flowFeatureRedefinition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowFeatureRedefinition(){let e=new D1(this.context,this.state);this.enterRule(e,392,r.RULE_flowFeatureRedefinition);try{this.enterOuterAlt(e,1),this.state=2595,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}valuePart(){let e=new Te(this.context,this.state);this.enterRule(e,394,r.RULE_valuePart);try{this.enterOuterAlt(e,1),this.state=2597,this.featureValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureValue(){let e=new I1(this.context,this.state);this.enterRule(e,396,r.RULE_featureValue);let t;try{this.enterOuterAlt(e,1);{switch(this.state=2605,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.EQ:this.state=2599,this.match(r.EQ);break;case r.COLON_EQ:this.state=2600,this.match(r.COLON_EQ);break;case r.DEFAULT:this.state=2601,this.match(r.DEFAULT),this.state=2603,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===184||t===207)&&(this.state=2602,t=this.tokenStream.LA(1),t===184||t===207?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;default:throw new V(this)}this.state=2607,this.ownedExpression(0)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}multiplicity(){let e=new O1(this.context,this.state);this.enterRule(e,398,r.RULE_multiplicity);try{switch(this.state=2611,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,233,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2609,this.multiplicitySubset();break;case 2:this.enterOuterAlt(e,2),this.state=2610,this.multiplicityRange();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}multiplicitySubset(){let e=new k1(this.context,this.state);this.enterRule(e,400,r.RULE_multiplicitySubset);let t;try{this.enterOuterAlt(e,1),this.state=2613,this.match(r.MULTIPLICITY),this.state=2615,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2614,this.identification()),this.state=2617,this.subsets(),this.state=2618,this.typeBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}multiplicityRange(){let e=new Ua(this.context,this.state);this.enterRule(e,402,r.RULE_multiplicityRange);let t;try{switch(this.state=2636,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.MULTIPLICITY:this.enterOuterAlt(e,1),this.state=2620,this.match(r.MULTIPLICITY),this.state=2622,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2621,this.identification()),this.state=2624,this.multiplicityBounds(),this.state=2625,this.typeBody();break;case r.LBRACK:this.enterOuterAlt(e,2),this.state=2627,this.match(r.LBRACK),this.state=2631,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,236,this.context)===1&&(this.state=2628,this.multiplicityExpressionMember(),this.state=2629,this.match(r.DOT_DOT)),this.state=2633,this.multiplicityExpressionMember(),this.state=2634,this.match(r.RBRACK);break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedMultiplicity(){let e=new kr(this.context,this.state);this.enterRule(e,404,r.RULE_ownedMultiplicity);try{switch(this.state=2640,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,238,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2638,this.ownedMultiplicityRange();break;case 2:this.enterOuterAlt(e,2),this.state=2639,this.multiplicityRange();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedMultiplicityRange(){let e=new F1(this.context,this.state);this.enterRule(e,406,r.RULE_ownedMultiplicityRange);try{this.enterOuterAlt(e,1),this.state=2642,this.multiplicityBounds()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}multiplicityBounds(){let e=new wa(this.context,this.state);this.enterRule(e,408,r.RULE_multiplicityBounds);try{this.enterOuterAlt(e,1),this.state=2644,this.match(r.LBRACK),this.state=2648,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,239,this.context)===1&&(this.state=2645,this.multiplicityExpressionMember(),this.state=2646,this.match(r.DOT_DOT)),this.state=2650,this.multiplicityExpressionMember(),this.state=2651,this.match(r.RBRACK)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}multiplicityExpressionMember(){let e=new Wi(this.context,this.state);this.enterRule(e,410,r.RULE_multiplicityExpressionMember);try{switch(this.enterOuterAlt(e,1),this.state=2655,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.FALSE:case r.TRUE:case r.STAR:case r.DOUBLE_STRING:case r.INTEGER:case r.REAL:this.state=2653,this.literalExpression();break;case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=2654,this.featureReferenceExpression();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metaclass(){let e=new H1(this.context,this.state);this.enterRule(e,412,r.RULE_metaclass);try{this.enterOuterAlt(e,1),this.state=2657,this.typePrefix(),this.state=2658,this.match(r.METACLASS),this.state=2659,this.classifierDeclaration(),this.state=2660,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}prefixMetadataAnnotation(){let e=new Da(this.context,this.state);this.enterRule(e,414,r.RULE_prefixMetadataAnnotation);try{switch(this.state=2666,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,241,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2662,this.match(r.HASH),this.state=2663,this.prefixMetadataFeature();break;case 2:this.enterOuterAlt(e,2),this.state=2664,this.match(r.HASH),this.state=2665,this.prefixMetadataUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}prefixMetadataMember(){let e=new Ze(this.context,this.state);this.enterRule(e,416,r.RULE_prefixMetadataMember);try{switch(this.state=2672,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,242,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2668,this.match(r.HASH),this.state=2669,this.prefixMetadataFeature();break;case 2:this.enterOuterAlt(e,2),this.state=2670,this.match(r.HASH),this.state=2671,this.prefixMetadataUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}prefixMetadataFeature(){let e=new Ia(this.context,this.state);this.enterRule(e,418,r.RULE_prefixMetadataFeature);try{this.enterOuterAlt(e,1),this.state=2674,this.ownedFeatureTyping()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataFeature(){let e=new B1(this.context,this.state);this.enterRule(e,420,r.RULE_metadataFeature);let t;try{this.enterOuterAlt(e,1);{for(this.state=2679,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2676,this.prefixMetadataMember(),this.state=2681,this.errorHandler.sync(this),t=this.tokenStream.LA(1);if(this.state=2682,t=this.tokenStream.LA(1),t===102||t===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2683,this.metadataFeatureDeclaration(),this.state=2693,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===1)for(this.state=2684,this.match(r.ABOUT),this.state=2685,this.annotation(),this.state=2690,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2686,this.match(r.COMMA),this.state=2687,this.annotation(),this.state=2692,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2695,this.metadataBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataFeatureDeclaration(){let e=new _1(this.context,this.state);this.enterRule(e,422,r.RULE_metadataFeatureDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=2705,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,248,this.context)){case 1:switch(this.state=2698,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2697,this.identification()),this.state=2703,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=2700,this.match(r.COLON);break;case r.TYPED:this.state=2701,this.match(r.TYPED),this.state=2702,this.match(r.BY);break;default:throw new V(this)}break}this.state=2707,this.ownedFeatureTyping()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataBody(){let e=new Ki(this.context,this.state);this.enterRule(e,424,r.RULE_metadataBody);let t;try{switch(this.state=2729,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,252,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2709,this.match(r.SEMI);break;case 2:this.enterOuterAlt(e,2);{for(this.state=2710,this.match(r.LBRACE),this.state=2714,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1880162436)!==0||(t-33&-32)===0&&(1<<t-33&2917381)!==0||(t-65&-32)===0&&(1<<t-65&1904755717)!==0||(t-101&-32)===0&&(1<<t-101&1139818511)!==0||(t-138&-32)===0&&(1<<t-138&2624201)!==0||(t-176&-32)===0&&(1<<t-176&196609)!==0||(t-210&-32)===0&&(1<<t-210&9091)!==0;)this.state=2711,this.metadataBodyElement(),this.state=2716,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2717,this.match(r.RBRACE)}break;case 3:this.enterOuterAlt(e,3);{for(this.state=2718,this.match(r.LBRACE),this.state=2725,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1174932628)!==0||(t-32&-32)===0&&(1<<t-32&71369249)!==0||(t-70&-32)===0&&(1<<t-70&60854785)!==0||(t-102&-32)===0&&(1<<t-102&3002245377)!==0||(t-141&-32)===0&&(1<<t-141&857735171)!==0||(t-176&-32)===0&&(1<<t-176&196609)!==0||(t-210&-32)===0&&(1<<t-210&8961)!==0;){switch(this.state=2723,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,250,this.context)){case 1:this.state=2719,this.definitionMember();break;case 2:this.state=2720,this.metadataBodyUsageMember();break;case 3:this.state=2721,this.aliasMember();break;case 4:this.state=2722,this.importRule();break}this.state=2727,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}this.state=2728,this.match(r.RBRACE)}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataBodyElement(){let e=new Oa(this.context,this.state);this.enterRule(e,426,r.RULE_metadataBodyElement);try{switch(this.state=2735,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,253,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2731,this.nonFeatureMember();break;case 2:this.enterOuterAlt(e,2),this.state=2732,this.metadataBodyFeatureMember();break;case 3:this.enterOuterAlt(e,3),this.state=2733,this.aliasMember();break;case 4:this.enterOuterAlt(e,4),this.state=2734,this.importRule();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataBodyFeatureMember(){let e=new V1(this.context,this.state);this.enterRule(e,428,r.RULE_metadataBodyFeatureMember);try{this.enterOuterAlt(e,1),this.state=2737,this.metadataBodyFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataBodyFeature(){let e=new q1(this.context,this.state);this.enterRule(e,430,r.RULE_metadataBodyFeature);let t;try{this.enterOuterAlt(e,1),this.state=2740,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===65&&(this.state=2739,this.match(r.FEATURE)),this.state=2743,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===125||t===176)&&(this.state=2742,t=this.tokenStream.LA(1),t===125||t===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2745,this.ownedRedefinition(),this.state=2747,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=2746,this.featureSpecializationPart()),this.state=2750,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2749,this.valuePart()),this.state=2752,this.metadataBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}package_(){let e=new ka(this.context,this.state);this.enterRule(e,432,r.RULE_package);let t;try{this.enterOuterAlt(e,1);{for(this.state=2757,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2754,this.prefixMetadataMember(),this.state=2759,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2760,this.packageDeclaration(),this.state=2761,this.packageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}libraryPackage(){let e=new Fa(this.context,this.state);this.enterRule(e,434,r.RULE_libraryPackage);let t;try{this.enterOuterAlt(e,1);{for(this.state=2764,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===141&&(this.state=2763,this.match(r.STANDARD)),this.state=2766,this.match(r.LIBRARY),this.state=2770,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2767,this.prefixMetadataMember(),this.state=2772,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2773,this.packageDeclaration(),this.state=2774,this.packageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}packageDeclaration(){let e=new Ha(this.context,this.state);this.enterRule(e,436,r.RULE_packageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=2776,this.match(r.PACKAGE),this.state=2778,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2777,this.identification())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}packageBody(){let e=new Ba(this.context,this.state);this.enterRule(e,438,r.RULE_packageBody);let t;try{switch(this.state=2789,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=2780,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=2781,this.match(r.LBRACE),this.state=2785,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-68&-32)===0&&(1<<t-68&2390947847)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3364135109)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=2782,this.packageBodyElement(),this.state=2787,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2788,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}elementFilterMember(){let e=new as(this.context,this.state);this.enterRule(e,440,r.RULE_elementFilterMember);try{this.enterOuterAlt(e,1),this.state=2791,this.memberPrefix(),this.state=2792,this.match(r.FILTER),this.state=2793,this.ownedExpression(0),this.state=2794,this.match(r.SEMI)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}dependencyDeclaration(){let e=new j1(this.context,this.state);this.enterRule(e,442,r.RULE_dependencyDeclaration);let t;try{this.enterOuterAlt(e,1);{for(this.state=2800,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,265,this.context)===1&&(this.state=2797,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2796,this.identification()),this.state=2799,this.match(r.FROM)),this.state=2802,this.qualifiedName(),this.state=2807,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2803,this.match(r.COMMA),this.state=2804,this.qualifiedName(),this.state=2809,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=2810,this.match(r.TO),this.state=2811,this.qualifiedName(),this.state=2816,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2812,this.match(r.COMMA),this.state=2813,this.qualifiedName(),this.state=2818,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}annotatingMember(){let e=new _a(this.context,this.state);this.enterRule(e,444,r.RULE_annotatingMember);try{this.enterOuterAlt(e,1),this.state=2819,this.annotatingElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}packageBodyElement(){let e=new zi(this.context,this.state);this.enterRule(e,446,r.RULE_packageBodyElement);try{switch(this.state=2825,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,268,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2821,this.packageMember();break;case 2:this.enterOuterAlt(e,2),this.state=2822,this.elementFilterMember();break;case 3:this.enterOuterAlt(e,3),this.state=2823,this.aliasMember();break;case 4:this.enterOuterAlt(e,4),this.state=2824,this.importRule();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}packageMember(){let e=new G1(this.context,this.state);this.enterRule(e,448,r.RULE_packageMember);try{switch(this.enterOuterAlt(e,1),this.state=2827,this.memberPrefix(),this.state=2830,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,269,this.context)){case 1:this.state=2828,this.definitionElement();break;case 2:this.state=2829,this.usageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}definitionElement(){let e=new os(this.context,this.state);this.enterRule(e,450,r.RULE_definitionElement);try{switch(this.state=2862,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,270,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2832,this.package_();break;case 2:this.enterOuterAlt(e,2),this.state=2833,this.libraryPackage();break;case 3:this.enterOuterAlt(e,3),this.state=2834,this.annotatingElement();break;case 4:this.enterOuterAlt(e,4),this.state=2835,this.dependency();break;case 5:this.enterOuterAlt(e,5),this.state=2836,this.attributeDefinition();break;case 6:this.enterOuterAlt(e,6),this.state=2837,this.enumerationDefinition();break;case 7:this.enterOuterAlt(e,7),this.state=2838,this.occurrenceDefinition();break;case 8:this.enterOuterAlt(e,8),this.state=2839,this.individualDefinition();break;case 9:this.enterOuterAlt(e,9),this.state=2840,this.itemDefinition();break;case 10:this.enterOuterAlt(e,10),this.state=2841,this.partDefinition();break;case 11:this.enterOuterAlt(e,11),this.state=2842,this.connectionDefinition();break;case 12:this.enterOuterAlt(e,12),this.state=2843,this.flowDefinition();break;case 13:this.enterOuterAlt(e,13),this.state=2844,this.interfaceDefinition();break;case 14:this.enterOuterAlt(e,14),this.state=2845,this.portDefinition();break;case 15:this.enterOuterAlt(e,15),this.state=2846,this.actionDefinition();break;case 16:this.enterOuterAlt(e,16),this.state=2847,this.calculationDefinition();break;case 17:this.enterOuterAlt(e,17),this.state=2848,this.stateDefinition();break;case 18:this.enterOuterAlt(e,18),this.state=2849,this.constraintDefinition();break;case 19:this.enterOuterAlt(e,19),this.state=2850,this.requirementDefinition();break;case 20:this.enterOuterAlt(e,20),this.state=2851,this.concernDefinition();break;case 21:this.enterOuterAlt(e,21),this.state=2852,this.caseDefinition();break;case 22:this.enterOuterAlt(e,22),this.state=2853,this.analysisCaseDefinition();break;case 23:this.enterOuterAlt(e,23),this.state=2854,this.verificationCaseDefinition();break;case 24:this.enterOuterAlt(e,24),this.state=2855,this.useCaseDefinition();break;case 25:this.enterOuterAlt(e,25),this.state=2856,this.viewDefinition();break;case 26:this.enterOuterAlt(e,26),this.state=2857,this.viewpointDefinition();break;case 27:this.enterOuterAlt(e,27),this.state=2858,this.renderingDefinition();break;case 28:this.enterOuterAlt(e,28),this.state=2859,this.metadataDefinition();break;case 29:this.enterOuterAlt(e,29),this.state=2860,this.allocationDefinition();break;case 30:this.enterOuterAlt(e,30),this.state=2861,this.extendedDefinition();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}usageElement(){let e=new Va(this.context,this.state);this.enterRule(e,452,r.RULE_usageElement);try{switch(this.state=2866,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,271,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2864,this.nonOccurrenceUsageElement();break;case 2:this.enterOuterAlt(e,2),this.state=2865,this.occurrenceUsageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}basicDefinitionPrefix(){let e=new Qi(this.context,this.state);this.enterRule(e,454,r.RULE_basicDefinitionPrefix);let t;try{this.enterOuterAlt(e,1),this.state=2868,t=this.tokenStream.LA(1),t===2||t===165?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionExtensionKeyword(){let e=new mt(this.context,this.state);this.enterRule(e,456,r.RULE_definitionExtensionKeyword);try{this.enterOuterAlt(e,1),this.state=2870,this.prefixMetadataMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}definitionPrefix(){let e=new qa(this.context,this.state);this.enterRule(e,458,r.RULE_definitionPrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=2873,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=2872,this.basicDefinitionPrefix()),this.state=2878,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2875,this.definitionExtensionKeyword(),this.state=2880,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definition(){let e=new bt(this.context,this.state);this.enterRule(e,460,r.RULE_definition);try{this.enterOuterAlt(e,1),this.state=2881,this.definitionDeclaration(),this.state=2882,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}definitionDeclaration(){let e=new et(this.context,this.state);this.enterRule(e,462,r.RULE_definitionDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=2885,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2884,this.identification()),this.state=2888,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===139||t===185)&&(this.state=2887,this.subclassificationPart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionBody(){let e=new di(this.context,this.state);this.enterRule(e,464,r.RULE_definitionBody);let t;try{switch(this.state=2899,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=2890,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=2891,this.match(r.LBRACE),this.state=2895,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-69&-32)===0&&(1<<t-69&1195473923)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3901137093)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=2892,this.definitionBodyItem(),this.state=2897,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2898,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionBodyItem(){let e=new pi(this.context,this.state);this.enterRule(e,466,r.RULE_definitionBodyItem);let t;try{switch(this.state=2911,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,279,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2901,this.importRule();break;case 2:this.enterOuterAlt(e,2),this.state=2902,this.memberPrefix(),this.state=2903,this.definitionBodyItemContent();break;case 3:this.enterOuterAlt(e,3),this.state=2906,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=2905,this.sourceSuccessionMember()),this.state=2908,this.memberPrefix(),this.state=2909,this.occurrenceUsageElement();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionBodyItemContent(){let e=new W1(this.context,this.state);this.enterRule(e,468,r.RULE_definitionBodyItemContent);let t;try{switch(this.state=2931,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,282,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2913,this.match(r.ALIAS),this.state=2918,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===206&&(this.state=2914,this.match(r.LT),this.state=2915,this.name(),this.state=2916,this.match(r.GT)),this.state=2921,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===218||t===219)&&(this.state=2920,this.name()),this.state=2923,this.match(r.FOR),this.state=2924,this.qualifiedName(),this.state=2925,this.relationshipBody();break;case 2:this.enterOuterAlt(e,2),this.state=2927,this.match(r.VARIANT),this.state=2928,this.variantUsageElement();break;case 3:this.enterOuterAlt(e,3),this.state=2929,this.definitionElement();break;case 4:this.enterOuterAlt(e,4),this.state=2930,this.nonOccurrenceUsageElement();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionMember(){let e=new $i(this.context,this.state);this.enterRule(e,470,r.RULE_definitionMember);try{this.enterOuterAlt(e,1),this.state=2933,this.memberPrefix(),this.state=2934,this.definitionElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}variantUsageMember(){let e=new ja(this.context,this.state);this.enterRule(e,472,r.RULE_variantUsageMember);try{this.enterOuterAlt(e,1),this.state=2936,this.memberPrefix(),this.state=2937,this.match(r.VARIANT),this.state=2938,this.variantUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nonOccurrenceUsageMember(){let e=new K1(this.context,this.state);this.enterRule(e,474,r.RULE_nonOccurrenceUsageMember);try{this.enterOuterAlt(e,1),this.state=2940,this.memberPrefix(),this.state=2941,this.nonOccurrenceUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}occurrenceUsageMember(){let e=new J3(this.context,this.state);this.enterRule(e,476,r.RULE_occurrenceUsageMember);try{this.enterOuterAlt(e,1),this.state=2943,this.memberPrefix(),this.state=2944,this.occurrenceUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}structureUsageMember(){let e=new z1(this.context,this.state);this.enterRule(e,478,r.RULE_structureUsageMember);try{this.enterOuterAlt(e,1),this.state=2946,this.memberPrefix(),this.state=2947,this.structureUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}behaviorUsageMember(){let e=new Ga(this.context,this.state);this.enterRule(e,480,r.RULE_behaviorUsageMember);try{this.enterOuterAlt(e,1),this.state=2949,this.memberPrefix(),this.state=2950,this.behaviorUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}refPrefix(){let e=new Yi(this.context,this.state);this.enterRule(e,482,r.RULE_refPrefix);let t;try{this.enterOuterAlt(e,1),this.state=2953,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===80||t===83||t===114)&&(this.state=2952,this.featureDirection()),this.state=2956,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===49&&(this.state=2955,this.match(r.DERIVED)),this.state=2959,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=2958,t=this.tokenStream.LA(1),t===2||t===165?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2962,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===40&&(this.state=2961,this.match(r.CONSTANT))}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}basicUsagePrefix(){let e=new fi(this.context,this.state);this.enterRule(e,484,r.RULE_basicUsagePrefix);try{this.enterOuterAlt(e,1),this.state=2964,this.refPrefix(),this.state=2966,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,287,this.context)===1&&(this.state=2965,this.match(r.REF))}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}endUsagePrefix(){let e=new ls(this.context,this.state);this.enterRule(e,486,r.RULE_endUsagePrefix);try{this.enterOuterAlt(e,1),this.state=2968,this.match(r.END),this.state=2970,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,288,this.context)===1&&(this.state=2969,this.ownedCrossFeatureMember())}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}usageExtensionKeyword(){let e=new le(this.context,this.state);this.enterRule(e,488,r.RULE_usageExtensionKeyword);try{this.enterOuterAlt(e,1),this.state=2972,this.prefixMetadataMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}unextendedUsagePrefix(){let e=new Wa(this.context,this.state);this.enterRule(e,490,r.RULE_unextendedUsagePrefix);try{switch(this.state=2976,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.END:this.enterOuterAlt(e,1),this.state=2974,this.endUsagePrefix();break;case r.ABSTRACT:case r.ATTRIBUTE:case r.BIND:case r.BINDING:case r.CONSTANT:case r.DERIVED:case r.ENUM:case r.FIRST:case r.IN:case r.INOUT:case r.OUT:case r.REF:case r.SUCCESSION:case r.VARIATION:case r.HASH:this.enterOuterAlt(e,2),this.state=2975,this.basicUsagePrefix();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}usagePrefix(){let e=new Ji(this.context,this.state);this.enterRule(e,492,r.RULE_usagePrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=2978,this.unextendedUsagePrefix(),this.state=2982,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2979,this.usageExtensionKeyword(),this.state=2984,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}usage(){let e=new _e(this.context,this.state);this.enterRule(e,494,r.RULE_usage);let t;try{this.enterOuterAlt(e,1),this.state=2986,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=2985,this.usageDeclaration()),this.state=2988,this.usageCompletion()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}usageDeclaration(){let e=new de(this.context,this.state);this.enterRule(e,496,r.RULE_usageDeclaration);try{switch(this.state=2995,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LT:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=2990,this.identification(),this.state=2992,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,292,this.context)===1&&(this.state=2991,this.featureSpecializationPart());break;case r.CROSSES:case r.DEFINED:case r.MULTIPLICITY:case r.NONUNIQUE:case r.ORDERED:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:case r.LBRACK:this.enterOuterAlt(e,2),this.state=2994,this.featureSpecializationPart();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}usageCompletion(){let e=new us(this.context,this.state);this.enterRule(e,498,r.RULE_usageCompletion);let t;try{this.enterOuterAlt(e,1),this.state=2998,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2997,this.valuePart()),this.state=3e3,this.usageBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}usageBody(){let e=new Wt(this.context,this.state);this.enterRule(e,500,r.RULE_usageBody);try{this.enterOuterAlt(e,1),this.state=3002,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}defaultReferenceUsage(){let e=new Q1(this.context,this.state);this.enterRule(e,502,r.RULE_defaultReferenceUsage);try{this.enterOuterAlt(e,1),this.state=3004,this.refPrefix(),this.state=3005,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}referenceUsage(){let e=new cs(this.context,this.state);this.enterRule(e,504,r.RULE_referenceUsage);try{this.enterOuterAlt(e,1);{switch(this.state=3009,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.END:this.state=3007,this.endUsagePrefix();break;case r.ABSTRACT:case r.CONSTANT:case r.DERIVED:case r.IN:case r.INOUT:case r.OUT:case r.REF:case r.VARIATION:this.state=3008,this.refPrefix();break;default:throw new V(this)}this.state=3011,this.match(r.REF),this.state=3012,this.usage()}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}endFeatureUsage(){let e=new $1(this.context,this.state);this.enterRule(e,506,r.RULE_endFeatureUsage);try{this.enterOuterAlt(e,1),this.state=3014,this.endUsagePrefix(),this.state=3015,this.featureDeclaration(),this.state=3016,this.usageCompletion()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}variantReference(){let e=new Y1(this.context,this.state);this.enterRule(e,508,r.RULE_variantReference);let t;try{this.enterOuterAlt(e,1);{for(this.state=3018,this.ownedReferenceSubsetting(),this.state=3022,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===42||t===47||(t-125&-32)===0&&(1<<t-125&8388617)!==0||(t-158&-32)===0&&(1<<t-158&1208352769)!==0||t===204;)this.state=3019,this.featureSpecialization(),this.state=3024,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3025,this.usageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}nonOccurrenceUsageElement(){let e=new hs(this.context,this.state);this.enterRule(e,510,r.RULE_nonOccurrenceUsageElement);try{switch(this.state=3035,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,297,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3027,this.referenceUsage();break;case 2:this.enterOuterAlt(e,2),this.state=3028,this.endFeatureUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3029,this.attributeUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3030,this.enumerationUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3031,this.bindingConnectorAsUsage();break;case 6:this.enterOuterAlt(e,6),this.state=3032,this.successionAsUsage();break;case 7:this.enterOuterAlt(e,7),this.state=3033,this.extendedUsage();break;case 8:this.enterOuterAlt(e,8),this.state=3034,this.defaultReferenceUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}occurrenceUsageElement(){let e=new ds(this.context,this.state);this.enterRule(e,512,r.RULE_occurrenceUsageElement);try{switch(this.state=3039,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,298,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3037,this.structureUsageElement();break;case 2:this.enterOuterAlt(e,2),this.state=3038,this.behaviorUsageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}structureUsageElement(){let e=new ps(this.context,this.state);this.enterRule(e,514,r.RULE_structureUsageElement);try{switch(this.state=3056,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,299,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3041,this.occurrenceUsage();break;case 2:this.enterOuterAlt(e,2),this.state=3042,this.individualUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3043,this.portionUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3044,this.eventOccurrenceUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3045,this.itemUsage();break;case 6:this.enterOuterAlt(e,6),this.state=3046,this.partUsage();break;case 7:this.enterOuterAlt(e,7),this.state=3047,this.viewUsage();break;case 8:this.enterOuterAlt(e,8),this.state=3048,this.renderingUsage();break;case 9:this.enterOuterAlt(e,9),this.state=3049,this.portUsage();break;case 10:this.enterOuterAlt(e,10),this.state=3050,this.connectionUsage();break;case 11:this.enterOuterAlt(e,11),this.state=3051,this.interfaceUsage();break;case 12:this.enterOuterAlt(e,12),this.state=3052,this.allocationUsage();break;case 13:this.enterOuterAlt(e,13),this.state=3053,this.message();break;case 14:this.enterOuterAlt(e,14),this.state=3054,this.flowUsage();break;case 15:this.enterOuterAlt(e,15),this.state=3055,this.successionFlowUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}behaviorUsageElement(){let e=new Xi(this.context,this.state);this.enterRule(e,516,r.RULE_behaviorUsageElement);try{switch(this.state=3074,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,300,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3058,this.actionUsage();break;case 2:this.enterOuterAlt(e,2),this.state=3059,this.calculationUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3060,this.stateUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3061,this.constraintUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3062,this.requirementUsage();break;case 6:this.enterOuterAlt(e,6),this.state=3063,this.concernUsage();break;case 7:this.enterOuterAlt(e,7),this.state=3064,this.caseUsage();break;case 8:this.enterOuterAlt(e,8),this.state=3065,this.analysisCaseUsage();break;case 9:this.enterOuterAlt(e,9),this.state=3066,this.verificationCaseUsage();break;case 10:this.enterOuterAlt(e,10),this.state=3067,this.useCaseUsage();break;case 11:this.enterOuterAlt(e,11),this.state=3068,this.viewpointUsage();break;case 12:this.enterOuterAlt(e,12),this.state=3069,this.performActionUsage();break;case 13:this.enterOuterAlt(e,13),this.state=3070,this.exhibitStateUsage();break;case 14:this.enterOuterAlt(e,14),this.state=3071,this.includeUseCaseUsage();break;case 15:this.enterOuterAlt(e,15),this.state=3072,this.assertConstraintUsage();break;case 16:this.enterOuterAlt(e,16),this.state=3073,this.satisfyRequirementUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}variantUsageElement(){let e=new Ka(this.context,this.state);this.enterRule(e,518,r.RULE_variantUsageElement);try{switch(this.state=3097,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,301,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3076,this.variantReference();break;case 2:this.enterOuterAlt(e,2),this.state=3077,this.referenceUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3078,this.attributeUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3079,this.bindingConnectorAsUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3080,this.successionAsUsage();break;case 6:this.enterOuterAlt(e,6),this.state=3081,this.occurrenceUsage();break;case 7:this.enterOuterAlt(e,7),this.state=3082,this.individualUsage();break;case 8:this.enterOuterAlt(e,8),this.state=3083,this.portionUsage();break;case 9:this.enterOuterAlt(e,9),this.state=3084,this.eventOccurrenceUsage();break;case 10:this.enterOuterAlt(e,10),this.state=3085,this.itemUsage();break;case 11:this.enterOuterAlt(e,11),this.state=3086,this.partUsage();break;case 12:this.enterOuterAlt(e,12),this.state=3087,this.viewUsage();break;case 13:this.enterOuterAlt(e,13),this.state=3088,this.renderingUsage();break;case 14:this.enterOuterAlt(e,14),this.state=3089,this.portUsage();break;case 15:this.enterOuterAlt(e,15),this.state=3090,this.connectionUsage();break;case 16:this.enterOuterAlt(e,16),this.state=3091,this.interfaceUsage();break;case 17:this.enterOuterAlt(e,17),this.state=3092,this.allocationUsage();break;case 18:this.enterOuterAlt(e,18),this.state=3093,this.message();break;case 19:this.enterOuterAlt(e,19),this.state=3094,this.flowUsage();break;case 20:this.enterOuterAlt(e,20),this.state=3095,this.successionFlowUsage();break;case 21:this.enterOuterAlt(e,21),this.state=3096,this.behaviorUsageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}subclassificationPart(){let e=new J1(this.context,this.state);this.enterRule(e,520,r.RULE_subclassificationPart);let t;try{for(this.enterOuterAlt(e,1),this.state=3099,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3100,this.ownedSubclassification(),this.state=3105,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=3101,this.match(r.COMMA),this.state=3102,this.ownedSubclassification(),this.state=3107,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}attributeDefinition(){let e=new X1(this.context,this.state);this.enterRule(e,522,r.RULE_attributeDefinition);try{this.enterOuterAlt(e,1),this.state=3108,this.definitionPrefix(),this.state=3109,this.match(r.ATTRIBUTE),this.state=3110,this.match(r.DEF),this.state=3111,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}attributeUsage(){let e=new fs(this.context,this.state);this.enterRule(e,524,r.RULE_attributeUsage);try{this.enterOuterAlt(e,1),this.state=3113,this.usagePrefix(),this.state=3114,this.match(r.ATTRIBUTE),this.state=3115,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}enumerationDefinition(){let e=new Z1(this.context,this.state);this.enterRule(e,526,r.RULE_enumerationDefinition);let t;try{this.enterOuterAlt(e,1);{for(this.state=3120,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3117,this.definitionExtensionKeyword(),this.state=3122,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3123,this.match(r.ENUM),this.state=3124,this.match(r.DEF),this.state=3125,this.definitionDeclaration(),this.state=3126,this.enumerationBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}enumerationBody(){let e=new e0(this.context,this.state);this.enterRule(e,528,r.RULE_enumerationBody);let t;try{switch(this.state=3138,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3128,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3129,this.match(r.LBRACE),this.state=3134,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t-30&-32)===0&&(1<<t-30&285413377)!==0||(t-93&-32)===0&&(1<<t-93&3759154693)!==0||(t-125&-32)===0&&(1<<t-125&8388681)!==0||(t-158&-32)===0&&(1<<t-158&1275461633)!==0||(t-192&-32)===0&&(1<<t-192&2353852417)!==0;){switch(this.state=3132,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COMMENT:case r.DOC:case r.LANGUAGE:case r.LOCALE:case r.METADATA:case r.REP:case r.HASH:case r.AT_SIGN:case r.REGULAR_COMMENT:this.state=3130,this.annotatingMember();break;case r.CROSSES:case r.DEFAULT:case r.DEFINED:case r.ENUM:case r.MULTIPLICITY:case r.NONUNIQUE:case r.ORDERED:case r.PRIVATE:case r.PROTECTED:case r.PUBLIC:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_EQ:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:case r.SEMI:case r.LT:case r.EQ:case r.LBRACK:case r.LBRACE:case r.IDENTIFIER:case r.STRING:this.state=3131,this.enumerationUsageMember();break;default:throw new V(this)}this.state=3136,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}this.state=3137,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}enumerationUsageMember(){let e=new za(this.context,this.state);this.enterRule(e,530,r.RULE_enumerationUsageMember);try{this.enterOuterAlt(e,1),this.state=3140,this.memberPrefix(),this.state=3141,this.enumeratedValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}enumeratedValue(){let e=new t0(this.context,this.state);this.enterRule(e,532,r.RULE_enumeratedValue);let t;try{this.enterOuterAlt(e,1),this.state=3144,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===58&&(this.state=3143,this.match(r.ENUM)),this.state=3146,this.usage()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}enumerationUsage(){let e=new Qa(this.context,this.state);this.enterRule(e,534,r.RULE_enumerationUsage);try{this.enterOuterAlt(e,1),this.state=3148,this.usagePrefix(),this.state=3149,this.match(r.ENUM),this.state=3150,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}occurrenceDefinitionPrefix(){let e=new we(this.context,this.state);this.enterRule(e,536,r.RULE_occurrenceDefinitionPrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=3153,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=3152,this.basicDefinitionPrefix()),this.state=3157,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===82&&(this.state=3155,this.match(r.INDIVIDUAL),this.state=3156,this.emptyMultiplicityMember()),this.state=3162,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3159,this.definitionExtensionKeyword(),this.state=3164,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}occurrenceDefinition(){let e=new r0(this.context,this.state);this.enterRule(e,538,r.RULE_occurrenceDefinition);try{this.enterOuterAlt(e,1),this.state=3165,this.occurrenceDefinitionPrefix(),this.state=3166,this.match(r.OCCURRENCE),this.state=3167,this.match(r.DEF),this.state=3168,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}individualDefinition(){let e=new i0(this.context,this.state);this.enterRule(e,540,r.RULE_individualDefinition);let t;try{this.enterOuterAlt(e,1);{for(this.state=3171,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=3170,this.basicDefinitionPrefix()),this.state=3173,this.match(r.INDIVIDUAL),this.state=3177,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3174,this.definitionExtensionKeyword(),this.state=3179,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3180,this.match(r.DEF),this.state=3181,this.definition(),this.state=3182,this.emptyMultiplicityMember()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}emptyMultiplicityMember(){let e=new $a(this.context,this.state);this.enterRule(e,542,r.RULE_emptyMultiplicityMember);try{this.enterOuterAlt(e,1),this.state=3184,this.emptyMultiplicity()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}occurrenceUsagePrefix(){let e=new ne(this.context,this.state);this.enterRule(e,544,r.RULE_occurrenceUsagePrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=3186,this.basicUsagePrefix(),this.state=3188,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===82&&(this.state=3187,this.match(r.INDIVIDUAL)),this.state=3191,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===137||t===153)&&(this.state=3190,this.portionKind()),this.state=3196,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3193,this.usageExtensionKeyword(),this.state=3198,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}occurrenceUsage(){let e=new Ya(this.context,this.state);this.enterRule(e,546,r.RULE_occurrenceUsage);try{this.enterOuterAlt(e,1),this.state=3199,this.occurrenceUsagePrefix(),this.state=3200,this.match(r.OCCURRENCE),this.state=3201,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}individualUsage(){let e=new Ja(this.context,this.state);this.enterRule(e,548,r.RULE_individualUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=3203,this.basicUsagePrefix(),this.state=3204,this.match(r.INDIVIDUAL),this.state=3208,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3205,this.usageExtensionKeyword(),this.state=3210,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3211,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}portionUsage(){let e=new Xa(this.context,this.state);this.enterRule(e,550,r.RULE_portionUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=3213,this.basicUsagePrefix(),this.state=3215,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===82&&(this.state=3214,this.match(r.INDIVIDUAL)),this.state=3217,this.portionKind(),this.state=3221,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3218,this.usageExtensionKeyword(),this.state=3223,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3224,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}portionKind(){let e=new xs(this.context,this.state);this.enterRule(e,552,r.RULE_portionKind);let t;try{this.enterOuterAlt(e,1),this.state=3226,t=this.tokenStream.LA(1),t===137||t===153?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}eventOccurrenceUsage(){let e=new Za(this.context,this.state);this.enterRule(e,554,r.RULE_eventOccurrenceUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3228,this.occurrenceUsagePrefix(),this.state=3229,this.match(r.EVENT),this.state=3238,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=3230,this.ownedReferenceSubsetting(),this.state=3232,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=3231,this.featureSpecializationPart());break;case r.OCCURRENCE:this.state=3234,this.match(r.OCCURRENCE),this.state=3236,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3235,this.usageDeclaration());break;default:throw new V(this)}this.state=3240,this.usageCompletion()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}sourceSuccessionMember(){let e=new xi(this.context,this.state);this.enterRule(e,556,r.RULE_sourceSuccessionMember);try{this.enterOuterAlt(e,1),this.state=3242,this.match(r.THEN),this.state=3243,this.sourceSuccession()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sourceSuccession(){let e=new n0(this.context,this.state);this.enterRule(e,558,r.RULE_sourceSuccession);try{this.enterOuterAlt(e,1),this.state=3245,this.sourceEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sourceEndMember(){let e=new eo(this.context,this.state);this.enterRule(e,560,r.RULE_sourceEndMember);try{this.enterOuterAlt(e,1),this.state=3247,this.sourceEnd()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sourceEnd(){let e=new s0(this.context,this.state);this.enterRule(e,562,r.RULE_sourceEnd);try{this.enterOuterAlt(e,1),this.state=3250,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,322,this.context)===1&&(this.state=3249,this.ownedMultiplicity())}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}itemDefinition(){let e=new a0(this.context,this.state);this.enterRule(e,564,r.RULE_itemDefinition);try{this.enterOuterAlt(e,1),this.state=3252,this.occurrenceDefinitionPrefix(),this.state=3253,this.match(r.ITEM),this.state=3254,this.match(r.DEF),this.state=3255,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}itemUsage(){let e=new to(this.context,this.state);this.enterRule(e,566,r.RULE_itemUsage);try{this.enterOuterAlt(e,1),this.state=3257,this.occurrenceUsagePrefix(),this.state=3258,this.match(r.ITEM),this.state=3259,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}partDefinition(){let e=new o0(this.context,this.state);this.enterRule(e,568,r.RULE_partDefinition);try{this.enterOuterAlt(e,1),this.state=3261,this.occurrenceDefinitionPrefix(),this.state=3262,this.match(r.PART),this.state=3263,this.match(r.DEF),this.state=3264,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}partUsage(){let e=new ro(this.context,this.state);this.enterRule(e,570,r.RULE_partUsage);try{this.enterOuterAlt(e,1),this.state=3266,this.occurrenceUsagePrefix(),this.state=3267,this.match(r.PART),this.state=3268,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}portDefinition(){let e=new l0(this.context,this.state);this.enterRule(e,572,r.RULE_portDefinition);try{this.enterOuterAlt(e,1),this.state=3270,this.definitionPrefix(),this.state=3271,this.match(r.PORT),this.state=3272,this.match(r.DEF),this.state=3273,this.definition(),this.state=3274,this.conjugatedPortDefinitionMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}conjugatedPortDefinitionMember(){let e=new u0(this.context,this.state);this.enterRule(e,574,r.RULE_conjugatedPortDefinitionMember);try{this.enterOuterAlt(e,1),this.state=3276,this.conjugatedPortDefinition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}conjugatedPortDefinition(){let e=new c0(this.context,this.state);this.enterRule(e,576,r.RULE_conjugatedPortDefinition);try{this.enterOuterAlt(e,1),this.state=3278,this.portConjugation()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}portUsage(){let e=new io(this.context,this.state);this.enterRule(e,578,r.RULE_portUsage);try{this.enterOuterAlt(e,1),this.state=3280,this.occurrenceUsagePrefix(),this.state=3281,this.match(r.PORT),this.state=3282,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}conjugatedPortTyping(){let e=new h0(this.context,this.state);this.enterRule(e,580,r.RULE_conjugatedPortTyping);try{this.enterOuterAlt(e,1),this.state=3284,this.match(r.TILDE),this.state=3285,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}connectionDefinition(){let e=new d0(this.context,this.state);this.enterRule(e,582,r.RULE_connectionDefinition);try{this.enterOuterAlt(e,1),this.state=3287,this.occurrenceDefinitionPrefix(),this.state=3288,this.match(r.CONNECTION),this.state=3289,this.match(r.DEF),this.state=3290,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}connectionUsage(){let e=new no(this.context,this.state);this.enterRule(e,584,r.RULE_connectionUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3292,this.occurrenceUsagePrefix(),this.state=3306,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.CONNECTION:this.state=3293,this.match(r.CONNECTION),this.state=3295,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3294,this.usageDeclaration()),this.state=3298,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3297,this.valuePart()),this.state=3302,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===36&&(this.state=3300,this.match(r.CONNECT),this.state=3301,this.connectorPart());break;case r.CONNECT:this.state=3304,this.match(r.CONNECT),this.state=3305,this.connectorPart();break;default:throw new V(this)}this.state=3308,this.usageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}connectorPart(){let e=new so(this.context,this.state);this.enterRule(e,586,r.RULE_connectorPart);try{switch(this.state=3312,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.MULTIPLICITY:case r.DOLLAR:case r.LBRACK:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=3310,this.binaryConnectorPart();break;case r.LPAREN:this.enterOuterAlt(e,2),this.state=3311,this.naryConnectorPart();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}binaryConnectorPart(){let e=new p0(this.context,this.state);this.enterRule(e,588,r.RULE_binaryConnectorPart);try{this.enterOuterAlt(e,1),this.state=3314,this.connectorEndMember(),this.state=3315,this.match(r.TO),this.state=3316,this.connectorEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}naryConnectorPart(){let e=new f0(this.context,this.state);this.enterRule(e,590,r.RULE_naryConnectorPart);let t;try{this.enterOuterAlt(e,1);{for(this.state=3318,this.match(r.LPAREN),this.state=3319,this.connectorEndMember(),this.state=3320,this.match(r.COMMA),this.state=3321,this.connectorEndMember(),this.state=3326,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=3322,this.match(r.COMMA),this.state=3323,this.connectorEndMember(),this.state=3328,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3329,this.match(r.RPAREN)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}bindingConnectorAsUsage(){let e=new ms(this.context,this.state);this.enterRule(e,592,r.RULE_bindingConnectorAsUsage);let t;try{this.enterOuterAlt(e,1),this.state=3331,this.usagePrefix(),this.state=3336,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===22&&(this.state=3332,this.match(r.BINDING),this.state=3334,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3333,this.usageDeclaration())),this.state=3338,this.match(r.BIND),this.state=3339,this.connectorEndMember(),this.state=3340,this.match(r.EQ),this.state=3341,this.connectorEndMember(),this.state=3342,this.usageBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}successionAsUsage(){let e=new bs(this.context,this.state);this.enterRule(e,594,r.RULE_successionAsUsage);let t;try{this.enterOuterAlt(e,1),this.state=3344,this.usagePrefix(),this.state=3349,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===150&&(this.state=3345,this.match(r.SUCCESSION),this.state=3347,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3346,this.usageDeclaration())),this.state=3351,this.match(r.FIRST),this.state=3352,this.connectorEndMember(),this.state=3353,this.match(r.THEN),this.state=3354,this.connectorEndMember(),this.state=3355,this.usageBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfaceDefinition(){let e=new x0(this.context,this.state);this.enterRule(e,596,r.RULE_interfaceDefinition);try{this.enterOuterAlt(e,1),this.state=3357,this.occurrenceDefinitionPrefix(),this.state=3358,this.match(r.INTERFACE),this.state=3359,this.match(r.DEF),this.state=3360,this.definitionDeclaration(),this.state=3361,this.interfaceBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceBody(){let e=new ao(this.context,this.state);this.enterRule(e,598,r.RULE_interfaceBody);let t;try{switch(this.state=3372,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3363,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3364,this.match(r.LBRACE),this.state=3368,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490930993)!==0||(t-69&-32)===0&&(1<<t-69&1195473923)!==0||(t-102&-32)===0&&(1<<t-102&2993926401)!==0||(t-135&-32)===0&&(1<<t-135&3892740293)!==0||(t-169&-32)===0&&(1<<t-169&8388611)!==0||t===210||t===223;)this.state=3365,this.interfaceBodyItem(),this.state=3370,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3371,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfaceBodyItem(){let e=new oo(this.context,this.state);this.enterRule(e,600,r.RULE_interfaceBodyItem);let t;try{switch(this.state=3383,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,336,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3374,this.definitionMember();break;case 2:this.enterOuterAlt(e,2),this.state=3375,this.variantUsageMember();break;case 3:this.enterOuterAlt(e,3),this.state=3376,this.interfaceNonOccurrenceUsageMember();break;case 4:this.enterOuterAlt(e,4),this.state=3378,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=3377,this.sourceSuccessionMember()),this.state=3380,this.interfaceOccurrenceUsageMember();break;case 5:this.enterOuterAlt(e,5),this.state=3381,this.aliasMember();break;case 6:this.enterOuterAlt(e,6),this.state=3382,this.importRule();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfaceNonOccurrenceUsageMember(){let e=new m0(this.context,this.state);this.enterRule(e,602,r.RULE_interfaceNonOccurrenceUsageMember);try{this.enterOuterAlt(e,1),this.state=3385,this.memberPrefix(),this.state=3386,this.interfaceNonOccurrenceUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceNonOccurrenceUsageElement(){let e=new b0(this.context,this.state);this.enterRule(e,604,r.RULE_interfaceNonOccurrenceUsageElement);try{switch(this.state=3393,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,337,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3388,this.referenceUsage();break;case 2:this.enterOuterAlt(e,2),this.state=3389,this.attributeUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3390,this.enumerationUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3391,this.bindingConnectorAsUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3392,this.successionAsUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceOccurrenceUsageMember(){let e=new R0(this.context,this.state);this.enterRule(e,606,r.RULE_interfaceOccurrenceUsageMember);try{this.enterOuterAlt(e,1),this.state=3395,this.memberPrefix(),this.state=3396,this.interfaceOccurrenceUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceOccurrenceUsageElement(){let e=new g0(this.context,this.state);this.enterRule(e,608,r.RULE_interfaceOccurrenceUsageElement);try{switch(this.state=3401,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,338,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3398,this.defaultInterfaceEnd();break;case 2:this.enterOuterAlt(e,2),this.state=3399,this.structureUsageElement();break;case 3:this.enterOuterAlt(e,3),this.state=3400,this.behaviorUsageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}defaultInterfaceEnd(){let e=new y0(this.context,this.state);this.enterRule(e,610,r.RULE_defaultInterfaceEnd);try{this.enterOuterAlt(e,1),this.state=3403,this.match(r.END),this.state=3404,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceUsage(){let e=new lo(this.context,this.state);this.enterRule(e,612,r.RULE_interfaceUsage);try{this.enterOuterAlt(e,1),this.state=3406,this.occurrenceUsagePrefix(),this.state=3407,this.match(r.INTERFACE),this.state=3408,this.interfaceUsageDeclaration(),this.state=3409,this.interfaceBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceUsageDeclaration(){let e=new C0(this.context,this.state);this.enterRule(e,614,r.RULE_interfaceUsageDeclaration);let t;try{switch(this.state=3422,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,342,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3412,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3411,this.usageDeclaration()),this.state=3415,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3414,this.valuePart()),this.state=3419,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===36&&(this.state=3417,this.match(r.CONNECT),this.state=3418,this.interfacePart());break;case 2:this.enterOuterAlt(e,2),this.state=3421,this.interfacePart();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfacePart(){let e=new v0(this.context,this.state);this.enterRule(e,616,r.RULE_interfacePart);try{switch(this.state=3426,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.MULTIPLICITY:case r.DOLLAR:case r.LBRACK:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=3424,this.binaryInterfacePart();break;case r.LPAREN:this.enterOuterAlt(e,2),this.state=3425,this.naryInterfacePart();break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}binaryInterfacePart(){let e=new E0(this.context,this.state);this.enterRule(e,618,r.RULE_binaryInterfacePart);try{this.enterOuterAlt(e,1),this.state=3428,this.interfaceEndMember(),this.state=3429,this.match(r.TO),this.state=3430,this.interfaceEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}naryInterfacePart(){let e=new L0(this.context,this.state);this.enterRule(e,620,r.RULE_naryInterfacePart);let t;try{this.enterOuterAlt(e,1);{for(this.state=3432,this.match(r.LPAREN),this.state=3433,this.interfaceEndMember(),this.state=3434,this.match(r.COMMA),this.state=3435,this.interfaceEndMember(),this.state=3440,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=3436,this.match(r.COMMA),this.state=3437,this.interfaceEndMember(),this.state=3442,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3443,this.match(r.RPAREN)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfaceEndMember(){let e=new Zi(this.context,this.state);this.enterRule(e,622,r.RULE_interfaceEndMember);try{this.enterOuterAlt(e,1),this.state=3445,this.interfaceEnd()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceEnd(){let e=new S0(this.context,this.state);this.enterRule(e,624,r.RULE_interfaceEnd);let t;try{this.enterOuterAlt(e,1),this.state=3448,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===103||t===211)&&(this.state=3447,this.ownedCrossMultiplicityMember()),this.state=3453,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,346,this.context)===1&&(this.state=3450,this.name(),this.state=3451,t=this.tokenStream.LA(1),t===128||t===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=3455,this.ownedReferenceSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}allocationDefinition(){let e=new P0(this.context,this.state);this.enterRule(e,626,r.RULE_allocationDefinition);try{this.enterOuterAlt(e,1),this.state=3457,this.occurrenceDefinitionPrefix(),this.state=3458,this.match(r.ALLOCATION),this.state=3459,this.match(r.DEF),this.state=3460,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}allocationUsage(){let e=new uo(this.context,this.state);this.enterRule(e,628,r.RULE_allocationUsage);try{this.enterOuterAlt(e,1),this.state=3462,this.occurrenceUsagePrefix(),this.state=3463,this.allocationUsageDeclaration(),this.state=3464,this.usageBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}allocationUsageDeclaration(){let e=new T0(this.context,this.state);this.enterRule(e,630,r.RULE_allocationUsageDeclaration);let t;try{switch(this.state=3476,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.ALLOCATION:this.enterOuterAlt(e,1),this.state=3466,this.match(r.ALLOCATION),this.state=3468,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3467,this.usageDeclaration()),this.state=3472,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===9&&(this.state=3470,this.match(r.ALLOCATE),this.state=3471,this.connectorPart());break;case r.ALLOCATE:this.enterOuterAlt(e,2),this.state=3474,this.match(r.ALLOCATE),this.state=3475,this.connectorPart();break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}flowDefinition(){let e=new A0(this.context,this.state);this.enterRule(e,632,r.RULE_flowDefinition);try{this.enterOuterAlt(e,1),this.state=3478,this.occurrenceDefinitionPrefix(),this.state=3479,this.match(r.FLOW),this.state=3480,this.match(r.DEF),this.state=3481,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}message(){let e=new co(this.context,this.state);this.enterRule(e,634,r.RULE_message);try{this.enterOuterAlt(e,1),this.state=3483,this.occurrenceUsagePrefix(),this.state=3484,this.match(r.MESSAGE),this.state=3485,this.messageDeclaration(),this.state=3486,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}messageDeclaration(){let e=new M0(this.context,this.state);this.enterRule(e,636,r.RULE_messageDeclaration);let t;try{switch(this.state=3509,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,354,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3489,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3488,this.usageDeclaration()),this.state=3492,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3491,this.valuePart()),this.state=3496,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=3494,this.match(r.OF),this.state=3495,this.flowPayloadFeatureMember()),this.state=3503,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===74&&(this.state=3498,this.match(r.FROM),this.state=3499,this.messageEventMember(),this.state=3500,this.match(r.TO),this.state=3501,this.messageEventMember());break;case 2:this.enterOuterAlt(e,2),this.state=3505,this.messageEventMember(),this.state=3506,this.match(r.TO),this.state=3507,this.messageEventMember();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}messageEventMember(){let e=new ho(this.context,this.state);this.enterRule(e,638,r.RULE_messageEventMember);try{this.enterOuterAlt(e,1),this.state=3511,this.messageEvent()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}messageEvent(){let e=new N0(this.context,this.state);this.enterRule(e,640,r.RULE_messageEvent);try{this.enterOuterAlt(e,1),this.state=3513,this.ownedReferenceSubsetting()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowUsage(){let e=new po(this.context,this.state);this.enterRule(e,642,r.RULE_flowUsage);try{this.enterOuterAlt(e,1),this.state=3515,this.occurrenceUsagePrefix(),this.state=3516,this.match(r.FLOW),this.state=3517,this.flowDeclaration(),this.state=3518,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}successionFlowUsage(){let e=new fo(this.context,this.state);this.enterRule(e,644,r.RULE_successionFlowUsage);try{this.enterOuterAlt(e,1),this.state=3520,this.occurrenceUsagePrefix(),this.state=3521,this.match(r.SUCCESSION),this.state=3522,this.match(r.FLOW),this.state=3523,this.flowDeclaration(),this.state=3524,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowPayloadFeatureMember(){let e=new xo(this.context,this.state);this.enterRule(e,646,r.RULE_flowPayloadFeatureMember);try{this.enterOuterAlt(e,1),this.state=3526,this.flowPayloadFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowPayloadFeature(){let e=new U0(this.context,this.state);this.enterRule(e,648,r.RULE_flowPayloadFeature);try{this.enterOuterAlt(e,1),this.state=3528,this.payloadFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowEndSubsetting(){let e=new X3(this.context,this.state);this.enterRule(e,650,r.RULE_flowEndSubsetting);try{switch(this.state=3532,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,355,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3530,this.qualifiedName();break;case 2:this.enterOuterAlt(e,2),this.state=3531,this.featureChainPrefix();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureChainPrefix(){let e=new w0(this.context,this.state);this.enterRule(e,652,r.RULE_featureChainPrefix);try{let t;this.enterOuterAlt(e,1);{this.state=3537,this.errorHandler.sync(this),t=1;do{if(t===1)this.state=3534,this.ownedFeatureChaining(),this.state=3535,this.match(r.DOT);else throw new V(this);this.state=3539,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,356,this.context)}while(t!==2&&t!==Q.INVALID_ALT_NUMBER);this.state=3541,this.ownedFeatureChaining(),this.state=3542,this.match(r.DOT)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionDefinition(){let e=new D0(this.context,this.state);this.enterRule(e,654,r.RULE_actionDefinition);try{this.enterOuterAlt(e,1),this.state=3544,this.occurrenceDefinitionPrefix(),this.state=3545,this.match(r.ACTION),this.state=3546,this.match(r.DEF),this.state=3547,this.definitionDeclaration(),this.state=3548,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionBody(){let e=new je(this.context,this.state);this.enterRule(e,656,r.RULE_actionBody);let t;try{switch(this.state=3559,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3550,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3551,this.match(r.LBRACE),this.state=3555,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=3552,this.actionBodyItem(),this.state=3557,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3558,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionBodyItem(){let e=new st(this.context,this.state);this.enterRule(e,658,r.RULE_actionBodyItem);let t;try{let i;switch(this.state=3580,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,362,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3561,this.nonBehaviorBodyItem();break;case 2:for(this.enterOuterAlt(e,2),this.state=3562,this.initialNodeMember(),this.state=3566,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,359,this.context);i!==2&&i!==Q.INVALID_ALT_NUMBER;)i===1&&(this.state=3563,this.actionTargetSuccessionMember()),this.state=3568,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,359,this.context);break;case 3:for(this.enterOuterAlt(e,3),this.state=3570,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=3569,this.sourceSuccessionMember()),this.state=3572,this.actionBehaviorMember(),this.state=3576,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,361,this.context);i!==2&&i!==Q.INVALID_ALT_NUMBER;)i===1&&(this.state=3573,this.actionTargetSuccessionMember()),this.state=3578,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,361,this.context);break;case 4:this.enterOuterAlt(e,4),this.state=3579,this.guardedSuccessionMember();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}nonBehaviorBodyItem(){let e=new mo(this.context,this.state);this.enterRule(e,660,r.RULE_nonBehaviorBodyItem);let t;try{switch(this.state=3591,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,364,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3582,this.importRule();break;case 2:this.enterOuterAlt(e,2),this.state=3583,this.aliasMember();break;case 3:this.enterOuterAlt(e,3),this.state=3584,this.definitionMember();break;case 4:this.enterOuterAlt(e,4),this.state=3585,this.variantUsageMember();break;case 5:this.enterOuterAlt(e,5),this.state=3586,this.nonOccurrenceUsageMember();break;case 6:this.enterOuterAlt(e,6),this.state=3588,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=3587,this.sourceSuccessionMember()),this.state=3590,this.structureUsageMember();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionBehaviorMember(){let e=new I0(this.context,this.state);this.enterRule(e,662,r.RULE_actionBehaviorMember);try{switch(this.state=3595,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,365,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3593,this.behaviorUsageMember();break;case 2:this.enterOuterAlt(e,2),this.state=3594,this.actionNodeMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}initialNodeMember(){let e=new O0(this.context,this.state);this.enterRule(e,664,r.RULE_initialNodeMember);try{this.enterOuterAlt(e,1),this.state=3597,this.memberPrefix(),this.state=3598,this.match(r.FIRST),this.state=3599,this.qualifiedName(),this.state=3600,this.relationshipBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionNodeMember(){let e=new k0(this.context,this.state);this.enterRule(e,666,r.RULE_actionNodeMember);try{this.enterOuterAlt(e,1),this.state=3602,this.memberPrefix(),this.state=3603,this.actionNode()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionTargetSuccessionMember(){let e=new bo(this.context,this.state);this.enterRule(e,668,r.RULE_actionTargetSuccessionMember);try{this.enterOuterAlt(e,1),this.state=3605,this.memberPrefix(),this.state=3606,this.actionTargetSuccession()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}guardedSuccessionMember(){let e=new F0(this.context,this.state);this.enterRule(e,670,r.RULE_guardedSuccessionMember);try{this.enterOuterAlt(e,1),this.state=3608,this.memberPrefix(),this.state=3609,this.guardedSuccession()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionUsage(){let e=new H0(this.context,this.state);this.enterRule(e,672,r.RULE_actionUsage);try{this.enterOuterAlt(e,1),this.state=3611,this.occurrenceUsagePrefix(),this.state=3612,this.match(r.ACTION),this.state=3613,this.actionUsageDeclaration(),this.state=3614,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionUsageDeclaration(){let e=new en(this.context,this.state);this.enterRule(e,674,r.RULE_actionUsageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3617,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3616,this.usageDeclaration()),this.state=3620,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3619,this.valuePart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}performActionUsage(){let e=new B0(this.context,this.state);this.enterRule(e,676,r.RULE_performActionUsage);try{this.enterOuterAlt(e,1),this.state=3622,this.occurrenceUsagePrefix(),this.state=3623,this.match(r.PERFORM),this.state=3624,this.performActionUsageDeclaration(),this.state=3625,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}performActionUsageDeclaration(){let e=new Rs(this.context,this.state);this.enterRule(e,678,r.RULE_performActionUsageDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3635,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=3627,this.ownedReferenceSubsetting(),this.state=3629,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=3628,this.featureSpecializationPart());break;case r.ACTION:this.state=3631,this.match(r.ACTION),this.state=3633,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3632,this.usageDeclaration());break;default:throw new V(this)}this.state=3638,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3637,this.valuePart())}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionNode(){let e=new _0(this.context,this.state);this.enterRule(e,680,r.RULE_actionNode);try{switch(this.state=3648,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,372,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3640,this.controlNode();break;case 2:this.enterOuterAlt(e,2),this.state=3641,this.sendNode();break;case 3:this.enterOuterAlt(e,3),this.state=3642,this.acceptNode();break;case 4:this.enterOuterAlt(e,4),this.state=3643,this.assignmentNode();break;case 5:this.enterOuterAlt(e,5),this.state=3644,this.terminateNode();break;case 6:this.enterOuterAlt(e,6),this.state=3645,this.ifNode();break;case 7:this.enterOuterAlt(e,7),this.state=3646,this.whileLoopNode();break;case 8:this.enterOuterAlt(e,8),this.state=3647,this.forLoopNode();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionNodeUsageDeclaration(){let e=new Fr(this.context,this.state);this.enterRule(e,682,r.RULE_actionNodeUsageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3650,this.match(r.ACTION),this.state=3652,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3651,this.usageDeclaration())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionNodePrefix(){let e=new gs(this.context,this.state);this.enterRule(e,684,r.RULE_actionNodePrefix);let t;try{this.enterOuterAlt(e,1),this.state=3654,this.occurrenceUsagePrefix(),this.state=3656,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3655,this.actionNodeUsageDeclaration())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}controlNode(){let e=new V0(this.context,this.state);this.enterRule(e,686,r.RULE_controlNode);try{switch(this.state=3662,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,375,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3658,this.mergeNode();break;case 2:this.enterOuterAlt(e,2),this.state=3659,this.decisionNode();break;case 3:this.enterOuterAlt(e,3),this.state=3660,this.joinNode();break;case 4:this.enterOuterAlt(e,4),this.state=3661,this.forkNode();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}controlNodePrefix(){let e=new tn(this.context,this.state);this.enterRule(e,688,r.RULE_controlNodePrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=3664,this.refPrefix(),this.state=3666,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===82&&(this.state=3665,this.match(r.INDIVIDUAL)),this.state=3669,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===137||t===153)&&(this.state=3668,this.portionKind()),this.state=3674,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3671,this.usageExtensionKeyword(),this.state=3676,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}mergeNode(){let e=new q0(this.context,this.state);this.enterRule(e,690,r.RULE_mergeNode);let t;try{this.enterOuterAlt(e,1),this.state=3677,this.controlNodePrefix(),this.state=3678,this.match(r.MERGE),this.state=3680,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3679,this.usageDeclaration()),this.state=3682,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}decisionNode(){let e=new j0(this.context,this.state);this.enterRule(e,692,r.RULE_decisionNode);let t;try{this.enterOuterAlt(e,1),this.state=3684,this.controlNodePrefix(),this.state=3685,this.match(r.DECIDE),this.state=3687,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3686,this.usageDeclaration()),this.state=3689,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}joinNode(){let e=new G0(this.context,this.state);this.enterRule(e,694,r.RULE_joinNode);let t;try{this.enterOuterAlt(e,1),this.state=3691,this.controlNodePrefix(),this.state=3692,this.match(r.JOIN),this.state=3694,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3693,this.usageDeclaration()),this.state=3696,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}forkNode(){let e=new W0(this.context,this.state);this.enterRule(e,696,r.RULE_forkNode);let t;try{this.enterOuterAlt(e,1),this.state=3698,this.controlNodePrefix(),this.state=3699,this.match(r.FORK),this.state=3701,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3700,this.usageDeclaration()),this.state=3703,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}acceptNode(){let e=new K0(this.context,this.state);this.enterRule(e,698,r.RULE_acceptNode);try{this.enterOuterAlt(e,1),this.state=3705,this.occurrenceUsagePrefix(),this.state=3706,this.acceptNodeDeclaration(),this.state=3707,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}acceptNodeDeclaration(){let e=new ys(this.context,this.state);this.enterRule(e,700,r.RULE_acceptNodeDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3710,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3709,this.actionNodeUsageDeclaration()),this.state=3712,this.match(r.ACCEPT),this.state=3713,this.acceptParameterPart()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}acceptParameterPart(){let e=new Ro(this.context,this.state);this.enterRule(e,702,r.RULE_acceptParameterPart);let t;try{this.enterOuterAlt(e,1),this.state=3715,this.payloadParameterMember(),this.state=3718,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===168&&(this.state=3716,this.match(r.VIA),this.state=3717,this.nodeParameterMember())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}payloadParameterMember(){let e=new z0(this.context,this.state);this.enterRule(e,704,r.RULE_payloadParameterMember);try{this.enterOuterAlt(e,1),this.state=3720,this.payloadParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}payloadParameter(){let e=new Q0(this.context,this.state);this.enterRule(e,706,r.RULE_payloadParameter);let t;try{switch(this.state=3730,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,387,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3722,this.payloadFeature();break;case 2:this.enterOuterAlt(e,2),this.state=3724,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=3723,this.identification()),this.state=3727,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=3726,this.payloadFeatureSpecializationPart()),this.state=3729,this.triggerValuePart();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}triggerValuePart(){let e=new $0(this.context,this.state);this.enterRule(e,708,r.RULE_triggerValuePart);try{this.enterOuterAlt(e,1),this.state=3732,this.triggerFeatureValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}triggerFeatureValue(){let e=new Y0(this.context,this.state);this.enterRule(e,710,r.RULE_triggerFeatureValue);try{this.enterOuterAlt(e,1),this.state=3734,this.triggerExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}triggerExpression(){let e=new J0(this.context,this.state);this.enterRule(e,712,r.RULE_triggerExpression);let t;try{switch(this.state=3740,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.AFTER:case r.AT:this.enterOuterAlt(e,1),this.state=3736,t=this.tokenStream.LA(1),t===6||t===18?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3737,this.argumentMember();break;case r.WHEN:this.enterOuterAlt(e,2),this.state=3738,this.match(r.WHEN),this.state=3739,this.argumentExpressionMember();break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}sendNode(){let e=new X0(this.context,this.state);this.enterRule(e,714,r.RULE_sendNode);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3742,this.occurrenceUsagePrefix(),this.state=3745,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,389,this.context)){case 1:this.state=3743,this.actionNodeUsageDeclaration();break;case 2:this.state=3744,this.actionUsageDeclaration();break}switch(this.state=3747,this.match(r.SEND),this.state=3755,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,391,this.context)){case 1:this.state=3748,this.nodeParameterMember(),this.state=3750,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===154||t===168)&&(this.state=3749,this.senderReceiverPart());break;case 2:this.state=3752,this.emptyParameterMember(),this.state=3753,this.senderReceiverPart();break}this.state=3757,this.actionBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}sendNodeDeclaration(){let e=new go(this.context,this.state);this.enterRule(e,716,r.RULE_sendNodeDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3760,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3759,this.actionNodeUsageDeclaration()),this.state=3762,this.match(r.SEND),this.state=3763,this.nodeParameterMember(),this.state=3765,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===154||t===168)&&(this.state=3764,this.senderReceiverPart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}senderReceiverPart(){let e=new yo(this.context,this.state);this.enterRule(e,718,r.RULE_senderReceiverPart);let t;try{switch(this.state=3777,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.VIA:this.enterOuterAlt(e,1),this.state=3767,this.match(r.VIA),this.state=3768,this.nodeParameterMember(),this.state=3771,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===154&&(this.state=3769,this.match(r.TO),this.state=3770,this.nodeParameterMember());break;case r.TO:this.enterOuterAlt(e,2),this.state=3773,this.emptyParameterMember(),this.state=3774,this.match(r.TO),this.state=3775,this.nodeParameterMember();break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}nodeParameterMember(){let e=new cr(this.context,this.state);this.enterRule(e,720,r.RULE_nodeParameterMember);try{this.enterOuterAlt(e,1),this.state=3779,this.nodeParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nodeParameter(){let e=new Z0(this.context,this.state);this.enterRule(e,722,r.RULE_nodeParameter);try{this.enterOuterAlt(e,1),this.state=3781,this.featureBinding()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureBinding(){let e=new eh(this.context,this.state);this.enterRule(e,724,r.RULE_featureBinding);try{this.enterOuterAlt(e,1),this.state=3783,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyParameterMember(){let e=new yr(this.context,this.state);this.enterRule(e,726,r.RULE_emptyParameterMember);try{this.enterOuterAlt(e,1),this.state=3785,this.emptyUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assignmentNode(){let e=new th(this.context,this.state);this.enterRule(e,728,r.RULE_assignmentNode);try{this.enterOuterAlt(e,1),this.state=3787,this.occurrenceUsagePrefix(),this.state=3788,this.assignmentNodeDeclaration(),this.state=3789,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assignmentNodeDeclaration(){let e=new Cs(this.context,this.state);this.enterRule(e,730,r.RULE_assignmentNodeDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3792,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3791,this.actionNodeUsageDeclaration()),this.state=3794,this.match(r.ASSIGN),this.state=3795,this.assignmentTargetMember(),this.state=3796,this.featureChainMember(),this.state=3797,this.match(r.COLON_EQ),this.state=3798,this.nodeParameterMember()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}assignmentTargetMember(){let e=new rh(this.context,this.state);this.enterRule(e,732,r.RULE_assignmentTargetMember);try{this.enterOuterAlt(e,1),this.state=3800,this.assignmentTargetParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assignmentTargetParameter(){let e=new ih(this.context,this.state);this.enterRule(e,734,r.RULE_assignmentTargetParameter);try{this.enterOuterAlt(e,1),this.state=3805,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,397,this.context)===1&&(this.state=3802,this.assignmentTargetBinding(),this.state=3803,this.match(r.DOT))}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assignmentTargetBinding(){let e=new nh(this.context,this.state);this.enterRule(e,736,r.RULE_assignmentTargetBinding);try{this.enterOuterAlt(e,1),this.state=3807,this.nonFeatureChainPrimaryExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}terminateNode(){let e=new sh(this.context,this.state);this.enterRule(e,738,r.RULE_terminateNode);let t;try{this.enterOuterAlt(e,1),this.state=3809,this.occurrenceUsagePrefix(),this.state=3811,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3810,this.actionNodeUsageDeclaration()),this.state=3813,this.match(r.TERMINATE),this.state=3815,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,399,this.context)===1&&(this.state=3814,this.nodeParameterMember()),this.state=3817,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ifNode(){let e=new Co(this.context,this.state);this.enterRule(e,740,r.RULE_ifNode);try{switch(this.enterOuterAlt(e,1),this.state=3819,this.actionNodePrefix(),this.state=3820,this.match(r.IF),this.state=3821,this.expressionParameterMember(),this.state=3822,this.actionBodyParameterMember(),this.state=3828,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,401,this.context)){case 1:switch(this.state=3823,this.match(r.ELSE),this.state=3826,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,400,this.context)){case 1:this.state=3824,this.actionBodyParameterMember();break;case 2:this.state=3825,this.ifNodeParameterMember();break}break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expressionParameterMember(){let e=new vs(this.context,this.state);this.enterRule(e,742,r.RULE_expressionParameterMember);try{this.enterOuterAlt(e,1),this.state=3830,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionBodyParameterMember(){let e=new rn(this.context,this.state);this.enterRule(e,744,r.RULE_actionBodyParameterMember);try{this.enterOuterAlt(e,1),this.state=3832,this.actionBodyParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionBodyParameter(){let e=new ah(this.context,this.state);this.enterRule(e,746,r.RULE_actionBodyParameter);let t;try{this.enterOuterAlt(e,1);{for(this.state=3838,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3834,this.match(r.ACTION),this.state=3836,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3835,this.usageDeclaration())),this.state=3840,this.match(r.LBRACE),this.state=3844,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=3841,this.actionBodyItem(),this.state=3846,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3847,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ifNodeParameterMember(){let e=new oh(this.context,this.state);this.enterRule(e,748,r.RULE_ifNodeParameterMember);try{this.enterOuterAlt(e,1),this.state=3849,this.ifNode()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}whileLoopNode(){let e=new lh(this.context,this.state);this.enterRule(e,750,r.RULE_whileLoopNode);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3851,this.actionNodePrefix(),this.state=3856,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.WHILE:this.state=3852,this.match(r.WHILE),this.state=3853,this.expressionParameterMember();break;case r.LOOP:this.state=3854,this.match(r.LOOP),this.state=3855,this.emptyParameterMember();break;default:throw new V(this)}this.state=3858,this.actionBodyParameterMember(),this.state=3863,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===161&&(this.state=3859,this.match(r.UNTIL),this.state=3860,this.expressionParameterMember(),this.state=3861,this.match(r.SEMI))}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}forLoopNode(){let e=new uh(this.context,this.state);this.enterRule(e,752,r.RULE_forLoopNode);try{this.enterOuterAlt(e,1),this.state=3865,this.actionNodePrefix(),this.state=3866,this.match(r.FOR),this.state=3867,this.forVariableDeclarationMember(),this.state=3868,this.match(r.IN),this.state=3869,this.nodeParameterMember(),this.state=3870,this.actionBodyParameterMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}forVariableDeclarationMember(){let e=new ch(this.context,this.state);this.enterRule(e,754,r.RULE_forVariableDeclarationMember);let t;try{this.enterOuterAlt(e,1),this.state=3873,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3872,this.usageDeclaration())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}forVariableDeclaration(){let e=new Z3(this.context,this.state);this.enterRule(e,756,r.RULE_forVariableDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3876,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3875,this.usageDeclaration())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionTargetSuccession(){let e=new hh(this.context,this.state);this.enterRule(e,758,r.RULE_actionTargetSuccession);try{this.enterOuterAlt(e,1);{switch(this.state=3881,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.MULTIPLICITY:case r.THEN:case r.LBRACK:this.state=3878,this.targetSuccession();break;case r.IF:this.state=3879,this.guardedTargetSuccession();break;case r.ELSE:this.state=3880,this.defaultTargetSuccession();break;default:throw new V(this)}this.state=3883,this.usageBody()}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}targetSuccession(){let e=new dh(this.context,this.state);this.enterRule(e,760,r.RULE_targetSuccession);try{this.enterOuterAlt(e,1),this.state=3885,this.sourceEndMember(),this.state=3886,this.match(r.THEN),this.state=3887,this.connectorEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}guardedTargetSuccession(){let e=new vo(this.context,this.state);this.enterRule(e,762,r.RULE_guardedTargetSuccession);try{this.enterOuterAlt(e,1),this.state=3889,this.guardExpressionMember(),this.state=3890,this.match(r.THEN),this.state=3891,this.transitionSuccessionMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}defaultTargetSuccession(){let e=new ph(this.context,this.state);this.enterRule(e,764,r.RULE_defaultTargetSuccession);try{this.enterOuterAlt(e,1),this.state=3893,this.match(r.ELSE),this.state=3894,this.transitionSuccessionMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}guardedSuccession(){let e=new fh(this.context,this.state);this.enterRule(e,766,r.RULE_guardedSuccession);let t;try{this.enterOuterAlt(e,1),this.state=3900,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===150&&(this.state=3896,this.match(r.SUCCESSION),this.state=3898,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3897,this.usageDeclaration())),this.state=3902,this.match(r.FIRST),this.state=3903,this.featureChainMember(),this.state=3904,this.guardExpressionMember(),this.state=3905,this.match(r.THEN),this.state=3906,this.transitionSuccessionMember(),this.state=3907,this.usageBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}stateDefinition(){let e=new xh(this.context,this.state);this.enterRule(e,768,r.RULE_stateDefinition);try{this.enterOuterAlt(e,1),this.state=3909,this.occurrenceDefinitionPrefix(),this.state=3910,this.match(r.STATE),this.state=3911,this.match(r.DEF),this.state=3912,this.definitionDeclaration(),this.state=3913,this.stateDefBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateDefBody(){let e=new mh(this.context,this.state);this.enterRule(e,770,r.RULE_stateDefBody);let t;try{switch(this.state=3927,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3915,this.match(r.SEMI);break;case r.PARALLEL:case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3917,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===116&&(this.state=3916,this.match(r.PARALLEL)),this.state=3919,this.match(r.LBRACE),this.state=3923,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&1063503665)!==0||(t-69&-32)===0&&(1<<t-69&1195473923)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3902185669)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=3920,this.stateBodyItem(),this.state=3925,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3926,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}stateBodyItem(){let e=new nn(this.context,this.state);this.enterRule(e,772,r.RULE_stateBodyItem);let t;try{let i;switch(this.state=3950,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,418,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3929,this.nonBehaviorBodyItem();break;case 2:for(this.enterOuterAlt(e,2),this.state=3931,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=3930,this.sourceSuccessionMember()),this.state=3933,this.behaviorUsageMember(),this.state=3937,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,416,this.context);i!==2&&i!==Q.INVALID_ALT_NUMBER;)i===1&&(this.state=3934,this.targetTransitionUsageMember()),this.state=3939,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,416,this.context);break;case 3:this.enterOuterAlt(e,3),this.state=3940,this.transitionUsageMember();break;case 4:for(this.enterOuterAlt(e,4),this.state=3941,this.entryActionMember(),this.state=3945,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,417,this.context);i!==2&&i!==Q.INVALID_ALT_NUMBER;)i===1&&(this.state=3942,this.entryTransitionMember()),this.state=3947,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,417,this.context);break;case 5:this.enterOuterAlt(e,5),this.state=3948,this.doActionMember();break;case 6:this.enterOuterAlt(e,6),this.state=3949,this.exitActionMember();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}entryActionMember(){let e=new bh(this.context,this.state);this.enterRule(e,774,r.RULE_entryActionMember);try{this.enterOuterAlt(e,1),this.state=3952,this.memberPrefix(),this.state=3953,this.match(r.ENTRY),this.state=3954,this.stateActionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}doActionMember(){let e=new Rh(this.context,this.state);this.enterRule(e,776,r.RULE_doActionMember);try{this.enterOuterAlt(e,1),this.state=3956,this.memberPrefix(),this.state=3957,this.match(r.DO),this.state=3958,this.stateActionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}exitActionMember(){let e=new gh(this.context,this.state);this.enterRule(e,778,r.RULE_exitActionMember);try{this.enterOuterAlt(e,1),this.state=3960,this.memberPrefix(),this.state=3961,this.match(r.EXIT),this.state=3962,this.stateActionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}entryTransitionMember(){let e=new Eo(this.context,this.state);this.enterRule(e,780,r.RULE_entryTransitionMember);try{this.enterOuterAlt(e,1);{switch(this.state=3964,this.memberPrefix(),this.state=3968,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.IF:this.state=3965,this.guardedTargetSuccession();break;case r.THEN:this.state=3966,this.match(r.THEN),this.state=3967,this.transitionSuccessionMember();break;default:throw new V(this)}this.state=3970,this.match(r.SEMI)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateActionUsage(){let e=new Es(this.context,this.state);this.enterRule(e,782,r.RULE_stateActionUsage);try{switch(this.state=3979,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,420,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3972,this.emptyActionUsage(),this.state=3973,this.match(r.SEMI);break;case 2:this.enterOuterAlt(e,2),this.state=3975,this.statePerformActionUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3976,this.stateAcceptActionUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3977,this.stateSendActionUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3978,this.stateAssignmentActionUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}statePerformActionUsage(){let e=new yh(this.context,this.state);this.enterRule(e,784,r.RULE_statePerformActionUsage);try{this.enterOuterAlt(e,1),this.state=3981,this.performActionUsageDeclaration(),this.state=3982,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateAcceptActionUsage(){let e=new Ch(this.context,this.state);this.enterRule(e,786,r.RULE_stateAcceptActionUsage);try{this.enterOuterAlt(e,1),this.state=3984,this.acceptNodeDeclaration(),this.state=3985,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateSendActionUsage(){let e=new vh(this.context,this.state);this.enterRule(e,788,r.RULE_stateSendActionUsage);try{this.enterOuterAlt(e,1),this.state=3987,this.sendNodeDeclaration(),this.state=3988,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateAssignmentActionUsage(){let e=new Eh(this.context,this.state);this.enterRule(e,790,r.RULE_stateAssignmentActionUsage);try{this.enterOuterAlt(e,1),this.state=3990,this.assignmentNodeDeclaration(),this.state=3991,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}transitionUsageMember(){let e=new Lh(this.context,this.state);this.enterRule(e,792,r.RULE_transitionUsageMember);try{this.enterOuterAlt(e,1),this.state=3993,this.memberPrefix(),this.state=3994,this.transitionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}targetTransitionUsageMember(){let e=new Lo(this.context,this.state);this.enterRule(e,794,r.RULE_targetTransitionUsageMember);try{this.enterOuterAlt(e,1),this.state=3996,this.memberPrefix(),this.state=3997,this.targetTransitionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateUsage(){let e=new Sh(this.context,this.state);this.enterRule(e,796,r.RULE_stateUsage);try{this.enterOuterAlt(e,1),this.state=3999,this.occurrenceUsagePrefix(),this.state=4e3,this.match(r.STATE),this.state=4001,this.actionUsageDeclaration(),this.state=4002,this.stateUsageBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateUsageBody(){let e=new So(this.context,this.state);this.enterRule(e,798,r.RULE_stateUsageBody);let t;try{switch(this.state=4016,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4004,this.match(r.SEMI);break;case r.PARALLEL:case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4006,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===116&&(this.state=4005,this.match(r.PARALLEL)),this.state=4008,this.match(r.LBRACE),this.state=4012,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&1063503665)!==0||(t-69&-32)===0&&(1<<t-69&1195473923)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3902185669)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4009,this.stateBodyItem(),this.state=4014,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4015,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}exhibitStateUsage(){let e=new Ph(this.context,this.state);this.enterRule(e,800,r.RULE_exhibitStateUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4018,this.occurrenceUsagePrefix(),this.state=4019,this.match(r.EXHIBIT),this.state=4028,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=4020,this.ownedReferenceSubsetting(),this.state=4022,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4021,this.featureSpecializationPart());break;case r.STATE:this.state=4024,this.match(r.STATE),this.state=4026,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4025,this.usageDeclaration());break;default:throw new V(this)}this.state=4031,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4030,this.valuePart()),this.state=4033,this.stateUsageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionUsage(){let e=new Th(this.context,this.state);this.enterRule(e,802,r.RULE_transitionUsage);let t;try{this.enterOuterAlt(e,1),this.state=4035,this.match(r.TRANSITION),this.state=4040,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,429,this.context)===1&&(this.state=4037,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4036,this.usageDeclaration()),this.state=4039,this.match(r.FIRST)),this.state=4042,this.featureChainMember(),this.state=4043,this.emptyParameterMember(),this.state=4047,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===3&&(this.state=4044,this.emptyParameterMember(),this.state=4045,this.triggerActionMember()),this.state=4050,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===77&&(this.state=4049,this.guardExpressionMember()),this.state=4053,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===53&&(this.state=4052,this.effectBehaviorMember()),this.state=4055,this.match(r.THEN),this.state=4056,this.transitionSuccessionMember(),this.state=4057,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}targetTransitionUsage(){let e=new Ah(this.context,this.state);this.enterRule(e,804,r.RULE_targetTransitionUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4059,this.emptyParameterMember(),this.state=4084,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.TRANSITION:this.state=4060,this.match(r.TRANSITION),this.state=4064,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===3&&(this.state=4061,this.emptyParameterMember(),this.state=4062,this.triggerActionMember()),this.state=4067,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===77&&(this.state=4066,this.guardExpressionMember()),this.state=4070,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===53&&(this.state=4069,this.effectBehaviorMember());break;case r.ACCEPT:this.state=4072,this.emptyParameterMember(),this.state=4073,this.triggerActionMember(),this.state=4075,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===77&&(this.state=4074,this.guardExpressionMember()),this.state=4078,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===53&&(this.state=4077,this.effectBehaviorMember());break;case r.IF:this.state=4080,this.guardExpressionMember(),this.state=4082,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===53&&(this.state=4081,this.effectBehaviorMember());break;case r.THEN:break;default:break}this.state=4086,this.match(r.THEN),this.state=4087,this.transitionSuccessionMember(),this.state=4088,this.actionBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}triggerActionMember(){let e=new Po(this.context,this.state);this.enterRule(e,806,r.RULE_triggerActionMember);try{this.enterOuterAlt(e,1),this.state=4090,this.match(r.ACCEPT),this.state=4091,this.triggerAction()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}triggerAction(){let e=new Mh(this.context,this.state);this.enterRule(e,808,r.RULE_triggerAction);try{this.enterOuterAlt(e,1),this.state=4093,this.acceptParameterPart()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}guardExpressionMember(){let e=new sn(this.context,this.state);this.enterRule(e,810,r.RULE_guardExpressionMember);try{this.enterOuterAlt(e,1),this.state=4095,this.match(r.IF),this.state=4096,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}effectBehaviorMember(){let e=new To(this.context,this.state);this.enterRule(e,812,r.RULE_effectBehaviorMember);try{this.enterOuterAlt(e,1),this.state=4098,this.match(r.DO),this.state=4099,this.effectBehaviorUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}effectBehaviorUsage(){let e=new Nh(this.context,this.state);this.enterRule(e,814,r.RULE_effectBehaviorUsage);try{switch(this.state=4106,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,440,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4101,this.emptyActionUsage();break;case 2:this.enterOuterAlt(e,2),this.state=4102,this.transitionPerformActionUsage();break;case 3:this.enterOuterAlt(e,3),this.state=4103,this.transitionAcceptActionUsage();break;case 4:this.enterOuterAlt(e,4),this.state=4104,this.transitionSendActionUsage();break;case 5:this.enterOuterAlt(e,5),this.state=4105,this.transitionAssignmentActionUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}transitionPerformActionUsage(){let e=new Uh(this.context,this.state);this.enterRule(e,816,r.RULE_transitionPerformActionUsage);let t;try{if(this.enterOuterAlt(e,1),this.state=4108,this.performActionUsageDeclaration(),this.state=4117,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===214){for(this.state=4109,this.match(r.LBRACE),this.state=4113,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4110,this.actionBodyItem(),this.state=4115,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4116,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionAcceptActionUsage(){let e=new wh(this.context,this.state);this.enterRule(e,818,r.RULE_transitionAcceptActionUsage);let t;try{if(this.enterOuterAlt(e,1),this.state=4119,this.acceptNodeDeclaration(),this.state=4128,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===214){for(this.state=4120,this.match(r.LBRACE),this.state=4124,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4121,this.actionBodyItem(),this.state=4126,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4127,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionSendActionUsage(){let e=new Dh(this.context,this.state);this.enterRule(e,820,r.RULE_transitionSendActionUsage);let t;try{if(this.enterOuterAlt(e,1),this.state=4130,this.sendNodeDeclaration(),this.state=4139,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===214){for(this.state=4131,this.match(r.LBRACE),this.state=4135,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4132,this.actionBodyItem(),this.state=4137,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4138,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionAssignmentActionUsage(){let e=new Ih(this.context,this.state);this.enterRule(e,822,r.RULE_transitionAssignmentActionUsage);let t;try{if(this.enterOuterAlt(e,1),this.state=4141,this.assignmentNodeDeclaration(),this.state=4150,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===214){for(this.state=4142,this.match(r.LBRACE),this.state=4146,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425939)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4143,this.actionBodyItem(),this.state=4148,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4149,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionSuccessionMember(){let e=new Hr(this.context,this.state);this.enterRule(e,824,r.RULE_transitionSuccessionMember);try{this.enterOuterAlt(e,1),this.state=4152,this.transitionSuccession()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}transitionSuccession(){let e=new Oh(this.context,this.state);this.enterRule(e,826,r.RULE_transitionSuccession);try{this.enterOuterAlt(e,1),this.state=4154,this.emptyEndMember(),this.state=4155,this.connectorEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyEndMember(){let e=new kh(this.context,this.state);this.enterRule(e,828,r.RULE_emptyEndMember);try{this.enterOuterAlt(e,1),this.state=4157,this.emptyFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}calculationDefinition(){let e=new Fh(this.context,this.state);this.enterRule(e,830,r.RULE_calculationDefinition);try{this.enterOuterAlt(e,1),this.state=4159,this.occurrenceDefinitionPrefix(),this.state=4160,this.match(r.CALC),this.state=4161,this.match(r.DEF),this.state=4162,this.definitionDeclaration(),this.state=4163,this.calculationBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}calculationUsage(){let e=new Hh(this.context,this.state);this.enterRule(e,832,r.RULE_calculationUsage);try{this.enterOuterAlt(e,1),this.state=4165,this.occurrenceUsagePrefix(),this.state=4166,this.match(r.CALC),this.state=4167,this.actionUsageDeclaration(),this.state=4168,this.calculationBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}calculationBody(){let e=new Cr(this.context,this.state);this.enterRule(e,834,r.RULE_calculationBody);try{switch(this.state=4175,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4170,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2),this.state=4171,this.match(r.LBRACE),this.state=4172,this.calculationBodyPart(),this.state=4173,this.match(r.RBRACE);break;default:throw new V(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}calculationBodyPart(){let e=new Bh(this.context,this.state);this.enterRule(e,836,r.RULE_calculationBodyPart);let t;try{let i;this.enterOuterAlt(e,1);{for(this.state=4180,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,450,this.context);i!==2&&i!==Q.INVALID_ALT_NUMBER;)i===1&&(this.state=4177,this.calculationBodyItem()),this.state=4182,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,450,this.context);this.state=4184,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||t===64||t===77||(t-105&-32)===0&&(1<<t-105&917517)!==0||t===156||(t-191&-32)===0&&(1<<t-191&4236772773)!==0)&&(this.state=4183,this.resultExpressionMember())}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}calculationBodyItem(){let e=new Ao(this.context,this.state);this.enterRule(e,838,r.RULE_calculationBodyItem);try{switch(this.state=4188,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,452,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4186,this.actionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4187,this.returnParameterMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}returnParameterMember(){let e=new Mo(this.context,this.state);this.enterRule(e,840,r.RULE_returnParameterMember);try{this.enterOuterAlt(e,1),this.state=4191,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,453,this.context)===1&&(this.state=4190,this.memberPrefix()),this.state=4193,this.match(r.RETURN),this.state=4194,this.usageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constraintDefinition(){let e=new _h(this.context,this.state);this.enterRule(e,842,r.RULE_constraintDefinition);try{this.enterOuterAlt(e,1),this.state=4196,this.occurrenceDefinitionPrefix(),this.state=4197,this.match(r.CONSTRAINT),this.state=4198,this.match(r.DEF),this.state=4199,this.definitionDeclaration(),this.state=4200,this.calculationBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constraintUsage(){let e=new Vh(this.context,this.state);this.enterRule(e,844,r.RULE_constraintUsage);try{this.enterOuterAlt(e,1),this.state=4202,this.occurrenceUsagePrefix(),this.state=4203,this.match(r.CONSTRAINT),this.state=4204,this.constraintUsageDeclaration(),this.state=4205,this.calculationBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assertConstraintUsage(){let e=new qh(this.context,this.state);this.enterRule(e,846,r.RULE_assertConstraintUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4207,this.occurrenceUsagePrefix(),this.state=4208,this.match(r.ASSERT),this.state=4210,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===107&&(this.state=4209,this.match(r.NOT)),this.state=4218,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=4212,this.ownedReferenceSubsetting(),this.state=4214,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4213,this.featureSpecializationPart());break;case r.CONSTRAINT:this.state=4216,this.match(r.CONSTRAINT),this.state=4217,this.constraintUsageDeclaration();break;default:throw new V(this)}this.state=4220,this.calculationBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}constraintUsageDeclaration(){let e=new Rt(this.context,this.state);this.enterRule(e,848,r.RULE_constraintUsageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=4223,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4222,this.usageDeclaration()),this.state=4226,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4225,this.valuePart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementDefinition(){let e=new jh(this.context,this.state);this.enterRule(e,850,r.RULE_requirementDefinition);try{this.enterOuterAlt(e,1),this.state=4228,this.occurrenceDefinitionPrefix(),this.state=4229,this.match(r.REQUIREMENT),this.state=4230,this.match(r.DEF),this.state=4231,this.definitionDeclaration(),this.state=4232,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}requirementBody(){let e=new wt(this.context,this.state);this.enterRule(e,852,r.RULE_requirementBody);let t;try{switch(this.state=4243,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4234,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4235,this.match(r.LBRACE),this.state=4239,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181372084)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-69&-32)===0&&(1<<t-69&1195473939)!==0||(t-102&-32)===0&&(1<<t-102&4143167763)!==0||(t-135&-32)===0&&(1<<t-135&3901139173)!==0||(t-167&-32)===0&&(1<<t-167&36045581)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4236,this.requirementBodyItem(),this.state=4241,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4242,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementBodyItem(){let e=new No(this.context,this.state);this.enterRule(e,854,r.RULE_requirementBodyItem);try{switch(this.state=4252,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,461,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4245,this.definitionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4246,this.subjectMember();break;case 3:this.enterOuterAlt(e,3),this.state=4247,this.requirementConstraintMember();break;case 4:this.enterOuterAlt(e,4),this.state=4248,this.framedConcernMember();break;case 5:this.enterOuterAlt(e,5),this.state=4249,this.requirementVerificationMember();break;case 6:this.enterOuterAlt(e,6),this.state=4250,this.actorMember();break;case 7:this.enterOuterAlt(e,7),this.state=4251,this.stakeholderMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}subjectMember(){let e=new Uo(this.context,this.state);this.enterRule(e,856,r.RULE_subjectMember);try{this.enterOuterAlt(e,1),this.state=4254,this.memberPrefix(),this.state=4255,this.subjectUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}subjectUsage(){let e=new Gh(this.context,this.state);this.enterRule(e,858,r.RULE_subjectUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4257,this.match(r.SUBJECT),this.state=4261,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4258,this.usageExtensionKeyword(),this.state=4263,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4264,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementConstraintMember(){let e=new Wh(this.context,this.state);this.enterRule(e,860,r.RULE_requirementConstraintMember);try{this.enterOuterAlt(e,1),this.state=4267,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,463,this.context)===1&&(this.state=4266,this.memberPrefix()),this.state=4269,this.requirementKind(),this.state=4270,this.requirementConstraintUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}requirementKind(){let e=new Kh(this.context,this.state);this.enterRule(e,862,r.RULE_requirementKind);let t;try{this.enterOuterAlt(e,1),this.state=4272,t=this.tokenStream.LA(1),t===17||t===132?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementConstraintUsage(){let e=new zh(this.context,this.state);this.enterRule(e,864,r.RULE_requirementConstraintUsage);let t;try{switch(this.state=4297,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=4274,this.ownedReferenceSubsetting(),this.state=4276,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4275,this.featureSpecializationPart()),this.state=4278,this.requirementBody();break;case r.CONSTRAINT:case r.HASH:this.enterOuterAlt(e,2);{switch(this.state=4292,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,467,this.context)){case 1:{for(this.state=4283,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4280,this.usageExtensionKeyword(),this.state=4285,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4286,this.match(r.CONSTRAINT)}break;case 2:{this.state=4288,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4287,this.usageExtensionKeyword(),this.state=4290,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192)}break}this.state=4294,this.constraintUsageDeclaration(),this.state=4295,this.calculationBody()}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}framedConcernMember(){let e=new Qh(this.context,this.state);this.enterRule(e,866,r.RULE_framedConcernMember);try{this.enterOuterAlt(e,1),this.state=4300,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,469,this.context)===1&&(this.state=4299,this.memberPrefix()),this.state=4302,this.match(r.FRAME),this.state=4303,this.framedConcernUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}framedConcernUsage(){let e=new $h(this.context,this.state);this.enterRule(e,868,r.RULE_framedConcernUsage);let t;try{switch(this.state=4328,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=4305,this.ownedReferenceSubsetting(),this.state=4307,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4306,this.featureSpecializationPart()),this.state=4309,this.calculationBody();break;case r.CONCERN:case r.HASH:this.enterOuterAlt(e,2);{switch(this.state=4323,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,473,this.context)){case 1:{for(this.state=4314,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4311,this.usageExtensionKeyword(),this.state=4316,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4317,this.match(r.CONCERN)}break;case 2:{this.state=4319,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4318,this.usageExtensionKeyword(),this.state=4321,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192)}break}this.state=4325,this.calculationUsageDeclaration(),this.state=4326,this.calculationBody()}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actorMember(){let e=new wo(this.context,this.state);this.enterRule(e,870,r.RULE_actorMember);try{this.enterOuterAlt(e,1),this.state=4330,this.memberPrefix(),this.state=4331,this.actorUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actorUsage(){let e=new Yh(this.context,this.state);this.enterRule(e,872,r.RULE_actorUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4333,this.match(r.ACTOR),this.state=4337,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4334,this.usageExtensionKeyword(),this.state=4339,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4340,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}stakeholderMember(){let e=new Jh(this.context,this.state);this.enterRule(e,874,r.RULE_stakeholderMember);try{this.enterOuterAlt(e,1),this.state=4342,this.memberPrefix(),this.state=4343,this.stakeholderUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stakeholderUsage(){let e=new Xh(this.context,this.state);this.enterRule(e,876,r.RULE_stakeholderUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4345,this.match(r.STAKEHOLDER),this.state=4349,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4346,this.usageExtensionKeyword(),this.state=4351,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4352,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementUsage(){let e=new Zh(this.context,this.state);this.enterRule(e,878,r.RULE_requirementUsage);try{this.enterOuterAlt(e,1),this.state=4354,this.occurrenceUsagePrefix(),this.state=4355,this.match(r.REQUIREMENT),this.state=4356,this.constraintUsageDeclaration(),this.state=4357,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}satisfyRequirementUsage(){let e=new ed(this.context,this.state);this.enterRule(e,880,r.RULE_satisfyRequirementUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4359,this.occurrenceUsagePrefix(),this.state=4364,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===14&&(this.state=4360,this.match(r.ASSERT),this.state=4362,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===107&&(this.state=4361,this.match(r.NOT))),this.state=4366,this.match(r.SATISFY),this.state=4375,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=4367,this.ownedReferenceSubsetting(),this.state=4369,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4368,this.featureSpecializationPart());break;case r.REQUIREMENT:this.state=4371,this.match(r.REQUIREMENT),this.state=4373,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4372,this.usageDeclaration());break;default:throw new V(this)}this.state=4378,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4377,this.valuePart()),this.state=4382,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===24&&(this.state=4380,this.match(r.BY),this.state=4381,this.satisfactionSubjectMember()),this.state=4384,this.requirementBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}satisfactionSubjectMember(){let e=new td(this.context,this.state);this.enterRule(e,882,r.RULE_satisfactionSubjectMember);try{this.enterOuterAlt(e,1),this.state=4386,this.satisfactionParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}satisfactionParameter(){let e=new rd(this.context,this.state);this.enterRule(e,884,r.RULE_satisfactionParameter);try{this.enterOuterAlt(e,1),this.state=4388,this.satisfactionFeatureValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}satisfactionFeatureValue(){let e=new id(this.context,this.state);this.enterRule(e,886,r.RULE_satisfactionFeatureValue);try{this.enterOuterAlt(e,1),this.state=4390,this.satisfactionReferenceExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}satisfactionReferenceExpression(){let e=new nd(this.context,this.state);this.enterRule(e,888,r.RULE_satisfactionReferenceExpression);try{this.enterOuterAlt(e,1),this.state=4392,this.featureChainMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}concernDefinition(){let e=new sd(this.context,this.state);this.enterRule(e,890,r.RULE_concernDefinition);try{this.enterOuterAlt(e,1),this.state=4394,this.occurrenceDefinitionPrefix(),this.state=4395,this.match(r.CONCERN),this.state=4396,this.match(r.DEF),this.state=4397,this.definitionDeclaration(),this.state=4398,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}concernUsage(){let e=new ad(this.context,this.state);this.enterRule(e,892,r.RULE_concernUsage);try{this.enterOuterAlt(e,1),this.state=4400,this.occurrenceUsagePrefix(),this.state=4401,this.match(r.CONCERN),this.state=4402,this.constraintUsageDeclaration(),this.state=4403,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}caseDefinition(){let e=new od(this.context,this.state);this.enterRule(e,894,r.RULE_caseDefinition);try{this.enterOuterAlt(e,1),this.state=4405,this.occurrenceDefinitionPrefix(),this.state=4406,this.match(r.CASE),this.state=4407,this.match(r.DEF),this.state=4408,this.definitionDeclaration(),this.state=4409,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}caseUsage(){let e=new ld(this.context,this.state);this.enterRule(e,896,r.RULE_caseUsage);try{this.enterOuterAlt(e,1),this.state=4411,this.occurrenceUsagePrefix(),this.state=4412,this.match(r.CASE),this.state=4413,this.constraintUsageDeclaration(),this.state=4414,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}caseBody(){let e=new Kt(this.context,this.state);this.enterRule(e,898,r.RULE_caseBody);let t;try{let i;switch(this.state=4428,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4416,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4417,this.match(r.LBRACE),this.state=4421,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,484,this.context);i!==2&&i!==Q.INVALID_ALT_NUMBER;)i===1&&(this.state=4418,this.caseBodyItem()),this.state=4423,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,484,this.context);this.state=4425,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||t===64||t===77||(t-105&-32)===0&&(1<<t-105&917517)!==0||t===156||(t-191&-32)===0&&(1<<t-191&4236772773)!==0)&&(this.state=4424,this.resultExpressionMember()),this.state=4427,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}caseBodyItem(){let e=new Do(this.context,this.state);this.enterRule(e,900,r.RULE_caseBodyItem);try{switch(this.state=4435,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,487,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4430,this.actionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4431,this.returnParameterMember();break;case 3:this.enterOuterAlt(e,3),this.state=4432,this.subjectMember();break;case 4:this.enterOuterAlt(e,4),this.state=4433,this.actorMember();break;case 5:this.enterOuterAlt(e,5),this.state=4434,this.objectiveMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}objectiveMember(){let e=new ud(this.context,this.state);this.enterRule(e,902,r.RULE_objectiveMember);try{this.enterOuterAlt(e,1),this.state=4437,this.memberPrefix(),this.state=4438,this.match(r.OBJECTIVE),this.state=4439,this.objectiveRequirementUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}objectiveRequirementUsage(){let e=new cd(this.context,this.state);this.enterRule(e,904,r.RULE_objectiveRequirementUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4444,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4441,this.usageExtensionKeyword(),this.state=4446,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4447,this.constraintUsageDeclaration(),this.state=4448,this.requirementBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}analysisCaseDefinition(){let e=new hd(this.context,this.state);this.enterRule(e,906,r.RULE_analysisCaseDefinition);try{this.enterOuterAlt(e,1),this.state=4450,this.occurrenceDefinitionPrefix(),this.state=4451,this.match(r.ANALYSIS),this.state=4452,this.match(r.DEF),this.state=4453,this.definitionDeclaration(),this.state=4454,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}analysisCaseUsage(){let e=new dd(this.context,this.state);this.enterRule(e,908,r.RULE_analysisCaseUsage);try{this.enterOuterAlt(e,1),this.state=4456,this.occurrenceUsagePrefix(),this.state=4457,this.match(r.ANALYSIS),this.state=4458,this.constraintUsageDeclaration(),this.state=4459,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}verificationCaseDefinition(){let e=new pd(this.context,this.state);this.enterRule(e,910,r.RULE_verificationCaseDefinition);try{this.enterOuterAlt(e,1),this.state=4461,this.occurrenceDefinitionPrefix(),this.state=4462,this.match(r.VERIFICATION),this.state=4463,this.match(r.DEF),this.state=4464,this.definitionDeclaration(),this.state=4465,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}verificationCaseUsage(){let e=new fd(this.context,this.state);this.enterRule(e,912,r.RULE_verificationCaseUsage);try{this.enterOuterAlt(e,1),this.state=4467,this.occurrenceUsagePrefix(),this.state=4468,this.match(r.VERIFICATION),this.state=4469,this.constraintUsageDeclaration(),this.state=4470,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}requirementVerificationMember(){let e=new xd(this.context,this.state);this.enterRule(e,914,r.RULE_requirementVerificationMember);try{this.enterOuterAlt(e,1),this.state=4472,this.memberPrefix(),this.state=4473,this.match(r.VERIFY),this.state=4474,this.requirementVerificationUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}requirementVerificationUsage(){let e=new md(this.context,this.state);this.enterRule(e,916,r.RULE_requirementVerificationUsage);let t;try{switch(this.state=4502,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1);{for(this.state=4476,this.ownedReferenceSubsetting(),this.state=4480,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===42||t===47||(t-125&-32)===0&&(1<<t-125&8388617)!==0||(t-158&-32)===0&&(1<<t-158&1208352769)!==0||t===204;)this.state=4477,this.featureSpecialization(),this.state=4482,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4483,this.requirementBody()}break;case r.REQUIREMENT:case r.HASH:this.enterOuterAlt(e,2);{switch(this.state=4497,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,492,this.context)){case 1:{for(this.state=4488,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4485,this.usageExtensionKeyword(),this.state=4490,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4491,this.match(r.REQUIREMENT)}break;case 2:{this.state=4493,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4492,this.usageExtensionKeyword(),this.state=4495,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192)}break}this.state=4499,this.constraintUsageDeclaration(),this.state=4500,this.requirementBody()}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}useCaseDefinition(){let e=new bd(this.context,this.state);this.enterRule(e,918,r.RULE_useCaseDefinition);try{this.enterOuterAlt(e,1),this.state=4504,this.occurrenceDefinitionPrefix(),this.state=4505,this.match(r.USE),this.state=4506,this.match(r.CASE),this.state=4507,this.match(r.DEF),this.state=4508,this.definitionDeclaration(),this.state=4509,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}useCaseUsage(){let e=new Rd(this.context,this.state);this.enterRule(e,920,r.RULE_useCaseUsage);try{this.enterOuterAlt(e,1),this.state=4511,this.occurrenceUsagePrefix(),this.state=4512,this.match(r.USE),this.state=4513,this.match(r.CASE),this.state=4514,this.constraintUsageDeclaration(),this.state=4515,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}includeUseCaseUsage(){let e=new gd(this.context,this.state);this.enterRule(e,922,r.RULE_includeUseCaseUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4517,this.occurrenceUsagePrefix(),this.state=4518,this.match(r.INCLUDE),this.state=4528,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=4519,this.ownedReferenceSubsetting(),this.state=4521,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4520,this.featureSpecializationPart());break;case r.USE:this.state=4523,this.match(r.USE),this.state=4524,this.match(r.CASE),this.state=4526,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4525,this.usageDeclaration());break;default:throw new V(this)}this.state=4531,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4530,this.valuePart()),this.state=4533,this.caseBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewDefinition(){let e=new yd(this.context,this.state);this.enterRule(e,924,r.RULE_viewDefinition);try{this.enterOuterAlt(e,1),this.state=4535,this.occurrenceDefinitionPrefix(),this.state=4536,this.match(r.VIEW),this.state=4537,this.match(r.DEF),this.state=4538,this.definitionDeclaration(),this.state=4539,this.viewDefinitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewDefinitionBody(){let e=new Cd(this.context,this.state);this.enterRule(e,926,r.RULE_viewDefinitionBody);let t;try{switch(this.state=4550,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4541,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4542,this.match(r.LBRACE),this.state=4546,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-68&-32)===0&&(1<<t-68&2390947847)!==0||(t-102&-32)===0&&(1<<t-102&3203643667)!==0||(t-135&-32)===0&&(1<<t-135&3901137093)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4543,this.viewDefinitionBodyItem(),this.state=4548,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4549,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewDefinitionBodyItem(){let e=new Io(this.context,this.state);this.enterRule(e,928,r.RULE_viewDefinitionBodyItem);try{switch(this.state=4555,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,500,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4552,this.definitionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4553,this.elementFilterMember();break;case 3:this.enterOuterAlt(e,3),this.state=4554,this.viewRenderingMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewRenderingMember(){let e=new Oo(this.context,this.state);this.enterRule(e,930,r.RULE_viewRenderingMember);try{this.enterOuterAlt(e,1),this.state=4557,this.memberPrefix(),this.state=4558,this.match(r.RENDER),this.state=4559,this.viewRenderingUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewRenderingUsage(){let e=new vd(this.context,this.state);this.enterRule(e,932,r.RULE_viewRenderingUsage);let t;try{switch(this.state=4582,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=4561,this.ownedReferenceSubsetting(),this.state=4563,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4562,this.featureSpecializationPart()),this.state=4565,this.usageBody();break;case r.RENDERING:case r.HASH:this.enterOuterAlt(e,2);{switch(this.state=4579,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,504,this.context)){case 1:{for(this.state=4570,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4567,this.usageExtensionKeyword(),this.state=4572,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4573,this.match(r.RENDERING)}break;case 2:{this.state=4575,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4574,this.usageExtensionKeyword(),this.state=4577,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192)}break}this.state=4581,this.usage()}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewUsage(){let e=new ko(this.context,this.state);this.enterRule(e,934,r.RULE_viewUsage);let t;try{this.enterOuterAlt(e,1),this.state=4584,this.occurrenceUsagePrefix(),this.state=4585,this.match(r.VIEW),this.state=4587,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4586,this.usageDeclaration()),this.state=4590,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4589,this.valuePart()),this.state=4592,this.viewBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewBody(){let e=new Ed(this.context,this.state);this.enterRule(e,936,r.RULE_viewBody);let t;try{switch(this.state=4603,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4594,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4595,this.match(r.LBRACE),this.state=4599,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&1564722993)!==0||(t-68&-32)===0&&(1<<t-68&2390947847)!==0||(t-102&-32)===0&&(1<<t-102&3203643667)!==0||(t-135&-32)===0&&(1<<t-135&3901137093)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4596,this.viewBodyItem(),this.state=4601,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4602,this.match(r.RBRACE)}break;default:throw new V(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewBodyItem(){let e=new Fo(this.context,this.state);this.enterRule(e,938,r.RULE_viewBodyItem);try{switch(this.state=4609,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,510,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4605,this.definitionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4606,this.elementFilterMember();break;case 3:this.enterOuterAlt(e,3),this.state=4607,this.viewRenderingMember();break;case 4:this.enterOuterAlt(e,4),this.state=4608,this.expose();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expose(){let e=new Ld(this.context,this.state);this.enterRule(e,940,r.RULE_expose);try{this.enterOuterAlt(e,1);{switch(this.state=4611,this.match(r.EXPOSE),this.state=4614,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,511,this.context)){case 1:this.state=4612,this.membershipExpose();break;case 2:this.state=4613,this.namespaceExpose();break}this.state=4616,this.relationshipBody()}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}membershipExpose(){let e=new Sd(this.context,this.state);this.enterRule(e,942,r.RULE_membershipExpose);try{this.enterOuterAlt(e,1),this.state=4618,this.membershipImport()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}namespaceExpose(){let e=new Pd(this.context,this.state);this.enterRule(e,944,r.RULE_namespaceExpose);try{this.enterOuterAlt(e,1),this.state=4620,this.namespaceImport()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewpointDefinition(){let e=new Td(this.context,this.state);this.enterRule(e,946,r.RULE_viewpointDefinition);try{this.enterOuterAlt(e,1),this.state=4622,this.occurrenceDefinitionPrefix(),this.state=4623,this.match(r.VIEWPOINT),this.state=4624,this.match(r.DEF),this.state=4625,this.definitionDeclaration(),this.state=4626,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewpointUsage(){let e=new Ad(this.context,this.state);this.enterRule(e,948,r.RULE_viewpointUsage);try{this.enterOuterAlt(e,1),this.state=4628,this.occurrenceUsagePrefix(),this.state=4629,this.match(r.VIEWPOINT),this.state=4630,this.constraintUsageDeclaration(),this.state=4631,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}renderingDefinition(){let e=new Md(this.context,this.state);this.enterRule(e,950,r.RULE_renderingDefinition);try{this.enterOuterAlt(e,1),this.state=4633,this.occurrenceDefinitionPrefix(),this.state=4634,this.match(r.RENDERING),this.state=4635,this.match(r.DEF),this.state=4636,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}renderingUsage(){let e=new Ho(this.context,this.state);this.enterRule(e,952,r.RULE_renderingUsage);try{this.enterOuterAlt(e,1),this.state=4638,this.occurrenceUsagePrefix(),this.state=4639,this.match(r.RENDERING),this.state=4640,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataDefinition(){let e=new Nd(this.context,this.state);this.enterRule(e,954,r.RULE_metadataDefinition);let t;try{this.enterOuterAlt(e,1);{for(this.state=4643,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===2&&(this.state=4642,this.match(r.ABSTRACT)),this.state=4648,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4645,this.definitionExtensionKeyword(),this.state=4650,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4651,this.match(r.METADATA),this.state=4652,this.match(r.DEF),this.state=4653,this.definition()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}prefixMetadataUsage(){let e=new Bo(this.context,this.state);this.enterRule(e,956,r.RULE_prefixMetadataUsage);try{this.enterOuterAlt(e,1),this.state=4655,this.ownedFeatureTyping()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataUsage(){let e=new e4(this.context,this.state);this.enterRule(e,958,r.RULE_metadataUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4660,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4657,this.usageExtensionKeyword(),this.state=4662,this.errorHandler.sync(this),t=this.tokenStream.LA(1);if(this.state=4663,t=this.tokenStream.LA(1),t===102||t===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=4664,this.metadataUsageDeclaration(),this.state=4674,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===1)for(this.state=4665,this.match(r.ABOUT),this.state=4666,this.annotation(),this.state=4671,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=4667,this.match(r.COMMA),this.state=4668,this.annotation(),this.state=4673,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4676,this.metadataBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataUsageDeclaration(){let e=new Ud(this.context,this.state);this.enterRule(e,960,r.RULE_metadataUsageDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4686,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,519,this.context)){case 1:switch(this.state=4679,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=4678,this.identification()),this.state=4684,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=4681,this.match(r.COLON);break;case r.TYPED:this.state=4682,this.match(r.TYPED),this.state=4683,this.match(r.BY);break;default:throw new V(this)}break}this.state=4688,this.ownedFeatureTyping()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataBodyUsageMember(){let e=new _o(this.context,this.state);this.enterRule(e,962,r.RULE_metadataBodyUsageMember);try{this.enterOuterAlt(e,1),this.state=4690,this.metadataBodyUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataBodyUsage(){let e=new wd(this.context,this.state);this.enterRule(e,964,r.RULE_metadataBodyUsage);let t;try{this.enterOuterAlt(e,1),this.state=4693,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===127&&(this.state=4692,this.match(r.REF)),this.state=4696,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===125||t===176)&&(this.state=4695,t=this.tokenStream.LA(1),t===125||t===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=4698,this.ownedRedefinition(),this.state=4700,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4699,this.featureSpecializationPart()),this.state=4703,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4702,this.valuePart()),this.state=4705,this.metadataBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}extendedDefinition(){let e=new Dd(this.context,this.state);this.enterRule(e,966,r.RULE_extendedDefinition);let t;try{this.enterOuterAlt(e,1);{this.state=4708,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=4707,this.basicDefinitionPrefix()),this.state=4711,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4710,this.definitionExtensionKeyword(),this.state=4713,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192);this.state=4715,this.match(r.DEF),this.state=4716,this.definition()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}extendedUsage(){let e=new Id(this.context,this.state);this.enterRule(e,968,r.RULE_extendedUsage);let t;try{this.enterOuterAlt(e,1);{this.state=4718,this.unextendedUsagePrefix(),this.state=4720,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4719,this.usageExtensionKeyword(),this.state=4722,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192);this.state=4724,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}filterPackageImportDeclaration(){let e=new Od(this.context,this.state);this.enterRule(e,970,r.RULE_filterPackageImportDeclaration);try{switch(this.state=4728,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,527,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4726,this.membershipImport();break;case 2:this.enterOuterAlt(e,2),this.state=4727,this.namespaceImportDirect();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}namespaceImportDirect(){let e=new kd(this.context,this.state);this.enterRule(e,972,r.RULE_namespaceImportDirect);let t;try{this.enterOuterAlt(e,1),this.state=4730,this.qualifiedName(),this.state=4731,this.match(r.COLON_COLON),this.state=4732,this.match(r.STAR),this.state=4735,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===183&&(this.state=4733,this.match(r.COLON_COLON),this.state=4734,this.match(r.STAR_STAR))}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}calculationUsageDeclaration(){let e=new Fd(this.context,this.state);this.enterRule(e,974,r.RULE_calculationUsageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=4738,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-103&-32)===0&&(1<<t-103&37749769)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4737,this.usageDeclaration()),this.state=4741,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4740,this.valuePart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}emptyActionUsage(){let e=new Vo(this.context,this.state);this.enterRule(e,976,r.RULE_emptyActionUsage);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyFeature(){let e=new qo(this.context,this.state);this.enterRule(e,978,r.RULE_emptyFeature);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyMultiplicity(){let e=new Hd(this.context,this.state);this.enterRule(e,980,r.RULE_emptyMultiplicity);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyUsage(){let e=new Bd(this.context,this.state);this.enterRule(e,982,r.RULE_emptyUsage);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}filterPackageImport(){let e=new _d(this.context,this.state);this.enterRule(e,984,r.RULE_filterPackageImport);try{this.enterOuterAlt(e,1),this.state=4751,this.match(r.IDENTIFIER)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nonFeatureChainPrimaryExpression(){let e=new Vd(this.context,this.state);this.enterRule(e,986,r.RULE_nonFeatureChainPrimaryExpression);try{this.enterOuterAlt(e,1),this.state=4753,this.match(r.IDENTIFIER)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}portConjugation(){let e=new qd(this.context,this.state);this.enterRule(e,988,r.RULE_portConjugation);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sempred(e,t,i){return t===0?this.ownedExpression_sempred(e,i):!0}ownedExpression_sempred(e,t){switch(t){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,225,4758,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,2,452,7,452,2,453,7,453,2,454,7,454,2,455,7,455,2,456,7,456,2,457,7,457,2,458,7,458,2,459,7,459,2,460,7,460,2,461,7,461,2,462,7,462,2,463,7,463,2,464,7,464,2,465,7,465,2,466,7,466,2,467,7,467,2,468,7,468,2,469,7,469,2,470,7,470,2,471,7,471,2,472,7,472,2,473,7,473,2,474,7,474,2,475,7,475,2,476,7,476,2,477,7,477,2,478,7,478,2,479,7,479,2,480,7,480,2,481,7,481,2,482,7,482,2,483,7,483,2,484,7,484,2,485,7,485,2,486,7,486,2,487,7,487,2,488,7,488,2,489,7,489,2,490,7,490,2,491,7,491,2,492,7,492,2,493,7,493,2,494,7,494,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,1006,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,1062,8,0,1,0,1,0,1,0,1,0,1,0,3,0,1069,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,1085,8,0,5,0,1087,8,0,10,0,12,0,1090,9,0,1,1,1,1,1,2,1,2,1,2,5,2,1097,8,2,10,2,12,2,1100,9,2,1,3,1,3,1,3,1,3,1,3,1,3,3,3,1108,8,3,1,3,1,3,1,3,1,3,3,3,1114,8,3,1,3,3,3,1117,8,3,1,4,1,4,1,4,3,4,1122,8,4,1,5,1,5,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10,1,10,3,10,1144,8,10,1,10,1,10,1,11,1,11,1,11,5,11,1151,8,11,10,11,12,11,1154,9,11,1,12,1,12,1,12,5,12,1159,8,12,10,12,12,12,1162,9,12,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,3,14,1173,8,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,21,1,21,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,3,23,1201,8,23,1,24,1,24,1,24,5,24,1206,8,24,10,24,12,24,1209,9,24,1,24,1,24,1,24,5,24,1214,8,24,10,24,12,24,1217,9,24,1,24,3,24,1220,8,24,1,25,1,25,3,25,1224,8,25,1,26,1,26,3,26,1228,8,26,1,27,5,27,1231,8,27,10,27,12,27,1234,9,27,1,27,1,27,3,27,1238,8,27,1,27,3,27,1241,8,27,1,27,1,27,1,27,5,27,1246,8,27,10,27,12,27,1249,9,27,1,27,1,27,1,27,1,27,5,27,1255,8,27,10,27,12,27,1258,9,27,1,27,1,27,1,27,5,27,1263,8,27,10,27,12,27,1266,9,27,1,27,1,27,1,27,1,27,3,27,1272,8,27,1,28,1,28,1,29,1,29,1,30,1,30,1,30,1,30,3,30,1282,8,30,1,31,1,31,3,31,1286,8,31,1,31,1,31,1,31,1,31,5,31,1292,8,31,10,31,12,31,1295,9,31,3,31,1297,8,31,3,31,1299,8,31,1,31,1,31,3,31,1303,8,31,1,31,1,31,1,32,1,32,3,32,1309,8,32,1,32,1,32,3,32,1313,8,32,1,32,1,32,1,33,1,33,3,33,1319,8,33,3,33,1321,8,33,1,33,1,33,1,33,1,33,1,34,5,34,1328,8,34,10,34,12,34,1331,9,34,1,34,1,34,1,35,5,35,1336,8,35,10,35,12,35,1339,9,35,1,35,1,35,1,35,1,36,1,36,3,36,1346,8,36,1,37,1,37,1,37,5,37,1351,8,37,10,37,12,37,1354,9,37,1,37,3,37,1357,8,37,1,38,1,38,1,38,3,38,1362,8,38,1,39,3,39,1365,8,39,1,40,1,40,1,41,1,41,3,41,1371,8,41,1,42,1,42,1,42,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,3,44,1385,8,44,1,44,3,44,1388,8,44,1,44,1,44,1,44,1,44,1,45,1,45,3,45,1396,8,45,1,45,1,45,1,45,5,45,1401,8,45,10,45,12,45,1404,9,45,1,45,1,45,1,46,3,46,1409,8,46,1,46,1,46,3,46,1413,8,46,1,46,1,46,1,46,1,47,1,47,3,47,1420,8,47,1,48,1,48,1,48,3,48,1425,8,48,1,49,1,49,1,49,1,49,1,49,3,49,1432,8,49,1,49,3,49,1435,8,49,1,50,1,50,4,50,1439,8,50,11,50,12,50,1440,1,50,1,50,4,50,1445,8,50,11,50,12,50,1446,3,50,1449,8,50,1,51,1,51,1,51,1,51,1,52,1,52,3,52,1457,8,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,3,53,1485,8,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,3,54,1497,8,54,1,55,1,55,1,55,1,55,1,55,1,56,3,56,1505,8,56,1,56,5,56,1508,8,56,10,56,12,56,1511,9,56,1,57,3,57,1514,8,57,1,57,3,57,1517,8,57,1,57,3,57,1520,8,57,1,57,1,57,4,57,1524,8,57,11,57,12,57,1525,1,57,5,57,1529,8,57,10,57,12,57,1532,9,57,1,58,1,58,1,58,1,58,5,58,1538,8,58,10,58,12,58,1541,9,58,1,59,1,59,1,59,1,60,1,60,1,60,1,60,3,60,1550,8,60,1,61,1,61,1,61,1,61,1,61,5,61,1557,8,61,10,61,12,61,1560,9,61,1,62,1,62,1,62,1,62,5,62,1566,8,62,10,62,12,62,1569,9,62,1,63,1,63,1,63,1,63,5,63,1575,8,63,10,63,12,63,1578,9,63,1,64,1,64,1,64,1,64,5,64,1584,8,64,10,64,12,64,1587,9,64,1,65,1,65,1,65,5,65,1592,8,65,10,65,12,65,1595,9,65,1,65,3,65,1598,8,65,1,66,1,66,1,66,1,66,3,66,1604,8,66,1,67,1,67,3,67,1608,8,67,3,67,1610,8,67,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,69,1,69,1,69,5,69,1623,8,69,10,69,12,69,1626,9,69,1,70,1,70,1,70,5,70,1631,8,70,10,70,12,70,1634,9,70,1,71,1,71,3,71,1638,8,71,3,71,1640,8,71,1,71,1,71,1,71,1,71,5,71,1646,8,71,10,71,12,71,1649,9,71,1,71,1,71,1,71,1,71,5,71,1655,8,71,10,71,12,71,1658,9,71,1,71,1,71,1,72,1,72,1,72,5,72,1665,8,72,10,72,12,72,1668,9,72,1,73,1,73,3,73,1672,8,73,3,73,1674,8,73,1,73,1,73,1,73,1,73,5,73,1680,8,73,10,73,12,73,1683,9,73,1,73,1,73,1,73,1,73,5,73,1689,8,73,10,73,12,73,1692,9,73,1,73,1,73,1,74,1,74,1,74,5,74,1699,8,74,10,74,12,74,1702,9,74,1,75,1,75,1,75,5,75,1707,8,75,10,75,12,75,1710,9,75,1,76,1,76,1,76,5,76,1715,8,76,10,76,12,76,1718,9,76,1,77,1,77,1,77,5,77,1723,8,77,10,77,12,77,1726,9,77,1,78,1,78,3,78,1730,8,78,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,82,3,82,1745,8,82,1,82,3,82,1748,8,82,1,82,3,82,1751,8,82,1,82,1,82,3,82,1755,8,82,1,82,5,82,1758,8,82,10,82,12,82,1761,9,82,1,83,1,83,1,83,1,83,5,83,1767,8,83,10,83,12,83,1770,9,83,1,84,1,84,3,84,1774,8,84,3,84,1776,8,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,86,1,86,1,86,3,86,1789,8,86,1,86,3,86,1792,8,86,1,86,1,86,3,86,1796,8,86,1,86,1,86,3,86,1800,8,86,1,86,3,86,1803,8,86,1,86,1,86,1,87,3,87,1808,8,87,1,87,1,87,1,88,3,88,1813,8,88,1,88,3,88,1816,8,88,1,88,3,88,1819,8,88,1,88,3,88,1822,8,88,1,88,3,88,1825,8,88,1,89,1,89,3,89,1829,8,89,1,89,3,89,1832,8,89,1,89,5,89,1835,8,89,10,89,12,89,1838,9,89,1,90,1,90,1,91,1,91,1,91,1,91,1,91,3,91,1847,8,91,3,91,1849,8,91,1,92,1,92,1,93,3,93,1854,8,93,1,93,1,93,1,93,3,93,1859,8,93,1,93,1,93,3,93,1863,8,93,1,93,5,93,1866,8,93,10,93,12,93,1869,9,93,1,94,1,94,1,94,1,94,3,94,1875,8,94,1,94,3,94,1878,8,94,1,95,1,95,1,95,1,95,3,95,1884,8,95,1,96,1,96,1,96,1,96,5,96,1890,8,96,10,96,12,96,1893,9,96,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,5,98,1904,8,98,10,98,12,98,1907,9,98,1,99,4,99,1910,8,99,11,99,12,99,1911,1,99,3,99,1915,8,99,1,99,5,99,1918,8,99,10,99,12,99,1921,9,99,1,99,1,99,5,99,1925,8,99,10,99,12,99,1928,9,99,3,99,1930,8,99,1,100,1,100,1,100,3,100,1935,8,100,1,100,1,100,3,100,1939,8,100,3,100,1941,8,100,1,100,1,100,3,100,1945,8,100,1,100,1,100,3,100,1949,8,100,3,100,1951,8,100,3,100,1953,8,100,1,101,1,101,1,101,1,101,1,101,3,101,1960,8,101,1,102,1,102,1,102,5,102,1965,8,102,10,102,12,102,1968,9,102,1,102,1,102,1,102,5,102,1973,8,102,10,102,12,102,1976,9,102,3,102,1978,8,102,1,103,1,103,1,103,3,103,1983,8,103,1,103,1,103,1,103,1,103,3,103,1989,8,103,1,103,3,103,1992,8,103,1,104,1,104,1,104,5,104,1997,8,104,10,104,12,104,2e3,9,104,1,105,1,105,1,105,1,106,1,106,1,106,1,107,1,107,1,107,1,108,1,108,1,108,5,108,2014,8,108,10,108,12,108,2017,9,108,1,109,1,109,1,109,1,110,1,110,3,110,2024,8,110,3,110,2026,8,110,1,110,1,110,1,110,1,110,1,110,3,110,2033,8,110,1,110,1,110,1,110,1,110,1,110,3,110,2040,8,110,1,111,1,111,1,111,5,111,2045,8,111,10,111,12,111,2048,9,111,1,112,1,112,3,112,2052,8,112,3,112,2054,8,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,5,113,2065,8,113,10,113,12,113,2068,9,113,1,114,1,114,1,114,5,114,2073,8,114,10,114,12,114,2076,9,114,1,115,1,115,1,115,5,115,2081,8,115,10,115,12,115,2084,9,115,1,116,1,116,3,116,2088,8,116,3,116,2090,8,116,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,5,117,2101,8,117,10,117,12,117,2104,9,117,1,118,1,118,1,118,1,118,4,118,2110,8,118,11,118,12,118,2111,3,118,2114,8,118,1,119,1,119,1,119,4,119,2119,8,119,11,119,12,119,2120,1,120,1,120,1,121,1,121,3,121,2127,8,121,3,121,2129,8,121,1,121,1,121,1,121,1,121,5,121,2135,8,121,10,121,12,121,2138,9,121,1,121,1,121,1,121,1,121,5,121,2144,8,121,10,121,12,121,2147,9,121,1,121,1,121,1,122,1,122,1,122,5,122,2154,8,122,10,122,12,122,2157,9,122,1,123,1,123,3,123,2161,8,123,1,123,3,123,2164,8,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,3,130,2202,8,130,1,130,3,130,2205,8,130,1,130,3,130,2208,8,130,1,130,1,130,1,131,1,131,3,131,2214,8,131,1,132,3,132,2217,8,132,1,132,1,132,1,132,3,132,2222,8,132,3,132,2224,8,132,1,132,1,132,1,132,1,132,1,133,3,133,2231,8,133,1,133,1,133,1,133,1,133,1,133,1,133,5,133,2239,8,133,10,133,12,133,2242,9,133,1,133,1,133,1,134,1,134,1,135,3,135,2249,8,135,1,135,1,135,1,135,3,135,2254,8,135,1,135,1,135,1,136,1,136,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,3,139,2273,8,139,1,139,3,139,2276,8,139,1,139,3,139,2279,8,139,1,139,1,139,1,139,1,139,3,139,2285,8,139,3,139,2287,8,139,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,3,141,2300,8,141,1,141,3,141,2303,8,141,1,141,3,141,2306,8,141,1,141,1,141,1,141,1,141,3,141,2312,8,141,3,141,2314,8,141,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,3,143,2325,8,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,3,145,2339,8,145,1,146,1,146,5,146,2343,8,146,10,146,12,146,2346,9,146,1,146,3,146,2349,8,146,1,147,1,147,1,147,1,147,1,148,3,148,2356,8,148,1,148,1,148,1,149,1,149,1,149,1,149,3,149,2364,8,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,3,151,2377,8,151,1,151,1,151,1,152,1,152,1,152,3,152,2384,8,152,1,152,1,152,3,152,2388,8,152,1,152,1,152,1,153,1,153,1,154,1,154,1,155,1,155,1,156,1,156,1,157,1,157,1,158,1,158,1,159,1,159,1,159,1,159,1,160,1,160,1,161,1,161,1,162,1,162,1,163,1,163,1,164,1,164,1,165,1,165,1,166,1,166,1,167,1,167,1,168,1,168,1,169,1,169,1,170,1,170,1,170,5,170,2431,8,170,10,170,12,170,2434,9,170,1,171,1,171,3,171,2438,8,171,1,172,1,172,1,173,1,173,1,174,1,174,1,175,1,175,1,176,1,176,1,177,1,177,1,177,5,177,2453,8,177,10,177,12,177,2456,9,177,1,178,1,178,1,179,1,179,1,180,1,180,1,181,1,181,1,182,1,182,1,182,1,182,1,183,1,183,1,184,3,184,2473,8,184,1,184,1,184,1,184,3,184,2478,8,184,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,3,188,2498,8,188,1,188,1,188,3,188,2502,8,188,1,188,1,188,1,188,1,188,1,188,3,188,2509,8,188,1,188,3,188,2512,8,188,1,188,1,188,1,188,1,188,1,188,3,188,2519,8,188,1,188,3,188,2522,8,188,1,188,1,188,3,188,2526,8,188,1,188,1,188,1,188,1,188,1,188,3,188,2533,8,188,3,188,2535,8,188,1,189,1,189,1,190,3,190,2540,8,190,1,190,1,190,3,190,2544,8,190,1,190,1,190,3,190,2548,8,190,1,190,1,190,3,190,2552,8,190,1,190,1,190,3,190,2556,8,190,3,190,2558,8,190,1,191,4,191,2561,8,191,11,191,12,191,2562,1,191,3,191,2566,8,191,1,191,5,191,2569,8,191,10,191,12,191,2572,9,191,1,191,1,191,4,191,2576,8,191,11,191,12,191,2577,3,191,2580,8,191,1,192,1,192,1,193,1,193,1,193,5,193,2587,8,193,10,193,12,193,2590,9,193,1,194,1,194,1,195,1,195,1,196,1,196,1,197,1,197,1,198,1,198,1,198,1,198,3,198,2604,8,198,3,198,2606,8,198,1,198,1,198,1,199,1,199,3,199,2612,8,199,1,200,1,200,3,200,2616,8,200,1,200,1,200,1,200,1,201,1,201,3,201,2623,8,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,3,201,2632,8,201,1,201,1,201,1,201,3,201,2637,8,201,1,202,1,202,3,202,2641,8,202,1,203,1,203,1,204,1,204,1,204,1,204,3,204,2649,8,204,1,204,1,204,1,204,1,205,1,205,3,205,2656,8,205,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,3,207,2667,8,207,1,208,1,208,1,208,1,208,3,208,2673,8,208,1,209,1,209,1,210,5,210,2678,8,210,10,210,12,210,2681,9,210,1,210,1,210,1,210,1,210,1,210,1,210,5,210,2689,8,210,10,210,12,210,2692,9,210,3,210,2694,8,210,1,210,1,210,1,211,3,211,2699,8,211,1,211,1,211,1,211,3,211,2704,8,211,3,211,2706,8,211,1,211,1,211,1,212,1,212,1,212,5,212,2713,8,212,10,212,12,212,2716,9,212,1,212,1,212,1,212,1,212,1,212,1,212,5,212,2724,8,212,10,212,12,212,2727,9,212,1,212,3,212,2730,8,212,1,213,1,213,1,213,1,213,3,213,2736,8,213,1,214,1,214,1,215,3,215,2741,8,215,1,215,3,215,2744,8,215,1,215,1,215,3,215,2748,8,215,1,215,3,215,2751,8,215,1,215,1,215,1,216,5,216,2756,8,216,10,216,12,216,2759,9,216,1,216,1,216,1,216,1,217,3,217,2765,8,217,1,217,1,217,5,217,2769,8,217,10,217,12,217,2772,9,217,1,217,1,217,1,217,1,218,1,218,3,218,2779,8,218,1,219,1,219,1,219,5,219,2784,8,219,10,219,12,219,2787,9,219,1,219,3,219,2790,8,219,1,220,1,220,1,220,1,220,1,220,1,221,3,221,2798,8,221,1,221,3,221,2801,8,221,1,221,1,221,1,221,5,221,2806,8,221,10,221,12,221,2809,9,221,1,221,1,221,1,221,1,221,5,221,2815,8,221,10,221,12,221,2818,9,221,1,222,1,222,1,223,1,223,1,223,1,223,3,223,2826,8,223,1,224,1,224,1,224,3,224,2831,8,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,3,225,2863,8,225,1,226,1,226,3,226,2867,8,226,1,227,1,227,1,228,1,228,1,229,3,229,2874,8,229,1,229,5,229,2877,8,229,10,229,12,229,2880,9,229,1,230,1,230,1,230,1,231,3,231,2886,8,231,1,231,3,231,2889,8,231,1,232,1,232,1,232,5,232,2894,8,232,10,232,12,232,2897,9,232,1,232,3,232,2900,8,232,1,233,1,233,1,233,1,233,1,233,3,233,2907,8,233,1,233,1,233,1,233,3,233,2912,8,233,1,234,1,234,1,234,1,234,1,234,3,234,2919,8,234,1,234,3,234,2922,8,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,3,234,2932,8,234,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,237,1,237,1,237,1,238,1,238,1,238,1,239,1,239,1,239,1,240,1,240,1,240,1,241,3,241,2954,8,241,1,241,3,241,2957,8,241,1,241,3,241,2960,8,241,1,241,3,241,2963,8,241,1,242,1,242,3,242,2967,8,242,1,243,1,243,3,243,2971,8,243,1,244,1,244,1,245,1,245,3,245,2977,8,245,1,246,1,246,5,246,2981,8,246,10,246,12,246,2984,9,246,1,247,3,247,2987,8,247,1,247,1,247,1,248,1,248,3,248,2993,8,248,1,248,3,248,2996,8,248,1,249,3,249,2999,8,249,1,249,1,249,1,250,1,250,1,251,1,251,1,251,1,252,1,252,3,252,3010,8,252,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1,254,1,254,5,254,3021,8,254,10,254,12,254,3024,9,254,1,254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,3,255,3036,8,255,1,256,1,256,3,256,3040,8,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,3,257,3057,8,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,3,258,3075,8,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,3,259,3098,8,259,1,260,1,260,1,260,1,260,5,260,3104,8,260,10,260,12,260,3107,9,260,1,261,1,261,1,261,1,261,1,261,1,262,1,262,1,262,1,262,1,263,5,263,3119,8,263,10,263,12,263,3122,9,263,1,263,1,263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,5,264,3133,8,264,10,264,12,264,3136,9,264,1,264,3,264,3139,8,264,1,265,1,265,1,265,1,266,3,266,3145,8,266,1,266,1,266,1,267,1,267,1,267,1,267,1,268,3,268,3154,8,268,1,268,1,268,3,268,3158,8,268,1,268,5,268,3161,8,268,10,268,12,268,3164,9,268,1,269,1,269,1,269,1,269,1,269,1,270,3,270,3172,8,270,1,270,1,270,5,270,3176,8,270,10,270,12,270,3179,9,270,1,270,1,270,1,270,1,270,1,271,1,271,1,272,1,272,3,272,3189,8,272,1,272,3,272,3192,8,272,1,272,5,272,3195,8,272,10,272,12,272,3198,9,272,1,273,1,273,1,273,1,273,1,274,1,274,1,274,5,274,3207,8,274,10,274,12,274,3210,9,274,1,274,1,274,1,275,1,275,3,275,3216,8,275,1,275,1,275,5,275,3220,8,275,10,275,12,275,3223,9,275,1,275,1,275,1,276,1,276,1,277,1,277,1,277,1,277,3,277,3233,8,277,1,277,1,277,3,277,3237,8,277,3,277,3239,8,277,1,277,1,277,1,278,1,278,1,278,1,279,1,279,1,280,1,280,1,281,3,281,3251,8,281,1,282,1,282,1,282,1,282,1,282,1,283,1,283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,285,1,285,1,286,1,286,1,286,1,286,1,286,1,286,1,287,1,287,1,288,1,288,1,289,1,289,1,289,1,289,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,291,1,292,1,292,1,292,3,292,3296,8,292,1,292,3,292,3299,8,292,1,292,1,292,3,292,3303,8,292,1,292,1,292,3,292,3307,8,292,1,292,1,292,1,293,1,293,3,293,3313,8,293,1,294,1,294,1,294,1,294,1,295,1,295,1,295,1,295,1,295,1,295,5,295,3325,8,295,10,295,12,295,3328,9,295,1,295,1,295,1,296,1,296,1,296,3,296,3335,8,296,3,296,3337,8,296,1,296,1,296,1,296,1,296,1,296,1,296,1,297,1,297,1,297,3,297,3348,8,297,3,297,3350,8,297,1,297,1,297,1,297,1,297,1,297,1,297,1,298,1,298,1,298,1,298,1,298,1,298,1,299,1,299,1,299,5,299,3367,8,299,10,299,12,299,3370,9,299,1,299,3,299,3373,8,299,1,300,1,300,1,300,1,300,3,300,3379,8,300,1,300,1,300,1,300,3,300,3384,8,300,1,301,1,301,1,301,1,302,1,302,1,302,1,302,1,302,3,302,3394,8,302,1,303,1,303,1,303,1,304,1,304,1,304,3,304,3402,8,304,1,305,1,305,1,305,1,306,1,306,1,306,1,306,1,306,1,307,3,307,3413,8,307,1,307,3,307,3416,8,307,1,307,1,307,3,307,3420,8,307,1,307,3,307,3423,8,307,1,308,1,308,3,308,3427,8,308,1,309,1,309,1,309,1,309,1,310,1,310,1,310,1,310,1,310,1,310,5,310,3439,8,310,10,310,12,310,3442,9,310,1,310,1,310,1,311,1,311,1,312,3,312,3449,8,312,1,312,1,312,1,312,3,312,3454,8,312,1,312,1,312,1,313,1,313,1,313,1,313,1,313,1,314,1,314,1,314,1,314,1,315,1,315,3,315,3469,8,315,1,315,1,315,3,315,3473,8,315,1,315,1,315,3,315,3477,8,315,1,316,1,316,1,316,1,316,1,316,1,317,1,317,1,317,1,317,1,317,1,318,3,318,3490,8,318,1,318,3,318,3493,8,318,1,318,1,318,3,318,3497,8,318,1,318,1,318,1,318,1,318,1,318,3,318,3504,8,318,1,318,1,318,1,318,1,318,3,318,3510,8,318,1,319,1,319,1,320,1,320,1,321,1,321,1,321,1,321,1,321,1,322,1,322,1,322,1,322,1,322,1,322,1,323,1,323,1,324,1,324,1,325,1,325,3,325,3533,8,325,1,326,1,326,1,326,4,326,3538,8,326,11,326,12,326,3539,1,326,1,326,1,326,1,327,1,327,1,327,1,327,1,327,1,327,1,328,1,328,1,328,5,328,3554,8,328,10,328,12,328,3557,9,328,1,328,3,328,3560,8,328,1,329,1,329,1,329,5,329,3565,8,329,10,329,12,329,3568,9,329,1,329,3,329,3571,8,329,1,329,1,329,5,329,3575,8,329,10,329,12,329,3578,9,329,1,329,3,329,3581,8,329,1,330,1,330,1,330,1,330,1,330,1,330,3,330,3589,8,330,1,330,3,330,3592,8,330,1,331,1,331,3,331,3596,8,331,1,332,1,332,1,332,1,332,1,332,1,333,1,333,1,333,1,334,1,334,1,334,1,335,1,335,1,335,1,336,1,336,1,336,1,336,1,336,1,337,3,337,3618,8,337,1,337,3,337,3621,8,337,1,338,1,338,1,338,1,338,1,338,1,339,1,339,3,339,3630,8,339,1,339,1,339,3,339,3634,8,339,3,339,3636,8,339,1,339,3,339,3639,8,339,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,3,340,3649,8,340,1,341,1,341,3,341,3653,8,341,1,342,1,342,3,342,3657,8,342,1,343,1,343,1,343,1,343,3,343,3663,8,343,1,344,1,344,3,344,3667,8,344,1,344,3,344,3670,8,344,1,344,5,344,3673,8,344,10,344,12,344,3676,9,344,1,345,1,345,1,345,3,345,3681,8,345,1,345,1,345,1,346,1,346,1,346,3,346,3688,8,346,1,346,1,346,1,347,1,347,1,347,3,347,3695,8,347,1,347,1,347,1,348,1,348,1,348,3,348,3702,8,348,1,348,1,348,1,349,1,349,1,349,1,349,1,350,3,350,3711,8,350,1,350,1,350,1,350,1,351,1,351,1,351,3,351,3719,8,351,1,352,1,352,1,353,1,353,3,353,3725,8,353,1,353,3,353,3728,8,353,1,353,3,353,3731,8,353,1,354,1,354,1,355,1,355,1,356,1,356,1,356,1,356,3,356,3741,8,356,1,357,1,357,1,357,3,357,3746,8,357,1,357,1,357,1,357,3,357,3751,8,357,1,357,1,357,1,357,3,357,3756,8,357,1,357,1,357,1,358,3,358,3761,8,358,1,358,1,358,1,358,3,358,3766,8,358,1,359,1,359,1,359,1,359,3,359,3772,8,359,1,359,1,359,1,359,1,359,3,359,3778,8,359,1,360,1,360,1,361,1,361,1,362,1,362,1,363,1,363,1,364,1,364,1,364,1,364,1,365,3,365,3793,8,365,1,365,1,365,1,365,1,365,1,365,1,365,1,366,1,366,1,367,1,367,1,367,3,367,3806,8,367,1,368,1,368,1,369,1,369,3,369,3812,8,369,1,369,1,369,3,369,3816,8,369,1,369,1,369,1,370,1,370,1,370,1,370,1,370,1,370,1,370,3,370,3827,8,370,3,370,3829,8,370,1,371,1,371,1,372,1,372,1,373,1,373,3,373,3837,8,373,3,373,3839,8,373,1,373,1,373,5,373,3843,8,373,10,373,12,373,3846,9,373,1,373,1,373,1,374,1,374,1,375,1,375,1,375,1,375,1,375,3,375,3857,8,375,1,375,1,375,1,375,1,375,1,375,3,375,3864,8,375,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,377,3,377,3874,8,377,1,378,3,378,3877,8,378,1,379,1,379,1,379,3,379,3882,8,379,1,379,1,379,1,380,1,380,1,380,1,380,1,381,1,381,1,381,1,381,1,382,1,382,1,382,1,383,1,383,3,383,3899,8,383,3,383,3901,8,383,1,383,1,383,1,383,1,383,1,383,1,383,1,383,1,384,1,384,1,384,1,384,1,384,1,384,1,385,1,385,3,385,3918,8,385,1,385,1,385,5,385,3922,8,385,10,385,12,385,3925,9,385,1,385,3,385,3928,8,385,1,386,1,386,3,386,3932,8,386,1,386,1,386,5,386,3936,8,386,10,386,12,386,3939,9,386,1,386,1,386,1,386,5,386,3944,8,386,10,386,12,386,3947,9,386,1,386,1,386,3,386,3951,8,386,1,387,1,387,1,387,1,387,1,388,1,388,1,388,1,388,1,389,1,389,1,389,1,389,1,390,1,390,1,390,1,390,3,390,3969,8,390,1,390,1,390,1,391,1,391,1,391,1,391,1,391,1,391,1,391,3,391,3980,8,391,1,392,1,392,1,392,1,393,1,393,1,393,1,394,1,394,1,394,1,395,1,395,1,395,1,396,1,396,1,396,1,397,1,397,1,397,1,398,1,398,1,398,1,398,1,398,1,399,1,399,3,399,4007,8,399,1,399,1,399,5,399,4011,8,399,10,399,12,399,4014,9,399,1,399,3,399,4017,8,399,1,400,1,400,1,400,1,400,3,400,4023,8,400,1,400,1,400,3,400,4027,8,400,3,400,4029,8,400,1,400,3,400,4032,8,400,1,400,1,400,1,401,1,401,3,401,4038,8,401,1,401,3,401,4041,8,401,1,401,1,401,1,401,1,401,1,401,3,401,4048,8,401,1,401,3,401,4051,8,401,1,401,3,401,4054,8,401,1,401,1,401,1,401,1,401,1,402,1,402,1,402,1,402,1,402,3,402,4065,8,402,1,402,3,402,4068,8,402,1,402,3,402,4071,8,402,1,402,1,402,1,402,3,402,4076,8,402,1,402,3,402,4079,8,402,1,402,1,402,3,402,4083,8,402,3,402,4085,8,402,1,402,1,402,1,402,1,402,1,403,1,403,1,403,1,404,1,404,1,405,1,405,1,405,1,406,1,406,1,406,1,407,1,407,1,407,1,407,1,407,3,407,4107,8,407,1,408,1,408,1,408,5,408,4112,8,408,10,408,12,408,4115,9,408,1,408,3,408,4118,8,408,1,409,1,409,1,409,5,409,4123,8,409,10,409,12,409,4126,9,409,1,409,3,409,4129,8,409,1,410,1,410,1,410,5,410,4134,8,410,10,410,12,410,4137,9,410,1,410,3,410,4140,8,410,1,411,1,411,1,411,5,411,4145,8,411,10,411,12,411,4148,9,411,1,411,3,411,4151,8,411,1,412,1,412,1,413,1,413,1,413,1,414,1,414,1,415,1,415,1,415,1,415,1,415,1,415,1,416,1,416,1,416,1,416,1,416,1,417,1,417,1,417,1,417,1,417,3,417,4176,8,417,1,418,5,418,4179,8,418,10,418,12,418,4182,9,418,1,418,3,418,4185,8,418,1,419,1,419,3,419,4189,8,419,1,420,3,420,4192,8,420,1,420,1,420,1,420,1,421,1,421,1,421,1,421,1,421,1,421,1,422,1,422,1,422,1,422,1,422,1,423,1,423,1,423,3,423,4211,8,423,1,423,1,423,3,423,4215,8,423,1,423,1,423,3,423,4219,8,423,1,423,1,423,1,424,3,424,4224,8,424,1,424,3,424,4227,8,424,1,425,1,425,1,425,1,425,1,425,1,425,1,426,1,426,1,426,5,426,4238,8,426,10,426,12,426,4241,9,426,1,426,3,426,4244,8,426,1,427,1,427,1,427,1,427,1,427,1,427,1,427,3,427,4253,8,427,1,428,1,428,1,428,1,429,1,429,5,429,4260,8,429,10,429,12,429,4263,9,429,1,429,1,429,1,430,3,430,4268,8,430,1,430,1,430,1,430,1,431,1,431,1,432,1,432,3,432,4277,8,432,1,432,1,432,1,432,5,432,4282,8,432,10,432,12,432,4285,9,432,1,432,1,432,4,432,4289,8,432,11,432,12,432,4290,3,432,4293,8,432,1,432,1,432,1,432,3,432,4298,8,432,1,433,3,433,4301,8,433,1,433,1,433,1,433,1,434,1,434,3,434,4308,8,434,1,434,1,434,1,434,5,434,4313,8,434,10,434,12,434,4316,9,434,1,434,1,434,4,434,4320,8,434,11,434,12,434,4321,3,434,4324,8,434,1,434,1,434,1,434,3,434,4329,8,434,1,435,1,435,1,435,1,436,1,436,5,436,4336,8,436,10,436,12,436,4339,9,436,1,436,1,436,1,437,1,437,1,437,1,438,1,438,5,438,4348,8,438,10,438,12,438,4351,9,438,1,438,1,438,1,439,1,439,1,439,1,439,1,439,1,440,1,440,1,440,3,440,4363,8,440,3,440,4365,8,440,1,440,1,440,1,440,3,440,4370,8,440,1,440,1,440,3,440,4374,8,440,3,440,4376,8,440,1,440,3,440,4379,8,440,1,440,1,440,3,440,4383,8,440,1,440,1,440,1,441,1,441,1,442,1,442,1,443,1,443,1,444,1,444,1,445,1,445,1,445,1,445,1,445,1,445,1,446,1,446,1,446,1,446,1,446,1,447,1,447,1,447,1,447,1,447,1,447,1,448,1,448,1,448,1,448,1,448,1,449,1,449,1,449,5,449,4420,8,449,10,449,12,449,4423,9,449,1,449,3,449,4426,8,449,1,449,3,449,4429,8,449,1,450,1,450,1,450,1,450,1,450,3,450,4436,8,450,1,451,1,451,1,451,1,451,1,452,5,452,4443,8,452,10,452,12,452,4446,9,452,1,452,1,452,1,452,1,453,1,453,1,453,1,453,1,453,1,453,1,454,1,454,1,454,1,454,1,454,1,455,1,455,1,455,1,455,1,455,1,455,1,456,1,456,1,456,1,456,1,456,1,457,1,457,1,457,1,457,1,458,1,458,5,458,4479,8,458,10,458,12,458,4482,9,458,1,458,1,458,1,458,5,458,4487,8,458,10,458,12,458,4490,9,458,1,458,1,458,4,458,4494,8,458,11,458,12,458,4495,3,458,4498,8,458,1,458,1,458,1,458,3,458,4503,8,458,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,460,1,460,1,460,1,460,1,460,1,460,1,461,1,461,1,461,1,461,3,461,4522,8,461,1,461,1,461,1,461,3,461,4527,8,461,3,461,4529,8,461,1,461,3,461,4532,8,461,1,461,1,461,1,462,1,462,1,462,1,462,1,462,1,462,1,463,1,463,1,463,5,463,4545,8,463,10,463,12,463,4548,9,463,1,463,3,463,4551,8,463,1,464,1,464,1,464,3,464,4556,8,464,1,465,1,465,1,465,1,465,1,466,1,466,3,466,4564,8,466,1,466,1,466,1,466,5,466,4569,8,466,10,466,12,466,4572,9,466,1,466,1,466,4,466,4576,8,466,11,466,12,466,4577,3,466,4580,8,466,1,466,3,466,4583,8,466,1,467,1,467,1,467,3,467,4588,8,467,1,467,3,467,4591,8,467,1,467,1,467,1,468,1,468,1,468,5,468,4598,8,468,10,468,12,468,4601,9,468,1,468,3,468,4604,8,468,1,469,1,469,1,469,1,469,3,469,4610,8,469,1,470,1,470,1,470,3,470,4615,8,470,1,470,1,470,1,471,1,471,1,472,1,472,1,473,1,473,1,473,1,473,1,473,1,473,1,474,1,474,1,474,1,474,1,474,1,475,1,475,1,475,1,475,1,475,1,476,1,476,1,476,1,476,1,477,3,477,4644,8,477,1,477,5,477,4647,8,477,10,477,12,477,4650,9,477,1,477,1,477,1,477,1,477,1,478,1,478,1,479,5,479,4659,8,479,10,479,12,479,4662,9,479,1,479,1,479,1,479,1,479,1,479,1,479,5,479,4670,8,479,10,479,12,479,4673,9,479,3,479,4675,8,479,1,479,1,479,1,480,3,480,4680,8,480,1,480,1,480,1,480,3,480,4685,8,480,3,480,4687,8,480,1,480,1,480,1,481,1,481,1,482,3,482,4694,8,482,1,482,3,482,4697,8,482,1,482,1,482,3,482,4701,8,482,1,482,3,482,4704,8,482,1,482,1,482,1,483,3,483,4709,8,483,1,483,4,483,4712,8,483,11,483,12,483,4713,1,483,1,483,1,483,1,484,1,484,4,484,4721,8,484,11,484,12,484,4722,1,484,1,484,1,485,1,485,3,485,4729,8,485,1,486,1,486,1,486,1,486,1,486,3,486,4736,8,486,1,487,3,487,4739,8,487,1,487,3,487,4742,8,487,1,488,1,488,1,489,1,489,1,490,1,490,1,491,1,491,1,492,1,492,1,493,1,493,1,494,1,494,1,494,0,1,0,495,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,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,0,27,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,1,0,218,219,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,1,0,221,222,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,5020,0,1005,1,0,0,0,2,1091,1,0,0,0,4,1093,1,0,0,0,6,1116,1,0,0,0,8,1121,1,0,0,0,10,1123,1,0,0,0,12,1125,1,0,0,0,14,1129,1,0,0,0,16,1132,1,0,0,0,18,1136,1,0,0,0,20,1140,1,0,0,0,22,1147,1,0,0,0,24,1155,1,0,0,0,26,1163,1,0,0,0,28,1172,1,0,0,0,30,1174,1,0,0,0,32,1176,1,0,0,0,34,1178,1,0,0,0,36,1180,1,0,0,0,38,1182,1,0,0,0,40,1184,1,0,0,0,42,1186,1,0,0,0,44,1188,1,0,0,0,46,1200,1,0,0,0,48,1219,1,0,0,0,50,1223,1,0,0,0,52,1227,1,0,0,0,54,1271,1,0,0,0,56,1273,1,0,0,0,58,1275,1,0,0,0,60,1281,1,0,0,0,62,1298,1,0,0,0,64,1306,1,0,0,0,66,1320,1,0,0,0,68,1329,1,0,0,0,70,1337,1,0,0,0,72,1343,1,0,0,0,74,1356,1,0,0,0,76,1361,1,0,0,0,78,1364,1,0,0,0,80,1366,1,0,0,0,82,1370,1,0,0,0,84,1372,1,0,0,0,86,1375,1,0,0,0,88,1378,1,0,0,0,90,1395,1,0,0,0,92,1408,1,0,0,0,94,1419,1,0,0,0,96,1421,1,0,0,0,98,1434,1,0,0,0,100,1448,1,0,0,0,102,1450,1,0,0,0,104,1456,1,0,0,0,106,1484,1,0,0,0,108,1496,1,0,0,0,110,1498,1,0,0,0,112,1504,1,0,0,0,114,1513,1,0,0,0,116,1533,1,0,0,0,118,1542,1,0,0,0,120,1549,1,0,0,0,122,1551,1,0,0,0,124,1561,1,0,0,0,126,1570,1,0,0,0,128,1579,1,0,0,0,130,1597,1,0,0,0,132,1603,1,0,0,0,134,1609,1,0,0,0,136,1617,1,0,0,0,138,1619,1,0,0,0,140,1627,1,0,0,0,142,1639,1,0,0,0,144,1661,1,0,0,0,146,1673,1,0,0,0,148,1695,1,0,0,0,150,1703,1,0,0,0,152,1711,1,0,0,0,154,1719,1,0,0,0,156,1729,1,0,0,0,158,1731,1,0,0,0,160,1735,1,0,0,0,162,1738,1,0,0,0,164,1744,1,0,0,0,166,1762,1,0,0,0,168,1775,1,0,0,0,170,1783,1,0,0,0,172,1799,1,0,0,0,174,1807,1,0,0,0,176,1812,1,0,0,0,178,1831,1,0,0,0,180,1839,1,0,0,0,182,1848,1,0,0,0,184,1850,1,0,0,0,186,1853,1,0,0,0,188,1877,1,0,0,0,190,1883,1,0,0,0,192,1885,1,0,0,0,194,1894,1,0,0,0,196,1898,1,0,0,0,198,1929,1,0,0,0,200,1952,1,0,0,0,202,1959,1,0,0,0,204,1977,1,0,0,0,206,1991,1,0,0,0,208,1993,1,0,0,0,210,2001,1,0,0,0,212,2004,1,0,0,0,214,2007,1,0,0,0,216,2010,1,0,0,0,218,2018,1,0,0,0,220,2039,1,0,0,0,222,2041,1,0,0,0,224,2053,1,0,0,0,226,2061,1,0,0,0,228,2069,1,0,0,0,230,2077,1,0,0,0,232,2089,1,0,0,0,234,2097,1,0,0,0,236,2113,1,0,0,0,238,2115,1,0,0,0,240,2122,1,0,0,0,242,2128,1,0,0,0,244,2150,1,0,0,0,246,2158,1,0,0,0,248,2170,1,0,0,0,250,2172,1,0,0,0,252,2177,1,0,0,0,254,2182,1,0,0,0,256,2187,1,0,0,0,258,2192,1,0,0,0,260,2198,1,0,0,0,262,2213,1,0,0,0,264,2223,1,0,0,0,266,2230,1,0,0,0,268,2245,1,0,0,0,270,2248,1,0,0,0,272,2257,1,0,0,0,274,2259,1,0,0,0,276,2261,1,0,0,0,278,2286,1,0,0,0,280,2288,1,0,0,0,282,2313,1,0,0,0,284,2315,1,0,0,0,286,2320,1,0,0,0,288,2328,1,0,0,0,290,2338,1,0,0,0,292,2344,1,0,0,0,294,2350,1,0,0,0,296,2355,1,0,0,0,298,2359,1,0,0,0,300,2367,1,0,0,0,302,2372,1,0,0,0,304,2380,1,0,0,0,306,2391,1,0,0,0,308,2393,1,0,0,0,310,2395,1,0,0,0,312,2397,1,0,0,0,314,2399,1,0,0,0,316,2401,1,0,0,0,318,2403,1,0,0,0,320,2407,1,0,0,0,322,2409,1,0,0,0,324,2411,1,0,0,0,326,2413,1,0,0,0,328,2415,1,0,0,0,330,2417,1,0,0,0,332,2419,1,0,0,0,334,2421,1,0,0,0,336,2423,1,0,0,0,338,2425,1,0,0,0,340,2427,1,0,0,0,342,2437,1,0,0,0,344,2439,1,0,0,0,346,2441,1,0,0,0,348,2443,1,0,0,0,350,2445,1,0,0,0,352,2447,1,0,0,0,354,2449,1,0,0,0,356,2457,1,0,0,0,358,2459,1,0,0,0,360,2461,1,0,0,0,362,2463,1,0,0,0,364,2465,1,0,0,0,366,2469,1,0,0,0,368,2477,1,0,0,0,370,2479,1,0,0,0,372,2484,1,0,0,0,374,2489,1,0,0,0,376,2534,1,0,0,0,378,2536,1,0,0,0,380,2557,1,0,0,0,382,2579,1,0,0,0,384,2581,1,0,0,0,386,2583,1,0,0,0,388,2591,1,0,0,0,390,2593,1,0,0,0,392,2595,1,0,0,0,394,2597,1,0,0,0,396,2605,1,0,0,0,398,2611,1,0,0,0,400,2613,1,0,0,0,402,2636,1,0,0,0,404,2640,1,0,0,0,406,2642,1,0,0,0,408,2644,1,0,0,0,410,2655,1,0,0,0,412,2657,1,0,0,0,414,2666,1,0,0,0,416,2672,1,0,0,0,418,2674,1,0,0,0,420,2679,1,0,0,0,422,2705,1,0,0,0,424,2729,1,0,0,0,426,2735,1,0,0,0,428,2737,1,0,0,0,430,2740,1,0,0,0,432,2757,1,0,0,0,434,2764,1,0,0,0,436,2776,1,0,0,0,438,2789,1,0,0,0,440,2791,1,0,0,0,442,2800,1,0,0,0,444,2819,1,0,0,0,446,2825,1,0,0,0,448,2827,1,0,0,0,450,2862,1,0,0,0,452,2866,1,0,0,0,454,2868,1,0,0,0,456,2870,1,0,0,0,458,2873,1,0,0,0,460,2881,1,0,0,0,462,2885,1,0,0,0,464,2899,1,0,0,0,466,2911,1,0,0,0,468,2931,1,0,0,0,470,2933,1,0,0,0,472,2936,1,0,0,0,474,2940,1,0,0,0,476,2943,1,0,0,0,478,2946,1,0,0,0,480,2949,1,0,0,0,482,2953,1,0,0,0,484,2964,1,0,0,0,486,2968,1,0,0,0,488,2972,1,0,0,0,490,2976,1,0,0,0,492,2978,1,0,0,0,494,2986,1,0,0,0,496,2995,1,0,0,0,498,2998,1,0,0,0,500,3002,1,0,0,0,502,3004,1,0,0,0,504,3009,1,0,0,0,506,3014,1,0,0,0,508,3018,1,0,0,0,510,3035,1,0,0,0,512,3039,1,0,0,0,514,3056,1,0,0,0,516,3074,1,0,0,0,518,3097,1,0,0,0,520,3099,1,0,0,0,522,3108,1,0,0,0,524,3113,1,0,0,0,526,3120,1,0,0,0,528,3138,1,0,0,0,530,3140,1,0,0,0,532,3144,1,0,0,0,534,3148,1,0,0,0,536,3153,1,0,0,0,538,3165,1,0,0,0,540,3171,1,0,0,0,542,3184,1,0,0,0,544,3186,1,0,0,0,546,3199,1,0,0,0,548,3203,1,0,0,0,550,3213,1,0,0,0,552,3226,1,0,0,0,554,3228,1,0,0,0,556,3242,1,0,0,0,558,3245,1,0,0,0,560,3247,1,0,0,0,562,3250,1,0,0,0,564,3252,1,0,0,0,566,3257,1,0,0,0,568,3261,1,0,0,0,570,3266,1,0,0,0,572,3270,1,0,0,0,574,3276,1,0,0,0,576,3278,1,0,0,0,578,3280,1,0,0,0,580,3284,1,0,0,0,582,3287,1,0,0,0,584,3292,1,0,0,0,586,3312,1,0,0,0,588,3314,1,0,0,0,590,3318,1,0,0,0,592,3331,1,0,0,0,594,3344,1,0,0,0,596,3357,1,0,0,0,598,3372,1,0,0,0,600,3383,1,0,0,0,602,3385,1,0,0,0,604,3393,1,0,0,0,606,3395,1,0,0,0,608,3401,1,0,0,0,610,3403,1,0,0,0,612,3406,1,0,0,0,614,3422,1,0,0,0,616,3426,1,0,0,0,618,3428,1,0,0,0,620,3432,1,0,0,0,622,3445,1,0,0,0,624,3448,1,0,0,0,626,3457,1,0,0,0,628,3462,1,0,0,0,630,3476,1,0,0,0,632,3478,1,0,0,0,634,3483,1,0,0,0,636,3509,1,0,0,0,638,3511,1,0,0,0,640,3513,1,0,0,0,642,3515,1,0,0,0,644,3520,1,0,0,0,646,3526,1,0,0,0,648,3528,1,0,0,0,650,3532,1,0,0,0,652,3537,1,0,0,0,654,3544,1,0,0,0,656,3559,1,0,0,0,658,3580,1,0,0,0,660,3591,1,0,0,0,662,3595,1,0,0,0,664,3597,1,0,0,0,666,3602,1,0,0,0,668,3605,1,0,0,0,670,3608,1,0,0,0,672,3611,1,0,0,0,674,3617,1,0,0,0,676,3622,1,0,0,0,678,3635,1,0,0,0,680,3648,1,0,0,0,682,3650,1,0,0,0,684,3654,1,0,0,0,686,3662,1,0,0,0,688,3664,1,0,0,0,690,3677,1,0,0,0,692,3684,1,0,0,0,694,3691,1,0,0,0,696,3698,1,0,0,0,698,3705,1,0,0,0,700,3710,1,0,0,0,702,3715,1,0,0,0,704,3720,1,0,0,0,706,3730,1,0,0,0,708,3732,1,0,0,0,710,3734,1,0,0,0,712,3740,1,0,0,0,714,3742,1,0,0,0,716,3760,1,0,0,0,718,3777,1,0,0,0,720,3779,1,0,0,0,722,3781,1,0,0,0,724,3783,1,0,0,0,726,3785,1,0,0,0,728,3787,1,0,0,0,730,3792,1,0,0,0,732,3800,1,0,0,0,734,3805,1,0,0,0,736,3807,1,0,0,0,738,3809,1,0,0,0,740,3819,1,0,0,0,742,3830,1,0,0,0,744,3832,1,0,0,0,746,3838,1,0,0,0,748,3849,1,0,0,0,750,3851,1,0,0,0,752,3865,1,0,0,0,754,3873,1,0,0,0,756,3876,1,0,0,0,758,3881,1,0,0,0,760,3885,1,0,0,0,762,3889,1,0,0,0,764,3893,1,0,0,0,766,3900,1,0,0,0,768,3909,1,0,0,0,770,3927,1,0,0,0,772,3950,1,0,0,0,774,3952,1,0,0,0,776,3956,1,0,0,0,778,3960,1,0,0,0,780,3964,1,0,0,0,782,3979,1,0,0,0,784,3981,1,0,0,0,786,3984,1,0,0,0,788,3987,1,0,0,0,790,3990,1,0,0,0,792,3993,1,0,0,0,794,3996,1,0,0,0,796,3999,1,0,0,0,798,4016,1,0,0,0,800,4018,1,0,0,0,802,4035,1,0,0,0,804,4059,1,0,0,0,806,4090,1,0,0,0,808,4093,1,0,0,0,810,4095,1,0,0,0,812,4098,1,0,0,0,814,4106,1,0,0,0,816,4108,1,0,0,0,818,4119,1,0,0,0,820,4130,1,0,0,0,822,4141,1,0,0,0,824,4152,1,0,0,0,826,4154,1,0,0,0,828,4157,1,0,0,0,830,4159,1,0,0,0,832,4165,1,0,0,0,834,4175,1,0,0,0,836,4180,1,0,0,0,838,4188,1,0,0,0,840,4191,1,0,0,0,842,4196,1,0,0,0,844,4202,1,0,0,0,846,4207,1,0,0,0,848,4223,1,0,0,0,850,4228,1,0,0,0,852,4243,1,0,0,0,854,4252,1,0,0,0,856,4254,1,0,0,0,858,4257,1,0,0,0,860,4267,1,0,0,0,862,4272,1,0,0,0,864,4297,1,0,0,0,866,4300,1,0,0,0,868,4328,1,0,0,0,870,4330,1,0,0,0,872,4333,1,0,0,0,874,4342,1,0,0,0,876,4345,1,0,0,0,878,4354,1,0,0,0,880,4359,1,0,0,0,882,4386,1,0,0,0,884,4388,1,0,0,0,886,4390,1,0,0,0,888,4392,1,0,0,0,890,4394,1,0,0,0,892,4400,1,0,0,0,894,4405,1,0,0,0,896,4411,1,0,0,0,898,4428,1,0,0,0,900,4435,1,0,0,0,902,4437,1,0,0,0,904,4444,1,0,0,0,906,4450,1,0,0,0,908,4456,1,0,0,0,910,4461,1,0,0,0,912,4467,1,0,0,0,914,4472,1,0,0,0,916,4502,1,0,0,0,918,4504,1,0,0,0,920,4511,1,0,0,0,922,4517,1,0,0,0,924,4535,1,0,0,0,926,4550,1,0,0,0,928,4555,1,0,0,0,930,4557,1,0,0,0,932,4582,1,0,0,0,934,4584,1,0,0,0,936,4603,1,0,0,0,938,4609,1,0,0,0,940,4611,1,0,0,0,942,4618,1,0,0,0,944,4620,1,0,0,0,946,4622,1,0,0,0,948,4628,1,0,0,0,950,4633,1,0,0,0,952,4638,1,0,0,0,954,4643,1,0,0,0,956,4655,1,0,0,0,958,4660,1,0,0,0,960,4686,1,0,0,0,962,4690,1,0,0,0,964,4693,1,0,0,0,966,4708,1,0,0,0,968,4718,1,0,0,0,970,4728,1,0,0,0,972,4730,1,0,0,0,974,4738,1,0,0,0,976,4743,1,0,0,0,978,4745,1,0,0,0,980,4747,1,0,0,0,982,4749,1,0,0,0,984,4751,1,0,0,0,986,4753,1,0,0,0,988,4755,1,0,0,0,990,991,6,0,-1,0,991,992,5,77,0,0,992,993,3,0,0,0,993,994,5,209,0,0,994,995,3,0,0,0,995,996,5,55,0,0,996,997,3,0,0,28,997,1006,1,0,0,0,998,999,7,0,0,0,999,1006,3,0,0,14,1e3,1001,7,1,0,0,1001,1006,3,2,1,0,1002,1003,5,8,0,0,1003,1006,3,2,1,0,1004,1006,3,6,3,0,1005,990,1,0,0,0,1005,998,1,0,0,0,1005,1e3,1,0,0,0,1005,1002,1,0,0,0,1005,1004,1,0,0,0,1006,1088,1,0,0,0,1007,1008,10,27,0,0,1008,1009,5,190,0,0,1009,1087,3,0,0,28,1010,1011,10,26,0,0,1011,1012,5,78,0,0,1012,1087,3,0,0,27,1013,1014,10,25,0,0,1014,1015,5,112,0,0,1015,1087,3,0,0,26,1016,1017,10,24,0,0,1017,1018,5,12,0,0,1018,1087,3,0,0,25,1019,1020,10,23,0,0,1020,1021,5,173,0,0,1021,1087,3,0,0,24,1022,1023,10,22,0,0,1023,1024,5,215,0,0,1024,1087,3,0,0,23,1025,1026,10,21,0,0,1026,1027,5,195,0,0,1027,1087,3,0,0,22,1028,1029,10,20,0,0,1029,1030,7,2,0,0,1030,1087,3,0,0,21,1031,1032,10,19,0,0,1032,1033,7,3,0,0,1033,1087,3,0,0,20,1034,1035,10,18,0,0,1035,1036,5,181,0,0,1036,1087,3,0,0,19,1037,1038,10,17,0,0,1038,1039,7,4,0,0,1039,1087,3,0,0,18,1040,1041,10,16,0,0,1041,1042,7,5,0,0,1042,1087,3,0,0,17,1043,1044,10,15,0,0,1044,1045,7,6,0,0,1045,1087,3,0,0,15,1046,1047,10,12,0,0,1047,1048,7,7,0,0,1048,1087,3,2,1,0,1049,1050,10,11,0,0,1050,1051,5,13,0,0,1051,1087,3,2,1,0,1052,1053,10,10,0,0,1053,1054,5,191,0,0,1054,1087,3,2,1,0,1055,1056,10,9,0,0,1056,1057,5,100,0,0,1057,1087,3,2,1,0,1058,1059,10,8,0,0,1059,1061,5,211,0,0,1060,1062,3,4,2,0,1061,1060,1,0,0,0,1061,1062,1,0,0,0,1062,1063,1,0,0,0,1063,1087,5,212,0,0,1064,1065,10,7,0,0,1065,1066,5,192,0,0,1066,1068,5,196,0,0,1067,1069,3,4,2,0,1068,1067,1,0,0,0,1068,1069,1,0,0,0,1069,1070,1,0,0,0,1070,1087,5,197,0,0,1071,1072,10,6,0,0,1072,1087,3,20,10,0,1073,1074,10,5,0,0,1074,1075,5,202,0,0,1075,1087,3,90,45,0,1076,1077,10,4,0,0,1077,1078,5,182,0,0,1078,1087,3,18,9,0,1079,1080,10,3,0,0,1080,1081,5,180,0,0,1081,1084,3,90,45,0,1082,1085,3,18,9,0,1083,1085,3,20,10,0,1084,1082,1,0,0,0,1084,1083,1,0,0,0,1085,1087,1,0,0,0,1086,1007,1,0,0,0,1086,1010,1,0,0,0,1086,1013,1,0,0,0,1086,1016,1,0,0,0,1086,1019,1,0,0,0,1086,1022,1,0,0,0,1086,1025,1,0,0,0,1086,1028,1,0,0,0,1086,1031,1,0,0,0,1086,1034,1,0,0,0,1086,1037,1,0,0,0,1086,1040,1,0,0,0,1086,1043,1,0,0,0,1086,1046,1,0,0,0,1086,1049,1,0,0,0,1086,1052,1,0,0,0,1086,1055,1,0,0,0,1086,1058,1,0,0,0,1086,1064,1,0,0,0,1086,1071,1,0,0,0,1086,1073,1,0,0,0,1086,1076,1,0,0,0,1086,1079,1,0,0,0,1087,1090,1,0,0,0,1088,1086,1,0,0,0,1088,1089,1,0,0,0,1089,1,1,0,0,0,1090,1088,1,0,0,0,1091,1092,3,90,45,0,1092,3,1,0,0,0,1093,1098,3,0,0,0,1094,1095,5,200,0,0,1095,1097,3,0,0,0,1096,1094,1,0,0,0,1097,1100,1,0,0,0,1098,1096,1,0,0,0,1098,1099,1,0,0,0,1099,5,1,0,0,0,1100,1098,1,0,0,0,1101,1117,3,8,4,0,1102,1117,3,28,14,0,1103,1107,3,90,45,0,1104,1108,3,20,10,0,1105,1106,5,202,0,0,1106,1108,5,102,0,0,1107,1104,1,0,0,0,1107,1105,1,0,0,0,1107,1108,1,0,0,0,1108,1117,1,0,0,0,1109,1117,3,16,8,0,1110,1117,3,18,9,0,1111,1113,5,196,0,0,1112,1114,3,4,2,0,1113,1112,1,0,0,0,1113,1114,1,0,0,0,1114,1115,1,0,0,0,1115,1117,5,197,0,0,1116,1101,1,0,0,0,1116,1102,1,0,0,0,1116,1103,1,0,0,0,1116,1109,1,0,0,0,1116,1110,1,0,0,0,1116,1111,1,0,0,0,1117,7,1,0,0,0,1118,1122,5,108,0,0,1119,1120,5,196,0,0,1120,1122,5,197,0,0,1121,1118,1,0,0,0,1121,1119,1,0,0,0,1122,9,1,0,0,0,1123,1124,3,90,45,0,1124,11,1,0,0,0,1125,1126,3,90,45,0,1126,1127,5,202,0,0,1127,1128,5,102,0,0,1128,13,1,0,0,0,1129,1130,3,90,45,0,1130,1131,3,20,10,0,1131,15,1,0,0,0,1132,1133,5,105,0,0,1133,1134,3,90,45,0,1134,1135,3,20,10,0,1135,17,1,0,0,0,1136,1137,5,214,0,0,1137,1138,3,292,146,0,1138,1139,5,216,0,0,1139,19,1,0,0,0,1140,1143,5,196,0,0,1141,1144,3,22,11,0,1142,1144,3,24,12,0,1143,1141,1,0,0,0,1143,1142,1,0,0,0,1143,1144,1,0,0,0,1144,1145,1,0,0,0,1145,1146,5,197,0,0,1146,21,1,0,0,0,1147,1152,3,0,0,0,1148,1149,5,200,0,0,1149,1151,3,0,0,0,1150,1148,1,0,0,0,1151,1154,1,0,0,0,1152,1150,1,0,0,0,1152,1153,1,0,0,0,1153,23,1,0,0,0,1154,1152,1,0,0,0,1155,1160,3,26,13,0,1156,1157,5,200,0,0,1157,1159,3,26,13,0,1158,1156,1,0,0,0,1159,1162,1,0,0,0,1160,1158,1,0,0,0,1160,1161,1,0,0,0,1161,25,1,0,0,0,1162,1160,1,0,0,0,1163,1164,3,90,45,0,1164,1165,5,207,0,0,1165,1166,3,0,0,0,1166,27,1,0,0,0,1167,1173,3,30,15,0,1168,1173,3,32,16,0,1169,1173,3,34,17,0,1170,1173,3,36,18,0,1171,1173,3,38,19,0,1172,1167,1,0,0,0,1172,1168,1,0,0,0,1172,1169,1,0,0,0,1172,1170,1,0,0,0,1172,1171,1,0,0,0,1173,29,1,0,0,0,1174,1175,7,8,0,0,1175,31,1,0,0,0,1176,1177,5,220,0,0,1177,33,1,0,0,0,1178,1179,5,221,0,0,1179,35,1,0,0,0,1180,1181,5,222,0,0,1181,37,1,0,0,0,1182,1183,5,198,0,0,1183,39,1,0,0,0,1184,1185,3,0,0,0,1185,41,1,0,0,0,1186,1187,3,0,0,0,1187,43,1,0,0,0,1188,1189,7,9,0,0,1189,45,1,0,0,0,1190,1191,5,206,0,0,1191,1192,3,44,22,0,1192,1193,5,208,0,0,1193,1194,3,44,22,0,1194,1201,1,0,0,0,1195,1196,5,206,0,0,1196,1197,3,44,22,0,1197,1198,5,208,0,0,1198,1201,1,0,0,0,1199,1201,3,44,22,0,1200,1190,1,0,0,0,1200,1195,1,0,0,0,1200,1199,1,0,0,0,1201,47,1,0,0,0,1202,1220,5,205,0,0,1203,1207,5,214,0,0,1204,1206,3,50,25,0,1205,1204,1,0,0,0,1206,1209,1,0,0,0,1207,1205,1,0,0,0,1207,1208,1,0,0,0,1208,1210,1,0,0,0,1209,1207,1,0,0,0,1210,1220,5,216,0,0,1211,1215,5,214,0,0,1212,1214,3,58,29,0,1213,1212,1,0,0,0,1214,1217,1,0,0,0,1215,1213,1,0,0,0,1215,1216,1,0,0,0,1216,1218,1,0,0,0,1217,1215,1,0,0,0,1218,1220,5,216,0,0,1219,1202,1,0,0,0,1219,1203,1,0,0,0,1219,1211,1,0,0,0,1220,49,1,0,0,0,1221,1224,3,52,26,0,1222,1224,3,58,29,0,1223,1221,1,0,0,0,1223,1222,1,0,0,0,1224,51,1,0,0,0,1225,1228,3,106,53,0,1226,1228,3,108,54,0,1227,1225,1,0,0,0,1227,1226,1,0,0,0,1228,53,1,0,0,0,1229,1231,3,414,207,0,1230,1229,1,0,0,0,1231,1234,1,0,0,0,1232,1230,1,0,0,0,1232,1233,1,0,0,0,1233,1235,1,0,0,0,1234,1232,1,0,0,0,1235,1240,5,48,0,0,1236,1238,3,46,23,0,1237,1236,1,0,0,0,1237,1238,1,0,0,0,1238,1239,1,0,0,0,1239,1241,5,74,0,0,1240,1237,1,0,0,0,1240,1241,1,0,0,0,1241,1242,1,0,0,0,1242,1247,3,90,45,0,1243,1244,5,200,0,0,1244,1246,3,90,45,0,1245,1243,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,154,0,0,1251,1256,3,90,45,0,1252,1253,5,200,0,0,1253,1255,3,90,45,0,1254,1252,1,0,0,0,1255,1258,1,0,0,0,1256,1254,1,0,0,0,1256,1257,1,0,0,0,1257,1259,1,0,0,0,1258,1256,1,0,0,0,1259,1260,3,48,24,0,1260,1272,1,0,0,0,1261,1263,3,414,207,0,1262,1261,1,0,0,0,1263,1266,1,0,0,0,1264,1262,1,0,0,0,1264,1265,1,0,0,0,1265,1267,1,0,0,0,1266,1264,1,0,0,0,1267,1268,5,48,0,0,1268,1269,3,442,221,0,1269,1270,3,48,24,0,1270,1272,1,0,0,0,1271,1232,1,0,0,0,1271,1264,1,0,0,0,1272,55,1,0,0,0,1273,1274,3,90,45,0,1274,57,1,0,0,0,1275,1276,3,60,30,0,1276,59,1,0,0,0,1277,1282,3,62,31,0,1278,1282,3,64,32,0,1279,1282,3,66,33,0,1280,1282,3,420,210,0,1281,1277,1,0,0,0,1281,1278,1,0,0,0,1281,1279,1,0,0,0,1281,1280,1,0,0,0,1282,61,1,0,0,0,1283,1285,5,30,0,0,1284,1286,3,46,23,0,1285,1284,1,0,0,0,1285,1286,1,0,0,0,1286,1296,1,0,0,0,1287,1288,5,1,0,0,1288,1293,3,56,28,0,1289,1290,5,200,0,0,1290,1292,3,56,28,0,1291,1289,1,0,0,0,1292,1295,1,0,0,0,1293,1291,1,0,0,0,1293,1294,1,0,0,0,1294,1297,1,0,0,0,1295,1293,1,0,0,0,1296,1287,1,0,0,0,1296,1297,1,0,0,0,1297,1299,1,0,0,0,1298,1283,1,0,0,0,1298,1299,1,0,0,0,1299,1302,1,0,0,0,1300,1301,5,95,0,0,1301,1303,5,220,0,0,1302,1300,1,0,0,0,1302,1303,1,0,0,0,1303,1304,1,0,0,0,1304,1305,5,223,0,0,1305,63,1,0,0,0,1306,1308,5,54,0,0,1307,1309,3,46,23,0,1308,1307,1,0,0,0,1308,1309,1,0,0,0,1309,1312,1,0,0,0,1310,1311,5,95,0,0,1311,1313,5,220,0,0,1312,1310,1,0,0,0,1312,1313,1,0,0,0,1313,1314,1,0,0,0,1314,1315,5,223,0,0,1315,65,1,0,0,0,1316,1318,5,131,0,0,1317,1319,3,46,23,0,1318,1317,1,0,0,0,1318,1319,1,0,0,0,1319,1321,1,0,0,0,1320,1316,1,0,0,0,1320,1321,1,0,0,0,1321,1322,1,0,0,0,1322,1323,5,93,0,0,1323,1324,5,220,0,0,1324,1325,5,223,0,0,1325,67,1,0,0,0,1326,1328,3,446,223,0,1327,1326,1,0,0,0,1328,1331,1,0,0,0,1329,1327,1,0,0,0,1329,1330,1,0,0,0,1330,1332,1,0,0,0,1331,1329,1,0,0,0,1332,1333,5,0,0,1,1333,69,1,0,0,0,1334,1336,3,416,208,0,1335,1334,1,0,0,0,1336,1339,1,0,0,0,1337,1335,1,0,0,0,1337,1338,1,0,0,0,1338,1340,1,0,0,0,1339,1337,1,0,0,0,1340,1341,3,72,36,0,1341,1342,3,74,37,0,1342,71,1,0,0,0,1343,1345,5,104,0,0,1344,1346,3,46,23,0,1345,1344,1,0,0,0,1345,1346,1,0,0,0,1346,73,1,0,0,0,1347,1357,5,205,0,0,1348,1352,5,214,0,0,1349,1351,3,76,38,0,1350,1349,1,0,0,0,1351,1354,1,0,0,0,1352,1350,1,0,0,0,1352,1353,1,0,0,0,1353,1355,1,0,0,0,1354,1352,1,0,0,0,1355,1357,5,216,0,0,1356,1347,1,0,0,0,1356,1348,1,0,0,0,1357,75,1,0,0,0,1358,1362,3,82,41,0,1359,1362,3,88,44,0,1360,1362,3,92,46,0,1361,1358,1,0,0,0,1361,1359,1,0,0,0,1361,1360,1,0,0,0,1362,77,1,0,0,0,1363,1365,3,80,40,0,1364,1363,1,0,0,0,1364,1365,1,0,0,0,1365,79,1,0,0,0,1366,1367,7,10,0,0,1367,81,1,0,0,0,1368,1371,3,84,42,0,1369,1371,3,86,43,0,1370,1368,1,0,0,0,1370,1369,1,0,0,0,1371,83,1,0,0,0,1372,1373,3,78,39,0,1373,1374,3,104,52,0,1374,85,1,0,0,0,1375,1376,3,78,39,0,1376,1377,3,108,54,0,1377,87,1,0,0,0,1378,1379,3,78,39,0,1379,1384,5,7,0,0,1380,1381,5,206,0,0,1381,1382,3,44,22,0,1382,1383,5,208,0,0,1383,1385,1,0,0,0,1384,1380,1,0,0,0,1384,1385,1,0,0,0,1385,1387,1,0,0,0,1386,1388,3,44,22,0,1387,1386,1,0,0,0,1387,1388,1,0,0,0,1388,1389,1,0,0,0,1389,1390,5,71,0,0,1390,1391,3,90,45,0,1391,1392,3,48,24,0,1392,89,1,0,0,0,1393,1394,5,193,0,0,1394,1396,5,183,0,0,1395,1393,1,0,0,0,1395,1396,1,0,0,0,1396,1402,1,0,0,0,1397,1398,3,44,22,0,1398,1399,5,183,0,0,1399,1401,1,0,0,0,1400,1397,1,0,0,0,1401,1404,1,0,0,0,1402,1400,1,0,0,0,1402,1403,1,0,0,0,1403,1405,1,0,0,0,1404,1402,1,0,0,0,1405,1406,3,44,22,0,1406,91,1,0,0,0,1407,1409,3,80,40,0,1408,1407,1,0,0,0,1408,1409,1,0,0,0,1409,1410,1,0,0,0,1410,1412,5,79,0,0,1411,1413,5,8,0,0,1412,1411,1,0,0,0,1412,1413,1,0,0,0,1413,1414,1,0,0,0,1414,1415,3,94,47,0,1415,1416,3,48,24,0,1416,93,1,0,0,0,1417,1420,3,96,48,0,1418,1420,3,98,49,0,1419,1417,1,0,0,0,1419,1418,1,0,0,0,1420,95,1,0,0,0,1421,1424,3,90,45,0,1422,1423,5,183,0,0,1423,1425,5,179,0,0,1424,1422,1,0,0,0,1424,1425,1,0,0,0,1425,97,1,0,0,0,1426,1427,3,90,45,0,1427,1428,5,183,0,0,1428,1431,5,198,0,0,1429,1430,5,183,0,0,1430,1432,5,179,0,0,1431,1429,1,0,0,0,1431,1432,1,0,0,0,1432,1435,1,0,0,0,1433,1435,3,100,50,0,1434,1426,1,0,0,0,1434,1433,1,0,0,0,1435,99,1,0,0,0,1436,1438,3,970,485,0,1437,1439,3,102,51,0,1438,1437,1,0,0,0,1439,1440,1,0,0,0,1440,1438,1,0,0,0,1440,1441,1,0,0,0,1441,1449,1,0,0,0,1442,1444,3,984,492,0,1443,1445,3,102,51,0,1444,1443,1,0,0,0,1445,1446,1,0,0,0,1446,1444,1,0,0,0,1446,1447,1,0,0,0,1447,1449,1,0,0,0,1448,1436,1,0,0,0,1448,1442,1,0,0,0,1449,101,1,0,0,0,1450,1451,5,211,0,0,1451,1452,3,0,0,0,1452,1453,5,212,0,0,1453,103,1,0,0,0,1454,1457,3,60,30,0,1455,1457,3,106,53,0,1456,1454,1,0,0,0,1456,1455,1,0,0,0,1457,105,1,0,0,0,1458,1485,3,54,27,0,1459,1485,3,70,35,0,1460,1485,3,110,55,0,1461,1485,3,162,81,0,1462,1485,3,250,125,0,1463,1485,3,252,126,0,1464,1485,3,254,127,0,1465,1485,3,412,206,0,1466,1485,3,256,128,0,1467,1485,3,258,129,0,1468,1485,3,370,185,0,1469,1485,3,284,142,0,1470,1485,3,288,144,0,1471,1485,3,300,150,0,1472,1485,3,398,199,0,1473,1485,3,432,216,0,1474,1485,3,434,217,0,1475,1485,3,134,67,0,1476,1485,3,142,71,0,1477,1485,3,168,84,0,1478,1485,3,146,73,0,1479,1485,3,242,121,0,1480,1485,3,220,110,0,1481,1485,3,224,112,0,1482,1485,3,232,116,0,1483,1485,3,246,123,0,1484,1458,1,0,0,0,1484,1459,1,0,0,0,1484,1460,1,0,0,0,1484,1461,1,0,0,0,1484,1462,1,0,0,0,1484,1463,1,0,0,0,1484,1464,1,0,0,0,1484,1465,1,0,0,0,1484,1466,1,0,0,0,1484,1467,1,0,0,0,1484,1468,1,0,0,0,1484,1469,1,0,0,0,1484,1470,1,0,0,0,1484,1471,1,0,0,0,1484,1472,1,0,0,0,1484,1473,1,0,0,0,1484,1474,1,0,0,0,1484,1475,1,0,0,0,1484,1476,1,0,0,0,1484,1477,1,0,0,0,1484,1478,1,0,0,0,1484,1479,1,0,0,0,1484,1480,1,0,0,0,1484,1481,1,0,0,0,1484,1482,1,0,0,0,1484,1483,1,0,0,0,1485,107,1,0,0,0,1486,1497,3,172,86,0,1487,1497,3,286,143,0,1488,1497,3,298,149,0,1489,1497,3,302,151,0,1490,1497,3,304,152,0,1491,1497,3,260,130,0,1492,1497,3,276,138,0,1493,1497,3,280,140,0,1494,1497,3,372,186,0,1495,1497,3,374,187,0,1496,1486,1,0,0,0,1496,1487,1,0,0,0,1496,1488,1,0,0,0,1496,1489,1,0,0,0,1496,1490,1,0,0,0,1496,1491,1,0,0,0,1496,1492,1,0,0,0,1496,1493,1,0,0,0,1496,1494,1,0,0,0,1496,1495,1,0,0,0,1497,109,1,0,0,0,1498,1499,3,112,56,0,1499,1500,5,157,0,0,1500,1501,3,114,57,0,1501,1502,3,130,65,0,1502,111,1,0,0,0,1503,1505,5,2,0,0,1504,1503,1,0,0,0,1504,1505,1,0,0,0,1505,1509,1,0,0,0,1506,1508,3,416,208,0,1507,1506,1,0,0,0,1508,1511,1,0,0,0,1509,1507,1,0,0,0,1509,1510,1,0,0,0,1510,113,1,0,0,0,1511,1509,1,0,0,0,1512,1514,5,8,0,0,1513,1512,1,0,0,0,1513,1514,1,0,0,0,1514,1516,1,0,0,0,1515,1517,3,46,23,0,1516,1515,1,0,0,0,1516,1517,1,0,0,0,1517,1519,1,0,0,0,1518,1520,3,404,202,0,1519,1518,1,0,0,0,1519,1520,1,0,0,0,1520,1523,1,0,0,0,1521,1524,3,116,58,0,1522,1524,3,118,59,0,1523,1521,1,0,0,0,1523,1522,1,0,0,0,1524,1525,1,0,0,0,1525,1523,1,0,0,0,1525,1526,1,0,0,0,1526,1530,1,0,0,0,1527,1529,3,120,60,0,1528,1527,1,0,0,0,1529,1532,1,0,0,0,1530,1528,1,0,0,0,1530,1531,1,0,0,0,1531,115,1,0,0,0,1532,1530,1,0,0,0,1533,1534,7,11,0,0,1534,1539,3,136,68,0,1535,1536,5,200,0,0,1536,1538,3,136,68,0,1537,1535,1,0,0,0,1538,1541,1,0,0,0,1539,1537,1,0,0,0,1539,1540,1,0,0,0,1540,117,1,0,0,0,1541,1539,1,0,0,0,1542,1543,7,12,0,0,1543,1544,3,144,72,0,1544,119,1,0,0,0,1545,1550,3,122,61,0,1546,1550,3,124,62,0,1547,1550,3,126,63,0,1548,1550,3,128,64,0,1549,1545,1,0,0,0,1549,1546,1,0,0,0,1549,1547,1,0,0,0,1549,1548,1,0,0,0,1550,121,1,0,0,0,1551,1552,5,52,0,0,1552,1553,5,74,0,0,1553,1558,3,148,74,0,1554,1555,5,200,0,0,1555,1557,3,148,74,0,1556,1554,1,0,0,0,1557,1560,1,0,0,0,1558,1556,1,0,0,0,1558,1559,1,0,0,0,1559,123,1,0,0,0,1560,1558,1,0,0,0,1561,1562,5,160,0,0,1562,1567,3,150,75,0,1563,1564,5,200,0,0,1564,1566,3,150,75,0,1565,1563,1,0,0,0,1566,1569,1,0,0,0,1567,1565,1,0,0,0,1567,1568,1,0,0,0,1568,125,1,0,0,0,1569,1567,1,0,0,0,1570,1571,5,86,0,0,1571,1576,3,152,76,0,1572,1573,5,200,0,0,1573,1575,3,152,76,0,1574,1572,1,0,0,0,1575,1578,1,0,0,0,1576,1574,1,0,0,0,1576,1577,1,0,0,0,1577,127,1,0,0,0,1578,1576,1,0,0,0,1579,1580,5,50,0,0,1580,1585,3,154,77,0,1581,1582,5,200,0,0,1582,1584,3,154,77,0,1583,1581,1,0,0,0,1584,1587,1,0,0,0,1585,1583,1,0,0,0,1585,1586,1,0,0,0,1586,129,1,0,0,0,1587,1585,1,0,0,0,1588,1598,5,205,0,0,1589,1593,5,214,0,0,1590,1592,3,132,66,0,1591,1590,1,0,0,0,1592,1595,1,0,0,0,1593,1591,1,0,0,0,1593,1594,1,0,0,0,1594,1596,1,0,0,0,1595,1593,1,0,0,0,1596,1598,5,216,0,0,1597,1588,1,0,0,0,1597,1589,1,0,0,0,1598,131,1,0,0,0,1599,1604,3,84,42,0,1600,1604,3,156,78,0,1601,1604,3,88,44,0,1602,1604,3,92,46,0,1603,1599,1,0,0,0,1603,1600,1,0,0,0,1603,1601,1,0,0,0,1603,1602,1,0,0,0,1604,133,1,0,0,0,1605,1607,5,138,0,0,1606,1608,3,46,23,0,1607,1606,1,0,0,0,1607,1608,1,0,0,0,1608,1610,1,0,0,0,1609,1605,1,0,0,0,1609,1610,1,0,0,0,1610,1611,1,0,0,0,1611,1612,5,149,0,0,1612,1613,3,138,69,0,1613,1614,7,11,0,0,1614,1615,3,140,70,0,1615,1616,3,48,24,0,1616,135,1,0,0,0,1617,1618,3,140,70,0,1618,137,1,0,0,0,1619,1624,3,90,45,0,1620,1621,5,202,0,0,1621,1623,3,90,45,0,1622,1620,1,0,0,0,1623,1626,1,0,0,0,1624,1622,1,0,0,0,1624,1625,1,0,0,0,1625,139,1,0,0,0,1626,1624,1,0,0,0,1627,1632,3,90,45,0,1628,1629,5,202,0,0,1629,1631,3,90,45,0,1630,1628,1,0,0,0,1631,1634,1,0,0,0,1632,1630,1,0,0,0,1632,1633,1,0,0,0,1633,141,1,0,0,0,1634,1632,1,0,0,0,1635,1637,5,35,0,0,1636,1638,3,46,23,0,1637,1636,1,0,0,0,1637,1638,1,0,0,0,1638,1640,1,0,0,0,1639,1635,1,0,0,0,1639,1640,1,0,0,0,1640,1641,1,0,0,0,1641,1642,5,33,0,0,1642,1647,3,90,45,0,1643,1644,5,202,0,0,1644,1646,3,90,45,0,1645,1643,1,0,0,0,1646,1649,1,0,0,0,1647,1645,1,0,0,0,1647,1648,1,0,0,0,1648,1650,1,0,0,0,1649,1647,1,0,0,0,1650,1651,7,12,0,0,1651,1656,3,90,45,0,1652,1653,5,202,0,0,1653,1655,3,90,45,0,1654,1652,1,0,0,0,1655,1658,1,0,0,0,1656,1654,1,0,0,0,1656,1657,1,0,0,0,1657,1659,1,0,0,0,1658,1656,1,0,0,0,1659,1660,3,48,24,0,1660,143,1,0,0,0,1661,1666,3,90,45,0,1662,1663,5,202,0,0,1663,1665,3,90,45,0,1664,1662,1,0,0,0,1665,1668,1,0,0,0,1666,1664,1,0,0,0,1666,1667,1,0,0,0,1667,145,1,0,0,0,1668,1666,1,0,0,0,1669,1671,5,51,0,0,1670,1672,3,46,23,0,1671,1670,1,0,0,0,1671,1672,1,0,0,0,1672,1674,1,0,0,0,1673,1669,1,0,0,0,1673,1674,1,0,0,0,1674,1675,1,0,0,0,1675,1676,5,52,0,0,1676,1681,3,90,45,0,1677,1678,5,202,0,0,1678,1680,3,90,45,0,1679,1677,1,0,0,0,1680,1683,1,0,0,0,1681,1679,1,0,0,0,1681,1682,1,0,0,0,1682,1684,1,0,0,0,1683,1681,1,0,0,0,1684,1685,5,74,0,0,1685,1690,3,90,45,0,1686,1687,5,202,0,0,1687,1689,3,90,45,0,1688,1686,1,0,0,0,1689,1692,1,0,0,0,1690,1688,1,0,0,0,1690,1691,1,0,0,0,1691,1693,1,0,0,0,1692,1690,1,0,0,0,1693,1694,3,48,24,0,1694,147,1,0,0,0,1695,1700,3,90,45,0,1696,1697,5,202,0,0,1697,1699,3,90,45,0,1698,1696,1,0,0,0,1699,1702,1,0,0,0,1700,1698,1,0,0,0,1700,1701,1,0,0,0,1701,149,1,0,0,0,1702,1700,1,0,0,0,1703,1708,3,90,45,0,1704,1705,5,202,0,0,1705,1707,3,90,45,0,1706,1704,1,0,0,0,1707,1710,1,0,0,0,1708,1706,1,0,0,0,1708,1709,1,0,0,0,1709,151,1,0,0,0,1710,1708,1,0,0,0,1711,1716,3,90,45,0,1712,1713,5,202,0,0,1713,1715,3,90,45,0,1714,1712,1,0,0,0,1715,1718,1,0,0,0,1716,1714,1,0,0,0,1716,1717,1,0,0,0,1717,153,1,0,0,0,1718,1716,1,0,0,0,1719,1724,3,90,45,0,1720,1721,5,202,0,0,1721,1723,3,90,45,0,1722,1720,1,0,0,0,1723,1726,1,0,0,0,1724,1722,1,0,0,0,1724,1725,1,0,0,0,1725,155,1,0,0,0,1726,1724,1,0,0,0,1727,1730,3,158,79,0,1728,1730,3,160,80,0,1729,1727,1,0,0,0,1729,1728,1,0,0,0,1730,157,1,0,0,0,1731,1732,3,78,39,0,1732,1733,5,97,0,0,1733,1734,3,108,54,0,1734,159,1,0,0,0,1735,1736,3,78,39,0,1736,1737,3,108,54,0,1737,161,1,0,0,0,1738,1739,3,112,56,0,1739,1740,5,29,0,0,1740,1741,3,164,82,0,1741,1742,3,130,65,0,1742,163,1,0,0,0,1743,1745,5,8,0,0,1744,1743,1,0,0,0,1744,1745,1,0,0,0,1745,1747,1,0,0,0,1746,1748,3,46,23,0,1747,1746,1,0,0,0,1747,1748,1,0,0,0,1748,1750,1,0,0,0,1749,1751,3,404,202,0,1750,1749,1,0,0,0,1750,1751,1,0,0,0,1751,1754,1,0,0,0,1752,1755,3,166,83,0,1753,1755,3,118,59,0,1754,1752,1,0,0,0,1754,1753,1,0,0,0,1754,1755,1,0,0,0,1755,1759,1,0,0,0,1756,1758,3,120,60,0,1757,1756,1,0,0,0,1758,1761,1,0,0,0,1759,1757,1,0,0,0,1759,1760,1,0,0,0,1760,165,1,0,0,0,1761,1759,1,0,0,0,1762,1763,7,11,0,0,1763,1768,3,170,85,0,1764,1765,5,200,0,0,1765,1767,3,170,85,0,1766,1764,1,0,0,0,1767,1770,1,0,0,0,1768,1766,1,0,0,0,1768,1769,1,0,0,0,1769,167,1,0,0,0,1770,1768,1,0,0,0,1771,1773,5,138,0,0,1772,1774,3,46,23,0,1773,1772,1,0,0,0,1773,1774,1,0,0,0,1774,1776,1,0,0,0,1775,1771,1,0,0,0,1775,1776,1,0,0,0,1776,1777,1,0,0,0,1777,1778,5,145,0,0,1778,1779,3,90,45,0,1779,1780,7,11,0,0,1780,1781,3,90,45,0,1781,1782,3,48,24,0,1782,169,1,0,0,0,1783,1784,3,90,45,0,1784,171,1,0,0,0,1785,1788,3,178,89,0,1786,1789,5,65,0,0,1787,1789,3,416,208,0,1788,1786,1,0,0,0,1788,1787,1,0,0,0,1789,1791,1,0,0,0,1790,1792,3,186,93,0,1791,1790,1,0,0,0,1791,1792,1,0,0,0,1792,1800,1,0,0,0,1793,1796,3,174,87,0,1794,1796,3,176,88,0,1795,1793,1,0,0,0,1795,1794,1,0,0,0,1796,1797,1,0,0,0,1797,1798,3,186,93,0,1798,1800,1,0,0,0,1799,1785,1,0,0,0,1799,1795,1,0,0,0,1800,1802,1,0,0,0,1801,1803,3,394,197,0,1802,1801,1,0,0,0,1802,1803,1,0,0,0,1803,1804,1,0,0,0,1804,1805,3,130,65,0,1805,173,1,0,0,0,1806,1808,5,39,0,0,1807,1806,1,0,0,0,1807,1808,1,0,0,0,1808,1809,1,0,0,0,1809,1810,5,56,0,0,1810,175,1,0,0,0,1811,1813,3,184,92,0,1812,1811,1,0,0,0,1812,1813,1,0,0,0,1813,1815,1,0,0,0,1814,1816,5,49,0,0,1815,1814,1,0,0,0,1815,1816,1,0,0,0,1816,1818,1,0,0,0,1817,1819,5,2,0,0,1818,1817,1,0,0,0,1818,1819,1,0,0,0,1819,1821,1,0,0,0,1820,1822,7,13,0,0,1821,1820,1,0,0,0,1821,1822,1,0,0,0,1822,1824,1,0,0,0,1823,1825,7,14,0,0,1824,1823,1,0,0,0,1824,1825,1,0,0,0,1825,177,1,0,0,0,1826,1828,3,174,87,0,1827,1829,3,180,90,0,1828,1827,1,0,0,0,1828,1829,1,0,0,0,1829,1832,1,0,0,0,1830,1832,3,176,88,0,1831,1826,1,0,0,0,1831,1830,1,0,0,0,1832,1836,1,0,0,0,1833,1835,3,416,208,0,1834,1833,1,0,0,0,1835,1838,1,0,0,0,1836,1834,1,0,0,0,1836,1837,1,0,0,0,1837,179,1,0,0,0,1838,1836,1,0,0,0,1839,1840,3,182,91,0,1840,181,1,0,0,0,1841,1842,3,176,88,0,1842,1843,3,186,93,0,1843,1849,1,0,0,0,1844,1846,3,484,242,0,1845,1847,3,496,248,0,1846,1845,1,0,0,0,1846,1847,1,0,0,0,1847,1849,1,0,0,0,1848,1841,1,0,0,0,1848,1844,1,0,0,0,1849,183,1,0,0,0,1850,1851,7,15,0,0,1851,185,1,0,0,0,1852,1854,5,8,0,0,1853,1852,1,0,0,0,1853,1854,1,0,0,0,1854,1862,1,0,0,0,1855,1858,3,188,94,0,1856,1859,3,198,99,0,1857,1859,3,118,59,0,1858,1856,1,0,0,0,1858,1857,1,0,0,0,1858,1859,1,0,0,0,1859,1863,1,0,0,0,1860,1863,3,198,99,0,1861,1863,3,118,59,0,1862,1855,1,0,0,0,1862,1860,1,0,0,0,1862,1861,1,0,0,0,1863,1867,1,0,0,0,1864,1866,3,190,95,0,1865,1864,1,0,0,0,1866,1869,1,0,0,0,1867,1865,1,0,0,0,1867,1868,1,0,0,0,1868,187,1,0,0,0,1869,1867,1,0,0,0,1870,1871,5,206,0,0,1871,1872,3,44,22,0,1872,1874,5,208,0,0,1873,1875,3,44,22,0,1874,1873,1,0,0,0,1874,1875,1,0,0,0,1875,1878,1,0,0,0,1876,1878,3,44,22,0,1877,1870,1,0,0,0,1877,1876,1,0,0,0,1878,189,1,0,0,0,1879,1884,3,120,60,0,1880,1884,3,192,96,0,1881,1884,3,194,97,0,1882,1884,3,196,98,0,1883,1879,1,0,0,0,1883,1880,1,0,0,0,1883,1881,1,0,0,0,1883,1882,1,0,0,0,1884,191,1,0,0,0,1885,1886,5,27,0,0,1886,1891,3,90,45,0,1887,1888,5,202,0,0,1888,1890,3,90,45,0,1889,1887,1,0,0,0,1890,1893,1,0,0,0,1891,1889,1,0,0,0,1891,1892,1,0,0,0,1892,193,1,0,0,0,1893,1891,1,0,0,0,1894,1895,5,88,0,0,1895,1896,5,111,0,0,1896,1897,3,244,122,0,1897,195,1,0,0,0,1898,1899,5,66,0,0,1899,1900,5,24,0,0,1900,1905,3,248,124,0,1901,1902,5,200,0,0,1902,1904,3,248,124,0,1903,1901,1,0,0,0,1904,1907,1,0,0,0,1905,1903,1,0,0,0,1905,1906,1,0,0,0,1906,197,1,0,0,0,1907,1905,1,0,0,0,1908,1910,3,202,101,0,1909,1908,1,0,0,0,1910,1911,1,0,0,0,1911,1909,1,0,0,0,1911,1912,1,0,0,0,1912,1914,1,0,0,0,1913,1915,3,200,100,0,1914,1913,1,0,0,0,1914,1915,1,0,0,0,1915,1919,1,0,0,0,1916,1918,3,202,101,0,1917,1916,1,0,0,0,1918,1921,1,0,0,0,1919,1917,1,0,0,0,1919,1920,1,0,0,0,1920,1930,1,0,0,0,1921,1919,1,0,0,0,1922,1926,3,200,100,0,1923,1925,3,202,101,0,1924,1923,1,0,0,0,1925,1928,1,0,0,0,1926,1924,1,0,0,0,1926,1927,1,0,0,0,1927,1930,1,0,0,0,1928,1926,1,0,0,0,1929,1909,1,0,0,0,1929,1922,1,0,0,0,1930,199,1,0,0,0,1931,1940,3,404,202,0,1932,1934,5,113,0,0,1933,1935,5,106,0,0,1934,1933,1,0,0,0,1934,1935,1,0,0,0,1935,1941,1,0,0,0,1936,1938,5,106,0,0,1937,1939,5,113,0,0,1938,1937,1,0,0,0,1938,1939,1,0,0,0,1939,1941,1,0,0,0,1940,1932,1,0,0,0,1940,1936,1,0,0,0,1940,1941,1,0,0,0,1941,1953,1,0,0,0,1942,1944,5,113,0,0,1943,1945,5,106,0,0,1944,1943,1,0,0,0,1944,1945,1,0,0,0,1945,1951,1,0,0,0,1946,1948,5,106,0,0,1947,1949,5,113,0,0,1948,1947,1,0,0,0,1948,1949,1,0,0,0,1949,1951,1,0,0,0,1950,1942,1,0,0,0,1950,1946,1,0,0,0,1951,1953,1,0,0,0,1952,1931,1,0,0,0,1952,1950,1,0,0,0,1953,201,1,0,0,0,1954,1960,3,204,102,0,1955,1960,3,208,104,0,1956,1960,3,212,106,0,1957,1960,3,214,107,0,1958,1960,3,216,108,0,1959,1954,1,0,0,0,1959,1955,1,0,0,0,1959,1956,1,0,0,0,1959,1957,1,0,0,0,1959,1958,1,0,0,0,1960,203,1,0,0,0,1961,1966,3,206,103,0,1962,1963,5,200,0,0,1963,1965,3,222,111,0,1964,1962,1,0,0,0,1965,1968,1,0,0,0,1966,1964,1,0,0,0,1966,1967,1,0,0,0,1967,1978,1,0,0,0,1968,1966,1,0,0,0,1969,1974,3,206,103,0,1970,1971,5,200,0,0,1971,1973,3,220,110,0,1972,1970,1,0,0,0,1973,1976,1,0,0,0,1974,1972,1,0,0,0,1974,1975,1,0,0,0,1975,1978,1,0,0,0,1976,1974,1,0,0,0,1977,1961,1,0,0,0,1977,1969,1,0,0,0,1978,205,1,0,0,0,1979,1983,5,204,0,0,1980,1981,5,158,0,0,1981,1983,5,24,0,0,1982,1979,1,0,0,0,1982,1980,1,0,0,0,1983,1984,1,0,0,0,1984,1992,3,222,111,0,1985,1989,5,204,0,0,1986,1987,5,47,0,0,1987,1989,5,24,0,0,1988,1985,1,0,0,0,1988,1986,1,0,0,0,1989,1990,1,0,0,0,1990,1992,3,220,110,0,1991,1982,1,0,0,0,1991,1988,1,0,0,0,1992,207,1,0,0,0,1993,1998,3,210,105,0,1994,1995,5,200,0,0,1995,1997,3,226,113,0,1996,1994,1,0,0,0,1997,2e3,1,0,0,0,1998,1996,1,0,0,0,1998,1999,1,0,0,0,1999,209,1,0,0,0,2e3,1998,1,0,0,0,2001,2002,7,16,0,0,2002,2003,3,226,113,0,2003,211,1,0,0,0,2004,2005,7,17,0,0,2005,2006,3,228,114,0,2006,213,1,0,0,0,2007,2008,7,18,0,0,2008,2009,3,230,115,0,2009,215,1,0,0,0,2010,2015,3,218,109,0,2011,2012,5,200,0,0,2012,2014,3,234,117,0,2013,2011,1,0,0,0,2014,2017,1,0,0,0,2015,2013,1,0,0,0,2015,2016,1,0,0,0,2016,217,1,0,0,0,2017,2015,1,0,0,0,2018,2019,7,19,0,0,2019,2020,3,234,117,0,2020,219,1,0,0,0,2021,2023,5,138,0,0,2022,2024,3,46,23,0,2023,2022,1,0,0,0,2023,2024,1,0,0,0,2024,2026,1,0,0,0,2025,2021,1,0,0,0,2025,2026,1,0,0,0,2026,2027,1,0,0,0,2027,2028,5,159,0,0,2028,2032,3,90,45,0,2029,2033,5,204,0,0,2030,2031,5,158,0,0,2031,2033,5,24,0,0,2032,2029,1,0,0,0,2032,2030,1,0,0,0,2033,2034,1,0,0,0,2034,2035,3,140,70,0,2035,2036,3,48,24,0,2036,2040,1,0,0,0,2037,2040,3,222,111,0,2038,2040,3,580,290,0,2039,2025,1,0,0,0,2039,2037,1,0,0,0,2039,2038,1,0,0,0,2040,221,1,0,0,0,2041,2046,3,90,45,0,2042,2043,5,202,0,0,2043,2045,3,90,45,0,2044,2042,1,0,0,0,2045,2048,1,0,0,0,2046,2044,1,0,0,0,2046,2047,1,0,0,0,2047,223,1,0,0,0,2048,2046,1,0,0,0,2049,2051,5,138,0,0,2050,2052,3,46,23,0,2051,2050,1,0,0,0,2051,2052,1,0,0,0,2052,2054,1,0,0,0,2053,2049,1,0,0,0,2053,2054,1,0,0,0,2054,2055,1,0,0,0,2055,2056,5,147,0,0,2056,2057,3,138,69,0,2057,2058,7,16,0,0,2058,2059,3,140,70,0,2059,2060,3,48,24,0,2060,225,1,0,0,0,2061,2066,3,90,45,0,2062,2063,5,202,0,0,2063,2065,3,90,45,0,2064,2062,1,0,0,0,2065,2068,1,0,0,0,2066,2064,1,0,0,0,2066,2067,1,0,0,0,2067,227,1,0,0,0,2068,2066,1,0,0,0,2069,2074,3,90,45,0,2070,2071,5,202,0,0,2071,2073,3,90,45,0,2072,2070,1,0,0,0,2073,2076,1,0,0,0,2074,2072,1,0,0,0,2074,2075,1,0,0,0,2075,229,1,0,0,0,2076,2074,1,0,0,0,2077,2082,3,90,45,0,2078,2079,5,202,0,0,2079,2081,3,90,45,0,2080,2078,1,0,0,0,2081,2084,1,0,0,0,2082,2080,1,0,0,0,2082,2083,1,0,0,0,2083,231,1,0,0,0,2084,2082,1,0,0,0,2085,2087,5,138,0,0,2086,2088,3,46,23,0,2087,2086,1,0,0,0,2087,2088,1,0,0,0,2088,2090,1,0,0,0,2089,2085,1,0,0,0,2089,2090,1,0,0,0,2090,2091,1,0,0,0,2091,2092,5,126,0,0,2092,2093,3,138,69,0,2093,2094,7,19,0,0,2094,2095,3,140,70,0,2095,2096,3,48,24,0,2096,233,1,0,0,0,2097,2102,3,90,45,0,2098,2099,5,202,0,0,2099,2101,3,90,45,0,2100,2098,1,0,0,0,2101,2104,1,0,0,0,2102,2100,1,0,0,0,2102,2103,1,0,0,0,2103,235,1,0,0,0,2104,2102,1,0,0,0,2105,2114,3,238,119,0,2106,2109,3,240,120,0,2107,2108,5,202,0,0,2108,2110,3,240,120,0,2109,2107,1,0,0,0,2110,2111,1,0,0,0,2111,2109,1,0,0,0,2111,2112,1,0,0,0,2112,2114,1,0,0,0,2113,2105,1,0,0,0,2113,2106,1,0,0,0,2114,237,1,0,0,0,2115,2118,3,240,120,0,2116,2117,5,202,0,0,2117,2119,3,240,120,0,2118,2116,1,0,0,0,2119,2120,1,0,0,0,2120,2118,1,0,0,0,2120,2121,1,0,0,0,2121,239,1,0,0,0,2122,2123,3,90,45,0,2123,241,1,0,0,0,2124,2126,5,89,0,0,2125,2127,3,46,23,0,2126,2125,1,0,0,0,2126,2127,1,0,0,0,2127,2129,1,0,0,0,2128,2124,1,0,0,0,2128,2129,1,0,0,0,2129,2130,1,0,0,0,2130,2131,5,88,0,0,2131,2136,3,90,45,0,2132,2133,5,202,0,0,2133,2135,3,90,45,0,2134,2132,1,0,0,0,2135,2138,1,0,0,0,2136,2134,1,0,0,0,2136,2137,1,0,0,0,2137,2139,1,0,0,0,2138,2136,1,0,0,0,2139,2140,5,111,0,0,2140,2145,3,90,45,0,2141,2142,5,202,0,0,2142,2144,3,90,45,0,2143,2141,1,0,0,0,2144,2147,1,0,0,0,2145,2143,1,0,0,0,2145,2146,1,0,0,0,2146,2148,1,0,0,0,2147,2145,1,0,0,0,2148,2149,3,48,24,0,2149,243,1,0,0,0,2150,2155,3,90,45,0,2151,2152,5,202,0,0,2152,2154,3,90,45,0,2153,2151,1,0,0,0,2154,2157,1,0,0,0,2155,2153,1,0,0,0,2155,2156,1,0,0,0,2156,245,1,0,0,0,2157,2155,1,0,0,0,2158,2163,5,67,0,0,2159,2161,3,46,23,0,2160,2159,1,0,0,0,2160,2161,1,0,0,0,2161,2162,1,0,0,0,2162,2164,5,111,0,0,2163,2160,1,0,0,0,2163,2164,1,0,0,0,2164,2165,1,0,0,0,2165,2166,3,90,45,0,2166,2167,5,24,0,0,2167,2168,3,90,45,0,2168,2169,3,48,24,0,2169,247,1,0,0,0,2170,2171,3,90,45,0,2171,249,1,0,0,0,2172,2173,3,112,56,0,2173,2174,5,43,0,0,2174,2175,3,164,82,0,2175,2176,3,130,65,0,2176,251,1,0,0,0,2177,2178,3,112,56,0,2178,2179,5,28,0,0,2179,2180,3,164,82,0,2180,2181,3,130,65,0,2181,253,1,0,0,0,2182,2183,3,112,56,0,2183,2184,5,144,0,0,2184,2185,3,164,82,0,2185,2186,3,130,65,0,2186,255,1,0,0,0,2187,2188,3,112,56,0,2188,2189,5,16,0,0,2189,2190,3,164,82,0,2190,2191,3,130,65,0,2191,257,1,0,0,0,2192,2193,3,112,56,0,2193,2194,5,16,0,0,2194,2195,5,144,0,0,2195,2196,3,164,82,0,2196,2197,3,130,65,0,2197,259,1,0,0,0,2198,2199,3,178,89,0,2199,2207,5,38,0,0,2200,2202,3,186,93,0,2201,2200,1,0,0,0,2201,2202,1,0,0,0,2202,2204,1,0,0,0,2203,2205,3,394,197,0,2204,2203,1,0,0,0,2204,2205,1,0,0,0,2205,2208,1,0,0,0,2206,2208,3,262,131,0,2207,2201,1,0,0,0,2207,2206,1,0,0,0,2208,2209,1,0,0,0,2209,2210,3,130,65,0,2210,261,1,0,0,0,2211,2214,3,264,132,0,2212,2214,3,266,133,0,2213,2211,1,0,0,0,2213,2212,1,0,0,0,2214,263,1,0,0,0,2215,2217,3,186,93,0,2216,2215,1,0,0,0,2216,2217,1,0,0,0,2217,2218,1,0,0,0,2218,2224,5,74,0,0,2219,2221,5,8,0,0,2220,2222,5,74,0,0,2221,2220,1,0,0,0,2221,2222,1,0,0,0,2222,2224,1,0,0,0,2223,2216,1,0,0,0,2223,2219,1,0,0,0,2223,2224,1,0,0,0,2224,2225,1,0,0,0,2225,2226,3,268,134,0,2226,2227,5,154,0,0,2227,2228,3,268,134,0,2228,265,1,0,0,0,2229,2231,3,186,93,0,2230,2229,1,0,0,0,2230,2231,1,0,0,0,2231,2232,1,0,0,0,2232,2233,5,196,0,0,2233,2234,3,268,134,0,2234,2235,5,200,0,0,2235,2240,3,268,134,0,2236,2237,5,200,0,0,2237,2239,3,268,134,0,2238,2236,1,0,0,0,2239,2242,1,0,0,0,2240,2238,1,0,0,0,2240,2241,1,0,0,0,2241,2243,1,0,0,0,2242,2240,1,0,0,0,2243,2244,5,197,0,0,2244,267,1,0,0,0,2245,2246,3,270,135,0,2246,269,1,0,0,0,2247,2249,3,272,136,0,2248,2247,1,0,0,0,2248,2249,1,0,0,0,2249,2253,1,0,0,0,2250,2251,3,44,22,0,2251,2252,7,17,0,0,2252,2254,1,0,0,0,2253,2250,1,0,0,0,2253,2254,1,0,0,0,2254,2255,1,0,0,0,2255,2256,3,228,114,0,2256,271,1,0,0,0,2257,2258,3,274,137,0,2258,273,1,0,0,0,2259,2260,3,404,202,0,2260,275,1,0,0,0,2261,2262,3,178,89,0,2262,2263,5,22,0,0,2263,2264,3,278,139,0,2264,2265,3,130,65,0,2265,277,1,0,0,0,2266,2272,3,186,93,0,2267,2268,5,111,0,0,2268,2269,3,268,134,0,2269,2270,5,207,0,0,2270,2271,3,268,134,0,2271,2273,1,0,0,0,2272,2267,1,0,0,0,2272,2273,1,0,0,0,2273,2287,1,0,0,0,2274,2276,5,8,0,0,2275,2274,1,0,0,0,2275,2276,1,0,0,0,2276,2284,1,0,0,0,2277,2279,5,111,0,0,2278,2277,1,0,0,0,2278,2279,1,0,0,0,2279,2280,1,0,0,0,2280,2281,3,268,134,0,2281,2282,5,207,0,0,2282,2283,3,268,134,0,2283,2285,1,0,0,0,2284,2278,1,0,0,0,2284,2285,1,0,0,0,2285,2287,1,0,0,0,2286,2266,1,0,0,0,2286,2275,1,0,0,0,2287,279,1,0,0,0,2288,2289,3,178,89,0,2289,2290,5,150,0,0,2290,2291,3,282,141,0,2291,2292,3,130,65,0,2292,281,1,0,0,0,2293,2299,3,186,93,0,2294,2295,5,69,0,0,2295,2296,3,268,134,0,2296,2297,5,152,0,0,2297,2298,3,268,134,0,2298,2300,1,0,0,0,2299,2294,1,0,0,0,2299,2300,1,0,0,0,2300,2314,1,0,0,0,2301,2303,5,8,0,0,2302,2301,1,0,0,0,2302,2303,1,0,0,0,2303,2311,1,0,0,0,2304,2306,5,69,0,0,2305,2304,1,0,0,0,2305,2306,1,0,0,0,2306,2307,1,0,0,0,2307,2308,3,268,134,0,2308,2309,5,152,0,0,2309,2310,3,268,134,0,2310,2312,1,0,0,0,2311,2305,1,0,0,0,2311,2312,1,0,0,0,2312,2314,1,0,0,0,2313,2293,1,0,0,0,2313,2302,1,0,0,0,2314,283,1,0,0,0,2315,2316,3,112,56,0,2316,2317,5,20,0,0,2317,2318,3,164,82,0,2318,2319,3,130,65,0,2319,285,1,0,0,0,2320,2321,3,178,89,0,2321,2322,5,143,0,0,2322,2324,3,186,93,0,2323,2325,3,394,197,0,2324,2323,1,0,0,0,2324,2325,1,0,0,0,2325,2326,1,0,0,0,2326,2327,3,130,65,0,2327,287,1,0,0,0,2328,2329,3,112,56,0,2329,2330,5,75,0,0,2330,2331,3,164,82,0,2331,2332,3,290,145,0,2332,289,1,0,0,0,2333,2339,5,205,0,0,2334,2335,5,214,0,0,2335,2336,3,292,146,0,2336,2337,5,216,0,0,2337,2339,1,0,0,0,2338,2333,1,0,0,0,2338,2334,1,0,0,0,2339,291,1,0,0,0,2340,2343,3,132,66,0,2341,2343,3,294,147,0,2342,2340,1,0,0,0,2342,2341,1,0,0,0,2343,2346,1,0,0,0,2344,2342,1,0,0,0,2344,2345,1,0,0,0,2345,2348,1,0,0,0,2346,2344,1,0,0,0,2347,2349,3,296,148,0,2348,2347,1,0,0,0,2348,2349,1,0,0,0,2349,293,1,0,0,0,2350,2351,3,78,39,0,2351,2352,5,134,0,0,2352,2353,3,108,54,0,2353,295,1,0,0,0,2354,2356,3,78,39,0,2355,2354,1,0,0,0,2355,2356,1,0,0,0,2356,2357,1,0,0,0,2357,2358,3,0,0,0,2358,297,1,0,0,0,2359,2360,3,178,89,0,2360,2361,5,63,0,0,2361,2363,3,186,93,0,2362,2364,3,394,197,0,2363,2362,1,0,0,0,2363,2364,1,0,0,0,2364,2365,1,0,0,0,2365,2366,3,290,145,0,2366,299,1,0,0,0,2367,2368,3,112,56,0,2368,2369,5,121,0,0,2369,2370,3,164,82,0,2370,2371,3,290,145,0,2371,301,1,0,0,0,2372,2373,3,178,89,0,2373,2374,5,23,0,0,2374,2376,3,186,93,0,2375,2377,3,394,197,0,2376,2375,1,0,0,0,2376,2377,1,0,0,0,2377,2378,1,0,0,0,2378,2379,3,290,145,0,2379,303,1,0,0,0,2380,2381,3,178,89,0,2381,2383,5,87,0,0,2382,2384,7,8,0,0,2383,2382,1,0,0,0,2383,2384,1,0,0,0,2384,2385,1,0,0,0,2385,2387,3,186,93,0,2386,2388,3,394,197,0,2387,2386,1,0,0,0,2387,2388,1,0,0,0,2388,2389,1,0,0,0,2389,2390,3,290,145,0,2390,305,1,0,0,0,2391,2392,3,0,0,0,2392,307,1,0,0,0,2393,2394,3,348,174,0,2394,309,1,0,0,0,2395,2396,3,2,1,0,2396,311,1,0,0,0,2397,2398,3,2,1,0,2398,313,1,0,0,0,2399,2400,3,90,45,0,2400,315,1,0,0,0,2401,2402,3,978,489,0,2402,317,1,0,0,0,2403,2404,3,306,153,0,2404,2405,5,200,0,0,2405,2406,3,320,160,0,2406,319,1,0,0,0,2407,2408,3,4,2,0,2408,321,1,0,0,0,2409,2410,3,324,162,0,2410,323,1,0,0,0,2411,2412,3,326,163,0,2412,325,1,0,0,0,2413,2414,3,18,9,0,2414,327,1,0,0,0,2415,2416,3,330,165,0,2416,329,1,0,0,0,2417,2418,3,332,166,0,2418,331,1,0,0,0,2419,2420,3,334,167,0,2420,333,1,0,0,0,2421,2422,3,336,168,0,2422,335,1,0,0,0,2423,2424,3,338,169,0,2424,337,1,0,0,0,2425,2426,3,314,157,0,2426,339,1,0,0,0,2427,2432,3,90,45,0,2428,2429,5,202,0,0,2429,2431,3,90,45,0,2430,2428,1,0,0,0,2431,2434,1,0,0,0,2432,2430,1,0,0,0,2432,2433,1,0,0,0,2433,341,1,0,0,0,2434,2432,1,0,0,0,2435,2438,3,238,119,0,2436,2438,3,236,118,0,2437,2435,1,0,0,0,2437,2436,1,0,0,0,2438,343,1,0,0,0,2439,2440,3,346,173,0,2440,345,1,0,0,0,2441,2442,3,90,45,0,2442,347,1,0,0,0,2443,2444,3,90,45,0,2444,349,1,0,0,0,2445,2446,3,352,176,0,2446,351,1,0,0,0,2447,2448,3,20,10,0,2448,353,1,0,0,0,2449,2454,3,90,45,0,2450,2451,5,202,0,0,2451,2453,3,90,45,0,2452,2450,1,0,0,0,2453,2456,1,0,0,0,2454,2452,1,0,0,0,2454,2455,1,0,0,0,2455,355,1,0,0,0,2456,2454,1,0,0,0,2457,2458,3,90,45,0,2458,357,1,0,0,0,2459,2460,3,26,13,0,2460,359,1,0,0,0,2461,2462,3,90,45,0,2462,361,1,0,0,0,2463,2464,3,364,182,0,2464,363,1,0,0,0,2465,2466,5,214,0,0,2466,2467,3,292,146,0,2467,2468,5,216,0,0,2468,365,1,0,0,0,2469,2470,7,8,0,0,2470,367,1,0,0,0,2471,2473,5,221,0,0,2472,2471,1,0,0,0,2472,2473,1,0,0,0,2473,2474,1,0,0,0,2474,2475,5,202,0,0,2475,2478,7,20,0,0,2476,2478,5,222,0,0,2477,2472,1,0,0,0,2477,2476,1,0,0,0,2478,369,1,0,0,0,2479,2480,3,112,56,0,2480,2481,5,84,0,0,2481,2482,3,164,82,0,2482,2483,3,130,65,0,2483,371,1,0,0,0,2484,2485,3,178,89,0,2485,2486,5,70,0,0,2486,2487,3,376,188,0,2487,2488,3,130,65,0,2488,373,1,0,0,0,2489,2490,3,178,89,0,2490,2491,5,150,0,0,2491,2492,5,70,0,0,2492,2493,3,376,188,0,2493,2494,3,130,65,0,2494,375,1,0,0,0,2495,2497,3,186,93,0,2496,2498,3,394,197,0,2497,2496,1,0,0,0,2497,2498,1,0,0,0,2498,2501,1,0,0,0,2499,2500,5,111,0,0,2500,2502,3,378,189,0,2501,2499,1,0,0,0,2501,2502,1,0,0,0,2502,2508,1,0,0,0,2503,2504,5,74,0,0,2504,2505,3,384,192,0,2505,2506,5,154,0,0,2506,2507,3,384,192,0,2507,2509,1,0,0,0,2508,2503,1,0,0,0,2508,2509,1,0,0,0,2509,2535,1,0,0,0,2510,2512,5,8,0,0,2511,2510,1,0,0,0,2511,2512,1,0,0,0,2512,2513,1,0,0,0,2513,2514,3,384,192,0,2514,2515,5,154,0,0,2515,2516,3,384,192,0,2516,2535,1,0,0,0,2517,2519,3,496,248,0,2518,2517,1,0,0,0,2518,2519,1,0,0,0,2519,2521,1,0,0,0,2520,2522,3,394,197,0,2521,2520,1,0,0,0,2521,2522,1,0,0,0,2522,2525,1,0,0,0,2523,2524,5,111,0,0,2524,2526,3,646,323,0,2525,2523,1,0,0,0,2525,2526,1,0,0,0,2526,2532,1,0,0,0,2527,2528,5,74,0,0,2528,2529,3,384,192,0,2529,2530,5,154,0,0,2530,2531,3,384,192,0,2531,2533,1,0,0,0,2532,2527,1,0,0,0,2532,2533,1,0,0,0,2533,2535,1,0,0,0,2534,2495,1,0,0,0,2534,2511,1,0,0,0,2534,2518,1,0,0,0,2535,377,1,0,0,0,2536,2537,3,380,190,0,2537,379,1,0,0,0,2538,2540,3,46,23,0,2539,2538,1,0,0,0,2539,2540,1,0,0,0,2540,2541,1,0,0,0,2541,2558,3,394,197,0,2542,2544,3,46,23,0,2543,2542,1,0,0,0,2543,2544,1,0,0,0,2544,2545,1,0,0,0,2545,2547,3,382,191,0,2546,2548,3,394,197,0,2547,2546,1,0,0,0,2547,2548,1,0,0,0,2548,2558,1,0,0,0,2549,2551,3,222,111,0,2550,2552,3,404,202,0,2551,2550,1,0,0,0,2551,2552,1,0,0,0,2552,2558,1,0,0,0,2553,2555,3,404,202,0,2554,2556,3,222,111,0,2555,2554,1,0,0,0,2555,2556,1,0,0,0,2556,2558,1,0,0,0,2557,2539,1,0,0,0,2557,2543,1,0,0,0,2557,2549,1,0,0,0,2557,2553,1,0,0,0,2558,381,1,0,0,0,2559,2561,3,202,101,0,2560,2559,1,0,0,0,2561,2562,1,0,0,0,2562,2560,1,0,0,0,2562,2563,1,0,0,0,2563,2565,1,0,0,0,2564,2566,3,200,100,0,2565,2564,1,0,0,0,2565,2566,1,0,0,0,2566,2570,1,0,0,0,2567,2569,3,202,101,0,2568,2567,1,0,0,0,2569,2572,1,0,0,0,2570,2568,1,0,0,0,2570,2571,1,0,0,0,2571,2580,1,0,0,0,2572,2570,1,0,0,0,2573,2575,3,200,100,0,2574,2576,3,202,101,0,2575,2574,1,0,0,0,2576,2577,1,0,0,0,2577,2575,1,0,0,0,2577,2578,1,0,0,0,2578,2580,1,0,0,0,2579,2560,1,0,0,0,2579,2573,1,0,0,0,2580,383,1,0,0,0,2581,2582,3,386,193,0,2582,385,1,0,0,0,2583,2588,3,90,45,0,2584,2585,5,202,0,0,2585,2587,3,90,45,0,2586,2584,1,0,0,0,2587,2590,1,0,0,0,2588,2586,1,0,0,0,2588,2589,1,0,0,0,2589,387,1,0,0,0,2590,2588,1,0,0,0,2591,2592,3,390,195,0,2592,389,1,0,0,0,2593,2594,3,392,196,0,2594,391,1,0,0,0,2595,2596,3,90,45,0,2596,393,1,0,0,0,2597,2598,3,396,198,0,2598,395,1,0,0,0,2599,2606,5,207,0,0,2600,2606,5,184,0,0,2601,2603,5,46,0,0,2602,2604,7,21,0,0,2603,2602,1,0,0,0,2603,2604,1,0,0,0,2604,2606,1,0,0,0,2605,2599,1,0,0,0,2605,2600,1,0,0,0,2605,2601,1,0,0,0,2606,2607,1,0,0,0,2607,2608,3,0,0,0,2608,397,1,0,0,0,2609,2612,3,400,200,0,2610,2612,3,402,201,0,2611,2609,1,0,0,0,2611,2610,1,0,0,0,2612,399,1,0,0,0,2613,2615,5,103,0,0,2614,2616,3,46,23,0,2615,2614,1,0,0,0,2615,2616,1,0,0,0,2616,2617,1,0,0,0,2617,2618,3,210,105,0,2618,2619,3,130,65,0,2619,401,1,0,0,0,2620,2622,5,103,0,0,2621,2623,3,46,23,0,2622,2621,1,0,0,0,2622,2623,1,0,0,0,2623,2624,1,0,0,0,2624,2625,3,408,204,0,2625,2626,3,130,65,0,2626,2637,1,0,0,0,2627,2631,5,211,0,0,2628,2629,3,410,205,0,2629,2630,5,181,0,0,2630,2632,1,0,0,0,2631,2628,1,0,0,0,2631,2632,1,0,0,0,2632,2633,1,0,0,0,2633,2634,3,410,205,0,2634,2635,5,212,0,0,2635,2637,1,0,0,0,2636,2620,1,0,0,0,2636,2627,1,0,0,0,2637,403,1,0,0,0,2638,2641,3,406,203,0,2639,2641,3,402,201,0,2640,2638,1,0,0,0,2640,2639,1,0,0,0,2641,405,1,0,0,0,2642,2643,3,408,204,0,2643,407,1,0,0,0,2644,2648,5,211,0,0,2645,2646,3,410,205,0,2646,2647,5,181,0,0,2647,2649,1,0,0,0,2648,2645,1,0,0,0,2648,2649,1,0,0,0,2649,2650,1,0,0,0,2650,2651,3,410,205,0,2651,2652,5,212,0,0,2652,409,1,0,0,0,2653,2656,3,28,14,0,2654,2656,3,10,5,0,2655,2653,1,0,0,0,2655,2654,1,0,0,0,2656,411,1,0,0,0,2657,2658,3,112,56,0,2658,2659,5,101,0,0,2659,2660,3,164,82,0,2660,2661,3,130,65,0,2661,413,1,0,0,0,2662,2663,5,192,0,0,2663,2667,3,418,209,0,2664,2665,5,192,0,0,2665,2667,3,956,478,0,2666,2662,1,0,0,0,2666,2664,1,0,0,0,2667,415,1,0,0,0,2668,2669,5,192,0,0,2669,2673,3,418,209,0,2670,2671,5,192,0,0,2671,2673,3,956,478,0,2672,2668,1,0,0,0,2672,2670,1,0,0,0,2673,417,1,0,0,0,2674,2675,3,222,111,0,2675,419,1,0,0,0,2676,2678,3,416,208,0,2677,2676,1,0,0,0,2678,2681,1,0,0,0,2679,2677,1,0,0,0,2679,2680,1,0,0,0,2680,2682,1,0,0,0,2681,2679,1,0,0,0,2682,2683,7,22,0,0,2683,2693,3,422,211,0,2684,2685,5,1,0,0,2685,2690,3,56,28,0,2686,2687,5,200,0,0,2687,2689,3,56,28,0,2688,2686,1,0,0,0,2689,2692,1,0,0,0,2690,2688,1,0,0,0,2690,2691,1,0,0,0,2691,2694,1,0,0,0,2692,2690,1,0,0,0,2693,2684,1,0,0,0,2693,2694,1,0,0,0,2694,2695,1,0,0,0,2695,2696,3,424,212,0,2696,421,1,0,0,0,2697,2699,3,46,23,0,2698,2697,1,0,0,0,2698,2699,1,0,0,0,2699,2703,1,0,0,0,2700,2704,5,204,0,0,2701,2702,5,158,0,0,2702,2704,5,24,0,0,2703,2700,1,0,0,0,2703,2701,1,0,0,0,2704,2706,1,0,0,0,2705,2698,1,0,0,0,2705,2706,1,0,0,0,2706,2707,1,0,0,0,2707,2708,3,222,111,0,2708,423,1,0,0,0,2709,2730,5,205,0,0,2710,2714,5,214,0,0,2711,2713,3,426,213,0,2712,2711,1,0,0,0,2713,2716,1,0,0,0,2714,2712,1,0,0,0,2714,2715,1,0,0,0,2715,2717,1,0,0,0,2716,2714,1,0,0,0,2717,2730,5,216,0,0,2718,2725,5,214,0,0,2719,2724,3,470,235,0,2720,2724,3,962,481,0,2721,2724,3,88,44,0,2722,2724,3,92,46,0,2723,2719,1,0,0,0,2723,2720,1,0,0,0,2723,2721,1,0,0,0,2723,2722,1,0,0,0,2724,2727,1,0,0,0,2725,2723,1,0,0,0,2725,2726,1,0,0,0,2726,2728,1,0,0,0,2727,2725,1,0,0,0,2728,2730,5,216,0,0,2729,2709,1,0,0,0,2729,2710,1,0,0,0,2729,2718,1,0,0,0,2730,425,1,0,0,0,2731,2736,3,84,42,0,2732,2736,3,428,214,0,2733,2736,3,88,44,0,2734,2736,3,92,46,0,2735,2731,1,0,0,0,2735,2732,1,0,0,0,2735,2733,1,0,0,0,2735,2734,1,0,0,0,2736,427,1,0,0,0,2737,2738,3,430,215,0,2738,429,1,0,0,0,2739,2741,5,65,0,0,2740,2739,1,0,0,0,2740,2741,1,0,0,0,2741,2743,1,0,0,0,2742,2744,7,19,0,0,2743,2742,1,0,0,0,2743,2744,1,0,0,0,2744,2745,1,0,0,0,2745,2747,3,234,117,0,2746,2748,3,198,99,0,2747,2746,1,0,0,0,2747,2748,1,0,0,0,2748,2750,1,0,0,0,2749,2751,3,394,197,0,2750,2749,1,0,0,0,2750,2751,1,0,0,0,2751,2752,1,0,0,0,2752,2753,3,424,212,0,2753,431,1,0,0,0,2754,2756,3,416,208,0,2755,2754,1,0,0,0,2756,2759,1,0,0,0,2757,2755,1,0,0,0,2757,2758,1,0,0,0,2758,2760,1,0,0,0,2759,2757,1,0,0,0,2760,2761,3,436,218,0,2761,2762,3,438,219,0,2762,433,1,0,0,0,2763,2765,5,141,0,0,2764,2763,1,0,0,0,2764,2765,1,0,0,0,2765,2766,1,0,0,0,2766,2770,5,94,0,0,2767,2769,3,416,208,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,2773,1,0,0,0,2772,2770,1,0,0,0,2773,2774,3,436,218,0,2774,2775,3,438,219,0,2775,435,1,0,0,0,2776,2778,5,115,0,0,2777,2779,3,46,23,0,2778,2777,1,0,0,0,2778,2779,1,0,0,0,2779,437,1,0,0,0,2780,2790,5,205,0,0,2781,2785,5,214,0,0,2782,2784,3,446,223,0,2783,2782,1,0,0,0,2784,2787,1,0,0,0,2785,2783,1,0,0,0,2785,2786,1,0,0,0,2786,2788,1,0,0,0,2787,2785,1,0,0,0,2788,2790,5,216,0,0,2789,2780,1,0,0,0,2789,2781,1,0,0,0,2790,439,1,0,0,0,2791,2792,3,78,39,0,2792,2793,5,68,0,0,2793,2794,3,0,0,0,2794,2795,5,205,0,0,2795,441,1,0,0,0,2796,2798,3,46,23,0,2797,2796,1,0,0,0,2797,2798,1,0,0,0,2798,2799,1,0,0,0,2799,2801,5,74,0,0,2800,2797,1,0,0,0,2800,2801,1,0,0,0,2801,2802,1,0,0,0,2802,2807,3,90,45,0,2803,2804,5,200,0,0,2804,2806,3,90,45,0,2805,2803,1,0,0,0,2806,2809,1,0,0,0,2807,2805,1,0,0,0,2807,2808,1,0,0,0,2808,2810,1,0,0,0,2809,2807,1,0,0,0,2810,2811,5,154,0,0,2811,2816,3,90,45,0,2812,2813,5,200,0,0,2813,2815,3,90,45,0,2814,2812,1,0,0,0,2815,2818,1,0,0,0,2816,2814,1,0,0,0,2816,2817,1,0,0,0,2817,443,1,0,0,0,2818,2816,1,0,0,0,2819,2820,3,60,30,0,2820,445,1,0,0,0,2821,2826,3,448,224,0,2822,2826,3,440,220,0,2823,2826,3,88,44,0,2824,2826,3,92,46,0,2825,2821,1,0,0,0,2825,2822,1,0,0,0,2825,2823,1,0,0,0,2825,2824,1,0,0,0,2826,447,1,0,0,0,2827,2830,3,78,39,0,2828,2831,3,450,225,0,2829,2831,3,452,226,0,2830,2828,1,0,0,0,2830,2829,1,0,0,0,2831,449,1,0,0,0,2832,2863,3,432,216,0,2833,2863,3,434,217,0,2834,2863,3,60,30,0,2835,2863,3,54,27,0,2836,2863,3,522,261,0,2837,2863,3,526,263,0,2838,2863,3,538,269,0,2839,2863,3,540,270,0,2840,2863,3,564,282,0,2841,2863,3,568,284,0,2842,2863,3,582,291,0,2843,2863,3,632,316,0,2844,2863,3,596,298,0,2845,2863,3,572,286,0,2846,2863,3,654,327,0,2847,2863,3,830,415,0,2848,2863,3,768,384,0,2849,2863,3,842,421,0,2850,2863,3,850,425,0,2851,2863,3,890,445,0,2852,2863,3,894,447,0,2853,2863,3,906,453,0,2854,2863,3,910,455,0,2855,2863,3,918,459,0,2856,2863,3,924,462,0,2857,2863,3,946,473,0,2858,2863,3,950,475,0,2859,2863,3,954,477,0,2860,2863,3,626,313,0,2861,2863,3,966,483,0,2862,2832,1,0,0,0,2862,2833,1,0,0,0,2862,2834,1,0,0,0,2862,2835,1,0,0,0,2862,2836,1,0,0,0,2862,2837,1,0,0,0,2862,2838,1,0,0,0,2862,2839,1,0,0,0,2862,2840,1,0,0,0,2862,2841,1,0,0,0,2862,2842,1,0,0,0,2862,2843,1,0,0,0,2862,2844,1,0,0,0,2862,2845,1,0,0,0,2862,2846,1,0,0,0,2862,2847,1,0,0,0,2862,2848,1,0,0,0,2862,2849,1,0,0,0,2862,2850,1,0,0,0,2862,2851,1,0,0,0,2862,2852,1,0,0,0,2862,2853,1,0,0,0,2862,2854,1,0,0,0,2862,2855,1,0,0,0,2862,2856,1,0,0,0,2862,2857,1,0,0,0,2862,2858,1,0,0,0,2862,2859,1,0,0,0,2862,2860,1,0,0,0,2862,2861,1,0,0,0,2863,451,1,0,0,0,2864,2867,3,510,255,0,2865,2867,3,512,256,0,2866,2864,1,0,0,0,2866,2865,1,0,0,0,2867,453,1,0,0,0,2868,2869,7,23,0,0,2869,455,1,0,0,0,2870,2871,3,416,208,0,2871,457,1,0,0,0,2872,2874,3,454,227,0,2873,2872,1,0,0,0,2873,2874,1,0,0,0,2874,2878,1,0,0,0,2875,2877,3,456,228,0,2876,2875,1,0,0,0,2877,2880,1,0,0,0,2878,2876,1,0,0,0,2878,2879,1,0,0,0,2879,459,1,0,0,0,2880,2878,1,0,0,0,2881,2882,3,462,231,0,2882,2883,3,464,232,0,2883,461,1,0,0,0,2884,2886,3,46,23,0,2885,2884,1,0,0,0,2885,2886,1,0,0,0,2886,2888,1,0,0,0,2887,2889,3,520,260,0,2888,2887,1,0,0,0,2888,2889,1,0,0,0,2889,463,1,0,0,0,2890,2900,5,205,0,0,2891,2895,5,214,0,0,2892,2894,3,466,233,0,2893,2892,1,0,0,0,2894,2897,1,0,0,0,2895,2893,1,0,0,0,2895,2896,1,0,0,0,2896,2898,1,0,0,0,2897,2895,1,0,0,0,2898,2900,5,216,0,0,2899,2890,1,0,0,0,2899,2891,1,0,0,0,2900,465,1,0,0,0,2901,2912,3,92,46,0,2902,2903,3,78,39,0,2903,2904,3,468,234,0,2904,2912,1,0,0,0,2905,2907,3,556,278,0,2906,2905,1,0,0,0,2906,2907,1,0,0,0,2907,2908,1,0,0,0,2908,2909,3,78,39,0,2909,2910,3,512,256,0,2910,2912,1,0,0,0,2911,2901,1,0,0,0,2911,2902,1,0,0,0,2911,2906,1,0,0,0,2912,467,1,0,0,0,2913,2918,5,7,0,0,2914,2915,5,206,0,0,2915,2916,3,44,22,0,2916,2917,5,208,0,0,2917,2919,1,0,0,0,2918,2914,1,0,0,0,2918,2919,1,0,0,0,2919,2921,1,0,0,0,2920,2922,3,44,22,0,2921,2920,1,0,0,0,2921,2922,1,0,0,0,2922,2923,1,0,0,0,2923,2924,5,71,0,0,2924,2925,3,90,45,0,2925,2926,3,48,24,0,2926,2932,1,0,0,0,2927,2928,5,164,0,0,2928,2932,3,518,259,0,2929,2932,3,450,225,0,2930,2932,3,510,255,0,2931,2913,1,0,0,0,2931,2927,1,0,0,0,2931,2929,1,0,0,0,2931,2930,1,0,0,0,2932,469,1,0,0,0,2933,2934,3,78,39,0,2934,2935,3,450,225,0,2935,471,1,0,0,0,2936,2937,3,78,39,0,2937,2938,5,164,0,0,2938,2939,3,518,259,0,2939,473,1,0,0,0,2940,2941,3,78,39,0,2941,2942,3,510,255,0,2942,475,1,0,0,0,2943,2944,3,78,39,0,2944,2945,3,512,256,0,2945,477,1,0,0,0,2946,2947,3,78,39,0,2947,2948,3,514,257,0,2948,479,1,0,0,0,2949,2950,3,78,39,0,2950,2951,3,516,258,0,2951,481,1,0,0,0,2952,2954,3,184,92,0,2953,2952,1,0,0,0,2953,2954,1,0,0,0,2954,2956,1,0,0,0,2955,2957,5,49,0,0,2956,2955,1,0,0,0,2956,2957,1,0,0,0,2957,2959,1,0,0,0,2958,2960,7,23,0,0,2959,2958,1,0,0,0,2959,2960,1,0,0,0,2960,2962,1,0,0,0,2961,2963,5,40,0,0,2962,2961,1,0,0,0,2962,2963,1,0,0,0,2963,483,1,0,0,0,2964,2966,3,482,241,0,2965,2967,5,127,0,0,2966,2965,1,0,0,0,2966,2967,1,0,0,0,2967,485,1,0,0,0,2968,2970,5,56,0,0,2969,2971,3,180,90,0,2970,2969,1,0,0,0,2970,2971,1,0,0,0,2971,487,1,0,0,0,2972,2973,3,416,208,0,2973,489,1,0,0,0,2974,2977,3,486,243,0,2975,2977,3,484,242,0,2976,2974,1,0,0,0,2976,2975,1,0,0,0,2977,491,1,0,0,0,2978,2982,3,490,245,0,2979,2981,3,488,244,0,2980,2979,1,0,0,0,2981,2984,1,0,0,0,2982,2980,1,0,0,0,2982,2983,1,0,0,0,2983,493,1,0,0,0,2984,2982,1,0,0,0,2985,2987,3,496,248,0,2986,2985,1,0,0,0,2986,2987,1,0,0,0,2987,2988,1,0,0,0,2988,2989,3,498,249,0,2989,495,1,0,0,0,2990,2992,3,46,23,0,2991,2993,3,198,99,0,2992,2991,1,0,0,0,2992,2993,1,0,0,0,2993,2996,1,0,0,0,2994,2996,3,198,99,0,2995,2990,1,0,0,0,2995,2994,1,0,0,0,2996,497,1,0,0,0,2997,2999,3,394,197,0,2998,2997,1,0,0,0,2998,2999,1,0,0,0,2999,3e3,1,0,0,0,3e3,3001,3,500,250,0,3001,499,1,0,0,0,3002,3003,3,464,232,0,3003,501,1,0,0,0,3004,3005,3,482,241,0,3005,3006,3,494,247,0,3006,503,1,0,0,0,3007,3010,3,486,243,0,3008,3010,3,482,241,0,3009,3007,1,0,0,0,3009,3008,1,0,0,0,3010,3011,1,0,0,0,3011,3012,5,127,0,0,3012,3013,3,494,247,0,3013,505,1,0,0,0,3014,3015,3,486,243,0,3015,3016,3,186,93,0,3016,3017,3,498,249,0,3017,507,1,0,0,0,3018,3022,3,228,114,0,3019,3021,3,202,101,0,3020,3019,1,0,0,0,3021,3024,1,0,0,0,3022,3020,1,0,0,0,3022,3023,1,0,0,0,3023,3025,1,0,0,0,3024,3022,1,0,0,0,3025,3026,3,500,250,0,3026,509,1,0,0,0,3027,3036,3,504,252,0,3028,3036,3,506,253,0,3029,3036,3,524,262,0,3030,3036,3,534,267,0,3031,3036,3,592,296,0,3032,3036,3,594,297,0,3033,3036,3,968,484,0,3034,3036,3,502,251,0,3035,3027,1,0,0,0,3035,3028,1,0,0,0,3035,3029,1,0,0,0,3035,3030,1,0,0,0,3035,3031,1,0,0,0,3035,3032,1,0,0,0,3035,3033,1,0,0,0,3035,3034,1,0,0,0,3036,511,1,0,0,0,3037,3040,3,514,257,0,3038,3040,3,516,258,0,3039,3037,1,0,0,0,3039,3038,1,0,0,0,3040,513,1,0,0,0,3041,3057,3,546,273,0,3042,3057,3,548,274,0,3043,3057,3,550,275,0,3044,3057,3,554,277,0,3045,3057,3,566,283,0,3046,3057,3,570,285,0,3047,3057,3,934,467,0,3048,3057,3,952,476,0,3049,3057,3,578,289,0,3050,3057,3,584,292,0,3051,3057,3,612,306,0,3052,3057,3,628,314,0,3053,3057,3,634,317,0,3054,3057,3,642,321,0,3055,3057,3,644,322,0,3056,3041,1,0,0,0,3056,3042,1,0,0,0,3056,3043,1,0,0,0,3056,3044,1,0,0,0,3056,3045,1,0,0,0,3056,3046,1,0,0,0,3056,3047,1,0,0,0,3056,3048,1,0,0,0,3056,3049,1,0,0,0,3056,3050,1,0,0,0,3056,3051,1,0,0,0,3056,3052,1,0,0,0,3056,3053,1,0,0,0,3056,3054,1,0,0,0,3056,3055,1,0,0,0,3057,515,1,0,0,0,3058,3075,3,672,336,0,3059,3075,3,832,416,0,3060,3075,3,796,398,0,3061,3075,3,844,422,0,3062,3075,3,878,439,0,3063,3075,3,892,446,0,3064,3075,3,896,448,0,3065,3075,3,908,454,0,3066,3075,3,912,456,0,3067,3075,3,920,460,0,3068,3075,3,948,474,0,3069,3075,3,676,338,0,3070,3075,3,800,400,0,3071,3075,3,922,461,0,3072,3075,3,846,423,0,3073,3075,3,880,440,0,3074,3058,1,0,0,0,3074,3059,1,0,0,0,3074,3060,1,0,0,0,3074,3061,1,0,0,0,3074,3062,1,0,0,0,3074,3063,1,0,0,0,3074,3064,1,0,0,0,3074,3065,1,0,0,0,3074,3066,1,0,0,0,3074,3067,1,0,0,0,3074,3068,1,0,0,0,3074,3069,1,0,0,0,3074,3070,1,0,0,0,3074,3071,1,0,0,0,3074,3072,1,0,0,0,3074,3073,1,0,0,0,3075,517,1,0,0,0,3076,3098,3,508,254,0,3077,3098,3,504,252,0,3078,3098,3,524,262,0,3079,3098,3,592,296,0,3080,3098,3,594,297,0,3081,3098,3,546,273,0,3082,3098,3,548,274,0,3083,3098,3,550,275,0,3084,3098,3,554,277,0,3085,3098,3,566,283,0,3086,3098,3,570,285,0,3087,3098,3,934,467,0,3088,3098,3,952,476,0,3089,3098,3,578,289,0,3090,3098,3,584,292,0,3091,3098,3,612,306,0,3092,3098,3,628,314,0,3093,3098,3,634,317,0,3094,3098,3,642,321,0,3095,3098,3,644,322,0,3096,3098,3,516,258,0,3097,3076,1,0,0,0,3097,3077,1,0,0,0,3097,3078,1,0,0,0,3097,3079,1,0,0,0,3097,3080,1,0,0,0,3097,3081,1,0,0,0,3097,3082,1,0,0,0,3097,3083,1,0,0,0,3097,3084,1,0,0,0,3097,3085,1,0,0,0,3097,3086,1,0,0,0,3097,3087,1,0,0,0,3097,3088,1,0,0,0,3097,3089,1,0,0,0,3097,3090,1,0,0,0,3097,3091,1,0,0,0,3097,3092,1,0,0,0,3097,3093,1,0,0,0,3097,3094,1,0,0,0,3097,3095,1,0,0,0,3097,3096,1,0,0,0,3098,519,1,0,0,0,3099,3100,7,11,0,0,3100,3105,3,170,85,0,3101,3102,5,200,0,0,3102,3104,3,170,85,0,3103,3101,1,0,0,0,3104,3107,1,0,0,0,3105,3103,1,0,0,0,3105,3106,1,0,0,0,3106,521,1,0,0,0,3107,3105,1,0,0,0,3108,3109,3,458,229,0,3109,3110,5,19,0,0,3110,3111,5,45,0,0,3111,3112,3,460,230,0,3112,523,1,0,0,0,3113,3114,3,492,246,0,3114,3115,5,19,0,0,3115,3116,3,494,247,0,3116,525,1,0,0,0,3117,3119,3,456,228,0,3118,3117,1,0,0,0,3119,3122,1,0,0,0,3120,3118,1,0,0,0,3120,3121,1,0,0,0,3121,3123,1,0,0,0,3122,3120,1,0,0,0,3123,3124,5,58,0,0,3124,3125,5,45,0,0,3125,3126,3,462,231,0,3126,3127,3,528,264,0,3127,527,1,0,0,0,3128,3139,5,205,0,0,3129,3134,5,214,0,0,3130,3133,3,444,222,0,3131,3133,3,530,265,0,3132,3130,1,0,0,0,3132,3131,1,0,0,0,3133,3136,1,0,0,0,3134,3132,1,0,0,0,3134,3135,1,0,0,0,3135,3137,1,0,0,0,3136,3134,1,0,0,0,3137,3139,5,216,0,0,3138,3128,1,0,0,0,3138,3129,1,0,0,0,3139,529,1,0,0,0,3140,3141,3,78,39,0,3141,3142,3,532,266,0,3142,531,1,0,0,0,3143,3145,5,58,0,0,3144,3143,1,0,0,0,3144,3145,1,0,0,0,3145,3146,1,0,0,0,3146,3147,3,494,247,0,3147,533,1,0,0,0,3148,3149,3,492,246,0,3149,3150,5,58,0,0,3150,3151,3,494,247,0,3151,535,1,0,0,0,3152,3154,3,454,227,0,3153,3152,1,0,0,0,3153,3154,1,0,0,0,3154,3157,1,0,0,0,3155,3156,5,82,0,0,3156,3158,3,542,271,0,3157,3155,1,0,0,0,3157,3158,1,0,0,0,3158,3162,1,0,0,0,3159,3161,3,456,228,0,3160,3159,1,0,0,0,3161,3164,1,0,0,0,3162,3160,1,0,0,0,3162,3163,1,0,0,0,3163,537,1,0,0,0,3164,3162,1,0,0,0,3165,3166,3,536,268,0,3166,3167,5,110,0,0,3167,3168,5,45,0,0,3168,3169,3,460,230,0,3169,539,1,0,0,0,3170,3172,3,454,227,0,3171,3170,1,0,0,0,3171,3172,1,0,0,0,3172,3173,1,0,0,0,3173,3177,5,82,0,0,3174,3176,3,456,228,0,3175,3174,1,0,0,0,3176,3179,1,0,0,0,3177,3175,1,0,0,0,3177,3178,1,0,0,0,3178,3180,1,0,0,0,3179,3177,1,0,0,0,3180,3181,5,45,0,0,3181,3182,3,460,230,0,3182,3183,3,542,271,0,3183,541,1,0,0,0,3184,3185,3,980,490,0,3185,543,1,0,0,0,3186,3188,3,484,242,0,3187,3189,5,82,0,0,3188,3187,1,0,0,0,3188,3189,1,0,0,0,3189,3191,1,0,0,0,3190,3192,3,552,276,0,3191,3190,1,0,0,0,3191,3192,1,0,0,0,3192,3196,1,0,0,0,3193,3195,3,488,244,0,3194,3193,1,0,0,0,3195,3198,1,0,0,0,3196,3194,1,0,0,0,3196,3197,1,0,0,0,3197,545,1,0,0,0,3198,3196,1,0,0,0,3199,3200,3,544,272,0,3200,3201,5,110,0,0,3201,3202,3,494,247,0,3202,547,1,0,0,0,3203,3204,3,484,242,0,3204,3208,5,82,0,0,3205,3207,3,488,244,0,3206,3205,1,0,0,0,3207,3210,1,0,0,0,3208,3206,1,0,0,0,3208,3209,1,0,0,0,3209,3211,1,0,0,0,3210,3208,1,0,0,0,3211,3212,3,494,247,0,3212,549,1,0,0,0,3213,3215,3,484,242,0,3214,3216,5,82,0,0,3215,3214,1,0,0,0,3215,3216,1,0,0,0,3216,3217,1,0,0,0,3217,3221,3,552,276,0,3218,3220,3,488,244,0,3219,3218,1,0,0,0,3220,3223,1,0,0,0,3221,3219,1,0,0,0,3221,3222,1,0,0,0,3222,3224,1,0,0,0,3223,3221,1,0,0,0,3224,3225,3,494,247,0,3225,551,1,0,0,0,3226,3227,7,24,0,0,3227,553,1,0,0,0,3228,3229,3,544,272,0,3229,3238,5,59,0,0,3230,3232,3,228,114,0,3231,3233,3,198,99,0,3232,3231,1,0,0,0,3232,3233,1,0,0,0,3233,3239,1,0,0,0,3234,3236,5,110,0,0,3235,3237,3,496,248,0,3236,3235,1,0,0,0,3236,3237,1,0,0,0,3237,3239,1,0,0,0,3238,3230,1,0,0,0,3238,3234,1,0,0,0,3239,3240,1,0,0,0,3240,3241,3,498,249,0,3241,555,1,0,0,0,3242,3243,5,152,0,0,3243,3244,3,558,279,0,3244,557,1,0,0,0,3245,3246,3,560,280,0,3246,559,1,0,0,0,3247,3248,3,562,281,0,3248,561,1,0,0,0,3249,3251,3,404,202,0,3250,3249,1,0,0,0,3250,3251,1,0,0,0,3251,563,1,0,0,0,3252,3253,3,536,268,0,3253,3254,5,91,0,0,3254,3255,5,45,0,0,3255,3256,3,460,230,0,3256,565,1,0,0,0,3257,3258,3,544,272,0,3258,3259,5,91,0,0,3259,3260,3,494,247,0,3260,567,1,0,0,0,3261,3262,3,536,268,0,3262,3263,5,117,0,0,3263,3264,5,45,0,0,3264,3265,3,460,230,0,3265,569,1,0,0,0,3266,3267,3,544,272,0,3267,3268,5,117,0,0,3268,3269,3,494,247,0,3269,571,1,0,0,0,3270,3271,3,458,229,0,3271,3272,5,119,0,0,3272,3273,5,45,0,0,3273,3274,3,460,230,0,3274,3275,3,574,287,0,3275,573,1,0,0,0,3276,3277,3,576,288,0,3277,575,1,0,0,0,3278,3279,3,988,494,0,3279,577,1,0,0,0,3280,3281,3,544,272,0,3281,3282,5,119,0,0,3282,3283,3,494,247,0,3283,579,1,0,0,0,3284,3285,5,217,0,0,3285,3286,3,90,45,0,3286,581,1,0,0,0,3287,3288,3,536,268,0,3288,3289,5,37,0,0,3289,3290,5,45,0,0,3290,3291,3,460,230,0,3291,583,1,0,0,0,3292,3306,3,544,272,0,3293,3295,5,37,0,0,3294,3296,3,496,248,0,3295,3294,1,0,0,0,3295,3296,1,0,0,0,3296,3298,1,0,0,0,3297,3299,3,394,197,0,3298,3297,1,0,0,0,3298,3299,1,0,0,0,3299,3302,1,0,0,0,3300,3301,5,36,0,0,3301,3303,3,586,293,0,3302,3300,1,0,0,0,3302,3303,1,0,0,0,3303,3307,1,0,0,0,3304,3305,5,36,0,0,3305,3307,3,586,293,0,3306,3293,1,0,0,0,3306,3304,1,0,0,0,3307,3308,1,0,0,0,3308,3309,3,500,250,0,3309,585,1,0,0,0,3310,3313,3,588,294,0,3311,3313,3,590,295,0,3312,3310,1,0,0,0,3312,3311,1,0,0,0,3313,587,1,0,0,0,3314,3315,3,268,134,0,3315,3316,5,154,0,0,3316,3317,3,268,134,0,3317,589,1,0,0,0,3318,3319,5,196,0,0,3319,3320,3,268,134,0,3320,3321,5,200,0,0,3321,3326,3,268,134,0,3322,3323,5,200,0,0,3323,3325,3,268,134,0,3324,3322,1,0,0,0,3325,3328,1,0,0,0,3326,3324,1,0,0,0,3326,3327,1,0,0,0,3327,3329,1,0,0,0,3328,3326,1,0,0,0,3329,3330,5,197,0,0,3330,591,1,0,0,0,3331,3336,3,492,246,0,3332,3334,5,22,0,0,3333,3335,3,496,248,0,3334,3333,1,0,0,0,3334,3335,1,0,0,0,3335,3337,1,0,0,0,3336,3332,1,0,0,0,3336,3337,1,0,0,0,3337,3338,1,0,0,0,3338,3339,5,21,0,0,3339,3340,3,268,134,0,3340,3341,5,207,0,0,3341,3342,3,268,134,0,3342,3343,3,500,250,0,3343,593,1,0,0,0,3344,3349,3,492,246,0,3345,3347,5,150,0,0,3346,3348,3,496,248,0,3347,3346,1,0,0,0,3347,3348,1,0,0,0,3348,3350,1,0,0,0,3349,3345,1,0,0,0,3349,3350,1,0,0,0,3350,3351,1,0,0,0,3351,3352,5,69,0,0,3352,3353,3,268,134,0,3353,3354,5,152,0,0,3354,3355,3,268,134,0,3355,3356,3,500,250,0,3356,595,1,0,0,0,3357,3358,3,536,268,0,3358,3359,5,85,0,0,3359,3360,5,45,0,0,3360,3361,3,462,231,0,3361,3362,3,598,299,0,3362,597,1,0,0,0,3363,3373,5,205,0,0,3364,3368,5,214,0,0,3365,3367,3,600,300,0,3366,3365,1,0,0,0,3367,3370,1,0,0,0,3368,3366,1,0,0,0,3368,3369,1,0,0,0,3369,3371,1,0,0,0,3370,3368,1,0,0,0,3371,3373,5,216,0,0,3372,3363,1,0,0,0,3372,3364,1,0,0,0,3373,599,1,0,0,0,3374,3384,3,470,235,0,3375,3384,3,472,236,0,3376,3384,3,602,301,0,3377,3379,3,556,278,0,3378,3377,1,0,0,0,3378,3379,1,0,0,0,3379,3380,1,0,0,0,3380,3384,3,606,303,0,3381,3384,3,88,44,0,3382,3384,3,92,46,0,3383,3374,1,0,0,0,3383,3375,1,0,0,0,3383,3376,1,0,0,0,3383,3378,1,0,0,0,3383,3381,1,0,0,0,3383,3382,1,0,0,0,3384,601,1,0,0,0,3385,3386,3,78,39,0,3386,3387,3,604,302,0,3387,603,1,0,0,0,3388,3394,3,504,252,0,3389,3394,3,524,262,0,3390,3394,3,534,267,0,3391,3394,3,592,296,0,3392,3394,3,594,297,0,3393,3388,1,0,0,0,3393,3389,1,0,0,0,3393,3390,1,0,0,0,3393,3391,1,0,0,0,3393,3392,1,0,0,0,3394,605,1,0,0,0,3395,3396,3,78,39,0,3396,3397,3,608,304,0,3397,607,1,0,0,0,3398,3402,3,610,305,0,3399,3402,3,514,257,0,3400,3402,3,516,258,0,3401,3398,1,0,0,0,3401,3399,1,0,0,0,3401,3400,1,0,0,0,3402,609,1,0,0,0,3403,3404,5,56,0,0,3404,3405,3,494,247,0,3405,611,1,0,0,0,3406,3407,3,544,272,0,3407,3408,5,85,0,0,3408,3409,3,614,307,0,3409,3410,3,598,299,0,3410,613,1,0,0,0,3411,3413,3,496,248,0,3412,3411,1,0,0,0,3412,3413,1,0,0,0,3413,3415,1,0,0,0,3414,3416,3,394,197,0,3415,3414,1,0,0,0,3415,3416,1,0,0,0,3416,3419,1,0,0,0,3417,3418,5,36,0,0,3418,3420,3,616,308,0,3419,3417,1,0,0,0,3419,3420,1,0,0,0,3420,3423,1,0,0,0,3421,3423,3,616,308,0,3422,3412,1,0,0,0,3422,3421,1,0,0,0,3423,615,1,0,0,0,3424,3427,3,618,309,0,3425,3427,3,620,310,0,3426,3424,1,0,0,0,3426,3425,1,0,0,0,3427,617,1,0,0,0,3428,3429,3,622,311,0,3429,3430,5,154,0,0,3430,3431,3,622,311,0,3431,619,1,0,0,0,3432,3433,5,196,0,0,3433,3434,3,622,311,0,3434,3435,5,200,0,0,3435,3440,3,622,311,0,3436,3437,5,200,0,0,3437,3439,3,622,311,0,3438,3436,1,0,0,0,3439,3442,1,0,0,0,3440,3438,1,0,0,0,3440,3441,1,0,0,0,3441,3443,1,0,0,0,3442,3440,1,0,0,0,3443,3444,5,197,0,0,3444,621,1,0,0,0,3445,3446,3,624,312,0,3446,623,1,0,0,0,3447,3449,3,272,136,0,3448,3447,1,0,0,0,3448,3449,1,0,0,0,3449,3453,1,0,0,0,3450,3451,3,44,22,0,3451,3452,7,17,0,0,3452,3454,1,0,0,0,3453,3450,1,0,0,0,3453,3454,1,0,0,0,3454,3455,1,0,0,0,3455,3456,3,228,114,0,3456,625,1,0,0,0,3457,3458,3,536,268,0,3458,3459,5,10,0,0,3459,3460,5,45,0,0,3460,3461,3,460,230,0,3461,627,1,0,0,0,3462,3463,3,544,272,0,3463,3464,3,630,315,0,3464,3465,3,500,250,0,3465,629,1,0,0,0,3466,3468,5,10,0,0,3467,3469,3,496,248,0,3468,3467,1,0,0,0,3468,3469,1,0,0,0,3469,3472,1,0,0,0,3470,3471,5,9,0,0,3471,3473,3,586,293,0,3472,3470,1,0,0,0,3472,3473,1,0,0,0,3473,3477,1,0,0,0,3474,3475,5,9,0,0,3475,3477,3,586,293,0,3476,3466,1,0,0,0,3476,3474,1,0,0,0,3477,631,1,0,0,0,3478,3479,3,536,268,0,3479,3480,5,70,0,0,3480,3481,5,45,0,0,3481,3482,3,460,230,0,3482,633,1,0,0,0,3483,3484,3,544,272,0,3484,3485,5,99,0,0,3485,3486,3,636,318,0,3486,3487,3,464,232,0,3487,635,1,0,0,0,3488,3490,3,496,248,0,3489,3488,1,0,0,0,3489,3490,1,0,0,0,3490,3492,1,0,0,0,3491,3493,3,394,197,0,3492,3491,1,0,0,0,3492,3493,1,0,0,0,3493,3496,1,0,0,0,3494,3495,5,111,0,0,3495,3497,3,646,323,0,3496,3494,1,0,0,0,3496,3497,1,0,0,0,3497,3503,1,0,0,0,3498,3499,5,74,0,0,3499,3500,3,638,319,0,3500,3501,5,154,0,0,3501,3502,3,638,319,0,3502,3504,1,0,0,0,3503,3498,1,0,0,0,3503,3504,1,0,0,0,3504,3510,1,0,0,0,3505,3506,3,638,319,0,3506,3507,5,154,0,0,3507,3508,3,638,319,0,3508,3510,1,0,0,0,3509,3489,1,0,0,0,3509,3505,1,0,0,0,3510,637,1,0,0,0,3511,3512,3,640,320,0,3512,639,1,0,0,0,3513,3514,3,228,114,0,3514,641,1,0,0,0,3515,3516,3,544,272,0,3516,3517,5,70,0,0,3517,3518,3,376,188,0,3518,3519,3,464,232,0,3519,643,1,0,0,0,3520,3521,3,544,272,0,3521,3522,5,150,0,0,3522,3523,5,70,0,0,3523,3524,3,376,188,0,3524,3525,3,464,232,0,3525,645,1,0,0,0,3526,3527,3,648,324,0,3527,647,1,0,0,0,3528,3529,3,380,190,0,3529,649,1,0,0,0,3530,3533,3,90,45,0,3531,3533,3,652,326,0,3532,3530,1,0,0,0,3532,3531,1,0,0,0,3533,651,1,0,0,0,3534,3535,3,240,120,0,3535,3536,5,202,0,0,3536,3538,1,0,0,0,3537,3534,1,0,0,0,3538,3539,1,0,0,0,3539,3537,1,0,0,0,3539,3540,1,0,0,0,3540,3541,1,0,0,0,3541,3542,3,240,120,0,3542,3543,5,202,0,0,3543,653,1,0,0,0,3544,3545,3,536,268,0,3545,3546,5,4,0,0,3546,3547,5,45,0,0,3547,3548,3,462,231,0,3548,3549,3,656,328,0,3549,655,1,0,0,0,3550,3560,5,205,0,0,3551,3555,5,214,0,0,3552,3554,3,658,329,0,3553,3552,1,0,0,0,3554,3557,1,0,0,0,3555,3553,1,0,0,0,3555,3556,1,0,0,0,3556,3558,1,0,0,0,3557,3555,1,0,0,0,3558,3560,5,216,0,0,3559,3550,1,0,0,0,3559,3551,1,0,0,0,3560,657,1,0,0,0,3561,3581,3,660,330,0,3562,3566,3,664,332,0,3563,3565,3,668,334,0,3564,3563,1,0,0,0,3565,3568,1,0,0,0,3566,3564,1,0,0,0,3566,3567,1,0,0,0,3567,3581,1,0,0,0,3568,3566,1,0,0,0,3569,3571,3,556,278,0,3570,3569,1,0,0,0,3570,3571,1,0,0,0,3571,3572,1,0,0,0,3572,3576,3,662,331,0,3573,3575,3,668,334,0,3574,3573,1,0,0,0,3575,3578,1,0,0,0,3576,3574,1,0,0,0,3576,3577,1,0,0,0,3577,3581,1,0,0,0,3578,3576,1,0,0,0,3579,3581,3,670,335,0,3580,3561,1,0,0,0,3580,3562,1,0,0,0,3580,3570,1,0,0,0,3580,3579,1,0,0,0,3581,659,1,0,0,0,3582,3592,3,92,46,0,3583,3592,3,88,44,0,3584,3592,3,470,235,0,3585,3592,3,472,236,0,3586,3592,3,474,237,0,3587,3589,3,556,278,0,3588,3587,1,0,0,0,3588,3589,1,0,0,0,3589,3590,1,0,0,0,3590,3592,3,478,239,0,3591,3582,1,0,0,0,3591,3583,1,0,0,0,3591,3584,1,0,0,0,3591,3585,1,0,0,0,3591,3586,1,0,0,0,3591,3588,1,0,0,0,3592,661,1,0,0,0,3593,3596,3,480,240,0,3594,3596,3,666,333,0,3595,3593,1,0,0,0,3595,3594,1,0,0,0,3596,663,1,0,0,0,3597,3598,3,78,39,0,3598,3599,5,69,0,0,3599,3600,3,90,45,0,3600,3601,3,48,24,0,3601,665,1,0,0,0,3602,3603,3,78,39,0,3603,3604,3,680,340,0,3604,667,1,0,0,0,3605,3606,3,78,39,0,3606,3607,3,758,379,0,3607,669,1,0,0,0,3608,3609,3,78,39,0,3609,3610,3,766,383,0,3610,671,1,0,0,0,3611,3612,3,544,272,0,3612,3613,5,4,0,0,3613,3614,3,674,337,0,3614,3615,3,656,328,0,3615,673,1,0,0,0,3616,3618,3,496,248,0,3617,3616,1,0,0,0,3617,3618,1,0,0,0,3618,3620,1,0,0,0,3619,3621,3,394,197,0,3620,3619,1,0,0,0,3620,3621,1,0,0,0,3621,675,1,0,0,0,3622,3623,3,544,272,0,3623,3624,5,118,0,0,3624,3625,3,678,339,0,3625,3626,3,656,328,0,3626,677,1,0,0,0,3627,3629,3,228,114,0,3628,3630,3,198,99,0,3629,3628,1,0,0,0,3629,3630,1,0,0,0,3630,3636,1,0,0,0,3631,3633,5,4,0,0,3632,3634,3,496,248,0,3633,3632,1,0,0,0,3633,3634,1,0,0,0,3634,3636,1,0,0,0,3635,3627,1,0,0,0,3635,3631,1,0,0,0,3636,3638,1,0,0,0,3637,3639,3,394,197,0,3638,3637,1,0,0,0,3638,3639,1,0,0,0,3639,679,1,0,0,0,3640,3649,3,686,343,0,3641,3649,3,714,357,0,3642,3649,3,698,349,0,3643,3649,3,728,364,0,3644,3649,3,738,369,0,3645,3649,3,740,370,0,3646,3649,3,750,375,0,3647,3649,3,752,376,0,3648,3640,1,0,0,0,3648,3641,1,0,0,0,3648,3642,1,0,0,0,3648,3643,1,0,0,0,3648,3644,1,0,0,0,3648,3645,1,0,0,0,3648,3646,1,0,0,0,3648,3647,1,0,0,0,3649,681,1,0,0,0,3650,3652,5,4,0,0,3651,3653,3,496,248,0,3652,3651,1,0,0,0,3652,3653,1,0,0,0,3653,683,1,0,0,0,3654,3656,3,544,272,0,3655,3657,3,682,341,0,3656,3655,1,0,0,0,3656,3657,1,0,0,0,3657,685,1,0,0,0,3658,3663,3,690,345,0,3659,3663,3,692,346,0,3660,3663,3,694,347,0,3661,3663,3,696,348,0,3662,3658,1,0,0,0,3662,3659,1,0,0,0,3662,3660,1,0,0,0,3662,3661,1,0,0,0,3663,687,1,0,0,0,3664,3666,3,482,241,0,3665,3667,5,82,0,0,3666,3665,1,0,0,0,3666,3667,1,0,0,0,3667,3669,1,0,0,0,3668,3670,3,552,276,0,3669,3668,1,0,0,0,3669,3670,1,0,0,0,3670,3674,1,0,0,0,3671,3673,3,488,244,0,3672,3671,1,0,0,0,3673,3676,1,0,0,0,3674,3672,1,0,0,0,3674,3675,1,0,0,0,3675,689,1,0,0,0,3676,3674,1,0,0,0,3677,3678,3,688,344,0,3678,3680,5,98,0,0,3679,3681,3,496,248,0,3680,3679,1,0,0,0,3680,3681,1,0,0,0,3681,3682,1,0,0,0,3682,3683,3,656,328,0,3683,691,1,0,0,0,3684,3685,3,688,344,0,3685,3687,5,44,0,0,3686,3688,3,496,248,0,3687,3686,1,0,0,0,3687,3688,1,0,0,0,3688,3689,1,0,0,0,3689,3690,3,656,328,0,3690,693,1,0,0,0,3691,3692,3,688,344,0,3692,3694,5,92,0,0,3693,3695,3,496,248,0,3694,3693,1,0,0,0,3694,3695,1,0,0,0,3695,3696,1,0,0,0,3696,3697,3,656,328,0,3697,695,1,0,0,0,3698,3699,3,688,344,0,3699,3701,5,72,0,0,3700,3702,3,496,248,0,3701,3700,1,0,0,0,3701,3702,1,0,0,0,3702,3703,1,0,0,0,3703,3704,3,656,328,0,3704,697,1,0,0,0,3705,3706,3,544,272,0,3706,3707,3,700,350,0,3707,3708,3,656,328,0,3708,699,1,0,0,0,3709,3711,3,682,341,0,3710,3709,1,0,0,0,3710,3711,1,0,0,0,3711,3712,1,0,0,0,3712,3713,5,3,0,0,3713,3714,3,702,351,0,3714,701,1,0,0,0,3715,3718,3,704,352,0,3716,3717,5,168,0,0,3717,3719,3,720,360,0,3718,3716,1,0,0,0,3718,3719,1,0,0,0,3719,703,1,0,0,0,3720,3721,3,706,353,0,3721,705,1,0,0,0,3722,3731,3,380,190,0,3723,3725,3,46,23,0,3724,3723,1,0,0,0,3724,3725,1,0,0,0,3725,3727,1,0,0,0,3726,3728,3,382,191,0,3727,3726,1,0,0,0,3727,3728,1,0,0,0,3728,3729,1,0,0,0,3729,3731,3,708,354,0,3730,3722,1,0,0,0,3730,3724,1,0,0,0,3731,707,1,0,0,0,3732,3733,3,710,355,0,3733,709,1,0,0,0,3734,3735,3,712,356,0,3735,711,1,0,0,0,3736,3737,7,25,0,0,3737,3741,3,40,20,0,3738,3739,5,171,0,0,3739,3741,3,42,21,0,3740,3736,1,0,0,0,3740,3738,1,0,0,0,3741,713,1,0,0,0,3742,3745,3,544,272,0,3743,3746,3,682,341,0,3744,3746,3,674,337,0,3745,3743,1,0,0,0,3745,3744,1,0,0,0,3745,3746,1,0,0,0,3746,3747,1,0,0,0,3747,3755,5,136,0,0,3748,3750,3,720,360,0,3749,3751,3,718,359,0,3750,3749,1,0,0,0,3750,3751,1,0,0,0,3751,3756,1,0,0,0,3752,3753,3,726,363,0,3753,3754,3,718,359,0,3754,3756,1,0,0,0,3755,3748,1,0,0,0,3755,3752,1,0,0,0,3755,3756,1,0,0,0,3756,3757,1,0,0,0,3757,3758,3,656,328,0,3758,715,1,0,0,0,3759,3761,3,682,341,0,3760,3759,1,0,0,0,3760,3761,1,0,0,0,3761,3762,1,0,0,0,3762,3763,5,136,0,0,3763,3765,3,720,360,0,3764,3766,3,718,359,0,3765,3764,1,0,0,0,3765,3766,1,0,0,0,3766,717,1,0,0,0,3767,3768,5,168,0,0,3768,3771,3,720,360,0,3769,3770,5,154,0,0,3770,3772,3,720,360,0,3771,3769,1,0,0,0,3771,3772,1,0,0,0,3772,3778,1,0,0,0,3773,3774,3,726,363,0,3774,3775,5,154,0,0,3775,3776,3,720,360,0,3776,3778,1,0,0,0,3777,3767,1,0,0,0,3777,3773,1,0,0,0,3778,719,1,0,0,0,3779,3780,3,722,361,0,3780,721,1,0,0,0,3781,3782,3,724,362,0,3782,723,1,0,0,0,3783,3784,3,0,0,0,3784,725,1,0,0,0,3785,3786,3,982,491,0,3786,727,1,0,0,0,3787,3788,3,544,272,0,3788,3789,3,730,365,0,3789,3790,3,656,328,0,3790,729,1,0,0,0,3791,3793,3,682,341,0,3792,3791,1,0,0,0,3792,3793,1,0,0,0,3793,3794,1,0,0,0,3794,3795,5,15,0,0,3795,3796,3,732,366,0,3796,3797,3,340,170,0,3797,3798,5,184,0,0,3798,3799,3,720,360,0,3799,731,1,0,0,0,3800,3801,3,734,367,0,3801,733,1,0,0,0,3802,3803,3,736,368,0,3803,3804,5,202,0,0,3804,3806,1,0,0,0,3805,3802,1,0,0,0,3805,3806,1,0,0,0,3806,735,1,0,0,0,3807,3808,3,986,493,0,3808,737,1,0,0,0,3809,3811,3,544,272,0,3810,3812,3,682,341,0,3811,3810,1,0,0,0,3811,3812,1,0,0,0,3812,3813,1,0,0,0,3813,3815,5,151,0,0,3814,3816,3,720,360,0,3815,3814,1,0,0,0,3815,3816,1,0,0,0,3816,3817,1,0,0,0,3817,3818,3,656,328,0,3818,739,1,0,0,0,3819,3820,3,684,342,0,3820,3821,5,77,0,0,3821,3822,3,742,371,0,3822,3828,3,744,372,0,3823,3826,5,55,0,0,3824,3827,3,744,372,0,3825,3827,3,748,374,0,3826,3824,1,0,0,0,3826,3825,1,0,0,0,3827,3829,1,0,0,0,3828,3823,1,0,0,0,3828,3829,1,0,0,0,3829,741,1,0,0,0,3830,3831,3,0,0,0,3831,743,1,0,0,0,3832,3833,3,746,373,0,3833,745,1,0,0,0,3834,3836,5,4,0,0,3835,3837,3,496,248,0,3836,3835,1,0,0,0,3836,3837,1,0,0,0,3837,3839,1,0,0,0,3838,3834,1,0,0,0,3838,3839,1,0,0,0,3839,3840,1,0,0,0,3840,3844,5,214,0,0,3841,3843,3,658,329,0,3842,3841,1,0,0,0,3843,3846,1,0,0,0,3844,3842,1,0,0,0,3844,3845,1,0,0,0,3845,3847,1,0,0,0,3846,3844,1,0,0,0,3847,3848,5,216,0,0,3848,747,1,0,0,0,3849,3850,3,740,370,0,3850,749,1,0,0,0,3851,3856,3,684,342,0,3852,3853,5,172,0,0,3853,3857,3,742,371,0,3854,3855,5,96,0,0,3855,3857,3,726,363,0,3856,3852,1,0,0,0,3856,3854,1,0,0,0,3857,3858,1,0,0,0,3858,3863,3,744,372,0,3859,3860,5,161,0,0,3860,3861,3,742,371,0,3861,3862,5,205,0,0,3862,3864,1,0,0,0,3863,3859,1,0,0,0,3863,3864,1,0,0,0,3864,751,1,0,0,0,3865,3866,3,684,342,0,3866,3867,5,71,0,0,3867,3868,3,754,377,0,3868,3869,5,80,0,0,3869,3870,3,720,360,0,3870,3871,3,744,372,0,3871,753,1,0,0,0,3872,3874,3,496,248,0,3873,3872,1,0,0,0,3873,3874,1,0,0,0,3874,755,1,0,0,0,3875,3877,3,496,248,0,3876,3875,1,0,0,0,3876,3877,1,0,0,0,3877,757,1,0,0,0,3878,3882,3,760,380,0,3879,3882,3,762,381,0,3880,3882,3,764,382,0,3881,3878,1,0,0,0,3881,3879,1,0,0,0,3881,3880,1,0,0,0,3882,3883,1,0,0,0,3883,3884,3,500,250,0,3884,759,1,0,0,0,3885,3886,3,560,280,0,3886,3887,5,152,0,0,3887,3888,3,268,134,0,3888,761,1,0,0,0,3889,3890,3,810,405,0,3890,3891,5,152,0,0,3891,3892,3,824,412,0,3892,763,1,0,0,0,3893,3894,5,55,0,0,3894,3895,3,824,412,0,3895,765,1,0,0,0,3896,3898,5,150,0,0,3897,3899,3,496,248,0,3898,3897,1,0,0,0,3898,3899,1,0,0,0,3899,3901,1,0,0,0,3900,3896,1,0,0,0,3900,3901,1,0,0,0,3901,3902,1,0,0,0,3902,3903,5,69,0,0,3903,3904,3,340,170,0,3904,3905,3,810,405,0,3905,3906,5,152,0,0,3906,3907,3,824,412,0,3907,3908,3,500,250,0,3908,767,1,0,0,0,3909,3910,3,536,268,0,3910,3911,5,142,0,0,3911,3912,5,45,0,0,3912,3913,3,462,231,0,3913,3914,3,770,385,0,3914,769,1,0,0,0,3915,3928,5,205,0,0,3916,3918,5,116,0,0,3917,3916,1,0,0,0,3917,3918,1,0,0,0,3918,3919,1,0,0,0,3919,3923,5,214,0,0,3920,3922,3,772,386,0,3921,3920,1,0,0,0,3922,3925,1,0,0,0,3923,3921,1,0,0,0,3923,3924,1,0,0,0,3924,3926,1,0,0,0,3925,3923,1,0,0,0,3926,3928,5,216,0,0,3927,3915,1,0,0,0,3927,3917,1,0,0,0,3928,771,1,0,0,0,3929,3951,3,660,330,0,3930,3932,3,556,278,0,3931,3930,1,0,0,0,3931,3932,1,0,0,0,3932,3933,1,0,0,0,3933,3937,3,480,240,0,3934,3936,3,794,397,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,3951,1,0,0,0,3939,3937,1,0,0,0,3940,3951,3,792,396,0,3941,3945,3,774,387,0,3942,3944,3,780,390,0,3943,3942,1,0,0,0,3944,3947,1,0,0,0,3945,3943,1,0,0,0,3945,3946,1,0,0,0,3946,3951,1,0,0,0,3947,3945,1,0,0,0,3948,3951,3,776,388,0,3949,3951,3,778,389,0,3950,3929,1,0,0,0,3950,3931,1,0,0,0,3950,3940,1,0,0,0,3950,3941,1,0,0,0,3950,3948,1,0,0,0,3950,3949,1,0,0,0,3951,773,1,0,0,0,3952,3953,3,78,39,0,3953,3954,5,57,0,0,3954,3955,3,782,391,0,3955,775,1,0,0,0,3956,3957,3,78,39,0,3957,3958,5,53,0,0,3958,3959,3,782,391,0,3959,777,1,0,0,0,3960,3961,3,78,39,0,3961,3962,5,61,0,0,3962,3963,3,782,391,0,3963,779,1,0,0,0,3964,3968,3,78,39,0,3965,3969,3,762,381,0,3966,3967,5,152,0,0,3967,3969,3,824,412,0,3968,3965,1,0,0,0,3968,3966,1,0,0,0,3969,3970,1,0,0,0,3970,3971,5,205,0,0,3971,781,1,0,0,0,3972,3973,3,976,488,0,3973,3974,5,205,0,0,3974,3980,1,0,0,0,3975,3980,3,784,392,0,3976,3980,3,786,393,0,3977,3980,3,788,394,0,3978,3980,3,790,395,0,3979,3972,1,0,0,0,3979,3975,1,0,0,0,3979,3976,1,0,0,0,3979,3977,1,0,0,0,3979,3978,1,0,0,0,3980,783,1,0,0,0,3981,3982,3,678,339,0,3982,3983,3,656,328,0,3983,785,1,0,0,0,3984,3985,3,700,350,0,3985,3986,3,656,328,0,3986,787,1,0,0,0,3987,3988,3,716,358,0,3988,3989,3,656,328,0,3989,789,1,0,0,0,3990,3991,3,730,365,0,3991,3992,3,656,328,0,3992,791,1,0,0,0,3993,3994,3,78,39,0,3994,3995,3,802,401,0,3995,793,1,0,0,0,3996,3997,3,78,39,0,3997,3998,3,804,402,0,3998,795,1,0,0,0,3999,4e3,3,544,272,0,4e3,4001,5,142,0,0,4001,4002,3,674,337,0,4002,4003,3,798,399,0,4003,797,1,0,0,0,4004,4017,5,205,0,0,4005,4007,5,116,0,0,4006,4005,1,0,0,0,4006,4007,1,0,0,0,4007,4008,1,0,0,0,4008,4012,5,214,0,0,4009,4011,3,772,386,0,4010,4009,1,0,0,0,4011,4014,1,0,0,0,4012,4010,1,0,0,0,4012,4013,1,0,0,0,4013,4015,1,0,0,0,4014,4012,1,0,0,0,4015,4017,5,216,0,0,4016,4004,1,0,0,0,4016,4006,1,0,0,0,4017,799,1,0,0,0,4018,4019,3,544,272,0,4019,4028,5,60,0,0,4020,4022,3,228,114,0,4021,4023,3,198,99,0,4022,4021,1,0,0,0,4022,4023,1,0,0,0,4023,4029,1,0,0,0,4024,4026,5,142,0,0,4025,4027,3,496,248,0,4026,4025,1,0,0,0,4026,4027,1,0,0,0,4027,4029,1,0,0,0,4028,4020,1,0,0,0,4028,4024,1,0,0,0,4029,4031,1,0,0,0,4030,4032,3,394,197,0,4031,4030,1,0,0,0,4031,4032,1,0,0,0,4032,4033,1,0,0,0,4033,4034,3,798,399,0,4034,801,1,0,0,0,4035,4040,5,155,0,0,4036,4038,3,496,248,0,4037,4036,1,0,0,0,4037,4038,1,0,0,0,4038,4039,1,0,0,0,4039,4041,5,69,0,0,4040,4037,1,0,0,0,4040,4041,1,0,0,0,4041,4042,1,0,0,0,4042,4043,3,340,170,0,4043,4047,3,726,363,0,4044,4045,3,726,363,0,4045,4046,3,806,403,0,4046,4048,1,0,0,0,4047,4044,1,0,0,0,4047,4048,1,0,0,0,4048,4050,1,0,0,0,4049,4051,3,810,405,0,4050,4049,1,0,0,0,4050,4051,1,0,0,0,4051,4053,1,0,0,0,4052,4054,3,812,406,0,4053,4052,1,0,0,0,4053,4054,1,0,0,0,4054,4055,1,0,0,0,4055,4056,5,152,0,0,4056,4057,3,824,412,0,4057,4058,3,656,328,0,4058,803,1,0,0,0,4059,4084,3,726,363,0,4060,4064,5,155,0,0,4061,4062,3,726,363,0,4062,4063,3,806,403,0,4063,4065,1,0,0,0,4064,4061,1,0,0,0,4064,4065,1,0,0,0,4065,4067,1,0,0,0,4066,4068,3,810,405,0,4067,4066,1,0,0,0,4067,4068,1,0,0,0,4068,4070,1,0,0,0,4069,4071,3,812,406,0,4070,4069,1,0,0,0,4070,4071,1,0,0,0,4071,4085,1,0,0,0,4072,4073,3,726,363,0,4073,4075,3,806,403,0,4074,4076,3,810,405,0,4075,4074,1,0,0,0,4075,4076,1,0,0,0,4076,4078,1,0,0,0,4077,4079,3,812,406,0,4078,4077,1,0,0,0,4078,4079,1,0,0,0,4079,4085,1,0,0,0,4080,4082,3,810,405,0,4081,4083,3,812,406,0,4082,4081,1,0,0,0,4082,4083,1,0,0,0,4083,4085,1,0,0,0,4084,4060,1,0,0,0,4084,4072,1,0,0,0,4084,4080,1,0,0,0,4084,4085,1,0,0,0,4085,4086,1,0,0,0,4086,4087,5,152,0,0,4087,4088,3,824,412,0,4088,4089,3,656,328,0,4089,805,1,0,0,0,4090,4091,5,3,0,0,4091,4092,3,808,404,0,4092,807,1,0,0,0,4093,4094,3,702,351,0,4094,809,1,0,0,0,4095,4096,5,77,0,0,4096,4097,3,0,0,0,4097,811,1,0,0,0,4098,4099,5,53,0,0,4099,4100,3,814,407,0,4100,813,1,0,0,0,4101,4107,3,976,488,0,4102,4107,3,816,408,0,4103,4107,3,818,409,0,4104,4107,3,820,410,0,4105,4107,3,822,411,0,4106,4101,1,0,0,0,4106,4102,1,0,0,0,4106,4103,1,0,0,0,4106,4104,1,0,0,0,4106,4105,1,0,0,0,4107,815,1,0,0,0,4108,4117,3,678,339,0,4109,4113,5,214,0,0,4110,4112,3,658,329,0,4111,4110,1,0,0,0,4112,4115,1,0,0,0,4113,4111,1,0,0,0,4113,4114,1,0,0,0,4114,4116,1,0,0,0,4115,4113,1,0,0,0,4116,4118,5,216,0,0,4117,4109,1,0,0,0,4117,4118,1,0,0,0,4118,817,1,0,0,0,4119,4128,3,700,350,0,4120,4124,5,214,0,0,4121,4123,3,658,329,0,4122,4121,1,0,0,0,4123,4126,1,0,0,0,4124,4122,1,0,0,0,4124,4125,1,0,0,0,4125,4127,1,0,0,0,4126,4124,1,0,0,0,4127,4129,5,216,0,0,4128,4120,1,0,0,0,4128,4129,1,0,0,0,4129,819,1,0,0,0,4130,4139,3,716,358,0,4131,4135,5,214,0,0,4132,4134,3,658,329,0,4133,4132,1,0,0,0,4134,4137,1,0,0,0,4135,4133,1,0,0,0,4135,4136,1,0,0,0,4136,4138,1,0,0,0,4137,4135,1,0,0,0,4138,4140,5,216,0,0,4139,4131,1,0,0,0,4139,4140,1,0,0,0,4140,821,1,0,0,0,4141,4150,3,730,365,0,4142,4146,5,214,0,0,4143,4145,3,658,329,0,4144,4143,1,0,0,0,4145,4148,1,0,0,0,4146,4144,1,0,0,0,4146,4147,1,0,0,0,4147,4149,1,0,0,0,4148,4146,1,0,0,0,4149,4151,5,216,0,0,4150,4142,1,0,0,0,4150,4151,1,0,0,0,4151,823,1,0,0,0,4152,4153,3,826,413,0,4153,825,1,0,0,0,4154,4155,3,828,414,0,4155,4156,3,268,134,0,4156,827,1,0,0,0,4157,4158,3,978,489,0,4158,829,1,0,0,0,4159,4160,3,536,268,0,4160,4161,5,25,0,0,4161,4162,5,45,0,0,4162,4163,3,462,231,0,4163,4164,3,834,417,0,4164,831,1,0,0,0,4165,4166,3,544,272,0,4166,4167,5,25,0,0,4167,4168,3,674,337,0,4168,4169,3,834,417,0,4169,833,1,0,0,0,4170,4176,5,205,0,0,4171,4172,5,214,0,0,4172,4173,3,836,418,0,4173,4174,5,216,0,0,4174,4176,1,0,0,0,4175,4170,1,0,0,0,4175,4171,1,0,0,0,4176,835,1,0,0,0,4177,4179,3,838,419,0,4178,4177,1,0,0,0,4179,4182,1,0,0,0,4180,4178,1,0,0,0,4180,4181,1,0,0,0,4181,4184,1,0,0,0,4182,4180,1,0,0,0,4183,4185,3,296,148,0,4184,4183,1,0,0,0,4184,4185,1,0,0,0,4185,837,1,0,0,0,4186,4189,3,658,329,0,4187,4189,3,840,420,0,4188,4186,1,0,0,0,4188,4187,1,0,0,0,4189,839,1,0,0,0,4190,4192,3,78,39,0,4191,4190,1,0,0,0,4191,4192,1,0,0,0,4192,4193,1,0,0,0,4193,4194,5,134,0,0,4194,4195,3,452,226,0,4195,841,1,0,0,0,4196,4197,3,536,268,0,4197,4198,5,41,0,0,4198,4199,5,45,0,0,4199,4200,3,462,231,0,4200,4201,3,834,417,0,4201,843,1,0,0,0,4202,4203,3,544,272,0,4203,4204,5,41,0,0,4204,4205,3,848,424,0,4205,4206,3,834,417,0,4206,845,1,0,0,0,4207,4208,3,544,272,0,4208,4210,5,14,0,0,4209,4211,5,107,0,0,4210,4209,1,0,0,0,4210,4211,1,0,0,0,4211,4218,1,0,0,0,4212,4214,3,228,114,0,4213,4215,3,198,99,0,4214,4213,1,0,0,0,4214,4215,1,0,0,0,4215,4219,1,0,0,0,4216,4217,5,41,0,0,4217,4219,3,848,424,0,4218,4212,1,0,0,0,4218,4216,1,0,0,0,4219,4220,1,0,0,0,4220,4221,3,834,417,0,4221,847,1,0,0,0,4222,4224,3,496,248,0,4223,4222,1,0,0,0,4223,4224,1,0,0,0,4224,4226,1,0,0,0,4225,4227,3,394,197,0,4226,4225,1,0,0,0,4226,4227,1,0,0,0,4227,849,1,0,0,0,4228,4229,3,536,268,0,4229,4230,5,133,0,0,4230,4231,5,45,0,0,4231,4232,3,462,231,0,4232,4233,3,852,426,0,4233,851,1,0,0,0,4234,4244,5,205,0,0,4235,4239,5,214,0,0,4236,4238,3,854,427,0,4237,4236,1,0,0,0,4238,4241,1,0,0,0,4239,4237,1,0,0,0,4239,4240,1,0,0,0,4240,4242,1,0,0,0,4241,4239,1,0,0,0,4242,4244,5,216,0,0,4243,4234,1,0,0,0,4243,4235,1,0,0,0,4244,853,1,0,0,0,4245,4253,3,466,233,0,4246,4253,3,856,428,0,4247,4253,3,860,430,0,4248,4253,3,866,433,0,4249,4253,3,914,457,0,4250,4253,3,870,435,0,4251,4253,3,874,437,0,4252,4245,1,0,0,0,4252,4246,1,0,0,0,4252,4247,1,0,0,0,4252,4248,1,0,0,0,4252,4249,1,0,0,0,4252,4250,1,0,0,0,4252,4251,1,0,0,0,4253,855,1,0,0,0,4254,4255,3,78,39,0,4255,4256,3,858,429,0,4256,857,1,0,0,0,4257,4261,5,146,0,0,4258,4260,3,488,244,0,4259,4258,1,0,0,0,4260,4263,1,0,0,0,4261,4259,1,0,0,0,4261,4262,1,0,0,0,4262,4264,1,0,0,0,4263,4261,1,0,0,0,4264,4265,3,494,247,0,4265,859,1,0,0,0,4266,4268,3,78,39,0,4267,4266,1,0,0,0,4267,4268,1,0,0,0,4268,4269,1,0,0,0,4269,4270,3,862,431,0,4270,4271,3,864,432,0,4271,861,1,0,0,0,4272,4273,7,26,0,0,4273,863,1,0,0,0,4274,4276,3,228,114,0,4275,4277,3,198,99,0,4276,4275,1,0,0,0,4276,4277,1,0,0,0,4277,4278,1,0,0,0,4278,4279,3,852,426,0,4279,4298,1,0,0,0,4280,4282,3,488,244,0,4281,4280,1,0,0,0,4282,4285,1,0,0,0,4283,4281,1,0,0,0,4283,4284,1,0,0,0,4284,4286,1,0,0,0,4285,4283,1,0,0,0,4286,4293,5,41,0,0,4287,4289,3,488,244,0,4288,4287,1,0,0,0,4289,4290,1,0,0,0,4290,4288,1,0,0,0,4290,4291,1,0,0,0,4291,4293,1,0,0,0,4292,4283,1,0,0,0,4292,4288,1,0,0,0,4293,4294,1,0,0,0,4294,4295,3,848,424,0,4295,4296,3,834,417,0,4296,4298,1,0,0,0,4297,4274,1,0,0,0,4297,4292,1,0,0,0,4298,865,1,0,0,0,4299,4301,3,78,39,0,4300,4299,1,0,0,0,4300,4301,1,0,0,0,4301,4302,1,0,0,0,4302,4303,5,73,0,0,4303,4304,3,868,434,0,4304,867,1,0,0,0,4305,4307,3,228,114,0,4306,4308,3,198,99,0,4307,4306,1,0,0,0,4307,4308,1,0,0,0,4308,4309,1,0,0,0,4309,4310,3,834,417,0,4310,4329,1,0,0,0,4311,4313,3,488,244,0,4312,4311,1,0,0,0,4313,4316,1,0,0,0,4314,4312,1,0,0,0,4314,4315,1,0,0,0,4315,4317,1,0,0,0,4316,4314,1,0,0,0,4317,4324,5,32,0,0,4318,4320,3,488,244,0,4319,4318,1,0,0,0,4320,4321,1,0,0,0,4321,4319,1,0,0,0,4321,4322,1,0,0,0,4322,4324,1,0,0,0,4323,4314,1,0,0,0,4323,4319,1,0,0,0,4324,4325,1,0,0,0,4325,4326,3,974,487,0,4326,4327,3,834,417,0,4327,4329,1,0,0,0,4328,4305,1,0,0,0,4328,4323,1,0,0,0,4329,869,1,0,0,0,4330,4331,3,78,39,0,4331,4332,3,872,436,0,4332,871,1,0,0,0,4333,4337,5,5,0,0,4334,4336,3,488,244,0,4335,4334,1,0,0,0,4336,4339,1,0,0,0,4337,4335,1,0,0,0,4337,4338,1,0,0,0,4338,4340,1,0,0,0,4339,4337,1,0,0,0,4340,4341,3,494,247,0,4341,873,1,0,0,0,4342,4343,3,78,39,0,4343,4344,3,876,438,0,4344,875,1,0,0,0,4345,4349,5,140,0,0,4346,4348,3,488,244,0,4347,4346,1,0,0,0,4348,4351,1,0,0,0,4349,4347,1,0,0,0,4349,4350,1,0,0,0,4350,4352,1,0,0,0,4351,4349,1,0,0,0,4352,4353,3,494,247,0,4353,877,1,0,0,0,4354,4355,3,544,272,0,4355,4356,5,133,0,0,4356,4357,3,848,424,0,4357,4358,3,852,426,0,4358,879,1,0,0,0,4359,4364,3,544,272,0,4360,4362,5,14,0,0,4361,4363,5,107,0,0,4362,4361,1,0,0,0,4362,4363,1,0,0,0,4363,4365,1,0,0,0,4364,4360,1,0,0,0,4364,4365,1,0,0,0,4365,4366,1,0,0,0,4366,4375,5,135,0,0,4367,4369,3,228,114,0,4368,4370,3,198,99,0,4369,4368,1,0,0,0,4369,4370,1,0,0,0,4370,4376,1,0,0,0,4371,4373,5,133,0,0,4372,4374,3,496,248,0,4373,4372,1,0,0,0,4373,4374,1,0,0,0,4374,4376,1,0,0,0,4375,4367,1,0,0,0,4375,4371,1,0,0,0,4376,4378,1,0,0,0,4377,4379,3,394,197,0,4378,4377,1,0,0,0,4378,4379,1,0,0,0,4379,4382,1,0,0,0,4380,4381,5,24,0,0,4381,4383,3,882,441,0,4382,4380,1,0,0,0,4382,4383,1,0,0,0,4383,4384,1,0,0,0,4384,4385,3,852,426,0,4385,881,1,0,0,0,4386,4387,3,884,442,0,4387,883,1,0,0,0,4388,4389,3,886,443,0,4389,885,1,0,0,0,4390,4391,3,888,444,0,4391,887,1,0,0,0,4392,4393,3,340,170,0,4393,889,1,0,0,0,4394,4395,3,536,268,0,4395,4396,5,32,0,0,4396,4397,5,45,0,0,4397,4398,3,462,231,0,4398,4399,3,852,426,0,4399,891,1,0,0,0,4400,4401,3,544,272,0,4401,4402,5,32,0,0,4402,4403,3,848,424,0,4403,4404,3,852,426,0,4404,893,1,0,0,0,4405,4406,3,536,268,0,4406,4407,5,26,0,0,4407,4408,5,45,0,0,4408,4409,3,462,231,0,4409,4410,3,898,449,0,4410,895,1,0,0,0,4411,4412,3,544,272,0,4412,4413,5,26,0,0,4413,4414,3,848,424,0,4414,4415,3,898,449,0,4415,897,1,0,0,0,4416,4429,5,205,0,0,4417,4421,5,214,0,0,4418,4420,3,900,450,0,4419,4418,1,0,0,0,4420,4423,1,0,0,0,4421,4419,1,0,0,0,4421,4422,1,0,0,0,4422,4425,1,0,0,0,4423,4421,1,0,0,0,4424,4426,3,296,148,0,4425,4424,1,0,0,0,4425,4426,1,0,0,0,4426,4427,1,0,0,0,4427,4429,5,216,0,0,4428,4416,1,0,0,0,4428,4417,1,0,0,0,4429,899,1,0,0,0,4430,4436,3,658,329,0,4431,4436,3,840,420,0,4432,4436,3,856,428,0,4433,4436,3,870,435,0,4434,4436,3,902,451,0,4435,4430,1,0,0,0,4435,4431,1,0,0,0,4435,4432,1,0,0,0,4435,4433,1,0,0,0,4435,4434,1,0,0,0,4436,901,1,0,0,0,4437,4438,3,78,39,0,4438,4439,5,109,0,0,4439,4440,3,904,452,0,4440,903,1,0,0,0,4441,4443,3,488,244,0,4442,4441,1,0,0,0,4443,4446,1,0,0,0,4444,4442,1,0,0,0,4444,4445,1,0,0,0,4445,4447,1,0,0,0,4446,4444,1,0,0,0,4447,4448,3,848,424,0,4448,4449,3,852,426,0,4449,905,1,0,0,0,4450,4451,3,536,268,0,4451,4452,5,11,0,0,4452,4453,5,45,0,0,4453,4454,3,462,231,0,4454,4455,3,898,449,0,4455,907,1,0,0,0,4456,4457,3,544,272,0,4457,4458,5,11,0,0,4458,4459,3,848,424,0,4459,4460,3,898,449,0,4460,909,1,0,0,0,4461,4462,3,536,268,0,4462,4463,5,166,0,0,4463,4464,5,45,0,0,4464,4465,3,462,231,0,4465,4466,3,898,449,0,4466,911,1,0,0,0,4467,4468,3,544,272,0,4468,4469,5,166,0,0,4469,4470,3,848,424,0,4470,4471,3,898,449,0,4471,913,1,0,0,0,4472,4473,3,78,39,0,4473,4474,5,167,0,0,4474,4475,3,916,458,0,4475,915,1,0,0,0,4476,4480,3,228,114,0,4477,4479,3,202,101,0,4478,4477,1,0,0,0,4479,4482,1,0,0,0,4480,4478,1,0,0,0,4480,4481,1,0,0,0,4481,4483,1,0,0,0,4482,4480,1,0,0,0,4483,4484,3,852,426,0,4484,4503,1,0,0,0,4485,4487,3,488,244,0,4486,4485,1,0,0,0,4487,4490,1,0,0,0,4488,4486,1,0,0,0,4488,4489,1,0,0,0,4489,4491,1,0,0,0,4490,4488,1,0,0,0,4491,4498,5,133,0,0,4492,4494,3,488,244,0,4493,4492,1,0,0,0,4494,4495,1,0,0,0,4495,4493,1,0,0,0,4495,4496,1,0,0,0,4496,4498,1,0,0,0,4497,4488,1,0,0,0,4497,4493,1,0,0,0,4498,4499,1,0,0,0,4499,4500,3,848,424,0,4500,4501,3,852,426,0,4501,4503,1,0,0,0,4502,4476,1,0,0,0,4502,4497,1,0,0,0,4503,917,1,0,0,0,4504,4505,3,536,268,0,4505,4506,5,162,0,0,4506,4507,5,26,0,0,4507,4508,5,45,0,0,4508,4509,3,462,231,0,4509,4510,3,898,449,0,4510,919,1,0,0,0,4511,4512,3,544,272,0,4512,4513,5,162,0,0,4513,4514,5,26,0,0,4514,4515,3,848,424,0,4515,4516,3,898,449,0,4516,921,1,0,0,0,4517,4518,3,544,272,0,4518,4528,5,81,0,0,4519,4521,3,228,114,0,4520,4522,3,198,99,0,4521,4520,1,0,0,0,4521,4522,1,0,0,0,4522,4529,1,0,0,0,4523,4524,5,162,0,0,4524,4526,5,26,0,0,4525,4527,3,496,248,0,4526,4525,1,0,0,0,4526,4527,1,0,0,0,4527,4529,1,0,0,0,4528,4519,1,0,0,0,4528,4523,1,0,0,0,4529,4531,1,0,0,0,4530,4532,3,394,197,0,4531,4530,1,0,0,0,4531,4532,1,0,0,0,4532,4533,1,0,0,0,4533,4534,3,898,449,0,4534,923,1,0,0,0,4535,4536,3,536,268,0,4536,4537,5,169,0,0,4537,4538,5,45,0,0,4538,4539,3,462,231,0,4539,4540,3,926,463,0,4540,925,1,0,0,0,4541,4551,5,205,0,0,4542,4546,5,214,0,0,4543,4545,3,928,464,0,4544,4543,1,0,0,0,4545,4548,1,0,0,0,4546,4544,1,0,0,0,4546,4547,1,0,0,0,4547,4549,1,0,0,0,4548,4546,1,0,0,0,4549,4551,5,216,0,0,4550,4541,1,0,0,0,4550,4542,1,0,0,0,4551,927,1,0,0,0,4552,4556,3,466,233,0,4553,4556,3,440,220,0,4554,4556,3,930,465,0,4555,4552,1,0,0,0,4555,4553,1,0,0,0,4555,4554,1,0,0,0,4556,929,1,0,0,0,4557,4558,3,78,39,0,4558,4559,5,129,0,0,4559,4560,3,932,466,0,4560,931,1,0,0,0,4561,4563,3,228,114,0,4562,4564,3,198,99,0,4563,4562,1,0,0,0,4563,4564,1,0,0,0,4564,4565,1,0,0,0,4565,4566,3,500,250,0,4566,4583,1,0,0,0,4567,4569,3,488,244,0,4568,4567,1,0,0,0,4569,4572,1,0,0,0,4570,4568,1,0,0,0,4570,4571,1,0,0,0,4571,4573,1,0,0,0,4572,4570,1,0,0,0,4573,4580,5,130,0,0,4574,4576,3,488,244,0,4575,4574,1,0,0,0,4576,4577,1,0,0,0,4577,4575,1,0,0,0,4577,4578,1,0,0,0,4578,4580,1,0,0,0,4579,4570,1,0,0,0,4579,4575,1,0,0,0,4580,4581,1,0,0,0,4581,4583,3,494,247,0,4582,4561,1,0,0,0,4582,4579,1,0,0,0,4583,933,1,0,0,0,4584,4585,3,544,272,0,4585,4587,5,169,0,0,4586,4588,3,496,248,0,4587,4586,1,0,0,0,4587,4588,1,0,0,0,4588,4590,1,0,0,0,4589,4591,3,394,197,0,4590,4589,1,0,0,0,4590,4591,1,0,0,0,4591,4592,1,0,0,0,4592,4593,3,936,468,0,4593,935,1,0,0,0,4594,4604,5,205,0,0,4595,4599,5,214,0,0,4596,4598,3,938,469,0,4597,4596,1,0,0,0,4598,4601,1,0,0,0,4599,4597,1,0,0,0,4599,4600,1,0,0,0,4600,4602,1,0,0,0,4601,4599,1,0,0,0,4602,4604,5,216,0,0,4603,4594,1,0,0,0,4603,4595,1,0,0,0,4604,937,1,0,0,0,4605,4610,3,466,233,0,4606,4610,3,440,220,0,4607,4610,3,930,465,0,4608,4610,3,940,470,0,4609,4605,1,0,0,0,4609,4606,1,0,0,0,4609,4607,1,0,0,0,4609,4608,1,0,0,0,4610,939,1,0,0,0,4611,4614,5,62,0,0,4612,4615,3,942,471,0,4613,4615,3,944,472,0,4614,4612,1,0,0,0,4614,4613,1,0,0,0,4615,4616,1,0,0,0,4616,4617,3,48,24,0,4617,941,1,0,0,0,4618,4619,3,96,48,0,4619,943,1,0,0,0,4620,4621,3,98,49,0,4621,945,1,0,0,0,4622,4623,3,536,268,0,4623,4624,5,170,0,0,4624,4625,5,45,0,0,4625,4626,3,462,231,0,4626,4627,3,852,426,0,4627,947,1,0,0,0,4628,4629,3,544,272,0,4629,4630,5,170,0,0,4630,4631,3,848,424,0,4631,4632,3,852,426,0,4632,949,1,0,0,0,4633,4634,3,536,268,0,4634,4635,5,130,0,0,4635,4636,5,45,0,0,4636,4637,3,460,230,0,4637,951,1,0,0,0,4638,4639,3,544,272,0,4639,4640,5,130,0,0,4640,4641,3,494,247,0,4641,953,1,0,0,0,4642,4644,5,2,0,0,4643,4642,1,0,0,0,4643,4644,1,0,0,0,4644,4648,1,0,0,0,4645,4647,3,456,228,0,4646,4645,1,0,0,0,4647,4650,1,0,0,0,4648,4646,1,0,0,0,4648,4649,1,0,0,0,4649,4651,1,0,0,0,4650,4648,1,0,0,0,4651,4652,5,102,0,0,4652,4653,5,45,0,0,4653,4654,3,460,230,0,4654,955,1,0,0,0,4655,4656,3,222,111,0,4656,957,1,0,0,0,4657,4659,3,488,244,0,4658,4657,1,0,0,0,4659,4662,1,0,0,0,4660,4658,1,0,0,0,4660,4661,1,0,0,0,4661,4663,1,0,0,0,4662,4660,1,0,0,0,4663,4664,7,22,0,0,4664,4674,3,960,480,0,4665,4666,5,1,0,0,4666,4671,3,56,28,0,4667,4668,5,200,0,0,4668,4670,3,56,28,0,4669,4667,1,0,0,0,4670,4673,1,0,0,0,4671,4669,1,0,0,0,4671,4672,1,0,0,0,4672,4675,1,0,0,0,4673,4671,1,0,0,0,4674,4665,1,0,0,0,4674,4675,1,0,0,0,4675,4676,1,0,0,0,4676,4677,3,424,212,0,4677,959,1,0,0,0,4678,4680,3,46,23,0,4679,4678,1,0,0,0,4679,4680,1,0,0,0,4680,4684,1,0,0,0,4681,4685,5,204,0,0,4682,4683,5,158,0,0,4683,4685,5,24,0,0,4684,4681,1,0,0,0,4684,4682,1,0,0,0,4685,4687,1,0,0,0,4686,4679,1,0,0,0,4686,4687,1,0,0,0,4687,4688,1,0,0,0,4688,4689,3,222,111,0,4689,961,1,0,0,0,4690,4691,3,964,482,0,4691,963,1,0,0,0,4692,4694,5,127,0,0,4693,4692,1,0,0,0,4693,4694,1,0,0,0,4694,4696,1,0,0,0,4695,4697,7,19,0,0,4696,4695,1,0,0,0,4696,4697,1,0,0,0,4697,4698,1,0,0,0,4698,4700,3,234,117,0,4699,4701,3,198,99,0,4700,4699,1,0,0,0,4700,4701,1,0,0,0,4701,4703,1,0,0,0,4702,4704,3,394,197,0,4703,4702,1,0,0,0,4703,4704,1,0,0,0,4704,4705,1,0,0,0,4705,4706,3,424,212,0,4706,965,1,0,0,0,4707,4709,3,454,227,0,4708,4707,1,0,0,0,4708,4709,1,0,0,0,4709,4711,1,0,0,0,4710,4712,3,456,228,0,4711,4710,1,0,0,0,4712,4713,1,0,0,0,4713,4711,1,0,0,0,4713,4714,1,0,0,0,4714,4715,1,0,0,0,4715,4716,5,45,0,0,4716,4717,3,460,230,0,4717,967,1,0,0,0,4718,4720,3,490,245,0,4719,4721,3,488,244,0,4720,4719,1,0,0,0,4721,4722,1,0,0,0,4722,4720,1,0,0,0,4722,4723,1,0,0,0,4723,4724,1,0,0,0,4724,4725,3,494,247,0,4725,969,1,0,0,0,4726,4729,3,96,48,0,4727,4729,3,972,486,0,4728,4726,1,0,0,0,4728,4727,1,0,0,0,4729,971,1,0,0,0,4730,4731,3,90,45,0,4731,4732,5,183,0,0,4732,4735,5,198,0,0,4733,4734,5,183,0,0,4734,4736,5,179,0,0,4735,4733,1,0,0,0,4735,4736,1,0,0,0,4736,973,1,0,0,0,4737,4739,3,496,248,0,4738,4737,1,0,0,0,4738,4739,1,0,0,0,4739,4741,1,0,0,0,4740,4742,3,394,197,0,4741,4740,1,0,0,0,4741,4742,1,0,0,0,4742,975,1,0,0,0,4743,4744,1,0,0,0,4744,977,1,0,0,0,4745,4746,1,0,0,0,4746,979,1,0,0,0,4747,4748,1,0,0,0,4748,981,1,0,0,0,4749,4750,1,0,0,0,4750,983,1,0,0,0,4751,4752,5,218,0,0,4752,985,1,0,0,0,4753,4754,5,218,0,0,4754,987,1,0,0,0,4755,4756,1,0,0,0,4756,989,1,0,0,0,531,1005,1061,1068,1084,1086,1088,1098,1107,1113,1116,1121,1143,1152,1160,1172,1200,1207,1215,1219,1223,1227,1232,1237,1240,1247,1256,1264,1271,1281,1285,1293,1296,1298,1302,1308,1312,1318,1320,1329,1337,1345,1352,1356,1361,1364,1370,1384,1387,1395,1402,1408,1412,1419,1424,1431,1434,1440,1446,1448,1456,1484,1496,1504,1509,1513,1516,1519,1523,1525,1530,1539,1549,1558,1567,1576,1585,1593,1597,1603,1607,1609,1624,1632,1637,1639,1647,1656,1666,1671,1673,1681,1690,1700,1708,1716,1724,1729,1744,1747,1750,1754,1759,1768,1773,1775,1788,1791,1795,1799,1802,1807,1812,1815,1818,1821,1824,1828,1831,1836,1846,1848,1853,1858,1862,1867,1874,1877,1883,1891,1905,1911,1914,1919,1926,1929,1934,1938,1940,1944,1948,1950,1952,1959,1966,1974,1977,1982,1988,1991,1998,2015,2023,2025,2032,2039,2046,2051,2053,2066,2074,2082,2087,2089,2102,2111,2113,2120,2126,2128,2136,2145,2155,2160,2163,2201,2204,2207,2213,2216,2221,2223,2230,2240,2248,2253,2272,2275,2278,2284,2286,2299,2302,2305,2311,2313,2324,2338,2342,2344,2348,2355,2363,2376,2383,2387,2432,2437,2454,2472,2477,2497,2501,2508,2511,2518,2521,2525,2532,2534,2539,2543,2547,2551,2555,2557,2562,2565,2570,2577,2579,2588,2603,2605,2611,2615,2622,2631,2636,2640,2648,2655,2666,2672,2679,2690,2693,2698,2703,2705,2714,2723,2725,2729,2735,2740,2743,2747,2750,2757,2764,2770,2778,2785,2789,2797,2800,2807,2816,2825,2830,2862,2866,2873,2878,2885,2888,2895,2899,2906,2911,2918,2921,2931,2953,2956,2959,2962,2966,2970,2976,2982,2986,2992,2995,2998,3009,3022,3035,3039,3056,3074,3097,3105,3120,3132,3134,3138,3144,3153,3157,3162,3171,3177,3188,3191,3196,3208,3215,3221,3232,3236,3238,3250,3295,3298,3302,3306,3312,3326,3334,3336,3347,3349,3368,3372,3378,3383,3393,3401,3412,3415,3419,3422,3426,3440,3448,3453,3468,3472,3476,3489,3492,3496,3503,3509,3532,3539,3555,3559,3566,3570,3576,3580,3588,3591,3595,3617,3620,3629,3633,3635,3638,3648,3652,3656,3662,3666,3669,3674,3680,3687,3694,3701,3710,3718,3724,3727,3730,3740,3745,3750,3755,3760,3765,3771,3777,3792,3805,3811,3815,3826,3828,3836,3838,3844,3856,3863,3873,3876,3881,3898,3900,3917,3923,3927,3931,3937,3945,3950,3968,3979,4006,4012,4016,4022,4026,4028,4031,4037,4040,4047,4050,4053,4064,4067,4070,4075,4078,4082,4084,4106,4113,4117,4124,4128,4135,4139,4146,4150,4175,4180,4184,4188,4191,4210,4214,4218,4223,4226,4239,4243,4252,4261,4267,4276,4283,4290,4292,4297,4300,4307,4314,4321,4323,4328,4337,4349,4362,4364,4369,4373,4375,4378,4382,4421,4425,4428,4435,4444,4480,4488,4495,4497,4502,4521,4526,4528,4531,4546,4550,4555,4563,4570,4577,4579,4582,4587,4590,4599,4603,4609,4614,4643,4648,4660,4671,4674,4679,4684,4686,4693,4696,4700,4703,4708,4713,4722,4728,4735,4738,4741];static __ATN;static get _ATN(){return r.__ATN||(r.__ATN=new si().deserialize(r._serializedATN)),r.__ATN}static vocabulary=new or(r.literalNames,r.symbolicNames,[]);get vocabulary(){return r.vocabulary}static decisionsToDFA=r._ATN.decisionToState.map((e,t)=>new Dr(e,t))},te=class r extends u{constructor(e,t){super(e,t)}IF(){return this.getToken(s.IF,0)}ownedExpression(e){return e===void 0?this.getRuleContexts(r):this.getRuleContext(e,r)}QUESTION(){return this.getToken(s.QUESTION,0)}ELSE(){return this.getToken(s.ELSE,0)}PLUS(){return this.getToken(s.PLUS,0)}MINUS(){return this.getToken(s.MINUS,0)}TILDE(){return this.getToken(s.TILDE,0)}NOT(){return this.getToken(s.NOT,0)}typeReference(){return this.getRuleContext(0,zn)}AT_SIGN(){return this.getToken(s.AT_SIGN,0)}AT_AT(){return this.getToken(s.AT_AT,0)}ALL(){return this.getToken(s.ALL,0)}baseExpression(){return this.getRuleContext(0,Hu)}QUESTION_QUESTION(){return this.getToken(s.QUESTION_QUESTION,0)}IMPLIES(){return this.getToken(s.IMPLIES,0)}OR(){return this.getToken(s.OR,0)}AND(){return this.getToken(s.AND,0)}XOR(){return this.getToken(s.XOR,0)}PIPE(){return this.getToken(s.PIPE,0)}AMP(){return this.getToken(s.AMP,0)}EQ_EQ(){return this.getToken(s.EQ_EQ,0)}BANG_EQ(){return this.getToken(s.BANG_EQ,0)}EQ_EQ_EQ(){return this.getToken(s.EQ_EQ_EQ,0)}BANG_EQ_EQ(){return this.getToken(s.BANG_EQ_EQ,0)}LT(){return this.getToken(s.LT,0)}GT(){return this.getToken(s.GT,0)}LE(){return this.getToken(s.LE,0)}GE(){return this.getToken(s.GE,0)}DOT_DOT(){return this.getToken(s.DOT_DOT,0)}STAR(){return this.getToken(s.STAR,0)}SLASH(){return this.getToken(s.SLASH,0)}PERCENT(){return this.getToken(s.PERCENT,0)}STAR_STAR(){return this.getToken(s.STAR_STAR,0)}CARET(){return this.getToken(s.CARET,0)}ISTYPE(){return this.getToken(s.ISTYPE,0)}HASTYPE(){return this.getToken(s.HASTYPE,0)}AS(){return this.getToken(s.AS,0)}META(){return this.getToken(s.META,0)}LBRACK(){return this.getToken(s.LBRACK,0)}RBRACK(){return this.getToken(s.RBRACK,0)}sequenceExpressionList(){return this.getRuleContext(0,Qn)}HASH(){return this.getToken(s.HASH,0)}LPAREN(){return this.getToken(s.LPAREN,0)}RPAREN(){return this.getToken(s.RPAREN,0)}argumentList(){return this.getRuleContext(0,ai)}DOT(){return this.getToken(s.DOT,0)}qualifiedName(){return this.getRuleContext(0,F)}DOT_QUESTION(){return this.getToken(s.DOT_QUESTION,0)}bodyExpression(){return this.getRuleContext(0,$n)}ARROW(){return this.getToken(s.ARROW,0)}get ruleIndex(){return s.RULE_ownedExpression}enterRule(e){e.enterOwnedExpression&&e.enterOwnedExpression(this)}exitRule(e){e.exitOwnedExpression&&e.exitOwnedExpression(this)}accept(e){return e.visitOwnedExpression?e.visitOwnedExpression(this):e.visitChildren(this)}},zn=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_typeReference}enterRule(e){e.enterTypeReference&&e.enterTypeReference(this)}exitRule(e){e.exitTypeReference&&e.exitTypeReference(this)}accept(e){return e.visitTypeReference?e.visitTypeReference(this):e.visitChildren(this)}},Qn=class extends u{constructor(e,t){super(e,t)}ownedExpression(e){return e===void 0?this.getRuleContexts(te):this.getRuleContext(e,te)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_sequenceExpressionList}enterRule(e){e.enterSequenceExpressionList&&e.enterSequenceExpressionList(this)}exitRule(e){e.exitSequenceExpressionList&&e.exitSequenceExpressionList(this)}accept(e){return e.visitSequenceExpressionList?e.visitSequenceExpressionList(this):e.visitChildren(this)}},Hu=class extends u{constructor(e,t){super(e,t)}nullExpression(){return this.getRuleContext(0,Bu)}literalExpression(){return this.getRuleContext(0,sa)}qualifiedName(){return this.getRuleContext(0,F)}argumentList(){return this.getRuleContext(0,ai)}DOT(){return this.getToken(s.DOT,0)}METADATA(){return this.getToken(s.METADATA,0)}constructorExpression(){return this.getRuleContext(0,Vu)}bodyExpression(){return this.getRuleContext(0,$n)}LPAREN(){return this.getToken(s.LPAREN,0)}RPAREN(){return this.getToken(s.RPAREN,0)}sequenceExpressionList(){return this.getRuleContext(0,Qn)}get ruleIndex(){return s.RULE_baseExpression}enterRule(e){e.enterBaseExpression&&e.enterBaseExpression(this)}exitRule(e){e.exitBaseExpression&&e.exitBaseExpression(this)}accept(e){return e.visitBaseExpression?e.visitBaseExpression(this):e.visitChildren(this)}},Bu=class extends u{constructor(e,t){super(e,t)}NULL(){return this.getToken(s.NULL,0)}LPAREN(){return this.getToken(s.LPAREN,0)}RPAREN(){return this.getToken(s.RPAREN,0)}get ruleIndex(){return s.RULE_nullExpression}enterRule(e){e.enterNullExpression&&e.enterNullExpression(this)}exitRule(e){e.exitNullExpression&&e.exitNullExpression(this)}accept(e){return e.visitNullExpression?e.visitNullExpression(this):e.visitChildren(this)}},_u=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_featureReferenceExpression}enterRule(e){e.enterFeatureReferenceExpression&&e.enterFeatureReferenceExpression(this)}exitRule(e){e.exitFeatureReferenceExpression&&e.exitFeatureReferenceExpression(this)}accept(e){return e.visitFeatureReferenceExpression?e.visitFeatureReferenceExpression(this):e.visitChildren(this)}},N3=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}DOT(){return this.getToken(s.DOT,0)}METADATA(){return this.getToken(s.METADATA,0)}get ruleIndex(){return s.RULE_metadataAccessExpression}enterRule(e){e.enterMetadataAccessExpression&&e.enterMetadataAccessExpression(this)}exitRule(e){e.exitMetadataAccessExpression&&e.exitMetadataAccessExpression(this)}accept(e){return e.visitMetadataAccessExpression?e.visitMetadataAccessExpression(this):e.visitChildren(this)}},U3=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}argumentList(){return this.getRuleContext(0,ai)}get ruleIndex(){return s.RULE_invocationExpression}enterRule(e){e.enterInvocationExpression&&e.enterInvocationExpression(this)}exitRule(e){e.exitInvocationExpression&&e.exitInvocationExpression(this)}accept(e){return e.visitInvocationExpression?e.visitInvocationExpression(this):e.visitChildren(this)}},Vu=class extends u{constructor(e,t){super(e,t)}NEW(){return this.getToken(s.NEW,0)}qualifiedName(){return this.getRuleContext(0,F)}argumentList(){return this.getRuleContext(0,ai)}get ruleIndex(){return s.RULE_constructorExpression}enterRule(e){e.enterConstructorExpression&&e.enterConstructorExpression(this)}exitRule(e){e.exitConstructorExpression&&e.exitConstructorExpression(this)}accept(e){return e.visitConstructorExpression?e.visitConstructorExpression(this):e.visitChildren(this)}},$n=class extends u{constructor(e,t){super(e,t)}LBRACE(){return this.getToken(s.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,is)}RBRACE(){return this.getToken(s.RBRACE,0)}get ruleIndex(){return s.RULE_bodyExpression}enterRule(e){e.enterBodyExpression&&e.enterBodyExpression(this)}exitRule(e){e.exitBodyExpression&&e.exitBodyExpression(this)}accept(e){return e.visitBodyExpression?e.visitBodyExpression(this):e.visitChildren(this)}},ai=class extends u{constructor(e,t){super(e,t)}LPAREN(){return this.getToken(s.LPAREN,0)}RPAREN(){return this.getToken(s.RPAREN,0)}positionalArgumentList(){return this.getRuleContext(0,qu)}namedArgumentList(){return this.getRuleContext(0,ju)}get ruleIndex(){return s.RULE_argumentList}enterRule(e){e.enterArgumentList&&e.enterArgumentList(this)}exitRule(e){e.exitArgumentList&&e.exitArgumentList(this)}accept(e){return e.visitArgumentList?e.visitArgumentList(this):e.visitChildren(this)}},qu=class extends u{constructor(e,t){super(e,t)}ownedExpression(e){return e===void 0?this.getRuleContexts(te):this.getRuleContext(e,te)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_positionalArgumentList}enterRule(e){e.enterPositionalArgumentList&&e.enterPositionalArgumentList(this)}exitRule(e){e.exitPositionalArgumentList&&e.exitPositionalArgumentList(this)}accept(e){return e.visitPositionalArgumentList?e.visitPositionalArgumentList(this):e.visitChildren(this)}},ju=class extends u{constructor(e,t){super(e,t)}namedArgument(e){return e===void 0?this.getRuleContexts(Yn):this.getRuleContext(e,Yn)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_namedArgumentList}enterRule(e){e.enterNamedArgumentList&&e.enterNamedArgumentList(this)}exitRule(e){e.exitNamedArgumentList&&e.exitNamedArgumentList(this)}accept(e){return e.visitNamedArgumentList?e.visitNamedArgumentList(this):e.visitChildren(this)}},Yn=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}EQ(){return this.getToken(s.EQ,0)}ownedExpression(){return this.getRuleContext(0,te)}get ruleIndex(){return s.RULE_namedArgument}enterRule(e){e.enterNamedArgument&&e.enterNamedArgument(this)}exitRule(e){e.exitNamedArgument&&e.exitNamedArgument(this)}accept(e){return e.visitNamedArgument?e.visitNamedArgument(this):e.visitChildren(this)}},sa=class extends u{constructor(e,t){super(e,t)}literalBoolean(){return this.getRuleContext(0,Gu)}literalString(){return this.getRuleContext(0,Wu)}literalInteger(){return this.getRuleContext(0,Ku)}literalReal(){return this.getRuleContext(0,zu)}literalInfinity(){return this.getRuleContext(0,Qu)}get ruleIndex(){return s.RULE_literalExpression}enterRule(e){e.enterLiteralExpression&&e.enterLiteralExpression(this)}exitRule(e){e.exitLiteralExpression&&e.exitLiteralExpression(this)}accept(e){return e.visitLiteralExpression?e.visitLiteralExpression(this):e.visitChildren(this)}},Gu=class extends u{constructor(e,t){super(e,t)}TRUE(){return this.getToken(s.TRUE,0)}FALSE(){return this.getToken(s.FALSE,0)}get ruleIndex(){return s.RULE_literalBoolean}enterRule(e){e.enterLiteralBoolean&&e.enterLiteralBoolean(this)}exitRule(e){e.exitLiteralBoolean&&e.exitLiteralBoolean(this)}accept(e){return e.visitLiteralBoolean?e.visitLiteralBoolean(this):e.visitChildren(this)}},Wu=class extends u{constructor(e,t){super(e,t)}DOUBLE_STRING(){return this.getToken(s.DOUBLE_STRING,0)}get ruleIndex(){return s.RULE_literalString}enterRule(e){e.enterLiteralString&&e.enterLiteralString(this)}exitRule(e){e.exitLiteralString&&e.exitLiteralString(this)}accept(e){return e.visitLiteralString?e.visitLiteralString(this):e.visitChildren(this)}},Ku=class extends u{constructor(e,t){super(e,t)}INTEGER(){return this.getToken(s.INTEGER,0)}get ruleIndex(){return s.RULE_literalInteger}enterRule(e){e.enterLiteralInteger&&e.enterLiteralInteger(this)}exitRule(e){e.exitLiteralInteger&&e.exitLiteralInteger(this)}accept(e){return e.visitLiteralInteger?e.visitLiteralInteger(this):e.visitChildren(this)}},zu=class extends u{constructor(e,t){super(e,t)}REAL(){return this.getToken(s.REAL,0)}get ruleIndex(){return s.RULE_literalReal}enterRule(e){e.enterLiteralReal&&e.enterLiteralReal(this)}exitRule(e){e.exitLiteralReal&&e.exitLiteralReal(this)}accept(e){return e.visitLiteralReal?e.visitLiteralReal(this):e.visitChildren(this)}},Qu=class extends u{constructor(e,t){super(e,t)}STAR(){return this.getToken(s.STAR,0)}get ruleIndex(){return s.RULE_literalInfinity}enterRule(e){e.enterLiteralInfinity&&e.enterLiteralInfinity(this)}exitRule(e){e.exitLiteralInfinity&&e.exitLiteralInfinity(this)}accept(e){return e.visitLiteralInfinity?e.visitLiteralInfinity(this):e.visitChildren(this)}},$u=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,te)}get ruleIndex(){return s.RULE_argumentMember}enterRule(e){e.enterArgumentMember&&e.enterArgumentMember(this)}exitRule(e){e.exitArgumentMember&&e.exitArgumentMember(this)}accept(e){return e.visitArgumentMember?e.visitArgumentMember(this):e.visitChildren(this)}},Yu=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,te)}get ruleIndex(){return s.RULE_argumentExpressionMember}enterRule(e){e.enterArgumentExpressionMember&&e.enterArgumentExpressionMember(this)}exitRule(e){e.exitArgumentExpressionMember&&e.exitArgumentExpressionMember(this)}accept(e){return e.visitArgumentExpressionMember?e.visitArgumentExpressionMember(this):e.visitChildren(this)}},ft=class extends u{constructor(e,t){super(e,t)}IDENTIFIER(){return this.getToken(s.IDENTIFIER,0)}STRING(){return this.getToken(s.STRING,0)}get ruleIndex(){return s.RULE_name}enterRule(e){e.enterName&&e.enterName(this)}exitRule(e){e.exitName&&e.exitName(this)}accept(e){return e.visitName?e.visitName(this):e.visitChildren(this)}},me=class extends u{constructor(e,t){super(e,t)}LT(){return this.getToken(s.LT,0)}name(e){return e===void 0?this.getRuleContexts(ft):this.getRuleContext(e,ft)}GT(){return this.getToken(s.GT,0)}get ruleIndex(){return s.RULE_identification}enterRule(e){e.enterIdentification&&e.enterIdentification(this)}exitRule(e){e.exitIdentification&&e.exitIdentification(this)}accept(e){return e.visitIdentification?e.visitIdentification(this):e.visitChildren(this)}},Je=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}relationshipOwnedElement(e){return e===void 0?this.getRuleContexts(aa):this.getRuleContext(e,aa)}ownedAnnotation(e){return e===void 0?this.getRuleContexts(Jn):this.getRuleContext(e,Jn)}get ruleIndex(){return s.RULE_relationshipBody}enterRule(e){e.enterRelationshipBody&&e.enterRelationshipBody(this)}exitRule(e){e.exitRelationshipBody&&e.exitRelationshipBody(this)}accept(e){return e.visitRelationshipBody?e.visitRelationshipBody(this):e.visitChildren(this)}},aa=class extends u{constructor(e,t){super(e,t)}ownedRelatedElement(){return this.getRuleContext(0,Ju)}ownedAnnotation(){return this.getRuleContext(0,Jn)}get ruleIndex(){return s.RULE_relationshipOwnedElement}enterRule(e){e.enterRelationshipOwnedElement&&e.enterRelationshipOwnedElement(this)}exitRule(e){e.exitRelationshipOwnedElement&&e.exitRelationshipOwnedElement(this)}accept(e){return e.visitRelationshipOwnedElement?e.visitRelationshipOwnedElement(this):e.visitChildren(this)}},Ju=class extends u{constructor(e,t){super(e,t)}nonFeatureElement(){return this.getRuleContext(0,da)}featureElement(){return this.getRuleContext(0,oi)}get ruleIndex(){return s.RULE_ownedRelatedElement}enterRule(e){e.enterOwnedRelatedElement&&e.enterOwnedRelatedElement(this)}exitRule(e){e.exitOwnedRelatedElement&&e.exitOwnedRelatedElement(this)}accept(e){return e.visitOwnedRelatedElement?e.visitOwnedRelatedElement(this):e.visitChildren(this)}},oa=class extends u{constructor(e,t){super(e,t)}DEPENDENCY(){return this.getToken(s.DEPENDENCY,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}TO(){return this.getToken(s.TO,0)}relationshipBody(){return this.getRuleContext(0,Je)}prefixMetadataAnnotation(e){return e===void 0?this.getRuleContexts(Da):this.getRuleContext(e,Da)}FROM(){return this.getToken(s.FROM,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}identification(){return this.getRuleContext(0,me)}dependencyDeclaration(){return this.getRuleContext(0,j1)}get ruleIndex(){return s.RULE_dependency}enterRule(e){e.enterDependency&&e.enterDependency(this)}exitRule(e){e.exitDependency&&e.exitDependency(this)}accept(e){return e.visitDependency?e.visitDependency(this):e.visitChildren(this)}},Ir=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_annotation}enterRule(e){e.enterAnnotation&&e.enterAnnotation(this)}exitRule(e){e.exitAnnotation&&e.exitAnnotation(this)}accept(e){return e.visitAnnotation?e.visitAnnotation(this):e.visitChildren(this)}},Jn=class extends u{constructor(e,t){super(e,t)}annotatingElement(){return this.getRuleContext(0,Hi)}get ruleIndex(){return s.RULE_ownedAnnotation}enterRule(e){e.enterOwnedAnnotation&&e.enterOwnedAnnotation(this)}exitRule(e){e.exitOwnedAnnotation&&e.exitOwnedAnnotation(this)}accept(e){return e.visitOwnedAnnotation?e.visitOwnedAnnotation(this):e.visitChildren(this)}},Hi=class extends u{constructor(e,t){super(e,t)}comment(){return this.getRuleContext(0,Xu)}documentation(){return this.getRuleContext(0,Zu)}textualRepresentation(){return this.getRuleContext(0,ec)}metadataFeature(){return this.getRuleContext(0,B1)}get ruleIndex(){return s.RULE_annotatingElement}enterRule(e){e.enterAnnotatingElement&&e.enterAnnotatingElement(this)}exitRule(e){e.exitAnnotatingElement&&e.exitAnnotatingElement(this)}accept(e){return e.visitAnnotatingElement?e.visitAnnotatingElement(this):e.visitChildren(this)}},Xu=class extends u{constructor(e,t){super(e,t)}REGULAR_COMMENT(){return this.getToken(s.REGULAR_COMMENT,0)}COMMENT(){return this.getToken(s.COMMENT,0)}LOCALE(){return this.getToken(s.LOCALE,0)}DOUBLE_STRING(){return this.getToken(s.DOUBLE_STRING,0)}identification(){return this.getRuleContext(0,me)}ABOUT(){return this.getToken(s.ABOUT,0)}annotation(e){return e===void 0?this.getRuleContexts(Ir):this.getRuleContext(e,Ir)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_comment}enterRule(e){e.enterComment&&e.enterComment(this)}exitRule(e){e.exitComment&&e.exitComment(this)}accept(e){return e.visitComment?e.visitComment(this):e.visitChildren(this)}},Zu=class extends u{constructor(e,t){super(e,t)}DOC(){return this.getToken(s.DOC,0)}REGULAR_COMMENT(){return this.getToken(s.REGULAR_COMMENT,0)}identification(){return this.getRuleContext(0,me)}LOCALE(){return this.getToken(s.LOCALE,0)}DOUBLE_STRING(){return this.getToken(s.DOUBLE_STRING,0)}get ruleIndex(){return s.RULE_documentation}enterRule(e){e.enterDocumentation&&e.enterDocumentation(this)}exitRule(e){e.exitDocumentation&&e.exitDocumentation(this)}accept(e){return e.visitDocumentation?e.visitDocumentation(this):e.visitChildren(this)}},ec=class extends u{constructor(e,t){super(e,t)}LANGUAGE(){return this.getToken(s.LANGUAGE,0)}DOUBLE_STRING(){return this.getToken(s.DOUBLE_STRING,0)}REGULAR_COMMENT(){return this.getToken(s.REGULAR_COMMENT,0)}REP(){return this.getToken(s.REP,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_textualRepresentation}enterRule(e){e.enterTextualRepresentation&&e.enterTextualRepresentation(this)}exitRule(e){e.exitTextualRepresentation&&e.exitTextualRepresentation(this)}accept(e){return e.visitTextualRepresentation?e.visitTextualRepresentation(this):e.visitChildren(this)}},w3=class extends u{constructor(e,t){super(e,t)}EOF(){return this.getToken(s.EOF,0)}packageBodyElement(e){return e===void 0?this.getRuleContexts(zi):this.getRuleContext(e,zi)}get ruleIndex(){return s.RULE_rootNamespace}enterRule(e){e.enterRootNamespace&&e.enterRootNamespace(this)}exitRule(e){e.exitRootNamespace&&e.exitRootNamespace(this)}accept(e){return e.visitRootNamespace?e.visitRootNamespace(this):e.visitChildren(this)}},tc=class extends u{constructor(e,t){super(e,t)}namespaceDeclaration(){return this.getRuleContext(0,rc)}namespaceBody(){return this.getRuleContext(0,ic)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(Ze):this.getRuleContext(e,Ze)}get ruleIndex(){return s.RULE_namespace}enterRule(e){e.enterNamespace&&e.enterNamespace(this)}exitRule(e){e.exitNamespace&&e.exitNamespace(this)}accept(e){return e.visitNamespace?e.visitNamespace(this):e.visitChildren(this)}},rc=class extends u{constructor(e,t){super(e,t)}NAMESPACE(){return this.getToken(s.NAMESPACE,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_namespaceDeclaration}enterRule(e){e.enterNamespaceDeclaration&&e.enterNamespaceDeclaration(this)}exitRule(e){e.exitNamespaceDeclaration&&e.exitNamespaceDeclaration(this)}accept(e){return e.visitNamespaceDeclaration?e.visitNamespaceDeclaration(this):e.visitChildren(this)}},ic=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}namespaceBodyElement(e){return e===void 0?this.getRuleContexts(la):this.getRuleContext(e,la)}get ruleIndex(){return s.RULE_namespaceBody}enterRule(e){e.enterNamespaceBody&&e.enterNamespaceBody(this)}exitRule(e){e.exitNamespaceBody&&e.exitNamespaceBody(this)}accept(e){return e.visitNamespaceBody?e.visitNamespaceBody(this):e.visitChildren(this)}},la=class extends u{constructor(e,t){super(e,t)}namespaceMember(){return this.getRuleContext(0,nc)}aliasMember(){return this.getRuleContext(0,lr)}importRule(){return this.getRuleContext(0,jt)}get ruleIndex(){return s.RULE_namespaceBodyElement}enterRule(e){e.enterNamespaceBodyElement&&e.enterNamespaceBodyElement(this)}exitRule(e){e.exitNamespaceBodyElement&&e.exitNamespaceBodyElement(this)}accept(e){return e.visitNamespaceBodyElement?e.visitNamespaceBodyElement(this):e.visitChildren(this)}},re=class extends u{constructor(e,t){super(e,t)}visibilityIndicator(){return this.getRuleContext(0,ua)}get ruleIndex(){return s.RULE_memberPrefix}enterRule(e){e.enterMemberPrefix&&e.enterMemberPrefix(this)}exitRule(e){e.exitMemberPrefix&&e.exitMemberPrefix(this)}accept(e){return e.visitMemberPrefix?e.visitMemberPrefix(this):e.visitChildren(this)}},ua=class extends u{constructor(e,t){super(e,t)}PUBLIC(){return this.getToken(s.PUBLIC,0)}PRIVATE(){return this.getToken(s.PRIVATE,0)}PROTECTED(){return this.getToken(s.PROTECTED,0)}get ruleIndex(){return s.RULE_visibilityIndicator}enterRule(e){e.enterVisibilityIndicator&&e.enterVisibilityIndicator(this)}exitRule(e){e.exitVisibilityIndicator&&e.exitVisibilityIndicator(this)}accept(e){return e.visitVisibilityIndicator?e.visitVisibilityIndicator(this):e.visitChildren(this)}},nc=class extends u{constructor(e,t){super(e,t)}nonFeatureMember(){return this.getRuleContext(0,Xn)}namespaceFeatureMember(){return this.getRuleContext(0,sc)}get ruleIndex(){return s.RULE_namespaceMember}enterRule(e){e.enterNamespaceMember&&e.enterNamespaceMember(this)}exitRule(e){e.exitNamespaceMember&&e.exitNamespaceMember(this)}accept(e){return e.visitNamespaceMember?e.visitNamespaceMember(this):e.visitChildren(this)}},Xn=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}memberElement(){return this.getRuleContext(0,lc)}get ruleIndex(){return s.RULE_nonFeatureMember}enterRule(e){e.enterNonFeatureMember&&e.enterNonFeatureMember(this)}exitRule(e){e.exitNonFeatureMember&&e.exitNonFeatureMember(this)}accept(e){return e.visitNonFeatureMember?e.visitNonFeatureMember(this):e.visitChildren(this)}},sc=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}featureElement(){return this.getRuleContext(0,oi)}get ruleIndex(){return s.RULE_namespaceFeatureMember}enterRule(e){e.enterNamespaceFeatureMember&&e.enterNamespaceFeatureMember(this)}exitRule(e){e.exitNamespaceFeatureMember&&e.exitNamespaceFeatureMember(this)}accept(e){return e.visitNamespaceFeatureMember?e.visitNamespaceFeatureMember(this):e.visitChildren(this)}},lr=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}ALIAS(){return this.getToken(s.ALIAS,0)}FOR(){return this.getToken(s.FOR,0)}qualifiedName(){return this.getRuleContext(0,F)}relationshipBody(){return this.getRuleContext(0,Je)}LT(){return this.getToken(s.LT,0)}name(e){return e===void 0?this.getRuleContexts(ft):this.getRuleContext(e,ft)}GT(){return this.getToken(s.GT,0)}get ruleIndex(){return s.RULE_aliasMember}enterRule(e){e.enterAliasMember&&e.enterAliasMember(this)}exitRule(e){e.exitAliasMember&&e.exitAliasMember(this)}accept(e){return e.visitAliasMember?e.visitAliasMember(this):e.visitChildren(this)}},F=class extends u{constructor(e,t){super(e,t)}name(e){return e===void 0?this.getRuleContexts(ft):this.getRuleContext(e,ft)}DOLLAR(){return this.getToken(s.DOLLAR,0)}COLON_COLON(e){return e===void 0?this.getTokens(s.COLON_COLON):this.getToken(s.COLON_COLON,e)}get ruleIndex(){return s.RULE_qualifiedName}enterRule(e){e.enterQualifiedName&&e.enterQualifiedName(this)}exitRule(e){e.exitQualifiedName&&e.exitQualifiedName(this)}accept(e){return e.visitQualifiedName?e.visitQualifiedName(this):e.visitChildren(this)}},jt=class extends u{constructor(e,t){super(e,t)}IMPORT(){return this.getToken(s.IMPORT,0)}importDeclaration(){return this.getRuleContext(0,ac)}relationshipBody(){return this.getRuleContext(0,Je)}visibilityIndicator(){return this.getRuleContext(0,ua)}ALL(){return this.getToken(s.ALL,0)}get ruleIndex(){return s.RULE_importRule}enterRule(e){e.enterImportRule&&e.enterImportRule(this)}exitRule(e){e.exitImportRule&&e.exitImportRule(this)}accept(e){return e.visitImportRule?e.visitImportRule(this):e.visitChildren(this)}},ac=class extends u{constructor(e,t){super(e,t)}membershipImport(){return this.getRuleContext(0,Zn)}namespaceImport(){return this.getRuleContext(0,ca)}get ruleIndex(){return s.RULE_importDeclaration}enterRule(e){e.enterImportDeclaration&&e.enterImportDeclaration(this)}exitRule(e){e.exitImportDeclaration&&e.exitImportDeclaration(this)}accept(e){return e.visitImportDeclaration?e.visitImportDeclaration(this):e.visitChildren(this)}},Zn=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}COLON_COLON(){return this.getToken(s.COLON_COLON,0)}STAR_STAR(){return this.getToken(s.STAR_STAR,0)}get ruleIndex(){return s.RULE_membershipImport}enterRule(e){e.enterMembershipImport&&e.enterMembershipImport(this)}exitRule(e){e.exitMembershipImport&&e.exitMembershipImport(this)}accept(e){return e.visitMembershipImport?e.visitMembershipImport(this):e.visitChildren(this)}},ca=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}COLON_COLON(e){return e===void 0?this.getTokens(s.COLON_COLON):this.getToken(s.COLON_COLON,e)}STAR(){return this.getToken(s.STAR,0)}STAR_STAR(){return this.getToken(s.STAR_STAR,0)}filterPackage(){return this.getRuleContext(0,oc)}get ruleIndex(){return s.RULE_namespaceImport}enterRule(e){e.enterNamespaceImport&&e.enterNamespaceImport(this)}exitRule(e){e.exitNamespaceImport&&e.exitNamespaceImport(this)}accept(e){return e.visitNamespaceImport?e.visitNamespaceImport(this):e.visitChildren(this)}},oc=class extends u{constructor(e,t){super(e,t)}filterPackageImportDeclaration(){return this.getRuleContext(0,Od)}filterPackageMember(e){return e===void 0?this.getRuleContexts(ha):this.getRuleContext(e,ha)}filterPackageImport(){return this.getRuleContext(0,_d)}get ruleIndex(){return s.RULE_filterPackage}enterRule(e){e.enterFilterPackage&&e.enterFilterPackage(this)}exitRule(e){e.exitFilterPackage&&e.exitFilterPackage(this)}accept(e){return e.visitFilterPackage?e.visitFilterPackage(this):e.visitChildren(this)}},ha=class extends u{constructor(e,t){super(e,t)}LBRACK(){return this.getToken(s.LBRACK,0)}ownedExpression(){return this.getRuleContext(0,te)}RBRACK(){return this.getToken(s.RBRACK,0)}get ruleIndex(){return s.RULE_filterPackageMember}enterRule(e){e.enterFilterPackageMember&&e.enterFilterPackageMember(this)}exitRule(e){e.exitFilterPackageMember&&e.exitFilterPackageMember(this)}accept(e){return e.visitFilterPackageMember?e.visitFilterPackageMember(this):e.visitChildren(this)}},lc=class extends u{constructor(e,t){super(e,t)}annotatingElement(){return this.getRuleContext(0,Hi)}nonFeatureElement(){return this.getRuleContext(0,da)}get ruleIndex(){return s.RULE_memberElement}enterRule(e){e.enterMemberElement&&e.enterMemberElement(this)}exitRule(e){e.exitMemberElement&&e.exitMemberElement(this)}accept(e){return e.visitMemberElement?e.visitMemberElement(this):e.visitChildren(this)}},da=class extends u{constructor(e,t){super(e,t)}dependency(){return this.getRuleContext(0,oa)}namespace(){return this.getRuleContext(0,tc)}type(){return this.getRuleContext(0,uc)}classifier(){return this.getRuleContext(0,vc)}dataType(){return this.getRuleContext(0,Wc)}class(){return this.getRuleContext(0,Kc)}structure(){return this.getRuleContext(0,zc)}metaclass(){return this.getRuleContext(0,H1)}association(){return this.getRuleContext(0,Qc)}associationStructure(){return this.getRuleContext(0,$c)}interaction(){return this.getRuleContext(0,T1)}behavior(){return this.getRuleContext(0,a1)}function(){return this.getRuleContext(0,l1)}predicate(){return this.getRuleContext(0,c1)}multiplicity(){return this.getRuleContext(0,O1)}package(){return this.getRuleContext(0,ka)}libraryPackage(){return this.getRuleContext(0,Fa)}specialization(){return this.getRuleContext(0,xc)}conjugation(){return this.getRuleContext(0,mc)}subclassification(){return this.getRuleContext(0,Lc)}disjoining(){return this.getRuleContext(0,Rc)}featureInverting(){return this.getRuleContext(0,qc)}featureTyping(){return this.getRuleContext(0,qi)}subsetting(){return this.getRuleContext(0,Hc)}redefinition(){return this.getRuleContext(0,_c)}typeFeaturing(){return this.getRuleContext(0,Gc)}get ruleIndex(){return s.RULE_nonFeatureElement}enterRule(e){e.enterNonFeatureElement&&e.enterNonFeatureElement(this)}exitRule(e){e.exitNonFeatureElement&&e.exitNonFeatureElement(this)}accept(e){return e.visitNonFeatureElement?e.visitNonFeatureElement(this):e.visitChildren(this)}},oi=class extends u{constructor(e,t){super(e,t)}feature(){return this.getRuleContext(0,Sc)}step(){return this.getRuleContext(0,o1)}expression(){return this.getRuleContext(0,u1)}booleanExpression(){return this.getRuleContext(0,h1)}invariant(){return this.getRuleContext(0,d1)}connector(){return this.getRuleContext(0,Yc)}bindingConnector(){return this.getRuleContext(0,r1)}succession(){return this.getRuleContext(0,n1)}flow(){return this.getRuleContext(0,A1)}successionFlow(){return this.getRuleContext(0,M1)}get ruleIndex(){return s.RULE_featureElement}enterRule(e){e.enterFeatureElement&&e.enterFeatureElement(this)}exitRule(e){e.exitFeatureElement&&e.exitFeatureElement(this)}accept(e){return e.visitFeatureElement?e.visitFeatureElement(this):e.visitChildren(this)}},uc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}TYPE(){return this.getToken(s.TYPE,0)}typeDeclaration(){return this.getRuleContext(0,cc)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_type}enterRule(e){e.enterType&&e.enterType(this)}exitRule(e){e.exitType&&e.exitType(this)}accept(e){return e.visitType?e.visitType(this):e.visitChildren(this)}},xt=class extends u{constructor(e,t){super(e,t)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(Ze):this.getRuleContext(e,Ze)}get ruleIndex(){return s.RULE_typePrefix}enterRule(e){e.enterTypePrefix&&e.enterTypePrefix(this)}exitRule(e){e.exitTypePrefix&&e.exitTypePrefix(this)}accept(e){return e.visitTypePrefix?e.visitTypePrefix(this):e.visitChildren(this)}},cc=class extends u{constructor(e,t){super(e,t)}ALL(){return this.getToken(s.ALL,0)}identification(){return this.getRuleContext(0,me)}ownedMultiplicity(){return this.getRuleContext(0,kr)}specializationPart(e){return e===void 0?this.getRuleContexts(pa):this.getRuleContext(e,pa)}conjugationPart(e){return e===void 0?this.getRuleContexts(Bi):this.getRuleContext(e,Bi)}typeRelationshipPart(e){return e===void 0?this.getRuleContexts(li):this.getRuleContext(e,li)}get ruleIndex(){return s.RULE_typeDeclaration}enterRule(e){e.enterTypeDeclaration&&e.enterTypeDeclaration(this)}exitRule(e){e.exitTypeDeclaration&&e.exitTypeDeclaration(this)}accept(e){return e.visitTypeDeclaration?e.visitTypeDeclaration(this):e.visitChildren(this)}},pa=class extends u{constructor(e,t){super(e,t)}ownedSpecialization(e){return e===void 0?this.getRuleContexts(fa):this.getRuleContext(e,fa)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_specializationPart}enterRule(e){e.enterSpecializationPart&&e.enterSpecializationPart(this)}exitRule(e){e.exitSpecializationPart&&e.exitSpecializationPart(this)}accept(e){return e.visitSpecializationPart?e.visitSpecializationPart(this):e.visitChildren(this)}},Bi=class extends u{constructor(e,t){super(e,t)}ownedConjugation(){return this.getRuleContext(0,bc)}TILDE(){return this.getToken(s.TILDE,0)}CONJUGATES(){return this.getToken(s.CONJUGATES,0)}get ruleIndex(){return s.RULE_conjugationPart}enterRule(e){e.enterConjugationPart&&e.enterConjugationPart(this)}exitRule(e){e.exitConjugationPart&&e.exitConjugationPart(this)}accept(e){return e.visitConjugationPart?e.visitConjugationPart(this):e.visitChildren(this)}},li=class extends u{constructor(e,t){super(e,t)}disjoiningPart(){return this.getRuleContext(0,hc)}unioningPart(){return this.getRuleContext(0,dc)}intersectingPart(){return this.getRuleContext(0,pc)}differencingPart(){return this.getRuleContext(0,fc)}get ruleIndex(){return s.RULE_typeRelationshipPart}enterRule(e){e.enterTypeRelationshipPart&&e.enterTypeRelationshipPart(this)}exitRule(e){e.exitTypeRelationshipPart&&e.exitTypeRelationshipPart(this)}accept(e){return e.visitTypeRelationshipPart?e.visitTypeRelationshipPart(this):e.visitChildren(this)}},hc=class extends u{constructor(e,t){super(e,t)}DISJOINT(){return this.getToken(s.DISJOINT,0)}FROM(){return this.getToken(s.FROM,0)}ownedDisjoining(e){return e===void 0?this.getRuleContexts(xa):this.getRuleContext(e,xa)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_disjoiningPart}enterRule(e){e.enterDisjoiningPart&&e.enterDisjoiningPart(this)}exitRule(e){e.exitDisjoiningPart&&e.exitDisjoiningPart(this)}accept(e){return e.visitDisjoiningPart?e.visitDisjoiningPart(this):e.visitChildren(this)}},dc=class extends u{constructor(e,t){super(e,t)}UNIONS(){return this.getToken(s.UNIONS,0)}unioning(e){return e===void 0?this.getRuleContexts(ma):this.getRuleContext(e,ma)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_unioningPart}enterRule(e){e.enterUnioningPart&&e.enterUnioningPart(this)}exitRule(e){e.exitUnioningPart&&e.exitUnioningPart(this)}accept(e){return e.visitUnioningPart?e.visitUnioningPart(this):e.visitChildren(this)}},pc=class extends u{constructor(e,t){super(e,t)}INTERSECTS(){return this.getToken(s.INTERSECTS,0)}intersecting(e){return e===void 0?this.getRuleContexts(ba):this.getRuleContext(e,ba)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_intersectingPart}enterRule(e){e.enterIntersectingPart&&e.enterIntersectingPart(this)}exitRule(e){e.exitIntersectingPart&&e.exitIntersectingPart(this)}accept(e){return e.visitIntersectingPart?e.visitIntersectingPart(this):e.visitChildren(this)}},fc=class extends u{constructor(e,t){super(e,t)}DIFFERENCES(){return this.getToken(s.DIFFERENCES,0)}differencing(e){return e===void 0?this.getRuleContexts(Ra):this.getRuleContext(e,Ra)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_differencingPart}enterRule(e){e.enterDifferencingPart&&e.enterDifferencingPart(this)}exitRule(e){e.exitDifferencingPart&&e.exitDifferencingPart(this)}accept(e){return e.visitDifferencingPart?e.visitDifferencingPart(this):e.visitChildren(this)}},Fe=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}typeBodyElement(e){return e===void 0?this.getRuleContexts(_i):this.getRuleContext(e,_i)}get ruleIndex(){return s.RULE_typeBody}enterRule(e){e.enterTypeBody&&e.enterTypeBody(this)}exitRule(e){e.exitTypeBody&&e.exitTypeBody(this)}accept(e){return e.visitTypeBody?e.visitTypeBody(this):e.visitChildren(this)}},_i=class extends u{constructor(e,t){super(e,t)}nonFeatureMember(){return this.getRuleContext(0,Xn)}featureMember(){return this.getRuleContext(0,gc)}aliasMember(){return this.getRuleContext(0,lr)}importRule(){return this.getRuleContext(0,jt)}get ruleIndex(){return s.RULE_typeBodyElement}enterRule(e){e.enterTypeBodyElement&&e.enterTypeBodyElement(this)}exitRule(e){e.exitTypeBodyElement&&e.exitTypeBodyElement(this)}accept(e){return e.visitTypeBodyElement?e.visitTypeBodyElement(this):e.visitChildren(this)}},xc=class extends u{constructor(e,t){super(e,t)}SUBTYPE(){return this.getToken(s.SUBTYPE,0)}specificType(){return this.getRuleContext(0,es)}generalType(){return this.getRuleContext(0,ui)}relationshipBody(){return this.getRuleContext(0,Je)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_specialization}enterRule(e){e.enterSpecialization&&e.enterSpecialization(this)}exitRule(e){e.exitSpecialization&&e.exitSpecialization(this)}accept(e){return e.visitSpecialization?e.visitSpecialization(this):e.visitChildren(this)}},fa=class extends u{constructor(e,t){super(e,t)}generalType(){return this.getRuleContext(0,ui)}get ruleIndex(){return s.RULE_ownedSpecialization}enterRule(e){e.enterOwnedSpecialization&&e.enterOwnedSpecialization(this)}exitRule(e){e.exitOwnedSpecialization&&e.exitOwnedSpecialization(this)}accept(e){return e.visitOwnedSpecialization?e.visitOwnedSpecialization(this):e.visitChildren(this)}},es=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_specificType}enterRule(e){e.enterSpecificType&&e.enterSpecificType(this)}exitRule(e){e.exitSpecificType&&e.exitSpecificType(this)}accept(e){return e.visitSpecificType?e.visitSpecificType(this):e.visitChildren(this)}},ui=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_generalType}enterRule(e){e.enterGeneralType&&e.enterGeneralType(this)}exitRule(e){e.exitGeneralType&&e.exitGeneralType(this)}accept(e){return e.visitGeneralType?e.visitGeneralType(this):e.visitChildren(this)}},mc=class extends u{constructor(e,t){super(e,t)}CONJUGATE(){return this.getToken(s.CONJUGATE,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}relationshipBody(){return this.getRuleContext(0,Je)}TILDE(){return this.getToken(s.TILDE,0)}CONJUGATES(){return this.getToken(s.CONJUGATES,0)}CONJUGATION(){return this.getToken(s.CONJUGATION,0)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_conjugation}enterRule(e){e.enterConjugation&&e.enterConjugation(this)}exitRule(e){e.exitConjugation&&e.exitConjugation(this)}accept(e){return e.visitConjugation?e.visitConjugation(this):e.visitChildren(this)}},bc=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedConjugation}enterRule(e){e.enterOwnedConjugation&&e.enterOwnedConjugation(this)}exitRule(e){e.exitOwnedConjugation&&e.exitOwnedConjugation(this)}accept(e){return e.visitOwnedConjugation?e.visitOwnedConjugation(this):e.visitChildren(this)}},Rc=class extends u{constructor(e,t){super(e,t)}DISJOINT(){return this.getToken(s.DISJOINT,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}FROM(){return this.getToken(s.FROM,0)}relationshipBody(){return this.getRuleContext(0,Je)}DISJOINING(){return this.getToken(s.DISJOINING,0)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_disjoining}enterRule(e){e.enterDisjoining&&e.enterDisjoining(this)}exitRule(e){e.exitDisjoining&&e.exitDisjoining(this)}accept(e){return e.visitDisjoining?e.visitDisjoining(this):e.visitChildren(this)}},xa=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedDisjoining}enterRule(e){e.enterOwnedDisjoining&&e.enterOwnedDisjoining(this)}exitRule(e){e.exitOwnedDisjoining&&e.exitOwnedDisjoining(this)}accept(e){return e.visitOwnedDisjoining?e.visitOwnedDisjoining(this):e.visitChildren(this)}},ma=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_unioning}enterRule(e){e.enterUnioning&&e.enterUnioning(this)}exitRule(e){e.exitUnioning&&e.exitUnioning(this)}accept(e){return e.visitUnioning?e.visitUnioning(this):e.visitChildren(this)}},ba=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_intersecting}enterRule(e){e.enterIntersecting&&e.enterIntersecting(this)}exitRule(e){e.exitIntersecting&&e.exitIntersecting(this)}accept(e){return e.visitIntersecting?e.visitIntersecting(this):e.visitChildren(this)}},Ra=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_differencing}enterRule(e){e.enterDifferencing&&e.enterDifferencing(this)}exitRule(e){e.exitDifferencing&&e.exitDifferencing(this)}accept(e){return e.visitDifferencing?e.visitDifferencing(this):e.visitChildren(this)}},gc=class extends u{constructor(e,t){super(e,t)}typeFeatureMember(){return this.getRuleContext(0,yc)}ownedFeatureMember(){return this.getRuleContext(0,Cc)}get ruleIndex(){return s.RULE_featureMember}enterRule(e){e.enterFeatureMember&&e.enterFeatureMember(this)}exitRule(e){e.exitFeatureMember&&e.exitFeatureMember(this)}accept(e){return e.visitFeatureMember?e.visitFeatureMember(this):e.visitChildren(this)}},yc=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}MEMBER(){return this.getToken(s.MEMBER,0)}featureElement(){return this.getRuleContext(0,oi)}get ruleIndex(){return s.RULE_typeFeatureMember}enterRule(e){e.enterTypeFeatureMember&&e.enterTypeFeatureMember(this)}exitRule(e){e.exitTypeFeatureMember&&e.exitTypeFeatureMember(this)}accept(e){return e.visitTypeFeatureMember?e.visitTypeFeatureMember(this):e.visitChildren(this)}},Cc=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}featureElement(){return this.getRuleContext(0,oi)}get ruleIndex(){return s.RULE_ownedFeatureMember}enterRule(e){e.enterOwnedFeatureMember&&e.enterOwnedFeatureMember(this)}exitRule(e){e.exitOwnedFeatureMember&&e.exitOwnedFeatureMember(this)}accept(e){return e.visitOwnedFeatureMember?e.visitOwnedFeatureMember(this):e.visitChildren(this)}},vc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}CLASSIFIER(){return this.getToken(s.CLASSIFIER,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_classifier}enterRule(e){e.enterClassifier&&e.enterClassifier(this)}exitRule(e){e.exitClassifier&&e.exitClassifier(this)}accept(e){return e.visitClassifier?e.visitClassifier(this):e.visitChildren(this)}},Pt=class extends u{constructor(e,t){super(e,t)}ALL(){return this.getToken(s.ALL,0)}identification(){return this.getRuleContext(0,me)}ownedMultiplicity(){return this.getRuleContext(0,kr)}superclassingPart(){return this.getRuleContext(0,Ec)}conjugationPart(){return this.getRuleContext(0,Bi)}typeRelationshipPart(e){return e===void 0?this.getRuleContexts(li):this.getRuleContext(e,li)}get ruleIndex(){return s.RULE_classifierDeclaration}enterRule(e){e.enterClassifierDeclaration&&e.enterClassifierDeclaration(this)}exitRule(e){e.exitClassifierDeclaration&&e.exitClassifierDeclaration(this)}accept(e){return e.visitClassifierDeclaration?e.visitClassifierDeclaration(this):e.visitChildren(this)}},Ec=class extends u{constructor(e,t){super(e,t)}ownedSubclassification(e){return e===void 0?this.getRuleContexts(Vi):this.getRuleContext(e,Vi)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_superclassingPart}enterRule(e){e.enterSuperclassingPart&&e.enterSuperclassingPart(this)}exitRule(e){e.exitSuperclassingPart&&e.exitSuperclassingPart(this)}accept(e){return e.visitSuperclassingPart?e.visitSuperclassingPart(this):e.visitChildren(this)}},Lc=class extends u{constructor(e,t){super(e,t)}SUBCLASSIFIER(){return this.getToken(s.SUBCLASSIFIER,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}relationshipBody(){return this.getRuleContext(0,Je)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_subclassification}enterRule(e){e.enterSubclassification&&e.enterSubclassification(this)}exitRule(e){e.exitSubclassification&&e.exitSubclassification(this)}accept(e){return e.visitSubclassification?e.visitSubclassification(this):e.visitChildren(this)}},Vi=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_ownedSubclassification}enterRule(e){e.enterOwnedSubclassification&&e.enterOwnedSubclassification(this)}exitRule(e){e.exitOwnedSubclassification&&e.exitOwnedSubclassification(this)}accept(e){return e.visitOwnedSubclassification?e.visitOwnedSubclassification(this):e.visitChildren(this)}},Sc=class extends u{constructor(e,t){super(e,t)}typeBody(){return this.getRuleContext(0,Fe)}featurePrefix(){return this.getRuleContext(0,Ut)}featureDeclaration(){return this.getRuleContext(0,ht)}valuePart(){return this.getRuleContext(0,Te)}FEATURE(){return this.getToken(s.FEATURE,0)}prefixMetadataMember(){return this.getRuleContext(0,Ze)}endFeaturePrefix(){return this.getRuleContext(0,ga)}basicFeaturePrefix(){return this.getRuleContext(0,ts)}get ruleIndex(){return s.RULE_feature}enterRule(e){e.enterFeature&&e.enterFeature(this)}exitRule(e){e.exitFeature&&e.exitFeature(this)}accept(e){return e.visitFeature?e.visitFeature(this):e.visitChildren(this)}},ga=class extends u{constructor(e,t){super(e,t)}END(){return this.getToken(s.END,0)}CONST(){return this.getToken(s.CONST,0)}get ruleIndex(){return s.RULE_endFeaturePrefix}enterRule(e){e.enterEndFeaturePrefix&&e.enterEndFeaturePrefix(this)}exitRule(e){e.exitEndFeaturePrefix&&e.exitEndFeaturePrefix(this)}accept(e){return e.visitEndFeaturePrefix?e.visitEndFeaturePrefix(this):e.visitChildren(this)}},ts=class extends u{constructor(e,t){super(e,t)}featureDirection(){return this.getRuleContext(0,Ca)}DERIVED(){return this.getToken(s.DERIVED,0)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}COMPOSITE(){return this.getToken(s.COMPOSITE,0)}PORTION(){return this.getToken(s.PORTION,0)}VAR(){return this.getToken(s.VAR,0)}CONST(){return this.getToken(s.CONST,0)}get ruleIndex(){return s.RULE_basicFeaturePrefix}enterRule(e){e.enterBasicFeaturePrefix&&e.enterBasicFeaturePrefix(this)}exitRule(e){e.exitBasicFeaturePrefix&&e.exitBasicFeaturePrefix(this)}accept(e){return e.visitBasicFeaturePrefix?e.visitBasicFeaturePrefix(this):e.visitChildren(this)}},Ut=class extends u{constructor(e,t){super(e,t)}endFeaturePrefix(){return this.getRuleContext(0,ga)}basicFeaturePrefix(){return this.getRuleContext(0,ts)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(Ze):this.getRuleContext(e,Ze)}ownedCrossFeatureMember(){return this.getRuleContext(0,ya)}get ruleIndex(){return s.RULE_featurePrefix}enterRule(e){e.enterFeaturePrefix&&e.enterFeaturePrefix(this)}exitRule(e){e.exitFeaturePrefix&&e.exitFeaturePrefix(this)}accept(e){return e.visitFeaturePrefix?e.visitFeaturePrefix(this):e.visitChildren(this)}},ya=class extends u{constructor(e,t){super(e,t)}ownedCrossFeature(){return this.getRuleContext(0,Pc)}get ruleIndex(){return s.RULE_ownedCrossFeatureMember}enterRule(e){e.enterOwnedCrossFeatureMember&&e.enterOwnedCrossFeatureMember(this)}exitRule(e){e.exitOwnedCrossFeatureMember&&e.exitOwnedCrossFeatureMember(this)}accept(e){return e.visitOwnedCrossFeatureMember?e.visitOwnedCrossFeatureMember(this):e.visitChildren(this)}},Pc=class extends u{constructor(e,t){super(e,t)}basicFeaturePrefix(){return this.getRuleContext(0,ts)}featureDeclaration(){return this.getRuleContext(0,ht)}basicUsagePrefix(){return this.getRuleContext(0,fi)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_ownedCrossFeature}enterRule(e){e.enterOwnedCrossFeature&&e.enterOwnedCrossFeature(this)}exitRule(e){e.exitOwnedCrossFeature&&e.exitOwnedCrossFeature(this)}accept(e){return e.visitOwnedCrossFeature?e.visitOwnedCrossFeature(this):e.visitChildren(this)}},Ca=class extends u{constructor(e,t){super(e,t)}IN(){return this.getToken(s.IN,0)}OUT(){return this.getToken(s.OUT,0)}INOUT(){return this.getToken(s.INOUT,0)}get ruleIndex(){return s.RULE_featureDirection}enterRule(e){e.enterFeatureDirection&&e.enterFeatureDirection(this)}exitRule(e){e.exitFeatureDirection&&e.exitFeatureDirection(this)}accept(e){return e.visitFeatureDirection?e.visitFeatureDirection(this):e.visitChildren(this)}},ht=class extends u{constructor(e,t){super(e,t)}featureIdentification(){return this.getRuleContext(0,Tc)}featureSpecializationPart(){return this.getRuleContext(0,dt)}conjugationPart(){return this.getRuleContext(0,Bi)}ALL(){return this.getToken(s.ALL,0)}featureRelationshipPart(e){return e===void 0?this.getRuleContexts(va):this.getRuleContext(e,va)}get ruleIndex(){return s.RULE_featureDeclaration}enterRule(e){e.enterFeatureDeclaration&&e.enterFeatureDeclaration(this)}exitRule(e){e.exitFeatureDeclaration&&e.exitFeatureDeclaration(this)}accept(e){return e.visitFeatureDeclaration?e.visitFeatureDeclaration(this):e.visitChildren(this)}},Tc=class extends u{constructor(e,t){super(e,t)}LT(){return this.getToken(s.LT,0)}name(e){return e===void 0?this.getRuleContexts(ft):this.getRuleContext(e,ft)}GT(){return this.getToken(s.GT,0)}get ruleIndex(){return s.RULE_featureIdentification}enterRule(e){e.enterFeatureIdentification&&e.enterFeatureIdentification(this)}exitRule(e){e.exitFeatureIdentification&&e.exitFeatureIdentification(this)}accept(e){return e.visitFeatureIdentification?e.visitFeatureIdentification(this):e.visitChildren(this)}},va=class extends u{constructor(e,t){super(e,t)}typeRelationshipPart(){return this.getRuleContext(0,li)}chainingPart(){return this.getRuleContext(0,Ac)}invertingPart(){return this.getRuleContext(0,Mc)}typeFeaturingPart(){return this.getRuleContext(0,Nc)}get ruleIndex(){return s.RULE_featureRelationshipPart}enterRule(e){e.enterFeatureRelationshipPart&&e.enterFeatureRelationshipPart(this)}exitRule(e){e.exitFeatureRelationshipPart&&e.exitFeatureRelationshipPart(this)}accept(e){return e.visitFeatureRelationshipPart?e.visitFeatureRelationshipPart(this):e.visitChildren(this)}},Ac=class extends u{constructor(e,t){super(e,t)}CHAINS(){return this.getToken(s.CHAINS,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_chainingPart}enterRule(e){e.enterChainingPart&&e.enterChainingPart(this)}exitRule(e){e.exitChainingPart&&e.exitChainingPart(this)}accept(e){return e.visitChainingPart?e.visitChainingPart(this):e.visitChildren(this)}},Mc=class extends u{constructor(e,t){super(e,t)}INVERSE(){return this.getToken(s.INVERSE,0)}OF(){return this.getToken(s.OF,0)}ownedFeatureInverting(){return this.getRuleContext(0,jc)}get ruleIndex(){return s.RULE_invertingPart}enterRule(e){e.enterInvertingPart&&e.enterInvertingPart(this)}exitRule(e){e.exitInvertingPart&&e.exitInvertingPart(this)}accept(e){return e.visitInvertingPart?e.visitInvertingPart(this):e.visitChildren(this)}},Nc=class extends u{constructor(e,t){super(e,t)}FEATURED(){return this.getToken(s.FEATURED,0)}BY(){return this.getToken(s.BY,0)}ownedTypeFeaturing(e){return e===void 0?this.getRuleContexts(Pa):this.getRuleContext(e,Pa)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_typeFeaturingPart}enterRule(e){e.enterTypeFeaturingPart&&e.enterTypeFeaturingPart(this)}exitRule(e){e.exitTypeFeaturingPart&&e.exitTypeFeaturingPart(this)}accept(e){return e.visitTypeFeaturingPart?e.visitTypeFeaturingPart(this):e.visitChildren(this)}},dt=class extends u{constructor(e,t){super(e,t)}featureSpecialization(e){return e===void 0?this.getRuleContexts(ur):this.getRuleContext(e,ur)}multiplicityPart(){return this.getRuleContext(0,Ea)}get ruleIndex(){return s.RULE_featureSpecializationPart}enterRule(e){e.enterFeatureSpecializationPart&&e.enterFeatureSpecializationPart(this)}exitRule(e){e.exitFeatureSpecializationPart&&e.exitFeatureSpecializationPart(this)}accept(e){return e.visitFeatureSpecializationPart?e.visitFeatureSpecializationPart(this):e.visitChildren(this)}},Ea=class extends u{constructor(e,t){super(e,t)}ownedMultiplicity(){return this.getRuleContext(0,kr)}ORDERED(){return this.getToken(s.ORDERED,0)}NONUNIQUE(){return this.getToken(s.NONUNIQUE,0)}get ruleIndex(){return s.RULE_multiplicityPart}enterRule(e){e.enterMultiplicityPart&&e.enterMultiplicityPart(this)}exitRule(e){e.exitMultiplicityPart&&e.exitMultiplicityPart(this)}accept(e){return e.visitMultiplicityPart?e.visitMultiplicityPart(this):e.visitChildren(this)}},ur=class extends u{constructor(e,t){super(e,t)}typings(){return this.getRuleContext(0,Uc)}subsettings(){return this.getRuleContext(0,Dc)}references(){return this.getRuleContext(0,Ic)}crosses(){return this.getRuleContext(0,Oc)}redefinitions(){return this.getRuleContext(0,kc)}get ruleIndex(){return s.RULE_featureSpecialization}enterRule(e){e.enterFeatureSpecialization&&e.enterFeatureSpecialization(this)}exitRule(e){e.exitFeatureSpecialization&&e.exitFeatureSpecialization(this)}accept(e){return e.visitFeatureSpecialization?e.visitFeatureSpecialization(this):e.visitChildren(this)}},Uc=class extends u{constructor(e,t){super(e,t)}typedBy(){return this.getRuleContext(0,wc)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}ownedFeatureTyping(e){return e===void 0?this.getRuleContexts(Gt):this.getRuleContext(e,Gt)}featureTyping(e){return e===void 0?this.getRuleContexts(qi):this.getRuleContext(e,qi)}get ruleIndex(){return s.RULE_typings}enterRule(e){e.enterTypings&&e.enterTypings(this)}exitRule(e){e.exitTypings&&e.exitTypings(this)}accept(e){return e.visitTypings?e.visitTypings(this):e.visitChildren(this)}},wc=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Gt)}COLON(){return this.getToken(s.COLON,0)}TYPED(){return this.getToken(s.TYPED,0)}BY(){return this.getToken(s.BY,0)}featureTyping(){return this.getRuleContext(0,qi)}DEFINED(){return this.getToken(s.DEFINED,0)}get ruleIndex(){return s.RULE_typedBy}enterRule(e){e.enterTypedBy&&e.enterTypedBy(this)}exitRule(e){e.exitTypedBy&&e.exitTypedBy(this)}accept(e){return e.visitTypedBy?e.visitTypedBy(this):e.visitChildren(this)}},Dc=class extends u{constructor(e,t){super(e,t)}subsets(){return this.getRuleContext(0,La)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}ownedSubsetting(e){return e===void 0?this.getRuleContexts(rs):this.getRuleContext(e,rs)}get ruleIndex(){return s.RULE_subsettings}enterRule(e){e.enterSubsettings&&e.enterSubsettings(this)}exitRule(e){e.exitSubsettings&&e.exitSubsettings(this)}accept(e){return e.visitSubsettings?e.visitSubsettings(this):e.visitChildren(this)}},La=class extends u{constructor(e,t){super(e,t)}ownedSubsetting(){return this.getRuleContext(0,rs)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SUBSETS(){return this.getToken(s.SUBSETS,0)}get ruleIndex(){return s.RULE_subsets}enterRule(e){e.enterSubsets&&e.enterSubsets(this)}exitRule(e){e.exitSubsets&&e.exitSubsets(this)}accept(e){return e.visitSubsets?e.visitSubsets(this):e.visitChildren(this)}},Ic=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}COLON_COLON_GT(){return this.getToken(s.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(s.REFERENCES,0)}get ruleIndex(){return s.RULE_references}enterRule(e){e.enterReferences&&e.enterReferences(this)}exitRule(e){e.exitReferences&&e.exitReferences(this)}accept(e){return e.visitReferences?e.visitReferences(this):e.visitChildren(this)}},Oc=class extends u{constructor(e,t){super(e,t)}ownedCrossSubsetting(){return this.getRuleContext(0,Bc)}FAT_ARROW(){return this.getToken(s.FAT_ARROW,0)}CROSSES(){return this.getToken(s.CROSSES,0)}get ruleIndex(){return s.RULE_crosses}enterRule(e){e.enterCrosses&&e.enterCrosses(this)}exitRule(e){e.exitCrosses&&e.exitCrosses(this)}accept(e){return e.visitCrosses?e.visitCrosses(this):e.visitChildren(this)}},kc=class extends u{constructor(e,t){super(e,t)}redefines(){return this.getRuleContext(0,Fc)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}ownedRedefinition(e){return e===void 0?this.getRuleContexts(ci):this.getRuleContext(e,ci)}get ruleIndex(){return s.RULE_redefinitions}enterRule(e){e.enterRedefinitions&&e.enterRedefinitions(this)}exitRule(e){e.exitRedefinitions&&e.exitRedefinitions(this)}accept(e){return e.visitRedefinitions?e.visitRedefinitions(this):e.visitChildren(this)}},Fc=class extends u{constructor(e,t){super(e,t)}ownedRedefinition(){return this.getRuleContext(0,ci)}COLON_GT_GT(){return this.getToken(s.COLON_GT_GT,0)}REDEFINES(){return this.getToken(s.REDEFINES,0)}get ruleIndex(){return s.RULE_redefines}enterRule(e){e.enterRedefines&&e.enterRedefines(this)}exitRule(e){e.exitRedefines&&e.exitRedefines(this)}accept(e){return e.visitRedefines?e.visitRedefines(this):e.visitChildren(this)}},qi=class extends u{constructor(e,t){super(e,t)}TYPING(){return this.getToken(s.TYPING,0)}qualifiedName(){return this.getRuleContext(0,F)}generalType(){return this.getRuleContext(0,ui)}relationshipBody(){return this.getRuleContext(0,Je)}COLON(){return this.getToken(s.COLON,0)}TYPED(){return this.getToken(s.TYPED,0)}BY(){return this.getToken(s.BY,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,me)}ownedFeatureTyping(){return this.getRuleContext(0,Gt)}conjugatedPortTyping(){return this.getRuleContext(0,h0)}get ruleIndex(){return s.RULE_featureTyping}enterRule(e){e.enterFeatureTyping&&e.enterFeatureTyping(this)}exitRule(e){e.exitFeatureTyping&&e.exitFeatureTyping(this)}accept(e){return e.visitFeatureTyping?e.visitFeatureTyping(this):e.visitChildren(this)}},Gt=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedFeatureTyping}enterRule(e){e.enterOwnedFeatureTyping&&e.enterOwnedFeatureTyping(this)}exitRule(e){e.exitOwnedFeatureTyping&&e.exitOwnedFeatureTyping(this)}accept(e){return e.visitOwnedFeatureTyping?e.visitOwnedFeatureTyping(this):e.visitChildren(this)}},Hc=class extends u{constructor(e,t){super(e,t)}SUBSET(){return this.getToken(s.SUBSET,0)}specificType(){return this.getRuleContext(0,es)}generalType(){return this.getRuleContext(0,ui)}relationshipBody(){return this.getRuleContext(0,Je)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SUBSETS(){return this.getToken(s.SUBSETS,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_subsetting}enterRule(e){e.enterSubsetting&&e.enterSubsetting(this)}exitRule(e){e.exitSubsetting&&e.exitSubsetting(this)}accept(e){return e.visitSubsetting?e.visitSubsetting(this):e.visitChildren(this)}},rs=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedSubsetting}enterRule(e){e.enterOwnedSubsetting&&e.enterOwnedSubsetting(this)}exitRule(e){e.exitOwnedSubsetting&&e.exitOwnedSubsetting(this)}accept(e){return e.visitOwnedSubsetting?e.visitOwnedSubsetting(this):e.visitChildren(this)}},Xe=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedReferenceSubsetting}enterRule(e){e.enterOwnedReferenceSubsetting&&e.enterOwnedReferenceSubsetting(this)}exitRule(e){e.exitOwnedReferenceSubsetting&&e.exitOwnedReferenceSubsetting(this)}accept(e){return e.visitOwnedReferenceSubsetting?e.visitOwnedReferenceSubsetting(this):e.visitChildren(this)}},Bc=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedCrossSubsetting}enterRule(e){e.enterOwnedCrossSubsetting&&e.enterOwnedCrossSubsetting(this)}exitRule(e){e.exitOwnedCrossSubsetting&&e.exitOwnedCrossSubsetting(this)}accept(e){return e.visitOwnedCrossSubsetting?e.visitOwnedCrossSubsetting(this):e.visitChildren(this)}},_c=class extends u{constructor(e,t){super(e,t)}REDEFINITION(){return this.getToken(s.REDEFINITION,0)}specificType(){return this.getRuleContext(0,es)}generalType(){return this.getRuleContext(0,ui)}relationshipBody(){return this.getRuleContext(0,Je)}COLON_GT_GT(){return this.getToken(s.COLON_GT_GT,0)}REDEFINES(){return this.getToken(s.REDEFINES,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_redefinition}enterRule(e){e.enterRedefinition&&e.enterRedefinition(this)}exitRule(e){e.exitRedefinition&&e.exitRedefinition(this)}accept(e){return e.visitRedefinition?e.visitRedefinition(this):e.visitChildren(this)}},ci=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedRedefinition}enterRule(e){e.enterOwnedRedefinition&&e.enterOwnedRedefinition(this)}exitRule(e){e.exitOwnedRedefinition&&e.exitOwnedRedefinition(this)}accept(e){return e.visitOwnedRedefinition?e.visitOwnedRedefinition(this):e.visitChildren(this)}},Vc=class extends u{constructor(e,t){super(e,t)}featureChain(){return this.getRuleContext(0,Sa)}ownedFeatureChaining(e){return e===void 0?this.getRuleContexts(Or):this.getRuleContext(e,Or)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedFeatureChain}enterRule(e){e.enterOwnedFeatureChain&&e.enterOwnedFeatureChain(this)}exitRule(e){e.exitOwnedFeatureChain&&e.exitOwnedFeatureChain(this)}accept(e){return e.visitOwnedFeatureChain?e.visitOwnedFeatureChain(this):e.visitChildren(this)}},Sa=class extends u{constructor(e,t){super(e,t)}ownedFeatureChaining(e){return e===void 0?this.getRuleContexts(Or):this.getRuleContext(e,Or)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_featureChain}enterRule(e){e.enterFeatureChain&&e.enterFeatureChain(this)}exitRule(e){e.exitFeatureChain&&e.exitFeatureChain(this)}accept(e){return e.visitFeatureChain?e.visitFeatureChain(this):e.visitChildren(this)}},Or=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_ownedFeatureChaining}enterRule(e){e.enterOwnedFeatureChaining&&e.enterOwnedFeatureChaining(this)}exitRule(e){e.exitOwnedFeatureChaining&&e.exitOwnedFeatureChaining(this)}accept(e){return e.visitOwnedFeatureChaining?e.visitOwnedFeatureChaining(this):e.visitChildren(this)}},qc=class extends u{constructor(e,t){super(e,t)}INVERSE(){return this.getToken(s.INVERSE,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}OF(){return this.getToken(s.OF,0)}relationshipBody(){return this.getRuleContext(0,Je)}INVERTING(){return this.getToken(s.INVERTING,0)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_featureInverting}enterRule(e){e.enterFeatureInverting&&e.enterFeatureInverting(this)}exitRule(e){e.exitFeatureInverting&&e.exitFeatureInverting(this)}accept(e){return e.visitFeatureInverting?e.visitFeatureInverting(this):e.visitChildren(this)}},jc=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedFeatureInverting}enterRule(e){e.enterOwnedFeatureInverting&&e.enterOwnedFeatureInverting(this)}exitRule(e){e.exitOwnedFeatureInverting&&e.exitOwnedFeatureInverting(this)}accept(e){return e.visitOwnedFeatureInverting?e.visitOwnedFeatureInverting(this):e.visitChildren(this)}},Gc=class extends u{constructor(e,t){super(e,t)}FEATURING(){return this.getToken(s.FEATURING,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}BY(){return this.getToken(s.BY,0)}relationshipBody(){return this.getRuleContext(0,Je)}OF(){return this.getToken(s.OF,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_typeFeaturing}enterRule(e){e.enterTypeFeaturing&&e.enterTypeFeaturing(this)}exitRule(e){e.exitTypeFeaturing&&e.exitTypeFeaturing(this)}accept(e){return e.visitTypeFeaturing?e.visitTypeFeaturing(this):e.visitChildren(this)}},Pa=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_ownedTypeFeaturing}enterRule(e){e.enterOwnedTypeFeaturing&&e.enterOwnedTypeFeaturing(this)}exitRule(e){e.exitOwnedTypeFeaturing&&e.exitOwnedTypeFeaturing(this)}accept(e){return e.visitOwnedTypeFeaturing?e.visitOwnedTypeFeaturing(this):e.visitChildren(this)}},Wc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}DATATYPE(){return this.getToken(s.DATATYPE,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_dataType}enterRule(e){e.enterDataType&&e.enterDataType(this)}exitRule(e){e.exitDataType&&e.exitDataType(this)}accept(e){return e.visitDataType?e.visitDataType(this):e.visitChildren(this)}},Kc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}CLASS(){return this.getToken(s.CLASS,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_class}enterRule(e){e.enterClass&&e.enterClass(this)}exitRule(e){e.exitClass&&e.exitClass(this)}accept(e){return e.visitClass?e.visitClass(this):e.visitChildren(this)}},zc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}STRUCT(){return this.getToken(s.STRUCT,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_structure}enterRule(e){e.enterStructure&&e.enterStructure(this)}exitRule(e){e.exitStructure&&e.exitStructure(this)}accept(e){return e.visitStructure?e.visitStructure(this):e.visitChildren(this)}},Qc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}ASSOC(){return this.getToken(s.ASSOC,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_association}enterRule(e){e.enterAssociation&&e.enterAssociation(this)}exitRule(e){e.exitAssociation&&e.exitAssociation(this)}accept(e){return e.visitAssociation?e.visitAssociation(this):e.visitChildren(this)}},$c=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}ASSOC(){return this.getToken(s.ASSOC,0)}STRUCT(){return this.getToken(s.STRUCT,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_associationStructure}enterRule(e){e.enterAssociationStructure&&e.enterAssociationStructure(this)}exitRule(e){e.exitAssociationStructure&&e.exitAssociationStructure(this)}accept(e){return e.visitAssociationStructure?e.visitAssociationStructure(this):e.visitChildren(this)}},Yc=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}CONNECTOR(){return this.getToken(s.CONNECTOR,0)}typeBody(){return this.getRuleContext(0,Fe)}connectorDeclaration(){return this.getRuleContext(0,Jc)}featureDeclaration(){return this.getRuleContext(0,ht)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_connector}enterRule(e){e.enterConnector&&e.enterConnector(this)}exitRule(e){e.exitConnector&&e.exitConnector(this)}accept(e){return e.visitConnector?e.visitConnector(this):e.visitChildren(this)}},Jc=class extends u{constructor(e,t){super(e,t)}binaryConnectorDeclaration(){return this.getRuleContext(0,Xc)}naryConnectorDeclaration(){return this.getRuleContext(0,Zc)}get ruleIndex(){return s.RULE_connectorDeclaration}enterRule(e){e.enterConnectorDeclaration&&e.enterConnectorDeclaration(this)}exitRule(e){e.exitConnectorDeclaration&&e.exitConnectorDeclaration(this)}accept(e){return e.visitConnectorDeclaration?e.visitConnectorDeclaration(this):e.visitChildren(this)}},Xc=class extends u{constructor(e,t){super(e,t)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Be):this.getRuleContext(e,Be)}TO(){return this.getToken(s.TO,0)}FROM(){return this.getToken(s.FROM,0)}ALL(){return this.getToken(s.ALL,0)}featureDeclaration(){return this.getRuleContext(0,ht)}get ruleIndex(){return s.RULE_binaryConnectorDeclaration}enterRule(e){e.enterBinaryConnectorDeclaration&&e.enterBinaryConnectorDeclaration(this)}exitRule(e){e.exitBinaryConnectorDeclaration&&e.exitBinaryConnectorDeclaration(this)}accept(e){return e.visitBinaryConnectorDeclaration?e.visitBinaryConnectorDeclaration(this):e.visitChildren(this)}},Zc=class extends u{constructor(e,t){super(e,t)}LPAREN(){return this.getToken(s.LPAREN,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Be):this.getRuleContext(e,Be)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}RPAREN(){return this.getToken(s.RPAREN,0)}featureDeclaration(){return this.getRuleContext(0,ht)}get ruleIndex(){return s.RULE_naryConnectorDeclaration}enterRule(e){e.enterNaryConnectorDeclaration&&e.enterNaryConnectorDeclaration(this)}exitRule(e){e.exitNaryConnectorDeclaration&&e.exitNaryConnectorDeclaration(this)}accept(e){return e.visitNaryConnectorDeclaration?e.visitNaryConnectorDeclaration(this):e.visitChildren(this)}},Be=class extends u{constructor(e,t){super(e,t)}connectorEnd(){return this.getRuleContext(0,e1)}get ruleIndex(){return s.RULE_connectorEndMember}enterRule(e){e.enterConnectorEndMember&&e.enterConnectorEndMember(this)}exitRule(e){e.exitConnectorEndMember&&e.exitConnectorEndMember(this)}accept(e){return e.visitConnectorEndMember?e.visitConnectorEndMember(this):e.visitChildren(this)}},e1=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,Ta)}name(){return this.getRuleContext(0,ft)}COLON_COLON_GT(){return this.getToken(s.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(s.REFERENCES,0)}get ruleIndex(){return s.RULE_connectorEnd}enterRule(e){e.enterConnectorEnd&&e.enterConnectorEnd(this)}exitRule(e){e.exitConnectorEnd&&e.exitConnectorEnd(this)}accept(e){return e.visitConnectorEnd?e.visitConnectorEnd(this):e.visitChildren(this)}},Ta=class extends u{constructor(e,t){super(e,t)}ownedCrossMultiplicity(){return this.getRuleContext(0,t1)}get ruleIndex(){return s.RULE_ownedCrossMultiplicityMember}enterRule(e){e.enterOwnedCrossMultiplicityMember&&e.enterOwnedCrossMultiplicityMember(this)}exitRule(e){e.exitOwnedCrossMultiplicityMember&&e.exitOwnedCrossMultiplicityMember(this)}accept(e){return e.visitOwnedCrossMultiplicityMember?e.visitOwnedCrossMultiplicityMember(this):e.visitChildren(this)}},t1=class extends u{constructor(e,t){super(e,t)}ownedMultiplicity(){return this.getRuleContext(0,kr)}get ruleIndex(){return s.RULE_ownedCrossMultiplicity}enterRule(e){e.enterOwnedCrossMultiplicity&&e.enterOwnedCrossMultiplicity(this)}exitRule(e){e.exitOwnedCrossMultiplicity&&e.exitOwnedCrossMultiplicity(this)}accept(e){return e.visitOwnedCrossMultiplicity?e.visitOwnedCrossMultiplicity(this):e.visitChildren(this)}},r1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}BINDING(){return this.getToken(s.BINDING,0)}bindingConnectorDeclaration(){return this.getRuleContext(0,i1)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_bindingConnector}enterRule(e){e.enterBindingConnector&&e.enterBindingConnector(this)}exitRule(e){e.exitBindingConnector&&e.exitBindingConnector(this)}accept(e){return e.visitBindingConnector?e.visitBindingConnector(this):e.visitChildren(this)}},i1=class extends u{constructor(e,t){super(e,t)}featureDeclaration(){return this.getRuleContext(0,ht)}OF(){return this.getToken(s.OF,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Be):this.getRuleContext(e,Be)}EQ(){return this.getToken(s.EQ,0)}ALL(){return this.getToken(s.ALL,0)}get ruleIndex(){return s.RULE_bindingConnectorDeclaration}enterRule(e){e.enterBindingConnectorDeclaration&&e.enterBindingConnectorDeclaration(this)}exitRule(e){e.exitBindingConnectorDeclaration&&e.exitBindingConnectorDeclaration(this)}accept(e){return e.visitBindingConnectorDeclaration?e.visitBindingConnectorDeclaration(this):e.visitChildren(this)}},n1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}successionDeclaration(){return this.getRuleContext(0,s1)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_succession}enterRule(e){e.enterSuccession&&e.enterSuccession(this)}exitRule(e){e.exitSuccession&&e.exitSuccession(this)}accept(e){return e.visitSuccession?e.visitSuccession(this):e.visitChildren(this)}},s1=class extends u{constructor(e,t){super(e,t)}featureDeclaration(){return this.getRuleContext(0,ht)}FIRST(){return this.getToken(s.FIRST,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Be):this.getRuleContext(e,Be)}THEN(){return this.getToken(s.THEN,0)}ALL(){return this.getToken(s.ALL,0)}get ruleIndex(){return s.RULE_successionDeclaration}enterRule(e){e.enterSuccessionDeclaration&&e.enterSuccessionDeclaration(this)}exitRule(e){e.exitSuccessionDeclaration&&e.exitSuccessionDeclaration(this)}accept(e){return e.visitSuccessionDeclaration?e.visitSuccessionDeclaration(this):e.visitChildren(this)}},a1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}BEHAVIOR(){return this.getToken(s.BEHAVIOR,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_behavior}enterRule(e){e.enterBehavior&&e.enterBehavior(this)}exitRule(e){e.exitBehavior&&e.exitBehavior(this)}accept(e){return e.visitBehavior?e.visitBehavior(this):e.visitChildren(this)}},o1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}STEP(){return this.getToken(s.STEP,0)}featureDeclaration(){return this.getRuleContext(0,ht)}typeBody(){return this.getRuleContext(0,Fe)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_step}enterRule(e){e.enterStep&&e.enterStep(this)}exitRule(e){e.exitStep&&e.exitStep(this)}accept(e){return e.visitStep?e.visitStep(this):e.visitChildren(this)}},l1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}FUNCTION(){return this.getToken(s.FUNCTION,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}functionBody(){return this.getRuleContext(0,hi)}get ruleIndex(){return s.RULE_function}enterRule(e){e.enterFunction&&e.enterFunction(this)}exitRule(e){e.exitFunction&&e.exitFunction(this)}accept(e){return e.visitFunction?e.visitFunction(this):e.visitChildren(this)}},hi=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,is)}RBRACE(){return this.getToken(s.RBRACE,0)}get ruleIndex(){return s.RULE_functionBody}enterRule(e){e.enterFunctionBody&&e.enterFunctionBody(this)}exitRule(e){e.exitFunctionBody&&e.exitFunctionBody(this)}accept(e){return e.visitFunctionBody?e.visitFunctionBody(this):e.visitChildren(this)}},is=class extends u{constructor(e,t){super(e,t)}typeBodyElement(e){return e===void 0?this.getRuleContexts(_i):this.getRuleContext(e,_i)}returnFeatureMember(e){return e===void 0?this.getRuleContexts(Aa):this.getRuleContext(e,Aa)}resultExpressionMember(){return this.getRuleContext(0,ns)}get ruleIndex(){return s.RULE_functionBodyPart}enterRule(e){e.enterFunctionBodyPart&&e.enterFunctionBodyPart(this)}exitRule(e){e.exitFunctionBodyPart&&e.exitFunctionBodyPart(this)}accept(e){return e.visitFunctionBodyPart?e.visitFunctionBodyPart(this):e.visitChildren(this)}},Aa=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}RETURN(){return this.getToken(s.RETURN,0)}featureElement(){return this.getRuleContext(0,oi)}get ruleIndex(){return s.RULE_returnFeatureMember}enterRule(e){e.enterReturnFeatureMember&&e.enterReturnFeatureMember(this)}exitRule(e){e.exitReturnFeatureMember&&e.exitReturnFeatureMember(this)}accept(e){return e.visitReturnFeatureMember?e.visitReturnFeatureMember(this):e.visitChildren(this)}},ns=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,te)}memberPrefix(){return this.getRuleContext(0,re)}get ruleIndex(){return s.RULE_resultExpressionMember}enterRule(e){e.enterResultExpressionMember&&e.enterResultExpressionMember(this)}exitRule(e){e.exitResultExpressionMember&&e.exitResultExpressionMember(this)}accept(e){return e.visitResultExpressionMember?e.visitResultExpressionMember(this):e.visitChildren(this)}},u1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}EXPR(){return this.getToken(s.EXPR,0)}featureDeclaration(){return this.getRuleContext(0,ht)}functionBody(){return this.getRuleContext(0,hi)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_expression}enterRule(e){e.enterExpression&&e.enterExpression(this)}exitRule(e){e.exitExpression&&e.exitExpression(this)}accept(e){return e.visitExpression?e.visitExpression(this):e.visitChildren(this)}},c1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}PREDICATE(){return this.getToken(s.PREDICATE,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}functionBody(){return this.getRuleContext(0,hi)}get ruleIndex(){return s.RULE_predicate}enterRule(e){e.enterPredicate&&e.enterPredicate(this)}exitRule(e){e.exitPredicate&&e.exitPredicate(this)}accept(e){return e.visitPredicate?e.visitPredicate(this):e.visitChildren(this)}},h1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}BOOL(){return this.getToken(s.BOOL,0)}featureDeclaration(){return this.getRuleContext(0,ht)}functionBody(){return this.getRuleContext(0,hi)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_booleanExpression}enterRule(e){e.enterBooleanExpression&&e.enterBooleanExpression(this)}exitRule(e){e.exitBooleanExpression&&e.exitBooleanExpression(this)}accept(e){return e.visitBooleanExpression?e.visitBooleanExpression(this):e.visitChildren(this)}},d1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}INV(){return this.getToken(s.INV,0)}featureDeclaration(){return this.getRuleContext(0,ht)}functionBody(){return this.getRuleContext(0,hi)}valuePart(){return this.getRuleContext(0,Te)}TRUE(){return this.getToken(s.TRUE,0)}FALSE(){return this.getToken(s.FALSE,0)}get ruleIndex(){return s.RULE_invariant}enterRule(e){e.enterInvariant&&e.enterInvariant(this)}exitRule(e){e.exitInvariant&&e.exitInvariant(this)}accept(e){return e.visitInvariant?e.visitInvariant(this):e.visitChildren(this)}},p1=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,te)}get ruleIndex(){return s.RULE_ownedExpressionMember}enterRule(e){e.enterOwnedExpressionMember&&e.enterOwnedExpressionMember(this)}exitRule(e){e.exitOwnedExpressionMember&&e.exitOwnedExpressionMember(this)}accept(e){return e.visitOwnedExpressionMember?e.visitOwnedExpressionMember(this):e.visitChildren(this)}},D3=class extends u{constructor(e,t){super(e,t)}elementReferenceMember(){return this.getRuleContext(0,L1)}get ruleIndex(){return s.RULE_metadataReference}enterRule(e){e.enterMetadataReference&&e.enterMetadataReference(this)}exitRule(e){e.exitMetadataReference&&e.exitMetadataReference(this)}accept(e){return e.visitMetadataReference?e.visitMetadataReference(this):e.visitChildren(this)}},I3=class extends u{constructor(e,t){super(e,t)}typeReference(){return this.getRuleContext(0,zn)}get ruleIndex(){return s.RULE_typeReferenceMember}enterRule(e){e.enterTypeReferenceMember&&e.enterTypeReferenceMember(this)}exitRule(e){e.exitTypeReferenceMember&&e.exitTypeReferenceMember(this)}accept(e){return e.visitTypeReferenceMember?e.visitTypeReferenceMember(this):e.visitChildren(this)}},O3=class extends u{constructor(e,t){super(e,t)}typeReference(){return this.getRuleContext(0,zn)}get ruleIndex(){return s.RULE_typeResultMember}enterRule(e){e.enterTypeResultMember&&e.enterTypeResultMember(this)}exitRule(e){e.exitTypeResultMember&&e.exitTypeResultMember(this)}accept(e){return e.visitTypeResultMember?e.visitTypeResultMember(this):e.visitChildren(this)}},f1=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_referenceTyping}enterRule(e){e.enterReferenceTyping&&e.enterReferenceTyping(this)}exitRule(e){e.exitReferenceTyping&&e.exitReferenceTyping(this)}accept(e){return e.visitReferenceTyping?e.visitReferenceTyping(this):e.visitChildren(this)}},k3=class extends u{constructor(e,t){super(e,t)}emptyFeature(){return this.getRuleContext(0,qo)}get ruleIndex(){return s.RULE_emptyResultMember}enterRule(e){e.enterEmptyResultMember&&e.enterEmptyResultMember(this)}exitRule(e){e.exitEmptyResultMember&&e.exitEmptyResultMember(this)}accept(e){return e.visitEmptyResultMember?e.visitEmptyResultMember(this):e.visitChildren(this)}},F3=class extends u{constructor(e,t){super(e,t)}ownedExpressionMember(){return this.getRuleContext(0,p1)}COMMA(){return this.getToken(s.COMMA,0)}sequenceExpressionListMember(){return this.getRuleContext(0,x1)}get ruleIndex(){return s.RULE_sequenceOperatorExpression}enterRule(e){e.enterSequenceOperatorExpression&&e.enterSequenceOperatorExpression(this)}exitRule(e){e.exitSequenceOperatorExpression&&e.exitSequenceOperatorExpression(this)}accept(e){return e.visitSequenceOperatorExpression?e.visitSequenceOperatorExpression(this):e.visitChildren(this)}},x1=class extends u{constructor(e,t){super(e,t)}sequenceExpressionList(){return this.getRuleContext(0,Qn)}get ruleIndex(){return s.RULE_sequenceExpressionListMember}enterRule(e){e.enterSequenceExpressionListMember&&e.enterSequenceExpressionListMember(this)}exitRule(e){e.exitSequenceExpressionListMember&&e.exitSequenceExpressionListMember(this)}accept(e){return e.visitSequenceExpressionListMember?e.visitSequenceExpressionListMember(this):e.visitChildren(this)}},H3=class extends u{constructor(e,t){super(e,t)}bodyArgument(){return this.getRuleContext(0,m1)}get ruleIndex(){return s.RULE_bodyArgumentMember}enterRule(e){e.enterBodyArgumentMember&&e.enterBodyArgumentMember(this)}exitRule(e){e.exitBodyArgumentMember&&e.exitBodyArgumentMember(this)}accept(e){return e.visitBodyArgumentMember?e.visitBodyArgumentMember(this):e.visitChildren(this)}},m1=class extends u{constructor(e,t){super(e,t)}bodyArgumentValue(){return this.getRuleContext(0,b1)}get ruleIndex(){return s.RULE_bodyArgument}enterRule(e){e.enterBodyArgument&&e.enterBodyArgument(this)}exitRule(e){e.exitBodyArgument&&e.exitBodyArgument(this)}accept(e){return e.visitBodyArgument?e.visitBodyArgument(this):e.visitChildren(this)}},b1=class extends u{constructor(e,t){super(e,t)}bodyExpression(){return this.getRuleContext(0,$n)}get ruleIndex(){return s.RULE_bodyArgumentValue}enterRule(e){e.enterBodyArgumentValue&&e.enterBodyArgumentValue(this)}exitRule(e){e.exitBodyArgumentValue&&e.exitBodyArgumentValue(this)}accept(e){return e.visitBodyArgumentValue?e.visitBodyArgumentValue(this):e.visitChildren(this)}},B3=class extends u{constructor(e,t){super(e,t)}functionReferenceArgument(){return this.getRuleContext(0,R1)}get ruleIndex(){return s.RULE_functionReferenceArgumentMember}enterRule(e){e.enterFunctionReferenceArgumentMember&&e.enterFunctionReferenceArgumentMember(this)}exitRule(e){e.exitFunctionReferenceArgumentMember&&e.exitFunctionReferenceArgumentMember(this)}accept(e){return e.visitFunctionReferenceArgumentMember?e.visitFunctionReferenceArgumentMember(this):e.visitChildren(this)}},R1=class extends u{constructor(e,t){super(e,t)}functionReferenceArgumentValue(){return this.getRuleContext(0,g1)}get ruleIndex(){return s.RULE_functionReferenceArgument}enterRule(e){e.enterFunctionReferenceArgument&&e.enterFunctionReferenceArgument(this)}exitRule(e){e.exitFunctionReferenceArgument&&e.exitFunctionReferenceArgument(this)}accept(e){return e.visitFunctionReferenceArgument?e.visitFunctionReferenceArgument(this):e.visitChildren(this)}},g1=class extends u{constructor(e,t){super(e,t)}functionReferenceExpression(){return this.getRuleContext(0,y1)}get ruleIndex(){return s.RULE_functionReferenceArgumentValue}enterRule(e){e.enterFunctionReferenceArgumentValue&&e.enterFunctionReferenceArgumentValue(this)}exitRule(e){e.exitFunctionReferenceArgumentValue&&e.exitFunctionReferenceArgumentValue(this)}accept(e){return e.visitFunctionReferenceArgumentValue?e.visitFunctionReferenceArgumentValue(this):e.visitChildren(this)}},y1=class extends u{constructor(e,t){super(e,t)}functionReferenceMember(){return this.getRuleContext(0,C1)}get ruleIndex(){return s.RULE_functionReferenceExpression}enterRule(e){e.enterFunctionReferenceExpression&&e.enterFunctionReferenceExpression(this)}exitRule(e){e.exitFunctionReferenceExpression&&e.exitFunctionReferenceExpression(this)}accept(e){return e.visitFunctionReferenceExpression?e.visitFunctionReferenceExpression(this):e.visitChildren(this)}},C1=class extends u{constructor(e,t){super(e,t)}functionReference(){return this.getRuleContext(0,v1)}get ruleIndex(){return s.RULE_functionReferenceMember}enterRule(e){e.enterFunctionReferenceMember&&e.enterFunctionReferenceMember(this)}exitRule(e){e.exitFunctionReferenceMember&&e.exitFunctionReferenceMember(this)}accept(e){return e.visitFunctionReferenceMember?e.visitFunctionReferenceMember(this):e.visitChildren(this)}},v1=class extends u{constructor(e,t){super(e,t)}referenceTyping(){return this.getRuleContext(0,f1)}get ruleIndex(){return s.RULE_functionReference}enterRule(e){e.enterFunctionReference&&e.enterFunctionReference(this)}exitRule(e){e.exitFunctionReference&&e.exitFunctionReference(this)}accept(e){return e.visitFunctionReference?e.visitFunctionReference(this):e.visitChildren(this)}},ji=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_featureChainMember}enterRule(e){e.enterFeatureChainMember&&e.enterFeatureChainMember(this)}exitRule(e){e.exitFeatureChainMember&&e.exitFeatureChainMember(this)}accept(e){return e.visitFeatureChainMember?e.visitFeatureChainMember(this):e.visitChildren(this)}},_3=class extends u{constructor(e,t){super(e,t)}featureChain(){return this.getRuleContext(0,Sa)}ownedFeatureChain(){return this.getRuleContext(0,Vc)}get ruleIndex(){return s.RULE_ownedFeatureChainMember}enterRule(e){e.enterOwnedFeatureChainMember&&e.enterOwnedFeatureChainMember(this)}exitRule(e){e.exitOwnedFeatureChainMember&&e.exitOwnedFeatureChainMember(this)}accept(e){return e.visitOwnedFeatureChainMember?e.visitOwnedFeatureChainMember(this):e.visitChildren(this)}},V3=class extends u{constructor(e,t){super(e,t)}featureReference(){return this.getRuleContext(0,E1)}get ruleIndex(){return s.RULE_featureReferenceMember}enterRule(e){e.enterFeatureReferenceMember&&e.enterFeatureReferenceMember(this)}exitRule(e){e.exitFeatureReferenceMember&&e.exitFeatureReferenceMember(this)}accept(e){return e.visitFeatureReferenceMember?e.visitFeatureReferenceMember(this):e.visitChildren(this)}},E1=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_featureReference}enterRule(e){e.enterFeatureReference&&e.enterFeatureReference(this)}exitRule(e){e.exitFeatureReference&&e.exitFeatureReference(this)}accept(e){return e.visitFeatureReference?e.visitFeatureReference(this):e.visitChildren(this)}},L1=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_elementReferenceMember}enterRule(e){e.enterElementReferenceMember&&e.enterElementReferenceMember(this)}exitRule(e){e.exitElementReferenceMember&&e.exitElementReferenceMember(this)}accept(e){return e.visitElementReferenceMember?e.visitElementReferenceMember(this):e.visitChildren(this)}},q3=class extends u{constructor(e,t){super(e,t)}constructorResult(){return this.getRuleContext(0,S1)}get ruleIndex(){return s.RULE_constructorResultMember}enterRule(e){e.enterConstructorResultMember&&e.enterConstructorResultMember(this)}exitRule(e){e.exitConstructorResultMember&&e.exitConstructorResultMember(this)}accept(e){return e.visitConstructorResultMember?e.visitConstructorResultMember(this):e.visitChildren(this)}},S1=class extends u{constructor(e,t){super(e,t)}argumentList(){return this.getRuleContext(0,ai)}get ruleIndex(){return s.RULE_constructorResult}enterRule(e){e.enterConstructorResult&&e.enterConstructorResult(this)}exitRule(e){e.exitConstructorResult&&e.exitConstructorResult(this)}accept(e){return e.visitConstructorResult?e.visitConstructorResult(this):e.visitChildren(this)}},j3=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_instantiatedTypeMember}enterRule(e){e.enterInstantiatedTypeMember&&e.enterInstantiatedTypeMember(this)}exitRule(e){e.exitInstantiatedTypeMember&&e.exitInstantiatedTypeMember(this)}accept(e){return e.visitInstantiatedTypeMember?e.visitInstantiatedTypeMember(this):e.visitChildren(this)}},G3=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_instantiatedTypeReference}enterRule(e){e.enterInstantiatedTypeReference&&e.enterInstantiatedTypeReference(this)}exitRule(e){e.exitInstantiatedTypeReference&&e.exitInstantiatedTypeReference(this)}accept(e){return e.visitInstantiatedTypeReference?e.visitInstantiatedTypeReference(this):e.visitChildren(this)}},W3=class extends u{constructor(e,t){super(e,t)}namedArgument(){return this.getRuleContext(0,Yn)}get ruleIndex(){return s.RULE_namedArgumentMember}enterRule(e){e.enterNamedArgumentMember&&e.enterNamedArgumentMember(this)}exitRule(e){e.exitNamedArgumentMember&&e.exitNamedArgumentMember(this)}accept(e){return e.visitNamedArgumentMember?e.visitNamedArgumentMember(this):e.visitChildren(this)}},K3=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_parameterRedefinition}enterRule(e){e.enterParameterRedefinition&&e.enterParameterRedefinition(this)}exitRule(e){e.exitParameterRedefinition&&e.exitParameterRedefinition(this)}accept(e){return e.visitParameterRedefinition?e.visitParameterRedefinition(this):e.visitChildren(this)}},z3=class extends u{constructor(e,t){super(e,t)}expressionBody(){return this.getRuleContext(0,P1)}get ruleIndex(){return s.RULE_expressionBodyMember}enterRule(e){e.enterExpressionBodyMember&&e.enterExpressionBodyMember(this)}exitRule(e){e.exitExpressionBodyMember&&e.exitExpressionBodyMember(this)}accept(e){return e.visitExpressionBodyMember?e.visitExpressionBodyMember(this):e.visitChildren(this)}},P1=class extends u{constructor(e,t){super(e,t)}LBRACE(){return this.getToken(s.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,is)}RBRACE(){return this.getToken(s.RBRACE,0)}get ruleIndex(){return s.RULE_expressionBody}enterRule(e){e.enterExpressionBody&&e.enterExpressionBody(this)}exitRule(e){e.exitExpressionBody&&e.exitExpressionBody(this)}accept(e){return e.visitExpressionBody?e.visitExpressionBody(this):e.visitChildren(this)}},Q3=class extends u{constructor(e,t){super(e,t)}TRUE(){return this.getToken(s.TRUE,0)}FALSE(){return this.getToken(s.FALSE,0)}get ruleIndex(){return s.RULE_booleanValue}enterRule(e){e.enterBooleanValue&&e.enterBooleanValue(this)}exitRule(e){e.exitBooleanValue&&e.exitBooleanValue(this)}accept(e){return e.visitBooleanValue?e.visitBooleanValue(this):e.visitChildren(this)}},$3=class extends u{constructor(e,t){super(e,t)}DOT(){return this.getToken(s.DOT,0)}INTEGER(e){return e===void 0?this.getTokens(s.INTEGER):this.getToken(s.INTEGER,e)}REAL(){return this.getToken(s.REAL,0)}get ruleIndex(){return s.RULE_realValue}enterRule(e){e.enterRealValue&&e.enterRealValue(this)}exitRule(e){e.exitRealValue&&e.exitRealValue(this)}accept(e){return e.visitRealValue?e.visitRealValue(this):e.visitChildren(this)}},T1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}INTERACTION(){return this.getToken(s.INTERACTION,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_interaction}enterRule(e){e.enterInteraction&&e.enterInteraction(this)}exitRule(e){e.exitInteraction&&e.exitInteraction(this)}accept(e){return e.visitInteraction?e.visitInteraction(this):e.visitChildren(this)}},A1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}FLOW(){return this.getToken(s.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,Gi)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_flow}enterRule(e){e.enterFlow&&e.enterFlow(this)}exitRule(e){e.exitFlow&&e.exitFlow(this)}accept(e){return e.visitFlow?e.visitFlow(this):e.visitChildren(this)}},M1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ut)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}FLOW(){return this.getToken(s.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,Gi)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_successionFlow}enterRule(e){e.enterSuccessionFlow&&e.enterSuccessionFlow(this)}exitRule(e){e.exitSuccessionFlow&&e.exitSuccessionFlow(this)}accept(e){return e.visitSuccessionFlow?e.visitSuccessionFlow(this):e.visitChildren(this)}},Gi=class extends u{constructor(e,t){super(e,t)}featureDeclaration(){return this.getRuleContext(0,ht)}valuePart(){return this.getRuleContext(0,Te)}OF(){return this.getToken(s.OF,0)}payloadFeatureMember(){return this.getRuleContext(0,N1)}FROM(){return this.getToken(s.FROM,0)}flowEndMember(e){return e===void 0?this.getRuleContexts(Na):this.getRuleContext(e,Na)}TO(){return this.getToken(s.TO,0)}ALL(){return this.getToken(s.ALL,0)}usageDeclaration(){return this.getRuleContext(0,de)}flowPayloadFeatureMember(){return this.getRuleContext(0,xo)}get ruleIndex(){return s.RULE_flowDeclaration}enterRule(e){e.enterFlowDeclaration&&e.enterFlowDeclaration(this)}exitRule(e){e.exitFlowDeclaration&&e.exitFlowDeclaration(this)}accept(e){return e.visitFlowDeclaration?e.visitFlowDeclaration(this):e.visitChildren(this)}},N1=class extends u{constructor(e,t){super(e,t)}payloadFeature(){return this.getRuleContext(0,ss)}get ruleIndex(){return s.RULE_payloadFeatureMember}enterRule(e){e.enterPayloadFeatureMember&&e.enterPayloadFeatureMember(this)}exitRule(e){e.exitPayloadFeatureMember&&e.exitPayloadFeatureMember(this)}accept(e){return e.visitPayloadFeatureMember?e.visitPayloadFeatureMember(this):e.visitChildren(this)}},ss=class extends u{constructor(e,t){super(e,t)}valuePart(){return this.getRuleContext(0,Te)}identification(){return this.getRuleContext(0,me)}payloadFeatureSpecializationPart(){return this.getRuleContext(0,Ma)}ownedFeatureTyping(){return this.getRuleContext(0,Gt)}ownedMultiplicity(){return this.getRuleContext(0,kr)}get ruleIndex(){return s.RULE_payloadFeature}enterRule(e){e.enterPayloadFeature&&e.enterPayloadFeature(this)}exitRule(e){e.exitPayloadFeature&&e.exitPayloadFeature(this)}accept(e){return e.visitPayloadFeature?e.visitPayloadFeature(this):e.visitChildren(this)}},Ma=class extends u{constructor(e,t){super(e,t)}featureSpecialization(e){return e===void 0?this.getRuleContexts(ur):this.getRuleContext(e,ur)}multiplicityPart(){return this.getRuleContext(0,Ea)}get ruleIndex(){return s.RULE_payloadFeatureSpecializationPart}enterRule(e){e.enterPayloadFeatureSpecializationPart&&e.enterPayloadFeatureSpecializationPart(this)}exitRule(e){e.exitPayloadFeatureSpecializationPart&&e.exitPayloadFeatureSpecializationPart(this)}accept(e){return e.visitPayloadFeatureSpecializationPart?e.visitPayloadFeatureSpecializationPart(this):e.visitChildren(this)}},Na=class extends u{constructor(e,t){super(e,t)}flowEnd(){return this.getRuleContext(0,U1)}get ruleIndex(){return s.RULE_flowEndMember}enterRule(e){e.enterFlowEndMember&&e.enterFlowEndMember(this)}exitRule(e){e.exitFlowEndMember&&e.exitFlowEndMember(this)}accept(e){return e.visitFlowEndMember?e.visitFlowEndMember(this):e.visitChildren(this)}},U1=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_flowEnd}enterRule(e){e.enterFlowEnd&&e.enterFlowEnd(this)}exitRule(e){e.exitFlowEnd&&e.exitFlowEnd(this)}accept(e){return e.visitFlowEnd?e.visitFlowEnd(this):e.visitChildren(this)}},Y3=class extends u{constructor(e,t){super(e,t)}flowFeature(){return this.getRuleContext(0,w1)}get ruleIndex(){return s.RULE_flowFeatureMember}enterRule(e){e.enterFlowFeatureMember&&e.enterFlowFeatureMember(this)}exitRule(e){e.exitFlowFeatureMember&&e.exitFlowFeatureMember(this)}accept(e){return e.visitFlowFeatureMember?e.visitFlowFeatureMember(this):e.visitChildren(this)}},w1=class extends u{constructor(e,t){super(e,t)}flowFeatureRedefinition(){return this.getRuleContext(0,D1)}get ruleIndex(){return s.RULE_flowFeature}enterRule(e){e.enterFlowFeature&&e.enterFlowFeature(this)}exitRule(e){e.exitFlowFeature&&e.exitFlowFeature(this)}accept(e){return e.visitFlowFeature?e.visitFlowFeature(this):e.visitChildren(this)}},D1=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_flowFeatureRedefinition}enterRule(e){e.enterFlowFeatureRedefinition&&e.enterFlowFeatureRedefinition(this)}exitRule(e){e.exitFlowFeatureRedefinition&&e.exitFlowFeatureRedefinition(this)}accept(e){return e.visitFlowFeatureRedefinition?e.visitFlowFeatureRedefinition(this):e.visitChildren(this)}},Te=class extends u{constructor(e,t){super(e,t)}featureValue(){return this.getRuleContext(0,I1)}get ruleIndex(){return s.RULE_valuePart}enterRule(e){e.enterValuePart&&e.enterValuePart(this)}exitRule(e){e.exitValuePart&&e.exitValuePart(this)}accept(e){return e.visitValuePart?e.visitValuePart(this):e.visitChildren(this)}},I1=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,te)}EQ(){return this.getToken(s.EQ,0)}COLON_EQ(){return this.getToken(s.COLON_EQ,0)}DEFAULT(){return this.getToken(s.DEFAULT,0)}get ruleIndex(){return s.RULE_featureValue}enterRule(e){e.enterFeatureValue&&e.enterFeatureValue(this)}exitRule(e){e.exitFeatureValue&&e.exitFeatureValue(this)}accept(e){return e.visitFeatureValue?e.visitFeatureValue(this):e.visitChildren(this)}},O1=class extends u{constructor(e,t){super(e,t)}multiplicitySubset(){return this.getRuleContext(0,k1)}multiplicityRange(){return this.getRuleContext(0,Ua)}get ruleIndex(){return s.RULE_multiplicity}enterRule(e){e.enterMultiplicity&&e.enterMultiplicity(this)}exitRule(e){e.exitMultiplicity&&e.exitMultiplicity(this)}accept(e){return e.visitMultiplicity?e.visitMultiplicity(this):e.visitChildren(this)}},k1=class extends u{constructor(e,t){super(e,t)}MULTIPLICITY(){return this.getToken(s.MULTIPLICITY,0)}subsets(){return this.getRuleContext(0,La)}typeBody(){return this.getRuleContext(0,Fe)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_multiplicitySubset}enterRule(e){e.enterMultiplicitySubset&&e.enterMultiplicitySubset(this)}exitRule(e){e.exitMultiplicitySubset&&e.exitMultiplicitySubset(this)}accept(e){return e.visitMultiplicitySubset?e.visitMultiplicitySubset(this):e.visitChildren(this)}},Ua=class extends u{constructor(e,t){super(e,t)}MULTIPLICITY(){return this.getToken(s.MULTIPLICITY,0)}multiplicityBounds(){return this.getRuleContext(0,wa)}typeBody(){return this.getRuleContext(0,Fe)}identification(){return this.getRuleContext(0,me)}LBRACK(){return this.getToken(s.LBRACK,0)}multiplicityExpressionMember(e){return e===void 0?this.getRuleContexts(Wi):this.getRuleContext(e,Wi)}RBRACK(){return this.getToken(s.RBRACK,0)}DOT_DOT(){return this.getToken(s.DOT_DOT,0)}get ruleIndex(){return s.RULE_multiplicityRange}enterRule(e){e.enterMultiplicityRange&&e.enterMultiplicityRange(this)}exitRule(e){e.exitMultiplicityRange&&e.exitMultiplicityRange(this)}accept(e){return e.visitMultiplicityRange?e.visitMultiplicityRange(this):e.visitChildren(this)}},kr=class extends u{constructor(e,t){super(e,t)}ownedMultiplicityRange(){return this.getRuleContext(0,F1)}multiplicityRange(){return this.getRuleContext(0,Ua)}get ruleIndex(){return s.RULE_ownedMultiplicity}enterRule(e){e.enterOwnedMultiplicity&&e.enterOwnedMultiplicity(this)}exitRule(e){e.exitOwnedMultiplicity&&e.exitOwnedMultiplicity(this)}accept(e){return e.visitOwnedMultiplicity?e.visitOwnedMultiplicity(this):e.visitChildren(this)}},F1=class extends u{constructor(e,t){super(e,t)}multiplicityBounds(){return this.getRuleContext(0,wa)}get ruleIndex(){return s.RULE_ownedMultiplicityRange}enterRule(e){e.enterOwnedMultiplicityRange&&e.enterOwnedMultiplicityRange(this)}exitRule(e){e.exitOwnedMultiplicityRange&&e.exitOwnedMultiplicityRange(this)}accept(e){return e.visitOwnedMultiplicityRange?e.visitOwnedMultiplicityRange(this):e.visitChildren(this)}},wa=class extends u{constructor(e,t){super(e,t)}LBRACK(){return this.getToken(s.LBRACK,0)}multiplicityExpressionMember(e){return e===void 0?this.getRuleContexts(Wi):this.getRuleContext(e,Wi)}RBRACK(){return this.getToken(s.RBRACK,0)}DOT_DOT(){return this.getToken(s.DOT_DOT,0)}get ruleIndex(){return s.RULE_multiplicityBounds}enterRule(e){e.enterMultiplicityBounds&&e.enterMultiplicityBounds(this)}exitRule(e){e.exitMultiplicityBounds&&e.exitMultiplicityBounds(this)}accept(e){return e.visitMultiplicityBounds?e.visitMultiplicityBounds(this):e.visitChildren(this)}},Wi=class extends u{constructor(e,t){super(e,t)}literalExpression(){return this.getRuleContext(0,sa)}featureReferenceExpression(){return this.getRuleContext(0,_u)}get ruleIndex(){return s.RULE_multiplicityExpressionMember}enterRule(e){e.enterMultiplicityExpressionMember&&e.enterMultiplicityExpressionMember(this)}exitRule(e){e.exitMultiplicityExpressionMember&&e.exitMultiplicityExpressionMember(this)}accept(e){return e.visitMultiplicityExpressionMember?e.visitMultiplicityExpressionMember(this):e.visitChildren(this)}},H1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,xt)}METACLASS(){return this.getToken(s.METACLASS,0)}classifierDeclaration(){return this.getRuleContext(0,Pt)}typeBody(){return this.getRuleContext(0,Fe)}get ruleIndex(){return s.RULE_metaclass}enterRule(e){e.enterMetaclass&&e.enterMetaclass(this)}exitRule(e){e.exitMetaclass&&e.exitMetaclass(this)}accept(e){return e.visitMetaclass?e.visitMetaclass(this):e.visitChildren(this)}},Da=class extends u{constructor(e,t){super(e,t)}HASH(){return this.getToken(s.HASH,0)}prefixMetadataFeature(){return this.getRuleContext(0,Ia)}prefixMetadataUsage(){return this.getRuleContext(0,Bo)}get ruleIndex(){return s.RULE_prefixMetadataAnnotation}enterRule(e){e.enterPrefixMetadataAnnotation&&e.enterPrefixMetadataAnnotation(this)}exitRule(e){e.exitPrefixMetadataAnnotation&&e.exitPrefixMetadataAnnotation(this)}accept(e){return e.visitPrefixMetadataAnnotation?e.visitPrefixMetadataAnnotation(this):e.visitChildren(this)}},Ze=class extends u{constructor(e,t){super(e,t)}HASH(){return this.getToken(s.HASH,0)}prefixMetadataFeature(){return this.getRuleContext(0,Ia)}prefixMetadataUsage(){return this.getRuleContext(0,Bo)}get ruleIndex(){return s.RULE_prefixMetadataMember}enterRule(e){e.enterPrefixMetadataMember&&e.enterPrefixMetadataMember(this)}exitRule(e){e.exitPrefixMetadataMember&&e.exitPrefixMetadataMember(this)}accept(e){return e.visitPrefixMetadataMember?e.visitPrefixMetadataMember(this):e.visitChildren(this)}},Ia=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Gt)}get ruleIndex(){return s.RULE_prefixMetadataFeature}enterRule(e){e.enterPrefixMetadataFeature&&e.enterPrefixMetadataFeature(this)}exitRule(e){e.exitPrefixMetadataFeature&&e.exitPrefixMetadataFeature(this)}accept(e){return e.visitPrefixMetadataFeature?e.visitPrefixMetadataFeature(this):e.visitChildren(this)}},B1=class extends u{constructor(e,t){super(e,t)}metadataFeatureDeclaration(){return this.getRuleContext(0,_1)}metadataBody(){return this.getRuleContext(0,Ki)}AT_SIGN(){return this.getToken(s.AT_SIGN,0)}METADATA(){return this.getToken(s.METADATA,0)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(Ze):this.getRuleContext(e,Ze)}ABOUT(){return this.getToken(s.ABOUT,0)}annotation(e){return e===void 0?this.getRuleContexts(Ir):this.getRuleContext(e,Ir)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_metadataFeature}enterRule(e){e.enterMetadataFeature&&e.enterMetadataFeature(this)}exitRule(e){e.exitMetadataFeature&&e.exitMetadataFeature(this)}accept(e){return e.visitMetadataFeature?e.visitMetadataFeature(this):e.visitChildren(this)}},_1=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Gt)}COLON(){return this.getToken(s.COLON,0)}TYPED(){return this.getToken(s.TYPED,0)}BY(){return this.getToken(s.BY,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_metadataFeatureDeclaration}enterRule(e){e.enterMetadataFeatureDeclaration&&e.enterMetadataFeatureDeclaration(this)}exitRule(e){e.exitMetadataFeatureDeclaration&&e.exitMetadataFeatureDeclaration(this)}accept(e){return e.visitMetadataFeatureDeclaration?e.visitMetadataFeatureDeclaration(this):e.visitChildren(this)}},Ki=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}metadataBodyElement(e){return e===void 0?this.getRuleContexts(Oa):this.getRuleContext(e,Oa)}definitionMember(e){return e===void 0?this.getRuleContexts($i):this.getRuleContext(e,$i)}metadataBodyUsageMember(e){return e===void 0?this.getRuleContexts(_o):this.getRuleContext(e,_o)}aliasMember(e){return e===void 0?this.getRuleContexts(lr):this.getRuleContext(e,lr)}importRule(e){return e===void 0?this.getRuleContexts(jt):this.getRuleContext(e,jt)}get ruleIndex(){return s.RULE_metadataBody}enterRule(e){e.enterMetadataBody&&e.enterMetadataBody(this)}exitRule(e){e.exitMetadataBody&&e.exitMetadataBody(this)}accept(e){return e.visitMetadataBody?e.visitMetadataBody(this):e.visitChildren(this)}},Oa=class extends u{constructor(e,t){super(e,t)}nonFeatureMember(){return this.getRuleContext(0,Xn)}metadataBodyFeatureMember(){return this.getRuleContext(0,V1)}aliasMember(){return this.getRuleContext(0,lr)}importRule(){return this.getRuleContext(0,jt)}get ruleIndex(){return s.RULE_metadataBodyElement}enterRule(e){e.enterMetadataBodyElement&&e.enterMetadataBodyElement(this)}exitRule(e){e.exitMetadataBodyElement&&e.exitMetadataBodyElement(this)}accept(e){return e.visitMetadataBodyElement?e.visitMetadataBodyElement(this):e.visitChildren(this)}},V1=class extends u{constructor(e,t){super(e,t)}metadataBodyFeature(){return this.getRuleContext(0,q1)}get ruleIndex(){return s.RULE_metadataBodyFeatureMember}enterRule(e){e.enterMetadataBodyFeatureMember&&e.enterMetadataBodyFeatureMember(this)}exitRule(e){e.exitMetadataBodyFeatureMember&&e.exitMetadataBodyFeatureMember(this)}accept(e){return e.visitMetadataBodyFeatureMember?e.visitMetadataBodyFeatureMember(this):e.visitChildren(this)}},q1=class extends u{constructor(e,t){super(e,t)}ownedRedefinition(){return this.getRuleContext(0,ci)}metadataBody(){return this.getRuleContext(0,Ki)}FEATURE(){return this.getToken(s.FEATURE,0)}featureSpecializationPart(){return this.getRuleContext(0,dt)}valuePart(){return this.getRuleContext(0,Te)}COLON_GT_GT(){return this.getToken(s.COLON_GT_GT,0)}REDEFINES(){return this.getToken(s.REDEFINES,0)}get ruleIndex(){return s.RULE_metadataBodyFeature}enterRule(e){e.enterMetadataBodyFeature&&e.enterMetadataBodyFeature(this)}exitRule(e){e.exitMetadataBodyFeature&&e.exitMetadataBodyFeature(this)}accept(e){return e.visitMetadataBodyFeature?e.visitMetadataBodyFeature(this):e.visitChildren(this)}},ka=class extends u{constructor(e,t){super(e,t)}packageDeclaration(){return this.getRuleContext(0,Ha)}packageBody(){return this.getRuleContext(0,Ba)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(Ze):this.getRuleContext(e,Ze)}get ruleIndex(){return s.RULE_package}enterRule(e){e.enterPackage&&e.enterPackage(this)}exitRule(e){e.exitPackage&&e.exitPackage(this)}accept(e){return e.visitPackage?e.visitPackage(this):e.visitChildren(this)}},Fa=class extends u{constructor(e,t){super(e,t)}LIBRARY(){return this.getToken(s.LIBRARY,0)}packageDeclaration(){return this.getRuleContext(0,Ha)}packageBody(){return this.getRuleContext(0,Ba)}STANDARD(){return this.getToken(s.STANDARD,0)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(Ze):this.getRuleContext(e,Ze)}get ruleIndex(){return s.RULE_libraryPackage}enterRule(e){e.enterLibraryPackage&&e.enterLibraryPackage(this)}exitRule(e){e.exitLibraryPackage&&e.exitLibraryPackage(this)}accept(e){return e.visitLibraryPackage?e.visitLibraryPackage(this):e.visitChildren(this)}},Ha=class extends u{constructor(e,t){super(e,t)}PACKAGE(){return this.getToken(s.PACKAGE,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_packageDeclaration}enterRule(e){e.enterPackageDeclaration&&e.enterPackageDeclaration(this)}exitRule(e){e.exitPackageDeclaration&&e.exitPackageDeclaration(this)}accept(e){return e.visitPackageDeclaration?e.visitPackageDeclaration(this):e.visitChildren(this)}},Ba=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}packageBodyElement(e){return e===void 0?this.getRuleContexts(zi):this.getRuleContext(e,zi)}get ruleIndex(){return s.RULE_packageBody}enterRule(e){e.enterPackageBody&&e.enterPackageBody(this)}exitRule(e){e.exitPackageBody&&e.exitPackageBody(this)}accept(e){return e.visitPackageBody?e.visitPackageBody(this):e.visitChildren(this)}},as=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}FILTER(){return this.getToken(s.FILTER,0)}ownedExpression(){return this.getRuleContext(0,te)}SEMI(){return this.getToken(s.SEMI,0)}get ruleIndex(){return s.RULE_elementFilterMember}enterRule(e){e.enterElementFilterMember&&e.enterElementFilterMember(this)}exitRule(e){e.exitElementFilterMember&&e.exitElementFilterMember(this)}accept(e){return e.visitElementFilterMember?e.visitElementFilterMember(this):e.visitChildren(this)}},j1=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(F):this.getRuleContext(e,F)}TO(){return this.getToken(s.TO,0)}FROM(){return this.getToken(s.FROM,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_dependencyDeclaration}enterRule(e){e.enterDependencyDeclaration&&e.enterDependencyDeclaration(this)}exitRule(e){e.exitDependencyDeclaration&&e.exitDependencyDeclaration(this)}accept(e){return e.visitDependencyDeclaration?e.visitDependencyDeclaration(this):e.visitChildren(this)}},_a=class extends u{constructor(e,t){super(e,t)}annotatingElement(){return this.getRuleContext(0,Hi)}get ruleIndex(){return s.RULE_annotatingMember}enterRule(e){e.enterAnnotatingMember&&e.enterAnnotatingMember(this)}exitRule(e){e.exitAnnotatingMember&&e.exitAnnotatingMember(this)}accept(e){return e.visitAnnotatingMember?e.visitAnnotatingMember(this):e.visitChildren(this)}},zi=class extends u{constructor(e,t){super(e,t)}packageMember(){return this.getRuleContext(0,G1)}elementFilterMember(){return this.getRuleContext(0,as)}aliasMember(){return this.getRuleContext(0,lr)}importRule(){return this.getRuleContext(0,jt)}get ruleIndex(){return s.RULE_packageBodyElement}enterRule(e){e.enterPackageBodyElement&&e.enterPackageBodyElement(this)}exitRule(e){e.exitPackageBodyElement&&e.exitPackageBodyElement(this)}accept(e){return e.visitPackageBodyElement?e.visitPackageBodyElement(this):e.visitChildren(this)}},G1=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}definitionElement(){return this.getRuleContext(0,os)}usageElement(){return this.getRuleContext(0,Va)}get ruleIndex(){return s.RULE_packageMember}enterRule(e){e.enterPackageMember&&e.enterPackageMember(this)}exitRule(e){e.exitPackageMember&&e.exitPackageMember(this)}accept(e){return e.visitPackageMember?e.visitPackageMember(this):e.visitChildren(this)}},os=class extends u{constructor(e,t){super(e,t)}package(){return this.getRuleContext(0,ka)}libraryPackage(){return this.getRuleContext(0,Fa)}annotatingElement(){return this.getRuleContext(0,Hi)}dependency(){return this.getRuleContext(0,oa)}attributeDefinition(){return this.getRuleContext(0,X1)}enumerationDefinition(){return this.getRuleContext(0,Z1)}occurrenceDefinition(){return this.getRuleContext(0,r0)}individualDefinition(){return this.getRuleContext(0,i0)}itemDefinition(){return this.getRuleContext(0,a0)}partDefinition(){return this.getRuleContext(0,o0)}connectionDefinition(){return this.getRuleContext(0,d0)}flowDefinition(){return this.getRuleContext(0,A0)}interfaceDefinition(){return this.getRuleContext(0,x0)}portDefinition(){return this.getRuleContext(0,l0)}actionDefinition(){return this.getRuleContext(0,D0)}calculationDefinition(){return this.getRuleContext(0,Fh)}stateDefinition(){return this.getRuleContext(0,xh)}constraintDefinition(){return this.getRuleContext(0,_h)}requirementDefinition(){return this.getRuleContext(0,jh)}concernDefinition(){return this.getRuleContext(0,sd)}caseDefinition(){return this.getRuleContext(0,od)}analysisCaseDefinition(){return this.getRuleContext(0,hd)}verificationCaseDefinition(){return this.getRuleContext(0,pd)}useCaseDefinition(){return this.getRuleContext(0,bd)}viewDefinition(){return this.getRuleContext(0,yd)}viewpointDefinition(){return this.getRuleContext(0,Td)}renderingDefinition(){return this.getRuleContext(0,Md)}metadataDefinition(){return this.getRuleContext(0,Nd)}allocationDefinition(){return this.getRuleContext(0,P0)}extendedDefinition(){return this.getRuleContext(0,Dd)}get ruleIndex(){return s.RULE_definitionElement}enterRule(e){e.enterDefinitionElement&&e.enterDefinitionElement(this)}exitRule(e){e.exitDefinitionElement&&e.exitDefinitionElement(this)}accept(e){return e.visitDefinitionElement?e.visitDefinitionElement(this):e.visitChildren(this)}},Va=class extends u{constructor(e,t){super(e,t)}nonOccurrenceUsageElement(){return this.getRuleContext(0,hs)}occurrenceUsageElement(){return this.getRuleContext(0,ds)}get ruleIndex(){return s.RULE_usageElement}enterRule(e){e.enterUsageElement&&e.enterUsageElement(this)}exitRule(e){e.exitUsageElement&&e.exitUsageElement(this)}accept(e){return e.visitUsageElement?e.visitUsageElement(this):e.visitChildren(this)}},Qi=class extends u{constructor(e,t){super(e,t)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}VARIATION(){return this.getToken(s.VARIATION,0)}get ruleIndex(){return s.RULE_basicDefinitionPrefix}enterRule(e){e.enterBasicDefinitionPrefix&&e.enterBasicDefinitionPrefix(this)}exitRule(e){e.exitBasicDefinitionPrefix&&e.exitBasicDefinitionPrefix(this)}accept(e){return e.visitBasicDefinitionPrefix?e.visitBasicDefinitionPrefix(this):e.visitChildren(this)}},mt=class extends u{constructor(e,t){super(e,t)}prefixMetadataMember(){return this.getRuleContext(0,Ze)}get ruleIndex(){return s.RULE_definitionExtensionKeyword}enterRule(e){e.enterDefinitionExtensionKeyword&&e.enterDefinitionExtensionKeyword(this)}exitRule(e){e.exitDefinitionExtensionKeyword&&e.exitDefinitionExtensionKeyword(this)}accept(e){return e.visitDefinitionExtensionKeyword?e.visitDefinitionExtensionKeyword(this):e.visitChildren(this)}},qa=class extends u{constructor(e,t){super(e,t)}basicDefinitionPrefix(){return this.getRuleContext(0,Qi)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(mt):this.getRuleContext(e,mt)}get ruleIndex(){return s.RULE_definitionPrefix}enterRule(e){e.enterDefinitionPrefix&&e.enterDefinitionPrefix(this)}exitRule(e){e.exitDefinitionPrefix&&e.exitDefinitionPrefix(this)}accept(e){return e.visitDefinitionPrefix?e.visitDefinitionPrefix(this):e.visitChildren(this)}},bt=class extends u{constructor(e,t){super(e,t)}definitionDeclaration(){return this.getRuleContext(0,et)}definitionBody(){return this.getRuleContext(0,di)}get ruleIndex(){return s.RULE_definition}enterRule(e){e.enterDefinition&&e.enterDefinition(this)}exitRule(e){e.exitDefinition&&e.exitDefinition(this)}accept(e){return e.visitDefinition?e.visitDefinition(this):e.visitChildren(this)}},et=class extends u{constructor(e,t){super(e,t)}identification(){return this.getRuleContext(0,me)}subclassificationPart(){return this.getRuleContext(0,J1)}get ruleIndex(){return s.RULE_definitionDeclaration}enterRule(e){e.enterDefinitionDeclaration&&e.enterDefinitionDeclaration(this)}exitRule(e){e.exitDefinitionDeclaration&&e.exitDefinitionDeclaration(this)}accept(e){return e.visitDefinitionDeclaration?e.visitDefinitionDeclaration(this):e.visitChildren(this)}},di=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}definitionBodyItem(e){return e===void 0?this.getRuleContexts(pi):this.getRuleContext(e,pi)}get ruleIndex(){return s.RULE_definitionBody}enterRule(e){e.enterDefinitionBody&&e.enterDefinitionBody(this)}exitRule(e){e.exitDefinitionBody&&e.exitDefinitionBody(this)}accept(e){return e.visitDefinitionBody?e.visitDefinitionBody(this):e.visitChildren(this)}},pi=class extends u{constructor(e,t){super(e,t)}importRule(){return this.getRuleContext(0,jt)}memberPrefix(){return this.getRuleContext(0,re)}definitionBodyItemContent(){return this.getRuleContext(0,W1)}occurrenceUsageElement(){return this.getRuleContext(0,ds)}sourceSuccessionMember(){return this.getRuleContext(0,xi)}get ruleIndex(){return s.RULE_definitionBodyItem}enterRule(e){e.enterDefinitionBodyItem&&e.enterDefinitionBodyItem(this)}exitRule(e){e.exitDefinitionBodyItem&&e.exitDefinitionBodyItem(this)}accept(e){return e.visitDefinitionBodyItem?e.visitDefinitionBodyItem(this):e.visitChildren(this)}},W1=class extends u{constructor(e,t){super(e,t)}ALIAS(){return this.getToken(s.ALIAS,0)}FOR(){return this.getToken(s.FOR,0)}qualifiedName(){return this.getRuleContext(0,F)}relationshipBody(){return this.getRuleContext(0,Je)}LT(){return this.getToken(s.LT,0)}name(e){return e===void 0?this.getRuleContexts(ft):this.getRuleContext(e,ft)}GT(){return this.getToken(s.GT,0)}VARIANT(){return this.getToken(s.VARIANT,0)}variantUsageElement(){return this.getRuleContext(0,Ka)}definitionElement(){return this.getRuleContext(0,os)}nonOccurrenceUsageElement(){return this.getRuleContext(0,hs)}get ruleIndex(){return s.RULE_definitionBodyItemContent}enterRule(e){e.enterDefinitionBodyItemContent&&e.enterDefinitionBodyItemContent(this)}exitRule(e){e.exitDefinitionBodyItemContent&&e.exitDefinitionBodyItemContent(this)}accept(e){return e.visitDefinitionBodyItemContent?e.visitDefinitionBodyItemContent(this):e.visitChildren(this)}},$i=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}definitionElement(){return this.getRuleContext(0,os)}get ruleIndex(){return s.RULE_definitionMember}enterRule(e){e.enterDefinitionMember&&e.enterDefinitionMember(this)}exitRule(e){e.exitDefinitionMember&&e.exitDefinitionMember(this)}accept(e){return e.visitDefinitionMember?e.visitDefinitionMember(this):e.visitChildren(this)}},ja=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}VARIANT(){return this.getToken(s.VARIANT,0)}variantUsageElement(){return this.getRuleContext(0,Ka)}get ruleIndex(){return s.RULE_variantUsageMember}enterRule(e){e.enterVariantUsageMember&&e.enterVariantUsageMember(this)}exitRule(e){e.exitVariantUsageMember&&e.exitVariantUsageMember(this)}accept(e){return e.visitVariantUsageMember?e.visitVariantUsageMember(this):e.visitChildren(this)}},K1=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}nonOccurrenceUsageElement(){return this.getRuleContext(0,hs)}get ruleIndex(){return s.RULE_nonOccurrenceUsageMember}enterRule(e){e.enterNonOccurrenceUsageMember&&e.enterNonOccurrenceUsageMember(this)}exitRule(e){e.exitNonOccurrenceUsageMember&&e.exitNonOccurrenceUsageMember(this)}accept(e){return e.visitNonOccurrenceUsageMember?e.visitNonOccurrenceUsageMember(this):e.visitChildren(this)}},J3=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}occurrenceUsageElement(){return this.getRuleContext(0,ds)}get ruleIndex(){return s.RULE_occurrenceUsageMember}enterRule(e){e.enterOccurrenceUsageMember&&e.enterOccurrenceUsageMember(this)}exitRule(e){e.exitOccurrenceUsageMember&&e.exitOccurrenceUsageMember(this)}accept(e){return e.visitOccurrenceUsageMember?e.visitOccurrenceUsageMember(this):e.visitChildren(this)}},z1=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}structureUsageElement(){return this.getRuleContext(0,ps)}get ruleIndex(){return s.RULE_structureUsageMember}enterRule(e){e.enterStructureUsageMember&&e.enterStructureUsageMember(this)}exitRule(e){e.exitStructureUsageMember&&e.exitStructureUsageMember(this)}accept(e){return e.visitStructureUsageMember?e.visitStructureUsageMember(this):e.visitChildren(this)}},Ga=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}behaviorUsageElement(){return this.getRuleContext(0,Xi)}get ruleIndex(){return s.RULE_behaviorUsageMember}enterRule(e){e.enterBehaviorUsageMember&&e.enterBehaviorUsageMember(this)}exitRule(e){e.exitBehaviorUsageMember&&e.exitBehaviorUsageMember(this)}accept(e){return e.visitBehaviorUsageMember?e.visitBehaviorUsageMember(this):e.visitChildren(this)}},Yi=class extends u{constructor(e,t){super(e,t)}featureDirection(){return this.getRuleContext(0,Ca)}DERIVED(){return this.getToken(s.DERIVED,0)}CONSTANT(){return this.getToken(s.CONSTANT,0)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}VARIATION(){return this.getToken(s.VARIATION,0)}get ruleIndex(){return s.RULE_refPrefix}enterRule(e){e.enterRefPrefix&&e.enterRefPrefix(this)}exitRule(e){e.exitRefPrefix&&e.exitRefPrefix(this)}accept(e){return e.visitRefPrefix?e.visitRefPrefix(this):e.visitChildren(this)}},fi=class extends u{constructor(e,t){super(e,t)}refPrefix(){return this.getRuleContext(0,Yi)}REF(){return this.getToken(s.REF,0)}get ruleIndex(){return s.RULE_basicUsagePrefix}enterRule(e){e.enterBasicUsagePrefix&&e.enterBasicUsagePrefix(this)}exitRule(e){e.exitBasicUsagePrefix&&e.exitBasicUsagePrefix(this)}accept(e){return e.visitBasicUsagePrefix?e.visitBasicUsagePrefix(this):e.visitChildren(this)}},ls=class extends u{constructor(e,t){super(e,t)}END(){return this.getToken(s.END,0)}ownedCrossFeatureMember(){return this.getRuleContext(0,ya)}get ruleIndex(){return s.RULE_endUsagePrefix}enterRule(e){e.enterEndUsagePrefix&&e.enterEndUsagePrefix(this)}exitRule(e){e.exitEndUsagePrefix&&e.exitEndUsagePrefix(this)}accept(e){return e.visitEndUsagePrefix?e.visitEndUsagePrefix(this):e.visitChildren(this)}},le=class extends u{constructor(e,t){super(e,t)}prefixMetadataMember(){return this.getRuleContext(0,Ze)}get ruleIndex(){return s.RULE_usageExtensionKeyword}enterRule(e){e.enterUsageExtensionKeyword&&e.enterUsageExtensionKeyword(this)}exitRule(e){e.exitUsageExtensionKeyword&&e.exitUsageExtensionKeyword(this)}accept(e){return e.visitUsageExtensionKeyword?e.visitUsageExtensionKeyword(this):e.visitChildren(this)}},Wa=class extends u{constructor(e,t){super(e,t)}endUsagePrefix(){return this.getRuleContext(0,ls)}basicUsagePrefix(){return this.getRuleContext(0,fi)}get ruleIndex(){return s.RULE_unextendedUsagePrefix}enterRule(e){e.enterUnextendedUsagePrefix&&e.enterUnextendedUsagePrefix(this)}exitRule(e){e.exitUnextendedUsagePrefix&&e.exitUnextendedUsagePrefix(this)}accept(e){return e.visitUnextendedUsagePrefix?e.visitUnextendedUsagePrefix(this):e.visitChildren(this)}},Ji=class extends u{constructor(e,t){super(e,t)}unextendedUsagePrefix(){return this.getRuleContext(0,Wa)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_usagePrefix}enterRule(e){e.enterUsagePrefix&&e.enterUsagePrefix(this)}exitRule(e){e.exitUsagePrefix&&e.exitUsagePrefix(this)}accept(e){return e.visitUsagePrefix?e.visitUsagePrefix(this):e.visitChildren(this)}},_e=class extends u{constructor(e,t){super(e,t)}usageCompletion(){return this.getRuleContext(0,us)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_usage}enterRule(e){e.enterUsage&&e.enterUsage(this)}exitRule(e){e.exitUsage&&e.exitUsage(this)}accept(e){return e.visitUsage?e.visitUsage(this):e.visitChildren(this)}},de=class extends u{constructor(e,t){super(e,t)}identification(){return this.getRuleContext(0,me)}featureSpecializationPart(){return this.getRuleContext(0,dt)}get ruleIndex(){return s.RULE_usageDeclaration}enterRule(e){e.enterUsageDeclaration&&e.enterUsageDeclaration(this)}exitRule(e){e.exitUsageDeclaration&&e.exitUsageDeclaration(this)}accept(e){return e.visitUsageDeclaration?e.visitUsageDeclaration(this):e.visitChildren(this)}},us=class extends u{constructor(e,t){super(e,t)}usageBody(){return this.getRuleContext(0,Wt)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_usageCompletion}enterRule(e){e.enterUsageCompletion&&e.enterUsageCompletion(this)}exitRule(e){e.exitUsageCompletion&&e.exitUsageCompletion(this)}accept(e){return e.visitUsageCompletion?e.visitUsageCompletion(this):e.visitChildren(this)}},Wt=class extends u{constructor(e,t){super(e,t)}definitionBody(){return this.getRuleContext(0,di)}get ruleIndex(){return s.RULE_usageBody}enterRule(e){e.enterUsageBody&&e.enterUsageBody(this)}exitRule(e){e.exitUsageBody&&e.exitUsageBody(this)}accept(e){return e.visitUsageBody?e.visitUsageBody(this):e.visitChildren(this)}},Q1=class extends u{constructor(e,t){super(e,t)}refPrefix(){return this.getRuleContext(0,Yi)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_defaultReferenceUsage}enterRule(e){e.enterDefaultReferenceUsage&&e.enterDefaultReferenceUsage(this)}exitRule(e){e.exitDefaultReferenceUsage&&e.exitDefaultReferenceUsage(this)}accept(e){return e.visitDefaultReferenceUsage?e.visitDefaultReferenceUsage(this):e.visitChildren(this)}},cs=class extends u{constructor(e,t){super(e,t)}REF(){return this.getToken(s.REF,0)}usage(){return this.getRuleContext(0,_e)}endUsagePrefix(){return this.getRuleContext(0,ls)}refPrefix(){return this.getRuleContext(0,Yi)}get ruleIndex(){return s.RULE_referenceUsage}enterRule(e){e.enterReferenceUsage&&e.enterReferenceUsage(this)}exitRule(e){e.exitReferenceUsage&&e.exitReferenceUsage(this)}accept(e){return e.visitReferenceUsage?e.visitReferenceUsage(this):e.visitChildren(this)}},$1=class extends u{constructor(e,t){super(e,t)}endUsagePrefix(){return this.getRuleContext(0,ls)}featureDeclaration(){return this.getRuleContext(0,ht)}usageCompletion(){return this.getRuleContext(0,us)}get ruleIndex(){return s.RULE_endFeatureUsage}enterRule(e){e.enterEndFeatureUsage&&e.enterEndFeatureUsage(this)}exitRule(e){e.exitEndFeatureUsage&&e.exitEndFeatureUsage(this)}accept(e){return e.visitEndFeatureUsage?e.visitEndFeatureUsage(this):e.visitChildren(this)}},Y1=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}usageBody(){return this.getRuleContext(0,Wt)}featureSpecialization(e){return e===void 0?this.getRuleContexts(ur):this.getRuleContext(e,ur)}get ruleIndex(){return s.RULE_variantReference}enterRule(e){e.enterVariantReference&&e.enterVariantReference(this)}exitRule(e){e.exitVariantReference&&e.exitVariantReference(this)}accept(e){return e.visitVariantReference?e.visitVariantReference(this):e.visitChildren(this)}},hs=class extends u{constructor(e,t){super(e,t)}referenceUsage(){return this.getRuleContext(0,cs)}endFeatureUsage(){return this.getRuleContext(0,$1)}attributeUsage(){return this.getRuleContext(0,fs)}enumerationUsage(){return this.getRuleContext(0,Qa)}bindingConnectorAsUsage(){return this.getRuleContext(0,ms)}successionAsUsage(){return this.getRuleContext(0,bs)}extendedUsage(){return this.getRuleContext(0,Id)}defaultReferenceUsage(){return this.getRuleContext(0,Q1)}get ruleIndex(){return s.RULE_nonOccurrenceUsageElement}enterRule(e){e.enterNonOccurrenceUsageElement&&e.enterNonOccurrenceUsageElement(this)}exitRule(e){e.exitNonOccurrenceUsageElement&&e.exitNonOccurrenceUsageElement(this)}accept(e){return e.visitNonOccurrenceUsageElement?e.visitNonOccurrenceUsageElement(this):e.visitChildren(this)}},ds=class extends u{constructor(e,t){super(e,t)}structureUsageElement(){return this.getRuleContext(0,ps)}behaviorUsageElement(){return this.getRuleContext(0,Xi)}get ruleIndex(){return s.RULE_occurrenceUsageElement}enterRule(e){e.enterOccurrenceUsageElement&&e.enterOccurrenceUsageElement(this)}exitRule(e){e.exitOccurrenceUsageElement&&e.exitOccurrenceUsageElement(this)}accept(e){return e.visitOccurrenceUsageElement?e.visitOccurrenceUsageElement(this):e.visitChildren(this)}},ps=class extends u{constructor(e,t){super(e,t)}occurrenceUsage(){return this.getRuleContext(0,Ya)}individualUsage(){return this.getRuleContext(0,Ja)}portionUsage(){return this.getRuleContext(0,Xa)}eventOccurrenceUsage(){return this.getRuleContext(0,Za)}itemUsage(){return this.getRuleContext(0,to)}partUsage(){return this.getRuleContext(0,ro)}viewUsage(){return this.getRuleContext(0,ko)}renderingUsage(){return this.getRuleContext(0,Ho)}portUsage(){return this.getRuleContext(0,io)}connectionUsage(){return this.getRuleContext(0,no)}interfaceUsage(){return this.getRuleContext(0,lo)}allocationUsage(){return this.getRuleContext(0,uo)}message(){return this.getRuleContext(0,co)}flowUsage(){return this.getRuleContext(0,po)}successionFlowUsage(){return this.getRuleContext(0,fo)}get ruleIndex(){return s.RULE_structureUsageElement}enterRule(e){e.enterStructureUsageElement&&e.enterStructureUsageElement(this)}exitRule(e){e.exitStructureUsageElement&&e.exitStructureUsageElement(this)}accept(e){return e.visitStructureUsageElement?e.visitStructureUsageElement(this):e.visitChildren(this)}},Xi=class extends u{constructor(e,t){super(e,t)}actionUsage(){return this.getRuleContext(0,H0)}calculationUsage(){return this.getRuleContext(0,Hh)}stateUsage(){return this.getRuleContext(0,Sh)}constraintUsage(){return this.getRuleContext(0,Vh)}requirementUsage(){return this.getRuleContext(0,Zh)}concernUsage(){return this.getRuleContext(0,ad)}caseUsage(){return this.getRuleContext(0,ld)}analysisCaseUsage(){return this.getRuleContext(0,dd)}verificationCaseUsage(){return this.getRuleContext(0,fd)}useCaseUsage(){return this.getRuleContext(0,Rd)}viewpointUsage(){return this.getRuleContext(0,Ad)}performActionUsage(){return this.getRuleContext(0,B0)}exhibitStateUsage(){return this.getRuleContext(0,Ph)}includeUseCaseUsage(){return this.getRuleContext(0,gd)}assertConstraintUsage(){return this.getRuleContext(0,qh)}satisfyRequirementUsage(){return this.getRuleContext(0,ed)}get ruleIndex(){return s.RULE_behaviorUsageElement}enterRule(e){e.enterBehaviorUsageElement&&e.enterBehaviorUsageElement(this)}exitRule(e){e.exitBehaviorUsageElement&&e.exitBehaviorUsageElement(this)}accept(e){return e.visitBehaviorUsageElement?e.visitBehaviorUsageElement(this):e.visitChildren(this)}},Ka=class extends u{constructor(e,t){super(e,t)}variantReference(){return this.getRuleContext(0,Y1)}referenceUsage(){return this.getRuleContext(0,cs)}attributeUsage(){return this.getRuleContext(0,fs)}bindingConnectorAsUsage(){return this.getRuleContext(0,ms)}successionAsUsage(){return this.getRuleContext(0,bs)}occurrenceUsage(){return this.getRuleContext(0,Ya)}individualUsage(){return this.getRuleContext(0,Ja)}portionUsage(){return this.getRuleContext(0,Xa)}eventOccurrenceUsage(){return this.getRuleContext(0,Za)}itemUsage(){return this.getRuleContext(0,to)}partUsage(){return this.getRuleContext(0,ro)}viewUsage(){return this.getRuleContext(0,ko)}renderingUsage(){return this.getRuleContext(0,Ho)}portUsage(){return this.getRuleContext(0,io)}connectionUsage(){return this.getRuleContext(0,no)}interfaceUsage(){return this.getRuleContext(0,lo)}allocationUsage(){return this.getRuleContext(0,uo)}message(){return this.getRuleContext(0,co)}flowUsage(){return this.getRuleContext(0,po)}successionFlowUsage(){return this.getRuleContext(0,fo)}behaviorUsageElement(){return this.getRuleContext(0,Xi)}get ruleIndex(){return s.RULE_variantUsageElement}enterRule(e){e.enterVariantUsageElement&&e.enterVariantUsageElement(this)}exitRule(e){e.exitVariantUsageElement&&e.exitVariantUsageElement(this)}accept(e){return e.visitVariantUsageElement?e.visitVariantUsageElement(this):e.visitChildren(this)}},J1=class extends u{constructor(e,t){super(e,t)}ownedSubclassification(e){return e===void 0?this.getRuleContexts(Vi):this.getRuleContext(e,Vi)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_subclassificationPart}enterRule(e){e.enterSubclassificationPart&&e.enterSubclassificationPart(this)}exitRule(e){e.exitSubclassificationPart&&e.exitSubclassificationPart(this)}accept(e){return e.visitSubclassificationPart?e.visitSubclassificationPart(this):e.visitChildren(this)}},X1=class extends u{constructor(e,t){super(e,t)}definitionPrefix(){return this.getRuleContext(0,qa)}ATTRIBUTE(){return this.getToken(s.ATTRIBUTE,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}get ruleIndex(){return s.RULE_attributeDefinition}enterRule(e){e.enterAttributeDefinition&&e.enterAttributeDefinition(this)}exitRule(e){e.exitAttributeDefinition&&e.exitAttributeDefinition(this)}accept(e){return e.visitAttributeDefinition?e.visitAttributeDefinition(this):e.visitChildren(this)}},fs=class extends u{constructor(e,t){super(e,t)}usagePrefix(){return this.getRuleContext(0,Ji)}ATTRIBUTE(){return this.getToken(s.ATTRIBUTE,0)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_attributeUsage}enterRule(e){e.enterAttributeUsage&&e.enterAttributeUsage(this)}exitRule(e){e.exitAttributeUsage&&e.exitAttributeUsage(this)}accept(e){return e.visitAttributeUsage?e.visitAttributeUsage(this):e.visitChildren(this)}},Z1=class extends u{constructor(e,t){super(e,t)}ENUM(){return this.getToken(s.ENUM,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}enumerationBody(){return this.getRuleContext(0,e0)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(mt):this.getRuleContext(e,mt)}get ruleIndex(){return s.RULE_enumerationDefinition}enterRule(e){e.enterEnumerationDefinition&&e.enterEnumerationDefinition(this)}exitRule(e){e.exitEnumerationDefinition&&e.exitEnumerationDefinition(this)}accept(e){return e.visitEnumerationDefinition?e.visitEnumerationDefinition(this):e.visitChildren(this)}},e0=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}annotatingMember(e){return e===void 0?this.getRuleContexts(_a):this.getRuleContext(e,_a)}enumerationUsageMember(e){return e===void 0?this.getRuleContexts(za):this.getRuleContext(e,za)}get ruleIndex(){return s.RULE_enumerationBody}enterRule(e){e.enterEnumerationBody&&e.enterEnumerationBody(this)}exitRule(e){e.exitEnumerationBody&&e.exitEnumerationBody(this)}accept(e){return e.visitEnumerationBody?e.visitEnumerationBody(this):e.visitChildren(this)}},za=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}enumeratedValue(){return this.getRuleContext(0,t0)}get ruleIndex(){return s.RULE_enumerationUsageMember}enterRule(e){e.enterEnumerationUsageMember&&e.enterEnumerationUsageMember(this)}exitRule(e){e.exitEnumerationUsageMember&&e.exitEnumerationUsageMember(this)}accept(e){return e.visitEnumerationUsageMember?e.visitEnumerationUsageMember(this):e.visitChildren(this)}},t0=class extends u{constructor(e,t){super(e,t)}usage(){return this.getRuleContext(0,_e)}ENUM(){return this.getToken(s.ENUM,0)}get ruleIndex(){return s.RULE_enumeratedValue}enterRule(e){e.enterEnumeratedValue&&e.enterEnumeratedValue(this)}exitRule(e){e.exitEnumeratedValue&&e.exitEnumeratedValue(this)}accept(e){return e.visitEnumeratedValue?e.visitEnumeratedValue(this):e.visitChildren(this)}},Qa=class extends u{constructor(e,t){super(e,t)}usagePrefix(){return this.getRuleContext(0,Ji)}ENUM(){return this.getToken(s.ENUM,0)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_enumerationUsage}enterRule(e){e.enterEnumerationUsage&&e.enterEnumerationUsage(this)}exitRule(e){e.exitEnumerationUsage&&e.exitEnumerationUsage(this)}accept(e){return e.visitEnumerationUsage?e.visitEnumerationUsage(this):e.visitChildren(this)}},we=class extends u{constructor(e,t){super(e,t)}basicDefinitionPrefix(){return this.getRuleContext(0,Qi)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}emptyMultiplicityMember(){return this.getRuleContext(0,$a)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(mt):this.getRuleContext(e,mt)}get ruleIndex(){return s.RULE_occurrenceDefinitionPrefix}enterRule(e){e.enterOccurrenceDefinitionPrefix&&e.enterOccurrenceDefinitionPrefix(this)}exitRule(e){e.exitOccurrenceDefinitionPrefix&&e.exitOccurrenceDefinitionPrefix(this)}accept(e){return e.visitOccurrenceDefinitionPrefix?e.visitOccurrenceDefinitionPrefix(this):e.visitChildren(this)}},r0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}OCCURRENCE(){return this.getToken(s.OCCURRENCE,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}get ruleIndex(){return s.RULE_occurrenceDefinition}enterRule(e){e.enterOccurrenceDefinition&&e.enterOccurrenceDefinition(this)}exitRule(e){e.exitOccurrenceDefinition&&e.exitOccurrenceDefinition(this)}accept(e){return e.visitOccurrenceDefinition?e.visitOccurrenceDefinition(this):e.visitChildren(this)}},i0=class extends u{constructor(e,t){super(e,t)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}emptyMultiplicityMember(){return this.getRuleContext(0,$a)}basicDefinitionPrefix(){return this.getRuleContext(0,Qi)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(mt):this.getRuleContext(e,mt)}get ruleIndex(){return s.RULE_individualDefinition}enterRule(e){e.enterIndividualDefinition&&e.enterIndividualDefinition(this)}exitRule(e){e.exitIndividualDefinition&&e.exitIndividualDefinition(this)}accept(e){return e.visitIndividualDefinition?e.visitIndividualDefinition(this):e.visitChildren(this)}},$a=class extends u{constructor(e,t){super(e,t)}emptyMultiplicity(){return this.getRuleContext(0,Hd)}get ruleIndex(){return s.RULE_emptyMultiplicityMember}enterRule(e){e.enterEmptyMultiplicityMember&&e.enterEmptyMultiplicityMember(this)}exitRule(e){e.exitEmptyMultiplicityMember&&e.exitEmptyMultiplicityMember(this)}accept(e){return e.visitEmptyMultiplicityMember?e.visitEmptyMultiplicityMember(this):e.visitChildren(this)}},ne=class extends u{constructor(e,t){super(e,t)}basicUsagePrefix(){return this.getRuleContext(0,fi)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}portionKind(){return this.getRuleContext(0,xs)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_occurrenceUsagePrefix}enterRule(e){e.enterOccurrenceUsagePrefix&&e.enterOccurrenceUsagePrefix(this)}exitRule(e){e.exitOccurrenceUsagePrefix&&e.exitOccurrenceUsagePrefix(this)}accept(e){return e.visitOccurrenceUsagePrefix?e.visitOccurrenceUsagePrefix(this):e.visitChildren(this)}},Ya=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}OCCURRENCE(){return this.getToken(s.OCCURRENCE,0)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_occurrenceUsage}enterRule(e){e.enterOccurrenceUsage&&e.enterOccurrenceUsage(this)}exitRule(e){e.exitOccurrenceUsage&&e.exitOccurrenceUsage(this)}accept(e){return e.visitOccurrenceUsage?e.visitOccurrenceUsage(this):e.visitChildren(this)}},Ja=class extends u{constructor(e,t){super(e,t)}basicUsagePrefix(){return this.getRuleContext(0,fi)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}usage(){return this.getRuleContext(0,_e)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_individualUsage}enterRule(e){e.enterIndividualUsage&&e.enterIndividualUsage(this)}exitRule(e){e.exitIndividualUsage&&e.exitIndividualUsage(this)}accept(e){return e.visitIndividualUsage?e.visitIndividualUsage(this):e.visitChildren(this)}},Xa=class extends u{constructor(e,t){super(e,t)}basicUsagePrefix(){return this.getRuleContext(0,fi)}portionKind(){return this.getRuleContext(0,xs)}usage(){return this.getRuleContext(0,_e)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_portionUsage}enterRule(e){e.enterPortionUsage&&e.enterPortionUsage(this)}exitRule(e){e.exitPortionUsage&&e.exitPortionUsage(this)}accept(e){return e.visitPortionUsage?e.visitPortionUsage(this):e.visitChildren(this)}},xs=class extends u{constructor(e,t){super(e,t)}SNAPSHOT(){return this.getToken(s.SNAPSHOT,0)}TIMESLICE(){return this.getToken(s.TIMESLICE,0)}get ruleIndex(){return s.RULE_portionKind}enterRule(e){e.enterPortionKind&&e.enterPortionKind(this)}exitRule(e){e.exitPortionKind&&e.exitPortionKind(this)}accept(e){return e.visitPortionKind?e.visitPortionKind(this):e.visitChildren(this)}},Za=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}EVENT(){return this.getToken(s.EVENT,0)}usageCompletion(){return this.getRuleContext(0,us)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}OCCURRENCE(){return this.getToken(s.OCCURRENCE,0)}featureSpecializationPart(){return this.getRuleContext(0,dt)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_eventOccurrenceUsage}enterRule(e){e.enterEventOccurrenceUsage&&e.enterEventOccurrenceUsage(this)}exitRule(e){e.exitEventOccurrenceUsage&&e.exitEventOccurrenceUsage(this)}accept(e){return e.visitEventOccurrenceUsage?e.visitEventOccurrenceUsage(this):e.visitChildren(this)}},xi=class extends u{constructor(e,t){super(e,t)}THEN(){return this.getToken(s.THEN,0)}sourceSuccession(){return this.getRuleContext(0,n0)}get ruleIndex(){return s.RULE_sourceSuccessionMember}enterRule(e){e.enterSourceSuccessionMember&&e.enterSourceSuccessionMember(this)}exitRule(e){e.exitSourceSuccessionMember&&e.exitSourceSuccessionMember(this)}accept(e){return e.visitSourceSuccessionMember?e.visitSourceSuccessionMember(this):e.visitChildren(this)}},n0=class extends u{constructor(e,t){super(e,t)}sourceEndMember(){return this.getRuleContext(0,eo)}get ruleIndex(){return s.RULE_sourceSuccession}enterRule(e){e.enterSourceSuccession&&e.enterSourceSuccession(this)}exitRule(e){e.exitSourceSuccession&&e.exitSourceSuccession(this)}accept(e){return e.visitSourceSuccession?e.visitSourceSuccession(this):e.visitChildren(this)}},eo=class extends u{constructor(e,t){super(e,t)}sourceEnd(){return this.getRuleContext(0,s0)}get ruleIndex(){return s.RULE_sourceEndMember}enterRule(e){e.enterSourceEndMember&&e.enterSourceEndMember(this)}exitRule(e){e.exitSourceEndMember&&e.exitSourceEndMember(this)}accept(e){return e.visitSourceEndMember?e.visitSourceEndMember(this):e.visitChildren(this)}},s0=class extends u{constructor(e,t){super(e,t)}ownedMultiplicity(){return this.getRuleContext(0,kr)}get ruleIndex(){return s.RULE_sourceEnd}enterRule(e){e.enterSourceEnd&&e.enterSourceEnd(this)}exitRule(e){e.exitSourceEnd&&e.exitSourceEnd(this)}accept(e){return e.visitSourceEnd?e.visitSourceEnd(this):e.visitChildren(this)}},a0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}ITEM(){return this.getToken(s.ITEM,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}get ruleIndex(){return s.RULE_itemDefinition}enterRule(e){e.enterItemDefinition&&e.enterItemDefinition(this)}exitRule(e){e.exitItemDefinition&&e.exitItemDefinition(this)}accept(e){return e.visitItemDefinition?e.visitItemDefinition(this):e.visitChildren(this)}},to=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}ITEM(){return this.getToken(s.ITEM,0)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_itemUsage}enterRule(e){e.enterItemUsage&&e.enterItemUsage(this)}exitRule(e){e.exitItemUsage&&e.exitItemUsage(this)}accept(e){return e.visitItemUsage?e.visitItemUsage(this):e.visitChildren(this)}},o0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}PART(){return this.getToken(s.PART,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}get ruleIndex(){return s.RULE_partDefinition}enterRule(e){e.enterPartDefinition&&e.enterPartDefinition(this)}exitRule(e){e.exitPartDefinition&&e.exitPartDefinition(this)}accept(e){return e.visitPartDefinition?e.visitPartDefinition(this):e.visitChildren(this)}},ro=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}PART(){return this.getToken(s.PART,0)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_partUsage}enterRule(e){e.enterPartUsage&&e.enterPartUsage(this)}exitRule(e){e.exitPartUsage&&e.exitPartUsage(this)}accept(e){return e.visitPartUsage?e.visitPartUsage(this):e.visitChildren(this)}},l0=class extends u{constructor(e,t){super(e,t)}definitionPrefix(){return this.getRuleContext(0,qa)}PORT(){return this.getToken(s.PORT,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}conjugatedPortDefinitionMember(){return this.getRuleContext(0,u0)}get ruleIndex(){return s.RULE_portDefinition}enterRule(e){e.enterPortDefinition&&e.enterPortDefinition(this)}exitRule(e){e.exitPortDefinition&&e.exitPortDefinition(this)}accept(e){return e.visitPortDefinition?e.visitPortDefinition(this):e.visitChildren(this)}},u0=class extends u{constructor(e,t){super(e,t)}conjugatedPortDefinition(){return this.getRuleContext(0,c0)}get ruleIndex(){return s.RULE_conjugatedPortDefinitionMember}enterRule(e){e.enterConjugatedPortDefinitionMember&&e.enterConjugatedPortDefinitionMember(this)}exitRule(e){e.exitConjugatedPortDefinitionMember&&e.exitConjugatedPortDefinitionMember(this)}accept(e){return e.visitConjugatedPortDefinitionMember?e.visitConjugatedPortDefinitionMember(this):e.visitChildren(this)}},c0=class extends u{constructor(e,t){super(e,t)}portConjugation(){return this.getRuleContext(0,qd)}get ruleIndex(){return s.RULE_conjugatedPortDefinition}enterRule(e){e.enterConjugatedPortDefinition&&e.enterConjugatedPortDefinition(this)}exitRule(e){e.exitConjugatedPortDefinition&&e.exitConjugatedPortDefinition(this)}accept(e){return e.visitConjugatedPortDefinition?e.visitConjugatedPortDefinition(this):e.visitChildren(this)}},io=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}PORT(){return this.getToken(s.PORT,0)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_portUsage}enterRule(e){e.enterPortUsage&&e.enterPortUsage(this)}exitRule(e){e.exitPortUsage&&e.exitPortUsage(this)}accept(e){return e.visitPortUsage?e.visitPortUsage(this):e.visitChildren(this)}},h0=class extends u{constructor(e,t){super(e,t)}TILDE(){return this.getToken(s.TILDE,0)}qualifiedName(){return this.getRuleContext(0,F)}get ruleIndex(){return s.RULE_conjugatedPortTyping}enterRule(e){e.enterConjugatedPortTyping&&e.enterConjugatedPortTyping(this)}exitRule(e){e.exitConjugatedPortTyping&&e.exitConjugatedPortTyping(this)}accept(e){return e.visitConjugatedPortTyping?e.visitConjugatedPortTyping(this):e.visitChildren(this)}},d0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}CONNECTION(){return this.getToken(s.CONNECTION,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}get ruleIndex(){return s.RULE_connectionDefinition}enterRule(e){e.enterConnectionDefinition&&e.enterConnectionDefinition(this)}exitRule(e){e.exitConnectionDefinition&&e.exitConnectionDefinition(this)}accept(e){return e.visitConnectionDefinition?e.visitConnectionDefinition(this):e.visitChildren(this)}},no=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}usageBody(){return this.getRuleContext(0,Wt)}CONNECTION(){return this.getToken(s.CONNECTION,0)}CONNECT(){return this.getToken(s.CONNECT,0)}connectorPart(){return this.getRuleContext(0,so)}usageDeclaration(){return this.getRuleContext(0,de)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_connectionUsage}enterRule(e){e.enterConnectionUsage&&e.enterConnectionUsage(this)}exitRule(e){e.exitConnectionUsage&&e.exitConnectionUsage(this)}accept(e){return e.visitConnectionUsage?e.visitConnectionUsage(this):e.visitChildren(this)}},so=class extends u{constructor(e,t){super(e,t)}binaryConnectorPart(){return this.getRuleContext(0,p0)}naryConnectorPart(){return this.getRuleContext(0,f0)}get ruleIndex(){return s.RULE_connectorPart}enterRule(e){e.enterConnectorPart&&e.enterConnectorPart(this)}exitRule(e){e.exitConnectorPart&&e.exitConnectorPart(this)}accept(e){return e.visitConnectorPart?e.visitConnectorPart(this):e.visitChildren(this)}},p0=class extends u{constructor(e,t){super(e,t)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Be):this.getRuleContext(e,Be)}TO(){return this.getToken(s.TO,0)}get ruleIndex(){return s.RULE_binaryConnectorPart}enterRule(e){e.enterBinaryConnectorPart&&e.enterBinaryConnectorPart(this)}exitRule(e){e.exitBinaryConnectorPart&&e.exitBinaryConnectorPart(this)}accept(e){return e.visitBinaryConnectorPart?e.visitBinaryConnectorPart(this):e.visitChildren(this)}},f0=class extends u{constructor(e,t){super(e,t)}LPAREN(){return this.getToken(s.LPAREN,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Be):this.getRuleContext(e,Be)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}RPAREN(){return this.getToken(s.RPAREN,0)}get ruleIndex(){return s.RULE_naryConnectorPart}enterRule(e){e.enterNaryConnectorPart&&e.enterNaryConnectorPart(this)}exitRule(e){e.exitNaryConnectorPart&&e.exitNaryConnectorPart(this)}accept(e){return e.visitNaryConnectorPart?e.visitNaryConnectorPart(this):e.visitChildren(this)}},ms=class extends u{constructor(e,t){super(e,t)}usagePrefix(){return this.getRuleContext(0,Ji)}BIND(){return this.getToken(s.BIND,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Be):this.getRuleContext(e,Be)}EQ(){return this.getToken(s.EQ,0)}usageBody(){return this.getRuleContext(0,Wt)}BINDING(){return this.getToken(s.BINDING,0)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_bindingConnectorAsUsage}enterRule(e){e.enterBindingConnectorAsUsage&&e.enterBindingConnectorAsUsage(this)}exitRule(e){e.exitBindingConnectorAsUsage&&e.exitBindingConnectorAsUsage(this)}accept(e){return e.visitBindingConnectorAsUsage?e.visitBindingConnectorAsUsage(this):e.visitChildren(this)}},bs=class extends u{constructor(e,t){super(e,t)}usagePrefix(){return this.getRuleContext(0,Ji)}FIRST(){return this.getToken(s.FIRST,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Be):this.getRuleContext(e,Be)}THEN(){return this.getToken(s.THEN,0)}usageBody(){return this.getRuleContext(0,Wt)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_successionAsUsage}enterRule(e){e.enterSuccessionAsUsage&&e.enterSuccessionAsUsage(this)}exitRule(e){e.exitSuccessionAsUsage&&e.exitSuccessionAsUsage(this)}accept(e){return e.visitSuccessionAsUsage?e.visitSuccessionAsUsage(this):e.visitChildren(this)}},x0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}INTERFACE(){return this.getToken(s.INTERFACE,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}interfaceBody(){return this.getRuleContext(0,ao)}get ruleIndex(){return s.RULE_interfaceDefinition}enterRule(e){e.enterInterfaceDefinition&&e.enterInterfaceDefinition(this)}exitRule(e){e.exitInterfaceDefinition&&e.exitInterfaceDefinition(this)}accept(e){return e.visitInterfaceDefinition?e.visitInterfaceDefinition(this):e.visitChildren(this)}},ao=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}interfaceBodyItem(e){return e===void 0?this.getRuleContexts(oo):this.getRuleContext(e,oo)}get ruleIndex(){return s.RULE_interfaceBody}enterRule(e){e.enterInterfaceBody&&e.enterInterfaceBody(this)}exitRule(e){e.exitInterfaceBody&&e.exitInterfaceBody(this)}accept(e){return e.visitInterfaceBody?e.visitInterfaceBody(this):e.visitChildren(this)}},oo=class extends u{constructor(e,t){super(e,t)}definitionMember(){return this.getRuleContext(0,$i)}variantUsageMember(){return this.getRuleContext(0,ja)}interfaceNonOccurrenceUsageMember(){return this.getRuleContext(0,m0)}interfaceOccurrenceUsageMember(){return this.getRuleContext(0,R0)}sourceSuccessionMember(){return this.getRuleContext(0,xi)}aliasMember(){return this.getRuleContext(0,lr)}importRule(){return this.getRuleContext(0,jt)}get ruleIndex(){return s.RULE_interfaceBodyItem}enterRule(e){e.enterInterfaceBodyItem&&e.enterInterfaceBodyItem(this)}exitRule(e){e.exitInterfaceBodyItem&&e.exitInterfaceBodyItem(this)}accept(e){return e.visitInterfaceBodyItem?e.visitInterfaceBodyItem(this):e.visitChildren(this)}},m0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}interfaceNonOccurrenceUsageElement(){return this.getRuleContext(0,b0)}get ruleIndex(){return s.RULE_interfaceNonOccurrenceUsageMember}enterRule(e){e.enterInterfaceNonOccurrenceUsageMember&&e.enterInterfaceNonOccurrenceUsageMember(this)}exitRule(e){e.exitInterfaceNonOccurrenceUsageMember&&e.exitInterfaceNonOccurrenceUsageMember(this)}accept(e){return e.visitInterfaceNonOccurrenceUsageMember?e.visitInterfaceNonOccurrenceUsageMember(this):e.visitChildren(this)}},b0=class extends u{constructor(e,t){super(e,t)}referenceUsage(){return this.getRuleContext(0,cs)}attributeUsage(){return this.getRuleContext(0,fs)}enumerationUsage(){return this.getRuleContext(0,Qa)}bindingConnectorAsUsage(){return this.getRuleContext(0,ms)}successionAsUsage(){return this.getRuleContext(0,bs)}get ruleIndex(){return s.RULE_interfaceNonOccurrenceUsageElement}enterRule(e){e.enterInterfaceNonOccurrenceUsageElement&&e.enterInterfaceNonOccurrenceUsageElement(this)}exitRule(e){e.exitInterfaceNonOccurrenceUsageElement&&e.exitInterfaceNonOccurrenceUsageElement(this)}accept(e){return e.visitInterfaceNonOccurrenceUsageElement?e.visitInterfaceNonOccurrenceUsageElement(this):e.visitChildren(this)}},R0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}interfaceOccurrenceUsageElement(){return this.getRuleContext(0,g0)}get ruleIndex(){return s.RULE_interfaceOccurrenceUsageMember}enterRule(e){e.enterInterfaceOccurrenceUsageMember&&e.enterInterfaceOccurrenceUsageMember(this)}exitRule(e){e.exitInterfaceOccurrenceUsageMember&&e.exitInterfaceOccurrenceUsageMember(this)}accept(e){return e.visitInterfaceOccurrenceUsageMember?e.visitInterfaceOccurrenceUsageMember(this):e.visitChildren(this)}},g0=class extends u{constructor(e,t){super(e,t)}defaultInterfaceEnd(){return this.getRuleContext(0,y0)}structureUsageElement(){return this.getRuleContext(0,ps)}behaviorUsageElement(){return this.getRuleContext(0,Xi)}get ruleIndex(){return s.RULE_interfaceOccurrenceUsageElement}enterRule(e){e.enterInterfaceOccurrenceUsageElement&&e.enterInterfaceOccurrenceUsageElement(this)}exitRule(e){e.exitInterfaceOccurrenceUsageElement&&e.exitInterfaceOccurrenceUsageElement(this)}accept(e){return e.visitInterfaceOccurrenceUsageElement?e.visitInterfaceOccurrenceUsageElement(this):e.visitChildren(this)}},y0=class extends u{constructor(e,t){super(e,t)}END(){return this.getToken(s.END,0)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_defaultInterfaceEnd}enterRule(e){e.enterDefaultInterfaceEnd&&e.enterDefaultInterfaceEnd(this)}exitRule(e){e.exitDefaultInterfaceEnd&&e.exitDefaultInterfaceEnd(this)}accept(e){return e.visitDefaultInterfaceEnd?e.visitDefaultInterfaceEnd(this):e.visitChildren(this)}},lo=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}INTERFACE(){return this.getToken(s.INTERFACE,0)}interfaceUsageDeclaration(){return this.getRuleContext(0,C0)}interfaceBody(){return this.getRuleContext(0,ao)}get ruleIndex(){return s.RULE_interfaceUsage}enterRule(e){e.enterInterfaceUsage&&e.enterInterfaceUsage(this)}exitRule(e){e.exitInterfaceUsage&&e.exitInterfaceUsage(this)}accept(e){return e.visitInterfaceUsage?e.visitInterfaceUsage(this):e.visitChildren(this)}},C0=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,de)}valuePart(){return this.getRuleContext(0,Te)}CONNECT(){return this.getToken(s.CONNECT,0)}interfacePart(){return this.getRuleContext(0,v0)}get ruleIndex(){return s.RULE_interfaceUsageDeclaration}enterRule(e){e.enterInterfaceUsageDeclaration&&e.enterInterfaceUsageDeclaration(this)}exitRule(e){e.exitInterfaceUsageDeclaration&&e.exitInterfaceUsageDeclaration(this)}accept(e){return e.visitInterfaceUsageDeclaration?e.visitInterfaceUsageDeclaration(this):e.visitChildren(this)}},v0=class extends u{constructor(e,t){super(e,t)}binaryInterfacePart(){return this.getRuleContext(0,E0)}naryInterfacePart(){return this.getRuleContext(0,L0)}get ruleIndex(){return s.RULE_interfacePart}enterRule(e){e.enterInterfacePart&&e.enterInterfacePart(this)}exitRule(e){e.exitInterfacePart&&e.exitInterfacePart(this)}accept(e){return e.visitInterfacePart?e.visitInterfacePart(this):e.visitChildren(this)}},E0=class extends u{constructor(e,t){super(e,t)}interfaceEndMember(e){return e===void 0?this.getRuleContexts(Zi):this.getRuleContext(e,Zi)}TO(){return this.getToken(s.TO,0)}get ruleIndex(){return s.RULE_binaryInterfacePart}enterRule(e){e.enterBinaryInterfacePart&&e.enterBinaryInterfacePart(this)}exitRule(e){e.exitBinaryInterfacePart&&e.exitBinaryInterfacePart(this)}accept(e){return e.visitBinaryInterfacePart?e.visitBinaryInterfacePart(this):e.visitChildren(this)}},L0=class extends u{constructor(e,t){super(e,t)}LPAREN(){return this.getToken(s.LPAREN,0)}interfaceEndMember(e){return e===void 0?this.getRuleContexts(Zi):this.getRuleContext(e,Zi)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}RPAREN(){return this.getToken(s.RPAREN,0)}get ruleIndex(){return s.RULE_naryInterfacePart}enterRule(e){e.enterNaryInterfacePart&&e.enterNaryInterfacePart(this)}exitRule(e){e.exitNaryInterfacePart&&e.exitNaryInterfacePart(this)}accept(e){return e.visitNaryInterfacePart?e.visitNaryInterfacePart(this):e.visitChildren(this)}},Zi=class extends u{constructor(e,t){super(e,t)}interfaceEnd(){return this.getRuleContext(0,S0)}get ruleIndex(){return s.RULE_interfaceEndMember}enterRule(e){e.enterInterfaceEndMember&&e.enterInterfaceEndMember(this)}exitRule(e){e.exitInterfaceEndMember&&e.exitInterfaceEndMember(this)}accept(e){return e.visitInterfaceEndMember?e.visitInterfaceEndMember(this):e.visitChildren(this)}},S0=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,Ta)}name(){return this.getRuleContext(0,ft)}COLON_COLON_GT(){return this.getToken(s.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(s.REFERENCES,0)}get ruleIndex(){return s.RULE_interfaceEnd}enterRule(e){e.enterInterfaceEnd&&e.enterInterfaceEnd(this)}exitRule(e){e.exitInterfaceEnd&&e.exitInterfaceEnd(this)}accept(e){return e.visitInterfaceEnd?e.visitInterfaceEnd(this):e.visitChildren(this)}},P0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}ALLOCATION(){return this.getToken(s.ALLOCATION,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}get ruleIndex(){return s.RULE_allocationDefinition}enterRule(e){e.enterAllocationDefinition&&e.enterAllocationDefinition(this)}exitRule(e){e.exitAllocationDefinition&&e.exitAllocationDefinition(this)}accept(e){return e.visitAllocationDefinition?e.visitAllocationDefinition(this):e.visitChildren(this)}},uo=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}allocationUsageDeclaration(){return this.getRuleContext(0,T0)}usageBody(){return this.getRuleContext(0,Wt)}get ruleIndex(){return s.RULE_allocationUsage}enterRule(e){e.enterAllocationUsage&&e.enterAllocationUsage(this)}exitRule(e){e.exitAllocationUsage&&e.exitAllocationUsage(this)}accept(e){return e.visitAllocationUsage?e.visitAllocationUsage(this):e.visitChildren(this)}},T0=class extends u{constructor(e,t){super(e,t)}ALLOCATION(){return this.getToken(s.ALLOCATION,0)}usageDeclaration(){return this.getRuleContext(0,de)}ALLOCATE(){return this.getToken(s.ALLOCATE,0)}connectorPart(){return this.getRuleContext(0,so)}get ruleIndex(){return s.RULE_allocationUsageDeclaration}enterRule(e){e.enterAllocationUsageDeclaration&&e.enterAllocationUsageDeclaration(this)}exitRule(e){e.exitAllocationUsageDeclaration&&e.exitAllocationUsageDeclaration(this)}accept(e){return e.visitAllocationUsageDeclaration?e.visitAllocationUsageDeclaration(this):e.visitChildren(this)}},A0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}FLOW(){return this.getToken(s.FLOW,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}get ruleIndex(){return s.RULE_flowDefinition}enterRule(e){e.enterFlowDefinition&&e.enterFlowDefinition(this)}exitRule(e){e.exitFlowDefinition&&e.exitFlowDefinition(this)}accept(e){return e.visitFlowDefinition?e.visitFlowDefinition(this):e.visitChildren(this)}},co=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}MESSAGE(){return this.getToken(s.MESSAGE,0)}messageDeclaration(){return this.getRuleContext(0,M0)}definitionBody(){return this.getRuleContext(0,di)}get ruleIndex(){return s.RULE_message}enterRule(e){e.enterMessage&&e.enterMessage(this)}exitRule(e){e.exitMessage&&e.exitMessage(this)}accept(e){return e.visitMessage?e.visitMessage(this):e.visitChildren(this)}},M0=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,de)}valuePart(){return this.getRuleContext(0,Te)}OF(){return this.getToken(s.OF,0)}flowPayloadFeatureMember(){return this.getRuleContext(0,xo)}FROM(){return this.getToken(s.FROM,0)}messageEventMember(e){return e===void 0?this.getRuleContexts(ho):this.getRuleContext(e,ho)}TO(){return this.getToken(s.TO,0)}get ruleIndex(){return s.RULE_messageDeclaration}enterRule(e){e.enterMessageDeclaration&&e.enterMessageDeclaration(this)}exitRule(e){e.exitMessageDeclaration&&e.exitMessageDeclaration(this)}accept(e){return e.visitMessageDeclaration?e.visitMessageDeclaration(this):e.visitChildren(this)}},ho=class extends u{constructor(e,t){super(e,t)}messageEvent(){return this.getRuleContext(0,N0)}get ruleIndex(){return s.RULE_messageEventMember}enterRule(e){e.enterMessageEventMember&&e.enterMessageEventMember(this)}exitRule(e){e.exitMessageEventMember&&e.exitMessageEventMember(this)}accept(e){return e.visitMessageEventMember?e.visitMessageEventMember(this):e.visitChildren(this)}},N0=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}get ruleIndex(){return s.RULE_messageEvent}enterRule(e){e.enterMessageEvent&&e.enterMessageEvent(this)}exitRule(e){e.exitMessageEvent&&e.exitMessageEvent(this)}accept(e){return e.visitMessageEvent?e.visitMessageEvent(this):e.visitChildren(this)}},po=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}FLOW(){return this.getToken(s.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,Gi)}definitionBody(){return this.getRuleContext(0,di)}get ruleIndex(){return s.RULE_flowUsage}enterRule(e){e.enterFlowUsage&&e.enterFlowUsage(this)}exitRule(e){e.exitFlowUsage&&e.exitFlowUsage(this)}accept(e){return e.visitFlowUsage?e.visitFlowUsage(this):e.visitChildren(this)}},fo=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}FLOW(){return this.getToken(s.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,Gi)}definitionBody(){return this.getRuleContext(0,di)}get ruleIndex(){return s.RULE_successionFlowUsage}enterRule(e){e.enterSuccessionFlowUsage&&e.enterSuccessionFlowUsage(this)}exitRule(e){e.exitSuccessionFlowUsage&&e.exitSuccessionFlowUsage(this)}accept(e){return e.visitSuccessionFlowUsage?e.visitSuccessionFlowUsage(this):e.visitChildren(this)}},xo=class extends u{constructor(e,t){super(e,t)}flowPayloadFeature(){return this.getRuleContext(0,U0)}get ruleIndex(){return s.RULE_flowPayloadFeatureMember}enterRule(e){e.enterFlowPayloadFeatureMember&&e.enterFlowPayloadFeatureMember(this)}exitRule(e){e.exitFlowPayloadFeatureMember&&e.exitFlowPayloadFeatureMember(this)}accept(e){return e.visitFlowPayloadFeatureMember?e.visitFlowPayloadFeatureMember(this):e.visitChildren(this)}},U0=class extends u{constructor(e,t){super(e,t)}payloadFeature(){return this.getRuleContext(0,ss)}get ruleIndex(){return s.RULE_flowPayloadFeature}enterRule(e){e.enterFlowPayloadFeature&&e.enterFlowPayloadFeature(this)}exitRule(e){e.exitFlowPayloadFeature&&e.exitFlowPayloadFeature(this)}accept(e){return e.visitFlowPayloadFeature?e.visitFlowPayloadFeature(this):e.visitChildren(this)}},X3=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}featureChainPrefix(){return this.getRuleContext(0,w0)}get ruleIndex(){return s.RULE_flowEndSubsetting}enterRule(e){e.enterFlowEndSubsetting&&e.enterFlowEndSubsetting(this)}exitRule(e){e.exitFlowEndSubsetting&&e.exitFlowEndSubsetting(this)}accept(e){return e.visitFlowEndSubsetting?e.visitFlowEndSubsetting(this):e.visitChildren(this)}},w0=class extends u{constructor(e,t){super(e,t)}ownedFeatureChaining(e){return e===void 0?this.getRuleContexts(Or):this.getRuleContext(e,Or)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_featureChainPrefix}enterRule(e){e.enterFeatureChainPrefix&&e.enterFeatureChainPrefix(this)}exitRule(e){e.exitFeatureChainPrefix&&e.exitFeatureChainPrefix(this)}accept(e){return e.visitFeatureChainPrefix?e.visitFeatureChainPrefix(this):e.visitChildren(this)}},D0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}ACTION(){return this.getToken(s.ACTION,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_actionDefinition}enterRule(e){e.enterActionDefinition&&e.enterActionDefinition(this)}exitRule(e){e.exitActionDefinition&&e.exitActionDefinition(this)}accept(e){return e.visitActionDefinition?e.visitActionDefinition(this):e.visitChildren(this)}},je=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(st):this.getRuleContext(e,st)}get ruleIndex(){return s.RULE_actionBody}enterRule(e){e.enterActionBody&&e.enterActionBody(this)}exitRule(e){e.exitActionBody&&e.exitActionBody(this)}accept(e){return e.visitActionBody?e.visitActionBody(this):e.visitChildren(this)}},st=class extends u{constructor(e,t){super(e,t)}nonBehaviorBodyItem(){return this.getRuleContext(0,mo)}initialNodeMember(){return this.getRuleContext(0,O0)}actionTargetSuccessionMember(e){return e===void 0?this.getRuleContexts(bo):this.getRuleContext(e,bo)}actionBehaviorMember(){return this.getRuleContext(0,I0)}sourceSuccessionMember(){return this.getRuleContext(0,xi)}guardedSuccessionMember(){return this.getRuleContext(0,F0)}get ruleIndex(){return s.RULE_actionBodyItem}enterRule(e){e.enterActionBodyItem&&e.enterActionBodyItem(this)}exitRule(e){e.exitActionBodyItem&&e.exitActionBodyItem(this)}accept(e){return e.visitActionBodyItem?e.visitActionBodyItem(this):e.visitChildren(this)}},mo=class extends u{constructor(e,t){super(e,t)}importRule(){return this.getRuleContext(0,jt)}aliasMember(){return this.getRuleContext(0,lr)}definitionMember(){return this.getRuleContext(0,$i)}variantUsageMember(){return this.getRuleContext(0,ja)}nonOccurrenceUsageMember(){return this.getRuleContext(0,K1)}structureUsageMember(){return this.getRuleContext(0,z1)}sourceSuccessionMember(){return this.getRuleContext(0,xi)}get ruleIndex(){return s.RULE_nonBehaviorBodyItem}enterRule(e){e.enterNonBehaviorBodyItem&&e.enterNonBehaviorBodyItem(this)}exitRule(e){e.exitNonBehaviorBodyItem&&e.exitNonBehaviorBodyItem(this)}accept(e){return e.visitNonBehaviorBodyItem?e.visitNonBehaviorBodyItem(this):e.visitChildren(this)}},I0=class extends u{constructor(e,t){super(e,t)}behaviorUsageMember(){return this.getRuleContext(0,Ga)}actionNodeMember(){return this.getRuleContext(0,k0)}get ruleIndex(){return s.RULE_actionBehaviorMember}enterRule(e){e.enterActionBehaviorMember&&e.enterActionBehaviorMember(this)}exitRule(e){e.exitActionBehaviorMember&&e.exitActionBehaviorMember(this)}accept(e){return e.visitActionBehaviorMember?e.visitActionBehaviorMember(this):e.visitChildren(this)}},O0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}FIRST(){return this.getToken(s.FIRST,0)}qualifiedName(){return this.getRuleContext(0,F)}relationshipBody(){return this.getRuleContext(0,Je)}get ruleIndex(){return s.RULE_initialNodeMember}enterRule(e){e.enterInitialNodeMember&&e.enterInitialNodeMember(this)}exitRule(e){e.exitInitialNodeMember&&e.exitInitialNodeMember(this)}accept(e){return e.visitInitialNodeMember?e.visitInitialNodeMember(this):e.visitChildren(this)}},k0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}actionNode(){return this.getRuleContext(0,_0)}get ruleIndex(){return s.RULE_actionNodeMember}enterRule(e){e.enterActionNodeMember&&e.enterActionNodeMember(this)}exitRule(e){e.exitActionNodeMember&&e.exitActionNodeMember(this)}accept(e){return e.visitActionNodeMember?e.visitActionNodeMember(this):e.visitChildren(this)}},bo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}actionTargetSuccession(){return this.getRuleContext(0,hh)}get ruleIndex(){return s.RULE_actionTargetSuccessionMember}enterRule(e){e.enterActionTargetSuccessionMember&&e.enterActionTargetSuccessionMember(this)}exitRule(e){e.exitActionTargetSuccessionMember&&e.exitActionTargetSuccessionMember(this)}accept(e){return e.visitActionTargetSuccessionMember?e.visitActionTargetSuccessionMember(this):e.visitChildren(this)}},F0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}guardedSuccession(){return this.getRuleContext(0,fh)}get ruleIndex(){return s.RULE_guardedSuccessionMember}enterRule(e){e.enterGuardedSuccessionMember&&e.enterGuardedSuccessionMember(this)}exitRule(e){e.exitGuardedSuccessionMember&&e.exitGuardedSuccessionMember(this)}accept(e){return e.visitGuardedSuccessionMember?e.visitGuardedSuccessionMember(this):e.visitChildren(this)}},H0=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}ACTION(){return this.getToken(s.ACTION,0)}actionUsageDeclaration(){return this.getRuleContext(0,en)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_actionUsage}enterRule(e){e.enterActionUsage&&e.enterActionUsage(this)}exitRule(e){e.exitActionUsage&&e.exitActionUsage(this)}accept(e){return e.visitActionUsage?e.visitActionUsage(this):e.visitChildren(this)}},en=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,de)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_actionUsageDeclaration}enterRule(e){e.enterActionUsageDeclaration&&e.enterActionUsageDeclaration(this)}exitRule(e){e.exitActionUsageDeclaration&&e.exitActionUsageDeclaration(this)}accept(e){return e.visitActionUsageDeclaration?e.visitActionUsageDeclaration(this):e.visitChildren(this)}},B0=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}PERFORM(){return this.getToken(s.PERFORM,0)}performActionUsageDeclaration(){return this.getRuleContext(0,Rs)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_performActionUsage}enterRule(e){e.enterPerformActionUsage&&e.enterPerformActionUsage(this)}exitRule(e){e.exitPerformActionUsage&&e.exitPerformActionUsage(this)}accept(e){return e.visitPerformActionUsage?e.visitPerformActionUsage(this):e.visitChildren(this)}},Rs=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}ACTION(){return this.getToken(s.ACTION,0)}valuePart(){return this.getRuleContext(0,Te)}featureSpecializationPart(){return this.getRuleContext(0,dt)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_performActionUsageDeclaration}enterRule(e){e.enterPerformActionUsageDeclaration&&e.enterPerformActionUsageDeclaration(this)}exitRule(e){e.exitPerformActionUsageDeclaration&&e.exitPerformActionUsageDeclaration(this)}accept(e){return e.visitPerformActionUsageDeclaration?e.visitPerformActionUsageDeclaration(this):e.visitChildren(this)}},_0=class extends u{constructor(e,t){super(e,t)}controlNode(){return this.getRuleContext(0,V0)}sendNode(){return this.getRuleContext(0,X0)}acceptNode(){return this.getRuleContext(0,K0)}assignmentNode(){return this.getRuleContext(0,th)}terminateNode(){return this.getRuleContext(0,sh)}ifNode(){return this.getRuleContext(0,Co)}whileLoopNode(){return this.getRuleContext(0,lh)}forLoopNode(){return this.getRuleContext(0,uh)}get ruleIndex(){return s.RULE_actionNode}enterRule(e){e.enterActionNode&&e.enterActionNode(this)}exitRule(e){e.exitActionNode&&e.exitActionNode(this)}accept(e){return e.visitActionNode?e.visitActionNode(this):e.visitChildren(this)}},Fr=class extends u{constructor(e,t){super(e,t)}ACTION(){return this.getToken(s.ACTION,0)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_actionNodeUsageDeclaration}enterRule(e){e.enterActionNodeUsageDeclaration&&e.enterActionNodeUsageDeclaration(this)}exitRule(e){e.exitActionNodeUsageDeclaration&&e.exitActionNodeUsageDeclaration(this)}accept(e){return e.visitActionNodeUsageDeclaration?e.visitActionNodeUsageDeclaration(this):e.visitChildren(this)}},gs=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Fr)}get ruleIndex(){return s.RULE_actionNodePrefix}enterRule(e){e.enterActionNodePrefix&&e.enterActionNodePrefix(this)}exitRule(e){e.exitActionNodePrefix&&e.exitActionNodePrefix(this)}accept(e){return e.visitActionNodePrefix?e.visitActionNodePrefix(this):e.visitChildren(this)}},V0=class extends u{constructor(e,t){super(e,t)}mergeNode(){return this.getRuleContext(0,q0)}decisionNode(){return this.getRuleContext(0,j0)}joinNode(){return this.getRuleContext(0,G0)}forkNode(){return this.getRuleContext(0,W0)}get ruleIndex(){return s.RULE_controlNode}enterRule(e){e.enterControlNode&&e.enterControlNode(this)}exitRule(e){e.exitControlNode&&e.exitControlNode(this)}accept(e){return e.visitControlNode?e.visitControlNode(this):e.visitChildren(this)}},tn=class extends u{constructor(e,t){super(e,t)}refPrefix(){return this.getRuleContext(0,Yi)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}portionKind(){return this.getRuleContext(0,xs)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_controlNodePrefix}enterRule(e){e.enterControlNodePrefix&&e.enterControlNodePrefix(this)}exitRule(e){e.exitControlNodePrefix&&e.exitControlNodePrefix(this)}accept(e){return e.visitControlNodePrefix?e.visitControlNodePrefix(this):e.visitChildren(this)}},q0=class extends u{constructor(e,t){super(e,t)}controlNodePrefix(){return this.getRuleContext(0,tn)}MERGE(){return this.getToken(s.MERGE,0)}actionBody(){return this.getRuleContext(0,je)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_mergeNode}enterRule(e){e.enterMergeNode&&e.enterMergeNode(this)}exitRule(e){e.exitMergeNode&&e.exitMergeNode(this)}accept(e){return e.visitMergeNode?e.visitMergeNode(this):e.visitChildren(this)}},j0=class extends u{constructor(e,t){super(e,t)}controlNodePrefix(){return this.getRuleContext(0,tn)}DECIDE(){return this.getToken(s.DECIDE,0)}actionBody(){return this.getRuleContext(0,je)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_decisionNode}enterRule(e){e.enterDecisionNode&&e.enterDecisionNode(this)}exitRule(e){e.exitDecisionNode&&e.exitDecisionNode(this)}accept(e){return e.visitDecisionNode?e.visitDecisionNode(this):e.visitChildren(this)}},G0=class extends u{constructor(e,t){super(e,t)}controlNodePrefix(){return this.getRuleContext(0,tn)}JOIN(){return this.getToken(s.JOIN,0)}actionBody(){return this.getRuleContext(0,je)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_joinNode}enterRule(e){e.enterJoinNode&&e.enterJoinNode(this)}exitRule(e){e.exitJoinNode&&e.exitJoinNode(this)}accept(e){return e.visitJoinNode?e.visitJoinNode(this):e.visitChildren(this)}},W0=class extends u{constructor(e,t){super(e,t)}controlNodePrefix(){return this.getRuleContext(0,tn)}FORK(){return this.getToken(s.FORK,0)}actionBody(){return this.getRuleContext(0,je)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_forkNode}enterRule(e){e.enterForkNode&&e.enterForkNode(this)}exitRule(e){e.exitForkNode&&e.exitForkNode(this)}accept(e){return e.visitForkNode?e.visitForkNode(this):e.visitChildren(this)}},K0=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}acceptNodeDeclaration(){return this.getRuleContext(0,ys)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_acceptNode}enterRule(e){e.enterAcceptNode&&e.enterAcceptNode(this)}exitRule(e){e.exitAcceptNode&&e.exitAcceptNode(this)}accept(e){return e.visitAcceptNode?e.visitAcceptNode(this):e.visitChildren(this)}},ys=class extends u{constructor(e,t){super(e,t)}ACCEPT(){return this.getToken(s.ACCEPT,0)}acceptParameterPart(){return this.getRuleContext(0,Ro)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Fr)}get ruleIndex(){return s.RULE_acceptNodeDeclaration}enterRule(e){e.enterAcceptNodeDeclaration&&e.enterAcceptNodeDeclaration(this)}exitRule(e){e.exitAcceptNodeDeclaration&&e.exitAcceptNodeDeclaration(this)}accept(e){return e.visitAcceptNodeDeclaration?e.visitAcceptNodeDeclaration(this):e.visitChildren(this)}},Ro=class extends u{constructor(e,t){super(e,t)}payloadParameterMember(){return this.getRuleContext(0,z0)}VIA(){return this.getToken(s.VIA,0)}nodeParameterMember(){return this.getRuleContext(0,cr)}get ruleIndex(){return s.RULE_acceptParameterPart}enterRule(e){e.enterAcceptParameterPart&&e.enterAcceptParameterPart(this)}exitRule(e){e.exitAcceptParameterPart&&e.exitAcceptParameterPart(this)}accept(e){return e.visitAcceptParameterPart?e.visitAcceptParameterPart(this):e.visitChildren(this)}},z0=class extends u{constructor(e,t){super(e,t)}payloadParameter(){return this.getRuleContext(0,Q0)}get ruleIndex(){return s.RULE_payloadParameterMember}enterRule(e){e.enterPayloadParameterMember&&e.enterPayloadParameterMember(this)}exitRule(e){e.exitPayloadParameterMember&&e.exitPayloadParameterMember(this)}accept(e){return e.visitPayloadParameterMember?e.visitPayloadParameterMember(this):e.visitChildren(this)}},Q0=class extends u{constructor(e,t){super(e,t)}payloadFeature(){return this.getRuleContext(0,ss)}triggerValuePart(){return this.getRuleContext(0,$0)}identification(){return this.getRuleContext(0,me)}payloadFeatureSpecializationPart(){return this.getRuleContext(0,Ma)}get ruleIndex(){return s.RULE_payloadParameter}enterRule(e){e.enterPayloadParameter&&e.enterPayloadParameter(this)}exitRule(e){e.exitPayloadParameter&&e.exitPayloadParameter(this)}accept(e){return e.visitPayloadParameter?e.visitPayloadParameter(this):e.visitChildren(this)}},$0=class extends u{constructor(e,t){super(e,t)}triggerFeatureValue(){return this.getRuleContext(0,Y0)}get ruleIndex(){return s.RULE_triggerValuePart}enterRule(e){e.enterTriggerValuePart&&e.enterTriggerValuePart(this)}exitRule(e){e.exitTriggerValuePart&&e.exitTriggerValuePart(this)}accept(e){return e.visitTriggerValuePart?e.visitTriggerValuePart(this):e.visitChildren(this)}},Y0=class extends u{constructor(e,t){super(e,t)}triggerExpression(){return this.getRuleContext(0,J0)}get ruleIndex(){return s.RULE_triggerFeatureValue}enterRule(e){e.enterTriggerFeatureValue&&e.enterTriggerFeatureValue(this)}exitRule(e){e.exitTriggerFeatureValue&&e.exitTriggerFeatureValue(this)}accept(e){return e.visitTriggerFeatureValue?e.visitTriggerFeatureValue(this):e.visitChildren(this)}},J0=class extends u{constructor(e,t){super(e,t)}argumentMember(){return this.getRuleContext(0,$u)}AT(){return this.getToken(s.AT,0)}AFTER(){return this.getToken(s.AFTER,0)}WHEN(){return this.getToken(s.WHEN,0)}argumentExpressionMember(){return this.getRuleContext(0,Yu)}get ruleIndex(){return s.RULE_triggerExpression}enterRule(e){e.enterTriggerExpression&&e.enterTriggerExpression(this)}exitRule(e){e.exitTriggerExpression&&e.exitTriggerExpression(this)}accept(e){return e.visitTriggerExpression?e.visitTriggerExpression(this):e.visitChildren(this)}},X0=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}SEND(){return this.getToken(s.SEND,0)}actionBody(){return this.getRuleContext(0,je)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Fr)}actionUsageDeclaration(){return this.getRuleContext(0,en)}nodeParameterMember(){return this.getRuleContext(0,cr)}emptyParameterMember(){return this.getRuleContext(0,yr)}senderReceiverPart(){return this.getRuleContext(0,yo)}get ruleIndex(){return s.RULE_sendNode}enterRule(e){e.enterSendNode&&e.enterSendNode(this)}exitRule(e){e.exitSendNode&&e.exitSendNode(this)}accept(e){return e.visitSendNode?e.visitSendNode(this):e.visitChildren(this)}},go=class extends u{constructor(e,t){super(e,t)}SEND(){return this.getToken(s.SEND,0)}nodeParameterMember(){return this.getRuleContext(0,cr)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Fr)}senderReceiverPart(){return this.getRuleContext(0,yo)}get ruleIndex(){return s.RULE_sendNodeDeclaration}enterRule(e){e.enterSendNodeDeclaration&&e.enterSendNodeDeclaration(this)}exitRule(e){e.exitSendNodeDeclaration&&e.exitSendNodeDeclaration(this)}accept(e){return e.visitSendNodeDeclaration?e.visitSendNodeDeclaration(this):e.visitChildren(this)}},yo=class extends u{constructor(e,t){super(e,t)}VIA(){return this.getToken(s.VIA,0)}nodeParameterMember(e){return e===void 0?this.getRuleContexts(cr):this.getRuleContext(e,cr)}TO(){return this.getToken(s.TO,0)}emptyParameterMember(){return this.getRuleContext(0,yr)}get ruleIndex(){return s.RULE_senderReceiverPart}enterRule(e){e.enterSenderReceiverPart&&e.enterSenderReceiverPart(this)}exitRule(e){e.exitSenderReceiverPart&&e.exitSenderReceiverPart(this)}accept(e){return e.visitSenderReceiverPart?e.visitSenderReceiverPart(this):e.visitChildren(this)}},cr=class extends u{constructor(e,t){super(e,t)}nodeParameter(){return this.getRuleContext(0,Z0)}get ruleIndex(){return s.RULE_nodeParameterMember}enterRule(e){e.enterNodeParameterMember&&e.enterNodeParameterMember(this)}exitRule(e){e.exitNodeParameterMember&&e.exitNodeParameterMember(this)}accept(e){return e.visitNodeParameterMember?e.visitNodeParameterMember(this):e.visitChildren(this)}},Z0=class extends u{constructor(e,t){super(e,t)}featureBinding(){return this.getRuleContext(0,eh)}get ruleIndex(){return s.RULE_nodeParameter}enterRule(e){e.enterNodeParameter&&e.enterNodeParameter(this)}exitRule(e){e.exitNodeParameter&&e.exitNodeParameter(this)}accept(e){return e.visitNodeParameter?e.visitNodeParameter(this):e.visitChildren(this)}},eh=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,te)}get ruleIndex(){return s.RULE_featureBinding}enterRule(e){e.enterFeatureBinding&&e.enterFeatureBinding(this)}exitRule(e){e.exitFeatureBinding&&e.exitFeatureBinding(this)}accept(e){return e.visitFeatureBinding?e.visitFeatureBinding(this):e.visitChildren(this)}},yr=class extends u{constructor(e,t){super(e,t)}emptyUsage(){return this.getRuleContext(0,Bd)}get ruleIndex(){return s.RULE_emptyParameterMember}enterRule(e){e.enterEmptyParameterMember&&e.enterEmptyParameterMember(this)}exitRule(e){e.exitEmptyParameterMember&&e.exitEmptyParameterMember(this)}accept(e){return e.visitEmptyParameterMember?e.visitEmptyParameterMember(this):e.visitChildren(this)}},th=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}assignmentNodeDeclaration(){return this.getRuleContext(0,Cs)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_assignmentNode}enterRule(e){e.enterAssignmentNode&&e.enterAssignmentNode(this)}exitRule(e){e.exitAssignmentNode&&e.exitAssignmentNode(this)}accept(e){return e.visitAssignmentNode?e.visitAssignmentNode(this):e.visitChildren(this)}},Cs=class extends u{constructor(e,t){super(e,t)}ASSIGN(){return this.getToken(s.ASSIGN,0)}assignmentTargetMember(){return this.getRuleContext(0,rh)}featureChainMember(){return this.getRuleContext(0,ji)}COLON_EQ(){return this.getToken(s.COLON_EQ,0)}nodeParameterMember(){return this.getRuleContext(0,cr)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Fr)}get ruleIndex(){return s.RULE_assignmentNodeDeclaration}enterRule(e){e.enterAssignmentNodeDeclaration&&e.enterAssignmentNodeDeclaration(this)}exitRule(e){e.exitAssignmentNodeDeclaration&&e.exitAssignmentNodeDeclaration(this)}accept(e){return e.visitAssignmentNodeDeclaration?e.visitAssignmentNodeDeclaration(this):e.visitChildren(this)}},rh=class extends u{constructor(e,t){super(e,t)}assignmentTargetParameter(){return this.getRuleContext(0,ih)}get ruleIndex(){return s.RULE_assignmentTargetMember}enterRule(e){e.enterAssignmentTargetMember&&e.enterAssignmentTargetMember(this)}exitRule(e){e.exitAssignmentTargetMember&&e.exitAssignmentTargetMember(this)}accept(e){return e.visitAssignmentTargetMember?e.visitAssignmentTargetMember(this):e.visitChildren(this)}},ih=class extends u{constructor(e,t){super(e,t)}assignmentTargetBinding(){return this.getRuleContext(0,nh)}DOT(){return this.getToken(s.DOT,0)}get ruleIndex(){return s.RULE_assignmentTargetParameter}enterRule(e){e.enterAssignmentTargetParameter&&e.enterAssignmentTargetParameter(this)}exitRule(e){e.exitAssignmentTargetParameter&&e.exitAssignmentTargetParameter(this)}accept(e){return e.visitAssignmentTargetParameter?e.visitAssignmentTargetParameter(this):e.visitChildren(this)}},nh=class extends u{constructor(e,t){super(e,t)}nonFeatureChainPrimaryExpression(){return this.getRuleContext(0,Vd)}get ruleIndex(){return s.RULE_assignmentTargetBinding}enterRule(e){e.enterAssignmentTargetBinding&&e.enterAssignmentTargetBinding(this)}exitRule(e){e.exitAssignmentTargetBinding&&e.exitAssignmentTargetBinding(this)}accept(e){return e.visitAssignmentTargetBinding?e.visitAssignmentTargetBinding(this):e.visitChildren(this)}},sh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}TERMINATE(){return this.getToken(s.TERMINATE,0)}actionBody(){return this.getRuleContext(0,je)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Fr)}nodeParameterMember(){return this.getRuleContext(0,cr)}get ruleIndex(){return s.RULE_terminateNode}enterRule(e){e.enterTerminateNode&&e.enterTerminateNode(this)}exitRule(e){e.exitTerminateNode&&e.exitTerminateNode(this)}accept(e){return e.visitTerminateNode?e.visitTerminateNode(this):e.visitChildren(this)}},Co=class extends u{constructor(e,t){super(e,t)}actionNodePrefix(){return this.getRuleContext(0,gs)}IF(){return this.getToken(s.IF,0)}expressionParameterMember(){return this.getRuleContext(0,vs)}actionBodyParameterMember(e){return e===void 0?this.getRuleContexts(rn):this.getRuleContext(e,rn)}ELSE(){return this.getToken(s.ELSE,0)}ifNodeParameterMember(){return this.getRuleContext(0,oh)}get ruleIndex(){return s.RULE_ifNode}enterRule(e){e.enterIfNode&&e.enterIfNode(this)}exitRule(e){e.exitIfNode&&e.exitIfNode(this)}accept(e){return e.visitIfNode?e.visitIfNode(this):e.visitChildren(this)}},vs=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,te)}get ruleIndex(){return s.RULE_expressionParameterMember}enterRule(e){e.enterExpressionParameterMember&&e.enterExpressionParameterMember(this)}exitRule(e){e.exitExpressionParameterMember&&e.exitExpressionParameterMember(this)}accept(e){return e.visitExpressionParameterMember?e.visitExpressionParameterMember(this):e.visitChildren(this)}},rn=class extends u{constructor(e,t){super(e,t)}actionBodyParameter(){return this.getRuleContext(0,ah)}get ruleIndex(){return s.RULE_actionBodyParameterMember}enterRule(e){e.enterActionBodyParameterMember&&e.enterActionBodyParameterMember(this)}exitRule(e){e.exitActionBodyParameterMember&&e.exitActionBodyParameterMember(this)}accept(e){return e.visitActionBodyParameterMember?e.visitActionBodyParameterMember(this):e.visitChildren(this)}},ah=class extends u{constructor(e,t){super(e,t)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}ACTION(){return this.getToken(s.ACTION,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(st):this.getRuleContext(e,st)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_actionBodyParameter}enterRule(e){e.enterActionBodyParameter&&e.enterActionBodyParameter(this)}exitRule(e){e.exitActionBodyParameter&&e.exitActionBodyParameter(this)}accept(e){return e.visitActionBodyParameter?e.visitActionBodyParameter(this):e.visitChildren(this)}},oh=class extends u{constructor(e,t){super(e,t)}ifNode(){return this.getRuleContext(0,Co)}get ruleIndex(){return s.RULE_ifNodeParameterMember}enterRule(e){e.enterIfNodeParameterMember&&e.enterIfNodeParameterMember(this)}exitRule(e){e.exitIfNodeParameterMember&&e.exitIfNodeParameterMember(this)}accept(e){return e.visitIfNodeParameterMember?e.visitIfNodeParameterMember(this):e.visitChildren(this)}},lh=class extends u{constructor(e,t){super(e,t)}actionNodePrefix(){return this.getRuleContext(0,gs)}actionBodyParameterMember(){return this.getRuleContext(0,rn)}WHILE(){return this.getToken(s.WHILE,0)}expressionParameterMember(e){return e===void 0?this.getRuleContexts(vs):this.getRuleContext(e,vs)}LOOP(){return this.getToken(s.LOOP,0)}emptyParameterMember(){return this.getRuleContext(0,yr)}UNTIL(){return this.getToken(s.UNTIL,0)}SEMI(){return this.getToken(s.SEMI,0)}get ruleIndex(){return s.RULE_whileLoopNode}enterRule(e){e.enterWhileLoopNode&&e.enterWhileLoopNode(this)}exitRule(e){e.exitWhileLoopNode&&e.exitWhileLoopNode(this)}accept(e){return e.visitWhileLoopNode?e.visitWhileLoopNode(this):e.visitChildren(this)}},uh=class extends u{constructor(e,t){super(e,t)}actionNodePrefix(){return this.getRuleContext(0,gs)}FOR(){return this.getToken(s.FOR,0)}forVariableDeclarationMember(){return this.getRuleContext(0,ch)}IN(){return this.getToken(s.IN,0)}nodeParameterMember(){return this.getRuleContext(0,cr)}actionBodyParameterMember(){return this.getRuleContext(0,rn)}get ruleIndex(){return s.RULE_forLoopNode}enterRule(e){e.enterForLoopNode&&e.enterForLoopNode(this)}exitRule(e){e.exitForLoopNode&&e.exitForLoopNode(this)}accept(e){return e.visitForLoopNode?e.visitForLoopNode(this):e.visitChildren(this)}},ch=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_forVariableDeclarationMember}enterRule(e){e.enterForVariableDeclarationMember&&e.enterForVariableDeclarationMember(this)}exitRule(e){e.exitForVariableDeclarationMember&&e.exitForVariableDeclarationMember(this)}accept(e){return e.visitForVariableDeclarationMember?e.visitForVariableDeclarationMember(this):e.visitChildren(this)}},Z3=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_forVariableDeclaration}enterRule(e){e.enterForVariableDeclaration&&e.enterForVariableDeclaration(this)}exitRule(e){e.exitForVariableDeclaration&&e.exitForVariableDeclaration(this)}accept(e){return e.visitForVariableDeclaration?e.visitForVariableDeclaration(this):e.visitChildren(this)}},hh=class extends u{constructor(e,t){super(e,t)}usageBody(){return this.getRuleContext(0,Wt)}targetSuccession(){return this.getRuleContext(0,dh)}guardedTargetSuccession(){return this.getRuleContext(0,vo)}defaultTargetSuccession(){return this.getRuleContext(0,ph)}get ruleIndex(){return s.RULE_actionTargetSuccession}enterRule(e){e.enterActionTargetSuccession&&e.enterActionTargetSuccession(this)}exitRule(e){e.exitActionTargetSuccession&&e.exitActionTargetSuccession(this)}accept(e){return e.visitActionTargetSuccession?e.visitActionTargetSuccession(this):e.visitChildren(this)}},dh=class extends u{constructor(e,t){super(e,t)}sourceEndMember(){return this.getRuleContext(0,eo)}THEN(){return this.getToken(s.THEN,0)}connectorEndMember(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_targetSuccession}enterRule(e){e.enterTargetSuccession&&e.enterTargetSuccession(this)}exitRule(e){e.exitTargetSuccession&&e.exitTargetSuccession(this)}accept(e){return e.visitTargetSuccession?e.visitTargetSuccession(this):e.visitChildren(this)}},vo=class extends u{constructor(e,t){super(e,t)}guardExpressionMember(){return this.getRuleContext(0,sn)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,Hr)}get ruleIndex(){return s.RULE_guardedTargetSuccession}enterRule(e){e.enterGuardedTargetSuccession&&e.enterGuardedTargetSuccession(this)}exitRule(e){e.exitGuardedTargetSuccession&&e.exitGuardedTargetSuccession(this)}accept(e){return e.visitGuardedTargetSuccession?e.visitGuardedTargetSuccession(this):e.visitChildren(this)}},ph=class extends u{constructor(e,t){super(e,t)}ELSE(){return this.getToken(s.ELSE,0)}transitionSuccessionMember(){return this.getRuleContext(0,Hr)}get ruleIndex(){return s.RULE_defaultTargetSuccession}enterRule(e){e.enterDefaultTargetSuccession&&e.enterDefaultTargetSuccession(this)}exitRule(e){e.exitDefaultTargetSuccession&&e.exitDefaultTargetSuccession(this)}accept(e){return e.visitDefaultTargetSuccession?e.visitDefaultTargetSuccession(this):e.visitChildren(this)}},fh=class extends u{constructor(e,t){super(e,t)}FIRST(){return this.getToken(s.FIRST,0)}featureChainMember(){return this.getRuleContext(0,ji)}guardExpressionMember(){return this.getRuleContext(0,sn)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,Hr)}usageBody(){return this.getRuleContext(0,Wt)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_guardedSuccession}enterRule(e){e.enterGuardedSuccession&&e.enterGuardedSuccession(this)}exitRule(e){e.exitGuardedSuccession&&e.exitGuardedSuccession(this)}accept(e){return e.visitGuardedSuccession?e.visitGuardedSuccession(this):e.visitChildren(this)}},xh=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}STATE(){return this.getToken(s.STATE,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}stateDefBody(){return this.getRuleContext(0,mh)}get ruleIndex(){return s.RULE_stateDefinition}enterRule(e){e.enterStateDefinition&&e.enterStateDefinition(this)}exitRule(e){e.exitStateDefinition&&e.exitStateDefinition(this)}accept(e){return e.visitStateDefinition?e.visitStateDefinition(this):e.visitChildren(this)}},mh=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}PARALLEL(){return this.getToken(s.PARALLEL,0)}stateBodyItem(e){return e===void 0?this.getRuleContexts(nn):this.getRuleContext(e,nn)}get ruleIndex(){return s.RULE_stateDefBody}enterRule(e){e.enterStateDefBody&&e.enterStateDefBody(this)}exitRule(e){e.exitStateDefBody&&e.exitStateDefBody(this)}accept(e){return e.visitStateDefBody?e.visitStateDefBody(this):e.visitChildren(this)}},nn=class extends u{constructor(e,t){super(e,t)}nonBehaviorBodyItem(){return this.getRuleContext(0,mo)}behaviorUsageMember(){return this.getRuleContext(0,Ga)}sourceSuccessionMember(){return this.getRuleContext(0,xi)}targetTransitionUsageMember(e){return e===void 0?this.getRuleContexts(Lo):this.getRuleContext(e,Lo)}transitionUsageMember(){return this.getRuleContext(0,Lh)}entryActionMember(){return this.getRuleContext(0,bh)}entryTransitionMember(e){return e===void 0?this.getRuleContexts(Eo):this.getRuleContext(e,Eo)}doActionMember(){return this.getRuleContext(0,Rh)}exitActionMember(){return this.getRuleContext(0,gh)}get ruleIndex(){return s.RULE_stateBodyItem}enterRule(e){e.enterStateBodyItem&&e.enterStateBodyItem(this)}exitRule(e){e.exitStateBodyItem&&e.exitStateBodyItem(this)}accept(e){return e.visitStateBodyItem?e.visitStateBodyItem(this):e.visitChildren(this)}},bh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}ENTRY(){return this.getToken(s.ENTRY,0)}stateActionUsage(){return this.getRuleContext(0,Es)}get ruleIndex(){return s.RULE_entryActionMember}enterRule(e){e.enterEntryActionMember&&e.enterEntryActionMember(this)}exitRule(e){e.exitEntryActionMember&&e.exitEntryActionMember(this)}accept(e){return e.visitEntryActionMember?e.visitEntryActionMember(this):e.visitChildren(this)}},Rh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}DO(){return this.getToken(s.DO,0)}stateActionUsage(){return this.getRuleContext(0,Es)}get ruleIndex(){return s.RULE_doActionMember}enterRule(e){e.enterDoActionMember&&e.enterDoActionMember(this)}exitRule(e){e.exitDoActionMember&&e.exitDoActionMember(this)}accept(e){return e.visitDoActionMember?e.visitDoActionMember(this):e.visitChildren(this)}},gh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}EXIT(){return this.getToken(s.EXIT,0)}stateActionUsage(){return this.getRuleContext(0,Es)}get ruleIndex(){return s.RULE_exitActionMember}enterRule(e){e.enterExitActionMember&&e.enterExitActionMember(this)}exitRule(e){e.exitExitActionMember&&e.exitExitActionMember(this)}accept(e){return e.visitExitActionMember?e.visitExitActionMember(this):e.visitChildren(this)}},Eo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}SEMI(){return this.getToken(s.SEMI,0)}guardedTargetSuccession(){return this.getRuleContext(0,vo)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,Hr)}get ruleIndex(){return s.RULE_entryTransitionMember}enterRule(e){e.enterEntryTransitionMember&&e.enterEntryTransitionMember(this)}exitRule(e){e.exitEntryTransitionMember&&e.exitEntryTransitionMember(this)}accept(e){return e.visitEntryTransitionMember?e.visitEntryTransitionMember(this):e.visitChildren(this)}},Es=class extends u{constructor(e,t){super(e,t)}emptyActionUsage(){return this.getRuleContext(0,Vo)}SEMI(){return this.getToken(s.SEMI,0)}statePerformActionUsage(){return this.getRuleContext(0,yh)}stateAcceptActionUsage(){return this.getRuleContext(0,Ch)}stateSendActionUsage(){return this.getRuleContext(0,vh)}stateAssignmentActionUsage(){return this.getRuleContext(0,Eh)}get ruleIndex(){return s.RULE_stateActionUsage}enterRule(e){e.enterStateActionUsage&&e.enterStateActionUsage(this)}exitRule(e){e.exitStateActionUsage&&e.exitStateActionUsage(this)}accept(e){return e.visitStateActionUsage?e.visitStateActionUsage(this):e.visitChildren(this)}},yh=class extends u{constructor(e,t){super(e,t)}performActionUsageDeclaration(){return this.getRuleContext(0,Rs)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_statePerformActionUsage}enterRule(e){e.enterStatePerformActionUsage&&e.enterStatePerformActionUsage(this)}exitRule(e){e.exitStatePerformActionUsage&&e.exitStatePerformActionUsage(this)}accept(e){return e.visitStatePerformActionUsage?e.visitStatePerformActionUsage(this):e.visitChildren(this)}},Ch=class extends u{constructor(e,t){super(e,t)}acceptNodeDeclaration(){return this.getRuleContext(0,ys)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_stateAcceptActionUsage}enterRule(e){e.enterStateAcceptActionUsage&&e.enterStateAcceptActionUsage(this)}exitRule(e){e.exitStateAcceptActionUsage&&e.exitStateAcceptActionUsage(this)}accept(e){return e.visitStateAcceptActionUsage?e.visitStateAcceptActionUsage(this):e.visitChildren(this)}},vh=class extends u{constructor(e,t){super(e,t)}sendNodeDeclaration(){return this.getRuleContext(0,go)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_stateSendActionUsage}enterRule(e){e.enterStateSendActionUsage&&e.enterStateSendActionUsage(this)}exitRule(e){e.exitStateSendActionUsage&&e.exitStateSendActionUsage(this)}accept(e){return e.visitStateSendActionUsage?e.visitStateSendActionUsage(this):e.visitChildren(this)}},Eh=class extends u{constructor(e,t){super(e,t)}assignmentNodeDeclaration(){return this.getRuleContext(0,Cs)}actionBody(){return this.getRuleContext(0,je)}get ruleIndex(){return s.RULE_stateAssignmentActionUsage}enterRule(e){e.enterStateAssignmentActionUsage&&e.enterStateAssignmentActionUsage(this)}exitRule(e){e.exitStateAssignmentActionUsage&&e.exitStateAssignmentActionUsage(this)}accept(e){return e.visitStateAssignmentActionUsage?e.visitStateAssignmentActionUsage(this):e.visitChildren(this)}},Lh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}transitionUsage(){return this.getRuleContext(0,Th)}get ruleIndex(){return s.RULE_transitionUsageMember}enterRule(e){e.enterTransitionUsageMember&&e.enterTransitionUsageMember(this)}exitRule(e){e.exitTransitionUsageMember&&e.exitTransitionUsageMember(this)}accept(e){return e.visitTransitionUsageMember?e.visitTransitionUsageMember(this):e.visitChildren(this)}},Lo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}targetTransitionUsage(){return this.getRuleContext(0,Ah)}get ruleIndex(){return s.RULE_targetTransitionUsageMember}enterRule(e){e.enterTargetTransitionUsageMember&&e.enterTargetTransitionUsageMember(this)}exitRule(e){e.exitTargetTransitionUsageMember&&e.exitTargetTransitionUsageMember(this)}accept(e){return e.visitTargetTransitionUsageMember?e.visitTargetTransitionUsageMember(this):e.visitChildren(this)}},Sh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}STATE(){return this.getToken(s.STATE,0)}actionUsageDeclaration(){return this.getRuleContext(0,en)}stateUsageBody(){return this.getRuleContext(0,So)}get ruleIndex(){return s.RULE_stateUsage}enterRule(e){e.enterStateUsage&&e.enterStateUsage(this)}exitRule(e){e.exitStateUsage&&e.exitStateUsage(this)}accept(e){return e.visitStateUsage?e.visitStateUsage(this):e.visitChildren(this)}},So=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}PARALLEL(){return this.getToken(s.PARALLEL,0)}stateBodyItem(e){return e===void 0?this.getRuleContexts(nn):this.getRuleContext(e,nn)}get ruleIndex(){return s.RULE_stateUsageBody}enterRule(e){e.enterStateUsageBody&&e.enterStateUsageBody(this)}exitRule(e){e.exitStateUsageBody&&e.exitStateUsageBody(this)}accept(e){return e.visitStateUsageBody?e.visitStateUsageBody(this):e.visitChildren(this)}},Ph=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}EXHIBIT(){return this.getToken(s.EXHIBIT,0)}stateUsageBody(){return this.getRuleContext(0,So)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}STATE(){return this.getToken(s.STATE,0)}valuePart(){return this.getRuleContext(0,Te)}featureSpecializationPart(){return this.getRuleContext(0,dt)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_exhibitStateUsage}enterRule(e){e.enterExhibitStateUsage&&e.enterExhibitStateUsage(this)}exitRule(e){e.exitExhibitStateUsage&&e.exitExhibitStateUsage(this)}accept(e){return e.visitExhibitStateUsage?e.visitExhibitStateUsage(this):e.visitChildren(this)}},Th=class extends u{constructor(e,t){super(e,t)}TRANSITION(){return this.getToken(s.TRANSITION,0)}featureChainMember(){return this.getRuleContext(0,ji)}emptyParameterMember(e){return e===void 0?this.getRuleContexts(yr):this.getRuleContext(e,yr)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,Hr)}actionBody(){return this.getRuleContext(0,je)}FIRST(){return this.getToken(s.FIRST,0)}triggerActionMember(){return this.getRuleContext(0,Po)}guardExpressionMember(){return this.getRuleContext(0,sn)}effectBehaviorMember(){return this.getRuleContext(0,To)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_transitionUsage}enterRule(e){e.enterTransitionUsage&&e.enterTransitionUsage(this)}exitRule(e){e.exitTransitionUsage&&e.exitTransitionUsage(this)}accept(e){return e.visitTransitionUsage?e.visitTransitionUsage(this):e.visitChildren(this)}},Ah=class extends u{constructor(e,t){super(e,t)}emptyParameterMember(e){return e===void 0?this.getRuleContexts(yr):this.getRuleContext(e,yr)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,Hr)}actionBody(){return this.getRuleContext(0,je)}TRANSITION(){return this.getToken(s.TRANSITION,0)}triggerActionMember(){return this.getRuleContext(0,Po)}guardExpressionMember(){return this.getRuleContext(0,sn)}effectBehaviorMember(){return this.getRuleContext(0,To)}get ruleIndex(){return s.RULE_targetTransitionUsage}enterRule(e){e.enterTargetTransitionUsage&&e.enterTargetTransitionUsage(this)}exitRule(e){e.exitTargetTransitionUsage&&e.exitTargetTransitionUsage(this)}accept(e){return e.visitTargetTransitionUsage?e.visitTargetTransitionUsage(this):e.visitChildren(this)}},Po=class extends u{constructor(e,t){super(e,t)}ACCEPT(){return this.getToken(s.ACCEPT,0)}triggerAction(){return this.getRuleContext(0,Mh)}get ruleIndex(){return s.RULE_triggerActionMember}enterRule(e){e.enterTriggerActionMember&&e.enterTriggerActionMember(this)}exitRule(e){e.exitTriggerActionMember&&e.exitTriggerActionMember(this)}accept(e){return e.visitTriggerActionMember?e.visitTriggerActionMember(this):e.visitChildren(this)}},Mh=class extends u{constructor(e,t){super(e,t)}acceptParameterPart(){return this.getRuleContext(0,Ro)}get ruleIndex(){return s.RULE_triggerAction}enterRule(e){e.enterTriggerAction&&e.enterTriggerAction(this)}exitRule(e){e.exitTriggerAction&&e.exitTriggerAction(this)}accept(e){return e.visitTriggerAction?e.visitTriggerAction(this):e.visitChildren(this)}},sn=class extends u{constructor(e,t){super(e,t)}IF(){return this.getToken(s.IF,0)}ownedExpression(){return this.getRuleContext(0,te)}get ruleIndex(){return s.RULE_guardExpressionMember}enterRule(e){e.enterGuardExpressionMember&&e.enterGuardExpressionMember(this)}exitRule(e){e.exitGuardExpressionMember&&e.exitGuardExpressionMember(this)}accept(e){return e.visitGuardExpressionMember?e.visitGuardExpressionMember(this):e.visitChildren(this)}},To=class extends u{constructor(e,t){super(e,t)}DO(){return this.getToken(s.DO,0)}effectBehaviorUsage(){return this.getRuleContext(0,Nh)}get ruleIndex(){return s.RULE_effectBehaviorMember}enterRule(e){e.enterEffectBehaviorMember&&e.enterEffectBehaviorMember(this)}exitRule(e){e.exitEffectBehaviorMember&&e.exitEffectBehaviorMember(this)}accept(e){return e.visitEffectBehaviorMember?e.visitEffectBehaviorMember(this):e.visitChildren(this)}},Nh=class extends u{constructor(e,t){super(e,t)}emptyActionUsage(){return this.getRuleContext(0,Vo)}transitionPerformActionUsage(){return this.getRuleContext(0,Uh)}transitionAcceptActionUsage(){return this.getRuleContext(0,wh)}transitionSendActionUsage(){return this.getRuleContext(0,Dh)}transitionAssignmentActionUsage(){return this.getRuleContext(0,Ih)}get ruleIndex(){return s.RULE_effectBehaviorUsage}enterRule(e){e.enterEffectBehaviorUsage&&e.enterEffectBehaviorUsage(this)}exitRule(e){e.exitEffectBehaviorUsage&&e.exitEffectBehaviorUsage(this)}accept(e){return e.visitEffectBehaviorUsage?e.visitEffectBehaviorUsage(this):e.visitChildren(this)}},Uh=class extends u{constructor(e,t){super(e,t)}performActionUsageDeclaration(){return this.getRuleContext(0,Rs)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(st):this.getRuleContext(e,st)}get ruleIndex(){return s.RULE_transitionPerformActionUsage}enterRule(e){e.enterTransitionPerformActionUsage&&e.enterTransitionPerformActionUsage(this)}exitRule(e){e.exitTransitionPerformActionUsage&&e.exitTransitionPerformActionUsage(this)}accept(e){return e.visitTransitionPerformActionUsage?e.visitTransitionPerformActionUsage(this):e.visitChildren(this)}},wh=class extends u{constructor(e,t){super(e,t)}acceptNodeDeclaration(){return this.getRuleContext(0,ys)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(st):this.getRuleContext(e,st)}get ruleIndex(){return s.RULE_transitionAcceptActionUsage}enterRule(e){e.enterTransitionAcceptActionUsage&&e.enterTransitionAcceptActionUsage(this)}exitRule(e){e.exitTransitionAcceptActionUsage&&e.exitTransitionAcceptActionUsage(this)}accept(e){return e.visitTransitionAcceptActionUsage?e.visitTransitionAcceptActionUsage(this):e.visitChildren(this)}},Dh=class extends u{constructor(e,t){super(e,t)}sendNodeDeclaration(){return this.getRuleContext(0,go)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(st):this.getRuleContext(e,st)}get ruleIndex(){return s.RULE_transitionSendActionUsage}enterRule(e){e.enterTransitionSendActionUsage&&e.enterTransitionSendActionUsage(this)}exitRule(e){e.exitTransitionSendActionUsage&&e.exitTransitionSendActionUsage(this)}accept(e){return e.visitTransitionSendActionUsage?e.visitTransitionSendActionUsage(this):e.visitChildren(this)}},Ih=class extends u{constructor(e,t){super(e,t)}assignmentNodeDeclaration(){return this.getRuleContext(0,Cs)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(st):this.getRuleContext(e,st)}get ruleIndex(){return s.RULE_transitionAssignmentActionUsage}enterRule(e){e.enterTransitionAssignmentActionUsage&&e.enterTransitionAssignmentActionUsage(this)}exitRule(e){e.exitTransitionAssignmentActionUsage&&e.exitTransitionAssignmentActionUsage(this)}accept(e){return e.visitTransitionAssignmentActionUsage?e.visitTransitionAssignmentActionUsage(this):e.visitChildren(this)}},Hr=class extends u{constructor(e,t){super(e,t)}transitionSuccession(){return this.getRuleContext(0,Oh)}get ruleIndex(){return s.RULE_transitionSuccessionMember}enterRule(e){e.enterTransitionSuccessionMember&&e.enterTransitionSuccessionMember(this)}exitRule(e){e.exitTransitionSuccessionMember&&e.exitTransitionSuccessionMember(this)}accept(e){return e.visitTransitionSuccessionMember?e.visitTransitionSuccessionMember(this):e.visitChildren(this)}},Oh=class extends u{constructor(e,t){super(e,t)}emptyEndMember(){return this.getRuleContext(0,kh)}connectorEndMember(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_transitionSuccession}enterRule(e){e.enterTransitionSuccession&&e.enterTransitionSuccession(this)}exitRule(e){e.exitTransitionSuccession&&e.exitTransitionSuccession(this)}accept(e){return e.visitTransitionSuccession?e.visitTransitionSuccession(this):e.visitChildren(this)}},kh=class extends u{constructor(e,t){super(e,t)}emptyFeature(){return this.getRuleContext(0,qo)}get ruleIndex(){return s.RULE_emptyEndMember}enterRule(e){e.enterEmptyEndMember&&e.enterEmptyEndMember(this)}exitRule(e){e.exitEmptyEndMember&&e.exitEmptyEndMember(this)}accept(e){return e.visitEmptyEndMember?e.visitEmptyEndMember(this):e.visitChildren(this)}},Fh=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}CALC(){return this.getToken(s.CALC,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}calculationBody(){return this.getRuleContext(0,Cr)}get ruleIndex(){return s.RULE_calculationDefinition}enterRule(e){e.enterCalculationDefinition&&e.enterCalculationDefinition(this)}exitRule(e){e.exitCalculationDefinition&&e.exitCalculationDefinition(this)}accept(e){return e.visitCalculationDefinition?e.visitCalculationDefinition(this):e.visitChildren(this)}},Hh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}CALC(){return this.getToken(s.CALC,0)}actionUsageDeclaration(){return this.getRuleContext(0,en)}calculationBody(){return this.getRuleContext(0,Cr)}get ruleIndex(){return s.RULE_calculationUsage}enterRule(e){e.enterCalculationUsage&&e.enterCalculationUsage(this)}exitRule(e){e.exitCalculationUsage&&e.exitCalculationUsage(this)}accept(e){return e.visitCalculationUsage?e.visitCalculationUsage(this):e.visitChildren(this)}},Cr=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}calculationBodyPart(){return this.getRuleContext(0,Bh)}RBRACE(){return this.getToken(s.RBRACE,0)}get ruleIndex(){return s.RULE_calculationBody}enterRule(e){e.enterCalculationBody&&e.enterCalculationBody(this)}exitRule(e){e.exitCalculationBody&&e.exitCalculationBody(this)}accept(e){return e.visitCalculationBody?e.visitCalculationBody(this):e.visitChildren(this)}},Bh=class extends u{constructor(e,t){super(e,t)}calculationBodyItem(e){return e===void 0?this.getRuleContexts(Ao):this.getRuleContext(e,Ao)}resultExpressionMember(){return this.getRuleContext(0,ns)}get ruleIndex(){return s.RULE_calculationBodyPart}enterRule(e){e.enterCalculationBodyPart&&e.enterCalculationBodyPart(this)}exitRule(e){e.exitCalculationBodyPart&&e.exitCalculationBodyPart(this)}accept(e){return e.visitCalculationBodyPart?e.visitCalculationBodyPart(this):e.visitChildren(this)}},Ao=class extends u{constructor(e,t){super(e,t)}actionBodyItem(){return this.getRuleContext(0,st)}returnParameterMember(){return this.getRuleContext(0,Mo)}get ruleIndex(){return s.RULE_calculationBodyItem}enterRule(e){e.enterCalculationBodyItem&&e.enterCalculationBodyItem(this)}exitRule(e){e.exitCalculationBodyItem&&e.exitCalculationBodyItem(this)}accept(e){return e.visitCalculationBodyItem?e.visitCalculationBodyItem(this):e.visitChildren(this)}},Mo=class extends u{constructor(e,t){super(e,t)}RETURN(){return this.getToken(s.RETURN,0)}usageElement(){return this.getRuleContext(0,Va)}memberPrefix(){return this.getRuleContext(0,re)}get ruleIndex(){return s.RULE_returnParameterMember}enterRule(e){e.enterReturnParameterMember&&e.enterReturnParameterMember(this)}exitRule(e){e.exitReturnParameterMember&&e.exitReturnParameterMember(this)}accept(e){return e.visitReturnParameterMember?e.visitReturnParameterMember(this):e.visitChildren(this)}},_h=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}CONSTRAINT(){return this.getToken(s.CONSTRAINT,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}calculationBody(){return this.getRuleContext(0,Cr)}get ruleIndex(){return s.RULE_constraintDefinition}enterRule(e){e.enterConstraintDefinition&&e.enterConstraintDefinition(this)}exitRule(e){e.exitConstraintDefinition&&e.exitConstraintDefinition(this)}accept(e){return e.visitConstraintDefinition?e.visitConstraintDefinition(this):e.visitChildren(this)}},Vh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}CONSTRAINT(){return this.getToken(s.CONSTRAINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}calculationBody(){return this.getRuleContext(0,Cr)}get ruleIndex(){return s.RULE_constraintUsage}enterRule(e){e.enterConstraintUsage&&e.enterConstraintUsage(this)}exitRule(e){e.exitConstraintUsage&&e.exitConstraintUsage(this)}accept(e){return e.visitConstraintUsage?e.visitConstraintUsage(this):e.visitChildren(this)}},qh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}ASSERT(){return this.getToken(s.ASSERT,0)}calculationBody(){return this.getRuleContext(0,Cr)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}CONSTRAINT(){return this.getToken(s.CONSTRAINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}NOT(){return this.getToken(s.NOT,0)}featureSpecializationPart(){return this.getRuleContext(0,dt)}get ruleIndex(){return s.RULE_assertConstraintUsage}enterRule(e){e.enterAssertConstraintUsage&&e.enterAssertConstraintUsage(this)}exitRule(e){e.exitAssertConstraintUsage&&e.exitAssertConstraintUsage(this)}accept(e){return e.visitAssertConstraintUsage?e.visitAssertConstraintUsage(this):e.visitChildren(this)}},Rt=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,de)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_constraintUsageDeclaration}enterRule(e){e.enterConstraintUsageDeclaration&&e.enterConstraintUsageDeclaration(this)}exitRule(e){e.exitConstraintUsageDeclaration&&e.exitConstraintUsageDeclaration(this)}accept(e){return e.visitConstraintUsageDeclaration?e.visitConstraintUsageDeclaration(this):e.visitChildren(this)}},jh=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}REQUIREMENT(){return this.getToken(s.REQUIREMENT,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}requirementBody(){return this.getRuleContext(0,wt)}get ruleIndex(){return s.RULE_requirementDefinition}enterRule(e){e.enterRequirementDefinition&&e.enterRequirementDefinition(this)}exitRule(e){e.exitRequirementDefinition&&e.exitRequirementDefinition(this)}accept(e){return e.visitRequirementDefinition?e.visitRequirementDefinition(this):e.visitChildren(this)}},wt=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}requirementBodyItem(e){return e===void 0?this.getRuleContexts(No):this.getRuleContext(e,No)}get ruleIndex(){return s.RULE_requirementBody}enterRule(e){e.enterRequirementBody&&e.enterRequirementBody(this)}exitRule(e){e.exitRequirementBody&&e.exitRequirementBody(this)}accept(e){return e.visitRequirementBody?e.visitRequirementBody(this):e.visitChildren(this)}},No=class extends u{constructor(e,t){super(e,t)}definitionBodyItem(){return this.getRuleContext(0,pi)}subjectMember(){return this.getRuleContext(0,Uo)}requirementConstraintMember(){return this.getRuleContext(0,Wh)}framedConcernMember(){return this.getRuleContext(0,Qh)}requirementVerificationMember(){return this.getRuleContext(0,xd)}actorMember(){return this.getRuleContext(0,wo)}stakeholderMember(){return this.getRuleContext(0,Jh)}get ruleIndex(){return s.RULE_requirementBodyItem}enterRule(e){e.enterRequirementBodyItem&&e.enterRequirementBodyItem(this)}exitRule(e){e.exitRequirementBodyItem&&e.exitRequirementBodyItem(this)}accept(e){return e.visitRequirementBodyItem?e.visitRequirementBodyItem(this):e.visitChildren(this)}},Uo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}subjectUsage(){return this.getRuleContext(0,Gh)}get ruleIndex(){return s.RULE_subjectMember}enterRule(e){e.enterSubjectMember&&e.enterSubjectMember(this)}exitRule(e){e.exitSubjectMember&&e.exitSubjectMember(this)}accept(e){return e.visitSubjectMember?e.visitSubjectMember(this):e.visitChildren(this)}},Gh=class extends u{constructor(e,t){super(e,t)}SUBJECT(){return this.getToken(s.SUBJECT,0)}usage(){return this.getRuleContext(0,_e)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_subjectUsage}enterRule(e){e.enterSubjectUsage&&e.enterSubjectUsage(this)}exitRule(e){e.exitSubjectUsage&&e.exitSubjectUsage(this)}accept(e){return e.visitSubjectUsage?e.visitSubjectUsage(this):e.visitChildren(this)}},Wh=class extends u{constructor(e,t){super(e,t)}requirementKind(){return this.getRuleContext(0,Kh)}requirementConstraintUsage(){return this.getRuleContext(0,zh)}memberPrefix(){return this.getRuleContext(0,re)}get ruleIndex(){return s.RULE_requirementConstraintMember}enterRule(e){e.enterRequirementConstraintMember&&e.enterRequirementConstraintMember(this)}exitRule(e){e.exitRequirementConstraintMember&&e.exitRequirementConstraintMember(this)}accept(e){return e.visitRequirementConstraintMember?e.visitRequirementConstraintMember(this):e.visitChildren(this)}},Kh=class extends u{constructor(e,t){super(e,t)}ASSUME(){return this.getToken(s.ASSUME,0)}REQUIRE(){return this.getToken(s.REQUIRE,0)}get ruleIndex(){return s.RULE_requirementKind}enterRule(e){e.enterRequirementKind&&e.enterRequirementKind(this)}exitRule(e){e.exitRequirementKind&&e.exitRequirementKind(this)}accept(e){return e.visitRequirementKind?e.visitRequirementKind(this):e.visitChildren(this)}},zh=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}requirementBody(){return this.getRuleContext(0,wt)}featureSpecializationPart(){return this.getRuleContext(0,dt)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}calculationBody(){return this.getRuleContext(0,Cr)}CONSTRAINT(){return this.getToken(s.CONSTRAINT,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_requirementConstraintUsage}enterRule(e){e.enterRequirementConstraintUsage&&e.enterRequirementConstraintUsage(this)}exitRule(e){e.exitRequirementConstraintUsage&&e.exitRequirementConstraintUsage(this)}accept(e){return e.visitRequirementConstraintUsage?e.visitRequirementConstraintUsage(this):e.visitChildren(this)}},Qh=class extends u{constructor(e,t){super(e,t)}FRAME(){return this.getToken(s.FRAME,0)}framedConcernUsage(){return this.getRuleContext(0,$h)}memberPrefix(){return this.getRuleContext(0,re)}get ruleIndex(){return s.RULE_framedConcernMember}enterRule(e){e.enterFramedConcernMember&&e.enterFramedConcernMember(this)}exitRule(e){e.exitFramedConcernMember&&e.exitFramedConcernMember(this)}accept(e){return e.visitFramedConcernMember?e.visitFramedConcernMember(this):e.visitChildren(this)}},$h=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}calculationBody(){return this.getRuleContext(0,Cr)}featureSpecializationPart(){return this.getRuleContext(0,dt)}calculationUsageDeclaration(){return this.getRuleContext(0,Fd)}CONCERN(){return this.getToken(s.CONCERN,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_framedConcernUsage}enterRule(e){e.enterFramedConcernUsage&&e.enterFramedConcernUsage(this)}exitRule(e){e.exitFramedConcernUsage&&e.exitFramedConcernUsage(this)}accept(e){return e.visitFramedConcernUsage?e.visitFramedConcernUsage(this):e.visitChildren(this)}},wo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}actorUsage(){return this.getRuleContext(0,Yh)}get ruleIndex(){return s.RULE_actorMember}enterRule(e){e.enterActorMember&&e.enterActorMember(this)}exitRule(e){e.exitActorMember&&e.exitActorMember(this)}accept(e){return e.visitActorMember?e.visitActorMember(this):e.visitChildren(this)}},Yh=class extends u{constructor(e,t){super(e,t)}ACTOR(){return this.getToken(s.ACTOR,0)}usage(){return this.getRuleContext(0,_e)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_actorUsage}enterRule(e){e.enterActorUsage&&e.enterActorUsage(this)}exitRule(e){e.exitActorUsage&&e.exitActorUsage(this)}accept(e){return e.visitActorUsage?e.visitActorUsage(this):e.visitChildren(this)}},Jh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}stakeholderUsage(){return this.getRuleContext(0,Xh)}get ruleIndex(){return s.RULE_stakeholderMember}enterRule(e){e.enterStakeholderMember&&e.enterStakeholderMember(this)}exitRule(e){e.exitStakeholderMember&&e.exitStakeholderMember(this)}accept(e){return e.visitStakeholderMember?e.visitStakeholderMember(this):e.visitChildren(this)}},Xh=class extends u{constructor(e,t){super(e,t)}STAKEHOLDER(){return this.getToken(s.STAKEHOLDER,0)}usage(){return this.getRuleContext(0,_e)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_stakeholderUsage}enterRule(e){e.enterStakeholderUsage&&e.enterStakeholderUsage(this)}exitRule(e){e.exitStakeholderUsage&&e.exitStakeholderUsage(this)}accept(e){return e.visitStakeholderUsage?e.visitStakeholderUsage(this):e.visitChildren(this)}},Zh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}REQUIREMENT(){return this.getToken(s.REQUIREMENT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}requirementBody(){return this.getRuleContext(0,wt)}get ruleIndex(){return s.RULE_requirementUsage}enterRule(e){e.enterRequirementUsage&&e.enterRequirementUsage(this)}exitRule(e){e.exitRequirementUsage&&e.exitRequirementUsage(this)}accept(e){return e.visitRequirementUsage?e.visitRequirementUsage(this):e.visitChildren(this)}},ed=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}SATISFY(){return this.getToken(s.SATISFY,0)}requirementBody(){return this.getRuleContext(0,wt)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}REQUIREMENT(){return this.getToken(s.REQUIREMENT,0)}ASSERT(){return this.getToken(s.ASSERT,0)}valuePart(){return this.getRuleContext(0,Te)}BY(){return this.getToken(s.BY,0)}satisfactionSubjectMember(){return this.getRuleContext(0,td)}featureSpecializationPart(){return this.getRuleContext(0,dt)}usageDeclaration(){return this.getRuleContext(0,de)}NOT(){return this.getToken(s.NOT,0)}get ruleIndex(){return s.RULE_satisfyRequirementUsage}enterRule(e){e.enterSatisfyRequirementUsage&&e.enterSatisfyRequirementUsage(this)}exitRule(e){e.exitSatisfyRequirementUsage&&e.exitSatisfyRequirementUsage(this)}accept(e){return e.visitSatisfyRequirementUsage?e.visitSatisfyRequirementUsage(this):e.visitChildren(this)}},td=class extends u{constructor(e,t){super(e,t)}satisfactionParameter(){return this.getRuleContext(0,rd)}get ruleIndex(){return s.RULE_satisfactionSubjectMember}enterRule(e){e.enterSatisfactionSubjectMember&&e.enterSatisfactionSubjectMember(this)}exitRule(e){e.exitSatisfactionSubjectMember&&e.exitSatisfactionSubjectMember(this)}accept(e){return e.visitSatisfactionSubjectMember?e.visitSatisfactionSubjectMember(this):e.visitChildren(this)}},rd=class extends u{constructor(e,t){super(e,t)}satisfactionFeatureValue(){return this.getRuleContext(0,id)}get ruleIndex(){return s.RULE_satisfactionParameter}enterRule(e){e.enterSatisfactionParameter&&e.enterSatisfactionParameter(this)}exitRule(e){e.exitSatisfactionParameter&&e.exitSatisfactionParameter(this)}accept(e){return e.visitSatisfactionParameter?e.visitSatisfactionParameter(this):e.visitChildren(this)}},id=class extends u{constructor(e,t){super(e,t)}satisfactionReferenceExpression(){return this.getRuleContext(0,nd)}get ruleIndex(){return s.RULE_satisfactionFeatureValue}enterRule(e){e.enterSatisfactionFeatureValue&&e.enterSatisfactionFeatureValue(this)}exitRule(e){e.exitSatisfactionFeatureValue&&e.exitSatisfactionFeatureValue(this)}accept(e){return e.visitSatisfactionFeatureValue?e.visitSatisfactionFeatureValue(this):e.visitChildren(this)}},nd=class extends u{constructor(e,t){super(e,t)}featureChainMember(){return this.getRuleContext(0,ji)}get ruleIndex(){return s.RULE_satisfactionReferenceExpression}enterRule(e){e.enterSatisfactionReferenceExpression&&e.enterSatisfactionReferenceExpression(this)}exitRule(e){e.exitSatisfactionReferenceExpression&&e.exitSatisfactionReferenceExpression(this)}accept(e){return e.visitSatisfactionReferenceExpression?e.visitSatisfactionReferenceExpression(this):e.visitChildren(this)}},sd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}CONCERN(){return this.getToken(s.CONCERN,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}requirementBody(){return this.getRuleContext(0,wt)}get ruleIndex(){return s.RULE_concernDefinition}enterRule(e){e.enterConcernDefinition&&e.enterConcernDefinition(this)}exitRule(e){e.exitConcernDefinition&&e.exitConcernDefinition(this)}accept(e){return e.visitConcernDefinition?e.visitConcernDefinition(this):e.visitChildren(this)}},ad=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}CONCERN(){return this.getToken(s.CONCERN,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}requirementBody(){return this.getRuleContext(0,wt)}get ruleIndex(){return s.RULE_concernUsage}enterRule(e){e.enterConcernUsage&&e.enterConcernUsage(this)}exitRule(e){e.exitConcernUsage&&e.exitConcernUsage(this)}accept(e){return e.visitConcernUsage?e.visitConcernUsage(this):e.visitChildren(this)}},od=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}CASE(){return this.getToken(s.CASE,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}caseBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_caseDefinition}enterRule(e){e.enterCaseDefinition&&e.enterCaseDefinition(this)}exitRule(e){e.exitCaseDefinition&&e.exitCaseDefinition(this)}accept(e){return e.visitCaseDefinition?e.visitCaseDefinition(this):e.visitChildren(this)}},ld=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}CASE(){return this.getToken(s.CASE,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}caseBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_caseUsage}enterRule(e){e.enterCaseUsage&&e.enterCaseUsage(this)}exitRule(e){e.exitCaseUsage&&e.exitCaseUsage(this)}accept(e){return e.visitCaseUsage?e.visitCaseUsage(this):e.visitChildren(this)}},Kt=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}caseBodyItem(e){return e===void 0?this.getRuleContexts(Do):this.getRuleContext(e,Do)}resultExpressionMember(){return this.getRuleContext(0,ns)}get ruleIndex(){return s.RULE_caseBody}enterRule(e){e.enterCaseBody&&e.enterCaseBody(this)}exitRule(e){e.exitCaseBody&&e.exitCaseBody(this)}accept(e){return e.visitCaseBody?e.visitCaseBody(this):e.visitChildren(this)}},Do=class extends u{constructor(e,t){super(e,t)}actionBodyItem(){return this.getRuleContext(0,st)}returnParameterMember(){return this.getRuleContext(0,Mo)}subjectMember(){return this.getRuleContext(0,Uo)}actorMember(){return this.getRuleContext(0,wo)}objectiveMember(){return this.getRuleContext(0,ud)}get ruleIndex(){return s.RULE_caseBodyItem}enterRule(e){e.enterCaseBodyItem&&e.enterCaseBodyItem(this)}exitRule(e){e.exitCaseBodyItem&&e.exitCaseBodyItem(this)}accept(e){return e.visitCaseBodyItem?e.visitCaseBodyItem(this):e.visitChildren(this)}},ud=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}OBJECTIVE(){return this.getToken(s.OBJECTIVE,0)}objectiveRequirementUsage(){return this.getRuleContext(0,cd)}get ruleIndex(){return s.RULE_objectiveMember}enterRule(e){e.enterObjectiveMember&&e.enterObjectiveMember(this)}exitRule(e){e.exitObjectiveMember&&e.exitObjectiveMember(this)}accept(e){return e.visitObjectiveMember?e.visitObjectiveMember(this):e.visitChildren(this)}},cd=class extends u{constructor(e,t){super(e,t)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}requirementBody(){return this.getRuleContext(0,wt)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_objectiveRequirementUsage}enterRule(e){e.enterObjectiveRequirementUsage&&e.enterObjectiveRequirementUsage(this)}exitRule(e){e.exitObjectiveRequirementUsage&&e.exitObjectiveRequirementUsage(this)}accept(e){return e.visitObjectiveRequirementUsage?e.visitObjectiveRequirementUsage(this):e.visitChildren(this)}},hd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}ANALYSIS(){return this.getToken(s.ANALYSIS,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}caseBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_analysisCaseDefinition}enterRule(e){e.enterAnalysisCaseDefinition&&e.enterAnalysisCaseDefinition(this)}exitRule(e){e.exitAnalysisCaseDefinition&&e.exitAnalysisCaseDefinition(this)}accept(e){return e.visitAnalysisCaseDefinition?e.visitAnalysisCaseDefinition(this):e.visitChildren(this)}},dd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}ANALYSIS(){return this.getToken(s.ANALYSIS,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}caseBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_analysisCaseUsage}enterRule(e){e.enterAnalysisCaseUsage&&e.enterAnalysisCaseUsage(this)}exitRule(e){e.exitAnalysisCaseUsage&&e.exitAnalysisCaseUsage(this)}accept(e){return e.visitAnalysisCaseUsage?e.visitAnalysisCaseUsage(this):e.visitChildren(this)}},pd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}VERIFICATION(){return this.getToken(s.VERIFICATION,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}caseBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_verificationCaseDefinition}enterRule(e){e.enterVerificationCaseDefinition&&e.enterVerificationCaseDefinition(this)}exitRule(e){e.exitVerificationCaseDefinition&&e.exitVerificationCaseDefinition(this)}accept(e){return e.visitVerificationCaseDefinition?e.visitVerificationCaseDefinition(this):e.visitChildren(this)}},fd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}VERIFICATION(){return this.getToken(s.VERIFICATION,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}caseBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_verificationCaseUsage}enterRule(e){e.enterVerificationCaseUsage&&e.enterVerificationCaseUsage(this)}exitRule(e){e.exitVerificationCaseUsage&&e.exitVerificationCaseUsage(this)}accept(e){return e.visitVerificationCaseUsage?e.visitVerificationCaseUsage(this):e.visitChildren(this)}},xd=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}VERIFY(){return this.getToken(s.VERIFY,0)}requirementVerificationUsage(){return this.getRuleContext(0,md)}get ruleIndex(){return s.RULE_requirementVerificationMember}enterRule(e){e.enterRequirementVerificationMember&&e.enterRequirementVerificationMember(this)}exitRule(e){e.exitRequirementVerificationMember&&e.exitRequirementVerificationMember(this)}accept(e){return e.visitRequirementVerificationMember?e.visitRequirementVerificationMember(this):e.visitChildren(this)}},md=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}requirementBody(){return this.getRuleContext(0,wt)}featureSpecialization(e){return e===void 0?this.getRuleContexts(ur):this.getRuleContext(e,ur)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}REQUIREMENT(){return this.getToken(s.REQUIREMENT,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_requirementVerificationUsage}enterRule(e){e.enterRequirementVerificationUsage&&e.enterRequirementVerificationUsage(this)}exitRule(e){e.exitRequirementVerificationUsage&&e.exitRequirementVerificationUsage(this)}accept(e){return e.visitRequirementVerificationUsage?e.visitRequirementVerificationUsage(this):e.visitChildren(this)}},bd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}USE(){return this.getToken(s.USE,0)}CASE(){return this.getToken(s.CASE,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}caseBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_useCaseDefinition}enterRule(e){e.enterUseCaseDefinition&&e.enterUseCaseDefinition(this)}exitRule(e){e.exitUseCaseDefinition&&e.exitUseCaseDefinition(this)}accept(e){return e.visitUseCaseDefinition?e.visitUseCaseDefinition(this):e.visitChildren(this)}},Rd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}USE(){return this.getToken(s.USE,0)}CASE(){return this.getToken(s.CASE,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}caseBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_useCaseUsage}enterRule(e){e.enterUseCaseUsage&&e.enterUseCaseUsage(this)}exitRule(e){e.exitUseCaseUsage&&e.exitUseCaseUsage(this)}accept(e){return e.visitUseCaseUsage?e.visitUseCaseUsage(this):e.visitChildren(this)}},gd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}INCLUDE(){return this.getToken(s.INCLUDE,0)}caseBody(){return this.getRuleContext(0,Kt)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}USE(){return this.getToken(s.USE,0)}CASE(){return this.getToken(s.CASE,0)}valuePart(){return this.getRuleContext(0,Te)}featureSpecializationPart(){return this.getRuleContext(0,dt)}usageDeclaration(){return this.getRuleContext(0,de)}get ruleIndex(){return s.RULE_includeUseCaseUsage}enterRule(e){e.enterIncludeUseCaseUsage&&e.enterIncludeUseCaseUsage(this)}exitRule(e){e.exitIncludeUseCaseUsage&&e.exitIncludeUseCaseUsage(this)}accept(e){return e.visitIncludeUseCaseUsage?e.visitIncludeUseCaseUsage(this):e.visitChildren(this)}},yd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}VIEW(){return this.getToken(s.VIEW,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}viewDefinitionBody(){return this.getRuleContext(0,Cd)}get ruleIndex(){return s.RULE_viewDefinition}enterRule(e){e.enterViewDefinition&&e.enterViewDefinition(this)}exitRule(e){e.exitViewDefinition&&e.exitViewDefinition(this)}accept(e){return e.visitViewDefinition?e.visitViewDefinition(this):e.visitChildren(this)}},Cd=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}viewDefinitionBodyItem(e){return e===void 0?this.getRuleContexts(Io):this.getRuleContext(e,Io)}get ruleIndex(){return s.RULE_viewDefinitionBody}enterRule(e){e.enterViewDefinitionBody&&e.enterViewDefinitionBody(this)}exitRule(e){e.exitViewDefinitionBody&&e.exitViewDefinitionBody(this)}accept(e){return e.visitViewDefinitionBody?e.visitViewDefinitionBody(this):e.visitChildren(this)}},Io=class extends u{constructor(e,t){super(e,t)}definitionBodyItem(){return this.getRuleContext(0,pi)}elementFilterMember(){return this.getRuleContext(0,as)}viewRenderingMember(){return this.getRuleContext(0,Oo)}get ruleIndex(){return s.RULE_viewDefinitionBodyItem}enterRule(e){e.enterViewDefinitionBodyItem&&e.enterViewDefinitionBodyItem(this)}exitRule(e){e.exitViewDefinitionBodyItem&&e.exitViewDefinitionBodyItem(this)}accept(e){return e.visitViewDefinitionBodyItem?e.visitViewDefinitionBodyItem(this):e.visitChildren(this)}},Oo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,re)}RENDER(){return this.getToken(s.RENDER,0)}viewRenderingUsage(){return this.getRuleContext(0,vd)}get ruleIndex(){return s.RULE_viewRenderingMember}enterRule(e){e.enterViewRenderingMember&&e.enterViewRenderingMember(this)}exitRule(e){e.exitViewRenderingMember&&e.exitViewRenderingMember(this)}accept(e){return e.visitViewRenderingMember?e.visitViewRenderingMember(this):e.visitChildren(this)}},vd=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,Xe)}usageBody(){return this.getRuleContext(0,Wt)}featureSpecializationPart(){return this.getRuleContext(0,dt)}usage(){return this.getRuleContext(0,_e)}RENDERING(){return this.getToken(s.RENDERING,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_viewRenderingUsage}enterRule(e){e.enterViewRenderingUsage&&e.enterViewRenderingUsage(this)}exitRule(e){e.exitViewRenderingUsage&&e.exitViewRenderingUsage(this)}accept(e){return e.visitViewRenderingUsage?e.visitViewRenderingUsage(this):e.visitChildren(this)}},ko=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}VIEW(){return this.getToken(s.VIEW,0)}viewBody(){return this.getRuleContext(0,Ed)}usageDeclaration(){return this.getRuleContext(0,de)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_viewUsage}enterRule(e){e.enterViewUsage&&e.enterViewUsage(this)}exitRule(e){e.exitViewUsage&&e.exitViewUsage(this)}accept(e){return e.visitViewUsage?e.visitViewUsage(this):e.visitChildren(this)}},Ed=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}viewBodyItem(e){return e===void 0?this.getRuleContexts(Fo):this.getRuleContext(e,Fo)}get ruleIndex(){return s.RULE_viewBody}enterRule(e){e.enterViewBody&&e.enterViewBody(this)}exitRule(e){e.exitViewBody&&e.exitViewBody(this)}accept(e){return e.visitViewBody?e.visitViewBody(this):e.visitChildren(this)}},Fo=class extends u{constructor(e,t){super(e,t)}definitionBodyItem(){return this.getRuleContext(0,pi)}elementFilterMember(){return this.getRuleContext(0,as)}viewRenderingMember(){return this.getRuleContext(0,Oo)}expose(){return this.getRuleContext(0,Ld)}get ruleIndex(){return s.RULE_viewBodyItem}enterRule(e){e.enterViewBodyItem&&e.enterViewBodyItem(this)}exitRule(e){e.exitViewBodyItem&&e.exitViewBodyItem(this)}accept(e){return e.visitViewBodyItem?e.visitViewBodyItem(this):e.visitChildren(this)}},Ld=class extends u{constructor(e,t){super(e,t)}EXPOSE(){return this.getToken(s.EXPOSE,0)}relationshipBody(){return this.getRuleContext(0,Je)}membershipExpose(){return this.getRuleContext(0,Sd)}namespaceExpose(){return this.getRuleContext(0,Pd)}get ruleIndex(){return s.RULE_expose}enterRule(e){e.enterExpose&&e.enterExpose(this)}exitRule(e){e.exitExpose&&e.exitExpose(this)}accept(e){return e.visitExpose?e.visitExpose(this):e.visitChildren(this)}},Sd=class extends u{constructor(e,t){super(e,t)}membershipImport(){return this.getRuleContext(0,Zn)}get ruleIndex(){return s.RULE_membershipExpose}enterRule(e){e.enterMembershipExpose&&e.enterMembershipExpose(this)}exitRule(e){e.exitMembershipExpose&&e.exitMembershipExpose(this)}accept(e){return e.visitMembershipExpose?e.visitMembershipExpose(this):e.visitChildren(this)}},Pd=class extends u{constructor(e,t){super(e,t)}namespaceImport(){return this.getRuleContext(0,ca)}get ruleIndex(){return s.RULE_namespaceExpose}enterRule(e){e.enterNamespaceExpose&&e.enterNamespaceExpose(this)}exitRule(e){e.exitNamespaceExpose&&e.exitNamespaceExpose(this)}accept(e){return e.visitNamespaceExpose?e.visitNamespaceExpose(this):e.visitChildren(this)}},Td=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}VIEWPOINT(){return this.getToken(s.VIEWPOINT,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,et)}requirementBody(){return this.getRuleContext(0,wt)}get ruleIndex(){return s.RULE_viewpointDefinition}enterRule(e){e.enterViewpointDefinition&&e.enterViewpointDefinition(this)}exitRule(e){e.exitViewpointDefinition&&e.exitViewpointDefinition(this)}accept(e){return e.visitViewpointDefinition?e.visitViewpointDefinition(this):e.visitChildren(this)}},Ad=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}VIEWPOINT(){return this.getToken(s.VIEWPOINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,Rt)}requirementBody(){return this.getRuleContext(0,wt)}get ruleIndex(){return s.RULE_viewpointUsage}enterRule(e){e.enterViewpointUsage&&e.enterViewpointUsage(this)}exitRule(e){e.exitViewpointUsage&&e.exitViewpointUsage(this)}accept(e){return e.visitViewpointUsage?e.visitViewpointUsage(this):e.visitChildren(this)}},Md=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,we)}RENDERING(){return this.getToken(s.RENDERING,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}get ruleIndex(){return s.RULE_renderingDefinition}enterRule(e){e.enterRenderingDefinition&&e.enterRenderingDefinition(this)}exitRule(e){e.exitRenderingDefinition&&e.exitRenderingDefinition(this)}accept(e){return e.visitRenderingDefinition?e.visitRenderingDefinition(this):e.visitChildren(this)}},Ho=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ne)}RENDERING(){return this.getToken(s.RENDERING,0)}usage(){return this.getRuleContext(0,_e)}get ruleIndex(){return s.RULE_renderingUsage}enterRule(e){e.enterRenderingUsage&&e.enterRenderingUsage(this)}exitRule(e){e.exitRenderingUsage&&e.exitRenderingUsage(this)}accept(e){return e.visitRenderingUsage?e.visitRenderingUsage(this):e.visitChildren(this)}},Nd=class extends u{constructor(e,t){super(e,t)}METADATA(){return this.getToken(s.METADATA,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(mt):this.getRuleContext(e,mt)}get ruleIndex(){return s.RULE_metadataDefinition}enterRule(e){e.enterMetadataDefinition&&e.enterMetadataDefinition(this)}exitRule(e){e.exitMetadataDefinition&&e.exitMetadataDefinition(this)}accept(e){return e.visitMetadataDefinition?e.visitMetadataDefinition(this):e.visitChildren(this)}},Bo=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Gt)}get ruleIndex(){return s.RULE_prefixMetadataUsage}enterRule(e){e.enterPrefixMetadataUsage&&e.enterPrefixMetadataUsage(this)}exitRule(e){e.exitPrefixMetadataUsage&&e.exitPrefixMetadataUsage(this)}accept(e){return e.visitPrefixMetadataUsage?e.visitPrefixMetadataUsage(this):e.visitChildren(this)}},e4=class extends u{constructor(e,t){super(e,t)}metadataUsageDeclaration(){return this.getRuleContext(0,Ud)}metadataBody(){return this.getRuleContext(0,Ki)}AT_SIGN(){return this.getToken(s.AT_SIGN,0)}METADATA(){return this.getToken(s.METADATA,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}ABOUT(){return this.getToken(s.ABOUT,0)}annotation(e){return e===void 0?this.getRuleContexts(Ir):this.getRuleContext(e,Ir)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_metadataUsage}enterRule(e){e.enterMetadataUsage&&e.enterMetadataUsage(this)}exitRule(e){e.exitMetadataUsage&&e.exitMetadataUsage(this)}accept(e){return e.visitMetadataUsage?e.visitMetadataUsage(this):e.visitChildren(this)}},Ud=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Gt)}COLON(){return this.getToken(s.COLON,0)}TYPED(){return this.getToken(s.TYPED,0)}BY(){return this.getToken(s.BY,0)}identification(){return this.getRuleContext(0,me)}get ruleIndex(){return s.RULE_metadataUsageDeclaration}enterRule(e){e.enterMetadataUsageDeclaration&&e.enterMetadataUsageDeclaration(this)}exitRule(e){e.exitMetadataUsageDeclaration&&e.exitMetadataUsageDeclaration(this)}accept(e){return e.visitMetadataUsageDeclaration?e.visitMetadataUsageDeclaration(this):e.visitChildren(this)}},_o=class extends u{constructor(e,t){super(e,t)}metadataBodyUsage(){return this.getRuleContext(0,wd)}get ruleIndex(){return s.RULE_metadataBodyUsageMember}enterRule(e){e.enterMetadataBodyUsageMember&&e.enterMetadataBodyUsageMember(this)}exitRule(e){e.exitMetadataBodyUsageMember&&e.exitMetadataBodyUsageMember(this)}accept(e){return e.visitMetadataBodyUsageMember?e.visitMetadataBodyUsageMember(this):e.visitChildren(this)}},wd=class extends u{constructor(e,t){super(e,t)}ownedRedefinition(){return this.getRuleContext(0,ci)}metadataBody(){return this.getRuleContext(0,Ki)}REF(){return this.getToken(s.REF,0)}featureSpecializationPart(){return this.getRuleContext(0,dt)}valuePart(){return this.getRuleContext(0,Te)}COLON_GT_GT(){return this.getToken(s.COLON_GT_GT,0)}REDEFINES(){return this.getToken(s.REDEFINES,0)}get ruleIndex(){return s.RULE_metadataBodyUsage}enterRule(e){e.enterMetadataBodyUsage&&e.enterMetadataBodyUsage(this)}exitRule(e){e.exitMetadataBodyUsage&&e.exitMetadataBodyUsage(this)}accept(e){return e.visitMetadataBodyUsage?e.visitMetadataBodyUsage(this):e.visitChildren(this)}},Dd=class extends u{constructor(e,t){super(e,t)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,bt)}basicDefinitionPrefix(){return this.getRuleContext(0,Qi)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(mt):this.getRuleContext(e,mt)}get ruleIndex(){return s.RULE_extendedDefinition}enterRule(e){e.enterExtendedDefinition&&e.enterExtendedDefinition(this)}exitRule(e){e.exitExtendedDefinition&&e.exitExtendedDefinition(this)}accept(e){return e.visitExtendedDefinition?e.visitExtendedDefinition(this):e.visitChildren(this)}},Id=class extends u{constructor(e,t){super(e,t)}unextendedUsagePrefix(){return this.getRuleContext(0,Wa)}usage(){return this.getRuleContext(0,_e)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(le):this.getRuleContext(e,le)}get ruleIndex(){return s.RULE_extendedUsage}enterRule(e){e.enterExtendedUsage&&e.enterExtendedUsage(this)}exitRule(e){e.exitExtendedUsage&&e.exitExtendedUsage(this)}accept(e){return e.visitExtendedUsage?e.visitExtendedUsage(this):e.visitChildren(this)}},Od=class extends u{constructor(e,t){super(e,t)}membershipImport(){return this.getRuleContext(0,Zn)}namespaceImportDirect(){return this.getRuleContext(0,kd)}get ruleIndex(){return s.RULE_filterPackageImportDeclaration}enterRule(e){e.enterFilterPackageImportDeclaration&&e.enterFilterPackageImportDeclaration(this)}exitRule(e){e.exitFilterPackageImportDeclaration&&e.exitFilterPackageImportDeclaration(this)}accept(e){return e.visitFilterPackageImportDeclaration?e.visitFilterPackageImportDeclaration(this):e.visitChildren(this)}},kd=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,F)}COLON_COLON(e){return e===void 0?this.getTokens(s.COLON_COLON):this.getToken(s.COLON_COLON,e)}STAR(){return this.getToken(s.STAR,0)}STAR_STAR(){return this.getToken(s.STAR_STAR,0)}get ruleIndex(){return s.RULE_namespaceImportDirect}enterRule(e){e.enterNamespaceImportDirect&&e.enterNamespaceImportDirect(this)}exitRule(e){e.exitNamespaceImportDirect&&e.exitNamespaceImportDirect(this)}accept(e){return e.visitNamespaceImportDirect?e.visitNamespaceImportDirect(this):e.visitChildren(this)}},Fd=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,de)}valuePart(){return this.getRuleContext(0,Te)}get ruleIndex(){return s.RULE_calculationUsageDeclaration}enterRule(e){e.enterCalculationUsageDeclaration&&e.enterCalculationUsageDeclaration(this)}exitRule(e){e.exitCalculationUsageDeclaration&&e.exitCalculationUsageDeclaration(this)}accept(e){return e.visitCalculationUsageDeclaration?e.visitCalculationUsageDeclaration(this):e.visitChildren(this)}},Vo=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_emptyActionUsage}enterRule(e){e.enterEmptyActionUsage&&e.enterEmptyActionUsage(this)}exitRule(e){e.exitEmptyActionUsage&&e.exitEmptyActionUsage(this)}accept(e){return e.visitEmptyActionUsage?e.visitEmptyActionUsage(this):e.visitChildren(this)}},qo=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_emptyFeature}enterRule(e){e.enterEmptyFeature&&e.enterEmptyFeature(this)}exitRule(e){e.exitEmptyFeature&&e.exitEmptyFeature(this)}accept(e){return e.visitEmptyFeature?e.visitEmptyFeature(this):e.visitChildren(this)}},Hd=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_emptyMultiplicity}enterRule(e){e.enterEmptyMultiplicity&&e.enterEmptyMultiplicity(this)}exitRule(e){e.exitEmptyMultiplicity&&e.exitEmptyMultiplicity(this)}accept(e){return e.visitEmptyMultiplicity?e.visitEmptyMultiplicity(this):e.visitChildren(this)}},Bd=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_emptyUsage}enterRule(e){e.enterEmptyUsage&&e.enterEmptyUsage(this)}exitRule(e){e.exitEmptyUsage&&e.exitEmptyUsage(this)}accept(e){return e.visitEmptyUsage?e.visitEmptyUsage(this):e.visitChildren(this)}},_d=class extends u{constructor(e,t){super(e,t)}IDENTIFIER(){return this.getToken(s.IDENTIFIER,0)}get ruleIndex(){return s.RULE_filterPackageImport}enterRule(e){e.enterFilterPackageImport&&e.enterFilterPackageImport(this)}exitRule(e){e.exitFilterPackageImport&&e.exitFilterPackageImport(this)}accept(e){return e.visitFilterPackageImport?e.visitFilterPackageImport(this):e.visitChildren(this)}},Vd=class extends u{constructor(e,t){super(e,t)}IDENTIFIER(){return this.getToken(s.IDENTIFIER,0)}get ruleIndex(){return s.RULE_nonFeatureChainPrimaryExpression}enterRule(e){e.enterNonFeatureChainPrimaryExpression&&e.enterNonFeatureChainPrimaryExpression(this)}exitRule(e){e.exitNonFeatureChainPrimaryExpression&&e.exitNonFeatureChainPrimaryExpression(this)}accept(e){return e.visitNonFeatureChainPrimaryExpression?e.visitNonFeatureChainPrimaryExpression(this):e.visitChildren(this)}},qd=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_portConjugation}enterRule(e){e.enterPortConjugation&&e.enterPortConjugation(this)}exitRule(e){e.exitPortConjugation&&e.exitPortConjugation(this)}accept(e){return e.visitPortConjugation?e.visitPortConjugation(this):e.visitChildren(this)}};var jd=class extends Wn{errors=[];syntaxError(e,t,i,n,a,o){let l=t,d=l?.text?.length??1;this.errors.push({line:i-1,column:n,message:a,offendingSymbol:l,length:d})}getErrors(){return this.errors}hasErrors(){return this.errors.length>0}};function BR(r){let e=Date.now(),t=Gn.fromString(r),i=new Fu(t),n=new Ou(i);n.fill();let a=Date.now()-e,o=Date.now(),l=new s(n);l.removeErrorListeners(),l.interpreter.predictionMode=Ke.SLL,l.errorHandler=new A3;let d=null,f="SLL";try{d=l.rootNamespace();let D=Date.now()-o;return{tree:d,tokenStream:n,parser:l,lexer:i,errors:[],mode:f,timing:{lexMs:a,parseMs:D}}}catch{}f="LL";let b=Date.now();n.seek(0),l.reset(),l.interpreter.predictionMode=Ke.LL,l.errorHandler=new ku;let E=new jd;i.removeErrorListeners(),l.removeErrorListeners(),l.addErrorListener(E);try{d=l.rootNamespace()}catch{}let A=Date.now()-b;return{tree:d,tokenStream:n,parser:l,lexer:i,errors:E.getErrors(),mode:f,timing:{lexMs:a,parseMs:A}}}var Gd=class{cache=new Map;documents;setDocuments(e){this.documents=e}parse(e){let t=e.uri,i=e.version,n=this.cache.get(t);if(n&&n.version===i)return n.result;let a=e.getText(),o=BR(a);return this.cache.set(t,{version:i,text:a,result:o}),o}get(e){let t=this.cache.get(e);if(t)return t.result;if(this.documents){let i=this.documents.get(e);if(i)return this.parse(i)}}getText(e){let t=this.cache.get(e);if(t)return t.text;if(this.documents){let i=this.documents.get(e);if(i)return i.getText()}}remove(e){this.cache.delete(e)}getUris(){return Array.from(this.cache.keys())}};var H=yt(pt(),1),M7=[{label:"part def",kind:H.CompletionItemKind.Class,detail:"Part definition",documentation:"Defines a type of part that can be instantiated",insertText:`part def \${1:Name} {
50
+ $0
51
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"action def",kind:H.CompletionItemKind.Function,detail:"Action definition",documentation:"Defines a type of action/behavior",insertText:`action def \${1:Name} {
52
+ $0
53
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"state def",kind:H.CompletionItemKind.Enum,detail:"State definition",documentation:"Defines a state machine",insertText:`state def \${1:Name} {
54
+ $0
55
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"requirement def",kind:H.CompletionItemKind.Interface,detail:"Requirement definition",documentation:"Defines a type of requirement",insertText:`requirement def \${1:Name} {
56
+ doc /* \${2:description} */
57
+ $0
58
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"constraint def",kind:H.CompletionItemKind.Constant,detail:"Constraint definition",documentation:"Defines a reusable constraint",insertText:`constraint def \${1:Name} {
59
+ $0
60
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"attribute def",kind:H.CompletionItemKind.Property,detail:"Attribute definition",documentation:"Defines a type of attribute/value",insertText:`attribute def \${1:Name} {
61
+ $0
62
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"item def",kind:H.CompletionItemKind.Class,detail:"Item definition",documentation:"Defines a type of item that can flow",insertText:`item def \${1:Name} {
63
+ $0
64
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"port def",kind:H.CompletionItemKind.Interface,detail:"Port definition",documentation:"Defines a type of port for connections",insertText:`port def \${1:Name} {
65
+ $0
66
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"interface def",kind:H.CompletionItemKind.Interface,detail:"Interface definition",documentation:"Defines an interface contract",insertText:`interface def \${1:Name} {
67
+ $0
68
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"connection def",kind:H.CompletionItemKind.Interface,detail:"Connection definition",documentation:"Defines a type of connection",insertText:`connection def \${1:Name} {
69
+ $0
70
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"allocation def",kind:H.CompletionItemKind.Interface,detail:"Allocation definition",documentation:"Defines a type of allocation",insertText:`allocation def \${1:Name} {
71
+ $0
72
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"use case def",kind:H.CompletionItemKind.Event,detail:"Use case definition",documentation:"Defines a use case",insertText:`use case def \${1:Name} {
73
+ $0
74
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"view def",kind:H.CompletionItemKind.Struct,detail:"View definition",documentation:"Defines a view of the model",insertText:`view def \${1:Name} {
75
+ $0
76
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"viewpoint def",kind:H.CompletionItemKind.Struct,detail:"Viewpoint definition",documentation:"Defines a viewpoint for stakeholders",insertText:`viewpoint def \${1:Name} {
77
+ $0
78
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"enum def",kind:H.CompletionItemKind.Enum,detail:"Enumeration definition",documentation:"Defines an enumeration type",insertText:"enum def ${1:Name} {\n ${2:value1};\n ${3:value2};\n}",insertTextFormat:H.InsertTextFormat.Snippet},{label:"calc def",kind:H.CompletionItemKind.Function,detail:"Calculation definition",documentation:"Defines a calculation/function",insertText:`calc def \${1:Name} {
79
+ $0
80
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"metadata def",kind:H.CompletionItemKind.TypeParameter,detail:"Metadata definition",documentation:"Defines custom metadata/stereotypes",insertText:`metadata def \${1:Name} {
81
+ $0
82
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"part",kind:H.CompletionItemKind.Variable,detail:"Part usage",documentation:"Creates a part instance",insertText:"part ${1:name} : ${2:Type};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"action",kind:H.CompletionItemKind.Function,detail:"Action usage",documentation:"Creates an action/behavior instance",insertText:`action \${1:name} {
83
+ $0
84
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"state",kind:H.CompletionItemKind.Enum,detail:"State usage",documentation:"Creates a state instance",insertText:`state \${1:name} {
85
+ $0
86
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"attribute",kind:H.CompletionItemKind.Property,detail:"Attribute usage",documentation:"Creates an attribute/value",insertText:"attribute ${1:name} : ${2:Type};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"port",kind:H.CompletionItemKind.Interface,detail:"Port usage",documentation:"Creates a port",insertText:"port ${1:name} : ${2:PortType};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"item",kind:H.CompletionItemKind.Variable,detail:"Item usage",documentation:"Creates an item instance",insertText:"item ${1:name} : ${2:Type};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"requirement",kind:H.CompletionItemKind.Interface,detail:"Requirement usage",documentation:"Creates a requirement instance",insertText:`requirement \${1:name} {
87
+ $0
88
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"connection",kind:H.CompletionItemKind.Reference,detail:"Connection usage",documentation:"Creates a connection between parts",insertText:"connection ${1:name} connect ${2:source} to ${3:target};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"ref",kind:H.CompletionItemKind.Reference,detail:"Reference usage",documentation:"Creates a reference to another element",insertText:"ref ${1:name} : ${2:Type};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"package",kind:H.CompletionItemKind.Module,detail:"Package",documentation:"Creates a namespace container",insertText:`package \${1:Name} {
89
+ $0
90
+ }`,insertTextFormat:H.InsertTextFormat.Snippet},{label:"import",kind:H.CompletionItemKind.Module,detail:"Import",documentation:"Imports elements from another namespace",insertText:"import ${1:namespace}::*;",insertTextFormat:H.InsertTextFormat.Snippet},{label:"alias",kind:H.CompletionItemKind.Reference,detail:"Alias",documentation:"Creates an alias for an element",insertText:"alias ${1:newName} for ${2:existingElement};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"connect",kind:H.CompletionItemKind.Operator,detail:"Connection",documentation:"Connects two endpoints",insertText:"connect ${1:source} to ${2:target};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"bind",kind:H.CompletionItemKind.Operator,detail:"Binding",documentation:"Binds two features together",insertText:"bind ${1:source} = ${2:target};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"flow",kind:H.CompletionItemKind.Operator,detail:"Flow",documentation:"Defines item flow between parts",insertText:"flow of ${1:ItemType} from ${2:source} to ${3:target};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"satisfy",kind:H.CompletionItemKind.Operator,detail:"Satisfaction",documentation:"Indicates requirement satisfaction",insertText:"satisfy ${1:requirement} by ${2:element};",insertTextFormat:H.InsertTextFormat.Snippet},{label:"abstract",kind:H.CompletionItemKind.Keyword,detail:"Abstract modifier",documentation:"Makes element abstract"},{label:"readonly",kind:H.CompletionItemKind.Keyword,detail:"Readonly modifier",documentation:"Makes attribute readonly"},{label:"derived",kind:H.CompletionItemKind.Keyword,detail:"Derived modifier",documentation:"Indicates value is derived/calculated"},{label:"in",kind:H.CompletionItemKind.Keyword,detail:"Input direction",documentation:"Port/parameter receives input"},{label:"out",kind:H.CompletionItemKind.Keyword,detail:"Output direction",documentation:"Port/parameter provides output"},{label:"inout",kind:H.CompletionItemKind.Keyword,detail:"Bidirectional direction",documentation:"Port/parameter is bidirectional"},{label:"doc",kind:H.CompletionItemKind.Text,detail:"Documentation",documentation:"Creates a documentation comment",insertText:"doc /* ${1:description} */",insertTextFormat:H.InsertTextFormat.Snippet},{label:"comment",kind:H.CompletionItemKind.Text,detail:"Comment",documentation:"Creates a comment element",insertText:"comment /* ${1:text} */",insertTextFormat:H.InsertTextFormat.Snippet}],Wd=class{constructor(e){this.documentManager=e}provideCompletions(e){let t=[];for(let i of M7){let n={label:i.label,kind:i.kind,detail:i.detail,documentation:i.documentation,data:i.label};i.insertText&&(n.insertText=i.insertText,n.insertTextFormat=i.insertTextFormat),t.push(n)}return t}resolveCompletion(e){return e}};var jR=yt(pt(),1);function Br(r){return r.endsWith(" def")}function _R(r){return!Br(r)&&r!=="package"&&r!=="import"&&r!=="comment"&&r!=="doc"&&r!=="alias"&&r!=="unknown"}var jo=class{constructor(e,t=null){this.id=e;this.parent=t}symbols=new Map;define(e){this.symbols.set(e.name,e)}lookupLocal(e){return this.symbols.get(e)}resolve(e){let t=this.symbols.get(e);return t||this.parent?.resolve(e)}resolveQualified(e){let t=e.split("::");if(t.length===1)return this.resolve(t[0]);let i=this.resolve(t[0]);if(i)return i}getLocalSymbols(){return Array.from(this.symbols.values())}getAllVisibleSymbols(){let e=new Map,t=this;for(;t;){for(let[i,n]of t.symbols)e.has(i)||e.set(i,n);t=t.parent}return Array.from(e.values())}};function N7(r){return{line:(r.line??1)-1,character:r.column??0}}function VR(r){let e=N7(r),t=r.text?.length??1;return{start:e,end:{line:e.line,character:e.character+t}}}function qR(r){let e=r.start,t=r.stop??r.start;if(!e)return{start:{line:0,character:0},end:{line:0,character:0}};let i={line:(e.line??1)-1,character:e.column??0},n=t?{line:(t.line??1)-1,character:(t.column??0)+(t.text?.length??1)}:{line:i.line,character:i.character+1};return{start:i,end:n}}var ge=class r{symbols=new Map;symbolsByUri=new Map;globalScope;constructor(){this.globalScope=new jo("__global__")}build(e,t){this.clearUri(e),t.tree&&this.walkTree(t.tree,e,this.globalScope,"")}getSymbol(e){return this.symbols.get(e)}findByName(e){let t=[];for(let i of this.symbols.values())i.name===e&&t.push(i);return t}resolveAt(e,t,i,n){let a=this.findSymbolAtPosition(e,t,i);if(a)return a;let o=r.getWordAtPosition(n,t,i);if(!o)return;let l=this.findByName(o);return l.length>0?l[0]:void 0}static getWordAtPosition(e,t,i){let n=e.split(`
91
+ `);if(t>=n.length)return;let a=n[t];if(i>=a.length)return;let o=/'([^']+)'/g,l;for(;(l=o.exec(a))!==null;){let b=l.index,E=b+l[0].length;if(i>=b&&i<E)return l[1]}let d=/[a-zA-Z_]\w*/g,f;for(;(f=d.exec(a))!==null;){let b=f.index,E=b+f[0].length;if(i>=b&&i<=E)return f[0]}}getSymbolsForUri(e){return this.symbolsByUri.get(e)??[]}getAllSymbols(){return Array.from(this.symbols.values())}getGlobalScope(){return this.globalScope}findSymbolAtPosition(e,t,i){let n=this.getSymbolsForUri(e),a,o=1/0;for(let l of n){let d=l.selectionRange;if(t>=d.start.line&&t<=d.end.line&&(t>d.start.line||i>=d.start.character)&&(t<d.end.line||i<=d.end.character)){let f=(d.end.line-d.start.line)*1e4+(d.end.character-d.start.character);f<o&&(a=l,o=f)}}return a}findReferences(e){return this.findByName(e)}clearUri(e){let t=this.symbolsByUri.get(e);if(t)for(let i of t)this.symbols.delete(i.qualifiedName);this.symbolsByUri.set(e,[])}static COMPOUND_RULES=new Set(["PerformActionUsage","SatisfyRequirementUsage","AssertConstraintUsage"]);walkTree(e,t,i,n,a=!1){let o=this.getRuleName(e);if(a&&this.inferKind(o,e)!==void 0){for(let E=0;E<e.getChildCount();E++){let A=e.getChild(E);A instanceof u&&this.walkTree(A,t,i,n,!1)}return}let l=this.tryExtractSymbol(e,t,o,n),d=i;l&&(this.registerSymbol(l,t,i),d=new jo(l.qualifiedName,i));let f=r.COMPOUND_RULES.has(o);for(let b=0;b<e.getChildCount();b++){let E=e.getChild(b);E instanceof u&&this.walkTree(E,t,d,l?.qualifiedName??n,f&&l!==void 0)}}registerSymbol(e,t,i){let n=this.symbols.get(e.qualifiedName);if(n&&n.uri===t&&n.range.start.line===e.range.start.line)return;let a=e.qualifiedName.split("::");if(a.length>=3){let l=Math.floor(a.length/2);for(let d=1;d<=l;d++){let f=a.slice(-d).join("::"),b=a.slice(-2*d,-d).join("::");if(f===b)return}}this.symbols.set(e.qualifiedName,e);let o=this.symbolsByUri.get(t)??[];o.push(e),this.symbolsByUri.set(t,o),i.define(e)}getRuleName(e){let t=e.constructor.name;return t.endsWith("Context")?t.slice(0,-7):t}tryExtractSymbol(e,t,i,n){let a=this.inferKind(i,e);if(a===void 0)return;let o=this.extractName(e);if(!o)return;let l=n?`${n}::${o}`:o,d=qR(e),f=this.extractNameRange(e)??d,b=this.extractTypeName(e),E=this.extractDocumentation(e);return{name:o,kind:a,qualifiedName:l,range:d,selectionRange:f,uri:t,typeName:b,documentation:E,parentQualifiedName:n||void 0,children:[]}}inferKind(e,t){let i=r.RULE_KIND_MAP.get(e);if(i!==void 0)return i;let n=e.toLowerCase();if(n.includes("partdefinition"))return"part def";if(n.includes("attributedefinition"))return"attribute def";if(n.includes("portdefinition"))return"port def";if(n.includes("connectiondefinition"))return"connection def";if(n.includes("interfacedefinition"))return"interface def";if(n.includes("actiondefinition"))return"action def";if(n.includes("statedefinition"))return"state def";if(n.includes("requirementdefinition"))return"requirement def";if(n.includes("constraintdefinition"))return"constraint def";if(n.includes("itemdefinition"))return"item def";if(n.includes("allocationdefinition"))return"allocation def";if(n.includes("usecasedefinition"))return"use case def";if(n.includes("enumerationdefinition"))return"enum def";if(n.includes("calculationdefinition")||n.includes("calcdefinition"))return"calc def";if(n.includes("viewdefinition"))return"view def";if(n.includes("viewpointdefinition"))return"viewpoint def";if(n.includes("metadatadefinition"))return"metadata def";if(n.includes("renderingdefinition"))return"rendering def";if(n.includes("analysiscasedefinition"))return"analysis case def";if(n.includes("verificationcasedefinition"))return"verification case def";if(n.includes("performactionusage"))return"action";if(n.includes("partusage"))return"part";if(n.includes("attributeusage"))return"attribute";if(n.includes("portusage"))return"port";if(n.includes("connectionusage"))return"connection";if(n.includes("interfaceusage"))return"interface";if(n.includes("actionusage"))return"action";if(n.includes("stateusage"))return"state";if(n.includes("requirementusage"))return"requirement";if(n.includes("constraintusage"))return"constraint";if(n.includes("itemusage"))return"item";if(n.includes("allocationusage"))return"allocation";if(n.includes("usecaseusage"))return"use case";if(n.includes("viewusage"))return"view";if(n.includes("viewpointusage"))return"viewpoint";if(n.includes("concernusage"))return"constraint";if(n.includes("portionusage"))return"part";if(n.includes("satisfyrequirementusage"))return"requirement";if(n.includes("assertconstraintusage"))return"constraint"}static RULE_KIND_MAP=new Map([["Package","package"],["PackageDeclaration","package"],["LibraryPackage","package"],["PartDefinition","part def"],["AttributeDefinition","attribute def"],["PortDefinition","port def"],["ConnectionDefinition","connection def"],["InterfaceDefinition","interface def"],["ActionDefinition","action def"],["StateDefinition","state def"],["RequirementDefinition","requirement def"],["ConstraintDefinition","constraint def"],["ItemDefinition","item def"],["AllocationDefinition","allocation def"],["UseCaseDefinition","use case def"],["EnumerationDefinition","enum def"],["CalculationDefinition","calc def"],["ViewDefinition","view def"],["ViewpointDefinition","viewpoint def"],["MetadataDefinition","metadata def"],["RenderingDefinition","rendering def"],["AnalysisCaseDefinition","analysis case def"],["VerificationCaseDefinition","verification case def"],["PartUsage","part"],["AttributeUsage","attribute"],["PortUsage","port"],["ConnectionUsage","connection"],["InterfaceUsage","interface"],["ActionUsage","action"],["StateUsage","state"],["RequirementUsage","requirement"],["ConstraintUsage","constraint"],["ItemUsage","item"],["AllocationUsage","allocation"],["UseCaseUsage","use case"],["EnumerationUsage","enum"],["CalcUsage","calc"],["ViewUsage","view"],["ViewpointUsage","viewpoint"],["PerformActionUsage","action"],["SatisfyRequirementUsage","requirement"],["AssertConstraintUsage","constraint"],["ConcernUsage","constraint"],["PortionUsage","part"]]);extractName(e){for(let t=0;t<e.getChildCount();t++){let i=e.getChild(t);if(i instanceof ct){let n=i.symbol;if(this.isIdentifierToken(n))return this.getTokenName(n)}if(i instanceof u){let n=this.getRuleName(i);if(n.toLowerCase().includes("identification")||n.toLowerCase().includes("declarationname")||n.toLowerCase().includes("qualifiedname")||n.toLowerCase()==="name"){let a=this.extractNameFromSubtree(i);if(a)return a}}}for(let t=0;t<Math.min(e.getChildCount(),5);t++){let i=e.getChild(t);if(i instanceof u){let n=this.extractName(i);if(n)return n}}}extractNameRange(e){for(let t=0;t<e.getChildCount();t++){let i=e.getChild(t);if(i instanceof ct&&this.isIdentifierToken(i.symbol)){let n=VR(i.symbol),a=i.symbol.text;return a&&a.startsWith("'")&&a.endsWith("'")?{start:{line:n.start.line,character:n.start.character+1},end:{line:n.end.line,character:n.end.character-1}}:n}if(i instanceof u){let n=this.extractNameRange(i);if(n)return n}}}extractTypeName(e){return e.getText().match(/[:>]+\s*([A-Za-z_][\w:]*)/)?.[1]}extractDocumentation(e){for(let t=0;t<e.getChildCount();t++){let i=e.getChild(t);if(i instanceof u){let n=this.getRuleName(i).toLowerCase();if(n.includes("comment")||n.includes("doc")||n.includes("documentation"))return this.extractTextFromSubtree(i)}}}isIdentifierToken(e){let t=e.text;return t?t.startsWith("'")&&t.endsWith("'")&&t.length>2?!0:/^[a-zA-Z_]/.test(t)&&!this.isKeyword(t):!1}getTokenName(e){let t=e.text;if(t)return t.startsWith("'")&&t.endsWith("'")&&t.length>2?t.slice(1,-1):t}isKeyword(e){return new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","and","as","assert","assign","assume","attribute","bind","binding","bool","by","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","false","feature","filter","first","flow","for","fork","frame","from","hastype","if","implies","import","in","include","individual","inout","interface","istype","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","or","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","true","type","use","variant","variation","verification","verify","view","viewpoint","when","while","xor"]).has(e)}extractNameFromSubtree(e){let t=[];for(let i=0;i<e.getChildCount();i++){let n=e.getChild(i);if(n instanceof ct){if(this.isIdentifierToken(n.symbol)){let a=this.getTokenName(n.symbol);a&&t.push(a)}}else if(n instanceof u){let a=this.extractNameFromSubtree(n);a&&t.push(a)}}return t.length>0?t.join("::"):void 0}extractTextFromSubtree(e){let t=[];for(let i=0;i<e.getChildCount();i++){let n=e.getChild(i);if(n instanceof ct){if(n.symbol.text&&this.isIdentifierToken(n.symbol)){let o=this.getTokenName(n.symbol);o&&t.push(o)}}else if(n instanceof u){let a=this.extractTextFromSubtree(n);a&&t.push(a)}}return t.length>0?t.join("::"):void 0}};var Kd=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideHover(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return null;let i=this.documentManager.getText(e.textDocument.uri);if(!i)return null;this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);if(!n)return null;let a=[],o=n.kind;return a.push(`**${o}** \`${n.name}\``),n.qualifiedName!==n.name&&a.push(`
92
+ Fully qualified: \`${n.qualifiedName}\``),n.typeName&&a.push(`
93
+ Type: \`${n.typeName}\``),n.documentation&&a.push(`
94
+ ---
95
+ ${n.documentation}`),{contents:{kind:jR.MarkupKind.Markdown,value:a.join(`
96
+ `)},range:n.selectionRange}}};var zd=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideDefinition(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return null;let i=this.documentManager.getText(e.textDocument.uri);if(!i)return null;this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.findSymbolAtPosition(e.textDocument.uri,e.position.line,e.position.character);if(n){if(n.typeName){let o=this.symbolTable.findByName(n.typeName);if(o.length>0)return{uri:o[0].uri,range:o[0].selectionRange}}return{uri:n.uri,range:n.selectionRange}}let a=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);return a?{uri:a.uri,range:a.selectionRange}:null}};var Qd=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideReferences(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return[];let i=this.documentManager.getText(e.textDocument.uri);if(!i)return[];this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);if(!n)return[];let a=this.symbolTable.findReferences(n.name),o=[];for(let l of a)o.push({uri:l.uri,range:l.selectionRange});return e.context.includeDeclaration,o}};var tt=yt(pt(),1);var $d=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideDocumentSymbols(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return[];this.symbolTable.build(e.textDocument.uri,t);let i=this.symbolTable.getSymbolsForUri(e.textDocument.uri);return this.buildHierarchy(i)}buildHierarchy(e){let t=[],i=new Map,n=new Map;for(let o of e)if(i.set(o.qualifiedName,o),!o.parentQualifiedName)t.push(o);else{let l=n.get(o.parentQualifiedName)??[];l.push(o),n.set(o.parentQualifiedName,l)}let a=o=>{let l=n.get(o.qualifiedName)??[];return{name:o.name,detail:o.kind,kind:this.getSymbolKind(o.kind),range:o.range,selectionRange:o.selectionRange,children:l.map(a)}};return t.map(a)}getSymbolKind(e){switch(e){case"package":return tt.SymbolKind.Package;case"part def":case"part":return tt.SymbolKind.Class;case"attribute def":case"attribute":return tt.SymbolKind.Property;case"port def":case"port":return tt.SymbolKind.Interface;case"action def":case"action":return tt.SymbolKind.Method;case"state def":case"state":return tt.SymbolKind.Enum;case"requirement def":case"requirement":return tt.SymbolKind.Object;case"constraint def":case"constraint":return tt.SymbolKind.Constant;case"connection def":case"connection":case"interface def":case"interface":return tt.SymbolKind.Interface;case"item def":case"item":return tt.SymbolKind.Struct;case"enum def":case"enum":return tt.SymbolKind.Enum;case"calc def":case"calc":return tt.SymbolKind.Function;case"use case def":case"use case":return tt.SymbolKind.Event;case"view def":case"view":case"viewpoint def":case"viewpoint":return tt.SymbolKind.Namespace;case"comment":case"doc":return tt.SymbolKind.String;case"import":case"alias":return tt.SymbolKind.Module;default:return tt.SymbolKind.Variable}}};var GR=yt(pt(),1),WR=["namespace","type","class","variable","property","function","keyword","comment","string","number","operator","enum","interface"],KR=["declaration","definition","readonly","abstract"],Yd=class{constructor(e){this.documentManager=e}provideSemanticTokens(e){let t=new GR.SemanticTokensBuilder,i=this.documentManager.get(e.textDocument.uri);if(!i)return t.build();i.tokenStream.fill();let n=i.tokenStream.getTokens();for(let a of n){if(!a.text||a.channel!==0)continue;let o=this.classifyToken(a);if(o===void 0)continue;let l=(a.line??1)-1,d=a.column??0,f=a.text.length;t.push(l,d,f,o,0)}return t.build()}classifyToken(e){let t=e.text;if(t){if(t.startsWith("/*")||t.startsWith("//"))return 7;if(t.startsWith('"')||t.startsWith("'"))return 8;if(/^\d/.test(t))return 9;if(/^[+\-*/<>=!&|^~%]+$/.test(t)||t==="::"||t===":>"||t===":>>")return 10;if(this.isKeyword(t))return 6;if(/^[a-zA-Z_]\w*$/.test(t))return 3}}isKeyword(e){return new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","and","as","assert","assign","assume","attribute","bind","binding","bool","by","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","false","feature","filter","first","flow","for","fork","frame","from","hastype","if","implies","import","in","include","individual","inout","interface","istype","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","or","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","true","type","use","variant","variation","verification","verify","view","viewpoint","when","while","xor"]).has(e)}};var t4=yt(pt(),1),Jd=class{constructor(e){this.documentManager=e}provideFoldingRanges(e){let t=this.documentManager.getText(e.textDocument.uri);if(!t)return[];let i=[],n=t.split(`
97
+ `),a=[],o;for(let l=0;l<n.length;l++){let d=n[l];d.includes("/*")&&!d.includes("*/")?o=l:o!==void 0&&d.includes("*/")&&(i.push({startLine:o,endLine:l,kind:t4.FoldingRangeKind.Comment}),o=void 0);for(let f of d)if(f==="{")a.push(l);else if(f==="}"){let b=a.pop();b!==void 0&&l>b&&i.push({startLine:b,endLine:l,kind:t4.FoldingRangeKind.Region})}}return i}};var Xd=class{constructor(e){this.documentManager=e}symbolTable=new ge;prepareRename(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return null;let i=this.documentManager.getText(e.textDocument.uri);if(!i)return null;this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);return n?n.selectionRange:null}provideRename(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return null;let i=this.documentManager.getText(e.textDocument.uri);if(!i)return null;this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);if(!n)return null;let a=[],o=n.name,l=e.newName,d=this.symbolTable.findReferences(o);for(let E of d)E.uri===e.textDocument.uri&&a.push({range:E.selectionRange,newText:l});let f=i.split(`
98
+ `),b=new RegExp(`\\b${this.escapeRegex(o)}\\b`,"g");for(let E=0;E<f.length;E++){let A;for(;(A=b.exec(f[E]))!==null;){let D={start:{line:E,character:A.index},end:{line:E,character:A.index+o.length}};a.some(z=>z.range.start.line===E&&z.range.start.character===A.index)||a.push({range:D,newText:l})}}return a.length===0?null:{changes:{[e.textDocument.uri]:a}}}escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};var e2=yt(pt(),1),Zd=class{provideCodeActions(e){let t=[],i=e.textDocument.uri;for(let n of e.context.diagnostics){let a=this.tryKeywordTypoFix(i,n);a&&t.push(a)}return t}tryKeywordTypoFix(e,t){let i=t.message.match(/Unknown keyword '(\w+)'\.\s*Did you mean '(\w+)'\?/);if(!i)return;let[,n,a]=i,o={changes:{[e]:[e2.TextEdit.replace(t.range,a)]}};return{title:`Fix typo: '${n}' \u2192 '${a}'`,kind:e2.CodeActionKind.QuickFix,diagnostics:[t],isPreferred:!0,edit:o}}};var Go=yt(pt(),1),t2=class{constructor(e){this.documents=e}provideDocumentFormatting(e){let t=this.documents.get(e.textDocument.uri);if(!t)return[];let i=e.options.tabSize??4,a=e.options.insertSpaces??!0?" ".repeat(i):" ",o=t.getText(),l=this.formatSysML(o,a);return l===o?[]:[Go.TextEdit.replace(Go.Range.create(0,0,t.lineCount,0),l)]}provideRangeFormatting(e){let t=this.documents.get(e.textDocument.uri);if(!t)return[];let i=e.options.tabSize??4,a=e.options.insertSpaces??!0?" ".repeat(i):" ",o=t.getText(e.range),l=this.formatSysML(o,a);return l===o?[]:[Go.TextEdit.replace(e.range,l)]}formatSysML(e,t){let i=e.split(`
99
+ `),n=[],a=0,o=!1;for(let l=0;l<i.length;l++){let d=i[l];if(d=d.trimEnd(),d.trim()===""){!o&&n.length>0&&(n.push(""),o=!0);continue}o=!1;let f=d.trim(),b=(f.match(/^[}\]]+/)||[""])[0].length;b>0&&(a=Math.max(0,a-b));let E=f.startsWith("//"),A=!f.startsWith("/*")&&(f.startsWith("*")||f.startsWith("*/")),D;if(A)D=t.repeat(a)+" "+f;else if(E)D=t.repeat(a)+f;else{let z=this.normalizeSpacing(f);D=t.repeat(a)+z}if(n.push(D),!E){let z=this.countOutsideStrings(f,"{")+this.countOutsideStrings(f,"["),pe=this.countOutsideStrings(f,"}")+this.countOutsideStrings(f,"]");a+=z-pe+b,a=Math.max(0,a)}}for(;n.length>0&&n[n.length-1]==="";)n.pop();return n.push(""),n.join(`
100
+ `)}normalizeSpacing(e){if(e.startsWith('"')||e.startsWith("'"))return e;let t=e;return t=t.replace(/\s*{/g," {"),t=t.replace(/;\s*(\S)/g,"; $1"),t=t.replace(/ +/g,(i,n)=>(t.substring(0,n).match(/"/g)||[]).length%2!==0?i:" "),t}countOutsideStrings(e,t){let i=0,n=!1,a="";for(let o=0;o<e.length;o++){let l=e[o];if(n)l===a&&e[o-1]!=="\\"&&(n=!1);else if(l==='"'||l==="'")n=!0,a=l;else if(l==="/"&&o+1<e.length){if(e[o+1]==="/"||e[o+1]==="*")break}else l===t&&i++}return i}};var an=yt(pt(),1),r2=class{constructor(e){this.documents=e}provideSelectionRanges(e){let t=this.documents.get(e.textDocument.uri);if(!t)return[];let i=t.getText();return e.positions.map(n=>{let a=t.offsetAt(n);return this.buildSelectionRange(t,i,a)})}buildSelectionRange(e,t,i){let n=[],a=this.getWordRange(e,t,i);a&&n.push(a);let o=this.getStatementRange(e,t,i);o&&n.push(o);let l=this.getEnclosingBraceRanges(e,t,i);n.push(...l),n.push(an.Range.create(0,0,e.lineCount-1,e.getText().length));let d=this.deduplicateRanges(n),f;for(let b=d.length-1;b>=0;b--)f={range:d[b],parent:f};return f??{range:an.Range.create(0,0,0,0)}}getWordRange(e,t,i){let n=/[a-zA-Z_]\w*/g,a;for(;(a=n.exec(t))!==null;){let o=a.index,l=o+a[0].length;if(o<=i&&i<=l)return an.Range.create(e.positionAt(o),e.positionAt(l));if(o>i)break}}getStatementRange(e,t,i){let n=i,a=i;for(;n>0;){let o=t[n-1];if(o===";"||o==="{"||o==="}")break;n--}for(;a<t.length;){let o=t[a];if(o===";"){a++;break}if(o==="{")break;a++}for(;n<i&&/\s/.test(t[n]);)n++;for(;a>i&&a>n&&/\s/.test(t[a-1]);)a--;if(!(a<=n))return an.Range.create(e.positionAt(n),e.positionAt(a))}getEnclosingBraceRanges(e,t,i){let n=[],a=[],o=[];for(let l=0;l<t.length;l++)if(t[l]==="{")a.push(l);else if(t[l]==="}"){let d=a.pop();d!==void 0&&d<i&&l>=i&&o.push([d,l+1])}o.sort((l,d)=>l[1]-l[0]-(d[1]-d[0]));for(let[l,d]of o){n.push(an.Range.create(e.positionAt(l),e.positionAt(d)));let f=l;for(;f>0&&t[f-1]!==";"&&t[f-1]!=="{"&&t[f-1]!=="}";)f--;for(;f<l&&/\s/.test(t[f]);)f++;f<l&&n.push(an.Range.create(e.positionAt(f),e.positionAt(d)))}return n}deduplicateRanges(e){let t=[],i=new Set,n=e.sort((a,o)=>{let l=(a.end.line-a.start.line)*1e4+(a.end.character-a.start.character),d=(o.end.line-o.start.line)*1e4+(o.end.character-o.start.character);return l-d});for(let a of n){let o=`${a.start.line}:${a.start.character}-${a.end.line}:${a.end.character}`;i.has(o)||(i.add(o),t.push(a))}return t}};var i2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideCodeLenses(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return[];this.symbolTable.build(t,i);let n=this.symbolTable.getSymbolsForUri(t),a=[];for(let o of n){if(!Br(o.kind)&&o.kind!=="package")continue;let l=this.countReferences(o),d={title:l===1?"1 reference":`${l} references`,command:"sysml.findReferences",arguments:[t,{line:o.selectionRange.start.line,character:o.selectionRange.start.character}]};a.push({range:o.selectionRange,command:d})}return a}countReferences(e){return this.symbolTable.findReferences(e.name).length}};var rt=yt(pt(),1);var n2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideWorkspaceSymbols(e){let t=e.query.toLowerCase();for(let a of this.documentManager.getUris()){let o=this.documentManager.get(a);o&&this.symbolTable.build(a,o)}let i=this.symbolTable.getAllSymbols(),n=[];for(let a of i)if(!(t&&!a.name.toLowerCase().includes(t)&&!a.qualifiedName.toLowerCase().includes(t))&&(n.push({name:a.name,kind:U7(a.kind),location:{uri:a.uri,range:a.selectionRange},containerName:a.parentQualifiedName}),n.length>=200))break;return n}};function U7(r){switch(r){case"package":return rt.SymbolKind.Package;case"part def":case"part":return rt.SymbolKind.Class;case"attribute def":case"attribute":return rt.SymbolKind.Property;case"port def":case"port":return rt.SymbolKind.Interface;case"action def":case"action":return rt.SymbolKind.Method;case"state def":case"state":return rt.SymbolKind.Enum;case"requirement def":case"requirement":return rt.SymbolKind.Object;case"constraint def":case"constraint":return rt.SymbolKind.Constant;case"connection def":case"connection":case"interface def":case"interface":return rt.SymbolKind.Interface;case"item def":case"item":return rt.SymbolKind.Struct;case"enum def":case"enum":return rt.SymbolKind.Enum;case"calc def":case"calc":return rt.SymbolKind.Function;case"use case def":case"use case":return rt.SymbolKind.Event;case"view def":case"view":case"viewpoint def":case"viewpoint":return rt.SymbolKind.Namespace;case"comment":case"doc":return rt.SymbolKind.String;case"import":case"alias":return rt.SymbolKind.Module;default:return rt.SymbolKind.Variable}}var s2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideLinkedEditingRanges(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return null;let n=this.documentManager.getText(t);if(!n)return null;this.symbolTable.build(t,i);let a=this.symbolTable.resolveAt(t,e.position.line,e.position.character,n);if(!a)return null;let l=this.symbolTable.findReferences(a.name).filter(d=>d.uri===t);return l.length<=1?null:{ranges:l.map(d=>d.selectionRange)}}};var mi=yt(pt(),1);var a2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideInlayHints(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return[];this.symbolTable.build(t,i);let n=this.symbolTable.getSymbolsForUri(t),a=[],{range:o}=e;for(let l of n)l.selectionRange.end.line<o.start.line||l.selectionRange.start.line>o.end.line||(_R(l.kind)&&l.typeName&&a.push({position:mi.Position.create(l.selectionRange.end.line,l.selectionRange.end.character),label:`: ${l.typeName}`,kind:mi.InlayHintKind.Type,paddingLeft:!1,paddingRight:!0}),Br(l.kind)&&l.typeName&&a.push({position:mi.Position.create(l.selectionRange.end.line,l.selectionRange.end.character),label:`:> ${l.typeName}`,kind:mi.InlayHintKind.Type,paddingLeft:!0,paddingRight:!0}),l.kind==="package"&&l.children.length>0&&a.push({position:mi.Position.create(l.selectionRange.end.line,l.selectionRange.end.character),label:`(${l.children.length} members)`,kind:mi.InlayHintKind.Parameter,paddingLeft:!0,paddingRight:!1}));return a}};var r4=yt(pt(),1);var zR=/\bimport\s+([\w]+(?:::[\w*]+)*)\s*;/gm,o2=class{constructor(e,t){this.documentManager=e;this.documents=t}symbolTable=new ge;provideDocumentLinks(e){let t=e.textDocument.uri,i=this.documents.get(t);if(!i)return[];let n=i.getText(),a=[];for(let l of this.documentManager.getUris()){let d=this.documentManager.get(l);d&&this.symbolTable.build(l,d)}let o;for(zR.lastIndex=0;(o=zR.exec(n))!==null;){let l=o[1],f=o.index+7,b=f+l.length,E=i.positionAt(f),A=i.positionAt(b),D=l.replace(/::?\*$/,""),z=this.resolveImportTarget(D);z?a.push({range:r4.Range.create(E,A),target:z.uri,tooltip:`Go to ${D}`}):a.push({range:r4.Range.create(E,A),tooltip:`${D} (unresolved)`})}return a}resolveImportTarget(e){let t=this.symbolTable.getSymbol(e);if(t)return{uri:t.uri};let i=e.split("::")[0],n=this.symbolTable.findByName(i);if(n.length>0)return{uri:n[0].uri}}};var zt=yt(pt(),1);var l2=class{constructor(e){this.documentManager=e}symbolTable=new ge;prepareTypeHierarchy(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return null;let n=this.documentManager.getText(t);if(!n)return null;this.buildAllSymbols(),this.symbolTable.build(t,i);let a=this.symbolTable.resolveAt(t,e.position.line,e.position.character,n);return!a||!Br(a.kind)?null:[this.toTypeHierarchyItem(a)]}provideSupertypes(e){this.buildAllSymbols();let t=e.item,n=this.symbolTable.getSymbolsForUri(t.uri).find(o=>o.name===t.name&&o.selectionRange.start.line===t.selectionRange.start.line);return!n||!n.typeName?[]:this.symbolTable.findByName(n.typeName).filter(o=>Br(o.kind)).map(o=>this.toTypeHierarchyItem(o))}provideSubtypes(e){this.buildAllSymbols();let t=e.item;return this.symbolTable.getAllSymbols().filter(a=>Br(a.kind)&&a.typeName===t.name).map(a=>this.toTypeHierarchyItem(a))}buildAllSymbols(){for(let e of this.documentManager.getUris()){let t=this.documentManager.get(e);t&&this.symbolTable.build(e,t)}}toTypeHierarchyItem(e){return{name:e.name,kind:this.toSymbolKind(e.kind),uri:e.uri,range:e.range,selectionRange:e.selectionRange,detail:e.typeName?`specializes ${e.typeName}`:e.kind}}toSymbolKind(e){switch(e){case"package":return zt.SymbolKind.Package;case"part def":return zt.SymbolKind.Class;case"action def":return zt.SymbolKind.Method;case"state def":return zt.SymbolKind.Enum;case"item def":return zt.SymbolKind.Struct;case"port def":case"interface def":case"connection def":return zt.SymbolKind.Interface;case"enum def":return zt.SymbolKind.Enum;case"calc def":return zt.SymbolKind.Function;case"requirement def":return zt.SymbolKind.Object;case"constraint def":return zt.SymbolKind.Constant;default:return zt.SymbolKind.Class}}};var bi=yt(pt(),1);var QR=new Set(["perform","include","accept","send","assign","assert"]),u2=class{constructor(e,t){this.documentManager=e;this.documents=t}symbolTable=new ge;prepareCallHierarchy(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return null;let n=this.documentManager.getText(t);this.symbolTable.build(t,i);let a=n?this.symbolTable.resolveAt(t,e.position.line,e.position.character,n):this.symbolTable.findSymbolAtPosition(t,e.position.line,e.position.character);return!a||!new Set(["action def","action","state def","state","calc def","calc","use case def","use case"]).has(a.kind)?null:[this.toCallHierarchyItem(a)]}provideIncomingCalls(e){this.buildAllSymbols();let i=e.item.name,n=[];for(let a of this.documentManager.getUris()){let o=this.documents.get(a);if(!o)continue;let l=o.getText(),d=this.symbolTable.getSymbolsForUri(a);for(let f of QR){let b=new RegExp(`\\b${f}\\s+${this.escapeRegex(i)}\\b`,"g"),E;for(;(E=b.exec(l))!==null;){let A=o.positionAt(E.index),D=this.findEnclosingBehavioral(d,A.line);if(D){let z=bi.Range.create(o.positionAt(E.index),o.positionAt(E.index+E[0].length));n.push({from:this.toCallHierarchyItem(D),fromRanges:[z]})}}}}return n}provideOutgoingCalls(e){let t=e.item;this.buildAllSymbols();let i=this.documents.get(t.uri);if(!i)return[];let n=i.getText(),a=[],l=this.symbolTable.getSymbolsForUri(t.uri).find(E=>E.name===t.name&&E.selectionRange.start.line===t.selectionRange.start.line);if(!l)return[];let d=i.offsetAt(l.range.start),f=i.offsetAt(l.range.end),b=n.slice(d,f);for(let E of QR){let A=new RegExp(`\\b${E}\\s+(\\w+)`,"g"),D;for(;(D=A.exec(b))!==null;){let z=D[1],pe=this.symbolTable.findByName(z);if(pe.length>0){let Ae=d+D.index,oe=bi.Range.create(i.positionAt(Ae),i.positionAt(Ae+D[0].length));a.push({to:this.toCallHierarchyItem(pe[0]),fromRanges:[oe]})}}}return a}buildAllSymbols(){for(let e of this.documentManager.getUris()){let t=this.documentManager.get(e);t&&this.symbolTable.build(e,t)}}findEnclosingBehavioral(e,t){let i,n=1/0;for(let a of e){let o=a.range;if(t>=o.start.line&&t<=o.end.line){let l=o.end.line-o.start.line;l<n&&(i=a,n=l)}}return i}toCallHierarchyItem(e){return{name:e.name,kind:e.kind.includes("action")?bi.SymbolKind.Method:e.kind.includes("state")?bi.SymbolKind.Enum:e.kind.includes("calc")?bi.SymbolKind.Function:bi.SymbolKind.Event,uri:e.uri,range:e.range,selectionRange:e.selectionRange,detail:e.kind}}escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};var c2=class{constructor(e,t){this.documentManager=e;this.documents=t}symbolTable=new ge;provideSignatureHelp(e){let t=e.textDocument.uri,i=this.documents.get(t);if(!i||!this.documentManager.get(t))return null;for(let C of this.documentManager.getUris()){let I=this.documentManager.get(C);I&&this.symbolTable.build(C,I)}let a=i.getText(),o=i.offsetAt(e.position),l=a.slice(a.lastIndexOf(`
101
+ `,o-1)+1,o),d=l.match(/(?:perform|include|action|calc)\s+(\w+)\s*\(?\s*$|(\w+)\s*\(\s*$/);if(!d)return null;let f=d[1]??d[2];if(!f)return null;let E=this.symbolTable.findByName(f).find(C=>C.kind==="action def"||C.kind==="calc def"||C.kind==="use case def"||C.kind==="constraint def");if(!E)return null;let D=this.symbolTable.getAllSymbols().filter(C=>C.parentQualifiedName===E.qualifiedName&&(C.kind==="attribute"||C.kind==="part"||C.kind==="item"||C.kind==="port"));if(D.length===0)return null;let z=D.map(C=>({label:C.typeName?`${C.name} : ${C.typeName}`:C.name,documentation:C.documentation??`${C.kind} parameter`})),Ae={label:`${f}(${z.map(C=>C.label).join(", ")})`,documentation:E.documentation??`${E.kind} ${E.name}`,parameters:z},P=(l.slice(l.lastIndexOf("(")+1).match(/,/g)??[]).length;return{signatures:[Ae],activeSignature:0,activeParameter:Math.min(P,z.length-1)}}};var $=(0,$t.createConnection)($t.ProposedFeatures.all),Qt=new $t.TextDocuments(Su),Qe=new Gd;Qe.setDocuments(Qt);var JR=new Wd(Qe),k7=new Kd(Qe),F7=new zd(Qe),H7=new Qd(Qe),B7=new $d(Qe),_7=new Yd(Qe),V7=new Jd(Qe),XR=new Xd(Qe),q7=new Zd,ZR=new t2(Qt),j7=new r2(Qt),G7=new i2(Qe),W7=new n2(Qe),K7=new s2(Qe),z7=new a2(Qe),Q7=new o2(Qe,Qt),n4=new l2(Qe),s4=new u2(Qe,Qt),$7=new c2(Qe,Qt),i4;try{i4=I7(D7(import.meta.url))}catch{i4=__dirname}var vr=null,Y7=1,Ss=new Map;function e5(){if(vr)return vr;let r=O7(i4,"parser","parseWorker.js");return vr=new w7(r),vr.on("message",e=>{if(e.warmup){e.interrupted?$.console.log(`[worker] DFA warm-up interrupted after ${e.chunksCompleted}/${e.totalChunks} chunks (${e.elapsed}ms) \u2014 real parse took priority`):$.console.log(`[worker] DFA warm-up complete: ${e.chunksCompleted}/${e.totalChunks} chunks in ${e.elapsed}ms`);return}let t=Ss.get(e.id);t&&(Ss.delete(e.id),t.resolve(e))}),vr.on("error",e=>{$.console.error(`[worker] error: ${e.message}`);for(let[t,i]of Ss)Ss.delete(t),i.resolve({id:t,uri:i.uri,version:i.version,errors:[],keywordDiagnostics:[],semanticTokenData:[],timing:{lexMs:0,parseMs:0},mode:"SLL"});vr=null}),vr.on("exit",e=>{e!==0&&$.console.error(`[worker] exited with code ${e}`),vr=null}),vr}function J7(r,e,t){let i=Y7++,n=e5(),a=new Promise(o=>{Ss.set(i,{uri:e,version:t,resolve:o});let l={id:i,text:r,uri:e,version:t};n.postMessage(l)});return{id:i,promise:a}}function t5(r){let e=vr;if(!e)return;let t={id:r,cancel:!0};e.postMessage(t),Ss.delete(r)}var r5=!1,$R=!1;$.onInitialize(r=>{let e=r.capabilities;r5=!!(e.workspace&&e.workspace.configuration),$R=!!(e.workspace&&e.workspace.workspaceFolders);let t={tokenTypes:WR,tokenModifiers:KR},i={capabilities:{textDocumentSync:$t.TextDocumentSyncKind.Incremental,completionProvider:{resolveProvider:!0,triggerCharacters:[".",":"," "]},hoverProvider:!0,definitionProvider:!0,referencesProvider:!0,documentSymbolProvider:!0,semanticTokensProvider:{full:!0,legend:t},foldingRangeProvider:!0,renameProvider:{prepareProvider:!0},codeActionProvider:{codeActionKinds:["quickfix"]},documentFormattingProvider:!0,documentRangeFormattingProvider:!0,selectionRangeProvider:!0,codeLensProvider:{resolveProvider:!1},workspaceSymbolProvider:!0,linkedEditingRangeProvider:!0,inlayHintProvider:!0,documentLinkProvider:{resolveProvider:!1},typeHierarchyProvider:!0,callHierarchyProvider:!0,signatureHelpProvider:{triggerCharacters:["(",","]}}};return $R&&(i.capabilities.workspace={workspaceFolders:{supported:!0}}),i});$.onInitialized(()=>{r5&&$.client.register($t.DidChangeConfigurationNotification.type,void 0),$.console.log("SysML v2 Language Server initialized"),e5(),$.console.log("[worker] started \u2014 warming DFA in background...")});var Wo=new Map,Ps=new Map,i5=new Map,X7=300;Qt.onDidOpen(r=>{$.console.log(`[open] ${r.document.uri}`)});Qt.onDidChangeContent(r=>{let e=r.document.uri,t=Wo.get(e);t&&clearTimeout(t);let i=Ps.get(e);if(i!==void 0&&(t5(i),Ps.delete(e)),r.document.version<=1)YR(r.document);else{let a=setTimeout(()=>{Wo.delete(e);let o=Qt.get(e);o&&YR(o)},X7);Wo.set(e,a)}});Qt.onDidClose(r=>{let e=r.document.uri;$.console.log(`[close] ${e}`);let t=Wo.get(e);t&&(clearTimeout(t),Wo.delete(e));let i=Ps.get(e);i!==void 0&&(t5(i),Ps.delete(e)),Qe.remove(e),$.sendDiagnostics({uri:e,diagnostics:[]})});async function YR(r){let e=r.uri,t=r.version,i=r.getText(),n=e.split("/").pop()??e;$.console.log(`[validate] ${n} \u2014 ${i.length} chars, parsing...`);let a=await $.window.createWorkDoneProgress();a.begin("Parsing",void 0,`${n}\u2026`);let o=Date.now(),{id:l,promise:d}=J7(i,e,t);Ps.set(e,l);let f=await d;Ps.delete(e);let b=Date.now()-o,E=Qt.get(e);if(E&&E.version!==t){a.done(),$.console.log(`[validate] ${n} \u2014 stale (v${t} \u2192 v${E.version}), discarding`);return}let A=[];for(let D of f.errors)A.push({severity:$t.DiagnosticSeverity.Error,range:{start:{line:D.line,character:D.column},end:{line:D.line,character:D.column+D.length}},message:D.message,source:"sysml"});for(let D of f.keywordDiagnostics)A.push({severity:D.severity,range:D.range,message:D.message,source:D.source??"sysml"});$.sendDiagnostics({uri:e,diagnostics:A}),a.done(),$.console.log(`[validate] ${n} \u2014 lex ${f.timing.lexMs}ms, parse ${f.timing.parseMs}ms (${f.mode}), total ${b}ms, ${A.length} diagnostic(s)`),i5.set(e,f.semanticTokenData),$.languages.semanticTokens.refresh()}$.onCompletion(r=>JR.provideCompletions(r));$.onCompletionResolve(r=>JR.resolveCompletion(r));$.onHover(r=>k7.provideHover(r));$.onDefinition(r=>F7.provideDefinition(r));$.onReferences(r=>H7.provideReferences(r));$.onDocumentSymbol(r=>B7.provideDocumentSymbols(r));$.languages.semanticTokens.on(r=>{let e=r.textDocument.uri;if(Qe.get(e))return _7.provideSemanticTokens(r);let i=i5.get(e);return i&&i.length>0?{data:i}:{data:[]}});$.onFoldingRanges(r=>V7.provideFoldingRanges(r));$.onPrepareRename(r=>XR.prepareRename(r));$.onRenameRequest(r=>XR.provideRename(r));$.onCodeAction(r=>q7.provideCodeActions(r));$.onDocumentFormatting(r=>ZR.provideDocumentFormatting(r));$.onDocumentRangeFormatting(r=>ZR.provideRangeFormatting(r));$.onSelectionRanges(r=>j7.provideSelectionRanges(r));$.onCodeLens(r=>G7.provideCodeLenses(r));$.onWorkspaceSymbol(r=>W7.provideWorkspaceSymbols(r));$.languages.onLinkedEditingRange(r=>K7.provideLinkedEditingRanges(r));$.languages.inlayHint.on(r=>z7.provideInlayHints(r));$.onDocumentLinks(r=>Q7.provideDocumentLinks(r));$.languages.typeHierarchy.onPrepare(r=>n4.prepareTypeHierarchy(r));$.languages.typeHierarchy.onSupertypes(r=>n4.provideSupertypes(r));$.languages.typeHierarchy.onSubtypes(r=>n4.provideSubtypes(r));$.languages.callHierarchy.onPrepare(r=>s4.prepareCallHierarchy(r));$.languages.callHierarchy.onIncomingCalls(r=>s4.provideIncomingCalls(r));$.languages.callHierarchy.onOutgoingCalls(r=>s4.provideOutgoingCalls(r));$.onSignatureHelp(r=>$7.provideSignatureHelp(r));Qt.listen($);$.listen();