{
	"csm": {
		"nodes": {
			"0": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						425,
						201
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"5": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 5
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										0,
										0
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"6": {
								"textContent": {
									"type": "string",
									"value": "Pattern"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"font-style": "italic"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n    {\n       \"stroke\": \"#000000\",\n       \"fill\": \"#ffffff\",\n       \"fill-opacity\": 0.75,\n       \"font-size\": \"20px\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n    };\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										23,
										2
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"7": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										13.896110991026944,
										3.0451514439171206
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"17": {
								"segments": {
									"type": "string",
									"value": "m0,0l200,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										1,
										26
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"18": {
								"textContent": {
									"type": "string",
									"value": ""
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "13px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n\t\t\t\tfunction(attr)\n\t\t\t\t{\n\t\t\t\t\treturn attr['name'];\n\t\t\t\t});\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										3,
										25
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"19": {
								"width": {
									"type": "boolean",
									"value": true
								},
								"ratio": {
									"type": "double",
									"value": 1
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Span",
								"position": {
									"type": "list<double>",
									"value": [
										168.09129891774523,
										30.625911571363645
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#0000ff",
										"stroke-dasharray": "",
										"stroke-opacity": 1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"20": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										6.49899850809561,
										18.998998508095553
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							}
						},
						"edges": [
							{
								"src": "5",
								"dest": "7"
							},
							{
								"src": "7",
								"dest": "6"
							},
							{
								"src": "17",
								"dest": "19"
							},
							{
								"src": "19",
								"dest": "5"
							},
							{
								"src": "5",
								"dest": "20"
							},
							{
								"src": "20",
								"dest": "18"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/0.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon"
			},
			"1": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						424,
						425
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"5": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 5
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										0,
										0
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"6": {
								"textContent": {
									"type": "string",
									"value": "LHS"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"font-style": "normal"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n    {\n       \"stroke\": \"#000000\",\n       \"fill\": \"#ffffff\",\n       \"fill-opacity\": 0.75,\n       \"font-size\": \"20px\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n    };\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										23,
										2
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"7": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										13.896110991026944,
										3.0451514439171206
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"17": {
								"segments": {
									"type": "string",
									"value": "m0,0l200,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										1,
										26
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"18": {
								"textContent": {
									"type": "string",
									"value": "Condition"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "13px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n\t\t\t\tfunction(attr)\n\t\t\t\t{\n\t\t\t\t\treturn attr['name'];\n\t\t\t\t});\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										3,
										25
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"19": {
								"width": {
									"type": "boolean",
									"value": true
								},
								"ratio": {
									"type": "double",
									"value": 1
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Span",
								"position": {
									"type": "list<double>",
									"value": [
										168.09129891774523,
										30.625911571363645
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#0000ff",
										"stroke-dasharray": "",
										"stroke-opacity": 1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"20": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										6.49899850809561,
										18.998998508095553
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							}
						},
						"edges": [
							{
								"src": "5",
								"dest": "7"
							},
							{
								"src": "7",
								"dest": "6"
							},
							{
								"src": "17",
								"dest": "19"
							},
							{
								"src": "19",
								"dest": "5"
							},
							{
								"src": "5",
								"dest": "20"
							},
							{
								"src": "20",
								"dest": "18"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/1.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon"
			},
			"2": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						675,
						426
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"5": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 5
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										0,
										0
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"6": {
								"textContent": {
									"type": "string",
									"value": "RHS"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"font-style": "normal"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n    {\n       \"stroke\": \"#000000\",\n       \"fill\": \"#ffffff\",\n       \"fill-opacity\": 0.75,\n       \"font-size\": \"20px\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n    };\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										23,
										2
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"7": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										13.896110991026944,
										3.0451514439171206
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"17": {
								"segments": {
									"type": "string",
									"value": "m0,0l200,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										1,
										26
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"18": {
								"textContent": {
									"type": "string",
									"value": "Action"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "13px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n\t\t\t\tfunction(attr)\n\t\t\t\t{\n\t\t\t\t\treturn attr['name'];\n\t\t\t\t});\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										3,
										25
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"19": {
								"width": {
									"type": "boolean",
									"value": true
								},
								"ratio": {
									"type": "double",
									"value": 1
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Span",
								"position": {
									"type": "list<double>",
									"value": [
										168.09129891774523,
										30.625911571363645
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#0000ff",
										"stroke-dasharray": "",
										"stroke-opacity": 1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"20": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										6.49899850809561,
										18.998998508095553
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							}
						},
						"edges": [
							{
								"src": "5",
								"dest": "7"
							},
							{
								"src": "7",
								"dest": "6"
							},
							{
								"src": "17",
								"dest": "19"
							},
							{
								"src": "19",
								"dest": "5"
							},
							{
								"src": "5",
								"dest": "20"
							},
							{
								"src": "20",
								"dest": "18"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/2.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon"
			},
			"3": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						171,
						425
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"5": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 5
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										0,
										0
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"6": {
								"textContent": {
									"type": "string",
									"value": "NAC"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"font-style": "normal"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n    {\n       \"stroke\": \"#000000\",\n       \"fill\": \"#ffffff\",\n       \"fill-opacity\": 0.75,\n       \"font-size\": \"20px\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n    };\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										23,
										2
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"7": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										13.896110991026944,
										3.0451514439171206
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"17": {
								"segments": {
									"type": "string",
									"value": "m0,0l200,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										1,
										26
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"18": {
								"textContent": {
									"type": "string",
									"value": "name\nCondition"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "13px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n\t\t\t\tfunction(attr)\n\t\t\t\t{\n\t\t\t\t\treturn attr['name'];\n\t\t\t\t});\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										3,
										25
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"19": {
								"width": {
									"type": "boolean",
									"value": true
								},
								"ratio": {
									"type": "double",
									"value": 1
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Span",
								"position": {
									"type": "list<double>",
									"value": [
										168.09129891774523,
										30.625911571363645
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#0000ff",
										"stroke-dasharray": "",
										"stroke-opacity": 1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"20": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										6.49899850809561,
										18.998998508095553
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							}
						},
						"edges": [
							{
								"src": "5",
								"dest": "7"
							},
							{
								"src": "7",
								"dest": "6"
							},
							{
								"src": "17",
								"dest": "19"
							},
							{
								"src": "19",
								"dest": "5"
							},
							{
								"src": "5",
								"dest": "20"
							},
							{
								"src": "20",
								"dest": "18"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/3.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon"
			},
			"4": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						875,
						201
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"5": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 5
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										0,
										0
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"6": {
								"textContent": {
									"type": "string",
									"value": "$*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"font-style": "normal"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n    {\n       \"stroke\": \"#000000\",\n       \"fill\": \"#ffffff\",\n       \"fill-opacity\": 0.75,\n       \"font-size\": \"20px\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n    };\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										23,
										2
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"7": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										13.896110991026944,
										3.0451514439171206
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"17": {
								"segments": {
									"type": "string",
									"value": "m0,0l200,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										1,
										26
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"18": {
								"textContent": {
									"type": "string",
									"value": ""
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "13px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n\t\t\t\tfunction(attr)\n\t\t\t\t{\n\t\t\t\t\treturn attr['name'];\n\t\t\t\t});\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										3,
										25
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"19": {
								"width": {
									"type": "boolean",
									"value": true
								},
								"ratio": {
									"type": "double",
									"value": 1
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Span",
								"position": {
									"type": "list<double>",
									"value": [
										168.09129891774523,
										30.625911571363645
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#0000ff",
										"stroke-dasharray": "",
										"stroke-opacity": 1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"20": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										6.49899850809561,
										18.998998508095553
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							}
						},
						"edges": [
							{
								"src": "5",
								"dest": "7"
							},
							{
								"src": "7",
								"dest": "6"
							},
							{
								"src": "17",
								"dest": "19"
							},
							{
								"src": "19",
								"dest": "5"
							},
							{
								"src": "5",
								"dest": "20"
							},
							{
								"src": "20",
								"dest": "18"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/4.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon"
			},
			"5": {
				"typename": {
					"type": "string",
					"value": "GlobalConstraintIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						25,
						151
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"11": {
								"textContent": {
									"type": "string",
									"value": "check 1lhs-1rhs on validate"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ff70",
										"stroke-dasharray": "",
										"fill": "#00ff70",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent' : 'check '+getAttr('name')+' on '+(getAttr('event') || 'validate')})\n"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										0,
										-1
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/GlobalConstraint/5.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/GlobalConstraintIcon"
			},
			"7": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2,
						"arrow-start": "none",
						"arrow-end": "classic-wide-long"
					}
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						694.6278522722085,
						263.92147655722624
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"15": {
								"textContent": {
									"type": "string",
									"value": "PatternContents"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										1,
										-19
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/7.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon/0.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/AssociationLink/7.instance": "M625,275L733,275",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/AssociationLink/7.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon/4.instance": "M733,275L875,275"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/AssociationLink"
			},
			"10": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "- ",
						"stroke-opacity": 1,
						"stroke-width": 2,
						"arrow-start": "none",
						"arrow-end": "classic-wide-long"
					}
				},
				"typename": {
					"type": "string",
					"value": "InheritanceLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						"526,50%",
						"373.5,50%"
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance/10.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon/1.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink/10.instance": "M526,425L526,373.5",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink/10.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon/0.instance": "M526,373.42367649542285L526,322.0002910736167"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink"
			},
			"11": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "- ",
						"stroke-opacity": 1,
						"stroke-width": 2,
						"arrow-start": "none",
						"arrow-end": "classic-wide-long"
					}
				},
				"typename": {
					"type": "string",
					"value": "InheritanceLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						"660.9076923805188,50%",
						"373.3811539399181,50%"
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance/11.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon/2.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink/11.instance": "M701,425L660.9076923805188,373.3811539399181",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink/11.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon/0.instance": "M660.9079764035173,373.38151961952855L621.0005674647247,322.000730610833"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink"
			},
			"13": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "- ",
						"stroke-opacity": 1,
						"stroke-width": 2,
						"arrow-start": "none",
						"arrow-end": "classic-wide-long"
					}
				},
				"typename": {
					"type": "string",
					"value": "InheritanceLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						"397.5,50%",
						"374,50%"
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance/13.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon/3.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink/13.instance": "M362,424L397.5,374",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink/13.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon/0.instance": "M397.58700879114997,373.877452406831L432.99942819883603,324.00080535375207"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/InheritanceLink"
			},
			"14": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						674,
						577
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"5": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 5
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										0,
										0
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"6": {
								"textContent": {
									"type": "string",
									"value": "RHSImport"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"font-style": "normal"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n    {\n       \"stroke\": \"#000000\",\n       \"fill\": \"#ffffff\",\n       \"fill-opacity\": 0.75,\n       \"font-size\": \"20px\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n    };\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										23,
										2
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"7": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										13.896110991026944,
										3.0451514439171206
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"17": {
								"segments": {
									"type": "string",
									"value": "m0,0l200,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										1,
										26
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"18": {
								"textContent": {
									"type": "string",
									"value": "filename"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "13px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n\t\t\t\tfunction(attr)\n\t\t\t\t{\n\t\t\t\t\treturn attr['name'];\n\t\t\t\t});\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										3,
										25
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"19": {
								"width": {
									"type": "boolean",
									"value": true
								},
								"ratio": {
									"type": "double",
									"value": 1
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Span",
								"position": {
									"type": "list<double>",
									"value": [
										168.09129891774523,
										30.625911571363645
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#0000ff",
										"stroke-dasharray": "",
										"stroke-opacity": 1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							},
							"20": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										6.49899850809561,
										18.998998508095553
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"arrow-start": "none",
										"arrow-end": "classic-wide-long"
									}
								}
							}
						},
						"edges": [
							{
								"src": "5",
								"dest": "7"
							},
							{
								"src": "7",
								"dest": "6"
							},
							{
								"src": "17",
								"dest": "19"
							},
							{
								"src": "19",
								"dest": "5"
							},
							{
								"src": "5",
								"dest": "20"
							},
							{
								"src": "20",
								"dest": "18"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/14.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons/ClassIcon"
			}
		},
		"edges": [],
		"metamodels": [
			"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons"
		]
	},
	"asm": {
		"nodes": {
			"0": {
				"name": {
					"type": "string",
					"value": "Pattern"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": true
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"1": {
				"name": {
					"type": "string",
					"value": "LHS"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "Condition",
							"type": "code",
							"default": "result = True"
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": [
						{
							"name": "setDefault",
							"event": "post-connect",
							"code": "var default_text = '\"[PYTHON]\"\\n\"Example:\\t result = True\"\\n\"Example:\\t result = getAttr()\"\\n\\n\"[JAVASCRIPT]\"\\n\"Example:\\t true\"\\n\"Example:\\t getAttr()\"'; /*newline*/var neighbor_links = getNeighbors('>'); /*newline*/var queue = new Array(); /*newline*/for (var key in neighbor_links) { /*newline*/    Array.prototype.push.apply(queue, getNeighbors('>', '*', neighbor_links[key])); /*newline*/} /*newline*/while (queue.length > 0) { /*newline*/    var curr_item = queue.shift(); /*newline*/    var attr_names = getAttrNames(curr_item); /*newline*/    for (var key in attr_names) { /*newline*/        var attr_name = attr_names[key]; /*newline*/        if (!((attr_name.lastIndexOf('__p', 0) === 0 && !attr_name.lastIndexOf('__p__p', 0) === 0) || attr_name.lastIndexOf('$', 0) === 0)) { /*newline*/            var attr_value = getAttr(attr_name, curr_item); /*newline*/            if (attr_value == default_text) { /*newline*/                setAttr(attr_name, 'result = True', curr_item); /*newline*/            } /*newline*/        } /*newline*/    } /*newline*/    var neighbor_links = getNeighbors('>', curr_item); /*newline*/    for (var key in neighbor_links) { /*newline*/        Array.prototype.push.apply(queue, getNeighbors('>', '*', neighbor_links[key])); /*newline*/    } /*newline*/}"
						}
					]
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"2": {
				"name": {
					"type": "string",
					"value": "RHS"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "Action",
							"type": "code",
							"default": "pass"
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": [
						{
							"name": "setDefault",
							"event": "post-connect",
							"code": "var default_text = '\"[PYTHON]\"\\n\"Example:\\t result = True\"\\n\"Example:\\t result = getAttr()\"\\n\\n\"[JAVASCRIPT]\"\\n\"Example:\\t true\"\\n\"Example:\\t getAttr()\"'; /*newline*/var neighbor_links = getNeighbors('>'); /*newline*/var queue = new Array(); /*newline*/for (var key in neighbor_links) { /*newline*/    Array.prototype.push.apply(queue, getNeighbors('>', '*', neighbor_links[key])); /*newline*/} /*newline*/while (queue.length > 0) { /*newline*/    var curr_item = queue.shift(); /*newline*/    var attr_names = getAttrNames(curr_item); /*newline*/    for (var key in attr_names) { /*newline*/        var attr_name = attr_names[key]; /*newline*/        if (!((attr_name.lastIndexOf('__p', 0) === 0 && !attr_name.lastIndexOf('__p__p', 0) === 0) || attr_name.lastIndexOf('$', 0) === 0)) { /*newline*/            var attr_value = getAttr(attr_name, curr_item); /*newline*/            if (attr_value == default_text) { /*newline*/                setAttr(attr_name, 'result = getAttr()', curr_item); /*newline*/            } /*newline*/        } /*newline*/    } /*newline*/    var neighbor_links = getNeighbors('>', curr_item); /*newline*/    for (var key in neighbor_links) { /*newline*/        Array.prototype.push.apply(queue, getNeighbors('>', '*', neighbor_links[key])); /*newline*/    } /*newline*/}"
						}
					]
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"3": {
				"name": {
					"type": "string",
					"value": "NAC"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "name",
							"type": "string",
							"default": "NAC_"
						},
						{
							"name": "Condition",
							"type": "code",
							"default": "result = True"
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": [
						{
							"name": "setDefault",
							"event": "post-connect",
							"code": "var default_text = '\"[PYTHON]\"\\n\"Example:\\t result = True\"\\n\"Example:\\t result = getAttr()\"\\n\\n\"[JAVASCRIPT]\"\\n\"Example:\\t true\"\\n\"Example:\\t getAttr()\"'; /*newline*/var neighbor_links = getNeighbors('>'); /*newline*/var queue = new Array(); /*newline*/for (var key in neighbor_links) { /*newline*/    Array.prototype.push.apply(queue, getNeighbors('>', '*', neighbor_links[key])); /*newline*/} /*newline*/while (queue.length > 0) { /*newline*/    var curr_item = queue.shift(); /*newline*/    var attr_names = getAttrNames(curr_item); /*newline*/    for (var key in attr_names) { /*newline*/        var attr_name = attr_names[key]; /*newline*/        if (!((attr_name.lastIndexOf('__p', 0) === 0 && !attr_name.lastIndexOf('__p__p', 0) === 0) || attr_name.lastIndexOf('$', 0) === 0)) { /*newline*/            var attr_value = getAttr(attr_name, curr_item); /*newline*/            if (attr_value == default_text) { /*newline*/                setAttr(attr_name, 'result = True', curr_item); /*newline*/            } /*newline*/        } /*newline*/    } /*newline*/    var neighbor_links = getNeighbors('>', curr_item); /*newline*/    for (var key in neighbor_links) { /*newline*/        Array.prototype.push.apply(queue, getNeighbors('>', '*', neighbor_links[key])); /*newline*/    } /*newline*/}"
						}
					]
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"4": {
				"name": {
					"type": "string",
					"value": "$*"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"5": {
				"name": {
					"type": "string",
					"value": "1lhs-1rhs"
				},
				"event": {
					"type": "$EVENT",
					"value": ""
				},
				"code": {
					"type": "code",
					"value": "var mm = \"/Formalisms/__Transformations__/TransformationRule/TransformationRule/\";\n\ngetAllNodes([mm+\"LHS\"]).length == 1 && (getAllNodes([mm+\"RHSImport\"]).length + getAllNodes([mm+\"RHS\"]).length == 1);"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/GlobalConstraint"
			},
			"7": {
				"name": {
					"type": "string",
					"value": "PatternContents"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": [
						{
							"name": "convertToPrePostType",
							"event": "post-create",
							"code": "/*newline*/var mm  = '/Formalisms/__Transformations__/TransformationRule/TransformationRule/',/*newline*/    pt    = getAttr('$type',getNeighbors('<')[0]),/*newline*/    nid   = getNeighbors('>')[0],/*newline*/    toPre = (pt == mm+'LHS' || pt == mm+'NAC');/*newline*//*newline*/if( ! getAttr('$type',nid).match('\\.pattern/__p') )/*newline*/    throw 'patterns can only contain instance types of pattern metamodels';/*newline*//*newline*/function toPrePostType(id)/*newline*/{/*newline*/    var isPreType = (getAttr('__pMatchSubtypes',id) != undefined);/*newline*/    if( getNeighbors('<','PatternContents',id).length > 1 )/*newline*/        /*for HOTs: do not alter nodes that are already within another Pattern*/;/*newline*/    else if( toPre && !isPreType )/*newline*/        setAttr('__pMatchSubtypes',true,id);/*newline*/    else if( pt == mm+'RHS' && isPreType )/*newline*/        setAttr('__pMatchSubtypes',undefined,id);/*newline*/}/*newline*//*newline*//* TBI :: here we basically convert nid and all of its neighbors to pre-/post-types... this should always be what we want but it would still be cleaner to only convert nid and its *contents* *//*newline*/var done = [],/*newline*/    todo = [nid];/*newline*/while( todo.length > 0 )/*newline*/{/*newline*/    var id = todo.shift();/*newline*/    toPrePostType(id);/*newline*/    done.push(id);/*newline*/    todo = todo.concat(/*newline*/                getNeighbors('>','*',id).filter(/*newline*/                    function(_nid)/*newline*/                    {/*newline*/                        return todo.indexOf(_nid) < 0 && done.indexOf(_nid) < 0;/*newline*/                    }));/*newline*/}/*newline*/undefined;"
						}
					]
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "containment"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"10": {
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance"
			},
			"11": {
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance"
			},
			"13": {
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance"
			},
			"14": {
				"name": {
					"type": "string",
					"value": "RHSImport"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "filename",
							"type": "string",
							"default": "/path/to/model/to/import"
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			}
		},
		"edges": [
			{
				"src": "0",
				"dest": "7"
			},
			{
				"src": "7",
				"dest": "4"
			},
			{
				"src": "1",
				"dest": "10"
			},
			{
				"src": "10",
				"dest": "0"
			},
			{
				"src": "2",
				"dest": "11"
			},
			{
				"src": "11",
				"dest": "0"
			},
			{
				"src": "3",
				"dest": "13"
			},
			{
				"src": "13",
				"dest": "0"
			}
		],
		"metamodels": [
			"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram"
		]
	}
}