Publish quixos-protocol from 3ea7dcc6a38ba0c5ddc099b966d48c5aeae732b1
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"sourceRepo": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git",
|
"sourceRepo": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git",
|
||||||
"sourceCommit": "4af89fa7c703d9fecf36b4e97b76658a503dd5aa",
|
"sourceCommit": "3ea7dcc6a38ba0c5ddc099b966d48c5aeae732b1",
|
||||||
"sourcePath": "quixos-protocol",
|
"sourcePath": "quixos-protocol",
|
||||||
"exportName": "quixos-protocol",
|
"exportName": "quixos-protocol",
|
||||||
"mirrorRemote": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-protocol.git"
|
"mirrorRemote": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-protocol.git"
|
||||||
|
|||||||
@@ -180,6 +180,11 @@ conformanceDecl
|
|||||||
conformanceItem
|
conformanceItem
|
||||||
: PRIVATE attachmentDecl
|
: PRIVATE attachmentDecl
|
||||||
| operationBindingDecl
|
| operationBindingDecl
|
||||||
|
| relationshipMaterializationDecl
|
||||||
|
;
|
||||||
|
|
||||||
|
relationshipMaterializationDecl
|
||||||
|
: MATERIALIZE identifier IF ABSENT USING CONSTRUCTOR identifier VIA EDGE identifier DOT identifier SEMI
|
||||||
;
|
;
|
||||||
|
|
||||||
operationBindingDecl
|
operationBindingDecl
|
||||||
@@ -230,8 +235,8 @@ dependencyBindingBlock
|
|||||||
;
|
;
|
||||||
|
|
||||||
dependencyBinding
|
dependencyBinding
|
||||||
: identifier TO STATE identifier SEMI
|
: identifier TO STATE identifier (VIA EDGE identifier DOT identifier)? SEMI
|
||||||
| identifier TO EDGE identifier DOT identifier SEMI
|
| identifier TO EDGE identifier DOT identifier (VIA EDGE identifier DOT identifier)? SEMI
|
||||||
| identifier TO INTERFACE identifier SEMI
|
| identifier TO INTERFACE identifier SEMI
|
||||||
| identifier TO CONSTRUCTOR identifier SEMI
|
| identifier TO CONSTRUCTOR identifier SEMI
|
||||||
;
|
;
|
||||||
@@ -322,6 +327,11 @@ STATE: 'state';
|
|||||||
EDGE: 'edge';
|
EDGE: 'edge';
|
||||||
PROJECTION: 'projection';
|
PROJECTION: 'projection';
|
||||||
WITH: 'with';
|
WITH: 'with';
|
||||||
|
USING: 'using';
|
||||||
|
VIA: 'via';
|
||||||
|
MATERIALIZE: 'materialize';
|
||||||
|
IF: 'if';
|
||||||
|
ABSENT: 'absent';
|
||||||
ON: 'on';
|
ON: 'on';
|
||||||
POLICY: 'policy';
|
POLICY: 'policy';
|
||||||
DEFAULT: 'default';
|
DEFAULT: 'default';
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ service OrchestratorRuntime {
|
|||||||
rpc InvokeCapability(InvokeCapabilityRequest) returns (InvokeCapabilityResponse);
|
rpc InvokeCapability(InvokeCapabilityRequest) returns (InvokeCapabilityResponse);
|
||||||
rpc WatchCapability(WatchCapabilityRequest) returns (stream WatchCapabilityEvent);
|
rpc WatchCapability(WatchCapabilityRequest) returns (stream WatchCapabilityEvent);
|
||||||
rpc ConstructObject(ConstructObjectRequest) returns (ConstructObjectResponse);
|
rpc ConstructObject(ConstructObjectRequest) returns (ConstructObjectResponse);
|
||||||
|
rpc ResolveOrConstructRelatedObject(ResolveOrConstructRelatedObjectRequest) returns (ResolveOrConstructRelatedObjectResponse);
|
||||||
rpc GetWorkspace(GetWorkspaceRequest) returns (GetWorkspaceResponse);
|
rpc GetWorkspace(GetWorkspaceRequest) returns (GetWorkspaceResponse);
|
||||||
rpc ListPackageDescriptors(ListPackageDescriptorsRequest) returns (ListPackageDescriptorsResponse);
|
rpc ListPackageDescriptors(ListPackageDescriptorsRequest) returns (ListPackageDescriptorsResponse);
|
||||||
rpc ListPackageRuntimes(ListPackageRuntimesRequest) returns (ListPackageRuntimesResponse);
|
rpc ListPackageRuntimes(ListPackageRuntimesRequest) returns (ListPackageRuntimesResponse);
|
||||||
@@ -24,6 +25,16 @@ message ConstructObjectRequest {
|
|||||||
}
|
}
|
||||||
message ConstructObjectResponse { camino.CaminoObject object = 1; }
|
message ConstructObjectResponse { camino.CaminoObject object = 1; }
|
||||||
|
|
||||||
|
message ResolveOrConstructRelatedObjectRequest {
|
||||||
|
string object_id = 1;
|
||||||
|
string interface_revision_id = 2;
|
||||||
|
string member_id = 3;
|
||||||
|
}
|
||||||
|
message ResolveOrConstructRelatedObjectResponse {
|
||||||
|
camino.CaminoObject object = 1;
|
||||||
|
bool constructed = 2;
|
||||||
|
}
|
||||||
|
|
||||||
message InvokeCapabilityRequest {
|
message InvokeCapabilityRequest {
|
||||||
quixos.CapabilityRef capability = 1;
|
quixos.CapabilityRef capability = 1;
|
||||||
string object_id = 2;
|
string object_id = 2;
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ message InjectedDependency {
|
|||||||
string receiver_interface_revision_id = 4;
|
string receiver_interface_revision_id = 4;
|
||||||
string constructor_atom_id = 5;
|
string constructor_atom_id = 5;
|
||||||
}
|
}
|
||||||
|
// Defaults to the invocation receiver. A checked dependency traversal can
|
||||||
|
// select a related object explicitly before the package runtime starts.
|
||||||
|
string object_id = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message EdgeDependency {
|
message EdgeDependency {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -19,80 +19,85 @@ STATE=18
|
|||||||
EDGE=19
|
EDGE=19
|
||||||
PROJECTION=20
|
PROJECTION=20
|
||||||
WITH=21
|
WITH=21
|
||||||
ON=22
|
USING=22
|
||||||
POLICY=23
|
VIA=23
|
||||||
DEFAULT=24
|
MATERIALIZE=24
|
||||||
SOURCE=25
|
IF=25
|
||||||
REPOSITORY=26
|
ABSENT=26
|
||||||
COMMIT=27
|
ON=27
|
||||||
REVISION=28
|
POLICY=28
|
||||||
ID=29
|
DEFAULT=29
|
||||||
DOC=30
|
SOURCE=30
|
||||||
MODE=31
|
REPOSITORY=31
|
||||||
EMITS=32
|
COMMIT=32
|
||||||
RECEIVER=33
|
REVISION=33
|
||||||
REQUIRES=34
|
ID=34
|
||||||
ANY=35
|
DOC=35
|
||||||
GET=36
|
MODE=36
|
||||||
SET=37
|
EMITS=37
|
||||||
WATCH=38
|
RECEIVER=38
|
||||||
START=39
|
REQUIRES=39
|
||||||
STOP=40
|
ANY=40
|
||||||
READ=41
|
GET=41
|
||||||
WRITE=42
|
SET=42
|
||||||
RESOLVE=43
|
WATCH=43
|
||||||
CONNECT=44
|
START=44
|
||||||
DISCONNECT=45
|
STOP=45
|
||||||
CALL=46
|
READ=46
|
||||||
WATCH_START=47
|
WRITE=47
|
||||||
WATCH_STOP=48
|
RESOLVE=48
|
||||||
SUBSCRIBE=49
|
CONNECT=49
|
||||||
UNSUBSCRIBE=50
|
DISCONNECT=50
|
||||||
OPTIMISTIC_REGISTER=51
|
CALL=51
|
||||||
CRDT=52
|
WATCH_START=52
|
||||||
OPTIONAL_ONE=53
|
WATCH_STOP=53
|
||||||
EXACTLY_ONE=54
|
SUBSCRIBE=54
|
||||||
MANY_UNIQUE=55
|
UNSUBSCRIBE=55
|
||||||
MANY=56
|
OPTIMISTIC_REGISTER=56
|
||||||
ORDERED=57
|
CRDT=57
|
||||||
UNIT=58
|
OPTIONAL_ONE=58
|
||||||
WATCH_HANDLE=59
|
EXACTLY_ONE=59
|
||||||
MESSAGE=60
|
MANY_UNIQUE=60
|
||||||
ATOM_REF=61
|
MANY=61
|
||||||
INTERFACE_REF=62
|
ORDERED=62
|
||||||
OPTIONAL=63
|
UNIT=63
|
||||||
LIST=64
|
WATCH_HANDLE=64
|
||||||
BOOL=65
|
MESSAGE=65
|
||||||
BYTES=66
|
ATOM_REF=66
|
||||||
DOUBLE=67
|
INTERFACE_REF=67
|
||||||
INT32=68
|
OPTIONAL=68
|
||||||
INT64=69
|
LIST=69
|
||||||
STRING=70
|
BOOL=70
|
||||||
UINT32=71
|
BYTES=71
|
||||||
UINT64=72
|
DOUBLE=72
|
||||||
TRUE=73
|
INT32=73
|
||||||
FALSE=74
|
INT64=74
|
||||||
NULL=75
|
STRING=75
|
||||||
ARROW=76
|
UINT32=76
|
||||||
COLON=77
|
UINT64=77
|
||||||
SEMI=78
|
TRUE=78
|
||||||
COMMA=79
|
FALSE=79
|
||||||
DOT=80
|
NULL=80
|
||||||
LBRACE=81
|
ARROW=81
|
||||||
RBRACE=82
|
COLON=82
|
||||||
LBRACK=83
|
SEMI=83
|
||||||
RBRACK=84
|
COMMA=84
|
||||||
LPAREN=85
|
DOT=85
|
||||||
RPAREN=86
|
LBRACE=86
|
||||||
LT=87
|
RBRACE=87
|
||||||
GT=88
|
LBRACK=88
|
||||||
INTEGER=89
|
RBRACK=89
|
||||||
JSON_NUMBER=90
|
LPAREN=90
|
||||||
IDENTIFIER=91
|
RPAREN=91
|
||||||
STRING_LITERAL=92
|
LT=92
|
||||||
LINE_COMMENT=93
|
GT=93
|
||||||
BLOCK_COMMENT=94
|
INTEGER=94
|
||||||
WS=95
|
JSON_NUMBER=95
|
||||||
|
IDENTIFIER=96
|
||||||
|
STRING_LITERAL=97
|
||||||
|
LINE_COMMENT=98
|
||||||
|
BLOCK_COMMENT=99
|
||||||
|
WS=100
|
||||||
'workspace'=1
|
'workspace'=1
|
||||||
'atom'=2
|
'atom'=2
|
||||||
'interface'=3
|
'interface'=3
|
||||||
@@ -114,70 +119,75 @@ WS=95
|
|||||||
'edge'=19
|
'edge'=19
|
||||||
'projection'=20
|
'projection'=20
|
||||||
'with'=21
|
'with'=21
|
||||||
'on'=22
|
'using'=22
|
||||||
'policy'=23
|
'via'=23
|
||||||
'default'=24
|
'materialize'=24
|
||||||
'source'=25
|
'if'=25
|
||||||
'repository'=26
|
'absent'=26
|
||||||
'commit'=27
|
'on'=27
|
||||||
'revision'=28
|
'policy'=28
|
||||||
'id'=29
|
'default'=29
|
||||||
'doc'=30
|
'source'=30
|
||||||
'mode'=31
|
'repository'=31
|
||||||
'emits'=32
|
'commit'=32
|
||||||
'receiver'=33
|
'revision'=33
|
||||||
'requires'=34
|
'id'=34
|
||||||
'any'=35
|
'doc'=35
|
||||||
'get'=36
|
'mode'=36
|
||||||
'set'=37
|
'emits'=37
|
||||||
'watch'=38
|
'receiver'=38
|
||||||
'start'=39
|
'requires'=39
|
||||||
'stop'=40
|
'any'=40
|
||||||
'read'=41
|
'get'=41
|
||||||
'write'=42
|
'set'=42
|
||||||
'resolve'=43
|
'watch'=43
|
||||||
'connect'=44
|
'start'=44
|
||||||
'disconnect'=45
|
'stop'=45
|
||||||
'call'=46
|
'read'=46
|
||||||
'watch-start'=47
|
'write'=47
|
||||||
'watch-stop'=48
|
'resolve'=48
|
||||||
'subscribe'=49
|
'connect'=49
|
||||||
'unsubscribe'=50
|
'disconnect'=50
|
||||||
'optimistic-register'=51
|
'call'=51
|
||||||
'crdt'=52
|
'watch-start'=52
|
||||||
'optional-one'=53
|
'watch-stop'=53
|
||||||
'exactly-one'=54
|
'subscribe'=54
|
||||||
'many-unique'=55
|
'unsubscribe'=55
|
||||||
'many'=56
|
'optimistic-register'=56
|
||||||
'ordered'=57
|
'crdt'=57
|
||||||
'unit'=58
|
'optional-one'=58
|
||||||
'watch-handle'=59
|
'exactly-one'=59
|
||||||
'message'=60
|
'many-unique'=60
|
||||||
'atom-ref'=61
|
'many'=61
|
||||||
'interface-ref'=62
|
'ordered'=62
|
||||||
'optional'=63
|
'unit'=63
|
||||||
'list'=64
|
'watch-handle'=64
|
||||||
'bool'=65
|
'message'=65
|
||||||
'bytes'=66
|
'atom-ref'=66
|
||||||
'double'=67
|
'interface-ref'=67
|
||||||
'int32'=68
|
'optional'=68
|
||||||
'int64'=69
|
'list'=69
|
||||||
'string'=70
|
'bool'=70
|
||||||
'uint32'=71
|
'bytes'=71
|
||||||
'uint64'=72
|
'double'=72
|
||||||
'true'=73
|
'int32'=73
|
||||||
'false'=74
|
'int64'=74
|
||||||
'null'=75
|
'string'=75
|
||||||
'->'=76
|
'uint32'=76
|
||||||
':'=77
|
'uint64'=77
|
||||||
';'=78
|
'true'=78
|
||||||
','=79
|
'false'=79
|
||||||
'.'=80
|
'null'=80
|
||||||
'{'=81
|
'->'=81
|
||||||
'}'=82
|
':'=82
|
||||||
'['=83
|
';'=83
|
||||||
']'=84
|
','=84
|
||||||
'('=85
|
'.'=85
|
||||||
')'=86
|
'{'=86
|
||||||
'<'=87
|
'}'=87
|
||||||
'>'=88
|
'['=88
|
||||||
|
']'=89
|
||||||
|
'('=90
|
||||||
|
')'=91
|
||||||
|
'<'=92
|
||||||
|
'>'=93
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -19,80 +19,85 @@ STATE=18
|
|||||||
EDGE=19
|
EDGE=19
|
||||||
PROJECTION=20
|
PROJECTION=20
|
||||||
WITH=21
|
WITH=21
|
||||||
ON=22
|
USING=22
|
||||||
POLICY=23
|
VIA=23
|
||||||
DEFAULT=24
|
MATERIALIZE=24
|
||||||
SOURCE=25
|
IF=25
|
||||||
REPOSITORY=26
|
ABSENT=26
|
||||||
COMMIT=27
|
ON=27
|
||||||
REVISION=28
|
POLICY=28
|
||||||
ID=29
|
DEFAULT=29
|
||||||
DOC=30
|
SOURCE=30
|
||||||
MODE=31
|
REPOSITORY=31
|
||||||
EMITS=32
|
COMMIT=32
|
||||||
RECEIVER=33
|
REVISION=33
|
||||||
REQUIRES=34
|
ID=34
|
||||||
ANY=35
|
DOC=35
|
||||||
GET=36
|
MODE=36
|
||||||
SET=37
|
EMITS=37
|
||||||
WATCH=38
|
RECEIVER=38
|
||||||
START=39
|
REQUIRES=39
|
||||||
STOP=40
|
ANY=40
|
||||||
READ=41
|
GET=41
|
||||||
WRITE=42
|
SET=42
|
||||||
RESOLVE=43
|
WATCH=43
|
||||||
CONNECT=44
|
START=44
|
||||||
DISCONNECT=45
|
STOP=45
|
||||||
CALL=46
|
READ=46
|
||||||
WATCH_START=47
|
WRITE=47
|
||||||
WATCH_STOP=48
|
RESOLVE=48
|
||||||
SUBSCRIBE=49
|
CONNECT=49
|
||||||
UNSUBSCRIBE=50
|
DISCONNECT=50
|
||||||
OPTIMISTIC_REGISTER=51
|
CALL=51
|
||||||
CRDT=52
|
WATCH_START=52
|
||||||
OPTIONAL_ONE=53
|
WATCH_STOP=53
|
||||||
EXACTLY_ONE=54
|
SUBSCRIBE=54
|
||||||
MANY_UNIQUE=55
|
UNSUBSCRIBE=55
|
||||||
MANY=56
|
OPTIMISTIC_REGISTER=56
|
||||||
ORDERED=57
|
CRDT=57
|
||||||
UNIT=58
|
OPTIONAL_ONE=58
|
||||||
WATCH_HANDLE=59
|
EXACTLY_ONE=59
|
||||||
MESSAGE=60
|
MANY_UNIQUE=60
|
||||||
ATOM_REF=61
|
MANY=61
|
||||||
INTERFACE_REF=62
|
ORDERED=62
|
||||||
OPTIONAL=63
|
UNIT=63
|
||||||
LIST=64
|
WATCH_HANDLE=64
|
||||||
BOOL=65
|
MESSAGE=65
|
||||||
BYTES=66
|
ATOM_REF=66
|
||||||
DOUBLE=67
|
INTERFACE_REF=67
|
||||||
INT32=68
|
OPTIONAL=68
|
||||||
INT64=69
|
LIST=69
|
||||||
STRING=70
|
BOOL=70
|
||||||
UINT32=71
|
BYTES=71
|
||||||
UINT64=72
|
DOUBLE=72
|
||||||
TRUE=73
|
INT32=73
|
||||||
FALSE=74
|
INT64=74
|
||||||
NULL=75
|
STRING=75
|
||||||
ARROW=76
|
UINT32=76
|
||||||
COLON=77
|
UINT64=77
|
||||||
SEMI=78
|
TRUE=78
|
||||||
COMMA=79
|
FALSE=79
|
||||||
DOT=80
|
NULL=80
|
||||||
LBRACE=81
|
ARROW=81
|
||||||
RBRACE=82
|
COLON=82
|
||||||
LBRACK=83
|
SEMI=83
|
||||||
RBRACK=84
|
COMMA=84
|
||||||
LPAREN=85
|
DOT=85
|
||||||
RPAREN=86
|
LBRACE=86
|
||||||
LT=87
|
RBRACE=87
|
||||||
GT=88
|
LBRACK=88
|
||||||
INTEGER=89
|
RBRACK=89
|
||||||
JSON_NUMBER=90
|
LPAREN=90
|
||||||
IDENTIFIER=91
|
RPAREN=91
|
||||||
STRING_LITERAL=92
|
LT=92
|
||||||
LINE_COMMENT=93
|
GT=93
|
||||||
BLOCK_COMMENT=94
|
INTEGER=94
|
||||||
WS=95
|
JSON_NUMBER=95
|
||||||
|
IDENTIFIER=96
|
||||||
|
STRING_LITERAL=97
|
||||||
|
LINE_COMMENT=98
|
||||||
|
BLOCK_COMMENT=99
|
||||||
|
WS=100
|
||||||
'workspace'=1
|
'workspace'=1
|
||||||
'atom'=2
|
'atom'=2
|
||||||
'interface'=3
|
'interface'=3
|
||||||
@@ -114,70 +119,75 @@ WS=95
|
|||||||
'edge'=19
|
'edge'=19
|
||||||
'projection'=20
|
'projection'=20
|
||||||
'with'=21
|
'with'=21
|
||||||
'on'=22
|
'using'=22
|
||||||
'policy'=23
|
'via'=23
|
||||||
'default'=24
|
'materialize'=24
|
||||||
'source'=25
|
'if'=25
|
||||||
'repository'=26
|
'absent'=26
|
||||||
'commit'=27
|
'on'=27
|
||||||
'revision'=28
|
'policy'=28
|
||||||
'id'=29
|
'default'=29
|
||||||
'doc'=30
|
'source'=30
|
||||||
'mode'=31
|
'repository'=31
|
||||||
'emits'=32
|
'commit'=32
|
||||||
'receiver'=33
|
'revision'=33
|
||||||
'requires'=34
|
'id'=34
|
||||||
'any'=35
|
'doc'=35
|
||||||
'get'=36
|
'mode'=36
|
||||||
'set'=37
|
'emits'=37
|
||||||
'watch'=38
|
'receiver'=38
|
||||||
'start'=39
|
'requires'=39
|
||||||
'stop'=40
|
'any'=40
|
||||||
'read'=41
|
'get'=41
|
||||||
'write'=42
|
'set'=42
|
||||||
'resolve'=43
|
'watch'=43
|
||||||
'connect'=44
|
'start'=44
|
||||||
'disconnect'=45
|
'stop'=45
|
||||||
'call'=46
|
'read'=46
|
||||||
'watch-start'=47
|
'write'=47
|
||||||
'watch-stop'=48
|
'resolve'=48
|
||||||
'subscribe'=49
|
'connect'=49
|
||||||
'unsubscribe'=50
|
'disconnect'=50
|
||||||
'optimistic-register'=51
|
'call'=51
|
||||||
'crdt'=52
|
'watch-start'=52
|
||||||
'optional-one'=53
|
'watch-stop'=53
|
||||||
'exactly-one'=54
|
'subscribe'=54
|
||||||
'many-unique'=55
|
'unsubscribe'=55
|
||||||
'many'=56
|
'optimistic-register'=56
|
||||||
'ordered'=57
|
'crdt'=57
|
||||||
'unit'=58
|
'optional-one'=58
|
||||||
'watch-handle'=59
|
'exactly-one'=59
|
||||||
'message'=60
|
'many-unique'=60
|
||||||
'atom-ref'=61
|
'many'=61
|
||||||
'interface-ref'=62
|
'ordered'=62
|
||||||
'optional'=63
|
'unit'=63
|
||||||
'list'=64
|
'watch-handle'=64
|
||||||
'bool'=65
|
'message'=65
|
||||||
'bytes'=66
|
'atom-ref'=66
|
||||||
'double'=67
|
'interface-ref'=67
|
||||||
'int32'=68
|
'optional'=68
|
||||||
'int64'=69
|
'list'=69
|
||||||
'string'=70
|
'bool'=70
|
||||||
'uint32'=71
|
'bytes'=71
|
||||||
'uint64'=72
|
'double'=72
|
||||||
'true'=73
|
'int32'=73
|
||||||
'false'=74
|
'int64'=74
|
||||||
'null'=75
|
'string'=75
|
||||||
'->'=76
|
'uint32'=76
|
||||||
':'=77
|
'uint64'=77
|
||||||
';'=78
|
'true'=78
|
||||||
','=79
|
'false'=79
|
||||||
'.'=80
|
'null'=80
|
||||||
'{'=81
|
'->'=81
|
||||||
'}'=82
|
':'=82
|
||||||
'['=83
|
';'=83
|
||||||
']'=84
|
','=84
|
||||||
'('=85
|
'.'=85
|
||||||
')'=86
|
'{'=86
|
||||||
'<'=87
|
'}'=87
|
||||||
'>'=88
|
'['=88
|
||||||
|
']'=89
|
||||||
|
'('=90
|
||||||
|
')'=91
|
||||||
|
'<'=92
|
||||||
|
'>'=93
|
||||||
|
|||||||
@@ -25,80 +25,85 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
|||||||
public static readonly EDGE = 19;
|
public static readonly EDGE = 19;
|
||||||
public static readonly PROJECTION = 20;
|
public static readonly PROJECTION = 20;
|
||||||
public static readonly WITH = 21;
|
public static readonly WITH = 21;
|
||||||
public static readonly ON = 22;
|
public static readonly USING = 22;
|
||||||
public static readonly POLICY = 23;
|
public static readonly VIA = 23;
|
||||||
public static readonly DEFAULT = 24;
|
public static readonly MATERIALIZE = 24;
|
||||||
public static readonly SOURCE = 25;
|
public static readonly IF = 25;
|
||||||
public static readonly REPOSITORY = 26;
|
public static readonly ABSENT = 26;
|
||||||
public static readonly COMMIT = 27;
|
public static readonly ON = 27;
|
||||||
public static readonly REVISION = 28;
|
public static readonly POLICY = 28;
|
||||||
public static readonly ID = 29;
|
public static readonly DEFAULT = 29;
|
||||||
public static readonly DOC = 30;
|
public static readonly SOURCE = 30;
|
||||||
public static readonly MODE = 31;
|
public static readonly REPOSITORY = 31;
|
||||||
public static readonly EMITS = 32;
|
public static readonly COMMIT = 32;
|
||||||
public static readonly RECEIVER = 33;
|
public static readonly REVISION = 33;
|
||||||
public static readonly REQUIRES = 34;
|
public static readonly ID = 34;
|
||||||
public static readonly ANY = 35;
|
public static readonly DOC = 35;
|
||||||
public static readonly GET = 36;
|
public static readonly MODE = 36;
|
||||||
public static readonly SET = 37;
|
public static readonly EMITS = 37;
|
||||||
public static readonly WATCH = 38;
|
public static readonly RECEIVER = 38;
|
||||||
public static readonly START = 39;
|
public static readonly REQUIRES = 39;
|
||||||
public static readonly STOP = 40;
|
public static readonly ANY = 40;
|
||||||
public static readonly READ = 41;
|
public static readonly GET = 41;
|
||||||
public static readonly WRITE = 42;
|
public static readonly SET = 42;
|
||||||
public static readonly RESOLVE = 43;
|
public static readonly WATCH = 43;
|
||||||
public static readonly CONNECT = 44;
|
public static readonly START = 44;
|
||||||
public static readonly DISCONNECT = 45;
|
public static readonly STOP = 45;
|
||||||
public static readonly CALL = 46;
|
public static readonly READ = 46;
|
||||||
public static readonly WATCH_START = 47;
|
public static readonly WRITE = 47;
|
||||||
public static readonly WATCH_STOP = 48;
|
public static readonly RESOLVE = 48;
|
||||||
public static readonly SUBSCRIBE = 49;
|
public static readonly CONNECT = 49;
|
||||||
public static readonly UNSUBSCRIBE = 50;
|
public static readonly DISCONNECT = 50;
|
||||||
public static readonly OPTIMISTIC_REGISTER = 51;
|
public static readonly CALL = 51;
|
||||||
public static readonly CRDT = 52;
|
public static readonly WATCH_START = 52;
|
||||||
public static readonly OPTIONAL_ONE = 53;
|
public static readonly WATCH_STOP = 53;
|
||||||
public static readonly EXACTLY_ONE = 54;
|
public static readonly SUBSCRIBE = 54;
|
||||||
public static readonly MANY_UNIQUE = 55;
|
public static readonly UNSUBSCRIBE = 55;
|
||||||
public static readonly MANY = 56;
|
public static readonly OPTIMISTIC_REGISTER = 56;
|
||||||
public static readonly ORDERED = 57;
|
public static readonly CRDT = 57;
|
||||||
public static readonly UNIT = 58;
|
public static readonly OPTIONAL_ONE = 58;
|
||||||
public static readonly WATCH_HANDLE = 59;
|
public static readonly EXACTLY_ONE = 59;
|
||||||
public static readonly MESSAGE = 60;
|
public static readonly MANY_UNIQUE = 60;
|
||||||
public static readonly ATOM_REF = 61;
|
public static readonly MANY = 61;
|
||||||
public static readonly INTERFACE_REF = 62;
|
public static readonly ORDERED = 62;
|
||||||
public static readonly OPTIONAL = 63;
|
public static readonly UNIT = 63;
|
||||||
public static readonly LIST = 64;
|
public static readonly WATCH_HANDLE = 64;
|
||||||
public static readonly BOOL = 65;
|
public static readonly MESSAGE = 65;
|
||||||
public static readonly BYTES = 66;
|
public static readonly ATOM_REF = 66;
|
||||||
public static readonly DOUBLE = 67;
|
public static readonly INTERFACE_REF = 67;
|
||||||
public static readonly INT32 = 68;
|
public static readonly OPTIONAL = 68;
|
||||||
public static readonly INT64 = 69;
|
public static readonly LIST = 69;
|
||||||
public static readonly STRING = 70;
|
public static readonly BOOL = 70;
|
||||||
public static readonly UINT32 = 71;
|
public static readonly BYTES = 71;
|
||||||
public static readonly UINT64 = 72;
|
public static readonly DOUBLE = 72;
|
||||||
public static readonly TRUE = 73;
|
public static readonly INT32 = 73;
|
||||||
public static readonly FALSE = 74;
|
public static readonly INT64 = 74;
|
||||||
public static readonly NULL = 75;
|
public static readonly STRING = 75;
|
||||||
public static readonly ARROW = 76;
|
public static readonly UINT32 = 76;
|
||||||
public static readonly COLON = 77;
|
public static readonly UINT64 = 77;
|
||||||
public static readonly SEMI = 78;
|
public static readonly TRUE = 78;
|
||||||
public static readonly COMMA = 79;
|
public static readonly FALSE = 79;
|
||||||
public static readonly DOT = 80;
|
public static readonly NULL = 80;
|
||||||
public static readonly LBRACE = 81;
|
public static readonly ARROW = 81;
|
||||||
public static readonly RBRACE = 82;
|
public static readonly COLON = 82;
|
||||||
public static readonly LBRACK = 83;
|
public static readonly SEMI = 83;
|
||||||
public static readonly RBRACK = 84;
|
public static readonly COMMA = 84;
|
||||||
public static readonly LPAREN = 85;
|
public static readonly DOT = 85;
|
||||||
public static readonly RPAREN = 86;
|
public static readonly LBRACE = 86;
|
||||||
public static readonly LT = 87;
|
public static readonly RBRACE = 87;
|
||||||
public static readonly GT = 88;
|
public static readonly LBRACK = 88;
|
||||||
public static readonly INTEGER = 89;
|
public static readonly RBRACK = 89;
|
||||||
public static readonly JSON_NUMBER = 90;
|
public static readonly LPAREN = 90;
|
||||||
public static readonly IDENTIFIER = 91;
|
public static readonly RPAREN = 91;
|
||||||
public static readonly STRING_LITERAL = 92;
|
public static readonly LT = 92;
|
||||||
public static readonly LINE_COMMENT = 93;
|
public static readonly GT = 93;
|
||||||
public static readonly BLOCK_COMMENT = 94;
|
public static readonly INTEGER = 94;
|
||||||
public static readonly WS = 95;
|
public static readonly JSON_NUMBER = 95;
|
||||||
|
public static readonly IDENTIFIER = 96;
|
||||||
|
public static readonly STRING_LITERAL = 97;
|
||||||
|
public static readonly LINE_COMMENT = 98;
|
||||||
|
public static readonly BLOCK_COMMENT = 99;
|
||||||
|
public static readonly WS = 100;
|
||||||
|
|
||||||
public static readonly channelNames = [
|
public static readonly channelNames = [
|
||||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
||||||
@@ -108,37 +113,38 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
|||||||
null, "'workspace'", "'atom'", "'interface'", "'interfaces'", "'package'",
|
null, "'workspace'", "'atom'", "'interface'", "'interfaces'", "'package'",
|
||||||
"'value'", "'relation'", "'operation'", "'function'", "'constructor'",
|
"'value'", "'relation'", "'operation'", "'function'", "'constructor'",
|
||||||
"'constructs'", "'conform'", "'as'", "'bind'", "'to'", "'private'",
|
"'constructs'", "'conform'", "'as'", "'bind'", "'to'", "'private'",
|
||||||
"'shared'", "'state'", "'edge'", "'projection'", "'with'", "'on'",
|
"'shared'", "'state'", "'edge'", "'projection'", "'with'", "'using'",
|
||||||
"'policy'", "'default'", "'source'", "'repository'", "'commit'",
|
"'via'", "'materialize'", "'if'", "'absent'", "'on'", "'policy'",
|
||||||
"'revision'", "'id'", "'doc'", "'mode'", "'emits'", "'receiver'",
|
"'default'", "'source'", "'repository'", "'commit'", "'revision'",
|
||||||
"'requires'", "'any'", "'get'", "'set'", "'watch'", "'start'", "'stop'",
|
"'id'", "'doc'", "'mode'", "'emits'", "'receiver'", "'requires'",
|
||||||
"'read'", "'write'", "'resolve'", "'connect'", "'disconnect'", "'call'",
|
"'any'", "'get'", "'set'", "'watch'", "'start'", "'stop'", "'read'",
|
||||||
"'watch-start'", "'watch-stop'", "'subscribe'", "'unsubscribe'",
|
"'write'", "'resolve'", "'connect'", "'disconnect'", "'call'", "'watch-start'",
|
||||||
"'optimistic-register'", "'crdt'", "'optional-one'", "'exactly-one'",
|
"'watch-stop'", "'subscribe'", "'unsubscribe'", "'optimistic-register'",
|
||||||
"'many-unique'", "'many'", "'ordered'", "'unit'", "'watch-handle'",
|
"'crdt'", "'optional-one'", "'exactly-one'", "'many-unique'", "'many'",
|
||||||
"'message'", "'atom-ref'", "'interface-ref'", "'optional'", "'list'",
|
"'ordered'", "'unit'", "'watch-handle'", "'message'", "'atom-ref'",
|
||||||
"'bool'", "'bytes'", "'double'", "'int32'", "'int64'", "'string'",
|
"'interface-ref'", "'optional'", "'list'", "'bool'", "'bytes'",
|
||||||
"'uint32'", "'uint64'", "'true'", "'false'", "'null'", "'->'", "':'",
|
"'double'", "'int32'", "'int64'", "'string'", "'uint32'", "'uint64'",
|
||||||
"';'", "','", "'.'", "'{'", "'}'", "'['", "']'", "'('", "')'", "'<'",
|
"'true'", "'false'", "'null'", "'->'", "':'", "';'", "','", "'.'",
|
||||||
"'>'"
|
"'{'", "'}'", "'['", "']'", "'('", "')'", "'<'", "'>'"
|
||||||
];
|
];
|
||||||
|
|
||||||
public static readonly symbolicNames = [
|
public static readonly symbolicNames = [
|
||||||
null, "WORKSPACE", "ATOM", "INTERFACE", "INTERFACES", "PACKAGE",
|
null, "WORKSPACE", "ATOM", "INTERFACE", "INTERFACES", "PACKAGE",
|
||||||
"VALUE", "RELATION", "OPERATION", "FUNCTION", "CONSTRUCTOR", "CONSTRUCTS",
|
"VALUE", "RELATION", "OPERATION", "FUNCTION", "CONSTRUCTOR", "CONSTRUCTS",
|
||||||
"CONFORM", "AS", "BIND", "TO", "PRIVATE", "SHARED", "STATE", "EDGE",
|
"CONFORM", "AS", "BIND", "TO", "PRIVATE", "SHARED", "STATE", "EDGE",
|
||||||
"PROJECTION", "WITH", "ON", "POLICY", "DEFAULT", "SOURCE", "REPOSITORY",
|
"PROJECTION", "WITH", "USING", "VIA", "MATERIALIZE", "IF", "ABSENT",
|
||||||
"COMMIT", "REVISION", "ID", "DOC", "MODE", "EMITS", "RECEIVER",
|
"ON", "POLICY", "DEFAULT", "SOURCE", "REPOSITORY", "COMMIT", "REVISION",
|
||||||
"REQUIRES", "ANY", "GET", "SET", "WATCH", "START", "STOP", "READ",
|
"ID", "DOC", "MODE", "EMITS", "RECEIVER", "REQUIRES", "ANY", "GET",
|
||||||
"WRITE", "RESOLVE", "CONNECT", "DISCONNECT", "CALL", "WATCH_START",
|
"SET", "WATCH", "START", "STOP", "READ", "WRITE", "RESOLVE", "CONNECT",
|
||||||
"WATCH_STOP", "SUBSCRIBE", "UNSUBSCRIBE", "OPTIMISTIC_REGISTER",
|
"DISCONNECT", "CALL", "WATCH_START", "WATCH_STOP", "SUBSCRIBE",
|
||||||
"CRDT", "OPTIONAL_ONE", "EXACTLY_ONE", "MANY_UNIQUE", "MANY", "ORDERED",
|
"UNSUBSCRIBE", "OPTIMISTIC_REGISTER", "CRDT", "OPTIONAL_ONE", "EXACTLY_ONE",
|
||||||
"UNIT", "WATCH_HANDLE", "MESSAGE", "ATOM_REF", "INTERFACE_REF",
|
"MANY_UNIQUE", "MANY", "ORDERED", "UNIT", "WATCH_HANDLE", "MESSAGE",
|
||||||
"OPTIONAL", "LIST", "BOOL", "BYTES", "DOUBLE", "INT32", "INT64",
|
"ATOM_REF", "INTERFACE_REF", "OPTIONAL", "LIST", "BOOL", "BYTES",
|
||||||
"STRING", "UINT32", "UINT64", "TRUE", "FALSE", "NULL", "ARROW",
|
"DOUBLE", "INT32", "INT64", "STRING", "UINT32", "UINT64", "TRUE",
|
||||||
"COLON", "SEMI", "COMMA", "DOT", "LBRACE", "RBRACE", "LBRACK", "RBRACK",
|
"FALSE", "NULL", "ARROW", "COLON", "SEMI", "COMMA", "DOT", "LBRACE",
|
||||||
"LPAREN", "RPAREN", "LT", "GT", "INTEGER", "JSON_NUMBER", "IDENTIFIER",
|
"RBRACE", "LBRACK", "RBRACK", "LPAREN", "RPAREN", "LT", "GT", "INTEGER",
|
||||||
"STRING_LITERAL", "LINE_COMMENT", "BLOCK_COMMENT", "WS"
|
"JSON_NUMBER", "IDENTIFIER", "STRING_LITERAL", "LINE_COMMENT", "BLOCK_COMMENT",
|
||||||
|
"WS"
|
||||||
];
|
];
|
||||||
|
|
||||||
public static readonly modeNames = [
|
public static readonly modeNames = [
|
||||||
@@ -149,19 +155,19 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
|||||||
"WORKSPACE", "ATOM", "INTERFACE", "INTERFACES", "PACKAGE", "VALUE",
|
"WORKSPACE", "ATOM", "INTERFACE", "INTERFACES", "PACKAGE", "VALUE",
|
||||||
"RELATION", "OPERATION", "FUNCTION", "CONSTRUCTOR", "CONSTRUCTS",
|
"RELATION", "OPERATION", "FUNCTION", "CONSTRUCTOR", "CONSTRUCTS",
|
||||||
"CONFORM", "AS", "BIND", "TO", "PRIVATE", "SHARED", "STATE", "EDGE",
|
"CONFORM", "AS", "BIND", "TO", "PRIVATE", "SHARED", "STATE", "EDGE",
|
||||||
"PROJECTION", "WITH", "ON", "POLICY", "DEFAULT", "SOURCE", "REPOSITORY",
|
"PROJECTION", "WITH", "USING", "VIA", "MATERIALIZE", "IF", "ABSENT",
|
||||||
"COMMIT", "REVISION", "ID", "DOC", "MODE", "EMITS", "RECEIVER",
|
"ON", "POLICY", "DEFAULT", "SOURCE", "REPOSITORY", "COMMIT", "REVISION",
|
||||||
"REQUIRES", "ANY", "GET", "SET", "WATCH", "START", "STOP", "READ",
|
"ID", "DOC", "MODE", "EMITS", "RECEIVER", "REQUIRES", "ANY", "GET",
|
||||||
"WRITE", "RESOLVE", "CONNECT", "DISCONNECT", "CALL", "WATCH_START",
|
"SET", "WATCH", "START", "STOP", "READ", "WRITE", "RESOLVE", "CONNECT",
|
||||||
"WATCH_STOP", "SUBSCRIBE", "UNSUBSCRIBE", "OPTIMISTIC_REGISTER",
|
"DISCONNECT", "CALL", "WATCH_START", "WATCH_STOP", "SUBSCRIBE",
|
||||||
"CRDT", "OPTIONAL_ONE", "EXACTLY_ONE", "MANY_UNIQUE", "MANY", "ORDERED",
|
"UNSUBSCRIBE", "OPTIMISTIC_REGISTER", "CRDT", "OPTIONAL_ONE", "EXACTLY_ONE",
|
||||||
"UNIT", "WATCH_HANDLE", "MESSAGE", "ATOM_REF", "INTERFACE_REF",
|
"MANY_UNIQUE", "MANY", "ORDERED", "UNIT", "WATCH_HANDLE", "MESSAGE",
|
||||||
"OPTIONAL", "LIST", "BOOL", "BYTES", "DOUBLE", "INT32", "INT64",
|
"ATOM_REF", "INTERFACE_REF", "OPTIONAL", "LIST", "BOOL", "BYTES",
|
||||||
"STRING", "UINT32", "UINT64", "TRUE", "FALSE", "NULL", "ARROW",
|
"DOUBLE", "INT32", "INT64", "STRING", "UINT32", "UINT64", "TRUE",
|
||||||
"COLON", "SEMI", "COMMA", "DOT", "LBRACE", "RBRACE", "LBRACK", "RBRACK",
|
"FALSE", "NULL", "ARROW", "COLON", "SEMI", "COMMA", "DOT", "LBRACE",
|
||||||
"LPAREN", "RPAREN", "LT", "GT", "INTEGER", "JSON_NUMBER", "IDENTIFIER",
|
"RBRACE", "LBRACK", "RBRACK", "LPAREN", "RPAREN", "LT", "GT", "INTEGER",
|
||||||
"STRING_LITERAL", "ESC", "HEX", "LINE_COMMENT", "BLOCK_COMMENT",
|
"JSON_NUMBER", "IDENTIFIER", "STRING_LITERAL", "ESC", "HEX", "LINE_COMMENT",
|
||||||
"WS",
|
"BLOCK_COMMENT", "WS",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
@@ -183,7 +189,7 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
|||||||
public get modeNames(): string[] { return QuixosCapabilityLexer.modeNames; }
|
public get modeNames(): string[] { return QuixosCapabilityLexer.modeNames; }
|
||||||
|
|
||||||
public static readonly _serializedATN: number[] = [
|
public static readonly _serializedATN: number[] = [
|
||||||
4,0,95,895,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,
|
4,0,100,937,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,
|
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,
|
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,
|
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,
|
||||||
@@ -197,310 +203,325 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
|||||||
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,
|
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,
|
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,
|
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,1,0,1,
|
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,
|
||||||
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,
|
97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,1,0,1,0,1,0,1,0,1,
|
||||||
2,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,3,1,
|
0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,
|
||||||
3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,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,3,1,3,1,3,1,3,1,
|
||||||
5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,
|
4,1,4,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,
|
||||||
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,
|
6,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,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,
|
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,
|
||||||
1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,
|
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,
|
||||||
1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,15,1,15,
|
10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,
|
||||||
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,
|
12,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,
|
||||||
1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,
|
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,
|
||||||
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,
|
17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,
|
||||||
1,20,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,
|
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,
|
||||||
1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,
|
21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,
|
||||||
1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,
|
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,25,1,25,1,
|
||||||
1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
|
25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,
|
||||||
1,27,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,
|
27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,
|
||||||
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,
|
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,
|
||||||
1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,
|
30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,
|
||||||
1,34,1,34,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,37,1,37,1,37,
|
32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,35,1,
|
||||||
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,
|
35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,
|
||||||
1,39,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,42,
|
37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,
|
||||||
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,
|
38,1,38,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,
|
||||||
1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,
|
41,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,
|
||||||
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,
|
44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,
|
||||||
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,
|
46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,
|
||||||
1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,
|
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,
|
||||||
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,
|
49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,
|
||||||
1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,
|
51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,
|
||||||
1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,
|
52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,
|
||||||
1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,
|
53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,
|
||||||
1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,
|
54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,
|
||||||
1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,
|
55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,
|
||||||
1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,
|
56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,
|
||||||
1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,
|
57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,
|
||||||
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,
|
59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,
|
||||||
1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,
|
60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,
|
||||||
1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,
|
62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,
|
||||||
1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,65,1,65,
|
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,
|
||||||
1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,
|
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,
|
||||||
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,
|
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,
|
||||||
1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,
|
67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,
|
||||||
1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,
|
69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,
|
||||||
1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,76,1,76,
|
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,
|
||||||
1,77,1,77,1,78,1,78,1,79,1,79,1,80,1,80,1,81,1,81,1,82,1,82,1,83,
|
73,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,
|
||||||
1,83,1,84,1,84,1,85,1,85,1,86,1,86,1,87,1,87,1,88,3,88,796,8,88,
|
75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,
|
||||||
1,88,4,88,799,8,88,11,88,12,88,800,1,89,3,89,804,8,89,1,89,1,89,
|
77,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,80,1,
|
||||||
1,89,5,89,809,8,89,10,89,12,89,812,9,89,3,89,814,8,89,1,89,1,89,
|
80,1,80,1,81,1,81,1,82,1,82,1,83,1,83,1,84,1,84,1,85,1,85,1,86,1,
|
||||||
4,89,818,8,89,11,89,12,89,819,3,89,822,8,89,1,89,1,89,3,89,826,8,
|
86,1,87,1,87,1,88,1,88,1,89,1,89,1,90,1,90,1,91,1,91,1,92,1,92,1,
|
||||||
89,1,89,4,89,829,8,89,11,89,12,89,830,3,89,833,8,89,1,90,1,90,5,
|
93,3,93,838,8,93,1,93,4,93,841,8,93,11,93,12,93,842,1,94,3,94,846,
|
||||||
90,837,8,90,10,90,12,90,840,9,90,1,91,1,91,1,91,5,91,845,8,91,10,
|
8,94,1,94,1,94,1,94,5,94,851,8,94,10,94,12,94,854,9,94,3,94,856,
|
||||||
91,12,91,848,9,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,
|
8,94,1,94,1,94,4,94,860,8,94,11,94,12,94,861,3,94,864,8,94,1,94,
|
||||||
92,3,92,860,8,92,1,93,1,93,1,94,1,94,1,94,1,94,5,94,868,8,94,10,
|
1,94,3,94,868,8,94,1,94,4,94,871,8,94,11,94,12,94,872,3,94,875,8,
|
||||||
94,12,94,871,9,94,1,94,1,94,1,95,1,95,1,95,1,95,5,95,879,8,95,10,
|
94,1,95,1,95,5,95,879,8,95,10,95,12,95,882,9,95,1,96,1,96,1,96,5,
|
||||||
95,12,95,882,9,95,1,95,1,95,1,95,1,95,1,95,1,96,4,96,890,8,96,11,
|
96,887,8,96,10,96,12,96,890,9,96,1,96,1,96,1,97,1,97,1,97,1,97,1,
|
||||||
96,12,96,891,1,96,1,96,1,880,0,97,1,1,3,2,5,3,7,4,9,5,11,6,13,7,
|
97,1,97,1,97,1,97,3,97,902,8,97,1,98,1,98,1,99,1,99,1,99,1,99,5,
|
||||||
15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,
|
99,910,8,99,10,99,12,99,913,9,99,1,99,1,99,1,100,1,100,1,100,1,100,
|
||||||
37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,
|
5,100,921,8,100,10,100,12,100,924,9,100,1,100,1,100,1,100,1,100,
|
||||||
59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,
|
1,100,1,101,4,101,932,8,101,11,101,12,101,933,1,101,1,101,1,922,
|
||||||
81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,
|
0,102,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,
|
||||||
51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,
|
25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,
|
||||||
121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,
|
47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,
|
||||||
70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,
|
69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,
|
||||||
159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,
|
91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,
|
||||||
89,179,90,181,91,183,92,185,0,187,0,189,93,191,94,193,95,1,0,11,
|
111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,
|
||||||
1,0,48,57,1,0,49,57,2,0,69,69,101,101,2,0,43,43,45,45,3,0,65,90,
|
65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,
|
||||||
95,95,97,122,4,0,48,57,65,90,95,95,97,122,4,0,10,10,13,13,34,34,
|
149,75,151,76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,
|
||||||
92,92,8,0,34,34,47,47,92,92,98,98,102,102,110,110,114,114,116,116,
|
84,169,85,171,86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,
|
||||||
3,0,48,57,65,70,97,102,2,0,10,10,13,13,3,0,9,10,13,13,32,32,909,
|
187,94,189,95,191,96,193,97,195,0,197,0,199,98,201,99,203,100,1,
|
||||||
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,
|
0,11,1,0,48,57,1,0,49,57,2,0,69,69,101,101,2,0,43,43,45,45,3,0,65,
|
||||||
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,
|
90,95,95,97,122,4,0,48,57,65,90,95,95,97,122,4,0,10,10,13,13,34,
|
||||||
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,
|
34,92,92,8,0,34,34,47,47,92,92,98,98,102,102,110,110,114,114,116,
|
||||||
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,
|
116,3,0,48,57,65,70,97,102,2,0,10,10,13,13,3,0,9,10,13,13,32,32,
|
||||||
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,
|
951,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,
|
||||||
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,
|
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,
|
||||||
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,
|
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,
|
||||||
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,
|
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,
|
||||||
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,
|
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,
|
||||||
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,
|
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,
|
||||||
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,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,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,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,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,
|
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,
|
||||||
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,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,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,
|
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,
|
||||||
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,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,
|
||||||
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,
|
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,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,
|
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,
|
||||||
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,
|
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,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,1,195,1,0,0,0,3,205,
|
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,
|
||||||
1,0,0,0,5,210,1,0,0,0,7,220,1,0,0,0,9,231,1,0,0,0,11,239,1,0,0,0,
|
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,
|
||||||
13,245,1,0,0,0,15,254,1,0,0,0,17,264,1,0,0,0,19,273,1,0,0,0,21,285,
|
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,
|
||||||
1,0,0,0,23,296,1,0,0,0,25,304,1,0,0,0,27,307,1,0,0,0,29,312,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,
|
||||||
0,0,31,315,1,0,0,0,33,323,1,0,0,0,35,330,1,0,0,0,37,336,1,0,0,0,
|
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,
|
||||||
39,341,1,0,0,0,41,352,1,0,0,0,43,357,1,0,0,0,45,360,1,0,0,0,47,367,
|
0,193,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,1,205,1,
|
||||||
1,0,0,0,49,375,1,0,0,0,51,382,1,0,0,0,53,393,1,0,0,0,55,400,1,0,
|
0,0,0,3,215,1,0,0,0,5,220,1,0,0,0,7,230,1,0,0,0,9,241,1,0,0,0,11,
|
||||||
0,0,57,409,1,0,0,0,59,412,1,0,0,0,61,416,1,0,0,0,63,421,1,0,0,0,
|
249,1,0,0,0,13,255,1,0,0,0,15,264,1,0,0,0,17,274,1,0,0,0,19,283,
|
||||||
65,427,1,0,0,0,67,436,1,0,0,0,69,445,1,0,0,0,71,449,1,0,0,0,73,453,
|
1,0,0,0,21,295,1,0,0,0,23,306,1,0,0,0,25,314,1,0,0,0,27,317,1,0,
|
||||||
1,0,0,0,75,457,1,0,0,0,77,463,1,0,0,0,79,469,1,0,0,0,81,474,1,0,
|
0,0,29,322,1,0,0,0,31,325,1,0,0,0,33,333,1,0,0,0,35,340,1,0,0,0,
|
||||||
0,0,83,479,1,0,0,0,85,485,1,0,0,0,87,493,1,0,0,0,89,501,1,0,0,0,
|
37,346,1,0,0,0,39,351,1,0,0,0,41,362,1,0,0,0,43,367,1,0,0,0,45,373,
|
||||||
91,512,1,0,0,0,93,517,1,0,0,0,95,529,1,0,0,0,97,540,1,0,0,0,99,550,
|
1,0,0,0,47,377,1,0,0,0,49,389,1,0,0,0,51,392,1,0,0,0,53,399,1,0,
|
||||||
1,0,0,0,101,562,1,0,0,0,103,582,1,0,0,0,105,587,1,0,0,0,107,600,
|
0,0,55,402,1,0,0,0,57,409,1,0,0,0,59,417,1,0,0,0,61,424,1,0,0,0,
|
||||||
1,0,0,0,109,612,1,0,0,0,111,624,1,0,0,0,113,629,1,0,0,0,115,637,
|
63,435,1,0,0,0,65,442,1,0,0,0,67,451,1,0,0,0,69,454,1,0,0,0,71,458,
|
||||||
1,0,0,0,117,642,1,0,0,0,119,655,1,0,0,0,121,663,1,0,0,0,123,672,
|
1,0,0,0,73,463,1,0,0,0,75,469,1,0,0,0,77,478,1,0,0,0,79,487,1,0,
|
||||||
1,0,0,0,125,686,1,0,0,0,127,695,1,0,0,0,129,700,1,0,0,0,131,705,
|
0,0,81,491,1,0,0,0,83,495,1,0,0,0,85,499,1,0,0,0,87,505,1,0,0,0,
|
||||||
1,0,0,0,133,711,1,0,0,0,135,718,1,0,0,0,137,724,1,0,0,0,139,730,
|
89,511,1,0,0,0,91,516,1,0,0,0,93,521,1,0,0,0,95,527,1,0,0,0,97,535,
|
||||||
1,0,0,0,141,737,1,0,0,0,143,744,1,0,0,0,145,751,1,0,0,0,147,756,
|
1,0,0,0,99,543,1,0,0,0,101,554,1,0,0,0,103,559,1,0,0,0,105,571,1,
|
||||||
1,0,0,0,149,762,1,0,0,0,151,767,1,0,0,0,153,770,1,0,0,0,155,772,
|
0,0,0,107,582,1,0,0,0,109,592,1,0,0,0,111,604,1,0,0,0,113,624,1,
|
||||||
1,0,0,0,157,774,1,0,0,0,159,776,1,0,0,0,161,778,1,0,0,0,163,780,
|
0,0,0,115,629,1,0,0,0,117,642,1,0,0,0,119,654,1,0,0,0,121,666,1,
|
||||||
1,0,0,0,165,782,1,0,0,0,167,784,1,0,0,0,169,786,1,0,0,0,171,788,
|
0,0,0,123,671,1,0,0,0,125,679,1,0,0,0,127,684,1,0,0,0,129,697,1,
|
||||||
1,0,0,0,173,790,1,0,0,0,175,792,1,0,0,0,177,795,1,0,0,0,179,803,
|
0,0,0,131,705,1,0,0,0,133,714,1,0,0,0,135,728,1,0,0,0,137,737,1,
|
||||||
1,0,0,0,181,834,1,0,0,0,183,841,1,0,0,0,185,851,1,0,0,0,187,861,
|
0,0,0,139,742,1,0,0,0,141,747,1,0,0,0,143,753,1,0,0,0,145,760,1,
|
||||||
1,0,0,0,189,863,1,0,0,0,191,874,1,0,0,0,193,889,1,0,0,0,195,196,
|
0,0,0,147,766,1,0,0,0,149,772,1,0,0,0,151,779,1,0,0,0,153,786,1,
|
||||||
5,119,0,0,196,197,5,111,0,0,197,198,5,114,0,0,198,199,5,107,0,0,
|
0,0,0,155,793,1,0,0,0,157,798,1,0,0,0,159,804,1,0,0,0,161,809,1,
|
||||||
199,200,5,115,0,0,200,201,5,112,0,0,201,202,5,97,0,0,202,203,5,99,
|
0,0,0,163,812,1,0,0,0,165,814,1,0,0,0,167,816,1,0,0,0,169,818,1,
|
||||||
0,0,203,204,5,101,0,0,204,2,1,0,0,0,205,206,5,97,0,0,206,207,5,116,
|
0,0,0,171,820,1,0,0,0,173,822,1,0,0,0,175,824,1,0,0,0,177,826,1,
|
||||||
0,0,207,208,5,111,0,0,208,209,5,109,0,0,209,4,1,0,0,0,210,211,5,
|
0,0,0,179,828,1,0,0,0,181,830,1,0,0,0,183,832,1,0,0,0,185,834,1,
|
||||||
105,0,0,211,212,5,110,0,0,212,213,5,116,0,0,213,214,5,101,0,0,214,
|
0,0,0,187,837,1,0,0,0,189,845,1,0,0,0,191,876,1,0,0,0,193,883,1,
|
||||||
215,5,114,0,0,215,216,5,102,0,0,216,217,5,97,0,0,217,218,5,99,0,
|
0,0,0,195,893,1,0,0,0,197,903,1,0,0,0,199,905,1,0,0,0,201,916,1,
|
||||||
0,218,219,5,101,0,0,219,6,1,0,0,0,220,221,5,105,0,0,221,222,5,110,
|
0,0,0,203,931,1,0,0,0,205,206,5,119,0,0,206,207,5,111,0,0,207,208,
|
||||||
0,0,222,223,5,116,0,0,223,224,5,101,0,0,224,225,5,114,0,0,225,226,
|
5,114,0,0,208,209,5,107,0,0,209,210,5,115,0,0,210,211,5,112,0,0,
|
||||||
5,102,0,0,226,227,5,97,0,0,227,228,5,99,0,0,228,229,5,101,0,0,229,
|
211,212,5,97,0,0,212,213,5,99,0,0,213,214,5,101,0,0,214,2,1,0,0,
|
||||||
230,5,115,0,0,230,8,1,0,0,0,231,232,5,112,0,0,232,233,5,97,0,0,233,
|
0,215,216,5,97,0,0,216,217,5,116,0,0,217,218,5,111,0,0,218,219,5,
|
||||||
234,5,99,0,0,234,235,5,107,0,0,235,236,5,97,0,0,236,237,5,103,0,
|
109,0,0,219,4,1,0,0,0,220,221,5,105,0,0,221,222,5,110,0,0,222,223,
|
||||||
0,237,238,5,101,0,0,238,10,1,0,0,0,239,240,5,118,0,0,240,241,5,97,
|
5,116,0,0,223,224,5,101,0,0,224,225,5,114,0,0,225,226,5,102,0,0,
|
||||||
0,0,241,242,5,108,0,0,242,243,5,117,0,0,243,244,5,101,0,0,244,12,
|
226,227,5,97,0,0,227,228,5,99,0,0,228,229,5,101,0,0,229,6,1,0,0,
|
||||||
1,0,0,0,245,246,5,114,0,0,246,247,5,101,0,0,247,248,5,108,0,0,248,
|
0,230,231,5,105,0,0,231,232,5,110,0,0,232,233,5,116,0,0,233,234,
|
||||||
249,5,97,0,0,249,250,5,116,0,0,250,251,5,105,0,0,251,252,5,111,0,
|
5,101,0,0,234,235,5,114,0,0,235,236,5,102,0,0,236,237,5,97,0,0,237,
|
||||||
0,252,253,5,110,0,0,253,14,1,0,0,0,254,255,5,111,0,0,255,256,5,112,
|
238,5,99,0,0,238,239,5,101,0,0,239,240,5,115,0,0,240,8,1,0,0,0,241,
|
||||||
0,0,256,257,5,101,0,0,257,258,5,114,0,0,258,259,5,97,0,0,259,260,
|
242,5,112,0,0,242,243,5,97,0,0,243,244,5,99,0,0,244,245,5,107,0,
|
||||||
5,116,0,0,260,261,5,105,0,0,261,262,5,111,0,0,262,263,5,110,0,0,
|
0,245,246,5,97,0,0,246,247,5,103,0,0,247,248,5,101,0,0,248,10,1,
|
||||||
263,16,1,0,0,0,264,265,5,102,0,0,265,266,5,117,0,0,266,267,5,110,
|
0,0,0,249,250,5,118,0,0,250,251,5,97,0,0,251,252,5,108,0,0,252,253,
|
||||||
0,0,267,268,5,99,0,0,268,269,5,116,0,0,269,270,5,105,0,0,270,271,
|
5,117,0,0,253,254,5,101,0,0,254,12,1,0,0,0,255,256,5,114,0,0,256,
|
||||||
5,111,0,0,271,272,5,110,0,0,272,18,1,0,0,0,273,274,5,99,0,0,274,
|
257,5,101,0,0,257,258,5,108,0,0,258,259,5,97,0,0,259,260,5,116,0,
|
||||||
275,5,111,0,0,275,276,5,110,0,0,276,277,5,115,0,0,277,278,5,116,
|
0,260,261,5,105,0,0,261,262,5,111,0,0,262,263,5,110,0,0,263,14,1,
|
||||||
0,0,278,279,5,114,0,0,279,280,5,117,0,0,280,281,5,99,0,0,281,282,
|
0,0,0,264,265,5,111,0,0,265,266,5,112,0,0,266,267,5,101,0,0,267,
|
||||||
5,116,0,0,282,283,5,111,0,0,283,284,5,114,0,0,284,20,1,0,0,0,285,
|
268,5,114,0,0,268,269,5,97,0,0,269,270,5,116,0,0,270,271,5,105,0,
|
||||||
286,5,99,0,0,286,287,5,111,0,0,287,288,5,110,0,0,288,289,5,115,0,
|
0,271,272,5,111,0,0,272,273,5,110,0,0,273,16,1,0,0,0,274,275,5,102,
|
||||||
0,289,290,5,116,0,0,290,291,5,114,0,0,291,292,5,117,0,0,292,293,
|
0,0,275,276,5,117,0,0,276,277,5,110,0,0,277,278,5,99,0,0,278,279,
|
||||||
5,99,0,0,293,294,5,116,0,0,294,295,5,115,0,0,295,22,1,0,0,0,296,
|
5,116,0,0,279,280,5,105,0,0,280,281,5,111,0,0,281,282,5,110,0,0,
|
||||||
297,5,99,0,0,297,298,5,111,0,0,298,299,5,110,0,0,299,300,5,102,0,
|
282,18,1,0,0,0,283,284,5,99,0,0,284,285,5,111,0,0,285,286,5,110,
|
||||||
0,300,301,5,111,0,0,301,302,5,114,0,0,302,303,5,109,0,0,303,24,1,
|
0,0,286,287,5,115,0,0,287,288,5,116,0,0,288,289,5,114,0,0,289,290,
|
||||||
0,0,0,304,305,5,97,0,0,305,306,5,115,0,0,306,26,1,0,0,0,307,308,
|
5,117,0,0,290,291,5,99,0,0,291,292,5,116,0,0,292,293,5,111,0,0,293,
|
||||||
5,98,0,0,308,309,5,105,0,0,309,310,5,110,0,0,310,311,5,100,0,0,311,
|
294,5,114,0,0,294,20,1,0,0,0,295,296,5,99,0,0,296,297,5,111,0,0,
|
||||||
28,1,0,0,0,312,313,5,116,0,0,313,314,5,111,0,0,314,30,1,0,0,0,315,
|
297,298,5,110,0,0,298,299,5,115,0,0,299,300,5,116,0,0,300,301,5,
|
||||||
316,5,112,0,0,316,317,5,114,0,0,317,318,5,105,0,0,318,319,5,118,
|
114,0,0,301,302,5,117,0,0,302,303,5,99,0,0,303,304,5,116,0,0,304,
|
||||||
0,0,319,320,5,97,0,0,320,321,5,116,0,0,321,322,5,101,0,0,322,32,
|
305,5,115,0,0,305,22,1,0,0,0,306,307,5,99,0,0,307,308,5,111,0,0,
|
||||||
1,0,0,0,323,324,5,115,0,0,324,325,5,104,0,0,325,326,5,97,0,0,326,
|
308,309,5,110,0,0,309,310,5,102,0,0,310,311,5,111,0,0,311,312,5,
|
||||||
327,5,114,0,0,327,328,5,101,0,0,328,329,5,100,0,0,329,34,1,0,0,0,
|
114,0,0,312,313,5,109,0,0,313,24,1,0,0,0,314,315,5,97,0,0,315,316,
|
||||||
330,331,5,115,0,0,331,332,5,116,0,0,332,333,5,97,0,0,333,334,5,116,
|
5,115,0,0,316,26,1,0,0,0,317,318,5,98,0,0,318,319,5,105,0,0,319,
|
||||||
0,0,334,335,5,101,0,0,335,36,1,0,0,0,336,337,5,101,0,0,337,338,5,
|
320,5,110,0,0,320,321,5,100,0,0,321,28,1,0,0,0,322,323,5,116,0,0,
|
||||||
100,0,0,338,339,5,103,0,0,339,340,5,101,0,0,340,38,1,0,0,0,341,342,
|
323,324,5,111,0,0,324,30,1,0,0,0,325,326,5,112,0,0,326,327,5,114,
|
||||||
5,112,0,0,342,343,5,114,0,0,343,344,5,111,0,0,344,345,5,106,0,0,
|
0,0,327,328,5,105,0,0,328,329,5,118,0,0,329,330,5,97,0,0,330,331,
|
||||||
345,346,5,101,0,0,346,347,5,99,0,0,347,348,5,116,0,0,348,349,5,105,
|
5,116,0,0,331,332,5,101,0,0,332,32,1,0,0,0,333,334,5,115,0,0,334,
|
||||||
0,0,349,350,5,111,0,0,350,351,5,110,0,0,351,40,1,0,0,0,352,353,5,
|
335,5,104,0,0,335,336,5,97,0,0,336,337,5,114,0,0,337,338,5,101,0,
|
||||||
119,0,0,353,354,5,105,0,0,354,355,5,116,0,0,355,356,5,104,0,0,356,
|
0,338,339,5,100,0,0,339,34,1,0,0,0,340,341,5,115,0,0,341,342,5,116,
|
||||||
42,1,0,0,0,357,358,5,111,0,0,358,359,5,110,0,0,359,44,1,0,0,0,360,
|
0,0,342,343,5,97,0,0,343,344,5,116,0,0,344,345,5,101,0,0,345,36,
|
||||||
361,5,112,0,0,361,362,5,111,0,0,362,363,5,108,0,0,363,364,5,105,
|
1,0,0,0,346,347,5,101,0,0,347,348,5,100,0,0,348,349,5,103,0,0,349,
|
||||||
0,0,364,365,5,99,0,0,365,366,5,121,0,0,366,46,1,0,0,0,367,368,5,
|
350,5,101,0,0,350,38,1,0,0,0,351,352,5,112,0,0,352,353,5,114,0,0,
|
||||||
100,0,0,368,369,5,101,0,0,369,370,5,102,0,0,370,371,5,97,0,0,371,
|
353,354,5,111,0,0,354,355,5,106,0,0,355,356,5,101,0,0,356,357,5,
|
||||||
372,5,117,0,0,372,373,5,108,0,0,373,374,5,116,0,0,374,48,1,0,0,0,
|
99,0,0,357,358,5,116,0,0,358,359,5,105,0,0,359,360,5,111,0,0,360,
|
||||||
375,376,5,115,0,0,376,377,5,111,0,0,377,378,5,117,0,0,378,379,5,
|
361,5,110,0,0,361,40,1,0,0,0,362,363,5,119,0,0,363,364,5,105,0,0,
|
||||||
114,0,0,379,380,5,99,0,0,380,381,5,101,0,0,381,50,1,0,0,0,382,383,
|
364,365,5,116,0,0,365,366,5,104,0,0,366,42,1,0,0,0,367,368,5,117,
|
||||||
5,114,0,0,383,384,5,101,0,0,384,385,5,112,0,0,385,386,5,111,0,0,
|
0,0,368,369,5,115,0,0,369,370,5,105,0,0,370,371,5,110,0,0,371,372,
|
||||||
386,387,5,115,0,0,387,388,5,105,0,0,388,389,5,116,0,0,389,390,5,
|
5,103,0,0,372,44,1,0,0,0,373,374,5,118,0,0,374,375,5,105,0,0,375,
|
||||||
111,0,0,390,391,5,114,0,0,391,392,5,121,0,0,392,52,1,0,0,0,393,394,
|
376,5,97,0,0,376,46,1,0,0,0,377,378,5,109,0,0,378,379,5,97,0,0,379,
|
||||||
5,99,0,0,394,395,5,111,0,0,395,396,5,109,0,0,396,397,5,109,0,0,397,
|
380,5,116,0,0,380,381,5,101,0,0,381,382,5,114,0,0,382,383,5,105,
|
||||||
398,5,105,0,0,398,399,5,116,0,0,399,54,1,0,0,0,400,401,5,114,0,0,
|
0,0,383,384,5,97,0,0,384,385,5,108,0,0,385,386,5,105,0,0,386,387,
|
||||||
401,402,5,101,0,0,402,403,5,118,0,0,403,404,5,105,0,0,404,405,5,
|
5,122,0,0,387,388,5,101,0,0,388,48,1,0,0,0,389,390,5,105,0,0,390,
|
||||||
115,0,0,405,406,5,105,0,0,406,407,5,111,0,0,407,408,5,110,0,0,408,
|
391,5,102,0,0,391,50,1,0,0,0,392,393,5,97,0,0,393,394,5,98,0,0,394,
|
||||||
56,1,0,0,0,409,410,5,105,0,0,410,411,5,100,0,0,411,58,1,0,0,0,412,
|
395,5,115,0,0,395,396,5,101,0,0,396,397,5,110,0,0,397,398,5,116,
|
||||||
413,5,100,0,0,413,414,5,111,0,0,414,415,5,99,0,0,415,60,1,0,0,0,
|
0,0,398,52,1,0,0,0,399,400,5,111,0,0,400,401,5,110,0,0,401,54,1,
|
||||||
416,417,5,109,0,0,417,418,5,111,0,0,418,419,5,100,0,0,419,420,5,
|
0,0,0,402,403,5,112,0,0,403,404,5,111,0,0,404,405,5,108,0,0,405,
|
||||||
101,0,0,420,62,1,0,0,0,421,422,5,101,0,0,422,423,5,109,0,0,423,424,
|
406,5,105,0,0,406,407,5,99,0,0,407,408,5,121,0,0,408,56,1,0,0,0,
|
||||||
5,105,0,0,424,425,5,116,0,0,425,426,5,115,0,0,426,64,1,0,0,0,427,
|
409,410,5,100,0,0,410,411,5,101,0,0,411,412,5,102,0,0,412,413,5,
|
||||||
428,5,114,0,0,428,429,5,101,0,0,429,430,5,99,0,0,430,431,5,101,0,
|
97,0,0,413,414,5,117,0,0,414,415,5,108,0,0,415,416,5,116,0,0,416,
|
||||||
0,431,432,5,105,0,0,432,433,5,118,0,0,433,434,5,101,0,0,434,435,
|
58,1,0,0,0,417,418,5,115,0,0,418,419,5,111,0,0,419,420,5,117,0,0,
|
||||||
5,114,0,0,435,66,1,0,0,0,436,437,5,114,0,0,437,438,5,101,0,0,438,
|
420,421,5,114,0,0,421,422,5,99,0,0,422,423,5,101,0,0,423,60,1,0,
|
||||||
439,5,113,0,0,439,440,5,117,0,0,440,441,5,105,0,0,441,442,5,114,
|
0,0,424,425,5,114,0,0,425,426,5,101,0,0,426,427,5,112,0,0,427,428,
|
||||||
0,0,442,443,5,101,0,0,443,444,5,115,0,0,444,68,1,0,0,0,445,446,5,
|
5,111,0,0,428,429,5,115,0,0,429,430,5,105,0,0,430,431,5,116,0,0,
|
||||||
97,0,0,446,447,5,110,0,0,447,448,5,121,0,0,448,70,1,0,0,0,449,450,
|
431,432,5,111,0,0,432,433,5,114,0,0,433,434,5,121,0,0,434,62,1,0,
|
||||||
5,103,0,0,450,451,5,101,0,0,451,452,5,116,0,0,452,72,1,0,0,0,453,
|
0,0,435,436,5,99,0,0,436,437,5,111,0,0,437,438,5,109,0,0,438,439,
|
||||||
454,5,115,0,0,454,455,5,101,0,0,455,456,5,116,0,0,456,74,1,0,0,0,
|
5,109,0,0,439,440,5,105,0,0,440,441,5,116,0,0,441,64,1,0,0,0,442,
|
||||||
457,458,5,119,0,0,458,459,5,97,0,0,459,460,5,116,0,0,460,461,5,99,
|
443,5,114,0,0,443,444,5,101,0,0,444,445,5,118,0,0,445,446,5,105,
|
||||||
0,0,461,462,5,104,0,0,462,76,1,0,0,0,463,464,5,115,0,0,464,465,5,
|
0,0,446,447,5,115,0,0,447,448,5,105,0,0,448,449,5,111,0,0,449,450,
|
||||||
116,0,0,465,466,5,97,0,0,466,467,5,114,0,0,467,468,5,116,0,0,468,
|
5,110,0,0,450,66,1,0,0,0,451,452,5,105,0,0,452,453,5,100,0,0,453,
|
||||||
78,1,0,0,0,469,470,5,115,0,0,470,471,5,116,0,0,471,472,5,111,0,0,
|
68,1,0,0,0,454,455,5,100,0,0,455,456,5,111,0,0,456,457,5,99,0,0,
|
||||||
472,473,5,112,0,0,473,80,1,0,0,0,474,475,5,114,0,0,475,476,5,101,
|
457,70,1,0,0,0,458,459,5,109,0,0,459,460,5,111,0,0,460,461,5,100,
|
||||||
0,0,476,477,5,97,0,0,477,478,5,100,0,0,478,82,1,0,0,0,479,480,5,
|
0,0,461,462,5,101,0,0,462,72,1,0,0,0,463,464,5,101,0,0,464,465,5,
|
||||||
119,0,0,480,481,5,114,0,0,481,482,5,105,0,0,482,483,5,116,0,0,483,
|
109,0,0,465,466,5,105,0,0,466,467,5,116,0,0,467,468,5,115,0,0,468,
|
||||||
484,5,101,0,0,484,84,1,0,0,0,485,486,5,114,0,0,486,487,5,101,0,0,
|
74,1,0,0,0,469,470,5,114,0,0,470,471,5,101,0,0,471,472,5,99,0,0,
|
||||||
487,488,5,115,0,0,488,489,5,111,0,0,489,490,5,108,0,0,490,491,5,
|
472,473,5,101,0,0,473,474,5,105,0,0,474,475,5,118,0,0,475,476,5,
|
||||||
118,0,0,491,492,5,101,0,0,492,86,1,0,0,0,493,494,5,99,0,0,494,495,
|
101,0,0,476,477,5,114,0,0,477,76,1,0,0,0,478,479,5,114,0,0,479,480,
|
||||||
5,111,0,0,495,496,5,110,0,0,496,497,5,110,0,0,497,498,5,101,0,0,
|
5,101,0,0,480,481,5,113,0,0,481,482,5,117,0,0,482,483,5,105,0,0,
|
||||||
498,499,5,99,0,0,499,500,5,116,0,0,500,88,1,0,0,0,501,502,5,100,
|
483,484,5,114,0,0,484,485,5,101,0,0,485,486,5,115,0,0,486,78,1,0,
|
||||||
0,0,502,503,5,105,0,0,503,504,5,115,0,0,504,505,5,99,0,0,505,506,
|
0,0,487,488,5,97,0,0,488,489,5,110,0,0,489,490,5,121,0,0,490,80,
|
||||||
5,111,0,0,506,507,5,110,0,0,507,508,5,110,0,0,508,509,5,101,0,0,
|
1,0,0,0,491,492,5,103,0,0,492,493,5,101,0,0,493,494,5,116,0,0,494,
|
||||||
509,510,5,99,0,0,510,511,5,116,0,0,511,90,1,0,0,0,512,513,5,99,0,
|
82,1,0,0,0,495,496,5,115,0,0,496,497,5,101,0,0,497,498,5,116,0,0,
|
||||||
0,513,514,5,97,0,0,514,515,5,108,0,0,515,516,5,108,0,0,516,92,1,
|
498,84,1,0,0,0,499,500,5,119,0,0,500,501,5,97,0,0,501,502,5,116,
|
||||||
0,0,0,517,518,5,119,0,0,518,519,5,97,0,0,519,520,5,116,0,0,520,521,
|
0,0,502,503,5,99,0,0,503,504,5,104,0,0,504,86,1,0,0,0,505,506,5,
|
||||||
5,99,0,0,521,522,5,104,0,0,522,523,5,45,0,0,523,524,5,115,0,0,524,
|
115,0,0,506,507,5,116,0,0,507,508,5,97,0,0,508,509,5,114,0,0,509,
|
||||||
525,5,116,0,0,525,526,5,97,0,0,526,527,5,114,0,0,527,528,5,116,0,
|
510,5,116,0,0,510,88,1,0,0,0,511,512,5,115,0,0,512,513,5,116,0,0,
|
||||||
0,528,94,1,0,0,0,529,530,5,119,0,0,530,531,5,97,0,0,531,532,5,116,
|
513,514,5,111,0,0,514,515,5,112,0,0,515,90,1,0,0,0,516,517,5,114,
|
||||||
0,0,532,533,5,99,0,0,533,534,5,104,0,0,534,535,5,45,0,0,535,536,
|
0,0,517,518,5,101,0,0,518,519,5,97,0,0,519,520,5,100,0,0,520,92,
|
||||||
5,115,0,0,536,537,5,116,0,0,537,538,5,111,0,0,538,539,5,112,0,0,
|
1,0,0,0,521,522,5,119,0,0,522,523,5,114,0,0,523,524,5,105,0,0,524,
|
||||||
539,96,1,0,0,0,540,541,5,115,0,0,541,542,5,117,0,0,542,543,5,98,
|
525,5,116,0,0,525,526,5,101,0,0,526,94,1,0,0,0,527,528,5,114,0,0,
|
||||||
0,0,543,544,5,115,0,0,544,545,5,99,0,0,545,546,5,114,0,0,546,547,
|
528,529,5,101,0,0,529,530,5,115,0,0,530,531,5,111,0,0,531,532,5,
|
||||||
5,105,0,0,547,548,5,98,0,0,548,549,5,101,0,0,549,98,1,0,0,0,550,
|
108,0,0,532,533,5,118,0,0,533,534,5,101,0,0,534,96,1,0,0,0,535,536,
|
||||||
551,5,117,0,0,551,552,5,110,0,0,552,553,5,115,0,0,553,554,5,117,
|
5,99,0,0,536,537,5,111,0,0,537,538,5,110,0,0,538,539,5,110,0,0,539,
|
||||||
0,0,554,555,5,98,0,0,555,556,5,115,0,0,556,557,5,99,0,0,557,558,
|
540,5,101,0,0,540,541,5,99,0,0,541,542,5,116,0,0,542,98,1,0,0,0,
|
||||||
5,114,0,0,558,559,5,105,0,0,559,560,5,98,0,0,560,561,5,101,0,0,561,
|
543,544,5,100,0,0,544,545,5,105,0,0,545,546,5,115,0,0,546,547,5,
|
||||||
100,1,0,0,0,562,563,5,111,0,0,563,564,5,112,0,0,564,565,5,116,0,
|
99,0,0,547,548,5,111,0,0,548,549,5,110,0,0,549,550,5,110,0,0,550,
|
||||||
0,565,566,5,105,0,0,566,567,5,109,0,0,567,568,5,105,0,0,568,569,
|
551,5,101,0,0,551,552,5,99,0,0,552,553,5,116,0,0,553,100,1,0,0,0,
|
||||||
5,115,0,0,569,570,5,116,0,0,570,571,5,105,0,0,571,572,5,99,0,0,572,
|
554,555,5,99,0,0,555,556,5,97,0,0,556,557,5,108,0,0,557,558,5,108,
|
||||||
573,5,45,0,0,573,574,5,114,0,0,574,575,5,101,0,0,575,576,5,103,0,
|
0,0,558,102,1,0,0,0,559,560,5,119,0,0,560,561,5,97,0,0,561,562,5,
|
||||||
0,576,577,5,105,0,0,577,578,5,115,0,0,578,579,5,116,0,0,579,580,
|
116,0,0,562,563,5,99,0,0,563,564,5,104,0,0,564,565,5,45,0,0,565,
|
||||||
5,101,0,0,580,581,5,114,0,0,581,102,1,0,0,0,582,583,5,99,0,0,583,
|
566,5,115,0,0,566,567,5,116,0,0,567,568,5,97,0,0,568,569,5,114,0,
|
||||||
584,5,114,0,0,584,585,5,100,0,0,585,586,5,116,0,0,586,104,1,0,0,
|
0,569,570,5,116,0,0,570,104,1,0,0,0,571,572,5,119,0,0,572,573,5,
|
||||||
0,587,588,5,111,0,0,588,589,5,112,0,0,589,590,5,116,0,0,590,591,
|
97,0,0,573,574,5,116,0,0,574,575,5,99,0,0,575,576,5,104,0,0,576,
|
||||||
5,105,0,0,591,592,5,111,0,0,592,593,5,110,0,0,593,594,5,97,0,0,594,
|
577,5,45,0,0,577,578,5,115,0,0,578,579,5,116,0,0,579,580,5,111,0,
|
||||||
595,5,108,0,0,595,596,5,45,0,0,596,597,5,111,0,0,597,598,5,110,0,
|
0,580,581,5,112,0,0,581,106,1,0,0,0,582,583,5,115,0,0,583,584,5,
|
||||||
0,598,599,5,101,0,0,599,106,1,0,0,0,600,601,5,101,0,0,601,602,5,
|
117,0,0,584,585,5,98,0,0,585,586,5,115,0,0,586,587,5,99,0,0,587,
|
||||||
120,0,0,602,603,5,97,0,0,603,604,5,99,0,0,604,605,5,116,0,0,605,
|
588,5,114,0,0,588,589,5,105,0,0,589,590,5,98,0,0,590,591,5,101,0,
|
||||||
606,5,108,0,0,606,607,5,121,0,0,607,608,5,45,0,0,608,609,5,111,0,
|
0,591,108,1,0,0,0,592,593,5,117,0,0,593,594,5,110,0,0,594,595,5,
|
||||||
0,609,610,5,110,0,0,610,611,5,101,0,0,611,108,1,0,0,0,612,613,5,
|
115,0,0,595,596,5,117,0,0,596,597,5,98,0,0,597,598,5,115,0,0,598,
|
||||||
109,0,0,613,614,5,97,0,0,614,615,5,110,0,0,615,616,5,121,0,0,616,
|
599,5,99,0,0,599,600,5,114,0,0,600,601,5,105,0,0,601,602,5,98,0,
|
||||||
617,5,45,0,0,617,618,5,117,0,0,618,619,5,110,0,0,619,620,5,105,0,
|
0,602,603,5,101,0,0,603,110,1,0,0,0,604,605,5,111,0,0,605,606,5,
|
||||||
0,620,621,5,113,0,0,621,622,5,117,0,0,622,623,5,101,0,0,623,110,
|
112,0,0,606,607,5,116,0,0,607,608,5,105,0,0,608,609,5,109,0,0,609,
|
||||||
1,0,0,0,624,625,5,109,0,0,625,626,5,97,0,0,626,627,5,110,0,0,627,
|
610,5,105,0,0,610,611,5,115,0,0,611,612,5,116,0,0,612,613,5,105,
|
||||||
628,5,121,0,0,628,112,1,0,0,0,629,630,5,111,0,0,630,631,5,114,0,
|
0,0,613,614,5,99,0,0,614,615,5,45,0,0,615,616,5,114,0,0,616,617,
|
||||||
0,631,632,5,100,0,0,632,633,5,101,0,0,633,634,5,114,0,0,634,635,
|
5,101,0,0,617,618,5,103,0,0,618,619,5,105,0,0,619,620,5,115,0,0,
|
||||||
5,101,0,0,635,636,5,100,0,0,636,114,1,0,0,0,637,638,5,117,0,0,638,
|
620,621,5,116,0,0,621,622,5,101,0,0,622,623,5,114,0,0,623,112,1,
|
||||||
639,5,110,0,0,639,640,5,105,0,0,640,641,5,116,0,0,641,116,1,0,0,
|
0,0,0,624,625,5,99,0,0,625,626,5,114,0,0,626,627,5,100,0,0,627,628,
|
||||||
0,642,643,5,119,0,0,643,644,5,97,0,0,644,645,5,116,0,0,645,646,5,
|
5,116,0,0,628,114,1,0,0,0,629,630,5,111,0,0,630,631,5,112,0,0,631,
|
||||||
99,0,0,646,647,5,104,0,0,647,648,5,45,0,0,648,649,5,104,0,0,649,
|
632,5,116,0,0,632,633,5,105,0,0,633,634,5,111,0,0,634,635,5,110,
|
||||||
650,5,97,0,0,650,651,5,110,0,0,651,652,5,100,0,0,652,653,5,108,0,
|
0,0,635,636,5,97,0,0,636,637,5,108,0,0,637,638,5,45,0,0,638,639,
|
||||||
0,653,654,5,101,0,0,654,118,1,0,0,0,655,656,5,109,0,0,656,657,5,
|
5,111,0,0,639,640,5,110,0,0,640,641,5,101,0,0,641,116,1,0,0,0,642,
|
||||||
101,0,0,657,658,5,115,0,0,658,659,5,115,0,0,659,660,5,97,0,0,660,
|
643,5,101,0,0,643,644,5,120,0,0,644,645,5,97,0,0,645,646,5,99,0,
|
||||||
661,5,103,0,0,661,662,5,101,0,0,662,120,1,0,0,0,663,664,5,97,0,0,
|
0,646,647,5,116,0,0,647,648,5,108,0,0,648,649,5,121,0,0,649,650,
|
||||||
664,665,5,116,0,0,665,666,5,111,0,0,666,667,5,109,0,0,667,668,5,
|
5,45,0,0,650,651,5,111,0,0,651,652,5,110,0,0,652,653,5,101,0,0,653,
|
||||||
45,0,0,668,669,5,114,0,0,669,670,5,101,0,0,670,671,5,102,0,0,671,
|
118,1,0,0,0,654,655,5,109,0,0,655,656,5,97,0,0,656,657,5,110,0,0,
|
||||||
122,1,0,0,0,672,673,5,105,0,0,673,674,5,110,0,0,674,675,5,116,0,
|
657,658,5,121,0,0,658,659,5,45,0,0,659,660,5,117,0,0,660,661,5,110,
|
||||||
0,675,676,5,101,0,0,676,677,5,114,0,0,677,678,5,102,0,0,678,679,
|
0,0,661,662,5,105,0,0,662,663,5,113,0,0,663,664,5,117,0,0,664,665,
|
||||||
5,97,0,0,679,680,5,99,0,0,680,681,5,101,0,0,681,682,5,45,0,0,682,
|
5,101,0,0,665,120,1,0,0,0,666,667,5,109,0,0,667,668,5,97,0,0,668,
|
||||||
683,5,114,0,0,683,684,5,101,0,0,684,685,5,102,0,0,685,124,1,0,0,
|
669,5,110,0,0,669,670,5,121,0,0,670,122,1,0,0,0,671,672,5,111,0,
|
||||||
0,686,687,5,111,0,0,687,688,5,112,0,0,688,689,5,116,0,0,689,690,
|
0,672,673,5,114,0,0,673,674,5,100,0,0,674,675,5,101,0,0,675,676,
|
||||||
5,105,0,0,690,691,5,111,0,0,691,692,5,110,0,0,692,693,5,97,0,0,693,
|
5,114,0,0,676,677,5,101,0,0,677,678,5,100,0,0,678,124,1,0,0,0,679,
|
||||||
694,5,108,0,0,694,126,1,0,0,0,695,696,5,108,0,0,696,697,5,105,0,
|
680,5,117,0,0,680,681,5,110,0,0,681,682,5,105,0,0,682,683,5,116,
|
||||||
0,697,698,5,115,0,0,698,699,5,116,0,0,699,128,1,0,0,0,700,701,5,
|
0,0,683,126,1,0,0,0,684,685,5,119,0,0,685,686,5,97,0,0,686,687,5,
|
||||||
98,0,0,701,702,5,111,0,0,702,703,5,111,0,0,703,704,5,108,0,0,704,
|
116,0,0,687,688,5,99,0,0,688,689,5,104,0,0,689,690,5,45,0,0,690,
|
||||||
130,1,0,0,0,705,706,5,98,0,0,706,707,5,121,0,0,707,708,5,116,0,0,
|
691,5,104,0,0,691,692,5,97,0,0,692,693,5,110,0,0,693,694,5,100,0,
|
||||||
708,709,5,101,0,0,709,710,5,115,0,0,710,132,1,0,0,0,711,712,5,100,
|
0,694,695,5,108,0,0,695,696,5,101,0,0,696,128,1,0,0,0,697,698,5,
|
||||||
0,0,712,713,5,111,0,0,713,714,5,117,0,0,714,715,5,98,0,0,715,716,
|
109,0,0,698,699,5,101,0,0,699,700,5,115,0,0,700,701,5,115,0,0,701,
|
||||||
5,108,0,0,716,717,5,101,0,0,717,134,1,0,0,0,718,719,5,105,0,0,719,
|
702,5,97,0,0,702,703,5,103,0,0,703,704,5,101,0,0,704,130,1,0,0,0,
|
||||||
720,5,110,0,0,720,721,5,116,0,0,721,722,5,51,0,0,722,723,5,50,0,
|
705,706,5,97,0,0,706,707,5,116,0,0,707,708,5,111,0,0,708,709,5,109,
|
||||||
0,723,136,1,0,0,0,724,725,5,105,0,0,725,726,5,110,0,0,726,727,5,
|
0,0,709,710,5,45,0,0,710,711,5,114,0,0,711,712,5,101,0,0,712,713,
|
||||||
116,0,0,727,728,5,54,0,0,728,729,5,52,0,0,729,138,1,0,0,0,730,731,
|
5,102,0,0,713,132,1,0,0,0,714,715,5,105,0,0,715,716,5,110,0,0,716,
|
||||||
5,115,0,0,731,732,5,116,0,0,732,733,5,114,0,0,733,734,5,105,0,0,
|
717,5,116,0,0,717,718,5,101,0,0,718,719,5,114,0,0,719,720,5,102,
|
||||||
734,735,5,110,0,0,735,736,5,103,0,0,736,140,1,0,0,0,737,738,5,117,
|
0,0,720,721,5,97,0,0,721,722,5,99,0,0,722,723,5,101,0,0,723,724,
|
||||||
0,0,738,739,5,105,0,0,739,740,5,110,0,0,740,741,5,116,0,0,741,742,
|
5,45,0,0,724,725,5,114,0,0,725,726,5,101,0,0,726,727,5,102,0,0,727,
|
||||||
5,51,0,0,742,743,5,50,0,0,743,142,1,0,0,0,744,745,5,117,0,0,745,
|
134,1,0,0,0,728,729,5,111,0,0,729,730,5,112,0,0,730,731,5,116,0,
|
||||||
746,5,105,0,0,746,747,5,110,0,0,747,748,5,116,0,0,748,749,5,54,0,
|
0,731,732,5,105,0,0,732,733,5,111,0,0,733,734,5,110,0,0,734,735,
|
||||||
0,749,750,5,52,0,0,750,144,1,0,0,0,751,752,5,116,0,0,752,753,5,114,
|
5,97,0,0,735,736,5,108,0,0,736,136,1,0,0,0,737,738,5,108,0,0,738,
|
||||||
0,0,753,754,5,117,0,0,754,755,5,101,0,0,755,146,1,0,0,0,756,757,
|
739,5,105,0,0,739,740,5,115,0,0,740,741,5,116,0,0,741,138,1,0,0,
|
||||||
5,102,0,0,757,758,5,97,0,0,758,759,5,108,0,0,759,760,5,115,0,0,760,
|
0,742,743,5,98,0,0,743,744,5,111,0,0,744,745,5,111,0,0,745,746,5,
|
||||||
761,5,101,0,0,761,148,1,0,0,0,762,763,5,110,0,0,763,764,5,117,0,
|
108,0,0,746,140,1,0,0,0,747,748,5,98,0,0,748,749,5,121,0,0,749,750,
|
||||||
0,764,765,5,108,0,0,765,766,5,108,0,0,766,150,1,0,0,0,767,768,5,
|
5,116,0,0,750,751,5,101,0,0,751,752,5,115,0,0,752,142,1,0,0,0,753,
|
||||||
45,0,0,768,769,5,62,0,0,769,152,1,0,0,0,770,771,5,58,0,0,771,154,
|
754,5,100,0,0,754,755,5,111,0,0,755,756,5,117,0,0,756,757,5,98,0,
|
||||||
1,0,0,0,772,773,5,59,0,0,773,156,1,0,0,0,774,775,5,44,0,0,775,158,
|
0,757,758,5,108,0,0,758,759,5,101,0,0,759,144,1,0,0,0,760,761,5,
|
||||||
1,0,0,0,776,777,5,46,0,0,777,160,1,0,0,0,778,779,5,123,0,0,779,162,
|
105,0,0,761,762,5,110,0,0,762,763,5,116,0,0,763,764,5,51,0,0,764,
|
||||||
1,0,0,0,780,781,5,125,0,0,781,164,1,0,0,0,782,783,5,91,0,0,783,166,
|
765,5,50,0,0,765,146,1,0,0,0,766,767,5,105,0,0,767,768,5,110,0,0,
|
||||||
1,0,0,0,784,785,5,93,0,0,785,168,1,0,0,0,786,787,5,40,0,0,787,170,
|
768,769,5,116,0,0,769,770,5,54,0,0,770,771,5,52,0,0,771,148,1,0,
|
||||||
1,0,0,0,788,789,5,41,0,0,789,172,1,0,0,0,790,791,5,60,0,0,791,174,
|
0,0,772,773,5,115,0,0,773,774,5,116,0,0,774,775,5,114,0,0,775,776,
|
||||||
1,0,0,0,792,793,5,62,0,0,793,176,1,0,0,0,794,796,5,45,0,0,795,794,
|
5,105,0,0,776,777,5,110,0,0,777,778,5,103,0,0,778,150,1,0,0,0,779,
|
||||||
1,0,0,0,795,796,1,0,0,0,796,798,1,0,0,0,797,799,7,0,0,0,798,797,
|
780,5,117,0,0,780,781,5,105,0,0,781,782,5,110,0,0,782,783,5,116,
|
||||||
1,0,0,0,799,800,1,0,0,0,800,798,1,0,0,0,800,801,1,0,0,0,801,178,
|
0,0,783,784,5,51,0,0,784,785,5,50,0,0,785,152,1,0,0,0,786,787,5,
|
||||||
1,0,0,0,802,804,5,45,0,0,803,802,1,0,0,0,803,804,1,0,0,0,804,813,
|
117,0,0,787,788,5,105,0,0,788,789,5,110,0,0,789,790,5,116,0,0,790,
|
||||||
1,0,0,0,805,814,5,48,0,0,806,810,7,1,0,0,807,809,7,0,0,0,808,807,
|
791,5,54,0,0,791,792,5,52,0,0,792,154,1,0,0,0,793,794,5,116,0,0,
|
||||||
1,0,0,0,809,812,1,0,0,0,810,808,1,0,0,0,810,811,1,0,0,0,811,814,
|
794,795,5,114,0,0,795,796,5,117,0,0,796,797,5,101,0,0,797,156,1,
|
||||||
1,0,0,0,812,810,1,0,0,0,813,805,1,0,0,0,813,806,1,0,0,0,814,821,
|
0,0,0,798,799,5,102,0,0,799,800,5,97,0,0,800,801,5,108,0,0,801,802,
|
||||||
1,0,0,0,815,817,5,46,0,0,816,818,7,0,0,0,817,816,1,0,0,0,818,819,
|
5,115,0,0,802,803,5,101,0,0,803,158,1,0,0,0,804,805,5,110,0,0,805,
|
||||||
1,0,0,0,819,817,1,0,0,0,819,820,1,0,0,0,820,822,1,0,0,0,821,815,
|
806,5,117,0,0,806,807,5,108,0,0,807,808,5,108,0,0,808,160,1,0,0,
|
||||||
1,0,0,0,821,822,1,0,0,0,822,832,1,0,0,0,823,825,7,2,0,0,824,826,
|
0,809,810,5,45,0,0,810,811,5,62,0,0,811,162,1,0,0,0,812,813,5,58,
|
||||||
7,3,0,0,825,824,1,0,0,0,825,826,1,0,0,0,826,828,1,0,0,0,827,829,
|
0,0,813,164,1,0,0,0,814,815,5,59,0,0,815,166,1,0,0,0,816,817,5,44,
|
||||||
7,0,0,0,828,827,1,0,0,0,829,830,1,0,0,0,830,828,1,0,0,0,830,831,
|
0,0,817,168,1,0,0,0,818,819,5,46,0,0,819,170,1,0,0,0,820,821,5,123,
|
||||||
1,0,0,0,831,833,1,0,0,0,832,823,1,0,0,0,832,833,1,0,0,0,833,180,
|
0,0,821,172,1,0,0,0,822,823,5,125,0,0,823,174,1,0,0,0,824,825,5,
|
||||||
1,0,0,0,834,838,7,4,0,0,835,837,7,5,0,0,836,835,1,0,0,0,837,840,
|
91,0,0,825,176,1,0,0,0,826,827,5,93,0,0,827,178,1,0,0,0,828,829,
|
||||||
1,0,0,0,838,836,1,0,0,0,838,839,1,0,0,0,839,182,1,0,0,0,840,838,
|
5,40,0,0,829,180,1,0,0,0,830,831,5,41,0,0,831,182,1,0,0,0,832,833,
|
||||||
1,0,0,0,841,846,5,34,0,0,842,845,3,185,92,0,843,845,8,6,0,0,844,
|
5,60,0,0,833,184,1,0,0,0,834,835,5,62,0,0,835,186,1,0,0,0,836,838,
|
||||||
842,1,0,0,0,844,843,1,0,0,0,845,848,1,0,0,0,846,844,1,0,0,0,846,
|
5,45,0,0,837,836,1,0,0,0,837,838,1,0,0,0,838,840,1,0,0,0,839,841,
|
||||||
847,1,0,0,0,847,849,1,0,0,0,848,846,1,0,0,0,849,850,5,34,0,0,850,
|
7,0,0,0,840,839,1,0,0,0,841,842,1,0,0,0,842,840,1,0,0,0,842,843,
|
||||||
184,1,0,0,0,851,859,5,92,0,0,852,860,7,7,0,0,853,854,5,117,0,0,854,
|
1,0,0,0,843,188,1,0,0,0,844,846,5,45,0,0,845,844,1,0,0,0,845,846,
|
||||||
855,3,187,93,0,855,856,3,187,93,0,856,857,3,187,93,0,857,858,3,187,
|
1,0,0,0,846,855,1,0,0,0,847,856,5,48,0,0,848,852,7,1,0,0,849,851,
|
||||||
93,0,858,860,1,0,0,0,859,852,1,0,0,0,859,853,1,0,0,0,860,186,1,0,
|
7,0,0,0,850,849,1,0,0,0,851,854,1,0,0,0,852,850,1,0,0,0,852,853,
|
||||||
0,0,861,862,7,8,0,0,862,188,1,0,0,0,863,864,5,47,0,0,864,865,5,47,
|
1,0,0,0,853,856,1,0,0,0,854,852,1,0,0,0,855,847,1,0,0,0,855,848,
|
||||||
0,0,865,869,1,0,0,0,866,868,8,9,0,0,867,866,1,0,0,0,868,871,1,0,
|
1,0,0,0,856,863,1,0,0,0,857,859,5,46,0,0,858,860,7,0,0,0,859,858,
|
||||||
0,0,869,867,1,0,0,0,869,870,1,0,0,0,870,872,1,0,0,0,871,869,1,0,
|
1,0,0,0,860,861,1,0,0,0,861,859,1,0,0,0,861,862,1,0,0,0,862,864,
|
||||||
0,0,872,873,6,94,0,0,873,190,1,0,0,0,874,875,5,47,0,0,875,876,5,
|
1,0,0,0,863,857,1,0,0,0,863,864,1,0,0,0,864,874,1,0,0,0,865,867,
|
||||||
42,0,0,876,880,1,0,0,0,877,879,9,0,0,0,878,877,1,0,0,0,879,882,1,
|
7,2,0,0,866,868,7,3,0,0,867,866,1,0,0,0,867,868,1,0,0,0,868,870,
|
||||||
0,0,0,880,881,1,0,0,0,880,878,1,0,0,0,881,883,1,0,0,0,882,880,1,
|
1,0,0,0,869,871,7,0,0,0,870,869,1,0,0,0,871,872,1,0,0,0,872,870,
|
||||||
0,0,0,883,884,5,42,0,0,884,885,5,47,0,0,885,886,1,0,0,0,886,887,
|
1,0,0,0,872,873,1,0,0,0,873,875,1,0,0,0,874,865,1,0,0,0,874,875,
|
||||||
6,95,0,0,887,192,1,0,0,0,888,890,7,10,0,0,889,888,1,0,0,0,890,891,
|
1,0,0,0,875,190,1,0,0,0,876,880,7,4,0,0,877,879,7,5,0,0,878,877,
|
||||||
1,0,0,0,891,889,1,0,0,0,891,892,1,0,0,0,892,893,1,0,0,0,893,894,
|
1,0,0,0,879,882,1,0,0,0,880,878,1,0,0,0,880,881,1,0,0,0,881,192,
|
||||||
6,96,0,0,894,194,1,0,0,0,18,0,795,800,803,810,813,819,821,825,830,
|
1,0,0,0,882,880,1,0,0,0,883,888,5,34,0,0,884,887,3,195,97,0,885,
|
||||||
832,838,844,846,859,869,880,891,1,6,0,0
|
887,8,6,0,0,886,884,1,0,0,0,886,885,1,0,0,0,887,890,1,0,0,0,888,
|
||||||
|
886,1,0,0,0,888,889,1,0,0,0,889,891,1,0,0,0,890,888,1,0,0,0,891,
|
||||||
|
892,5,34,0,0,892,194,1,0,0,0,893,901,5,92,0,0,894,902,7,7,0,0,895,
|
||||||
|
896,5,117,0,0,896,897,3,197,98,0,897,898,3,197,98,0,898,899,3,197,
|
||||||
|
98,0,899,900,3,197,98,0,900,902,1,0,0,0,901,894,1,0,0,0,901,895,
|
||||||
|
1,0,0,0,902,196,1,0,0,0,903,904,7,8,0,0,904,198,1,0,0,0,905,906,
|
||||||
|
5,47,0,0,906,907,5,47,0,0,907,911,1,0,0,0,908,910,8,9,0,0,909,908,
|
||||||
|
1,0,0,0,910,913,1,0,0,0,911,909,1,0,0,0,911,912,1,0,0,0,912,914,
|
||||||
|
1,0,0,0,913,911,1,0,0,0,914,915,6,99,0,0,915,200,1,0,0,0,916,917,
|
||||||
|
5,47,0,0,917,918,5,42,0,0,918,922,1,0,0,0,919,921,9,0,0,0,920,919,
|
||||||
|
1,0,0,0,921,924,1,0,0,0,922,923,1,0,0,0,922,920,1,0,0,0,923,925,
|
||||||
|
1,0,0,0,924,922,1,0,0,0,925,926,5,42,0,0,926,927,5,47,0,0,927,928,
|
||||||
|
1,0,0,0,928,929,6,100,0,0,929,202,1,0,0,0,930,932,7,10,0,0,931,930,
|
||||||
|
1,0,0,0,932,933,1,0,0,0,933,931,1,0,0,0,933,934,1,0,0,0,934,935,
|
||||||
|
1,0,0,0,935,936,6,101,0,0,936,204,1,0,0,0,18,0,837,842,845,852,855,
|
||||||
|
861,863,867,872,874,880,886,888,901,911,922,933,1,6,0,0
|
||||||
];
|
];
|
||||||
|
|
||||||
private static __ATN: antlr.ATN;
|
private static __ATN: antlr.ATN;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -36,6 +36,7 @@ import { EdgeDeclContext } from "./QuixosCapabilityParser.js";
|
|||||||
import { EdgeEndpointContext } from "./QuixosCapabilityParser.js";
|
import { EdgeEndpointContext } from "./QuixosCapabilityParser.js";
|
||||||
import { ConformanceDeclContext } from "./QuixosCapabilityParser.js";
|
import { ConformanceDeclContext } from "./QuixosCapabilityParser.js";
|
||||||
import { ConformanceItemContext } from "./QuixosCapabilityParser.js";
|
import { ConformanceItemContext } from "./QuixosCapabilityParser.js";
|
||||||
|
import { RelationshipMaterializationDeclContext } from "./QuixosCapabilityParser.js";
|
||||||
import { OperationBindingDeclContext } from "./QuixosCapabilityParser.js";
|
import { OperationBindingDeclContext } from "./QuixosCapabilityParser.js";
|
||||||
import { MemberOperationRefContext } from "./QuixosCapabilityParser.js";
|
import { MemberOperationRefContext } from "./QuixosCapabilityParser.js";
|
||||||
import { OperationNameContext } from "./QuixosCapabilityParser.js";
|
import { OperationNameContext } from "./QuixosCapabilityParser.js";
|
||||||
@@ -268,6 +269,12 @@ export class QuixosCapabilityVisitor<Result> extends AbstractParseTreeVisitor<Re
|
|||||||
* @return the visitor result
|
* @return the visitor result
|
||||||
*/
|
*/
|
||||||
visitConformanceItem?: (ctx: ConformanceItemContext) => Result;
|
visitConformanceItem?: (ctx: ConformanceItemContext) => Result;
|
||||||
|
/**
|
||||||
|
* Visit a parse tree produced by `QuixosCapabilityParser.relationshipMaterializationDecl`.
|
||||||
|
* @param ctx the parse tree
|
||||||
|
* @return the visitor result
|
||||||
|
*/
|
||||||
|
visitRelationshipMaterializationDecl?: (ctx: RelationshipMaterializationDeclContext) => Result;
|
||||||
/**
|
/**
|
||||||
* Visit a parse tree produced by `QuixosCapabilityParser.operationBindingDecl`.
|
* Visit a parse tree produced by `QuixosCapabilityParser.operationBindingDecl`.
|
||||||
* @param ctx the parse tree
|
* @param ctx the parse tree
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import {
|
|||||||
type EdgeEndpoint,
|
type EdgeEndpoint,
|
||||||
type EdgeEndpointConstraint,
|
type EdgeEndpointConstraint,
|
||||||
type EdgePrimitive,
|
type EdgePrimitive,
|
||||||
|
type EdgeTraversal,
|
||||||
type InterfaceMember,
|
type InterfaceMember,
|
||||||
type InterfaceOperation,
|
type InterfaceOperation,
|
||||||
type InterfaceOperationMode,
|
type InterfaceOperationMode,
|
||||||
@@ -56,6 +57,7 @@ import { QuixosCapabilityParser,
|
|||||||
type ValueMemberContext,
|
type ValueMemberContext,
|
||||||
type ValueTypeContext,
|
type ValueTypeContext,
|
||||||
type RelationshipMemberContext,
|
type RelationshipMemberContext,
|
||||||
|
type RelationshipMaterializationDeclContext,
|
||||||
type WorkspaceDeclContext,
|
type WorkspaceDeclContext,
|
||||||
} from "./generated/QuixosCapabilityParser.js";
|
} from "./generated/QuixosCapabilityParser.js";
|
||||||
|
|
||||||
@@ -91,6 +93,7 @@ interface InterfaceSymbol {
|
|||||||
members: Map<
|
members: Map<
|
||||||
string,
|
string,
|
||||||
{
|
{
|
||||||
|
memberId: InterfaceMember["id"];
|
||||||
operations: Map<string, InterfaceOperation["id"]>;
|
operations: Map<string, InterfaceOperation["id"]>;
|
||||||
}
|
}
|
||||||
>;
|
>;
|
||||||
@@ -556,6 +559,7 @@ const lowerInterface = (
|
|||||||
symbol.members,
|
symbol.members,
|
||||||
member.displayName,
|
member.displayName,
|
||||||
{
|
{
|
||||||
|
memberId: member.id,
|
||||||
operations: new Map(
|
operations: new Map(
|
||||||
member.operations.map((operation) => [operation.displayName, operation.id]),
|
member.operations.map((operation) => [operation.displayName, operation.id]),
|
||||||
),
|
),
|
||||||
@@ -1003,6 +1007,34 @@ const lowerBoundDependencies = (
|
|||||||
if (!portId) {
|
if (!portId) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
const traversal = (
|
||||||
|
edgeName: string,
|
||||||
|
projectionName: string,
|
||||||
|
): EdgeTraversal | undefined => {
|
||||||
|
const attachment = requireSymbol(
|
||||||
|
state,
|
||||||
|
state.attachments,
|
||||||
|
edgeName,
|
||||||
|
entry,
|
||||||
|
"attachment",
|
||||||
|
);
|
||||||
|
if (!attachment || attachment.attachment.kind !== "edge") {
|
||||||
|
if (attachment) {
|
||||||
|
loweringIssue(state, entry, "wrong-attachment-kind", `${edgeName} is state, not an edge`);
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const projectionId = requireSymbol(
|
||||||
|
state,
|
||||||
|
attachment.projections,
|
||||||
|
projectionName,
|
||||||
|
entry,
|
||||||
|
`projection on ${edgeName}`,
|
||||||
|
);
|
||||||
|
return projectionId
|
||||||
|
? { edgeTypeId: attachment.attachment.id, projectionId }
|
||||||
|
: undefined;
|
||||||
|
};
|
||||||
if (entry.STATE()) {
|
if (entry.STATE()) {
|
||||||
const attachmentName = identifier(entry.identifier(1));
|
const attachmentName = identifier(entry.identifier(1));
|
||||||
const attachment = requireSymbol(
|
const attachment = requireSymbol(
|
||||||
@@ -1023,9 +1055,16 @@ const lowerBoundDependencies = (
|
|||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
return [{ portId, binding: { kind: "state", slotId: attachment.attachment.id } }];
|
const via = entry.VIA()
|
||||||
|
? traversal(identifier(entry.identifier(2)), identifier(entry.identifier(3)))
|
||||||
|
: undefined;
|
||||||
|
if (entry.VIA() && !via) return [];
|
||||||
|
return [{
|
||||||
|
portId,
|
||||||
|
binding: { kind: "state", slotId: attachment.attachment.id, ...(via ? { via } : {}) },
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
if (entry.EDGE()) {
|
if (entry.EDGE(0)) {
|
||||||
const attachmentName = identifier(entry.identifier(1));
|
const attachmentName = identifier(entry.identifier(1));
|
||||||
const projectionName = identifier(entry.identifier(2));
|
const projectionName = identifier(entry.identifier(2));
|
||||||
const attachment = requireSymbol(
|
const attachment = requireSymbol(
|
||||||
@@ -1053,6 +1092,10 @@ const lowerBoundDependencies = (
|
|||||||
entry,
|
entry,
|
||||||
`projection on ${attachmentName}`,
|
`projection on ${attachmentName}`,
|
||||||
);
|
);
|
||||||
|
const via = entry.VIA()
|
||||||
|
? traversal(identifier(entry.identifier(3)), identifier(entry.identifier(4)))
|
||||||
|
: undefined;
|
||||||
|
if (entry.VIA() && !via) return [];
|
||||||
return projectionId
|
return projectionId
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
@@ -1061,6 +1104,7 @@ const lowerBoundDependencies = (
|
|||||||
kind: "edge",
|
kind: "edge",
|
||||||
edgeTypeId: attachment.attachment.id,
|
edgeTypeId: attachment.attachment.id,
|
||||||
projectionId,
|
projectionId,
|
||||||
|
...(via ? { via } : {}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -1095,6 +1139,50 @@ const lowerBoundDependencies = (
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const lowerRelationshipMaterialization = (
|
||||||
|
state: LoweringState,
|
||||||
|
interfaceName: string,
|
||||||
|
context: RelationshipMaterializationDeclContext,
|
||||||
|
): WorkspaceRevision["conformances"][number]["relationshipMaterializations"][number] | undefined => {
|
||||||
|
const memberName = identifier(context.identifier(0));
|
||||||
|
const member = requireSymbol(
|
||||||
|
state,
|
||||||
|
state.interfaces.get(interfaceName)?.members ?? new Map(),
|
||||||
|
memberName,
|
||||||
|
context,
|
||||||
|
`member on ${interfaceName}`,
|
||||||
|
);
|
||||||
|
const constructorAtom = requireSymbol(
|
||||||
|
state,
|
||||||
|
state.atoms,
|
||||||
|
identifier(context.identifier(1)),
|
||||||
|
context,
|
||||||
|
"constructor atom",
|
||||||
|
);
|
||||||
|
const edgeName = identifier(context.identifier(2));
|
||||||
|
const edge = requireSymbol(state, state.attachments, edgeName, context, "attachment");
|
||||||
|
if (edge && edge.attachment.kind !== "edge") {
|
||||||
|
loweringIssue(state, context, "wrong-attachment-kind", `${edgeName} is state, not an edge`);
|
||||||
|
}
|
||||||
|
const projectionId = edge?.attachment.kind === "edge"
|
||||||
|
? requireSymbol(
|
||||||
|
state,
|
||||||
|
edge.projections,
|
||||||
|
identifier(context.identifier(3)),
|
||||||
|
context,
|
||||||
|
`projection on ${edgeName}`,
|
||||||
|
)
|
||||||
|
: undefined;
|
||||||
|
return member && constructorAtom && edge?.attachment.kind === "edge" && projectionId
|
||||||
|
? {
|
||||||
|
memberId: member.memberId,
|
||||||
|
constructorAtomId: constructorAtom,
|
||||||
|
edgeTypeId: edge.attachment.id,
|
||||||
|
constructedProjectionId: projectionId,
|
||||||
|
}
|
||||||
|
: undefined;
|
||||||
|
};
|
||||||
|
|
||||||
const lowerConformance = (
|
const lowerConformance = (
|
||||||
state: LoweringState,
|
state: LoweringState,
|
||||||
context: ConformanceDeclContext,
|
context: ConformanceDeclContext,
|
||||||
@@ -1246,11 +1334,18 @@ const lowerConformance = (
|
|||||||
]
|
]
|
||||||
: [];
|
: [];
|
||||||
});
|
});
|
||||||
|
const relationshipMaterializations = context.conformanceItem().flatMap((item) => {
|
||||||
|
const materialization = item.relationshipMaterializationDecl();
|
||||||
|
if (!materialization) return [];
|
||||||
|
const lowered = lowerRelationshipMaterialization(state, interfaceName, materialization);
|
||||||
|
return lowered ? [lowered] : [];
|
||||||
|
});
|
||||||
return {
|
return {
|
||||||
atomId,
|
atomId,
|
||||||
interfaceRevisionId: interfaceSymbol.revisionId,
|
interfaceRevisionId: interfaceSymbol.revisionId,
|
||||||
privateAttachments,
|
privateAttachments,
|
||||||
operationBindings,
|
operationBindings,
|
||||||
|
relationshipMaterializations,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -291,11 +291,12 @@ export interface PackageRevision {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export type DependencyBinding =
|
export type DependencyBinding =
|
||||||
| { kind: "state"; slotId: SlotId }
|
| { kind: "state"; slotId: SlotId; via?: EdgeTraversal }
|
||||||
| {
|
| {
|
||||||
kind: "edge";
|
kind: "edge";
|
||||||
edgeTypeId: EdgeTypeId;
|
edgeTypeId: EdgeTypeId;
|
||||||
projectionId: EdgeProjectionId;
|
projectionId: EdgeProjectionId;
|
||||||
|
via?: EdgeTraversal;
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
kind: "receiver-interface";
|
kind: "receiver-interface";
|
||||||
@@ -308,6 +309,24 @@ export interface BoundDependency {
|
|||||||
binding: DependencyBinding;
|
binding: DependencyBinding;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Selects the object at the other end of an exactly-one relationship. */
|
||||||
|
export interface EdgeTraversal {
|
||||||
|
edgeTypeId: EdgeTypeId;
|
||||||
|
projectionId: EdgeProjectionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provisional get-or-create recipe for a relationship implementation. The
|
||||||
|
* host projection is supplied by the relationship's resolve binding; this
|
||||||
|
* projection originates at the object constructed for the relationship.
|
||||||
|
*/
|
||||||
|
export interface RelationshipMaterialization {
|
||||||
|
memberId: MemberId;
|
||||||
|
constructorAtomId: AtomId;
|
||||||
|
edgeTypeId: EdgeTypeId;
|
||||||
|
constructedProjectionId: EdgeProjectionId;
|
||||||
|
}
|
||||||
|
|
||||||
export type Binding =
|
export type Binding =
|
||||||
| {
|
| {
|
||||||
kind: "state";
|
kind: "state";
|
||||||
@@ -337,6 +356,7 @@ export interface Conformance {
|
|||||||
interfaceRevisionId: InterfaceRevisionId;
|
interfaceRevisionId: InterfaceRevisionId;
|
||||||
privateAttachments: PersistentAttachment[];
|
privateAttachments: PersistentAttachment[];
|
||||||
operationBindings: OperationBinding[];
|
operationBindings: OperationBinding[];
|
||||||
|
relationshipMaterializations: RelationshipMaterialization[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AtomConstructorBinding {
|
export interface AtomConstructorBinding {
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ export type CapabilityValidationIssueCode =
|
|||||||
| "duplicate-dependency-port"
|
| "duplicate-dependency-port"
|
||||||
| "duplicate-conformance"
|
| "duplicate-conformance"
|
||||||
| "duplicate-operation-binding"
|
| "duplicate-operation-binding"
|
||||||
|
| "duplicate-relationship-materialization"
|
||||||
| "duplicate-constructor"
|
| "duplicate-constructor"
|
||||||
| "unresolved-reference"
|
| "unresolved-reference"
|
||||||
| "invalid-attachment"
|
| "invalid-attachment"
|
||||||
@@ -64,7 +65,8 @@ export type CapabilityValidationIssueCode =
|
|||||||
| "cyclic-conformance-requirement"
|
| "cyclic-conformance-requirement"
|
||||||
| "missing-operation-binding"
|
| "missing-operation-binding"
|
||||||
| "unknown-operation-binding"
|
| "unknown-operation-binding"
|
||||||
| "invalid-constructor";
|
| "invalid-constructor"
|
||||||
|
| "invalid-relationship-materialization";
|
||||||
|
|
||||||
export interface CapabilityValidationIssue {
|
export interface CapabilityValidationIssue {
|
||||||
code: CapabilityValidationIssueCode;
|
code: CapabilityValidationIssueCode;
|
||||||
@@ -460,6 +462,16 @@ const atomSatisfiesConstraint = (
|
|||||||
? constraint.atomId === atomId
|
? constraint.atomId === atomId
|
||||||
: conformances.has(conformanceKey(atomId, constraint.interfaceRevisionId));
|
: conformances.has(conformanceKey(atomId, constraint.interfaceRevisionId));
|
||||||
|
|
||||||
|
const constraintSatisfiesConstraint = (
|
||||||
|
actual: EdgeEndpointConstraint,
|
||||||
|
required: EdgeEndpointConstraint,
|
||||||
|
conformances: ReadonlyMap<string, Conformance>,
|
||||||
|
) => constraintsEqual(actual, required) || (
|
||||||
|
actual.kind === "atom" &&
|
||||||
|
required.kind === "interface" &&
|
||||||
|
atomSatisfiesConstraint(actual.atomId, required, conformances)
|
||||||
|
);
|
||||||
|
|
||||||
const canAccessAttachment = (
|
const canAccessAttachment = (
|
||||||
owner: AttachmentOwner,
|
owner: AttachmentOwner,
|
||||||
conformance: Pick<Conformance, "atomId" | "interfaceRevisionId"> | undefined,
|
conformance: Pick<Conformance, "atomId" | "interfaceRevisionId"> | undefined,
|
||||||
@@ -958,6 +970,52 @@ const validateAttachmentAccess = (
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const validateTraversal = (
|
||||||
|
issues: CapabilityValidationIssue[],
|
||||||
|
indexes: ValidationIndexes,
|
||||||
|
atomId: AtomId,
|
||||||
|
traversal: { edgeTypeId: EdgeTypeId; projectionId: EdgeProjectionId },
|
||||||
|
path: string,
|
||||||
|
) => {
|
||||||
|
const attachment = findAttachment(indexes, "edge", traversal.edgeTypeId);
|
||||||
|
if (!attachment || attachment.attachment.kind !== "edge") {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-dependency-binding",
|
||||||
|
`${path}.edgeTypeId`,
|
||||||
|
`Unknown traversal edge ${traversal.edgeTypeId}`,
|
||||||
|
);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const projection = edgeProjection(attachment.attachment, traversal.projectionId);
|
||||||
|
if (!projection) {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-dependency-binding",
|
||||||
|
`${path}.projectionId`,
|
||||||
|
`Traversal projection ${traversal.projectionId} is not on edge ${traversal.edgeTypeId}`,
|
||||||
|
);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
if (!atomSatisfiesConstraint(atomId, projection.endpoint.constraint, indexes.conformances)) {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-dependency-binding",
|
||||||
|
`${path}.projectionId`,
|
||||||
|
`Traversal projection ${traversal.projectionId} cannot originate at receiver atom ${atomId}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (projection.endpoint.cardinality !== "exactly-one") {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-dependency-binding",
|
||||||
|
`${path}.projectionId`,
|
||||||
|
"Dependency traversal must select exactly one object",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return projection;
|
||||||
|
};
|
||||||
|
|
||||||
const validateBoundDependencies = (
|
const validateBoundDependencies = (
|
||||||
issues: CapabilityValidationIssue[],
|
issues: CapabilityValidationIssue[],
|
||||||
params: {
|
params: {
|
||||||
@@ -1020,12 +1078,31 @@ const validateBoundDependencies = (
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
validateAttachmentAccess(issues, attachment, params.conformance, `${path}.binding.slotId`);
|
validateAttachmentAccess(issues, attachment, params.conformance, `${path}.binding.slotId`);
|
||||||
if (attachment.attachment.attachedTo !== params.atomId) {
|
const traversal = stateBinding.via
|
||||||
|
? validateTraversal(
|
||||||
|
issues,
|
||||||
|
params.indexes,
|
||||||
|
params.atomId,
|
||||||
|
stateBinding.via,
|
||||||
|
`${path}.binding.via`,
|
||||||
|
)
|
||||||
|
: undefined;
|
||||||
|
if (
|
||||||
|
stateBinding.via
|
||||||
|
? traversal && !atomSatisfiesConstraint(
|
||||||
|
attachment.attachment.attachedTo,
|
||||||
|
traversal.target.constraint,
|
||||||
|
params.indexes.conformances,
|
||||||
|
)
|
||||||
|
: attachment.attachment.attachedTo !== params.atomId
|
||||||
|
) {
|
||||||
issue(
|
issue(
|
||||||
issues,
|
issues,
|
||||||
"invalid-dependency-binding",
|
"invalid-dependency-binding",
|
||||||
`${path}.binding.slotId`,
|
`${path}.binding.slotId`,
|
||||||
`State ${stateBinding.slotId} is not attached to receiver atom ${params.atomId}`,
|
stateBinding.via
|
||||||
|
? `State ${stateBinding.slotId} is not attached to the traversal target`
|
||||||
|
: `State ${stateBinding.slotId} is not attached to receiver atom ${params.atomId}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (!valueTypesEqual(requirement.valueType, attachment.attachment.valueType)) {
|
if (!valueTypesEqual(requirement.valueType, attachment.attachment.valueType)) {
|
||||||
@@ -1061,16 +1138,46 @@ const validateBoundDependencies = (
|
|||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!atomSatisfiesConstraint(params.atomId, projection.endpoint.constraint, params.indexes.conformances)) {
|
const traversal = edgeBinding.via
|
||||||
|
? validateTraversal(
|
||||||
|
issues,
|
||||||
|
params.indexes,
|
||||||
|
params.atomId,
|
||||||
|
edgeBinding.via,
|
||||||
|
`${path}.binding.via`,
|
||||||
|
)
|
||||||
|
: undefined;
|
||||||
|
const originMatches = edgeBinding.via
|
||||||
|
? traversal && (
|
||||||
|
projection.endpoint.constraint.kind === "atom"
|
||||||
|
? atomSatisfiesConstraint(
|
||||||
|
projection.endpoint.constraint.atomId,
|
||||||
|
traversal.target.constraint,
|
||||||
|
params.indexes.conformances,
|
||||||
|
)
|
||||||
|
: constraintsEqual(projection.endpoint.constraint, traversal.target.constraint)
|
||||||
|
)
|
||||||
|
: atomSatisfiesConstraint(
|
||||||
|
params.atomId,
|
||||||
|
projection.endpoint.constraint,
|
||||||
|
params.indexes.conformances,
|
||||||
|
);
|
||||||
|
if (!originMatches) {
|
||||||
issue(
|
issue(
|
||||||
issues,
|
issues,
|
||||||
"invalid-dependency-binding",
|
"invalid-dependency-binding",
|
||||||
`${path}.binding.projectionId`,
|
`${path}.binding.projectionId`,
|
||||||
`Projection ${edgeBinding.projectionId} cannot originate at receiver atom ${params.atomId}`,
|
edgeBinding.via
|
||||||
|
? `Projection ${edgeBinding.projectionId} cannot originate at the traversal target`
|
||||||
|
: `Projection ${edgeBinding.projectionId} cannot originate at receiver atom ${params.atomId}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
!constraintsEqual(requirement.target, projection.target.constraint) ||
|
!constraintSatisfiesConstraint(
|
||||||
|
projection.target.constraint,
|
||||||
|
requirement.target,
|
||||||
|
params.indexes.conformances,
|
||||||
|
) ||
|
||||||
requirement.cardinality !== projection.endpoint.cardinality
|
requirement.cardinality !== projection.endpoint.cardinality
|
||||||
) {
|
) {
|
||||||
issue(
|
issue(
|
||||||
@@ -1290,8 +1397,21 @@ const validateConformances = (
|
|||||||
}
|
}
|
||||||
validateAttachmentAccess(issues, attachment, conformance, `${bindingPath}.binding.edgeTypeId`);
|
validateAttachmentAccess(issues, attachment, conformance, `${bindingPath}.binding.edgeTypeId`);
|
||||||
const projection = edgeProjection(attachment.attachment, binding.projectionId);
|
const projection = edgeProjection(attachment.attachment, binding.projectionId);
|
||||||
|
const relationshipMember = operationEntry.member.kind === "relationship"
|
||||||
|
? operationEntry.member
|
||||||
|
: undefined;
|
||||||
|
const operationEdge = relationshipMember
|
||||||
|
? {
|
||||||
|
...attachment.attachment,
|
||||||
|
endpoints: attachment.attachment.endpoints.map((endpoint, index) =>
|
||||||
|
index === (projection?.endpointIndex === 0 ? 1 : 0)
|
||||||
|
? { ...endpoint, constraint: relationshipMember.target }
|
||||||
|
: endpoint,
|
||||||
|
) as [EdgeEndpoint, EdgeEndpoint],
|
||||||
|
}
|
||||||
|
: attachment.attachment;
|
||||||
const expected = edgePrimitiveSignature(
|
const expected = edgePrimitiveSignature(
|
||||||
attachment.attachment,
|
operationEdge,
|
||||||
binding.projectionId,
|
binding.projectionId,
|
||||||
binding.primitive,
|
binding.primitive,
|
||||||
);
|
);
|
||||||
@@ -1320,7 +1440,11 @@ const validateConformances = (
|
|||||||
"Edge primitives may only implement relationship members",
|
"Edge primitives may only implement relationship members",
|
||||||
);
|
);
|
||||||
} else if (
|
} else if (
|
||||||
!constraintsEqual(operationEntry.member.target, projection.target.constraint) ||
|
!constraintSatisfiesConstraint(
|
||||||
|
projection.target.constraint,
|
||||||
|
operationEntry.member.target,
|
||||||
|
indexes.conformances,
|
||||||
|
) ||
|
||||||
operationEntry.member.cardinality !== projection.endpoint.cardinality
|
operationEntry.member.cardinality !== projection.endpoint.cardinality
|
||||||
) {
|
) {
|
||||||
issue(
|
issue(
|
||||||
@@ -1398,6 +1522,148 @@ const validateConformances = (
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const materializedMembers = new Set<string>();
|
||||||
|
for (const [materializationIndex, materialization] of
|
||||||
|
(conformance.relationshipMaterializations ?? []).entries()) {
|
||||||
|
const materializationPath =
|
||||||
|
`${path}.relationshipMaterializations[${materializationIndex}]`;
|
||||||
|
if (materializedMembers.has(materialization.memberId)) {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"duplicate-relationship-materialization",
|
||||||
|
materializationPath,
|
||||||
|
`Relationship ${materialization.memberId} has more than one materialization recipe`,
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
materializedMembers.add(materialization.memberId);
|
||||||
|
const member = interfaceEntry.revision.members.find((entry) =>
|
||||||
|
entry.id === materialization.memberId);
|
||||||
|
if (!member || member.kind !== "relationship") {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.memberId`,
|
||||||
|
`Member ${materialization.memberId} is not a relationship on ${conformance.interfaceRevisionId}`,
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (member.cardinality !== "optional-one") {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.memberId`,
|
||||||
|
"A lazily constructed relationship must be optional-one before construction",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const resolveOperation = member.operations.find((entry) =>
|
||||||
|
entry.displayName === "resolve");
|
||||||
|
const resolveBinding = resolveOperation
|
||||||
|
? bindings.get(resolveOperation.id)
|
||||||
|
: undefined;
|
||||||
|
if (!resolveBinding || resolveBinding.kind !== "edge") {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.memberId`,
|
||||||
|
"A materialized relationship must bind its resolve operation to an edge",
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (resolveBinding.edgeTypeId !== materialization.edgeTypeId) {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.edgeTypeId`,
|
||||||
|
"Materialization and relationship resolution must use the same edge",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const attachment = findAttachment(indexes, "edge", materialization.edgeTypeId);
|
||||||
|
if (!attachment || attachment.attachment.kind !== "edge") {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.edgeTypeId`,
|
||||||
|
`Unknown materialization edge ${materialization.edgeTypeId}`,
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
validateAttachmentAccess(
|
||||||
|
issues,
|
||||||
|
attachment,
|
||||||
|
conformance,
|
||||||
|
`${materializationPath}.edgeTypeId`,
|
||||||
|
);
|
||||||
|
const hostProjection = edgeProjection(
|
||||||
|
attachment.attachment,
|
||||||
|
resolveBinding.projectionId,
|
||||||
|
);
|
||||||
|
const constructedProjection = edgeProjection(
|
||||||
|
attachment.attachment,
|
||||||
|
materialization.constructedProjectionId,
|
||||||
|
);
|
||||||
|
if (!hostProjection || !constructedProjection ||
|
||||||
|
hostProjection.endpointIndex === constructedProjection.endpointIndex) {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.constructedProjectionId`,
|
||||||
|
"Materialization must connect through the opposite projection of the resolved edge",
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!atomSatisfiesConstraint(
|
||||||
|
materialization.constructorAtomId,
|
||||||
|
member.target,
|
||||||
|
indexes.conformances,
|
||||||
|
)) {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.constructorAtomId`,
|
||||||
|
`Constructed atom ${materialization.constructorAtomId} does not satisfy the relationship target`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!atomSatisfiesConstraint(
|
||||||
|
materialization.constructorAtomId,
|
||||||
|
constructedProjection.endpoint.constraint,
|
||||||
|
indexes.conformances,
|
||||||
|
) || !atomSatisfiesConstraint(
|
||||||
|
conformance.atomId,
|
||||||
|
constructedProjection.target.constraint,
|
||||||
|
indexes.conformances,
|
||||||
|
)) {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.constructedProjectionId`,
|
||||||
|
"Constructed projection does not connect the constructed atom back to the host atom",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const constructor = indexes.constructors.get(materialization.constructorAtomId);
|
||||||
|
const constructorExport = constructor
|
||||||
|
? indexes.packages.get(constructor.packageRevisionId)?.exports.get(constructor.exportId)
|
||||||
|
: undefined;
|
||||||
|
if (!constructor || !constructorExport || constructorExport.kind !== "constructor") {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.constructorAtomId`,
|
||||||
|
`Constructed atom ${materialization.constructorAtomId} has no valid constructor`,
|
||||||
|
);
|
||||||
|
} else if (!valueTypesEqual(
|
||||||
|
constructorExport.inputType,
|
||||||
|
valueType.atomRef(conformance.atomId),
|
||||||
|
)) {
|
||||||
|
issue(
|
||||||
|
issues,
|
||||||
|
"invalid-relationship-materialization",
|
||||||
|
`${materializationPath}.constructorAtomId`,
|
||||||
|
`Component constructor must accept ${typeLabel(valueType.atomRef(conformance.atomId))}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (const operation of interfaceEntry.operations.values()) {
|
for (const operation of interfaceEntry.operations.values()) {
|
||||||
if (!bindings.has(operation.operation.id)) {
|
if (!bindings.has(operation.operation.id)) {
|
||||||
issue(
|
issue(
|
||||||
@@ -1714,9 +1980,15 @@ export const computeCapabilityClosure = (
|
|||||||
switch (dependency.binding.kind) {
|
switch (dependency.binding.kind) {
|
||||||
case "state":
|
case "state":
|
||||||
attachments.add(dependency.binding.slotId);
|
attachments.add(dependency.binding.slotId);
|
||||||
|
if (dependency.binding.via) {
|
||||||
|
attachments.add(dependency.binding.via.edgeTypeId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "edge":
|
case "edge":
|
||||||
attachments.add(dependency.binding.edgeTypeId);
|
attachments.add(dependency.binding.edgeTypeId);
|
||||||
|
if (dependency.binding.via) {
|
||||||
|
attachments.add(dependency.binding.via.edgeTypeId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "receiver-interface":
|
case "receiver-interface":
|
||||||
queued.push({
|
queued.push({
|
||||||
@@ -1772,6 +2044,16 @@ export const computeCapabilityClosure = (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (const materialization of
|
||||||
|
conformance.source.relationshipMaterializations ?? []) {
|
||||||
|
attachments.add(materialization.edgeTypeId);
|
||||||
|
constructors.add(materialization.constructorAtomId);
|
||||||
|
const constructor = plan.constructors.get(materialization.constructorAtomId);
|
||||||
|
if (constructor) {
|
||||||
|
packages.add(constructor.packageRevisionId);
|
||||||
|
includeDependencies(materialization.constructorAtomId, constructor.dependencies);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
+74
-17
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
|
|||||||
* Describes the file quixos/orch.proto.
|
* Describes the file quixos/orch.proto.
|
||||||
*/
|
*/
|
||||||
export const file_quixos_orch: GenFile = /*@__PURE__*/
|
export const file_quixos_orch: GenFile = /*@__PURE__*/
|
||||||
fileDesc("ChFxdWl4b3Mvb3JjaC5wcm90bxILcXVpeG9zLm9yY2gipQEKFkNvbnN0cnVjdE9iamVjdFJlcXVlc3QSDwoHYXRvbV9pZBgBIAEoCRI9CgVpbnB1dBgCIAMoCzIuLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiPwoXQ29uc3RydWN0T2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdCLUAQoXSW52b2tlQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI+CgVpbnB1dBgDIAMoCzIvLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0LklucHV0RW50cnkaOwoKSW5wdXRFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIpgBChhJbnZva2VDYXBhYmlsaXR5UmVzcG9uc2USFQoNaW52b2NhdGlvbl9pZBgBIAEoCRIrCgphY3RpdmF0aW9uGAIgASgLMhcucXVpeG9zLm9yY2guQWN0aXZhdGlvbhIKCgJvaxgDIAEoCBIdCgZyZXN1bHQYBCABKAsyDS5jYW1pbm8uVmFsdWUSDQoFZXJyb3IYBSABKAki0gEKFldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI9CgVpbnB1dBgDIAMoCzIuLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEi4wEKFFdhdGNoQ2FwYWJpbGl0eUV2ZW50EhUKDWludm9jYXRpb25faWQYASABKAkSKwoKYWN0aXZhdGlvbhgCIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24SEAoId2F0Y2hfaWQYAyABKAkSHAoFdmFsdWUYBCABKAsyDS5jYW1pbm8uVmFsdWUSNwoMZGVwZW5kZW5jaWVzGAUgAygLMiEucXVpeG9zLnJ1bnRpbWUuRGVyaXZlZERlcGVuZGVuY3kSDQoFZXJyb3IYBiABKAkSDwoHaW5pdGlhbBgHIAEoCCIVChNHZXRXb3Jrc3BhY2VSZXF1ZXN0ImcKFEdldFdvcmtzcGFjZVJlc3BvbnNlEhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIdChV3b3Jrc3BhY2VfcmV2aXNpb25faWQYAiABKAkSGgoSc291cmNlX3Jvb3RfY29tbWl0GAMgASgJIhgKFkxpc3RBY3RpdmF0aW9uc1JlcXVlc3QiHwodTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1JlcXVlc3QiUAoeTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1Jlc3BvbnNlEi4KC2Rlc2NyaXB0b3JzGAEgAygLMhkucXVpeG9zLlBhY2thZ2VEZXNjcmlwdG9yIhwKGkxpc3RQYWNrYWdlUnVudGltZXNSZXF1ZXN0IlIKG0xpc3RQYWNrYWdlUnVudGltZXNSZXNwb25zZRIzCghydW50aW1lcxgBIAMoCzIhLnF1aXhvcy5vcmNoLlBhY2thZ2VSdW50aW1lU3RhdHVzIkcKF0xpc3RBY3RpdmF0aW9uc1Jlc3BvbnNlEiwKC2FjdGl2YXRpb25zGAEgAygLMhcucXVpeG9zLm9yY2guQWN0aXZhdGlvbiI/ChZDbG9zZUFjdGl2YXRpb25SZXF1ZXN0EhUKDWFjdGl2YXRpb25faWQYASABKAkSDgoGcmVhc29uGAIgASgJIkYKF0Nsb3NlQWN0aXZhdGlvblJlc3BvbnNlEisKCmFjdGl2YXRpb24YASABKAsyFy5xdWl4b3Mub3JjaC5BY3RpdmF0aW9uIusBCgpBY3RpdmF0aW9uEhUKDWFjdGl2YXRpb25faWQYASABKAkSKAoGZXhwb3J0GAIgASgLMhgucXVpeG9zLlBhY2thZ2VFeHBvcnRSZWYSEQoJb2JqZWN0X2lkGAMgASgJEg0KBXN0YXRlGAQgASgJEg4KBmRlbWFuZBgFIAEoDRIRCglvcGVuZWRfYXQYBiABKAkSFAoMbGFzdF91c2VkX2F0GAcgASgJEhgKEGlkbGVfZGVhZGxpbmVfYXQYCCABKAkSEQoJY2xvc2VkX2F0GAkgASgJEhQKDGNsb3NlX3JlYXNvbhgKIAEoCSKzAgoUUGFja2FnZVJ1bnRpbWVTdGF0dXMSEwoLcnVudGltZV9rZXkYASABKAkSGwoTcGFja2FnZV9yZXZpc2lvbl9pZBgCIAEoCRIZChFzb3VyY2VfcmVwb3NpdG9yeRgDIAEoCRIVCg1zb3VyY2VfY29tbWl0GAQgASgJEhQKDGJ1aWxkX3RhcmdldBgFIAEoCRITCgtzZXJ2ZXJfcGF0aBgGIAEoCRILCgNwaWQYByABKA0SDQoFc3RhdGUYCCABKAkSEgoKc3RhcnRlZF9hdBgJIAEoCRIZChFsYXN0X2hhbmRzaGFrZV9hdBgKIAEoCRIgChhydW50aW1lX3Byb3RvY29sX3ZlcnNpb24YCyABKAkSHwoXYWR2ZXJ0aXNlZF9leHBvcnRfY291bnQYDCABKA0ynwYKE09yY2hlc3RyYXRvclJ1bnRpbWUSXwoQSW52b2tlQ2FwYWJpbGl0eRIkLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0GiUucXVpeG9zLm9yY2guSW52b2tlQ2FwYWJpbGl0eVJlc3BvbnNlElsKD1dhdGNoQ2FwYWJpbGl0eRIjLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QaIS5xdWl4b3Mub3JjaC5XYXRjaENhcGFiaWxpdHlFdmVudDABElwKD0NvbnN0cnVjdE9iamVjdBIjLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QaJC5xdWl4b3Mub3JjaC5Db25zdHJ1Y3RPYmplY3RSZXNwb25zZRJTCgxHZXRXb3Jrc3BhY2USIC5xdWl4b3Mub3JjaC5HZXRXb3Jrc3BhY2VSZXF1ZXN0GiEucXVpeG9zLm9yY2guR2V0V29ya3NwYWNlUmVzcG9uc2UScQoWTGlzdFBhY2thZ2VEZXNjcmlwdG9ycxIqLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlRGVzY3JpcHRvcnNSZXF1ZXN0GisucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1Jlc3BvbnNlEmgKE0xpc3RQYWNrYWdlUnVudGltZXMSJy5xdWl4b3Mub3JjaC5MaXN0UGFja2FnZVJ1bnRpbWVzUmVxdWVzdBooLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlUnVudGltZXNSZXNwb25zZRJcCg9MaXN0QWN0aXZhdGlvbnMSIy5xdWl4b3Mub3JjaC5MaXN0QWN0aXZhdGlvbnNSZXF1ZXN0GiQucXVpeG9zLm9yY2guTGlzdEFjdGl2YXRpb25zUmVzcG9uc2USXAoPQ2xvc2VBY3RpdmF0aW9uEiMucXVpeG9zLm9yY2guQ2xvc2VBY3RpdmF0aW9uUmVxdWVzdBokLnF1aXhvcy5vcmNoLkNsb3NlQWN0aXZhdGlvblJlc3BvbnNlYgZwcm90bzM", [file_camino_api, file_quixos_package, file_quixos_refs, file_quixos_runtime]);
|
fileDesc("ChFxdWl4b3Mvb3JjaC5wcm90bxILcXVpeG9zLm9yY2gipQEKFkNvbnN0cnVjdE9iamVjdFJlcXVlc3QSDwoHYXRvbV9pZBgBIAEoCRI9CgVpbnB1dBgCIAMoCzIuLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiPwoXQ29uc3RydWN0T2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdCJtCiZSZXNvbHZlT3JDb25zdHJ1Y3RSZWxhdGVkT2JqZWN0UmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhEKCW1lbWJlcl9pZBgDIAEoCSJkCidSZXNvbHZlT3JDb25zdHJ1Y3RSZWxhdGVkT2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdBITCgtjb25zdHJ1Y3RlZBgCIAEoCCLUAQoXSW52b2tlQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI+CgVpbnB1dBgDIAMoCzIvLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0LklucHV0RW50cnkaOwoKSW5wdXRFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIpgBChhJbnZva2VDYXBhYmlsaXR5UmVzcG9uc2USFQoNaW52b2NhdGlvbl9pZBgBIAEoCRIrCgphY3RpdmF0aW9uGAIgASgLMhcucXVpeG9zLm9yY2guQWN0aXZhdGlvbhIKCgJvaxgDIAEoCBIdCgZyZXN1bHQYBCABKAsyDS5jYW1pbm8uVmFsdWUSDQoFZXJyb3IYBSABKAki0gEKFldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI9CgVpbnB1dBgDIAMoCzIuLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEi4wEKFFdhdGNoQ2FwYWJpbGl0eUV2ZW50EhUKDWludm9jYXRpb25faWQYASABKAkSKwoKYWN0aXZhdGlvbhgCIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24SEAoId2F0Y2hfaWQYAyABKAkSHAoFdmFsdWUYBCABKAsyDS5jYW1pbm8uVmFsdWUSNwoMZGVwZW5kZW5jaWVzGAUgAygLMiEucXVpeG9zLnJ1bnRpbWUuRGVyaXZlZERlcGVuZGVuY3kSDQoFZXJyb3IYBiABKAkSDwoHaW5pdGlhbBgHIAEoCCIVChNHZXRXb3Jrc3BhY2VSZXF1ZXN0ImcKFEdldFdvcmtzcGFjZVJlc3BvbnNlEhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIdChV3b3Jrc3BhY2VfcmV2aXNpb25faWQYAiABKAkSGgoSc291cmNlX3Jvb3RfY29tbWl0GAMgASgJIhgKFkxpc3RBY3RpdmF0aW9uc1JlcXVlc3QiHwodTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1JlcXVlc3QiUAoeTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1Jlc3BvbnNlEi4KC2Rlc2NyaXB0b3JzGAEgAygLMhkucXVpeG9zLlBhY2thZ2VEZXNjcmlwdG9yIhwKGkxpc3RQYWNrYWdlUnVudGltZXNSZXF1ZXN0IlIKG0xpc3RQYWNrYWdlUnVudGltZXNSZXNwb25zZRIzCghydW50aW1lcxgBIAMoCzIhLnF1aXhvcy5vcmNoLlBhY2thZ2VSdW50aW1lU3RhdHVzIkcKF0xpc3RBY3RpdmF0aW9uc1Jlc3BvbnNlEiwKC2FjdGl2YXRpb25zGAEgAygLMhcucXVpeG9zLm9yY2guQWN0aXZhdGlvbiI/ChZDbG9zZUFjdGl2YXRpb25SZXF1ZXN0EhUKDWFjdGl2YXRpb25faWQYASABKAkSDgoGcmVhc29uGAIgASgJIkYKF0Nsb3NlQWN0aXZhdGlvblJlc3BvbnNlEisKCmFjdGl2YXRpb24YASABKAsyFy5xdWl4b3Mub3JjaC5BY3RpdmF0aW9uIusBCgpBY3RpdmF0aW9uEhUKDWFjdGl2YXRpb25faWQYASABKAkSKAoGZXhwb3J0GAIgASgLMhgucXVpeG9zLlBhY2thZ2VFeHBvcnRSZWYSEQoJb2JqZWN0X2lkGAMgASgJEg0KBXN0YXRlGAQgASgJEg4KBmRlbWFuZBgFIAEoDRIRCglvcGVuZWRfYXQYBiABKAkSFAoMbGFzdF91c2VkX2F0GAcgASgJEhgKEGlkbGVfZGVhZGxpbmVfYXQYCCABKAkSEQoJY2xvc2VkX2F0GAkgASgJEhQKDGNsb3NlX3JlYXNvbhgKIAEoCSKzAgoUUGFja2FnZVJ1bnRpbWVTdGF0dXMSEwoLcnVudGltZV9rZXkYASABKAkSGwoTcGFja2FnZV9yZXZpc2lvbl9pZBgCIAEoCRIZChFzb3VyY2VfcmVwb3NpdG9yeRgDIAEoCRIVCg1zb3VyY2VfY29tbWl0GAQgASgJEhQKDGJ1aWxkX3RhcmdldBgFIAEoCRITCgtzZXJ2ZXJfcGF0aBgGIAEoCRILCgNwaWQYByABKA0SDQoFc3RhdGUYCCABKAkSEgoKc3RhcnRlZF9hdBgJIAEoCRIZChFsYXN0X2hhbmRzaGFrZV9hdBgKIAEoCRIgChhydW50aW1lX3Byb3RvY29sX3ZlcnNpb24YCyABKAkSHwoXYWR2ZXJ0aXNlZF9leHBvcnRfY291bnQYDCABKA0yrgcKE09yY2hlc3RyYXRvclJ1bnRpbWUSXwoQSW52b2tlQ2FwYWJpbGl0eRIkLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0GiUucXVpeG9zLm9yY2guSW52b2tlQ2FwYWJpbGl0eVJlc3BvbnNlElsKD1dhdGNoQ2FwYWJpbGl0eRIjLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QaIS5xdWl4b3Mub3JjaC5XYXRjaENhcGFiaWxpdHlFdmVudDABElwKD0NvbnN0cnVjdE9iamVjdBIjLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QaJC5xdWl4b3Mub3JjaC5Db25zdHJ1Y3RPYmplY3RSZXNwb25zZRKMAQofUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdBIzLnF1aXhvcy5vcmNoLlJlc29sdmVPckNvbnN0cnVjdFJlbGF0ZWRPYmplY3RSZXF1ZXN0GjQucXVpeG9zLm9yY2guUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdFJlc3BvbnNlElMKDEdldFdvcmtzcGFjZRIgLnF1aXhvcy5vcmNoLkdldFdvcmtzcGFjZVJlcXVlc3QaIS5xdWl4b3Mub3JjaC5HZXRXb3Jrc3BhY2VSZXNwb25zZRJxChZMaXN0UGFja2FnZURlc2NyaXB0b3JzEioucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1JlcXVlc3QaKy5xdWl4b3Mub3JjaC5MaXN0UGFja2FnZURlc2NyaXB0b3JzUmVzcG9uc2USaAoTTGlzdFBhY2thZ2VSdW50aW1lcxInLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlUnVudGltZXNSZXF1ZXN0GigucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VSdW50aW1lc1Jlc3BvbnNlElwKD0xpc3RBY3RpdmF0aW9ucxIjLnF1aXhvcy5vcmNoLkxpc3RBY3RpdmF0aW9uc1JlcXVlc3QaJC5xdWl4b3Mub3JjaC5MaXN0QWN0aXZhdGlvbnNSZXNwb25zZRJcCg9DbG9zZUFjdGl2YXRpb24SIy5xdWl4b3Mub3JjaC5DbG9zZUFjdGl2YXRpb25SZXF1ZXN0GiQucXVpeG9zLm9yY2guQ2xvc2VBY3RpdmF0aW9uUmVzcG9uc2ViBnByb3RvMw", [file_camino_api, file_quixos_package, file_quixos_refs, file_quixos_runtime]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.ConstructObjectRequest
|
* @generated from message quixos.orch.ConstructObjectRequest
|
||||||
@@ -59,6 +59,55 @@ export type ConstructObjectResponse = Message<"quixos.orch.ConstructObjectRespon
|
|||||||
export const ConstructObjectResponseSchema: GenMessage<ConstructObjectResponse> = /*@__PURE__*/
|
export const ConstructObjectResponseSchema: GenMessage<ConstructObjectResponse> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 1);
|
messageDesc(file_quixos_orch, 1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message quixos.orch.ResolveOrConstructRelatedObjectRequest
|
||||||
|
*/
|
||||||
|
export type ResolveOrConstructRelatedObjectRequest = Message<"quixos.orch.ResolveOrConstructRelatedObjectRequest"> & {
|
||||||
|
/**
|
||||||
|
* @generated from field: string object_id = 1;
|
||||||
|
*/
|
||||||
|
objectId: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string interface_revision_id = 2;
|
||||||
|
*/
|
||||||
|
interfaceRevisionId: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string member_id = 3;
|
||||||
|
*/
|
||||||
|
memberId: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message quixos.orch.ResolveOrConstructRelatedObjectRequest.
|
||||||
|
* Use `create(ResolveOrConstructRelatedObjectRequestSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const ResolveOrConstructRelatedObjectRequestSchema: GenMessage<ResolveOrConstructRelatedObjectRequest> = /*@__PURE__*/
|
||||||
|
messageDesc(file_quixos_orch, 2);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message quixos.orch.ResolveOrConstructRelatedObjectResponse
|
||||||
|
*/
|
||||||
|
export type ResolveOrConstructRelatedObjectResponse = Message<"quixos.orch.ResolveOrConstructRelatedObjectResponse"> & {
|
||||||
|
/**
|
||||||
|
* @generated from field: camino.CaminoObject object = 1;
|
||||||
|
*/
|
||||||
|
object?: CaminoObject | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: bool constructed = 2;
|
||||||
|
*/
|
||||||
|
constructed: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message quixos.orch.ResolveOrConstructRelatedObjectResponse.
|
||||||
|
* Use `create(ResolveOrConstructRelatedObjectResponseSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const ResolveOrConstructRelatedObjectResponseSchema: GenMessage<ResolveOrConstructRelatedObjectResponse> = /*@__PURE__*/
|
||||||
|
messageDesc(file_quixos_orch, 3);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.InvokeCapabilityRequest
|
* @generated from message quixos.orch.InvokeCapabilityRequest
|
||||||
*/
|
*/
|
||||||
@@ -84,7 +133,7 @@ export type InvokeCapabilityRequest = Message<"quixos.orch.InvokeCapabilityReque
|
|||||||
* Use `create(InvokeCapabilityRequestSchema)` to create a new message.
|
* Use `create(InvokeCapabilityRequestSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const InvokeCapabilityRequestSchema: GenMessage<InvokeCapabilityRequest> = /*@__PURE__*/
|
export const InvokeCapabilityRequestSchema: GenMessage<InvokeCapabilityRequest> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 2);
|
messageDesc(file_quixos_orch, 4);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.InvokeCapabilityResponse
|
* @generated from message quixos.orch.InvokeCapabilityResponse
|
||||||
@@ -121,7 +170,7 @@ export type InvokeCapabilityResponse = Message<"quixos.orch.InvokeCapabilityResp
|
|||||||
* Use `create(InvokeCapabilityResponseSchema)` to create a new message.
|
* Use `create(InvokeCapabilityResponseSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const InvokeCapabilityResponseSchema: GenMessage<InvokeCapabilityResponse> = /*@__PURE__*/
|
export const InvokeCapabilityResponseSchema: GenMessage<InvokeCapabilityResponse> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 3);
|
messageDesc(file_quixos_orch, 5);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.WatchCapabilityRequest
|
* @generated from message quixos.orch.WatchCapabilityRequest
|
||||||
@@ -148,7 +197,7 @@ export type WatchCapabilityRequest = Message<"quixos.orch.WatchCapabilityRequest
|
|||||||
* Use `create(WatchCapabilityRequestSchema)` to create a new message.
|
* Use `create(WatchCapabilityRequestSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const WatchCapabilityRequestSchema: GenMessage<WatchCapabilityRequest> = /*@__PURE__*/
|
export const WatchCapabilityRequestSchema: GenMessage<WatchCapabilityRequest> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 4);
|
messageDesc(file_quixos_orch, 6);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.WatchCapabilityEvent
|
* @generated from message quixos.orch.WatchCapabilityEvent
|
||||||
@@ -195,7 +244,7 @@ export type WatchCapabilityEvent = Message<"quixos.orch.WatchCapabilityEvent"> &
|
|||||||
* Use `create(WatchCapabilityEventSchema)` to create a new message.
|
* Use `create(WatchCapabilityEventSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const WatchCapabilityEventSchema: GenMessage<WatchCapabilityEvent> = /*@__PURE__*/
|
export const WatchCapabilityEventSchema: GenMessage<WatchCapabilityEvent> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 5);
|
messageDesc(file_quixos_orch, 7);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.GetWorkspaceRequest
|
* @generated from message quixos.orch.GetWorkspaceRequest
|
||||||
@@ -208,7 +257,7 @@ export type GetWorkspaceRequest = Message<"quixos.orch.GetWorkspaceRequest"> & {
|
|||||||
* Use `create(GetWorkspaceRequestSchema)` to create a new message.
|
* Use `create(GetWorkspaceRequestSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const GetWorkspaceRequestSchema: GenMessage<GetWorkspaceRequest> = /*@__PURE__*/
|
export const GetWorkspaceRequestSchema: GenMessage<GetWorkspaceRequest> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 6);
|
messageDesc(file_quixos_orch, 8);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.GetWorkspaceResponse
|
* @generated from message quixos.orch.GetWorkspaceResponse
|
||||||
@@ -235,7 +284,7 @@ export type GetWorkspaceResponse = Message<"quixos.orch.GetWorkspaceResponse"> &
|
|||||||
* Use `create(GetWorkspaceResponseSchema)` to create a new message.
|
* Use `create(GetWorkspaceResponseSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const GetWorkspaceResponseSchema: GenMessage<GetWorkspaceResponse> = /*@__PURE__*/
|
export const GetWorkspaceResponseSchema: GenMessage<GetWorkspaceResponse> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 7);
|
messageDesc(file_quixos_orch, 9);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.ListActivationsRequest
|
* @generated from message quixos.orch.ListActivationsRequest
|
||||||
@@ -248,7 +297,7 @@ export type ListActivationsRequest = Message<"quixos.orch.ListActivationsRequest
|
|||||||
* Use `create(ListActivationsRequestSchema)` to create a new message.
|
* Use `create(ListActivationsRequestSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const ListActivationsRequestSchema: GenMessage<ListActivationsRequest> = /*@__PURE__*/
|
export const ListActivationsRequestSchema: GenMessage<ListActivationsRequest> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 8);
|
messageDesc(file_quixos_orch, 10);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.ListPackageDescriptorsRequest
|
* @generated from message quixos.orch.ListPackageDescriptorsRequest
|
||||||
@@ -261,7 +310,7 @@ export type ListPackageDescriptorsRequest = Message<"quixos.orch.ListPackageDesc
|
|||||||
* Use `create(ListPackageDescriptorsRequestSchema)` to create a new message.
|
* Use `create(ListPackageDescriptorsRequestSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const ListPackageDescriptorsRequestSchema: GenMessage<ListPackageDescriptorsRequest> = /*@__PURE__*/
|
export const ListPackageDescriptorsRequestSchema: GenMessage<ListPackageDescriptorsRequest> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 9);
|
messageDesc(file_quixos_orch, 11);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.ListPackageDescriptorsResponse
|
* @generated from message quixos.orch.ListPackageDescriptorsResponse
|
||||||
@@ -278,7 +327,7 @@ export type ListPackageDescriptorsResponse = Message<"quixos.orch.ListPackageDes
|
|||||||
* Use `create(ListPackageDescriptorsResponseSchema)` to create a new message.
|
* Use `create(ListPackageDescriptorsResponseSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const ListPackageDescriptorsResponseSchema: GenMessage<ListPackageDescriptorsResponse> = /*@__PURE__*/
|
export const ListPackageDescriptorsResponseSchema: GenMessage<ListPackageDescriptorsResponse> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 10);
|
messageDesc(file_quixos_orch, 12);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.ListPackageRuntimesRequest
|
* @generated from message quixos.orch.ListPackageRuntimesRequest
|
||||||
@@ -291,7 +340,7 @@ export type ListPackageRuntimesRequest = Message<"quixos.orch.ListPackageRuntime
|
|||||||
* Use `create(ListPackageRuntimesRequestSchema)` to create a new message.
|
* Use `create(ListPackageRuntimesRequestSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const ListPackageRuntimesRequestSchema: GenMessage<ListPackageRuntimesRequest> = /*@__PURE__*/
|
export const ListPackageRuntimesRequestSchema: GenMessage<ListPackageRuntimesRequest> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 11);
|
messageDesc(file_quixos_orch, 13);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.ListPackageRuntimesResponse
|
* @generated from message quixos.orch.ListPackageRuntimesResponse
|
||||||
@@ -308,7 +357,7 @@ export type ListPackageRuntimesResponse = Message<"quixos.orch.ListPackageRuntim
|
|||||||
* Use `create(ListPackageRuntimesResponseSchema)` to create a new message.
|
* Use `create(ListPackageRuntimesResponseSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const ListPackageRuntimesResponseSchema: GenMessage<ListPackageRuntimesResponse> = /*@__PURE__*/
|
export const ListPackageRuntimesResponseSchema: GenMessage<ListPackageRuntimesResponse> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 12);
|
messageDesc(file_quixos_orch, 14);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.ListActivationsResponse
|
* @generated from message quixos.orch.ListActivationsResponse
|
||||||
@@ -325,7 +374,7 @@ export type ListActivationsResponse = Message<"quixos.orch.ListActivationsRespon
|
|||||||
* Use `create(ListActivationsResponseSchema)` to create a new message.
|
* Use `create(ListActivationsResponseSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const ListActivationsResponseSchema: GenMessage<ListActivationsResponse> = /*@__PURE__*/
|
export const ListActivationsResponseSchema: GenMessage<ListActivationsResponse> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 13);
|
messageDesc(file_quixos_orch, 15);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.CloseActivationRequest
|
* @generated from message quixos.orch.CloseActivationRequest
|
||||||
@@ -347,7 +396,7 @@ export type CloseActivationRequest = Message<"quixos.orch.CloseActivationRequest
|
|||||||
* Use `create(CloseActivationRequestSchema)` to create a new message.
|
* Use `create(CloseActivationRequestSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const CloseActivationRequestSchema: GenMessage<CloseActivationRequest> = /*@__PURE__*/
|
export const CloseActivationRequestSchema: GenMessage<CloseActivationRequest> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 14);
|
messageDesc(file_quixos_orch, 16);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.CloseActivationResponse
|
* @generated from message quixos.orch.CloseActivationResponse
|
||||||
@@ -364,7 +413,7 @@ export type CloseActivationResponse = Message<"quixos.orch.CloseActivationRespon
|
|||||||
* Use `create(CloseActivationResponseSchema)` to create a new message.
|
* Use `create(CloseActivationResponseSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const CloseActivationResponseSchema: GenMessage<CloseActivationResponse> = /*@__PURE__*/
|
export const CloseActivationResponseSchema: GenMessage<CloseActivationResponse> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 15);
|
messageDesc(file_quixos_orch, 17);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.Activation
|
* @generated from message quixos.orch.Activation
|
||||||
@@ -426,7 +475,7 @@ export type Activation = Message<"quixos.orch.Activation"> & {
|
|||||||
* Use `create(ActivationSchema)` to create a new message.
|
* Use `create(ActivationSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const ActivationSchema: GenMessage<Activation> = /*@__PURE__*/
|
export const ActivationSchema: GenMessage<Activation> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 16);
|
messageDesc(file_quixos_orch, 18);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.orch.PackageRuntimeStatus
|
* @generated from message quixos.orch.PackageRuntimeStatus
|
||||||
@@ -498,7 +547,7 @@ export type PackageRuntimeStatus = Message<"quixos.orch.PackageRuntimeStatus"> &
|
|||||||
* Use `create(PackageRuntimeStatusSchema)` to create a new message.
|
* Use `create(PackageRuntimeStatusSchema)` to create a new message.
|
||||||
*/
|
*/
|
||||||
export const PackageRuntimeStatusSchema: GenMessage<PackageRuntimeStatus> = /*@__PURE__*/
|
export const PackageRuntimeStatusSchema: GenMessage<PackageRuntimeStatus> = /*@__PURE__*/
|
||||||
messageDesc(file_quixos_orch, 17);
|
messageDesc(file_quixos_orch, 19);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from service quixos.orch.OrchestratorRuntime
|
* @generated from service quixos.orch.OrchestratorRuntime
|
||||||
@@ -528,6 +577,14 @@ export const OrchestratorRuntime: GenService<{
|
|||||||
input: typeof ConstructObjectRequestSchema;
|
input: typeof ConstructObjectRequestSchema;
|
||||||
output: typeof ConstructObjectResponseSchema;
|
output: typeof ConstructObjectResponseSchema;
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @generated from rpc quixos.orch.OrchestratorRuntime.ResolveOrConstructRelatedObject
|
||||||
|
*/
|
||||||
|
resolveOrConstructRelatedObject: {
|
||||||
|
methodKind: "unary";
|
||||||
|
input: typeof ResolveOrConstructRelatedObjectRequestSchema;
|
||||||
|
output: typeof ResolveOrConstructRelatedObjectResponseSchema;
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* @generated from rpc quixos.orch.OrchestratorRuntime.GetWorkspace
|
* @generated from rpc quixos.orch.OrchestratorRuntime.GetWorkspace
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import type { Message } from "@bufbuild/protobuf";
|
|||||||
* Describes the file quixos/refs.proto.
|
* Describes the file quixos/refs.proto.
|
||||||
*/
|
*/
|
||||||
export const file_quixos_refs: GenFile = /*@__PURE__*/
|
export const file_quixos_refs: GenFile = /*@__PURE__*/
|
||||||
fileDesc("ChFxdWl4b3MvcmVmcy5wcm90bxIGcXVpeG9zIkQKDUNhcGFiaWxpdHlSZWYSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAEgASgJEhQKDG9wZXJhdGlvbl9pZBgCIAEoCSJCChBQYWNrYWdlRXhwb3J0UmVmEhsKE3BhY2thZ2VfcmV2aXNpb25faWQYASABKAkSEQoJZXhwb3J0X2lkGAIgASgJIroBChJJbmplY3RlZERlcGVuZGVuY3kSDwoHcG9ydF9pZBgBIAEoCRIXCg1zdGF0ZV9zbG90X2lkGAIgASgJSAASJgoEZWRnZRgDIAEoCzIWLnF1aXhvcy5FZGdlRGVwZW5kZW5jeUgAEigKHnJlY2VpdmVyX2ludGVyZmFjZV9yZXZpc2lvbl9pZBgEIAEoCUgAEh0KE2NvbnN0cnVjdG9yX2F0b21faWQYBSABKAlIAEIJCgdiaW5kaW5nIj0KDkVkZ2VEZXBlbmRlbmN5EhQKDGVkZ2VfdHlwZV9pZBgBIAEoCRIVCg1wcm9qZWN0aW9uX2lkGAIgASgJYgZwcm90bzM");
|
fileDesc("ChFxdWl4b3MvcmVmcy5wcm90bxIGcXVpeG9zIkQKDUNhcGFiaWxpdHlSZWYSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAEgASgJEhQKDG9wZXJhdGlvbl9pZBgCIAEoCSJCChBQYWNrYWdlRXhwb3J0UmVmEhsKE3BhY2thZ2VfcmV2aXNpb25faWQYASABKAkSEQoJZXhwb3J0X2lkGAIgASgJIs0BChJJbmplY3RlZERlcGVuZGVuY3kSDwoHcG9ydF9pZBgBIAEoCRIXCg1zdGF0ZV9zbG90X2lkGAIgASgJSAASJgoEZWRnZRgDIAEoCzIWLnF1aXhvcy5FZGdlRGVwZW5kZW5jeUgAEigKHnJlY2VpdmVyX2ludGVyZmFjZV9yZXZpc2lvbl9pZBgEIAEoCUgAEh0KE2NvbnN0cnVjdG9yX2F0b21faWQYBSABKAlIABIRCglvYmplY3RfaWQYBiABKAlCCQoHYmluZGluZyI9Cg5FZGdlRGVwZW5kZW5jeRIUCgxlZGdlX3R5cGVfaWQYASABKAkSFQoNcHJvamVjdGlvbl9pZBgCIAEoCWIGcHJvdG8z");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated from message quixos.CapabilityRef
|
* @generated from message quixos.CapabilityRef
|
||||||
@@ -93,6 +93,14 @@ export type InjectedDependency = Message<"quixos.InjectedDependency"> & {
|
|||||||
value: string;
|
value: string;
|
||||||
case: "constructorAtomId";
|
case: "constructorAtomId";
|
||||||
} | { case: undefined; value?: undefined };
|
} | { case: undefined; value?: undefined };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defaults to the invocation receiver. A checked dependency traversal can
|
||||||
|
* select a related object explicitly before the package runtime starts.
|
||||||
|
*
|
||||||
|
* @generated from field: string object_id = 6;
|
||||||
|
*/
|
||||||
|
objectId: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
import assert from "node:assert/strict";
|
import assert from "node:assert/strict";
|
||||||
|
import { readFileSync } from "node:fs";
|
||||||
|
import { resolve } from "node:path";
|
||||||
import { test } from "node:test";
|
import { test } from "node:test";
|
||||||
import { compileCapabilitySource } from "../src/capability-language/index.js";
|
import { compileCapabilitySource } from "../src/capability-language/index.js";
|
||||||
import {
|
import {
|
||||||
@@ -146,3 +148,56 @@ test("well-formed but invalid programs report semantic paths", () => {
|
|||||||
assert.equal(diagnostic.phase, "validation");
|
assert.equal(diagnostic.phase, "validation");
|
||||||
assert.ok(diagnostic.path?.includes("operationBindings"));
|
assert.ok(diagnostic.path?.includes("operationBindings"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("Web Studio sidecars declare lazy materialization and checked cross-object ports", () => {
|
||||||
|
const source = readFileSync(
|
||||||
|
resolve(process.cwd(), "test/fixtures/web-studio.capabilities.qx"),
|
||||||
|
"utf8",
|
||||||
|
);
|
||||||
|
const result = compileCapabilitySource(source, "web-studio.capabilities.qx");
|
||||||
|
assert.equal(result.ok, true);
|
||||||
|
if (!result.ok) return;
|
||||||
|
|
||||||
|
const host = result.workspace.conformances.find((entry) =>
|
||||||
|
entry.atomId === "atom:project" &&
|
||||||
|
entry.interfaceRevisionId === "interface:org.quixos.web-studio.has-react-component@1"
|
||||||
|
);
|
||||||
|
assert.deepEqual(host?.relationshipMaterializations, [{
|
||||||
|
memberId: "member:org.quixos.web-studio.has-react-component:component",
|
||||||
|
constructorAtomId: "atom:project-component",
|
||||||
|
edgeTypeId: "edge:project:component",
|
||||||
|
constructedProjectionId: "projection:component:subject",
|
||||||
|
}]);
|
||||||
|
|
||||||
|
const component = result.workspace.conformances.find((entry) =>
|
||||||
|
entry.atomId === "atom:project-component"
|
||||||
|
);
|
||||||
|
const binding = component?.operationBindings[0]?.binding;
|
||||||
|
assert.equal(binding?.kind, "package");
|
||||||
|
if (binding?.kind !== "package") return;
|
||||||
|
assert.deepEqual(binding.dependencies[1]?.binding, {
|
||||||
|
kind: "state",
|
||||||
|
slotId: "slot:project:name",
|
||||||
|
via: {
|
||||||
|
edgeTypeId: "edge:project:component",
|
||||||
|
projectionId: "projection:component:subject",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test("relationship materializers require a constructor from the host atom", () => {
|
||||||
|
const source = readFileSync(
|
||||||
|
resolve(process.cwd(), "test/fixtures/web-studio.capabilities.qx"),
|
||||||
|
"utf8",
|
||||||
|
).replace(
|
||||||
|
"constructs ProjectComponent : atom-ref<Project>;",
|
||||||
|
"constructs ProjectComponent : unit;",
|
||||||
|
);
|
||||||
|
const result = compileCapabilitySource(source, "invalid-materializer.qx");
|
||||||
|
assert.equal(result.ok, false);
|
||||||
|
if (result.ok) return;
|
||||||
|
assert.ok(result.diagnostics.some((entry) =>
|
||||||
|
entry.code === "invalid-relationship-materialization" &&
|
||||||
|
entry.message.includes("must accept")
|
||||||
|
));
|
||||||
|
});
|
||||||
|
|||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
workspace WebStudioFixture id "workspace:web-studio-fixture" revision "workspace:web-studio-fixture@1" commit "1111111111111111111111111111111111111111" {
|
||||||
|
atom Project id "atom:project";
|
||||||
|
atom ProjectComponent id "atom:project-component";
|
||||||
|
|
||||||
|
interface ReactComponent id "interface:org.quixos.web-studio.react-component" revision "interface:org.quixos.web-studio.react-component@1" source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-react-component.git";
|
||||||
|
commit "2222222222222222222222222222222222222222";
|
||||||
|
} {
|
||||||
|
value props id "member:org.quixos.web-studio.react-component:props" : string {
|
||||||
|
get id "operation:org.quixos.web-studio.react-component:props:get";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interface HasReactComponent id "interface:org.quixos.web-studio.has-react-component" revision "interface:org.quixos.web-studio.has-react-component@1" source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-has-react-component.git";
|
||||||
|
commit "3333333333333333333333333333333333333333";
|
||||||
|
} {
|
||||||
|
relation component id "member:org.quixos.web-studio.has-react-component:component" : optional-one interface ReactComponent {
|
||||||
|
resolve id "operation:org.quixos.web-studio.has-react-component:component:resolve";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
package ComponentRuntime id "package:component-runtime" revision "package:component-runtime@1" source {
|
||||||
|
repository "https://repos.quixos.org/quixos-test/package-component-runtime.git";
|
||||||
|
commit "4444444444444444444444444444444444444444";
|
||||||
|
} {
|
||||||
|
constructor createComponent id "export:component-runtime:create-component" constructs ProjectComponent : atom-ref<Project>;
|
||||||
|
operation propsGet id "export:component-runtime:props-get" : unit -> string mode call receiver atom ProjectComponent requires {
|
||||||
|
edge subject id "port:component:subject" : exactly-one atom Project [resolve];
|
||||||
|
state projectName id "port:component:project-name" : string [read];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
shared state ProjectName id "slot:project:name" on Project : string
|
||||||
|
policy optimistic-register default "Untitled project";
|
||||||
|
shared edge ProjectComponentEdge id "edge:project:component" {
|
||||||
|
atom ProjectComponent projection subject id "projection:component:subject" exactly-one;
|
||||||
|
atom Project projection component id "projection:project:component" optional-one;
|
||||||
|
}
|
||||||
|
|
||||||
|
conform Project as HasReactComponent {
|
||||||
|
bind component.resolve to edge ProjectComponentEdge.component.resolve;
|
||||||
|
materialize component if absent using constructor ProjectComponent via edge ProjectComponentEdge.subject;
|
||||||
|
}
|
||||||
|
conform ProjectComponent as ReactComponent {
|
||||||
|
bind props.get to package ComponentRuntime.propsGet with {
|
||||||
|
subject to edge ProjectComponentEdge.subject;
|
||||||
|
projectName to state ProjectName via edge ProjectComponentEdge.subject;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor ProjectComponent to ComponentRuntime.createComponent;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user