diff --git a/UML Overview.mdj b/UML Overview.mdj new file mode 100644 index 0000000..b28f4eb --- /dev/null +++ b/UML Overview.mdj @@ -0,0 +1,19520 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Untitled", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFF+qBWK6M3Z8Y=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "BrighterTrades Class View", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFF+qBtyKM79qY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "defaultDiagram": true, + "ownedViews": [ + { + "_type": "UMLClassView", + "_id": "AAAAAAGAkl3075yJ860=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAkl3075yKOPM=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAkl3075yL9mc=", + "_parent": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2016, + "top": 2080, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAkl3075yMrwE=", + "_parent": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "font": "Arial;13;1", + "left": 1133, + "top": 1719, + "width": 95.38623046875, + "height": 13, + "text": "Display_Panel" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAkl3075yNzMw=", + "_parent": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2016, + "top": 2080, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAkl3075yO00E=", + "_parent": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2016, + "top": 2080, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1128, + "top": 1712, + "width": 105.38623046875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAkl3075yL9mc=" + }, + "nameLabel": { + "$ref": "AAAAAAGAkl3075yMrwE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAkl3075yNzMw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAkl3075yO00E=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAkl3075yPUC0=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "font": "Arial;13;0", + "left": 1128, + "top": 1737, + "width": 105.38623046875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAkl3075yQOIw=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "font": "Arial;13;0", + "left": 1128, + "top": 1747, + "width": 105.38623046875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAkl3075yR4jo=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1008, + "top": 1040, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAkl3075ySZ4Y=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1008, + "top": 1040, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1128, + "top": 1712, + "width": 105.38623046875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAkl3075yPUC0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAkl3075yQOIw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAkl3075yR4jo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAkl3075ySZ4Y=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlKBwAZy+AvI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlKBwAZy/nuo=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlKBwAZzAg8o=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1141.5146484375, + "top": 1712, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKBwAZzBNss=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "font": "Arial;13;1", + "left": 837, + "top": 1199, + "width": 88.51171875, + "height": 13, + "text": "Charts" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKBwAZzCVGk=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1141.5146484375, + "top": 1712, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKBwAZzD3GE=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1141.5146484375, + "top": 1712, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 832, + "top": 1192, + "width": 98.51171875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlKBwAZzAg8o=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlKBwAZzBNss=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlKBwAZzCVGk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlKBwAZzD3GE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlKBwAZzElMQ=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlYY0n9+6MLI=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZzElMQ=" + }, + "model": { + "$ref": "AAAAAAGAlYY0lN+3EU4=" + }, + "font": "Arial;13;0", + "left": 837, + "top": 1222, + "width": 88.51171875, + "height": 13, + "text": "-charts: 1..3", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 832, + "top": 1217, + "width": 98.51171875, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlKBwAZzFovU=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlad4c9b/9Is=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZzFovU=" + }, + "model": { + "$ref": "AAAAAAGAlad4atb8lI0=" + }, + "font": "Arial;13;0", + "left": 837, + "top": 1245, + "width": 88.51171875, + "height": 13, + "text": "+bind_charts()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlagyRuRTfu8=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZzFovU=" + }, + "model": { + "$ref": "AAAAAAGAlagyPeRQGOU=" + }, + "font": "Arial;13;0", + "left": 837, + "top": 1260, + "width": 88.51171875, + "height": 13, + "text": "+create_chart()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 832, + "top": 1240, + "width": 98.51171875, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlKBwAZzGLPQ=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 570.75732421875, + "top": 856, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlKBwAZzHzc0=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 570.75732421875, + "top": 856, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 832, + "top": 1192, + "width": 98.51171875, + "height": 86, + "nameCompartment": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlKBwAZzElMQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlKBwAZzFovU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlKBwAZzGLPQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlKBwAZzHzc0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlKJCvaOyt2Y=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlKJCvaOz1zM=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlKJCvaO0eJc=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 318.16015625, + "top": 1792, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKJCvaO1d+s=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "font": "Arial;13;1", + "left": 557, + "top": 1239, + "width": 127.1689453125, + "height": 13, + "text": "Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKJCvaO2lvg=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 318.16015625, + "top": 1792, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKJCvaO3OTs=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 318.16015625, + "top": 1792, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 552, + "top": 1232, + "width": 137.1689453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlKJCvaO0eJc=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlKJCvaO1d+s=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlKJCvaO2lvg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlKJCvaO3OTs=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlKJCvaO4vRA=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlYoy+yzFNqw=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaO4vRA=" + }, + "model": { + "$ref": "AAAAAAGAlYoy8CzCHeM=" + }, + "font": "Arial;13;0", + "left": 557, + "top": 1262, + "width": 127.1689453125, + "height": 13, + "text": "-lines: line_series[0..*]", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 552, + "top": 1257, + "width": 137.1689453125, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlKJCvaO5Oao=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "font": "Arial;13;0", + "left": 552, + "top": 1280, + "width": 137.1689453125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlKJCvaO6siY=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 159.080078125, + "top": 896, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlKJCvaO78CI=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 159.080078125, + "top": 896, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 552, + "top": 1232, + "width": 137.1689453125, + "height": 73, + "nameCompartment": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlKJCvaO4vRA=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlKJCvaO5Oao=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlKJCvaO6siY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlKJCvaO78CI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlLRrLqxjK7Y=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlLRrLqxkRxs=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlLRrLqxlEIo=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2272, + "top": 1636, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLRrLqxmB08=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "font": "Arial;13;1", + "left": 1261, + "top": 1311, + "width": 78.47265625, + "height": 13, + "text": "Header" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLRrLqxnhAU=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2272, + "top": 1636, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLRrLqxoIFs=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2272, + "top": 1636, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1256, + "top": 1304, + "width": 88.47265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlLRrLqxlEIo=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlLRrLqxmB08=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlLRrLqxnhAU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlLRrLqxoIFs=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlLRrLqxpQvE=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlL0eB9ExsYk=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxpQvE=" + }, + "model": { + "$ref": "AAAAAAGAlL0d+NEoRwU=" + }, + "font": "Arial;13;0", + "left": 1261, + "top": 1334, + "width": 78.47265625, + "height": 13, + "text": "+title: string", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1256, + "top": 1329, + "width": 88.47265625, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlLRrLqxqDzg=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "font": "Arial;13;0", + "left": 1256, + "top": 1352, + "width": 88.47265625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlLRrLqxrd5c=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 818, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlLRrLqxs2dI=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 818, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1256, + "top": 1304, + "width": 88.47265625, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlLRrLqxpQvE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlLRrLqxqDzg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlLRrLqxrd5c=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlLRrLqxs2dI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlLTUj7L3TDU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlLTUj7L40Wo=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlLTUj7L5HQw=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2496, + "top": 1520, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLTUj7L6n98=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "font": "Arial;13;1", + "left": 1397, + "top": 1031, + "width": 86.708984375, + "height": 13, + "text": "User Interface" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLTUj7L7AC8=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2496, + "top": 1520, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLTUj7L8gQs=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2496, + "top": 1520, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1392, + "top": 1024, + "width": 96.708984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlLTUj7L5HQw=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlLTUj7L6n98=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlLTUj7L7AC8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlLTUj7L8gQs=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlLTUj7L9qXo=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "font": "Arial;13;0", + "left": 1392, + "top": 1049, + "width": 96.708984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlLTUj7L+GuI=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "font": "Arial;13;0", + "left": 1392, + "top": 1059, + "width": 96.708984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlLTUj7L/C8A=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1248, + "top": 760, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlLTUkLMARZA=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1248, + "top": 760, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1392, + "top": 1024, + "width": 96.708984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlLTUj7L9qXo=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlLTUj7L+GuI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlLTUj7L/C8A=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlLTUkLMARZA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlLtBdcDltiY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlLtBdcDmIn0=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlLtBdcDn4d0=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2736, + "top": 1396, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLtBdcDoTKY=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "font": "Arial;13;1", + "left": 1653, + "top": 1215, + "width": 81.28173828125, + "height": 13, + "text": "Controls" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLtBdcDpGX8=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2736, + "top": 1396, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLtBdcDqEF8=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2736, + "top": 1396, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1648, + "top": 1208, + "width": 91.28173828125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlLtBdcDn4d0=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlLtBdcDoTKY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlLtBdcDpGX8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlLtBdcDqEF8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlLtBdsDrxg0=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "font": "Arial;13;0", + "left": 1648, + "top": 1233, + "width": 91.28173828125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlLtBdsDsykE=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlamWZS8RNu8=", + "_parent": { + "$ref": "AAAAAAGAlLtBdsDsykE=" + }, + "model": { + "$ref": "AAAAAAGAlamWWi8OqEc=" + }, + "font": "Arial;13;0", + "left": 1653, + "top": 1248, + "width": 81.28173828125, + "height": 13, + "text": "+showAtPos()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1648, + "top": 1243, + "width": 91.28173828125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlLtBdsDtZlc=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1368, + "top": 698, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlLtBdsDuieQ=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1368, + "top": 698, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1648, + "top": 1208, + "width": 91.28173828125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlLtBdsDrxg0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlLtBdsDsykE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlLtBdsDtZlc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlLtBdsDuieQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlMBt0tj0oB8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMBt0tjyuVQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMBt0tj15vk=", + "_parent": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "model": { + "$ref": "AAAAAAGAlMBt0tjyuVQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1252, + "top": 1534, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMBt0tj2tnw=", + "_parent": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "model": { + "$ref": "AAAAAAGAlMBt0tjyuVQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1266, + "top": 1538, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMBt0tj3u4U=", + "_parent": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "model": { + "$ref": "AAAAAAGAlMBt0tjyuVQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1223, + "top": 1525, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "lineStyle": 1, + "points": "1290:1362;1187:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlMBt0tj15vk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMBt0tj2tnw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMBt0tj3u4U=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlMDKUtww6o0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMDKUdwuDGM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMDKUtwxyNM=", + "_parent": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "model": { + "$ref": "AAAAAAGAlMDKUdwuDGM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1048, + "top": 1480, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMDKUtwy7Uk=", + "_parent": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "model": { + "$ref": "AAAAAAGAlMDKUdwuDGM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1061, + "top": 1472, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMDKUtwzWLA=", + "_parent": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "model": { + "$ref": "AAAAAAGAlMDKUdwuDGM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1023, + "top": 1495, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "906:1278;1166:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlMDKUtwxyNM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMDKUtwy7Uk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMDKUtwzWLA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlMe6bOf/4IA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlMe6bOgA1Vs=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlMe6bOgB75I=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 892, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMe6bOgC8Nk=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "font": "Arial;13;1", + "left": 669, + "top": 1111, + "width": 126.4453125, + "height": 13, + "text": "Price_Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMe6bOgDaYQ=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 892, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMe6bOgEnEY=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 892, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 664, + "top": 1104, + "width": 136.4453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMe6bOgB75I=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlMe6bOgC8Nk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlMe6bOgDaYQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMe6bOgEnEY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlMe6bOgFNuk=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlYu4Lz/LYqs=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgFNuk=" + }, + "model": { + "$ref": "AAAAAAGAlYu4Ij/IzVw=" + }, + "font": "Arial;13;0", + "left": 669, + "top": 1134, + "width": 126.4453125, + "height": 13, + "text": "-candles: price_series", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlY+knm5Z/uo=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgFNuk=" + }, + "model": { + "$ref": "AAAAAAGAlY+kkW5Wfxg=" + }, + "font": "Arial;13;0", + "left": 669, + "top": 1149, + "width": 126.4453125, + "height": 13, + "text": "-volume: histogram", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 664, + "top": 1129, + "width": 136.4453125, + "height": 38 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlMe6bOgGzvE=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "font": "Arial;13;0", + "left": 664, + "top": 1167, + "width": 136.4453125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlMe6bOgH+Bs=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": 446, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlMe6bOgIVe8=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": 446, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 664, + "top": 1104, + "width": 136.4453125, + "height": 73, + "nameCompartment": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlMe6bOgFNuk=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlMe6bOgGzvE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlMe6bOgH+Bs=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlMe6bOgIVe8=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlMe6u+hGVac=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMe6u+hEFdo=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMe6u+hHqc0=", + "_parent": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "model": { + "$ref": "AAAAAAGAlMe6u+hEFdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 686, + "top": 1207, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMe6u+hIqN8=", + "_parent": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "model": { + "$ref": "AAAAAAGAlMe6u+hEFdo=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 697, + "top": 1217, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMe6u+hJPI4=", + "_parent": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "model": { + "$ref": "AAAAAAGAlMe6u+hEFdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 663, + "top": 1188, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "tail": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "lineStyle": 1, + "points": "699:1177;652:1231", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlMe6u+hHqc0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMe6u+hIqN8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMe6u+hJPI4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlMgRM+mvaWs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlMgRM+mweN0=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlMgRM+mxAdI=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1532, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMgRM+myc+8=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "font": "Arial;13;1", + "left": 661, + "top": 1431, + "width": 65.72998046875, + "height": 13, + "text": "Sub_Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMgRM+mzgGE=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1532, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMgRM+m0QR0=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1532, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 656, + "top": 1424, + "width": 75.72998046875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMgRM+mxAdI=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlMgRM+myc+8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlMgRM+mzgGE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMgRM+m0QR0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlMgRM+m1odQ=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "font": "Arial;13;0", + "left": 656, + "top": 1449, + "width": 75.72998046875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlMgRM+m2qT4=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "font": "Arial;13;0", + "left": 656, + "top": 1459, + "width": 75.72998046875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlMgRM+m30Gg=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 568, + "top": 766, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlMgRNOm4hOI=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 568, + "top": 766, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 656, + "top": 1424, + "width": 75.72998046875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlMgRM+m1odQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlMgRM+m2qT4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlMgRM+m30Gg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlMgRNOm4hOI=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlMgRf+n28IE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMgRf+n02Wc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMgRf+n3bpw=", + "_parent": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "model": { + "$ref": "AAAAAAGAlMgRf+n02Wc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 645, + "top": 1363, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMgRf+n4/ZI=", + "_parent": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "model": { + "$ref": "AAAAAAGAlMgRf+n02Wc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 631, + "top": 1369, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMgRf+n516w=", + "_parent": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "model": { + "$ref": "AAAAAAGAlMgRf+n02Wc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 672, + "top": 1352, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "tail": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "lineStyle": 1, + "points": "684:1423;635:1305", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlMgRf+n3bpw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMgRf+n4/ZI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMgRf+n516w=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlOF3iKq5ed8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlOF3iKq6aGk=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlOF3iKq7dIs=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1036, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOF3iKq83dU=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "font": "Arial;13;1", + "left": 845, + "top": 1319, + "width": 80.57080078125, + "height": 13, + "text": "RSI_Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOF3iKq9LmM=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1036, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOF3iKq+OZc=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1036, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 840, + "top": 1312, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOF3iKq7dIs=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlOF3iKq83dU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlOF3iKq9LmM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOF3iKq+OZc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlOF3iKq/nF4=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "font": "Arial;13;0", + "left": 840, + "top": 1337, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlOF3iKrANh4=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaHXCCzROFY=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKrANh4=" + }, + "model": { + "$ref": "AAAAAAGAlaHW+yzOEf4=" + }, + "font": "Arial;13;0", + "left": 845, + "top": 1352, + "width": 80.57080078125, + "height": 13, + "text": "+RSI_lines()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 840, + "top": 1347, + "width": 90.57080078125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlOF3iKrB+Wc=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 584, + "top": 518, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlOF3iKrC6Qs=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 584, + "top": 518, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 840, + "top": 1312, + "width": 90.57080078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlOF3iKq/nF4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlOF3iKrANh4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlOF3iKrB+Wc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlOF3iKrC6Qs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlOF33asezQI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOF33ascf20=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOF33asf8Bw=", + "_parent": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "model": { + "$ref": "AAAAAAGAlOF33ascf20=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 792, + "top": 1402, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOF33asg4sw=", + "_parent": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "model": { + "$ref": "AAAAAAGAlOF33ascf20=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 799, + "top": 1415, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOF33ashP+4=", + "_parent": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "model": { + "$ref": "AAAAAAGAlOF33ascf20=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 777, + "top": 1375, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "tail": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "lineStyle": 1, + "points": "839:1365;732:1425", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlOF33asf8Bw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOF33asg4sw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOF33ashP+4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlOG1qKyk1j0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlOG1qKylWAA=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlOG1qKymumA=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 956, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOG1qKynwvA=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "font": "Arial;13;1", + "left": 709, + "top": 1279, + "width": 88.86083984375, + "height": 13, + "text": "MACD_Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOG1qKyoL/4=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 956, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOG1qKypFY8=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 956, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 704, + "top": 1272, + "width": 98.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOG1qKymumA=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlOG1qKynwvA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlOG1qKyoL/4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOG1qKypFY8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlOG1qKyq5xw=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlZA+PHVWN6c=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyq5xw=" + }, + "model": { + "$ref": "AAAAAAGAlZA+L3VTvPw=" + }, + "font": "Arial;13;0", + "left": 709, + "top": 1302, + "width": 88.86083984375, + "height": 13, + "text": "-hist: histogram", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 704, + "top": 1297, + "width": 98.86083984375, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlOG1qKyrwws=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "font": "Arial;13;0", + "left": 704, + "top": 1320, + "width": 98.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlOG1qKys5rI=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": 478, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlOG1qKytrsM=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": 478, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 704, + "top": 1272, + "width": 98.86083984375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlOG1qKyq5xw=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlOG1qKyrwws=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlOG1qKys5rI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlOG1qKytrsM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlOG2CK0JgG8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOG2B60HNBw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOG2CK0K3Gs=", + "_parent": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "model": { + "$ref": "AAAAAAGAlOG2B60HNBw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 734, + "top": 1375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOG2CK0Lauw=", + "_parent": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "model": { + "$ref": "AAAAAAGAlOG2B60HNBw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 748, + "top": 1381, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOG2CK0MsxI=", + "_parent": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "model": { + "$ref": "AAAAAAGAlOG2B60HNBw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 707, + "top": 1364, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "tail": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "lineStyle": 1, + "points": "740:1330;702:1423", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlOG2CK0K3Gs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOG2CK0Lauw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOG2CK0MsxI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlOJxWLVK1Fs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVLiQc=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 824, + "top": 1273, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVM788=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 831, + "top": 1286, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVNlaU=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 809, + "top": 1246, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVOXpk=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVH07M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 815, + "top": 1278, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVPcTM=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVH07M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 819, + "top": 1291, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVQLcQ=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVH07M=" + }, + "font": "Arial;13;0", + "left": 803, + "top": 1252, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVRbK4=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVILrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 1268, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVSaiY=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVILrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 841, + "top": 1279, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWbVTk9o=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVILrM=" + }, + "font": "Arial;13;0", + "left": 813, + "top": 1246, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlOJxWbVUAow=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVH07M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlOJxWbVVTCs=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVILrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "831:1259;803:1274", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlOJxWLVLiQc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOJxWLVM788=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOJxWLVNlaU=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlOJxWLVOXpk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlOJxWLVPcTM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlOJxWLVQLcQ=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlOJxWLVRbK4=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlOJxWLVSaiY=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlOJxWbVTk9o=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlOJxWbVUAow=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlOJxWbVVTCs=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlOP4tbt23nc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt35X0=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 1287, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt4NgM=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 911, + "top": 1286, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt5Xw4=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 867, + "top": 1288, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt6b5U=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbtzuOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 897, + "top": 1297, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt7ThA=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbtzuOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 911, + "top": 1299, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt8pzU=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbtzuOo=" + }, + "font": "Arial;13;0", + "left": 867, + "top": 1294, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt98Bo=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbt0Vwg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 897, + "top": 1278, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt+LXU=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbt0Vwg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 910, + "top": 1275, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt/Y0w=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbt0Vwg=" + }, + "font": "Arial;13;0", + "left": 866, + "top": 1283, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlOP4tbuAGLA=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbtzuOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlOP4tbuBv+0=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbt0Vwg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "882:1278;883:1311", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlOP4tbt35X0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOP4tbt4NgM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOP4tbt5Xw4=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlOP4tbt6b5U=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlOP4tbt7ThA=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlOP4tbt8pzU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlOP4tbt98Bo=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlOP4tbt+LXU=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlOP4tbt/Y0w=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlOP4tbuAGLA=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlOP4tbuBv+0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlOVtD89PdYQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlOVtD89Q2SE=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlOVtD89R0Ak=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2164.58203125, + "top": 1760, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOVtEM9Sgg4=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "font": "Arial;13;1", + "left": 1861, + "top": 1415, + "width": 54.18994140625, + "height": 13, + "text": "Interface" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOVtEM9TlXA=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2164.58203125, + "top": 1760, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOVtEM9UXL8=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2164.58203125, + "top": 1760, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1856, + "top": 1408, + "width": 64.18994140625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOVtD89R0Ak=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlOVtEM9Sgg4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlOVtEM9TlXA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOVtEM9UXL8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlOVtEM9VjO4=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "font": "Arial;13;0", + "left": 1856, + "top": 1433, + "width": 64.18994140625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlOVtEM9WzB4=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "font": "Arial;13;0", + "left": 1856, + "top": 1443, + "width": 64.18994140625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlOVtEM9XwJI=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1082.291015625, + "top": 880, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlOVtEM9YXUU=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1082.291015625, + "top": 880, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1856, + "top": 1408, + "width": 64.18994140625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlOVtEM9VjO4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlOVtEM9WzB4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlOVtEM9XwJI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlOVtEM9YXUU=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlQqkENzfKLo=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzg3ZU=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 801, + "top": 1196, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzhGQ4=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 793, + "top": 1209, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzi3qE=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 818, + "top": 1171, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzj/Ns=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzcXKQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 801, + "top": 1195, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzkuGM=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzcXKQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 791, + "top": 1205, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzl9c8=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzcXKQ=" + }, + "font": "Arial;13;0", + "left": 816, + "top": 1174, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzmZ3c=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzdqVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 803, + "top": 1197, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzn4hY=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzdqVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 798, + "top": 1210, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzo9qM=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzdqVw=" + }, + "font": "Arial;13;0", + "left": 811, + "top": 1172, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlQqkENzpv5Q=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzcXKQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlQqkENzqfwQ=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzdqVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "831:1203;790:1177", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlQqkENzg3ZU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlQqkENzhGQ4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlQqkENzi3qE=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlQqkENzj/Ns=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlQqkENzkuGM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlQqkENzl9c8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlQqkENzmZ3c=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlQqkENzn4hY=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlQqkENzo9qM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlQqkENzpv5Q=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlQqkENzqfwQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlQzlP/cvjRU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlQzlPvctqQw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQzlP/cwS1Y=", + "_parent": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "model": { + "$ref": "AAAAAAGAlQzlPvctqQw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1549, + "top": 1584, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQzlP/cxot0=", + "_parent": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "model": { + "$ref": "AAAAAAGAlQzlPvctqQw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1555, + "top": 1598, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQzlP/cyEi4=", + "_parent": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "model": { + "$ref": "AAAAAAGAlQzlPvctqQw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1538, + "top": 1557, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "lineStyle": 1, + "points": "1855:1444;1233:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlQzlP/cwS1Y=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlQzlP/cxot0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlQzlP/cyEi4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlQ0ahvqgPhc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlQ0ahvqeZ6I=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQ0ahvqh2lU=", + "_parent": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "model": { + "$ref": "AAAAAAGAlQ0ahvqeZ6I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1803, + "top": 1319, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQ0ahvqiNNw=", + "_parent": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "model": { + "$ref": "AAAAAAGAlQ0ahvqeZ6I=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1814, + "top": 1308, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQ0ahvqjx4g=", + "_parent": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "model": { + "$ref": "AAAAAAGAlQ0ahvqeZ6I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1782, + "top": 1340, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "lineStyle": 1, + "points": "1723:1266;1864:1407", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlQ0ahvqh2lU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlQ0ahvqiNNw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlQ0ahvqjx4g=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlRBEJjLv+uI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlRBEJjLwUs4=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlRBEJjLxHDA=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 1408, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRBEJjLy34o=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "font": "Arial;13;1", + "left": 1349, + "top": 1391, + "width": 41.919921875, + "height": 13, + "text": "Alerts" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRBEJjLznQo=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 1408, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRBEJjL0g3w=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 1408, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1344, + "top": 1384, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRBEJjLxHDA=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlRBEJjLy34o=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlRBEJjLznQo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRBEJjL0g3w=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlRBEJjL1S10=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "font": "Arial;13;0", + "left": 1344, + "top": 1409, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlRBEJjL2VUw=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "font": "Arial;13;0", + "left": 1344, + "top": 1419, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlRBEJjL3SGQ=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlRBEJjL4bGk=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": 704, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1344, + "top": 1384, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlRBEJjL1S10=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlRBEJjL2VUw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlRBEJjL3SGQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlRBEJjL4bGk=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlRB+cjfi8c0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRB+cjfgulU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRB+cjfj3CE=", + "_parent": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "model": { + "$ref": "AAAAAAGAlRB+cjfgulU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1287, + "top": 1571, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRB+cjfkkiM=", + "_parent": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "model": { + "$ref": "AAAAAAGAlRB+cjfgulU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1300, + "top": 1578, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRB+cjflWEI=", + "_parent": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "model": { + "$ref": "AAAAAAGAlRB+cjfgulU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1260, + "top": 1556, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "lineStyle": 1, + "points": "1356:1429;1193:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlRB+cjfj3CE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRB+cjfkkiM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRB+cjflWEI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlRGzZE5UCxw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlRGzZE5VnFY=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlRGzZE5Whps=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": 1600, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRGzZE5X7Gc=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "font": "Arial;13;1", + "left": 1397, + "top": 1479, + "width": 92.46630859375, + "height": 13, + "text": "Exchange_Info" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRGzZE5Yimo=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": 1600, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRGzZE5ZoWo=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": 1600, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1392, + "top": 1472, + "width": 102.46630859375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRGzZE5Whps=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlRGzZE5X7Gc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlRGzZE5Yimo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRGzZE5ZoWo=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlRGzZE5aPuo=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "font": "Arial;13;0", + "left": 1392, + "top": 1497, + "width": 102.46630859375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlRGzZE5bk8k=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "font": "Arial;13;0", + "left": 1392, + "top": 1507, + "width": 102.46630859375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlRGzZE5cWQ4=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 800, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlRGzZU5d3ww=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 800, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1392, + "top": 1472, + "width": 102.46630859375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlRGzZE5aPuo=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlRGzZE5bk8k=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlRGzZE5cWQ4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlRGzZU5d3ww=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlRH94FB2644=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRH931B0eeY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRH94FB3tFk=", + "_parent": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "model": { + "$ref": "AAAAAAGAlRH931B0eeY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1321, + "top": 1619, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRH94FB4lR0=", + "_parent": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "model": { + "$ref": "AAAAAAGAlRH931B0eeY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1331, + "top": 1630, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRH94FB50Og=", + "_parent": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "model": { + "$ref": "AAAAAAGAlRH931B0eeY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1300, + "top": 1596, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "lineStyle": 1, + "points": "1417:1517;1205:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlRH94FB3tFk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRH94FB4lR0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRH94FB50Og=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlRJADlhrEO0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlRJADlhsZDY=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlRJADlhtNpU=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1056, + "top": 1376, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRJADlhuh+0=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "font": "Arial;13;1", + "left": 1509, + "top": 1383, + "width": 125.353515625, + "height": 13, + "text": "Signals" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRJADlhvf+s=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1056, + "top": 1376, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRJADlhw4ks=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1056, + "top": 1376, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1504, + "top": 1376, + "width": 135.353515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRJADlhtNpU=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlRJADlhuh+0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlRJADlhvf+s=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRJADlhw4ks=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlRJADlhx56c=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "font": "Arial;13;0", + "left": 1504, + "top": 1401, + "width": 135.353515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlRJADlhy+tQ=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaz/TWcw1zI=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlaz/P2ckb8w=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1416, + "width": 125.353515625, + "height": 13, + "text": "+open_signal_Form()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAla2Nw3wcBoQ=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAla2Nt3wQUmo=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1431, + "width": 125.353515625, + "height": 13, + "text": "+close_signal_Form()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAla3S4Iuqdvk=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAla3S1IueRjU=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1446, + "width": 125.353515625, + "height": 13, + "text": "+fill_prop()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcH4LuC6CtA=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlcBTsKIft6E=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1461, + "width": 125.353515625, + "height": 13, + "text": "+switch_panel()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcIEZeL14iE=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlcCHsa7OUgE=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1476, + "width": 125.353515625, + "height": 13, + "text": "+hideIfTrue()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcI5j+izJPo=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlcC9Qb26gpQ=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1491, + "width": 125.353515625, + "height": 13, + "text": "+ns_next()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcKMz/hBW2Y=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlcKMw/g1OQc=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1506, + "width": 125.353515625, + "height": 13, + "text": "+submitNewSignal()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1504, + "top": 1411, + "width": 135.353515625, + "height": 113 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlRJADlhzq50=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 688, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlRJADlh0c7o=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 688, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1504, + "top": 1376, + "width": 135.353515625, + "height": 148, + "nameCompartment": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlRJADlhx56c=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlRJADlhzq50=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlRJADlh0c7o=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlRKGiFtBZJk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRKGiFs/VYQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRKGiVtCAiI=", + "_parent": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "model": { + "$ref": "AAAAAAGAlRKGiFs/VYQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1746, + "top": 1417, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRKGiVtDcTg=", + "_parent": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "model": { + "$ref": "AAAAAAGAlRKGiFs/VYQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1745, + "top": 1402, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRKGiVtETV8=", + "_parent": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "model": { + "$ref": "AAAAAAGAlRKGiFs/VYQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1747, + "top": 1446, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "lineStyle": 1, + "points": "1639:1445;1855:1432", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlRKGiVtCAiI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRKGiVtDcTg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRKGiVtETV8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlRLKTmK43xc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlRLKTmK5Hys=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlRLKTmK6uxE=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 1200, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRLKT2K7jkY=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "font": "Arial;13;1", + "left": 1581, + "top": 1287, + "width": 62.86083984375, + "height": 13, + "text": "Strategies" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRLKT2K8N+E=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 1200, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRLKT2K9fKc=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 1200, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1576, + "top": 1280, + "width": 72.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRLKTmK6uxE=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlRLKT2K7jkY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlRLKT2K8N+E=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRLKT2K9fKc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlRLKT2K+FM0=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "font": "Arial;13;0", + "left": 1576, + "top": 1305, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlRLKT2K/7OY=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "font": "Arial;13;0", + "left": 1576, + "top": 1315, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlRLKT2LA9wQ=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 520, + "top": 600, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlRLKT2LBxAc=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 520, + "top": 600, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1576, + "top": 1280, + "width": 72.86083984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlRLKT2K+FM0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlRLKT2K/7OY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlRLKT2LA9wQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlRLKT2LBxAc=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlRM+J2Z5suI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRM+J2Z34W8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRM+J2Z6fJM=", + "_parent": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "model": { + "$ref": "AAAAAAGAlRM+J2Z34W8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1758, + "top": 1347, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRM+J2Z74uU=", + "_parent": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "model": { + "$ref": "AAAAAAGAlRM+J2Z34W8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1764, + "top": 1333, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRM+J2Z8R/A=", + "_parent": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "model": { + "$ref": "AAAAAAGAlRM+J2Z34W8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1745, + "top": 1374, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "lineStyle": 1, + "points": "1649:1320;1855:1415", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlRM+J2Z6fJM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRM+J2Z74uU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRM+J2Z8R/A=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlTkfofuodyI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlTkfofupAKs=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlTkfofuq9Y4=", + "_parent": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 992, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTkfovurY88=", + "_parent": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "font": "Arial;13;1", + "left": 1157, + "top": 1263, + "width": 57.8017578125, + "height": 13, + "text": "Statistics" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTkfovusFz0=", + "_parent": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 992, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTkfovutY9w=", + "_parent": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 992, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1152, + "top": 1256, + "width": 67.8017578125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTkfofuq9Y4=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlTkfovurY88=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlTkfovusFz0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTkfovutY9w=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlTkfovuu92c=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "font": "Arial;13;0", + "left": 1152, + "top": 1281, + "width": 67.8017578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlTkfovuvk+I=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "font": "Arial;13;0", + "left": 1152, + "top": 1291, + "width": 67.8017578125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlTkfovuwTzQ=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 496, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlTkfovuxnV4=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 496, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1152, + "top": 1256, + "width": 67.8017578125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlTkfovuu92c=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlTkfovuvk+I=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlTkfovuwTzQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlTkfovuxnV4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlTlTRf12RvY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlTlTRf13gzQ=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlTlTRf14vTk=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": 464, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTlTRf15sYU=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "font": "Arial;13;1", + "left": 1725, + "top": 1135, + "width": 62.86083984375, + "height": 13, + "text": "Trade" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTlTRf16m7Y=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": 464, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTlTRf17lYM=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": 464, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1720, + "top": 1128, + "width": 72.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTlTRf14vTk=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlTlTRf15sYU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlTlTRf16m7Y=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTlTRf17lYM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlTlTRf18/vE=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "font": "Arial;13;0", + "left": 1720, + "top": 1153, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlTlTRv197u0=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "font": "Arial;13;0", + "left": 1720, + "top": 1163, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlTlTRv1+Zlc=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 432, + "top": 232, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlTlTRv1/okc=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 432, + "top": 232, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1720, + "top": 1128, + "width": 72.86083984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlTlTRf18/vE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlTlTRv197u0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlTlTRv1+Zlc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlTlTRv1/okc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlTqLXhUS1aw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlTqLXhUTpkw=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlTqLXhUU28k=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 432, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTqLXhUVdg0=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "font": "Arial;13;1", + "left": 1805, + "top": 1079, + "width": 73.68994140625, + "height": 13, + "text": "Backtesting" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTqLXhUWGPU=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 432, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTqLXhUXzv4=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 432, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1800, + "top": 1072, + "width": 83.68994140625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTqLXhUU28k=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlTqLXhUVdg0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlTqLXhUWGPU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTqLXhUXzv4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlTqLXhUYROs=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "font": "Arial;13;0", + "left": 1800, + "top": 1097, + "width": 83.68994140625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlTqLXhUZ8Wc=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "font": "Arial;13;0", + "left": 1800, + "top": 1107, + "width": 83.68994140625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlTqLXhUaOIE=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": 216, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlTqLXhUbFJA=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": 216, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1800, + "top": 1072, + "width": 83.68994140625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlTqLXhUYROs=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlTqLXhUZ8Wc=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlTqLXhUaOIE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlTqLXhUbFJA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlTsU1xtzkxQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlTsU1xt0ci8=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlTsU1xt11Cw=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1808, + "top": -48, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTsU1xt2TGU=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "font": "Arial;13;1", + "left": 2005, + "top": 959, + "width": 128.99072265625, + "height": 13, + "text": "Indicators" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTsU1xt3+Qs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1808, + "top": -48, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTsU1xt46H8=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1808, + "top": -48, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2000, + "top": 952, + "width": 138.99072265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTsU1xt11Cw=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlTsU1xt2TGU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlTsU1xt3+Qs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTsU1xt46H8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlTsU1xt5K1E=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlZgIO2Z79Ac=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt5K1E=" + }, + "model": { + "$ref": "AAAAAAGAlZgH+WZvuek=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 982, + "width": 128.99072265625, + "height": 13, + "text": "-indicator_list", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlaVzOajGHBs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt5K1E=" + }, + "model": { + "$ref": "AAAAAAGAlaVzK6i6DOI=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 997, + "width": 128.99072265625, + "height": 13, + "text": "-indicator_types", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2000, + "top": 977, + "width": 138.99072265625, + "height": 38 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlTsU1xt6JF8=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZn3+YkTHZU=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlZn364kHgE4=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1020, + "width": 128.99072265625, + "height": 13, + "text": "+create_indicator()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZxMPZcN18Y=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlZxMLpcBNJs=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1035, + "width": 128.99072265625, + "height": 13, + "text": "+initialize_indicator()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZp+i5AQnCo=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlZp+fJAEI0M=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1050, + "width": 128.99072265625, + "height": 13, + "text": "+update_indicator()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZ878bgGF2g=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlZ874bf6dfs=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1065, + "width": 128.99072265625, + "height": 13, + "text": "+get_indicator_data()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaX+Z7TUl5o=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlaX+WLTITpQ=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1080, + "width": 128.99072265625, + "height": 13, + "text": "+get_indicator_types()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlax3K19AJHQ=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlax3HV80v/A=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1095, + "width": 128.99072265625, + "height": 13, + "text": "+submit_new_i()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcP53En5BKY=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlcP5zkntePQ=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1110, + "width": 128.99072265625, + "height": 13, + "text": "+add_to_list()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2000, + "top": 1015, + "width": 138.99072265625, + "height": 113 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlTsU2Bt7+nY=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 904, + "top": -24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlTsU2Bt85rQ=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 904, + "top": -24, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2000, + "top": 952, + "width": 138.99072265625, + "height": 176, + "nameCompartment": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlTsU1xt5K1E=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlTsU2Bt7+nY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlTsU2Bt85rQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlTyXiLPi788=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTyXiLPgx5Y=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTyXiLPjW8k=", + "_parent": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "model": { + "$ref": "AAAAAAGAlTyXiLPgx5Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1834, + "top": 1277, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTyXiLPkftA=", + "_parent": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "model": { + "$ref": "AAAAAAGAlTyXiLPgx5Y=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1848, + "top": 1271, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTyXiLPlzMM=", + "_parent": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "model": { + "$ref": "AAAAAAGAlTyXiLPgx5Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1807, + "top": 1290, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "lineStyle": 1, + "points": "1766:1173;1876:1407", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlTyXiLPjW8k=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTyXiLPkftA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTyXiLPlzMM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlTzYE8X+0nA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTzYE8X8Jlg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTzYE8X/4e8=", + "_parent": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "model": { + "$ref": "AAAAAAGAlTzYE8X8Jlg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1878, + "top": 1253, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTzYE8YAaso=", + "_parent": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "model": { + "$ref": "AAAAAAGAlTzYE8X8Jlg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1893, + "top": 1251, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTzYE8YBAZ8=", + "_parent": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "model": { + "$ref": "AAAAAAGAlTzYE8X8Jlg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1849, + "top": 1258, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "lineStyle": 1, + "points": "1844:1117;1884:1407", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlTzYE8X/4e8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTzYE8YAaso=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTzYE8YBAZ8=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlTz1lM6X9pg=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTz1lM6VeiU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTz1lM6YDsc=", + "_parent": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "model": { + "$ref": "AAAAAAGAlTz1lM6VeiU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1975, + "top": 1267, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTz1lM6ZVf8=", + "_parent": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "model": { + "$ref": "AAAAAAGAlTz1lM6VeiU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1989, + "top": 1273, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTz1lM6aSIo=", + "_parent": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "model": { + "$ref": "AAAAAAGAlTz1lM6VeiU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1948, + "top": 1254, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "lineStyle": 1, + "points": "2027:1128;1898:1407", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlTz1lM6YDsc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTz1lM6ZVf8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTz1lM6aSIo=" + } + }, + { + "_type": "UMLInterfaceView", + "_id": "AAAAAAGAlUGOetAKJ9M=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlUGOe9ALbuc=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlUGOe9AM3VA=", + "_parent": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 1312, + "width": 64.32080078125, + "height": 13, + "text": "«interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUGOe9AN3i0=", + "_parent": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "font": "Arial;13;1", + "left": 917, + "top": 902, + "width": 107.681640625, + "height": 13, + "text": "Exchange_server" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUGOe9AOyYU=", + "_parent": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 1312, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUGOe9APaFw=", + "_parent": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 1312, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 912, + "top": 895, + "width": 117.681640625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUGOe9AM3VA=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlUGOe9AN3i0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlUGOe9AOyYU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUGOe9APaFw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlUGOe9AQKQ8=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": 656, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlUGOe9ARLVw=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": 656, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlUGOe9ASccA=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": 656, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlUGOe9ATwSg=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": 656, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 912, + "top": 872, + "width": 117.681640625, + "height": 49, + "stereotypeDisplay": "icon", + "nameCompartment": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGAlUGOe9AQKQ8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlUGOe9ARLVw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlUGOe9ASccA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlUGOe9ATwSg=" + } + }, + { + "_type": "UMLInterfaceView", + "_id": "AAAAAAGAlUI9x9WfNp0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlUI9x9Wgs0E=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlUI9yNWhqXo=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 1552, + "width": 64.32080078125, + "height": 13, + "text": "«interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUI9yNWiNII=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "font": "Arial;13;1", + "left": 917, + "top": 1006, + "width": 81.66259765625, + "height": 13, + "text": "Local_Server" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUI9yNWjs5s=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 1552, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUI9yNWkepI=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 1552, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 912, + "top": 999, + "width": 91.66259765625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUI9yNWhqXo=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlUI9yNWiNII=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlUI9yNWjs5s=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUI9yNWkepI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlUI9yNWlabc=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 776, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlUI9yNWm0tg=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 776, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlUI9yNWnf5M=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 776, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlUI9yNWoMB0=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 776, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 912, + "top": 976, + "width": 91.66259765625, + "height": 49, + "stereotypeDisplay": "icon", + "nameCompartment": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGAlUI9yNWlabc=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlUI9yNWm0tg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlUI9yNWnf5M=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlUI9yNWoMB0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlUKJqdyuF7g=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlUKJqtyvPEs=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlUKJqtyw01o=", + "_parent": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1328, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUKJqtyxm80=", + "_parent": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "font": "Arial;13;1", + "left": 1125, + "top": 967, + "width": 200.53515625, + "height": 13, + "text": "Cumunication" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUKJqtyyFIQ=", + "_parent": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1328, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUKJqtyzCu0=", + "_parent": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1328, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1120, + "top": 960, + "width": 210.53515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUKJqtyw01o=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlUKJqtyxm80=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlUKJqtyyFIQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUKJqtyzCu0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlUKJqty0UFU=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "font": "Arial;13;0", + "left": 1120, + "top": 985, + "width": 210.53515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlUKJqty1Q28=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcMIxDBNj/Q=", + "_parent": { + "$ref": "AAAAAAGAlUKJqty1Q28=" + }, + "model": { + "$ref": "AAAAAAGAlcMItTBB6JM=" + }, + "font": "Arial;13;0", + "left": 1125, + "top": 1000, + "width": 200.53515625, + "height": 13, + "text": "+indicator_update_msg_received()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1120, + "top": 995, + "width": 210.53515625, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlUKJqty2Grw=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 664, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlUKJqty3iYM=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 664, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1120, + "top": 960, + "width": 210.53515625, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlUKJqty0UFU=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlUKJqty1Q28=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlUKJqty2Grw=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlUKJqty3iYM=" + } + }, + { + "_type": "UMLInterfaceView", + "_id": "AAAAAAGAlUQhahEIKkE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlUQhahEJjos=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlUQhahEKrRI=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1408, + "width": 64.32080078125, + "height": 13, + "text": "«interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUQhahEL9Ws=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "font": "Arial;13;1", + "left": 725, + "top": 942, + "width": 119.20263671875, + "height": 13, + "text": "Server_Connection" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUQhahEMCsQ=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1408, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUQhahENMPo=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1408, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 720, + "top": 935, + "width": 129.20263671875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUQhahEKrRI=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlUQhahEL9Ws=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlUQhahEMCsQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUQhahENMPo=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlUQhahEOIKo=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlUQhahEPIz4=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlUQhaxEQFHQ=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlUQhaxERC6g=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 704, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 720, + "top": 912, + "width": 129.20263671875, + "height": 49, + "stereotypeDisplay": "icon", + "nameCompartment": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGAlUQhahEOIKo=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlUQhahEPIz4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlUQhaxEQFHQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlUQhaxERC6g=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlUZGOEXrRmE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUZGOEXplAE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZGOEXsxBk=", + "_parent": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "model": { + "$ref": "AAAAAAGAlUZGOEXplAE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 874, + "top": 979, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZGOEXt3Hc=", + "_parent": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "model": { + "$ref": "AAAAAAGAlUZGOEXplAE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 869, + "top": 993, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZGOEXueoo=", + "_parent": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "model": { + "$ref": "AAAAAAGAlUZGOEXplAE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 885, + "top": 950, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "tail": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "lineStyle": 1, + "points": "911:983;849:960", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUZGOEXsxBk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUZGOEXt3Hc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUZGOEXueoo=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlUZtyk0KTDw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUZtyk0I7mg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZtyk0LvFQ=", + "_parent": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "model": { + "$ref": "AAAAAAGAlUZtyk0I7mg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 883, + "top": 923, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZtyk0Ma+4=", + "_parent": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "model": { + "$ref": "AAAAAAGAlUZtyk0I7mg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 886, + "top": 938, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZtyk0NrCc=", + "_parent": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "model": { + "$ref": "AAAAAAGAlUZtyk0I7mg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 876, + "top": 894, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "tail": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "lineStyle": 1, + "points": "911:909;849:922", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUZtyk0LvFQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUZtyk0Ma+4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUZtyk0NrCc=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlUcXkVxhhWI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxixqg=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1060, + "top": 974, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxjge0=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1059, + "top": 959, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxke9A=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1061, + "top": 1003, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxlzSA=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxe4Jg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1029, + "top": 975, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxmjZw=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxe4Jg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1031, + "top": 962, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxnGUs=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxe4Jg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1026, + "top": 1003, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxoKc8=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxfAyc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1092, + "top": 973, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxpNOs=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxfAyc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1089, + "top": 959, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxqknE=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxfAyc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1097, + "top": 1000, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUcXkVxr4Hs=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxe4Jg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUcXkVxsIPk=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxfAyc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 704, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "tail": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "lineStyle": 1, + "points": "1004:998;1119:993", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUcXkVxixqg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUcXkVxjge0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUcXkVxke9A=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlUcXkVxlzSA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlUcXkVxmjZw=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlUcXkVxnGUs=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlUcXkVxoKc8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlUcXkVxpNOs=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlUcXkVxqknE=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlUcXkVxr4Hs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlUcXkVxsIPk=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlUcybGKPAQ8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKQj70=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1092, + "top": 917, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKRgcU=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1097, + "top": 903, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKSRwI=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1081, + "top": 946, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKTSgg=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKM+ME=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1059, + "top": 906, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKUDGY=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKM+ME=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1066, + "top": 894, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKVgIw=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKM+ME=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1046, + "top": 931, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKWL3U=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKNvZY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1124, + "top": 930, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKXLXw=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKNvZY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1126, + "top": 916, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKY8Y0=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKNvZY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1119, + "top": 957, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUcybGKZLIs=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKM+ME=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUcybWKaQFU=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKNvZY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 704, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "tail": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "lineStyle": 1, + "points": "1030:918;1144:959", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUcybGKQj70=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUcybGKRgcU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUcybGKSRwI=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlUcybGKTSgg=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlUcybGKUDGY=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlUcybGKVgIw=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlUcybGKWL3U=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlUcybGKXLXw=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlUcybGKY8Y0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlUcybGKZLIs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlUcybWKaQFU=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlUdTbGyzRRE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy0CE4=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1364, + "top": 1004, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy1kKQ=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1368, + "top": 990, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy2ftM=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1357, + "top": 1033, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy3f7w=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGywRtk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1359, + "top": 1003, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy4Tlg=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGywRtk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1365, + "top": 990, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy5YoA=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGywRtk=" + }, + "font": "Arial;13;0", + "left": 1345, + "top": 1028, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy6N7M=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyxjgQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1369, + "top": 1005, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy7EI4=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyxjgQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1370, + "top": 992, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy8REY=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyxjgQ=" + }, + "font": "Arial;13;0", + "left": 1363, + "top": 1033, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUdTbGy9yMw=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGywRtk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 512, + "top": 656, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUdTbGy+sRQ=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyxjgQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 512, + "top": 656, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "lineStyle": 1, + "points": "1331:1017;1391:1033", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUdTbGy0CE4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUdTbGy1kKQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUdTbGy2ftM=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlUdTbGy3f7w=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlUdTbGy4Tlg=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlUdTbGy5YoA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlUdTbGy6N7M=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlUdTbGy7EI4=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlUdTbGy8REY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlUdTbGy9yMw=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlUdTbGy+sRQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlU5WrJfGiJI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlU5WrJfEnsg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlU5WrJfHfLU=", + "_parent": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "model": { + "$ref": "AAAAAAGAlU5WrJfEnsg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1196, + "top": 1500, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlU5WrJfIyUE=", + "_parent": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "model": { + "$ref": "AAAAAAGAlU5WrJfEnsg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1211, + "top": 1500, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlU5WrJfJQgA=", + "_parent": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "model": { + "$ref": "AAAAAAGAlU5WrJfEnsg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1167, + "top": 1499, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "lineStyle": 1, + "points": "1185:1301;1180:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlU5WrJfHfLU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlU5WrJfIyUE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlU5WrJfJQgA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlU+ijhOm5cs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlU+ijhOnZ+Q=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlU+ijhOo58s=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 944, + "top": 784, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlU+ijhOptv4=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "font": "Arial;13;1", + "left": 1021, + "top": 1231, + "width": 108.04345703125, + "height": 13, + "text": "Indicator Output" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlU+ijhOqMQU=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 944, + "top": 784, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlU+ijhOrL0A=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 944, + "top": 784, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1016, + "top": 1224, + "width": 118.04345703125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlU+ijhOo58s=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlU+ijhOptv4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlU+ijhOqMQU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlU+ijhOrL0A=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlU+ijhOs+/8=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlYUqi9HYjzI=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOs+/8=" + }, + "model": { + "$ref": "AAAAAAGAlYUqd9HDP+I=" + }, + "font": "Arial;13;0", + "left": 1021, + "top": 1254, + "width": 108.04345703125, + "height": 13, + "text": "-legend", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1016, + "top": 1249, + "width": 118.04345703125, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlU+ijhOtj7g=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaPCaWaa6cg=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOtj7g=" + }, + "model": { + "$ref": "AAAAAAGAlaPCWGaFOto=" + }, + "font": "Arial;13;0", + "left": 1021, + "top": 1277, + "width": 108.04345703125, + "height": 13, + "text": "+create_legend()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaRbnnJZ+R8=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOtj7g=" + }, + "model": { + "$ref": "AAAAAAGAlaRbjHJEQRw=" + }, + "font": "Arial;13;0", + "left": 1021, + "top": 1292, + "width": 108.04345703125, + "height": 13, + "text": "+set_legend_text()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1016, + "top": 1272, + "width": 118.04345703125, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlU+ijhOuedc=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 472, + "top": 392, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlU+ijhOveQw=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 472, + "top": 392, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1016, + "top": 1224, + "width": 118.04345703125, + "height": 86, + "nameCompartment": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlU+ijhOs+/8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlU+ijhOtj7g=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlU+ijhOuedc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlU+ijhOveQw=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlVABNCiJHNw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlVABNCiHdVc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlVABNCiKFGk=", + "_parent": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "model": { + "$ref": "AAAAAAGAlVABNCiHdVc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1143, + "top": 1500, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlVABNSiLfUQ=", + "_parent": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "model": { + "$ref": "AAAAAAGAlVABNCiHdVc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1158, + "top": 1497, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlVABNSiMRQQ=", + "_parent": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "model": { + "$ref": "AAAAAAGAlVABNCiHdVc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1114, + "top": 1507, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "lineStyle": 1, + "points": "1084:1310;1175:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlVABNCiKFGk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlVABNSiLfUQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlVABNSiMRQQ=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlV0ISxInIEA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlV0ISxIo12A=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlV0ISxIpx0k=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1552, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV0ISxIqf4E=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "font": "Arial;13;1", + "left": 2557, + "top": 951, + "width": 80.57080078125, + "height": 13, + "text": "Indicator" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV0ISxIrFhU=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1552, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV0ITBIsjhU=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1552, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2552, + "top": 944, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV0ISxIpx0k=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlV0ISxIqf4E=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlV0ISxIrFhU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV0ITBIsjhU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlV0ITBIt82A=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "font": "Arial;13;0", + "left": 2552, + "top": 969, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlV0ITBIu8eg=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZREmy2yvIw=", + "_parent": { + "$ref": "AAAAAAGAlV0ITBIu8eg=" + }, + "model": { + "$ref": "AAAAAAGAlZREiS2dLos=" + }, + "font": "Arial;13;0", + "left": 2557, + "top": 984, + "width": 80.57080078125, + "height": 13, + "text": "+create()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZ6DIqDtm/I=", + "_parent": { + "$ref": "AAAAAAGAlV0ITBIu8eg=" + }, + "model": { + "$ref": "AAAAAAGAlZ6DEaDYNp0=" + }, + "font": "Arial;13;0", + "left": 2557, + "top": 999, + "width": 80.57080078125, + "height": 13, + "text": "+initialize()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZUN9UNM8Z0=", + "_parent": { + "$ref": "AAAAAAGAlV0ITBIu8eg=" + }, + "model": { + "$ref": "AAAAAAGAlZUN40M3pm4=" + }, + "font": "Arial;13;0", + "left": 2557, + "top": 1014, + "width": 80.57080078125, + "height": 13, + "text": "+update()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2552, + "top": 979, + "width": 90.57080078125, + "height": 53 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlV0ITBIvbx8=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 568, + "top": 776, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlV0ITBIwmio=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 568, + "top": 776, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2552, + "top": 944, + "width": 90.57080078125, + "height": 88, + "nameCompartment": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlV0ITBIt82A=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlV0ITBIu8eg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlV0ITBIvbx8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlV0ITBIwmio=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlV1qOCx82c0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlV1qOCx93CU=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlV1qOCx+Lx0=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 976, + "top": 912, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV1qOCx/cVY=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 759, + "width": 41.919921875, + "height": 13, + "text": "RSI" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV1qOCyAguc=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 976, + "top": 912, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV1qOCyBODE=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 976, + "top": 912, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 752, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV1qOCx+Lx0=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlV1qOCx/cVY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlV1qOCyAguc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV1qOCyBODE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlV1qOCyCoog=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 777, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlV1qOCyDo9A=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 787, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlV1qOCyEX74=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 488, + "top": 456, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlV1qOSyFsZY=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 488, + "top": 456, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 752, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlV1qOCyCoog=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlV1qOCyDo9A=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlV1qOCyEX74=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlV1qOSyFsZY=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlV6NEGdsyKA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV6NEGdqw2E=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV6NEGdt6yc=", + "_parent": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "model": { + "$ref": "AAAAAAGAlV6NEGdqw2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2441, + "top": 855, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV6NEGdurP8=", + "_parent": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "model": { + "$ref": "AAAAAAGAlV6NEGdqw2E=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2450, + "top": 843, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV6NEGdvgbY=", + "_parent": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "model": { + "$ref": "AAAAAAGAlV6NEGdqw2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2424, + "top": 880, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "lineStyle": 1, + "points": "2316:793;2551:956", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlV6NEGdt6yc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV6NEGdurP8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV6NEGdvgbY=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlV6uaHCf2ow=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlV6uaHCgu/g=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlV6uaHCh7ZU=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1280, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV6uaHCiM4U=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 839, + "width": 41.919921875, + "height": 13, + "text": "SMA" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV6uaHCjfT8=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1280, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV6uaHCk7ow=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1280, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 832, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV6uaHCh7ZU=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlV6uaHCiM4U=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlV6uaHCjfT8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV6uaHCk7ow=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlV6uaHCl+dI=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 857, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlV6uaHCmNXU=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 867, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlV6uaHCnu5I=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 536, + "top": 640, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlV6uaHCo6yU=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 536, + "top": 640, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 832, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlV6uaHCl+dI=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlV6uaHCmNXU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlV6uaHCnu5I=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlV6uaHCo6yU=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlV7bC3kGBl0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV7bC3kE9Hg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV7bC3kHR8s=", + "_parent": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "model": { + "$ref": "AAAAAAGAlV7bC3kE9Hg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2438, + "top": 897, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV7bC3kICkY=", + "_parent": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "model": { + "$ref": "AAAAAAGAlV7bC3kE9Hg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2444, + "top": 883, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV7bC3kJ5Oo=", + "_parent": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "model": { + "$ref": "AAAAAAGAlV7bC3kE9Hg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2427, + "top": 924, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "lineStyle": 1, + "points": "2316:866;2551:968", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlV7bC3kHR8s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV7bC3kICkY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV7bC3kJ5Oo=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlV85BI3ktx0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlV85BI3lY/g=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlV85BI3mifg=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1120, + "top": 1504, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV85BI3n+C0=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 1007, + "width": 41.919921875, + "height": 13, + "text": "EMA" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV85BI3ocy4=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1120, + "top": 1504, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV85BI3p+kY=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1120, + "top": 1504, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 1000, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV85BI3mifg=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlV85BI3n+C0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlV85BI3ocy4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV85BI3p+kY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlV85BI3qosk=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1025, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlV85BY3rti0=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1035, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlV85BY3szww=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 560, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlV85BY3t5wU=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 560, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 1000, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlV85BI3qosk=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlV85BY3rti0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlV85BY3szww=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlV85BY3t5wU=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlV/yh5ziO0o=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV/yh5zgKGQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV/yh5zjmv0=", + "_parent": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "model": { + "$ref": "AAAAAAGAlV/yh5zgKGQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2431, + "top": 984, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV/yh5zkT7k=", + "_parent": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "model": { + "$ref": "AAAAAAGAlV/yh5zgKGQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2429, + "top": 969, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV/yh5zl1gU=", + "_parent": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "model": { + "$ref": "AAAAAAGAlV/yh5zgKGQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2434, + "top": 1013, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "lineStyle": 1, + "points": "2316:1019;2551:992", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlV/yh5zjmv0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV/yh5zkT7k=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV/yh5zl1gU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWA8wKXQZFc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWA8wKXRGCE=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWA8wKXSluI=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1077.7509765625, + "top": 800, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWA8wKXTHcs=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "font": "Arial;13;1", + "left": 2229, + "top": 647, + "width": 113.42626953125, + "height": 13, + "text": "Linear Regression" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWA8wKXUmyw=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1077.7509765625, + "top": 800, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWA8wKXVPjM=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1077.7509765625, + "top": 800, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2224, + "top": 640, + "width": 123.42626953125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWA8wKXSluI=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWA8wKXTHcs=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWA8wKXUmyw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWA8wKXVPjM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWA8wKXW/50=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "font": "Arial;13;0", + "left": 2224, + "top": 665, + "width": 123.42626953125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWA8waXXvnU=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "font": "Arial;13;0", + "left": 2224, + "top": 675, + "width": 123.42626953125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWA8waXYv0E=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 538.87548828125, + "top": 400, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWA8waXZlAs=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 538.87548828125, + "top": 400, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2224, + "top": 640, + "width": 123.42626953125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWA8wKXW/50=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWA8waXXvnU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWA8waXYv0E=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWA8waXZlAs=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWF/8rl4xQk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWF/8rl5vqw=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWF/87l6fMs=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1104, + "top": 1536, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWF/87l7RvY=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 1175, + "width": 45.98876953125, + "height": 13, + "text": "Volume" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWF/87l8Mfg=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1104, + "top": 1536, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWF/87l9mQI=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1104, + "top": 1536, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 1168, + "width": 55.98876953125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWF/87l6fMs=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWF/87l7RvY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWF/87l8Mfg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWF/87l9mQI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWF/87l+DeE=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1193, + "width": 55.98876953125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWF/87l//K8=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1203, + "width": 55.98876953125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWF/87mAGFM=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 552, + "top": 768, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWF/87mB7oc=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 552, + "top": 768, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 1168, + "width": 55.98876953125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWF/87l+DeE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWF/87l//K8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWF/87mAGFM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWF/87mB7oc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWG4yb0+Gow=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWG4yb0/7U4=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWG4yb1AWNE=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1488, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWG4yb1BJn8=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "font": "Arial;13;1", + "left": 2245, + "top": 1271, + "width": 96.07177734375, + "height": 13, + "text": "Bolenger_Band" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWG4yr1CMnc=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1488, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWG4yr1DaFY=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1488, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2240, + "top": 1264, + "width": 106.07177734375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWG4yb1AWNE=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWG4yb1BJn8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWG4yr1CMnc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWG4yr1DaFY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWG4yr1EAwc=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "font": "Arial;13;0", + "left": 2240, + "top": 1289, + "width": 106.07177734375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWG4yr1FxyE=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "font": "Arial;13;0", + "left": 2240, + "top": 1299, + "width": 106.07177734375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWG4yr1GjLE=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 536, + "top": 744, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWG4yr1HWds=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 536, + "top": 744, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2240, + "top": 1264, + "width": 106.07177734375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWG4yr1EAwc=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWG4yr1FxyE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWG4yr1GjLE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWG4yr1HWds=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWKC8NOiuDE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWKC8NOjWHU=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWKC8NOkn+s=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1157.7509765625, + "top": 1376, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWKC8NOlcjk=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 935, + "width": 41.919921875, + "height": 13, + "text": "MACD" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWKC8NOmfvY=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1157.7509765625, + "top": 1376, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWKC8NOnqXk=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1157.7509765625, + "top": 1376, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 928, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWKC8NOkn+s=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWKC8NOlcjk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWKC8NOmfvY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWKC8NOnqXk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWKC8NOoR2s=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 953, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWKC8NOpjZM=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 963, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWKC8NOqDbc=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 578.87548828125, + "top": 688, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWKC8dOr6Qg=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 578.87548828125, + "top": 688, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 928, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWKC8NOoR2s=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWKC8NOpjZM=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWKC8NOqDbc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWKC8dOr6Qg=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWKDitUIhR8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUJXzg=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2195, + "top": 965, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUK54M=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2189, + "top": 951, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitULi9M=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2206, + "top": 992, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUMuW8=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUF7gU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2157, + "top": 980, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUNrOQ=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUF7gU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2154, + "top": 967, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUOpzM=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUF7gU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2163, + "top": 1007, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUPTwE=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUGCjY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2233, + "top": 949, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUQkRg=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUGCjY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2226, + "top": 938, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitURON4=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUGCjY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2247, + "top": 973, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWKDi9USb2w=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUF7gU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWKDi9UTiPM=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUGCjY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "tail": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "lineStyle": 1, + "points": "2139:1010;2263:960", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWKDitUJXzg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWKDitUK54M=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWKDitULi9M=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWKDitUMuW8=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWKDitUNrOQ=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWKDitUOpzM=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWKDitUPTwE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWKDitUQkRg=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWKDitURON4=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWKDi9USb2w=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWKDi9UTiPM=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWLLT+iThk4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLT+iUjP4=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2202, + "top": 1037, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLT+iV//o=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2203, + "top": 1052, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLT+iWwpQ=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2199, + "top": 1008, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOiXT8Y=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iQCBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2238, + "top": 1035, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOiYNuc=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iQCBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2237, + "top": 1048, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOiZ2aA=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iQCBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2240, + "top": 1007, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOia3wE=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iRyu0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2166, + "top": 1040, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOibsqc=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iRyu0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2169, + "top": 1053, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOic+3k=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iRyu0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2159, + "top": 1013, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWLLUOidBlY=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iQCBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWLLUOiefW0=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iRyu0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "lineStyle": 1, + "points": "2263:1024;2139:1034", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWLLT+iUjP4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWLLT+iV//o=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWLLT+iWwpQ=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWLLUOiXT8Y=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWLLUOiYNuc=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWLLUOiZ2aA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWLLUOia3wE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWLLUOibsqc=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWLLUOic+3k=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWLLUOidBlY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWLLUOiefW0=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWL3lfiRC14=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiSBbA=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2215, + "top": 878, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiTpHs=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2227, + "top": 888, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiUi0w=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2192, + "top": 859, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiVtj4=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiOD+0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2264, + "top": 820, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiWC1s=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiOD+0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2273, + "top": 830, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiXDW8=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiOD+0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2246, + "top": 799, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiYegE=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiP2cA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2167, + "top": 937, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiZTqs=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiP2cA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2178, + "top": 944, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiar2U=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiP2cA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2143, + "top": 923, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWL3lfibNOw=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiOD+0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWL3lficQxI=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiP2cA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "lineStyle": 1, + "points": "2270:797;2139:954", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWL3lfiSBbA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWL3lfiTpHs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWL3lfiUi0w=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWL3lfiVtj4=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWL3lfiWC1s=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWL3lfiXDW8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWL3lfiYegE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWL3lfiZTqs=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWL3lfiar2U=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWL3lfibNOw=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWL3lficQxI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWMaqwNsnpg=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNt6dE=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2210, + "top": 933, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNuOrI=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2220, + "top": 944, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNviq0=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2191, + "top": 910, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNw+Ig=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNpR7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2252, + "top": 898, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNxf/E=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNpR7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2259, + "top": 909, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNyrH4=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNpR7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2238, + "top": 874, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMarANz/EM=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNqBoA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2168, + "top": 968, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMarAN0Q5s=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNqBoA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2178, + "top": 977, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMarAN1QfM=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNqBoA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2147, + "top": 950, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWMarAN2X/8=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNpR7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWMarAN3kXQ=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNqBoA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "lineStyle": 1, + "points": "2263:876;2139:980", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWMaqwNt6dE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWMaqwNuOrI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWMaqwNviq0=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWMaqwNw+Ig=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWMaqwNxf/E=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWMaqwNyrH4=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWMarANz/EM=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWMarAN0Q5s=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWMarAN1QfM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWMarAN2X/8=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWMarAN3kXQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWTbMTVnS38=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVou4s=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1744, + "top": 1050, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVp44w=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1744, + "top": 1065, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVqft8=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1743, + "top": 1021, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVrHVM=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVkF44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1973, + "top": 1049, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVsBSE=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVkF44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1970, + "top": 1062, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVt4V8=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVkF44=" + }, + "font": "Arial;13;0", + "left": 1974, + "top": 1021, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVuaZ0=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVl7r8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1515, + "top": 1053, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMjVvFfg=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVl7r8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1517, + "top": 1067, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMjVwrUE=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVl7r8=" + }, + "font": "Arial;13;0", + "left": 1507, + "top": 1026, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTbMjVxI7s=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVkF44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTbMjVyYoo=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVl7r8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "lineStyle": 1, + "points": "1999:1040;1489:1045", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWTbMTVou4s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWTbMTVp44w=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWTbMTVqft8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWTbMTVrHVM=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWTbMTVsBSE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWTbMTVt4V8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWTbMTVuaZ0=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWTbMjVvFfg=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWTbMjVwrUE=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWTbMjVxI7s=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWTbMjVyYoo=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWTohT2HLvk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2IFYE=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1642, + "top": 1078, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2Jjhw=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1640, + "top": 1093, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2KFcg=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1645, + "top": 1049, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2LIz0=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2Ex7A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1771, + "top": 1094, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2M2qE=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2Ex7A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1767, + "top": 1107, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2NxQc=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2Ex7A=" + }, + "font": "Arial;13;0", + "left": 1775, + "top": 1068, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2O3bg=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2FGfo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1513, + "top": 1063, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2PI5Y=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2FGfo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1513, + "top": 1077, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2Q7kY=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2FGfo=" + }, + "font": "Arial;13;0", + "left": 1508, + "top": 1036, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTohT2RmsI=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2Ex7A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTohT2SHUQ=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2FGfo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "lineStyle": 1, + "points": "1799:1089;1489:1052", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWTohT2IFYE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWTohT2Jjhw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWTohT2KFcg=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWTohT2LIz0=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWTohT2M2qE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWTohT2NxQc=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWTohT2O3bg=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWTohT2PI5Y=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWTohT2Q7kY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWTohT2RmsI=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWTohT2SHUQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWTwt0Kn5rE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0Koy6g=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1599, + "top": 1108, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KpY+M=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1594, + "top": 1122, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KqTDU=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1608, + "top": 1079, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KrdR0=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KkMDI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1689, + "top": 1138, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0Ks2h0=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KkMDI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1683, + "top": 1149, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KtJ2Y=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KkMDI=" + }, + "font": "Arial;13;0", + "left": 1699, + "top": 1113, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0Ku+zk=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KlHeI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1508, + "top": 1078, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0Kv7Zc=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KlHeI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1506, + "top": 1091, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KwmfY=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KlHeI=" + }, + "font": "Arial;13;0", + "left": 1510, + "top": 1050, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTwt0KxWWY=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KkMDI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTwt0KyybQ=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KlHeI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "lineStyle": 1, + "points": "1719:1138;1489:1062", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWTwt0Koy6g=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWTwt0KpY+M=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWTwt0KqTDU=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWTwt0KrdR0=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWTwt0Ks2h0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWTwt0KtJ2Y=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWTwt0Ku+zk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWTwt0Kv7Zc=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWTwt0KwmfY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWTwt0KxWWY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWTwt0KyybQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWT4GEhOPLw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhPDvE=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1553, + "top": 1144, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhQiVI=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1544, + "top": 1156, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhRhIM=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1570, + "top": 1119, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhSmTI=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhLA4U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1624, + "top": 1197, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhTHm4=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhLA4U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1614, + "top": 1206, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhUnO0=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhLA4U=" + }, + "font": "Arial;13;0", + "left": 1641, + "top": 1178, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhVURQ=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhMpRo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1481, + "top": 1090, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhW/8E=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhMpRo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1475, + "top": 1102, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhXUc8=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhMpRo=" + }, + "font": "Arial;13;0", + "left": 1491, + "top": 1065, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWT4GUhYqEY=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhLA4U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWT4GUhZ4V4=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhMpRo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "lineStyle": 1, + "points": "1654:1207;1470:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWT4GEhPDvE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWT4GEhQiVI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWT4GEhRhIM=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWT4GEhSmTI=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWT4GEhTHm4=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWT4GEhUnO0=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWT4GEhVURQ=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWT4GEhW/8E=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWT4GEhXUc8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWT4GUhYqEY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWT4GUhZ4V4=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWT/5lACfTE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lADpVU=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1512, + "top": 1176, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAEQNs=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1500, + "top": 1184, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAFQM0=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1537, + "top": 1159, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAG8bM=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k//5Qo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1569, + "top": 1259, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAHAB0=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k//5Qo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1556, + "top": 1265, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAInIY=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k//5Qo=" + }, + "font": "Arial;13;0", + "left": 1591, + "top": 1248, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAJ3YY=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5lAA9S0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1456, + "top": 1092, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAKM7g=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5lAA9S0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1446, + "top": 1102, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lALzkw=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5lAA9S0=" + }, + "font": "Arial;13;0", + "left": 1473, + "top": 1073, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWT/5lAM+30=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k//5Qo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWT/5lANH74=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5lAA9S0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "lineStyle": 1, + "points": "1596:1279;1454:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWT/5lADpVU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWT/5lAEQNs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWT/5lAFQM0=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWT/5lAG8bM=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWT/5lAHAB0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWT/5lAInIY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWT/5lAJ3YY=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWT/5lAKM7g=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWT/5lALzkw=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWT/5lAM+30=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWT/5lANH74=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWUHaVbJ6IA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbK+u8=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1482, + "top": 1220, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbLFl8=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1468, + "top": 1225, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbMVqc=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1511, + "top": 1211, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbNEyk=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbGp9E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1524, + "top": 1348, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbObH8=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbGp9E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1511, + "top": 1350, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbPAtU=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbGp9E=" + }, + "font": "Arial;13;0", + "left": 1549, + "top": 1344, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbQ4BM=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbH1Js=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1440, + "top": 1092, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbRb3w=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbH1Js=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1428, + "top": 1098, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbS7S4=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbH1Js=" + }, + "font": "Arial;13;0", + "left": 1462, + "top": 1079, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUHaVbT8YI=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbGp9E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUHalbUVYI=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbH1Js=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "lineStyle": 1, + "points": "1547:1375;1447:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWUHaVbK+u8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWUHaVbLFl8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWUHaVbMVqc=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWUHaVbNEyk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWUHaVbObH8=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWUHaVbPAtU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWUHaVbQ4BM=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWUHaVbRb3w=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWUHaVbS7S4=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWUHaVbT8YI=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWUHalbUVYI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWUe2WaZpd4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WaaOSM=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1425, + "top": 1264, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WabZNY=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1410, + "top": 1264, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WacX3U=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1454, + "top": 1263, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WadnEA=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaW1c8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1426, + "top": 1439, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WaeUTA=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaW1c8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1413, + "top": 1436, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WafHSg=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaW1c8=" + }, + "font": "Arial;13;0", + "left": 1451, + "top": 1443, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WagPdk=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaX3GI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1424, + "top": 1089, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WahIZQ=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaX3GI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1410, + "top": 1091, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2Waix6U=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaX3GI=" + }, + "font": "Arial;13;0", + "left": 1448, + "top": 1084, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUe2WajFPY=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaW1c8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUe2WakyWg=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaX3GI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "lineStyle": 1, + "points": "1442:1471;1439:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWUe2WaaOSM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWUe2WabZNY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWUe2WacX3U=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWUe2WadnEA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWUe2WaeUTA=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWUe2WafHSg=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWUe2WagPdk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWUe2WahIZQ=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWUe2Waix6U=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWUe2WajFPY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWUe2WakyWg=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWUqjmyXNl0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmyYzUw=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1389, + "top": 1217, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmyZqqQ=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1374, + "top": 1214, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmyaGGY=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1418, + "top": 1222, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmybaWA=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyUivg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1363, + "top": 1348, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmycPaY=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyUivg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1350, + "top": 1343, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmydGns=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyUivg=" + }, + "font": "Arial;13;0", + "left": 1386, + "top": 1358, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmye3JA=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyV+RM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1415, + "top": 1085, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmyfrSk=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyV+RM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1401, + "top": 1085, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmygfmk=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyV+RM=" + }, + "font": "Arial;13;0", + "left": 1440, + "top": 1086, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUqjmyhjDs=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyUivg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUqjmyiYDI=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyV+RM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "lineStyle": 1, + "points": "1373:1383;1435:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWUqjmyYzUw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWUqjmyZqqQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWUqjmyaGGY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWUqjmybaWA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWUqjmycPaY=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWUqjmydGns=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWUqjmye3JA=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWUqjmyfrSk=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWUqjmygfmk=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWUqjmyhjDs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWUqjmyiYDI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWVK/Hi/tq0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjAbxM=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1356, + "top": 1173, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjBvmA=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1343, + "top": 1166, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjC9vY=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1383, + "top": 1186, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjDz+k=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi8tt0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1310, + "top": 1267, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjExiw=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi8tt0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1300, + "top": 1259, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjFCEI=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi8tt0=" + }, + "font": "Arial;13;0", + "left": 1330, + "top": 1283, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjGmB0=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi9A2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1403, + "top": 1079, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjHyBI=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi9A2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1390, + "top": 1075, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjIpVU=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi9A2E=" + }, + "font": "Arial;13;0", + "left": 1426, + "top": 1087, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWVK/HjJaLU=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi8tt0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWVK/HjKyeo=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi9A2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "lineStyle": 1, + "points": "1313:1303;1428:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWVK/HjAbxM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWVK/HjBvmA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWVK/HjC9vY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWVK/HjDz+k=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWVK/HjExiw=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWVK/HjFCEI=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWVK/HjGmB0=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWVK/HjHyBI=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWVK/HjIpVU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWVK/HjJaLU=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWVK/HjKyeo=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWVTFoIOby8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIP68c=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1301, + "top": 1144, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIQL28=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1291, + "top": 1133, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIREfk=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1322, + "top": 1167, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoISwHQ=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIL2pY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1219, + "top": 1220, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoITEvo=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIL2pY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1211, + "top": 1209, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIU0bE=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIL2pY=" + }, + "font": "Arial;13;0", + "left": 1231, + "top": 1243, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIVxPo=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIMumY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1384, + "top": 1069, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIWkSw=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIMumY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1374, + "top": 1061, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIXfyU=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIMumY=" + }, + "font": "Arial;13;0", + "left": 1403, + "top": 1086, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWVTFoIYDwc=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIL2pY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWVTFoIZoWo=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIMumY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "lineStyle": 1, + "points": "1210:1255;1414:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWVTFoIP68c=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWVTFoIQL28=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWVTFoIREfk=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWVTFoISwHQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWVTFoITEvo=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWVTFoIU0bE=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWVTFoIVxPo=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWVTFoIWkSw=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWVTFoIXfyU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWVTFoIYDwc=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWVTFoIZoWo=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWX+zaGk01A=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGlYsM=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1259, + "top": 1130, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGm8tU=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1251, + "top": 1117, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGn+J4=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1274, + "top": 1155, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGomrc=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGhhnw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1148, + "top": 1197, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGp6aU=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGhhnw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1143, + "top": 1185, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGqLtI=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGhhnw=" + }, + "font": "Arial;13;0", + "left": 1149, + "top": 1223, + "width": 19.5126953125, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 2, + "text": "1..*" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGrABw=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGiSKc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1371, + "top": 1063, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGsh9Y=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGiSKc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1362, + "top": 1053, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGt1bo=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGiSKc=" + }, + "font": "Arial;13;0", + "left": 1385, + "top": 1084, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWX+zaGuKoY=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGhhnw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWX+zaGvvlA=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGiSKc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "lineStyle": 1, + "points": "1134:1230;1401:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWX+zaGlYsM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWX+zaGm8tU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWX+zaGn+J4=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWX+zaGomrc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWX+zaGp6aU=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWX+zaGqLtI=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWX+zaGrABw=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWX+zaGsh9Y=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWX+zaGt1bo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWX+zaGuKoY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWX+zaGvvlA=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWYJTq5lKDs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJTq5m5tE=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1156, + "top": 1118, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65npXI=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1151, + "top": 1104, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65oUb8=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1165, + "top": 1147, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65pRKk=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5iG3Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 950, + "top": 1188, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65qfm8=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5iG3Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 948, + "top": 1175, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65rECg=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5iG3Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 955, + "top": 1215, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65sx1U=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5jlHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1361, + "top": 1050, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65tQS0=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5jlHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1355, + "top": 1038, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65uAHo=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5jlHI=" + }, + "font": "Arial;13;0", + "left": 1371, + "top": 1074, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWYJT65vjP0=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5iG3Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWYJT65w12Y=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5jlHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "931:1217;1391:1062", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWYJTq5m5tE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWYJT65npXI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWYJT65oUb8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWYJT65pRKk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWYJT65qfm8=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWYJT65rECg=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWYJT65sx1U=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWYJT65tQS0=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWYJT65uAHo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWYJT65vjP0=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWYJT65w12Y=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlWt4wuBpmCE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWt4wuBn3Fk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWt4wuBq7kE=", + "_parent": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "model": { + "$ref": "AAAAAAGAlWt4wuBn3Fk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2426, + "top": 1075, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWt4w+Brmn4=", + "_parent": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "model": { + "$ref": "AAAAAAGAlWt4wuBn3Fk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2418, + "top": 1063, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWt4w+Bsdxk=", + "_parent": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "model": { + "$ref": "AAAAAAGAlWt4wuBn3Fk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2443, + "top": 1100, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "lineStyle": 1, + "points": "2320:1171;2551:1017", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWt4wuBq7kE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWt4w+Brmn4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWt4w+Bsdxk=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlWuMSOyYqqA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWuMR+yWrkc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWuMSOyZ9EM=", + "_parent": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "model": { + "$ref": "AAAAAAGAlWuMR+yWrkc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2440, + "top": 797, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWuMSOyaVYY=", + "_parent": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "model": { + "$ref": "AAAAAAGAlWuMR+yWrkc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2451, + "top": 787, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWuMSOybXg4=", + "_parent": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "model": { + "$ref": "AAAAAAGAlWuMR+yWrkc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2419, + "top": 818, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "lineStyle": 1, + "points": "2307:685;2554:943", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWuMSOyZ9EM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWuMSOyaVYY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWuMSOybXg4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlWubm/NdI0w=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWubm/NbZTQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWubm/Nei7I=", + "_parent": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "model": { + "$ref": "AAAAAAGAlWubm/NbZTQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2422, + "top": 1130, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWubm/NfzBo=", + "_parent": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "model": { + "$ref": "AAAAAAGAlWubm/NbZTQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2411, + "top": 1119, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWubm/NgKUU=", + "_parent": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "model": { + "$ref": "AAAAAAGAlWubm/NbZTQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2443, + "top": 1151, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "lineStyle": 1, + "points": "2315:1263;2551:1031", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWubm/Nei7I=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWubm/NfzBo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWubm/NgKUU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWxxbSDR0l0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWxxbiDStco=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWxxbiDTZ3I=", + "_parent": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 1344, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWxxbiDUU1Q=", + "_parent": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 1095, + "width": 41.919921875, + "height": 13, + "text": "ATR" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWxxbiDV7aY=", + "_parent": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 1344, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWxxbiDWXZ8=", + "_parent": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 1344, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 1088, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWxxbiDTZ3I=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWxxbiDUU1Q=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWxxbiDV7aY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWxxbiDWXZ8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWxxbiDXOdo=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1113, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWxxbiDYM/8=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1123, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWxxbiDZ5kM=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 592, + "top": 672, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWxxbiDaWBE=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 592, + "top": 672, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 1088, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWxxbiDXOdo=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWxxbiDYM/8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWxxbiDZ5kM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWxxbiDaWBE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWzchTK/0z0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLAt90=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2196, + "top": 1090, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLBbzU=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2191, + "top": 1104, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLCtCU=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2205, + "top": 1061, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLDc3o=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK8FrQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2233, + "top": 1102, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLEd3k=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK8FrQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2227, + "top": 1114, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLF5VA=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK8FrQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2246, + "top": 1077, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLG8w8=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK970c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2159, + "top": 1078, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLHsTk=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK970c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2157, + "top": 1091, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLI9f8=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK970c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2163, + "top": 1050, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWzchTLJ4YE=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK8FrQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWzchjLKoJs=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK970c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "lineStyle": 1, + "points": "2263:1102;2139:1062", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWzchTLAt90=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWzchTLBbzU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWzchTLCtCU=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWzchTLDc3o=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWzchTLEd3k=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWzchTLF5VA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWzchTLG8w8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWzchTLHsTk=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWzchTLI9f8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWzchTLJ4YE=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWzchjLKoJs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlW17D6E8HWY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW17D6E6jDw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW17D6E9FjE=", + "_parent": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "model": { + "$ref": "AAAAAAGAlW17D6E6jDw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2434, + "top": 946, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW17D6E+TG4=", + "_parent": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "model": { + "$ref": "AAAAAAGAlW17D6E6jDw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2436, + "top": 931, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW17D6E/fcs=", + "_parent": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "model": { + "$ref": "AAAAAAGAlW17D6E6jDw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2431, + "top": 975, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "lineStyle": 1, + "points": "2316:953;2551:982", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW17D6E9FjE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW17D6E+TG4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW17D6E/fcs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlW2hyrcjIjI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW2hyrchc3A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW2hyrckJnw=", + "_parent": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "model": { + "$ref": "AAAAAAGAlW2hyrchc3A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2427, + "top": 1032, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW2hyrcljT8=", + "_parent": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "model": { + "$ref": "AAAAAAGAlW2hyrchc3A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2421, + "top": 1018, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW2hyrcm9dM=", + "_parent": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "model": { + "$ref": "AAAAAAGAlW2hyrchc3A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2438, + "top": 1059, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "lineStyle": 1, + "points": "2316:1099;2551:1005", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW2hyrckJnw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW2hyrcljT8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW2hyrcm9dM=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlW7ShJUPJyc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUQG2U=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2208, + "top": 819, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJURtAI=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2221, + "top": 826, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUSxLw=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2181, + "top": 804, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUTa7A=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUM2LQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2272, + "top": 708, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUUPOE=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUM2LQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2282, + "top": 717, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUVsTU=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUM2LQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2250, + "top": 691, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUWGxs=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUNBXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2144, + "top": 929, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUXY3A=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUNBXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2157, + "top": 934, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUYuW8=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUNBXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2118, + "top": 920, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW7ShJUZ4tA=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUM2LQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW7ShJUa4B8=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUNBXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "lineStyle": 1, + "points": "2272:685;2119:951", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW7ShJUQG2U=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW7ShJURtAI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW7ShJUSxLw=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlW7ShJUTa7A=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlW7ShJUUPOE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlW7ShJUVsTU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlW7ShJUWGxs=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlW7ShJUXY3A=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlW7ShJUYuW8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlW7ShJUZ4tA=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlW7ShJUa4B8=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlW/ClR+zIXE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+0UUs=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2192, + "top": 1135, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+1HK8=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2184, + "top": 1147, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+2YG8=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2209, + "top": 1110, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+3H1o=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+wkdY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2233, + "top": 1162, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+4of4=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+wkdY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2223, + "top": 1172, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+5PAw=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+wkdY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2252, + "top": 1142, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+6zoc=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+xrBU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2152, + "top": 1107, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+7uRQ=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+xrBU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2146, + "top": 1120, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/Clh+8RBo=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+xrBU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2163, + "top": 1082, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW/Clh+9/VM=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+wkdY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW/Clh++L3I=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+xrBU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "lineStyle": 1, + "points": "2263:1171;2139:1087", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW/ClR+0UUs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW/ClR+1HK8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW/ClR+2YG8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlW/ClR+3H1o=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlW/ClR+4of4=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlW/ClR+5PAw=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlW/ClR+6zoc=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlW/ClR+7uRQ=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlW/Clh+8RBo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlW/Clh+9/VM=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlW/Clh++L3I=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlW/UHSsJ/KQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsK4fE=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2193, + "top": 1194, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsLfqs=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2182, + "top": 1204, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsMW4M=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2216, + "top": 1173, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsNgYw=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsGwdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2242, + "top": 1247, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsOtzk=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsGwdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2231, + "top": 1254, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsPtS8=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsGwdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2265, + "top": 1232, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsQRgw=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsHggM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2145, + "top": 1140, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsR8eA=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsHggM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2136, + "top": 1150, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsSHYU=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsHggM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2162, + "top": 1118, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW/UHSsTuN8=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsGwdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW/UHSsUDbA=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsHggM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "lineStyle": 1, + "points": "2271:1263;2139:1117", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW/UHSsK4fE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW/UHSsLfqs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW/UHSsMW4M=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlW/UHSsNgYw=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlW/UHSsOtzk=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlW/UHSsPtS8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlW/UHSsQRgw=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlW/UHSsR8eA=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlW/UHSsSHYU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlW/UHSsTuN8=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlW/UHSsUDbA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlXGQqAqmq9A=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlXGQqAqnwQ8=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlXGQqAqobW4=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": 64, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlXGQqAqpK54=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "font": "Arial;13;1", + "left": 1661, + "top": 887, + "width": 41.919921875, + "height": 13, + "text": "Data" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlXGQqAqqJCc=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": 64, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlXGQqAqr7vE=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": 64, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1656, + "top": 880, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlXGQqAqobW4=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlXGQqAqpK54=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlXGQqAqqJCc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlXGQqAqr7vE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlXGQqAqskeQ=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "font": "Arial;13;0", + "left": 1656, + "top": 905, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlXGQqAqtqSY=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "font": "Arial;13;0", + "left": 1656, + "top": 915, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlXGQqAqupWU=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 152, + "top": 32, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlXGQqAqvyl0=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 152, + "top": 32, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1656, + "top": 880, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlXGQqAqskeQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlXGQqAqtqSY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlXGQqAqupWU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlXGQqAqvyl0=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlXY64xtHmz0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtImbg=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1573, + "top": 976, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtJxQ0=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1581, + "top": 989, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtK494=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1558, + "top": 951, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtLy5A=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtEoUg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1640, + "top": 937, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtMF1E=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtEoUg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1645, + "top": 949, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtNHec=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtEoUg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1630, + "top": 911, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtOQ7A=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtF6EA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1507, + "top": 1016, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtP9P4=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtF6EA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1516, + "top": 1026, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtQjPY=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtF6EA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1490, + "top": 995, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlXY64xtRvq4=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtEoUg=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlXY64xtSUjo=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtF6EA=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "lineStyle": 1, + "points": "1655:917;1478:1023", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlXY64xtImbg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlXY64xtJxQ0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlXY64xtK494=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlXY64xtLy5A=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlXY64xtMF1E=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlXY64xtNHec=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlXY64xtOQ7A=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlXY64xtP9P4=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlXY64xtQjPY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlXY64xtRvq4=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlXY64xtSUjo=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAklNdL5rpBs0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class1" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAklPniJsqfe4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "BrighterTrades UI" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAkl0p9pxdAmc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicators", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKFG06A0WIk=", + "_parent": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKFG06A1Lqk=", + "_parent": { + "$ref": "AAAAAAGAlKFG06A0WIk=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKFG06A29I0=", + "_parent": { + "$ref": "AAAAAAGAlKFG06A0WIk=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKGL86DsZE8=", + "_parent": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKGL86DtHis=", + "_parent": { + "$ref": "AAAAAAGAlKGL86DsZE8=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKGL86DuzSY=", + "_parent": { + "$ref": "AAAAAAGAlKGL86DsZE8=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKHjgqGzBJQ=", + "_parent": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKHjgqG0Y7Y=", + "_parent": { + "$ref": "AAAAAAGAlKHjgqGzBJQ=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKHjgqG1L+U=", + "_parent": { + "$ref": "AAAAAAGAlKHjgqGzBJQ=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAkl307pyHK9I=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Display_Panel", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKBwPpzlu78=", + "_parent": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKBwP5zmoCo=", + "_parent": { + "$ref": "AAAAAAGAlKBwPpzlu78=" + }, + "reference": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKBwP5znhSs=", + "_parent": { + "$ref": "AAAAAAGAlKBwPpzlu78=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlLRraKyospI=", + "_parent": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLRraKypsBk=", + "_parent": { + "$ref": "AAAAAAGAlLRraKyospI=" + }, + "reference": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLRraKyqZho=", + "_parent": { + "$ref": "AAAAAAGAlLRraKyospI=" + }, + "reference": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlLtBucFIxdU=", + "_parent": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLtBucFJuy0=", + "_parent": { + "$ref": "AAAAAAGAlLtBucFIxdU=" + }, + "reference": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLtBucFKhHw=", + "_parent": { + "$ref": "AAAAAAGAlLtBucFIxdU=" + }, + "reference": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + } + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMAvkNcwMGk=", + "_parent": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "source": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "target": { + "$ref": "AAAAAAGAlMAvSdbpIWA=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlKBwAJy8eFE=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Charts", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKJC9KPoAaE=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKJC9KPpnJQ=", + "_parent": { + "$ref": "AAAAAAGAlKJC9KPoAaE=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKJC9KPq0GY=", + "_parent": { + "$ref": "AAAAAAGAlKJC9KPoAaE=" + }, + "reference": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + } + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMDKUdwuDGM=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "source": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlN70+5hTl0w=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlN70+5hUSk0=", + "_parent": { + "$ref": "AAAAAAGAlN70+5hTl0w=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlN70+5hV9/8=", + "_parent": { + "$ref": "AAAAAAGAlN70+5hTl0w=" + }, + "reference": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlOJxWLVGJ1k=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOJxWLVH07M=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOJxWLVILrM=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "reference": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "aggregation": "shared", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlOPB1LkxGUA=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "name": "1", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOPB1LkyJxU=", + "_parent": { + "$ref": "AAAAAAGAlOPB1LkxGUA=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOPB1Lkzjgw=", + "_parent": { + "$ref": "AAAAAAGAlOPB1LkxGUA=" + }, + "reference": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "aggregation": "composite" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlOP4tbty5Zw=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOP4tbtzuOo=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOP4tbt0Vwg=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "reference": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "aggregation": "shared", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlQqkENzbW8g=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlQqkENzcXKQ=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlQqkENzdqVw=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "reference": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWYJTq5h1SQ=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWYJTq5iG3Y=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWYJTq5jlHI=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlYY0lN+3EU4=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "name": "charts", + "visibility": "private", + "type": "1..3" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlad4atb8lI0=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "name": "bind_charts" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlagyPeRQGOU=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "name": "create_chart" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlKJCvaOwqG4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Chart", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlYoy8CzCHeM=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "name": "lines", + "visibility": "private", + "type": "line_series", + "multiplicity": "0..*" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlLRrLaxh9W8=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Header", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMBt0tjyuVQ=", + "_parent": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "source": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWVK/Hi7fLQ=", + "_parent": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWVK/Hi8tt0=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWVK/Hi9A2E=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlL0d+NEoRwU=", + "_parent": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "name": "title", + "type": "string" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlLTUj7L1P20=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "User Interface", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlLVwqLOdfpE=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLVwqLOelTs=", + "_parent": { + "$ref": "AAAAAAGAlLVwqLOdfpE=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLVwqLOfOHI=", + "_parent": { + "$ref": "AAAAAAGAlLVwqLOdfpE=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlLrQer8jsi8=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLrQer8kq8A=", + "_parent": { + "$ref": "AAAAAAGAlLrQer8jsi8=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLrQer8lN/g=", + "_parent": { + "$ref": "AAAAAAGAlLrQer8jsi8=" + }, + "reference": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "aggregation": "composite", + "multiplicity": "1..*" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNSI+hEo2oc=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNSI+hEp0Ds=", + "_parent": { + "$ref": "AAAAAAGAlNSI+hEo2oc=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNSI+hEqMNY=", + "_parent": { + "$ref": "AAAAAAGAlNSI+hEo2oc=" + }, + "reference": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNTYBxOEQIM=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNTYBxOFJ00=", + "_parent": { + "$ref": "AAAAAAGAlNTYBxOEQIM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNTYBxOGpPE=", + "_parent": { + "$ref": "AAAAAAGAlNTYBxOEQIM=" + }, + "reference": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNTrPBU7zRI=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNTrPBU81nU=", + "_parent": { + "$ref": "AAAAAAGAlNTrPBU7zRI=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNTrPBU9TVM=", + "_parent": { + "$ref": "AAAAAAGAlNTrPBU7zRI=" + }, + "reference": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNUBhhf3FK4=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNUBhhf4iHI=", + "_parent": { + "$ref": "AAAAAAGAlNUBhhf3FK4=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNUBhhf5OdI=", + "_parent": { + "$ref": "AAAAAAGAlNUBhhf3FK4=" + }, + "reference": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "aggregation": "composite", + "multiplicity": "1..*" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNzl1IQJQ3U=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNzl3YQK1a8=", + "_parent": { + "$ref": "AAAAAAGAlNzl1IQJQ3U=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNzl3YQLMh4=", + "_parent": { + "$ref": "AAAAAAGAlNzl1IQJQ3U=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlOVtc8/Q5mc=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOVtc8/RxPs=", + "_parent": { + "$ref": "AAAAAAGAlOVtc8/Q5mc=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOVtc8/SQ6c=", + "_parent": { + "$ref": "AAAAAAGAlOVtc8/Q5mc=" + }, + "reference": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlRQLW26xThg=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRQLW26yE/8=", + "_parent": { + "$ref": "AAAAAAGAlRQLW26xThg=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRQLW26zwMc=", + "_parent": { + "$ref": "AAAAAAGAlRQLW26xThg=" + }, + "reference": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlRQqcnfrFoI=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRQqcnfsV60=", + "_parent": { + "$ref": "AAAAAAGAlRQqcnfrFoI=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRQqcnftmFY=", + "_parent": { + "$ref": "AAAAAAGAlRQqcnfrFoI=" + }, + "reference": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlRS9Dafvhcc=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRS9Dafwp4Y=", + "_parent": { + "$ref": "AAAAAAGAlRS9Dafvhcc=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRS9DafxZYs=", + "_parent": { + "$ref": "AAAAAAGAlRS9Dafvhcc=" + }, + "reference": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlRTNZa0zOZQ=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRTNZa00wEs=", + "_parent": { + "$ref": "AAAAAAGAlRTNZa0zOZQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRTNZa01zIE=", + "_parent": { + "$ref": "AAAAAAGAlRTNZa0zOZQ=" + }, + "reference": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlTvGRE+rj8c=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvGRE+scgk=", + "_parent": { + "$ref": "AAAAAAGAlTvGRE+rj8c=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvGRE+tkBs=", + "_parent": { + "$ref": "AAAAAAGAlTvGRE+rj8c=" + }, + "reference": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlTvc8VTFumY=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvc8VTGRNU=", + "_parent": { + "$ref": "AAAAAAGAlTvc8VTFumY=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvc8VTHO/s=", + "_parent": { + "$ref": "AAAAAAGAlTvc8VTFumY=" + }, + "reference": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "aggregation": "composite" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlTvt5luVKs4=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvt5luWyhM=", + "_parent": { + "$ref": "AAAAAAGAlTvt5luVKs4=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvt5luXs4s=", + "_parent": { + "$ref": "AAAAAAGAlTvt5luVKs4=" + }, + "reference": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlT0klN3jJgM=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlT0kld3ksxA=", + "_parent": { + "$ref": "AAAAAAGAlT0klN3jJgM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlT0kld3lD38=", + "_parent": { + "$ref": "AAAAAAGAlT0klN3jJgM=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlVAsUzD2+0M=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlVAsUzD3/G4=", + "_parent": { + "$ref": "AAAAAAGAlVAsUzD2+0M=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlVAsUzD4ekU=", + "_parent": { + "$ref": "AAAAAAGAlVAsUzD2+0M=" + }, + "reference": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWPOZQ4Vk6I=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWPOZQ4Wm90=", + "_parent": { + "$ref": "AAAAAAGAlWPOZQ4Vk6I=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWPOZQ4Xl58=", + "_parent": { + "$ref": "AAAAAAGAlWPOZQ4Vk6I=" + }, + "reference": { + "$ref": "AAAAAAGAlWPNnAyirBg=" + } + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlLXNnLUnJ6U=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class2" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlLtBdcDjBrM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Controls", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMCk9NsVgEI=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "source": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlQ0ahvqeZ6I=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "source": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWT4GEhKbNM=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWT4GEhLA4U=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "reference": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWT4GEhMpRo=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlamWWi8OqEc=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "name": "showAtPos" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlL/7jNZzeZs=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class3", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlL/7zta6zz4=", + "_parent": { + "$ref": "AAAAAAGAlL/7jNZzeZs=" + }, + "source": { + "$ref": "AAAAAAGAlL/7jNZzeZs=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlMAvSdbpIWA=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class4" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlMe6a+f9UYg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Price_Chart", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMe6u+hEFdo=", + "_parent": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "source": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "target": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlYu4Ij/IzVw=", + "_parent": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "name": "candles", + "visibility": "private", + "type": "price_series" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlY+kkW5Wfxg=", + "_parent": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "name": "volume", + "visibility": "private", + "type": "histogram" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlMgRM+mty4M=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Sub_Chart", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMgRf+n02Wc=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "source": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "target": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlOF3iKq3uas=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "RSI_Chart", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlOF33ascf20=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "source": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "target": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaHW+yzOEf4=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "name": "RSI_lines" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlOG1qKyiRQY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "MACD_Chart", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlOG2B60HNBw=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "source": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "target": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlZA+L3VTvPw=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "name": "hist", + "visibility": "private", + "type": "histogram" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlOVtD89NZPg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Interface", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlQzlPvctqQw=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "source": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlRBEJjLtkIs=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Alerts", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlRB+cjfgulU=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "source": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWUqjmyTW78=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUqjmyUivg=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "reference": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUqjmyV+RM=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlRGzZE5SNA0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Exchange_Info", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlRH931B0eeY=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "source": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWUe2GaVJTw=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUe2GaW1c8=", + "_parent": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "reference": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUe2GaX3GI=", + "_parent": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlRJADlhpY4s=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Signals", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlRKGiFs/VYQ=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "source": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWUHaVbFHFI=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUHaVbGp9E=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "reference": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUHaVbH1Js=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaz/P2ckb8w=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "open_signal_Form" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAla2Nt3wQUmo=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "close_signal_Form" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAla3S1IueRjU=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "fill_prop" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcBTsKIft6E=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "switch_panel" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcCHsa7OUgE=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "hideIfTrue" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcC9Qb26gpQ=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "ns_next" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcKMw/g1OQc=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "submitNewSignal" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlRLKTmK2Low=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Strategies", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlRM+J2Z34W8=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "source": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWT/5k/+BrM=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWT/5k//5Qo=", + "_parent": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "reference": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWT/5lAA9S0=", + "_parent": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlTkfoPumEEo=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Statistics", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlTzCNrx57tI=", + "_parent": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "source": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlU5WrJfEnsg=", + "_parent": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "source": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWVTFoIKZEQ=", + "_parent": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWVTFoIL2pY=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "reference": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWVTFoIMumY=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlTlTRf10ynw=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Trade", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlTyXiLPgx5Y=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "source": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWTwt0Kjci4=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTwt0KkMDI=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "reference": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTwt0KlHeI=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlTqLXhUQCZ0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Backtesting", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlTzYE8X8Jlg=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "source": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWTohT2DCvk=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTohT2Ex7A=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "reference": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTohT2FGfo=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlTsU1xtxoZg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicators", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlTz1lM6VeiU=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "source": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlV5o5Vy/8xc=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV5o5VzA2Aw=", + "_parent": { + "$ref": "AAAAAAGAlV5o5Vy/8xc=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV5o5VzBeTw=", + "_parent": { + "$ref": "AAAAAAGAlV5o5Vy/8xc=" + }, + "reference": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlV8N53406zc=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV8N5341i44=", + "_parent": { + "$ref": "AAAAAAGAlV8N53406zc=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV8N534242A=", + "_parent": { + "$ref": "AAAAAAGAlV8N53406zc=" + }, + "reference": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlV/bTZXIgLs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV/bTZXJcEs=", + "_parent": { + "$ref": "AAAAAAGAlV/bTZXIgLs=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV/bTZXKwuo=", + "_parent": { + "$ref": "AAAAAAGAlV/bTZXIgLs=" + }, + "reference": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWA9gacyosY=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWA9gaczDL0=", + "_parent": { + "$ref": "AAAAAAGAlWA9gacyosY=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWA9gac0uWE=", + "_parent": { + "$ref": "AAAAAAGAlWA9gacyosY=" + }, + "reference": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWKDitUErpw=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWKDitUF7gU=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWKDitUGCjY=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "reference": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWTbMTVjQns=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTbMTVkF44=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTbMTVl7r8=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWypaCl70+o=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWypaCl8qDw=", + "_parent": { + "$ref": "AAAAAAGAlWypaCl70+o=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWypaCl9w+E=", + "_parent": { + "$ref": "AAAAAAGAlWypaCl70+o=" + }, + "reference": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "aggregation": "shared" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlZgH+WZvuek=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "indicator_list", + "visibility": "private" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlaVzK6i6DOI=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "indicator_types", + "visibility": "private" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZn364kHgE4=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "create_indicator" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZxMLpcBNJs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "initialize_indicator" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZp+fJAEI0M=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "update_indicator" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZ874bf6dfs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "get_indicator_data" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaX+WLTITpQ=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "get_indicator_types" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlax3HV80v/A=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "submit_new_i" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcP5zkntePQ=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "add_to_list" + } + ] + }, + { + "_type": "UMLInterface", + "_id": "AAAAAAGAlUGOetAIy/k=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Exchange_server", + "ownedElements": [ + { + "_type": "UMLInterfaceRealization", + "_id": "AAAAAAGAlUWMADserM4=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "source": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "target": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlUZtyk0I7mg=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "source": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "target": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlUcybGKL0UA=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUcybGKM+ME=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "reference": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUcybGKNvZY=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + } + } + } + ] + }, + { + "_type": "UMLInterface", + "_id": "AAAAAAGAlUI9x9WdaKg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Local_Server", + "ownedElements": [ + { + "_type": "UMLInterfaceRealization", + "_id": "AAAAAAGAlUVsPDUlZxE=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "source": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "target": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlUZGOEXplAE=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "source": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "target": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlUcXkVxdL6c=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUcXkVxe4Jg=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "reference": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUcXkVxfAyc=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + } + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlUKJqdysOJc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Cumunication", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlUNuBfkRmqk=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUNuBfkSXMU=", + "_parent": { + "$ref": "AAAAAAGAlUNuBfkRmqk=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUNuBfkTzVA=", + "_parent": { + "$ref": "AAAAAAGAlUNuBfkRmqk=" + }, + "reference": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlUdTbGyvqOM=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUdTbGywRtk=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUdTbGyxjgQ=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcMItTBB6JM=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "name": "indicator_update_msg_received" + } + ] + }, + { + "_type": "UMLInterface", + "_id": "AAAAAAGAlUQhahEG3nQ=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Server_Connection" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlU+ijROkjck=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicator Output", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlVABNCiHdVc=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "source": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWX+zaGgBoU=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWX+zaGhhnw=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "reference": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "multiplicity": "1..*" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWX+zaGiSKc=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlYUqd9HDP+I=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "name": "legend", + "visibility": "private" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaPCWGaFOto=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "name": "create_legend" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaRbjHJEQRw=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "name": "set_legend_text" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlV0ISxIlyJ0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicator", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWtYzNU42sk=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "source": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "target": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZREiS2dLos=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "name": "create" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZ6DEaDYNp0=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "name": "initialize" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZUN40M3pm4=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "name": "update" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlV1qOCx6xfw=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "RSI", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlV6NEGdqw2E=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "source": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWL3lPiNLMU=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWL3lPiOD+0=", + "_parent": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "reference": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWL3lPiP2cA=", + "_parent": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlV6uaHCdJQg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "SMA", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlV7bC3kE9Hg=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "source": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWLhe/D3by0=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWLhe/D4I/E=", + "_parent": { + "$ref": "AAAAAAGAlWLhe/D3by0=" + }, + "reference": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWLhe/D5nwE=", + "_parent": { + "$ref": "AAAAAAGAlWLhe/D3by0=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWMaqwNoWn8=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWMaqwNpR7E=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "reference": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWMaqwNqBoA=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlV85BI3i4ss=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "EMA", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlV/yh5zgKGQ=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "source": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWLLT+iPDbY=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWLLT+iQCBs=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "reference": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWLLT+iRyu0=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWA8wKXOucE=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Linear Regression", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWuMR+yWrkc=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "source": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlW7ShJULxzs=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW7ShJUM2LQ=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "reference": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW7ShJUNBXk=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWF/8rl2eF4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Volume", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWt4wuBn3Fk=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "source": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlW/ClR+vGKk=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW/ClR+wkdY=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "reference": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW/ClR+xrBU=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWG4yb08SBs=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Bolenger_Band", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWubm/NbZTQ=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "source": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlW/UHCsFYbE=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW/UHCsGwdo=", + "_parent": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "reference": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW/UHCsHggM=", + "_parent": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWKC8NOg1Tw=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "MACD", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlW17D6E6jDw=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "source": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWPNnAyirBg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class6" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWrhjr4u0CQ=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class7", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWriMr+hZSg=", + "_parent": { + "$ref": "AAAAAAGAlWrhjr4u0CQ=" + }, + "source": { + "$ref": "AAAAAAGAlWrhjr4u0CQ=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWxxbSDPxmU=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "ATR", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWzchDK7zPc=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWzchDK8FrQ=", + "_parent": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "reference": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWzchDK970c=", + "_parent": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlW2hyrchc3A=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "source": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlXGQqAqkRnk=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Data", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlXY64xtDdTk=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlXY64xtEoUg=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "reference": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlXY64xtF6EA=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite" + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/app.py b/app.py new file mode 100644 index 0000000..b70fc77 --- /dev/null +++ b/app.py @@ -0,0 +1,205 @@ +import json +import os +import sys + +from flask import Flask, render_template, request, redirect, jsonify +from flask_cors import CORS, cross_origin +from binance.enums import * +from flask_sock import Sock +# Handles all server side data +import data as bt +# *NOT DONE YET* +import trade + +# Define app +app = Flask(__name__) +sock = Sock(app) + + +# app.config['SECRET_KEY'] = 'The quick brown fox jumps over the lazy dog' +# app.config['CORS_HEADERS'] = 'Content-Type' +# cors = CORS(app, resources={r"*": {"origins": "*"}}) + +@app.route('/') +def index(): + # Passes data into an HTML template and serves it to a locally hosted server + rendered_data = bt.app_data.get_rendered_data() + js_data = bt.app_data.get_js_init_data() + return render_template('index.html', + title=rendered_data['title'], + my_balances=rendered_data['my_balances'], + symbols=rendered_data['symbols'], + intervals=rendered_data['intervals'], + interval_state=rendered_data['chart_interval'], + indicator_types=rendered_data['indicator_types'], + indicator_list=rendered_data['indicator_list'], + checked=rendered_data['enabled_indicators'], + ma_vals=rendered_data['ma_vals'], + js_data=js_data) + + +@sock.route('/ws') +def ws(sock): + def json_msg_received(msg_obj): + if 'message_type' in msg_ob: + if msg_ob['message_type'] == 'candle_data': + # Send the candle to the BrighterData_obj + # and forward any returned data to the client. + r_data = bt.app_data.received_cdata(msg_ob['data']) + if r_data: + resp = { + "reply": "i_updates", + "data": r_data + } + sock.send(json.dumps(resp)) + + if msg_ob['message_type'] == 'request': + print(msg_ob['req']) + print('Request!') + + if msg_ob['message_type'] == 'reply': + print(msg_ob['rep']) + print('Reply') + + if msg_ob['message_type'] == 'new_signal': + # Send the data to the BrighterData_obj + # and forward any returned data to the client. + r_data = bt.app_data.received_new_signal(msg_ob['data']) + if r_data: + resp = { + "reply": "i_updates", + "data": r_data + } + sock.send(json.dumps(resp)) + return + + # The rendered page connects to the exchange and relays the candle data back here + # this socket also handles data and processing requests + while True: + msg = sock.receive() + if msg: + # If in json format the message gets converted into a dictionary + # otherwise it is handled as a status signal from the client + try: + msg_ob = json.loads(msg) + json_msg_received(msg_ob) + except json.JSONDecodeError: + print(f'Msg received from client: {msg}') + + +@app.route('/buy', methods=['POST']) +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def buy(): + print(request.form) # Debug ****** + trade.order( + symbol=request.form['symbol'], side=SIDE_BUY, + type=ORDER_TYPE_MARKET, quantity=request.form['quantity']) + return redirect('/') + + +@app.route('/sell', methods=['POST']) +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def sell(): + trade.order( + symbol=request.form['symbol'], side=SIDE_SELL, + type=ORDER_TYPE_MARKET, quantity=request.form['quantity']) + return redirect('/') + + +@app.route('/settings', methods=['POST']) +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def settings(): + setting = request.form['setting'] + if setting == 'interval': + interval_state = request.form['timeframe'] + bt.app_data.chart_configuration['chart_interval'] = interval_state + elif setting == 'trading_pair': + trading_pair = request.form['trading_pair'] + bt.app_data.chart_configuration['trading_pair'] = trading_pair + elif setting == 'toggle_indicator': + # Get a list of indicators to enable + enabled_indicators = [] + for i in request.form: + if request.form[i] == 'indicator': + enabled_indicators.append(i) + # Set visibility for all indicators according to + for indctr in bt.app_data.indicator_list: + if (indctr in enabled_indicators): + bt.app_data.indicator_list[indctr]['visible'] = True + else: + bt.app_data.indicator_list[indctr]['visible'] = False + # Redirect without reloading history + bt.app_data.config_and_states('save') + return redirect('/') + + elif setting == 'edit_indicator': + if 'submit' in request.form: + # Get the name of the indicator + indicator = request.form['submit'] + # Drop the name and action from our received data + attributes = dict(list(request.form.items())[2:]) + # All the numbers are string now so turn them back to (int) + for a in attributes: + if attributes[a].isdigit(): + attributes[a] = int(attributes[a]) + # if visible is unchecked it doesn't get sent by the form + if not 'visible' in attributes: + attributes.update({'visible': False}) + # Set the data in indicators according to + bt.app_data.indicator_list[indicator] = attributes + + if 'delete' in request.form: + indicator = request.form['delete'] + del bt.app_data.indicator_list[indicator] + # Redirect without reloading history + bt.app_data.config_and_states('save') + return redirect('/') + + elif setting == 'new_indicator': + if 'newi_name' in request.form: + indcr = request.form['newi_name'] + indtyp = request.form['newi_type'] + properties = {} + if request.form['new_prop_obj']: + list_of_dic = json.loads(request.form['new_prop_obj']) + # All the numbers are string now so turn them back to (int) + properties = {} + for prop in list_of_dic: + # Get the key for this object + key = next(iter(prop)) + # access the value of this object + value = prop[key] + if value.isdigit(): + value = int(value) + properties[key] = value + bt.app_data.create_indicator(name=indcr, type=indtyp, properties=properties) + + else: + print('ERROR SETTING VALUE') + print(f'The string received by the server was: /n{request.form}') + bt.app_data.config_and_states('save') + bt.app_data.set_candle_history() + return redirect('/') + + +@app.route('/history') +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def history(): + symbol = bt.app_data.chart_configuration['trading_pair'] + interval = bt.app_data.chart_configuration['chart_interval'] + return jsonify(bt.app_data.get_candle_history(symbol, interval, 1000)) + + +@app.route('/saved_data') +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def saved_data(): + return jsonify(bt.app_data.indicator_list) + + +@app.route('/indicator_init') +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def indicator_init(): + symbol = bt.app_data.chart_configuration['trading_pair'] + interval = bt.app_data.chart_configuration['chart_interval'] + d = bt.app_data.get_indicator_data(symbol, interval, 1000) + return jsonify(d) diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..576a234 --- /dev/null +++ b/config.yml @@ -0,0 +1,94 @@ +chart_configuration: + chart_interval: 4h + trading_pair: BTCUSDT +indicator_list: + ATR: + color: '#1a9b6f' + period: 100 + type: ATR + value: 0 + visible: true + Bolenger: + color_1: '#5ad858' + color_2: '#64d2f7' + color_3: '#5ad858' + devdn: 2 + devup: 2 + ma: 1 + period: 20 + type: BOLBands + value: 0 + value1: '38642.16' + value2: '38641.24' + value3: '38639.63' + visible: true + EMA 100: + color: '#5c5aee' + period: 100 + type: EMA + value: 0 + visible: true + EMA 50: + color: '#464e3f' + period: 50 + type: EMA + value: 0 + visible: true + Linear Reg 100: + color: '#236eb1' + period: 100 + type: LREG + value: '38139.51' + visible: 'True' + MACD: + color_1: '#50d617' + color_2: '#94f657' + fast_p: 12 + hist: 0 + macd: 0 + signal: 0 + signal_p: 9 + slow_p: 26 + type: MACD + value: 0 + visible: true + New Indicator: + color: '#d5ed5e' + period: 20 + type: RSI + value: 0 + visible: true + New rsi: + color: '#8e257b' + period: 20 + type: RSI + value: '48.96' + visible: true + RSI 14: + color: '#1b63bf' + period: 14 + type: RSI + value: 0 + visible: true + RSI 8: + color: '#2afd40' + period: 8 + type: RSI + value: 0 + visible: true + SMA 200: + color: '#1d545c' + period: 200 + type: SMA + value: 0 + visible: true + SMA 21: + color: '#0decc9' + period: 21 + type: SMA + value: 0 + visible: true + Volume: + type: Volume + value: 0 + visible: true diff --git a/data.py b/data.py new file mode 100644 index 0000000..ff130f2 --- /dev/null +++ b/data.py @@ -0,0 +1,799 @@ +import csv +import datetime +import sys +import random + +import numpy as np +import talib + +import config +from binance.client import Client +from binance.enums import * +import yaml + + +class BrighterData: + def __init__(self): + + # Initialise a connection to the Binance client API + self.client = Client(config.API_KEY, config.API_SECRET) + + # The title of our program + self.application_title = 'BrighterTrades' + + # Settings for the main chart on our UI + self.chart_configuration = { + 'chart_interval': KLINE_INTERVAL_15MINUTE, + 'trading_pair': 'BTCUSDT', + } + + # The maximum number of candles to store in memory + self.max_data_loaded = 1000 + + # List of all available indicator types + self.indicator_types = {} + # List of all available indicators + self.indicator_list = None + # Add default indicators and their default values to self.indicator_list + self.set_indicator_defaults() + + # Dictionary of exchange and account data + self.exchange_data = {} + # Set the values in self.exchange_data from information retrieved from exchange. + self.set_exchange_data() + + # The name of the file that stores saved_data + self.config_FN = 'config.yml' + # Load any saved data from file + self.config_and_states('load') + + # The entire loaded candle history + self.candlesticks = [] + # List of dictionaries of timestamped high, low, and closing values + self.latest_high_values = [] + self.latest_low_values = [] + self.latest_close_values = [] + # Values of the last candle received + self.last_candle = None + # List of dictionaries of timestamped volume values + self.latest_vol = [] + + # Set the instance variable of candlesticks, latest_close_values, high, low, closing, volume, and last_candle + self.set_candle_history() + + # A list of values to use with bolenger bands + self.bb_ma_val = {'SMA': 0, 'EMA': 1, 'WMA': 2, 'DEMA': 3, 'TEMA': 4, 'TRIMA': 5, 'KAMA': 6, 'MAMA': 7, 'T3': 8} + + def get_js_init_data(self): + """Returns a JSON object of initialization data + for the javascript in the rendered HTML""" + js_data = {'i_types': self.indicator_types, + 'indicators': self.indicator_list, + 'interval': self.chart_configuration['chart_interval'], + 'trading_pair': self.chart_configuration['trading_pair']} + return js_data + + def config_and_states(self, cmd): + """Loads or saves configurable data to the file set in self.config_FN""" + # Application configuration and object states + saved_data = { + 'indicator_list': self.indicator_list, + 'chart_configuration': self.chart_configuration + } + + def set_loaded_values(): + self.indicator_list = saved_data['indicator_list'] + self.chart_configuration = saved_data['chart_configuration'] + + def load_configuration(filepath): + """load file data""" + with open(filepath, "r") as file_descriptor: + data = yaml.safe_load(file_descriptor) + return data + + def save_configuration(filepath, data): + """Saves file data""" + with open(filepath, "w") as file_descriptor: + yaml.dump(data, file_descriptor) + + if cmd == 'load': + # If load_configuration() finds a file it overwrites + # the saved_data object otherwise it creates a new file + # with the defaults contained in saved_data> + try: + saved_data = load_configuration(self.config_FN) + set_loaded_values() + except IOError: + save_configuration(self.config_FN, saved_data) + elif cmd == 'save': + try: + save_configuration(self.config_FN, saved_data) + except IOError: + raise ValueError("Couldn't save the file") + else: + raise ValueError('Invalid command received') + + def load_candle_history(self, symbol, interval): + """ Retrieve candlestick history from a file and append it with + more recent exchange data while updating the file record. + This method only get called if the data is requested. + This is to avoid maintaining irrelevant data files.""" + + start_datetime = datetime.datetime(2017, 1, 1) + # Create a filename from the function parameters. + # Format is symbol_interval_start_date: example - 'BTCUSDT_15m_2017-01-01' + file_name = f'{symbol}_{interval}_{start_datetime.date()}' + + # List of price data. ,,,,, + # + # , + candlesticks = [] + + try: + # Populate from if it exists. + print(f'Attempting to open: {file_name}') + with open(file_name, 'r') as file: + reader = csv.reader(file, delimiter=',') + # Load the data here + for row in reader: + candlesticks.append(row) + print('File loaded') + # Open for appending + file = open(file_name, 'a', newline='') + candlestick_writer = csv.writer(file, delimiter=',') + + except IOError: + # If the file doesn't exist it must be created. + print(f'{file_name} not found: Creating the file') + # Open for writing + file = open(file_name, 'w', newline='') + candlestick_writer = csv.writer(file, delimiter=',') + + # If no candlesticks were loaded from file. Set a date to start loading from in the + # variable with a default value stored in . + if not candlesticks: + last_candle_stamp = start_datetime.timestamp() * 1000 + else: + # Set with the timestamp of the last candles on file + last_candle_stamp = candlesticks[-1][0] + # Request any missing candlestick data from the exchange + recent_candlesticks = self.client.get_historical_klines(symbol, interval, start_str=int(last_candle_stamp)) + # Discard the first row of candlestick data as it will be a duplicate***DOUBLE CHECK THIS + recent_candlesticks.pop(0) + # Append the candlestick list and the file + for candlestick in recent_candlesticks: + candlesticks.append(candlestick) + candlestick_writer.writerow(candlestick) + # Close the file and return the entire candlestick history + file.close() + return candlesticks + + def set_latest_vol(self): + # Extracts a list of volume values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_vol = [] + last_clp = 0 + for data in self.candlesticks: + clp = int(float(data[4])) + if clp < last_clp: + color = 'rgba(255,82,82, 0.8)' # red + else: + color = 'rgba(0, 150, 136, 0.8)' # green + + vol_data = { + "time": int(data[0]) / 1000, + "value": int(float(data[5])), + "color": color + } + last_clp = clp + latest_vol.append(vol_data) + self.latest_vol = latest_vol + return + + def get_latest_vol(self, num_record=500): + # Returns the latest closing values + if self.latest_vol: + if len(self.latest_vol) < num_record: + print('Warning: get_latest_vol() - Requested too more records then available') + num_record = len(self.latest_vol) + return self.latest_vol[-num_record:] + else: + raise ValueError('Warning: get_latest_vol(): Values are not set') + + def set_latest_high_values(self): + # Extracts a list of close values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_high_values = [] + for data in self.candlesticks: + high_data = { + "time": int(data[0]) / 1000, + "high": data[2] + } + latest_high_values.append(high_data) + self.latest_high_values = latest_high_values + return + + def get_latest_high_values(self, num_record=500): + # Returns the latest closing values + if self.latest_high_values: + if len(self.latest_high_values) < num_record: + print('Warning: latest_high_values() - Requested too more records then available') + num_record = len(self.latest_high_values) + return self.latest_high_values[-num_record:] + else: + raise ValueError('Warning: latest_high_values(): Values are not set') + + def set_latest_low_values(self): + # Extracts a list of close values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_low_values = [] + for data in self.candlesticks: + low_data = { + "time": int(data[0]) / 1000, + "low": data[3] + } + latest_low_values.append(low_data) + self.latest_low_values = latest_low_values + return + + def get_latest_low_values(self, num_record=500): + # Returns the latest closing values + if self.latest_low_values: + if len(self.latest_low_values) < num_record: + print('Warning: latest_low_values() - Requested too more records then available') + num_record = len(self.latest_low_values) + return self.latest_low_values[-num_record:] + else: + raise ValueError('Warning: latest_low_values(): Values are not set') + + def set_latest_close_values(self): + # Extracts a list of close values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_close_values = [] + for data in self.candlesticks: + close_data = { + "time": int(data[0]) / 1000, + "close": data[4] + } + latest_close_values.append(close_data) + self.latest_close_values = latest_close_values + return + + def get_latest_close_values(self, num_record=500): + # Returns the latest closing values + if self.latest_close_values: + if len(self.latest_close_values) < num_record: + print('Warning: get_latest_close_values() - Requested too more records then available') + num_record = len(self.latest_close_values) + return self.latest_close_values[-num_record:] + else: + raise ValueError('Warning: get_latest_close_values(): Values are not set') + + def set_candle_history(self, symbol=None, interval=None, max_data_loaded=None): + if not max_data_loaded: + max_data_loaded = self.max_data_loaded + if not symbol: + symbol = self.chart_configuration['trading_pair'] + if not interval: + interval = self.chart_configuration['chart_interval'] + if self.candlesticks: + print('set_candle_history(): Reloading candle data') + else: + print('set_candle_history(): Loading candle data') + # Load candles from file + cdata = self.load_candle_history(symbol, interval) + # Trim the beginning of the returned list to size of max_data_loaded of less + if len(cdata) < max_data_loaded: + max_data_loaded = len(cdata) + self.candlesticks = cdata[-max_data_loaded:] + # Set an instance dictionary of timestamped high, low, closing values + self.set_latest_high_values() + self.set_latest_low_values() + self.set_latest_close_values() + # Extract the volume data from self.candlesticks and store it in self.latest_vol + self.set_latest_vol() + + # Set an instance reference of the last candle + self.last_candle = self.convert_candle(self.candlesticks[-1]) + print('set_candle_history(): Candle data Loaded') + return + + def convert_candle(self, candle): + candlestick = { + "time": int(candle[0]) / 1000, + "open": candle[1], + "high": candle[2], + "low": candle[3], + "close": candle[4] + } + return candlestick + + def get_candle_history(self, symbol, interval, num_records): + + if len(self.candlesticks) < num_records: + print('Warning: get_candle_history() Requested more records then available') + num_records = len(self.candlesticks) + + # Drop everything but the requested number of records + candlesticks = self.candlesticks[-num_records:] + + # Reformat relevant candlestick data into a list of python dictionary objects. + # Binance stores timestamps in milliseconds but lightweight charts doesn't, + # so it gets divided by 1000 + processed_candlesticks = [] + for data in candlesticks: + candlestick = { + "time": int(data[0]) / 1000, + "open": data[1], + "high": data[2], + "low": data[3], + "close": data[4] + } + processed_candlesticks.append(candlestick) + # Return a list of candlestick objects + return processed_candlesticks + + # list enabled indicators + def get_enabled_indicators(self): + """ Loop through all indicators and make a list of indicators marked visible """ + enabled_indicators = [] + i_list = self.get_indicator_list() + for indctr in i_list: + if i_list[indctr]['visible']: + enabled_indicators.append(indctr) + return enabled_indicators + + def set_indicator_defaults(self): + """Set the default settings for each indicator""" + + self.indicator_types = {'simple_indicators': ['RSI', 'SMA', 'EMA', 'LREG'], + 'other': ['Volume', 'BOLBands', 'MACD', 'ATR']} + self.indicator_list = { + 'SMA 21': {'type': 'SMA', 'period': 21, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'EMA 50': {'type': 'EMA', 'period': 50, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'EMA 100': {'type': 'EMA', 'period': 100, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'SMA 200': {'type': 'SMA', 'period': 200, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'RSI 14': {'type': 'RSI', 'period': 14, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'RSI 8': {'type': 'RSI', 'period': 8, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'Bolenger': {'color_1': '#5ad858', 'color_2': '#f0f664', 'color_3': '#5ad858', 'devdn': 2, 'devup': 2, + 'ma': 1, 'period': 20, 'type': 'BOLBands', 'value': 0, 'value1': '38691.58', + 'value2': '38552.36', + 'value3': '38413.14', 'visible': 'True'}, + 'vol': {'type': 'Volume', 'visible': True, 'value': 0} + } + + return + + def get_indicator_list(self): + # Returns a list of all the indicator object in this class instance + if not self.indicator_list: + raise ValueError('get_indicator_list(): No indicators in the list') + return self.indicator_list + + def set_exchange_data(self): + # Pull all balances from client while discarding assets with zero balance + account = self.client.futures_coin_account_balance() + self.exchange_data['balances'] = [asset for asset in account if float(asset['balance']) > 0] + + # Pull all available symbols from client + exchange_info = self.client.get_exchange_info() + self.exchange_data['symbols'] = exchange_info['symbols'] + + # Available intervals + self.exchange_data['intervals'] = ( + KLINE_INTERVAL_1MINUTE, KLINE_INTERVAL_3MINUTE, + KLINE_INTERVAL_5MINUTE, KLINE_INTERVAL_15MINUTE, + KLINE_INTERVAL_30MINUTE, KLINE_INTERVAL_1HOUR, + KLINE_INTERVAL_2HOUR, KLINE_INTERVAL_4HOUR, + KLINE_INTERVAL_6HOUR, KLINE_INTERVAL_8HOUR, + KLINE_INTERVAL_12HOUR, KLINE_INTERVAL_1DAY, + KLINE_INTERVAL_3DAY, KLINE_INTERVAL_1WEEK, + KLINE_INTERVAL_1MONTH + ) + + def get_rendered_data(self): + """ + Data to be rendered in the HTML + """ + rd = {} + rd['title'] = self.application_title # Title of the page + rd['my_balances'] = self.exchange_data['balances'] # Balances on the exchange + rd['symbols'] = self.exchange_data['symbols'] # Symbols information from the exchange + rd['intervals'] = self.exchange_data['intervals'] # Time candle time intervals available to stream + rd['chart_interval'] = self.chart_configuration['chart_interval'] # The charts current interval setting + rd['indicator_types'] = self.indicator_types # All the types indicators Available + rd['indicator_list'] = self.get_indicator_list() # indicators available + rd['enabled_indicators'] = self.get_enabled_indicators() # list of indicators that are enabled + rd['ma_vals'] = self.bb_ma_val # A list of acceptable values to use with bolenger band creation + return rd + + def get_indicator_data(self, symbol=None, interval=None, num_results=100): + # Loop through all the indicators. If enabled, run the appropriate + # update function. Return all the results as a dictionary object. + + if not interval: + interval = self.chart_configuration['chart_interval'] + if not symbol: + symbol = self.chart_configuration['trading_pair'] + + # Get a list of indicator objects and a list of enabled indicators names. + i_list = self.get_indicator_list() + enabled_i = self.get_enabled_indicators() + result = {} + # Loop through all indicator objects in i_list + for each_i in i_list: + # If the indicator's not enabled skip to next each_i + if each_i not in enabled_i: + continue + i_type = i_list[each_i]['type'] + # If it is a simple indicator. + if i_type in self.indicator_types['simple_indicators']: + result[each_i] = self.calculate_simple_indicator(i_type=i_type, + period=i_list[each_i]['period']) + if i_type in self.indicator_types['other']: + if i_type == 'BOLBands': + result[each_i] = self.calculate_bolbands(i_type=i_type, + period=i_list[each_i]['period'], + devup=i_list[each_i]['devup'], + devdn=i_list[each_i]['devdn'], + ma=i_list[each_i]['ma']) + if i_type == 'MACD': + result[each_i] = self.calculate_macd(i_type=i_type, + fast_p=i_list[each_i]['fast_p'], + slow_p=i_list[each_i]['slow_p'], + signal_p=i_list[each_i]['signal_p']) + if i_type == 'Volume': + result[each_i] = self.get_volume(i_type=i_type) + + if i_type == 'ATR': + result[each_i] = self.calculate_atr(i_type=i_type, + period=i_list[each_i]['period']) + + return result + + def get_volume(self, i_type, num_results=800): + r_data = self.get_latest_vol() + r_data = r_data[-num_results:] + return {"type": i_type, "data": r_data} + + def calculate_macd(self, i_type, fast_p=12, slow_p=26, signal_p=9, num_results=800): + # These indicators do computations over a period number of price data points. + # So we need at least that plus what ever amount of results needed. + # It seems it needs num_of_nans = (slow_p) - 2) + signal_p + + # TODO: slow_p or fast_p which ever is greater should be used in the calc below. + # TODO but i am investigating this. + if fast_p > slow_p: + raise ValueError('Error I think: TODO: calculate_macd()') + num_cv = (slow_p - 2) + signal_p + num_results + + closing_data = self.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + macd, signal, hist = talib.MACD(np_real_data, fast_p, slow_p, signal_p) + + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + macd = macd[-num_results:] + if len(macd) == 1: + print('looks like after slicing') + print(macd) + signal = signal[-num_results:] + hist = hist[-num_results:] + ts = ts[-num_results:] + r_macd = [] + r_signal = [] + r_hist = [] + for each in range(len(macd)): + # filter out nan values + if np.isnan(macd[each]): + continue + r_macd.append({'time': ts[each], 'value': macd[each]}) + r_signal.append({'time': ts[each], 'value': signal[each]}) + r_hist.append({'time': ts[each], 'value': hist[each]}) + r_data = [r_macd, r_signal, r_hist] + return {"type": i_type, "data": r_data} + + def calculate_atr(self, i_type, period, num_results=800): + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + num_cv = period + num_results + + high_data = self.get_latest_high_values(num_cv) + low_data = self.get_latest_low_values(num_cv) + close_data = self.get_latest_close_values(num_cv) + if len(close_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize 4 arrays to hold a list of h/l/c values and + # a list of timestamps associated with these values + highs = [] + lows = [] + closes = [] + ts = [] + # Isolate all the values and timestamps from + # the dictionary objects + + for each in high_data: + highs.append(each['high']) + for each in low_data: + lows.append(each['low']) + for each in close_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the lists to a numpy array + np_highs = np.array(highs, dtype=float) + np_lows = np.array(lows, dtype=float) + np_closes = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + atr = talib.ATR(high=np_highs, + low=np_lows, + close=np_closes, + timeperiod=period) + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + atr = atr[-num_results:] + ts = ts[-num_results:] + r_data = [] + for each in range(len(atr)): + # filter out nan values + if np.isnan(atr[each]): + continue + r_data.append({'time': ts[each], 'value': atr[each]}) + return {"type": i_type, "data": r_data} + + def calculate_bolbands(self, i_type, period, devup=2, devdn=2, ma=0, num_results=800): + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + # Acceptable values for ma in the talib.BBANDS + # {'SMA':0,'EMA':1, 'WMA' : 2, 'DEMA' : 3, 'TEMA' : 4, 'TRIMA' : 5, 'KAMA' : 6, 'MAMA' : 7, 'T3' : 8} + num_cv = period + num_results + closing_data = self.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + upper, middle, lower = talib.BBANDS(np_real_data, + timeperiod=period, + # number of non-biased standard deviations from the mean + nbdevup=devup, + nbdevdn=devdn, + # Moving average type: simple moving average here + matype=ma) + + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + i_values_u = upper[-num_results:] + i_values_m = middle[-num_results:] + i_values_l = lower[-num_results:] + ts = ts[-num_results:] + r_data_u = [] + r_data_m = [] + r_data_l = [] + for each in range(len(i_values_u)): + # filter out nan values + if np.isnan(i_values_u[each]): + continue + r_data_u.append({'time': ts[each], 'value': i_values_u[each]}) + r_data_m.append({'time': ts[each], 'value': i_values_m[each]}) + r_data_l.append({'time': ts[each], 'value': i_values_l[each]}) + r_data = [r_data_u, r_data_m, r_data_l] + return {"type": i_type, "data": r_data} + + def calculate_simple_indicator(self, i_type, period, num_results=800): + # Valid types of indicators for this function + if i_type not in self.indicator_types['simple_indicators']: + raise ValueError(f'calculate_simple_indicator(): Unknown type: {i_type}') + + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + num_cv = period + num_results + closing_data = self.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + if i_type == 'SMA': + i_values = talib.SMA(np_real_data, period) + if i_type == 'RSI': + i_values = talib.RSI(np_real_data, period) + if i_type == 'EMA': + i_values = talib.EMA(np_real_data, period) + if i_type == 'LREG': + i_values = talib.LINEARREG(np_real_data, period) + + # Combine the new data with the timestamps + # Warning: The first of rsi values are . + # But they should get trimmed off todo get rid of try except *just debuging info + try: + i_values = i_values[-num_results:] + except: + raise ValueError(f'error: {i_type} {i_values}') + ts = ts[-num_results:] + r_data = [] + for each in range(len(i_values)): + r_data.append({'time': ts[each], 'value': i_values[each]}) + return {"type": i_type, "data": r_data} + + def create_indicator(self, name, type, properties): + # Indicator type checking before adding to a dictionary of properties + properties['type'] = type + # Force color and period properties for simple indicators + if type in self.indicator_types['simple_indicators']: + if 'color' not in properties: + properties['color'] = f"#{random.randrange(0x1000000):06x}" + if 'period' not in properties: + properties['period'] = 20 + if type in self.indicator_types['other']: + ul_col = f"#{random.randrange(0x1000000):06x}" + if type == 'BOLBands': + if 'period' not in properties: + properties['period'] = 50 + if 'color_1' not in properties: + properties['color_1'] = ul_col + if 'color_2' not in properties: + properties['color_2'] = f"#{random.randrange(0x1000000):06x}" + if 'color_3' not in properties: + properties['color_3'] = ul_col + if 'value1' not in properties: + properties['value1'] = 0 + if 'value2' not in properties: + properties['value2'] = 0 + if 'value3' not in properties: + properties['value3'] = 0 + if 'devup' not in properties: + properties['devup'] = 2 + if 'devdn' not in properties: + properties['devdn'] = 2 + if 'ma' not in properties: + properties['ma'] = 1 + if type == 'MACD': + if 'fast_p' not in properties: + properties['fast_p'] = 12 + if 'slow_p' not in properties: + properties['slow_p'] = 26 + if 'signal_p' not in properties: + properties['signal_p'] = 9 + if 'macd' not in properties: + properties['macd'] = 0 + if 'signal' not in properties: + properties['signal'] = 0 + if 'hist' not in properties: + properties['hist'] = 0 + if 'color_1' not in properties: + properties['color_1'] = f"#{random.randrange(0x1000000):06x}" + if 'color_2' not in properties: + properties['color_2'] = f"#{random.randrange(0x1000000):06x}" + if type == 'ATR': + if 'period' not in properties: + properties['period'] = 50 + if 'color' not in properties: + properties['color'] = f"#{random.randrange(0x1000000):06x}" + + # Force value and visibility for all indicators + if 'value' not in properties: + properties['value'] = 0 + if 'visible' not in properties: + properties['visible'] = True + # Add the dictionary of properties and values to an instance list + self.indicator_list[name] = properties + return + + def received_cdata(self, cdata): + # If this is the first candle received, + # then just set last_candle and return. + if not self.last_candle: + self.last_candle = cdata + return + # If this candle is the same as last candle return nothing to do. + if cdata['time']: + if cdata['time'] == self.last_candle['time']: + return + + # **** New candle is received *** + # Update the instance data records. + self.last_candle = cdata + self.latest_close_values.append({'time': cdata['time'], 'close': cdata['close']}) + self.latest_high_values.append({'time': cdata['time'], 'high': cdata['high']}) + self.latest_low_values.append({'time': cdata['time'], 'low': cdata['low']}) + self.latest_vol.append({'time': cdata['time'], 'value': cdata['vol']}) + # Update indicators + updates = self.update_indicators() + return updates + + def update_indicators(self): + enabled_indcrs = self.get_enabled_indicators() + indcrs_list = self.get_indicator_list() + # Updated data is collected in this dictionary object + updates = {} + # Loop through all enabled indicators + for indcr in enabled_indcrs: + # Get the type of the indicator being updated + i_type = indcrs_list[indcr]['type'] + # Update the indicator with a function appropriate for its kind + # TODO - Check EMA results i see a bit of a sharp turn in the ema line on + # the interface side when reloading the page. It smooths out after a full reload. + if i_type in self.indicator_types['simple_indicators']: + updates[indcr] = self.calculate_simple_indicator(i_type=i_type, + period=indcrs_list[indcr]['period'], + num_results=1) + if i_type == 'BOLBands': + updates[indcr] = self.calculate_bolbands(i_type=i_type, + period=indcrs_list[indcr]['period'], + devup=indcrs_list[indcr]['devup'], + devdn=indcrs_list[indcr]['devdn'], + ma=indcrs_list[indcr]['ma'], + num_results=1) + if i_type == 'MACD': + updates[indcr] = self.calculate_macd(i_type=i_type, + fast_p=indcrs_list[indcr]['fast_p'], + slow_p=indcrs_list[indcr]['slow_p'], + signal_p=indcrs_list[indcr]['signal_p'], + num_results=1) + + if i_type == 'ATR': + updates[indcr] = self.calculate_atr(i_type=i_type, + period=indcrs_list[indcr]['period'], + num_results=1) + + if i_type == 'Volume': + updates[indcr] = self.get_volume(i_type=i_type, + num_results=1) + return updates + def received_new_signal(self, data): + # Check the data. + if 'sigName' not in data: + return 'No name provided' + Signal + + print(data) + +app_data = BrighterData() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..03cec72 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +numpy~=1.22.3 +flask~=2.1.2 +config~=0.5.1 +PyYAML~=6.0 +binance \ No newline at end of file diff --git a/static/blue_img.jpg b/static/blue_img.jpg new file mode 100644 index 0000000..04ae8f9 Binary files /dev/null and b/static/blue_img.jpg differ diff --git a/static/brighterStyles.css b/static/brighterStyles.css new file mode 100644 index 0000000..9a990b4 --- /dev/null +++ b/static/brighterStyles.css @@ -0,0 +1,367 @@ +body { + font-family: 'Trebuchet MS', Roboto, Ubuntu, sans-serif; + background: #f9fafb; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + background: linear-gradient(#64D2F7, #195172); + margin:0; +} +#master_panel{ + width 1550px; + height 800px; + display: grid; + grid-template-columns: 1000px 550px; + grid-template-rows: 50px 500px 100px 100px; +} +.master_panel{ +} +/*************** Popup forms *********************/ +/* TODO I don't know what this does */ +{box-sizing: border-box;} + +/* The popup form - hidden by default */ +.form-popup { + display: none; + position: fixed; + top: 100px; + right: 50%; + border: 3px solid black; + z-index: 102; + background-color:white; + width:500px; +} +.form-popup h1 { + text-align:center; +} +.form-popup #SigName_div, label, select, #Signal_type, span{ + text-align:center; + height:20px; +} +/* Add styles to the form container */ +.form-container { + padding: 10px; + background-color: white; +} +#panel_1{ + display: grid; +} +#panel_2{ + display: none; +} +#panel_3{ + display: none; +} +#subpanel_1{ + display:none; +} +#subpanel_2 { + text-align:center; +} +#subpanel_1 label{ + display:inline-block; + width:100px; + text-align:center; + margin-left:100px; +} +/* When the inputs get focus, do something*/ +.form-container input[type=text]:focus, .form-container input[type=password]:focus { + background-color: #ddd; + outline: none; +} + +/* Set a style for the submit/login button */ +.form-container .btn { + background-color: #04AA6D; + color: white; + border: none; + cursor: pointer; + margin-bottom:10px; + opacity: 0.8; + height:30px; +} +.btn, form-container > select{ + width: 150px; + margin-left:60px; +} +.padDiv{ + padding:25px; +} +/* Add a red background color to the cancel button */ +.form-container .cancel { + background-color: red; +} + +/* Add some hover effects to buttons */ +.form-container .btn:hover, .open-button:hover { + opacity: 1; +} +#rangeVal{ + width:50px; +} +input[type="radio"], +input[type="checkbox"] { + width: 15px; + height: 15px; + accent-color: green; +} +#sig_operator{ + padding-left: 30px; +} +/***************End popup forms *********************/ +/***********************Three Charts ************************/ +#app_header{ + border-style: none; + grid-column: 1/3; + grid-row:1; + display: grid; + grid-template-columns:1fr 1fr; + background-color:#3E3AF2; +} +#app_title{ + text-align:center; + width:1500px; + margin:10px; + color:#F5F3AD; +} +/* This class if for a child element of indicator_output created in general.js */ +.legend { + width: 150px; + padding: 1px; + font-size: 14px; + background-color: rgba(255, 255, 255, 0.23); + text-align: left; + pointer-events: none; +} +.a1{ + position: absolute; + z-index:98; + width: 200px; + padding: 15px; + border-style:none; +} +#indicator_output{ + overflow-y: scroll; + width: 300px; + height:50px; + padding: 3px; + border-style: solid; +} + +#chart_controls{ + border-style:none; + width: 200px; + padding: 15px; + display: grid; + grid-template-columns:700px 1fr 1fr; + +} +#indicators{ + display: none; + position: absolute; + left: 100px; top: 50px; + width: 135px; + padding: 10px; + background-color: rgb(200,100,100); + border: solid black 1px; + text-align: justify; font-size: 12px; + z-index:99; +} +#enable_indicators{ + height:20px; +} + +#chart{ + grid-column: 1; + grid-row:2; +} + + +#chart2{ + grid-column: 1; + grid-row:3; +} +#chart3{ + grid-column: 1; + grid-row:4; +} +/***************************************************/ + + +/****************Right Panel***********************/ +.collapsible { + background-color: #3E3AF2; + color: white; + cursor: pointer; + padding: 5px; + width: 100%; + border: none; + text-align: center; + outline: none; + font-size: 15px; +} + +.active, .collapsible:hover { + background-color: #0A07DF; +} + +.collapsible:after { + content: '\002B'; + color: white; + font-weight: bold; + float: right; + margin-left: 5px; +} + +.active:after { + content: "\2212"; +} + +.content { + padding: 0 18px; + max-height: 0; + min-height: 50px; + height:300px; + overflow: hidden; + transition: max-height 0.2s ease-out; + background-color: #f1f1f1; +} +.bg_red{ + background-color:#9F180F; +} +.bg_blue{ + background-color:#3E3AF2; +} + + +#right_panel{ + grid-column: 2; + grid-row:2/5; +} +#bal_content{ + display:grid; + grid-template-columns:1fr 1fr; + min-height: 100px; + min-height: 100px; +} +#balances{ + width:250px; + height:50px; + grid-row:2; + grid-column:1; + overflow: hidden; + position:relative; + bottom:20; + left:5px; +} +#balances_tbl{ +position: absolute; + top: 0; + bottom: 0; + left: 0; + right: -17px; /* Increase/Decrease this value for cross-browser compatibility */ + overflow-y: scroll; +} +#trade_content{ + margin-top:8px; +} +.new_btn{ +margin:5; +} +/***************************************************/ + + +/************Edit/Add Indicators Panel**************/ +#edit_indcr_panel{ + width: 1000px; + height: 300px; + padding: 3px; + overflow: scroll; + border-style: solid; + background: url(../static/blue_img.jpg) no-repeat center center; + background-size: cover; + grid-column: 1; +} +#edit_indcr_head{ + color: white; + width: 1025px; + display: grid; + grid-template-columns: 75px 150px repeat(8, 100px); +} +#h_name{ + width: 150px; + grid-column: 2; + text-align: center; +} +#h_properties{ + grid-column: 3/11; + text-align:center; + +} +.ierow{ + display: grid; + grid-template-columns: 75px 150px repeat(8, 100px); +} +#edit_indctr_controls{ + height:25px; + width: 75px; + grid-column: 1; + display: flex; + justify-content: center; + align-items: center; + +} +.e_btn{ + height:25px; + width:25; + font-weight: bold; + color:darkred; + background-color:EEC9C9; +} +.iename{ + color:white; + text-align:center; + width: 150px; height: 25px; + grid-column: 2; + font-weight: bold; + overflow: hidden; + display: flex; justify-content: center; align-items: center; +} +#ieprop_container{ + margin-left:20px; + grid-column: 3/11; + text-align:right; + + +} +.ieprop{ + width: 150px; + height: 25px; + overflow: hidden; + display: inline-block; + color: white; + margin-bottom:15px; +} +.ietextbox{ + width: 75px; + height: 25px; +} +.ie_value{ + width: 75px; + height: 25px; + border: 0; + outline:0; + background: transparent; + font-weight: inherit; + font-size:inherit; + line-height:inherit; + color:inherit; +} +input[type=checkbox] { + vertical-align: middle; + position: relative; + bottom: 1px; + } +#create_indcr_container{ + color:white; +} +/*******************************************************************/ \ No newline at end of file diff --git a/static/chart.js b/static/chart.js new file mode 100644 index 0000000..f5901de --- /dev/null +++ b/static/chart.js @@ -0,0 +1,130 @@ +var app_con; + +//*******************Chart********************* +//Reference the target div for the chart. Div was defined in index.html +var container = document.getElementById('chart'); +//Create a chart object +var chart = LightweightCharts.createChart(container, { + width: 1000, + height: 500, + crosshair: { + mode: LightweightCharts.CrosshairMode.Normal, + }, + priceScale: { + borderColor: 'rgba(197, 203, 206, 0.8)', + }, + timeScale: { + borderColor: 'rgba(197, 203, 206, 0.8)', + timeVisible: true, + secondsVisible: false, + barSpacing: 6 + }, + handleScroll: true +}); +bind_charts(chart); +chart.applyOptions({ + watermark: {visible: true, + color: '#DBC29E', + text: bt_data['trading_pair'], + fontSize: 30, + fontFamily: 'Roboto', + fontStyle: 'bold', + vertAlign: 'center' + } + }); +// - Create the candle stick series for our chart +var candleSeries = chart.addCandlestickSeries(); + +//Fetch price history +var price_history = fetch('http://localhost:5000/history') + .then((r) => r.json()) + .then((response) => { + return response; + }) + +//Initialise the candlestick series +price_history.then((ph) => { + //Initialise the candle data + candleSeries.setData(ph); + //Initialise indicators + indicator_init(); +}) + +/* Place functions here that need to +be run everytime a new msg is received */ +function update_on_msg(new_candle){ + // Update candlestick series + candleSeries.update(new_candle); + // Update javascript coded indicators + indicator_update_msg_received(new_candle); + // Send a copy of the data to the server + app_con.send( JSON.stringify({ message_type: "candle_data", data :new_candle })); +} + +/* Place functions that here that need to + be run everytime a candle is closed */ +function update_on_candle_close(new_candle){ + // Send a copy of the data to the server + app_con.send( JSON.stringify({ message_type: "candle_data", data :new_candle })); +} + +// Create a web socket connection to the exchange +function set_websocket(interval){ + // Connect to our app + app_con = new WebSocket('ws://localhost:5000/ws'); + app_con.onopen = () => app_con.send("Connection OK"); + + app_con.addEventListener('message', ev => { + if(ev.data){ + // Get the message received from server + msg = JSON.parse(ev.data) + // Handle a request from the server + if (msg.request) { + //handle request + console.log('Received a request from the server'); + console.log(msg.request); + } + // Handle a reply from the server + if (msg.reply) { + // Handle indicator updates + if (msg.reply == 'i_updates'){ + // console.log(msg.data); + indicator_update(msg.data) + } + } + } + }) + + + var ws = "wss://stream.binance.com:9443/ws/btcusdt@kline_" + interval; + var binanceSocket = new WebSocket(ws); + + // Set the on-message call-back for the socket + binanceSocket.onmessage = function (event) { + // Convert message to json obj + var message = JSON.parse(event.data); + // Isolate the candle data from message + var candlestick = message.k; + //console.log(message.k) + // Reformat data for lightweight charts + new_candle={ + time: candlestick.t / 1000, + open: candlestick.o, + high: candlestick.h, + low: candlestick.l, + close: candlestick.c, + vol: candlestick.V + }; + //Update frequently updated objects + update_on_msg(new_candle); + // Only call if the new candle received a new time stamp. + // Update the price history and per candle updated objects. + price_history.then((ph) => { + if ( new_candle.time > ph[ph.length-1].time) { + ph.push(new_candle); + update_on_candle_close(new_candle); + } + }); + } + +} \ No newline at end of file diff --git a/static/general.js b/static/general.js new file mode 100644 index 0000000..f4246dd --- /dev/null +++ b/static/general.js @@ -0,0 +1,103 @@ +// +//class Backtesting { +// constructor() { +// this.height = height; +// } +//} +// +//class Trade { +// constructor() { +// this.height = height; +// } +//} +// +//class Controls { +// constructor() { +// this.height = height; +// } +//} +// +//class Strategies { +// constructor() { +// this.height = height; +// } +//} +// +//class Signals { +// constructor() { +// this.height = height; +// } +//} +// +//class Exchange_Info { +// constructor() { +// this.height = height; +// } +//} +// +//class Alerts { +// constructor() { +// this.height = height; +// } +//} +// +//class Header { +// constructor() { +// this.height = height; +// } +//} +// +//class Statistics { +// constructor() { +// this.height = height; +// } +//} +// +//class Indicator_Output { +// constructor() { +// this.height = height; +// } +//} + + +class User_Interface{ +/* This contains the entire User interface.*/ + constructor() { + /* Create the objects that contain all the + data and scripts required for each section of + the User interface. */ + + /* Data object is responsible for fetching and maintaining + up-to-date configurable and variable data for the UI */ + this.data = new Data(); + + /* Charts object is responsible for maintaining the + data visualisation area in the UI. */ + let chart_init_data = { + chart1_id : this.data.chart1_id, + chart2_id : this.data.chart2_id, + chart3_id : this.data.chart3_id, + trading_pair : this.data.trading_pair, + price_history : this.data.price_history + } + this.charts = new Charts(chart_init_data); + + /* The Indicators object is responsible for maintaining and + interacting with the indicator section. As well as + updating the display on the charts.*/ + let ind_init_data = { + indicators: this.data.indicators, + indicator_data: this.data.indicator_data + } + /* Pass the initialization for the indicators and a reference to + the charts object so the indicators can update it directly.*/ + this.indicators = new Indicators(this.charts, ind_init_data); + + this.communicate = new Communication( + this.data.interval, + this.data.candle_update, + this.data.candle_close, + this.indicators.update); + } +} +UI = new User_Interface(); diff --git a/static/lightweight-charts.standalone.production.js b/static/lightweight-charts.standalone.production.js new file mode 100644 index 0000000..1ae9d1f --- /dev/null +++ b/static/lightweight-charts.standalone.production.js @@ -0,0 +1,15 @@ + /*! + * @license + * TradingView Lightweight Charts v2.1.0-dev+202005300152 + * Copyright (c) 2019 TradingView, Inc. + * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0 + */ +!function(){"use strict";var t,i;function n(t,i){var n,s=((n={})[0]=[],n[1]=[t.lineWidth,t.lineWidth],n[2]=[2*t.lineWidth,2*t.lineWidth],n[3]=[6*t.lineWidth,6*t.lineWidth],n[4]=[t.lineWidth,4*t.lineWidth],n)[i];t.setLineDash(s)}function s(t,i,n,s){t.beginPath();var h=t.lineWidth%2?.5:0;t.moveTo(n,i+h),t.lineTo(s,i+h),t.stroke()}!function(t){t[t.Simple=0]="Simple",t[t.WithSteps=1]="WithSteps"}(t||(t={})),function(t){t[t.Solid=0]="Solid",t[t.Dotted=1]="Dotted",t[t.Dashed=2]="Dashed",t[t.LargeDashed=3]="LargeDashed",t[t.SparseDotted=4]="SparseDotted"}(i||(i={}));var h=function(t,i){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)i.hasOwnProperty(n)&&(t[n]=i[n])})(t,i)};function r(t,i){function n(){this.constructor=t}h(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}var e=function(){return(e=Object.assign||function(t){for(var i,n=1,s=arguments.length;n0)}function M(t){return"boolean"==typeof t}function b(t){var i,n,s,h=t;if(!h||"object"!=typeof h)return h;for(n in i=Array.isArray(h)?[]:{},h)h.hasOwnProperty(n)&&(s=h[n],i[n]=s&&"object"==typeof s?b(s):s);return i}function m(t){return null!==t}function p(t){return null===t?void 0:t}var g=function(){function t(){this.t=[]}return t.prototype.i=function(t){this.t=t},t.prototype.s=function(t,i,n,s){this.t.forEach((function(h){t.save(),h.s(t,i,n,s),t.restore()}))},t}(),y=function(){function t(){}return t.prototype.s=function(t,i,n,s){t.save(),t.scale(i,i),this.h(t,n,s),t.restore()},t.prototype.u=function(t,i,n,s){t.save(),t.scale(i,i),this.o(t,n,s),t.restore()},t.prototype.o=function(t,i,n){},t}(),k=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.l=null,i}return r(i,t),i.prototype.v=function(t){this.l=t},i.prototype.h=function(t){if(null!==this.l&&null!==this.l._){var i=this.l._,n=this.l,s=function(s){t.beginPath();for(var h=i.to-1;h>=i.from;--h){var r=n.M[h];t.moveTo(r.m,r.p),t.arc(r.m,r.p,s,0,2*Math.PI)}t.fill()};t.fillStyle=n.g,s(n.k+2),t.fillStyle=n.N,s(n.k)}},i}(y);var N,x,S,D,C={from:0,to:1},T=function(){function t(t,i){this.S=new g,this.D=[],this.C=[],this.T=!0,this.A=t,this.L=i,this.S.i(this.D)}return t.prototype.B=function(t){var i=this,n=this.A.V();n.length!==this.D.length&&(this.C=n.map((function(){return{M:[{m:0,p:0,F:0,P:0}],N:"",g:i.A.O().layout.backgroundColor,k:0,_:null}})),this.D=this.C.map((function(t){var i=new k;return i.v(t),i})),this.S.i(this.D)),this.T=!0},t.prototype.I=function(t,i,n){return this.T&&(this.R(),this.T=!1),this.S},t.prototype.R=function(){var t=this,i=this.A.V(),n=this.L.W(),s=this.A.j();i.forEach((function(i,h){var r=t.C[h],e=i.U(n);if(null!==e){ +try{ + var u=f(i.q()); + r.N=i.K().Y(n).H,r.g=t.A.O().layout.backgroundColor,r.k=e.k,r.M[0].P=e.P,r.M[0].p=i.X().$(e.P,u.Z),r.M[0].F=n,r.M[0].m=s.J(n),r._=C +}catch(err){ + console.log('TODO: debug error!!: %s',err.message); +} + +}else r._=null}))},t}(),E=function(){function t(t){this.G=t}return t.prototype.s=function(t,i,h,r){if(null!==this.G){var e=this.G.it.tt,u=this.G.nt.tt;if(e||u){t.save();var o=Math.round(this.G.m*i),a=Math.round(this.G.p*i),f=Math.ceil(this.G.st*i),l=Math.ceil(this.G.ht*i);t.lineCap="butt",e&&o>=0&&(t.lineWidth=Math.floor(this.G.it.rt*i),t.strokeStyle=this.G.it.et,t.fillStyle=this.G.it.et,n(t,this.G.it.ut),function(t,i,n,s){t.beginPath();var h=t.lineWidth%2?.5:0;t.moveTo(i+h,n),t.lineTo(i+h,s),t.stroke()}(t,o,0,l)),u&&a>=0&&(t.lineWidth=Math.floor(this.G.nt.rt*i),t.strokeStyle=this.G.nt.et,t.fillStyle=this.G.nt.et,n(t,this.G.nt.ut),s(t,a,0,f)),t.restore()}}},t}(),A=function(){function t(t){this.T=!0,this.ot={it:{rt:1,ut:0,et:"",tt:!1},nt:{rt:1,ut:0,et:"",tt:!1},st:0,ht:0,m:0,p:0},this.at=new E(this.ot),this.ft=t}return t.prototype.B=function(){this.T=!0},t.prototype.I=function(t,i){return this.T&&this.R(),this.at},t.prototype.R=function(){var t=this.ft.tt(),i=f(this.ft.lt()),n=i.ct().O().crosshair,s=this.ot;s.nt.tt=t&&this.ft.vt(i),s.it.tt=t&&this.ft._t(),s.nt.rt=n.horzLine.width,s.nt.ut=n.horzLine.style,s.nt.et=n.horzLine.color,s.it.rt=n.vertLine.width,s.it.ut=n.vertLine.style,s.it.et=n.vertLine.color,s.st=i.dt(),s.ht=i.wt(),s.m=this.ft.Mt(),s.p=this.ft.bt()},t}(),L={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function B(t){return function(t,i,n){return w(i)||in?n:Math.round(i)}(0,t,255)}function V(t){return function(t,i,n){return w(i)||in?n:Math.round(1e4*i)/1e4}(0,t,1)}function z(t){(t=t.toLowerCase())in L&&(t=L[t]);var i,n,s=(i=t,null!==(n=S.re.exec(i))?S.parse(n):null);if(null!==s)return s;var h=function(t){var i=x.re.exec(t);return null!==i?x.parse(i):null}(t);if(null!==h)return h;var r=function(t){var i=N.re.exec(t);return null!==i?N.parse(i):null}(t);if(null!==r)return r;var e=function(t){var i=D.re.exec(t);return null!==i?D.parse(i):null}(t);return null!==e?[e[0],e[1],e[2]]:null}function F(t){var i=z(t);if(null!==i)return i;throw new Error("Passed color string "+t+" does not match any of the known color representations")}function P(t,i){if(i<0||i>255)throw new Error("invalid threshold value, valid values are [0, 255]");return function(t){return.199*t[0]+.687*t[1]+.114*t[2]}(t)>=i?"white":"black"}function O(t){return function(t){return 0===t.indexOf("#")}(t)?t:(n=F(t),s=1,"rgba("+(i=[n[0],n[1],n[2],V(s)])[0]+", "+i[1]+", "+i[2]+", "+i[3]+")");var i,n,s}function I(t){return"black"===P(F(t),160)?"white":"black"}function R(t,i,n,s,h,r){t.fillRect(i,n,r,h),t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+h-r,s-2*r,r),t.fillRect(i+s-r,n,r,h)}function W(t,i,n){t.save(),t.scale(i,i),n(),t.restore()}function j(t,i,n,s,h,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,n,s,h),t.restore()}!function(t){t.re=/^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])$/,t.parse=function(t){return[B(parseInt(t[1]+t[1],16)),B(parseInt(t[2]+t[2],16)),B(parseInt(t[3]+t[3],16))]}}(N||(N={})),function(t){t.re=/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,t.parse=function(t){return[B(parseInt(t[1],16)),B(parseInt(t[2],16)),B(parseInt(t[3],16))]}}(x||(x={})),function(t){t.re=/^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/,t.parse=function(t){return[B(parseInt(t[1],10)),B(parseInt(t[2],10)),B(parseInt(t[3],10))]}}(S||(S={})),function(t){t.re=/^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?[\d]{0,10}(?:\.\d+)?)\s*\)$/,t.parse=function(t){return[B(parseInt(t[1],10)),B(parseInt(t[2],10)),B(parseInt(t[3],10)),V(parseFloat(t[4]))]}}(D||(D={}));var U,q=function(){function t(t,i){this.v(t,i)}return t.prototype.v=function(t,i){this.G=t,this.pt=i},t.prototype.s=function(t,i,n,s,h,r){if(this.G.tt){t.font=i.gt;var e=this.G.yt?i.kt:0,u=i.Nt,o=i.xt,a=i.St,f=i.Dt,l=i.Ct,c=this.G.Tt,v=Math.ceil(n.Et(t,c)),_=i.At,d=i.Lt+o+a,w=Math.ceil(.5*d),M=u+v+f+l+e,b=this.pt.Bt;this.pt.Vt&&(b=this.pt.Vt);var m,p,g=(b=Math.round(b))-w,y=g+d,k="right"===h,N=k?s:0,x=Math.ceil(s*r),S=N;if(t.fillStyle=O(this.pt.zt),t.lineWidth=1,t.lineCap="butt",c){k?(m=N-e,p=(S=N-M)+l):(S=N+M,m=N+e,p=N+u+e+f);var D=Math.max(1,Math.floor(r)),C=Math.max(1,Math.floor(u*r)),T=k?x:0,E=Math.round(g*r),A=Math.round(S*r),L=Math.round(b*r)-Math.floor(.5*r),B=L+D+(L-E),V=Math.round(m*r);t.save(),t.beginPath(),t.moveTo(T,E),t.lineTo(A,E),t.lineTo(A,B),t.lineTo(T,B),t.fill(),t.fillStyle=this.G.Ft,t.fillRect(k?x-C:0,E,C,B-E),this.G.yt&&(t.fillStyle=this.pt.et,t.fillRect(T,L,V-T,D)),t.textAlign="left",t.fillStyle=this.pt.et,W(t,r,(function(){t.fillText(c,p,y-a-_)})),t.restore()}}},t.prototype.wt=function(t,i){return this.G.tt?t.Lt+t.xt+t.St:0},t}(),H=function(){function t(t){this.Pt={Bt:0,et:"#FFF",zt:"#000"},this.Ot={Tt:"",tt:!1,yt:!0,Ft:""},this.It={Tt:"",tt:!1,yt:!1,Ft:""},this.T=!0,this.Rt=new(t||q)(this.Ot,this.Pt),this.Wt=new(t||q)(this.It,this.Pt)}return t.prototype.Tt=function(){return this.Ot.Tt},t.prototype.zt=function(){return this.Pt.zt},t.prototype.et=function(){return I(this.zt())},t.prototype.Bt=function(){return this.jt(),this.Pt.Bt},t.prototype.B=function(){this.T=!0},t.prototype.wt=function(t,i){return void 0===i&&(i=!1),Math.max(this.Rt.wt(t,i),this.Wt.wt(t,i))},t.prototype.Ut=function(){return this.Pt.Vt||0},t.prototype.qt=function(t){this.Pt.Vt=t},t.prototype.Ht=function(){return this.jt(),this.Ot.tt||this.It.tt},t.prototype.Yt=function(){return this.jt(),this.Ot.tt},t.prototype.Kt=function(){return this.jt(),this.It.tt},t.prototype.I=function(){return this.jt(),this.Rt.v(this.Ot,this.Pt),this.Wt.v(this.It,this.Pt),this.Rt},t.prototype.$t=function(){return this.jt(),this.Rt.v(this.Ot,this.Pt),this.Wt.v(this.It,this.Pt),this.Wt},t.prototype.jt=function(){this.T&&(this.Xt(this.Ot,this.It,this.Pt),this.T=!1)},t}(),Y=function(t){function i(i,n,s){var h=t.call(this)||this;return h.ft=i,h.Zt=n,h.Jt=s,h}return r(i,t),i.prototype.Xt=function(t,i,n){t.tt=!1;var s=this.ft.O().horzLine;if(s.labelVisible){var h=this.Zt.q();if(this.ft.tt()&&!this.Zt.Gt()&&null!==h){n.zt=s.labelBackgroundColor,n.et=I(s.labelBackgroundColor);var r=this.Jt(this.Zt);n.Bt=r.Bt,t.Tt=this.Zt.Qt(r.P,h),t.tt=!0}}},i}(H),K=/[1-9]/g,$=function(){function t(){this.G=null}return t.prototype.v=function(t){this.G=t},t.prototype.s=function(t,i,n){var s=this;if(null!==this.G&&!1!==this.G.tt&&0!==this.G.Tt.length){t.font=i.gt;var h=Math.round(i.ti.Et(t,this.G.Tt,K));if(!(h<=0)){t.save();var r=i.ii,e=h+2*r,u=e/2,o=this.G.dt,a=this.G.Bt,l=Math.floor(a-u)+.5;l<0?(a+=Math.abs(0-l),l=Math.floor(a-u)+.5):l+e>o&&(a-=Math.abs(o-(l+e)),l=Math.floor(a-u)+.5);var c=l+e,v=0+i.Nt+i.xt+i.Lt+i.St;t.fillStyle=this.G.zt;var _=Math.round(l*n),d=Math.round(0*n),w=Math.round(c*n),M=Math.round(v*n);t.fillRect(_,d,w-_,M-d);var b=Math.round(this.G.Bt*n),m=d,p=Math.round((m+i.Nt+i.kt)*n);t.fillStyle=this.G.et;var g=Math.max(1,Math.floor(n)),y=Math.floor(.5*n);t.fillRect(b-y,m,g,p-m);var k=v-i.At-i.St;t.textAlign="left",t.fillStyle=this.G.et,W(t,n,(function(){t.fillText(f(s.G).Tt,l+r,k)})),t.restore()}}},t}(),X=function(t){function i(i,n,s){var h=t.call(this)||this;return h.T=!0,h.at=new $,h.ot={tt:!1,zt:"#4c525e",et:"white",Tt:"",dt:0,Bt:NaN},h.L=i,h.ni=n,h.Jt=s,h}return r(i,t),i.prototype.B=function(){this.T=!0},i.prototype.I=function(){return this.T&&(this.R(),this.T=!1),this.at.v(this.ot),this.at},i.prototype.R=function(){var t=this.ot;t.tt=!1;var i=this.L.O().vertLine;if(i.labelVisible){var n=this.ni.j();if(!n.Gt()){var s=n.si(this.L.W());t.dt=n.dt();var h=this.Jt();h.F&&(t.Bt=h.Bt,t.Tt=n.hi(f(s)),t.tt=!0,t.zt=i.labelBackgroundColor,t.et=I(i.labelBackgroundColor))}}},i}(function(){function t(){this.ri="",this.ei="#585858",this.ui=0}return t.prototype.Tt=function(){return this.ri},t.prototype.zt=function(){return this.ei},t.prototype.et=function(){return"black"===P(F(this.ei),150)?"white":"black"},t.prototype.Bt=function(){return this.ui},t}()),Z=function(){function t(){this.oi=null,this.ai=0}return t.prototype.fi=function(){return this.ai},t.prototype.li=function(t){this.ai=t},t.prototype.X=function(){return this.oi},t.prototype.ci=function(t){this.oi=t},t.prototype.vi=function(t,i){return[]},t.prototype._i=function(t){return[]},t.prototype.di=function(){return[]},t}();!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet"}(U||(U={}));var J=function(t){function i(i,n){var s=t.call(this)||this;s.wi=null,s.Mi=NaN,s.bi=0,s.mi=!0,s.pi=new Map,s.gi=!1,s.yi=NaN,s.ki=NaN,s.Ni=NaN,s.xi=NaN,s.ni=i,s.Si=n,s.Di=new T(i,s);var h,r;s.Ci=(h=function(){return s.Mi},r=function(){return s.ki},function(t){var i=r(),n=h();if(t===f(s.wi).Ti())return{P:n,Bt:i};var e=f(t.q());return{P:t.Ei(i,e),Bt:i}});var e=function(t,i){return function(){return{F:s.ni.j().si(t()),Bt:i()}}}((function(){return s.bi}),(function(){return s.Mt()}));return s.Ai=new X(s,i,e),s.Li=new A(s),s}return r(i,t),i.prototype.Bi=function(){return this.bi},i.prototype.O=function(){return this.Si},i.prototype.Vi=function(t,i){this.Ni=t,this.xi=i},i.prototype.zi=function(){this.Ni=NaN,this.xi=NaN},i.prototype.Fi=function(){return this.Ni},i.prototype.Pi=function(){return this.xi},i.prototype.Oi=function(t,i,n){this.gi||(this.gi=!0),this.mi=!0,this.Ii(t,i,n)},i.prototype.W=function(){return this.bi},i.prototype.Mt=function(){return this.yi},i.prototype.bt=function(){return this.ki},i.prototype.tt=function(){return this.mi},i.prototype.Ri=function(){this.mi=!1,this.Wi(),this.Mi=NaN,this.yi=NaN,this.ki=NaN,this.wi=null,this.zi()},i.prototype._i=function(t){return null!==this.wi?[this.Li,this.Di]:[]},i.prototype.vt=function(t){return t===this.wi&&this.Si.horzLine.visible},i.prototype._t=function(){return this.Si.vertLine.visible},i.prototype.vi=function(t,i){this.mi&&this.wi===t||this.pi.clear();var n=[];return this.wi===t&&n.push(this.ji(this.pi,i,this.Ci)),n},i.prototype.di=function(){return this.mi?[this.Ai]:[]},i.prototype.lt=function(){return this.wi},i.prototype.Ui=function(){this.pi.forEach((function(t){return t.B()})),this.Ai.B(),this.Di.B()},i.prototype.qi=function(t){return t&&!t.Ti().Gt()?t.Ti():null},i.prototype.Ii=function(t,i,n){this.Hi(t,i,n)&&this.Ui()},i.prototype.Hi=function(t,i,n){var s=this.yi,h=this.ki,r=this.Mi,e=this.bi,u=this.wi,o=this.qi(n);this.bi=t,this.yi=isNaN(t)?NaN:this.ni.j().J(t),this.wi=n;var a=null!==o?o.q():null;return null!==o&&null!==a?(this.Mi=i,this.ki=o.$(i,a)):(this.Mi=NaN,this.ki=NaN),s!==this.yi||h!==this.ki||e!==this.bi||r!==this.Mi||u!==this.wi},i.prototype.Wi=function(){var t=this.ni.V().map((function(t){return t.Ki().Yi()})).filter(m),i=0===t.length?null:Math.max.apply(Math,t);this.bi=null!==i?i:NaN},i.prototype.ji=function(t,i,n){var s=t.get(i);return void 0===s&&(s=new Y(this,i,n),t.set(i,s)),s},i}(Z),G=".",Q="'";function tt(t,i){if(!v(t))return"n/a";if(!_(i))throw new TypeError("invalid length");if(i<0||i>16)throw new TypeError("invalid length");if(0===i)return t.toString();return("0000000000000000"+t.toString()).slice(-i)}var it=function(){function t(t,i,n,s){if(i||(i=1),v(t)&&_(t)||(t=100),t<0)throw new TypeError("invalid base");this.Zt=t,this.$i=i,this.Xi=s,n&&void 0!==s&&s>0&&2!==s&&4!==s&&8!==s||(this.Zi=n,this.Ji())}return t.prototype.Gi=function(t){var i=t<0?"−":"";return t=Math.abs(t),this.Zi?i+this.Qi(t):i+this.tn(t)},t.prototype.Ji=function(){if(this.in=0,this.Zt>0&&this.$i>0){var t=this.Zt;for(this.Zi&&this.Xi&&(t/=this.Xi);t>1;)t/=10,this.in++}},t.prototype.tn=function(t){var i;i=this.Zi?Math.pow(10,this.in||0):this.Zt/this.$i;var n=Math.floor(t),s="",h=void 0!==this.in?this.in:NaN;if(i>1){var r=+(Math.round(t*i)-n*i).toFixed(this.in);r>=i&&(r-=i,n+=1),s=G+tt(+r.toFixed(this.in)*this.$i,h)}else n=Math.round(n*i)/i,h>0&&(s=G+tt(0,h));return n.toFixed(0)+s},t.prototype.Qi=function(t){var i=this.Zt/this.$i,n=Math.floor(t),s=Math.round(t*i)-n*i;if(s===i&&(s=0,n+=1),!this.in)throw new Error("_fractionalLength is not calculated");var h="";if(this.Xi){var r=s%this.Xi,e=tt(s=(s-r)/this.Xi,this.in),u=2===this.Xi?["0","5"][r]:8===this.Xi?["0","1","2","3","4","5","6","7"][r]:["0","2","5","7"][r];h=e+Q+u}else h=tt(s*this.$i,this.in);return n.toString()+Q+h},t}(),nt=function(t){function i(i){return void 0===i&&(i=100),t.call(this,i)||this}return r(i,t),i.prototype.Gi=function(i){return t.prototype.Gi.call(this,i)+"%"},i}(it),st=function(){function t(){this.nn=[]}return t.prototype.sn=function(t,i,n){var s={hn:t,rn:i,en:!0===n};this.nn.push(s)},t.prototype.un=function(t){var i=this.nn.findIndex((function(i){return t===i.hn}));i>-1&&this.nn.splice(i,1)},t.prototype.on=function(t){this.nn=this.nn.filter((function(i){return i.rn===t}))},t.prototype.an=function(t,i){var n=u(this.nn);this.nn=this.nn.filter((function(t){return!t.en})),n.forEach((function(n){return n.hn(t,i)}))},t.prototype.fn=function(){return this.nn.length>0},t.prototype.ln=function(){this.nn=[]},t}(),ht=function(){function t(t,i){this.cn=t,this.vn=i}return t.prototype._n=function(t){return null!==t&&(this.cn===t.cn&&this.vn===t.vn)},t.prototype.dn=function(){return new t(this.cn,this.vn)},t.prototype.wn=function(){return this.cn},t.prototype.Mn=function(t){this.cn=t},t.prototype.bn=function(){return this.vn},t.prototype.mn=function(t){this.vn=t},t.prototype.pn=function(){return this.vn-this.cn},t.prototype.Gt=function(){return this.vn===this.cn||Number.isNaN(this.vn)||Number.isNaN(this.cn)},t.prototype.gn=function(i){return null===i?this:new t(Math.min(this.wn(),i.wn()),Math.max(this.bn(),i.bn()))},t.prototype.yn=function(t,i){this.cn=Math.min(this.cn,t),this.vn=Math.max(this.vn,i)},t.prototype.kn=function(t,i){this.cn=t,this.vn=i},t.prototype.Nn=function(t){if(v(t)&&0!==this.vn-this.cn){var i=.5*(this.vn+this.cn),n=this.vn-i,s=this.cn-i;n*=t,s*=t,this.vn=i+n,this.cn=i+s}},t.prototype.xn=function(t){v(t)&&(this.vn+=t,this.cn+=t)},t.prototype.Sn=function(t){return t.wn()>this.cn&&t.bn()1;i/=10)if(i%10!=0)return!1;return!0}(this.Tn))this.An=[2,2.5,2];else{this.An=[];for(var n=this.Tn;1!==n;){if(n%2==0)this.An.push(2),n/=2;else{if(n%5!=0)throw new Error("unexpected base");this.An.push(2),this.An.push(2.5),n/=5}if(this.An.length>100)throw new Error("something wrong with base")}}}return t.prototype.Ln=function(t,i,n){for(var s,h,r,e=0===this.Tn?0:1/this.Tn,u=Math.pow(10,Math.max(0,Math.ceil(ut(t-i)))),o=0,a=this.En[0];;){var f=et(u,e,1e-9)&&u>e+1e-9,l=et(u,n*a,1e-9),c=et(u,1,1e-9);if(!(f&&l&&c))break;u/=a,a=this.En[++o%this.En.length]}if(u<=e+1e-9&&(u=e),u=Math.max(1,u),this.An.length>0&&(s=u,h=1,r=1e-9,Math.abs(s-h)e+1e-9;)u/=a,a=this.An[++o%this.An.length];return u},t}(),mt=function(){function t(t,i,n,s){this.Bn=[],this.Zt=t,this.Tn=i,this.Vn=n,this.zn=s}return t.prototype.Fn=function(t){if(t<0)throw new Error("base < 0");this.Tn=t},t.prototype.Ln=function(t,i){if(t=a?1:-1,v=null,_=0,d=o-(l+=l<0?f:0);d>a;d-=f){var w=this.zn(d,i,!0);null!==v&&Math.abs(w-v)u||(_1)throw new Error("Invalid top margin - expect value between 0 and 1, given="+i);if(n<0||n>1||i+n>1)throw new Error("Invalid bottom margin - expect value between 0 and 1, given="+n);if(i+n>1)throw new Error("Invalid margins - sum of margins must be less than 1, given="+(i+n));this.ks(),this.us=null}},t.prototype.Ns=function(){return this.ls},t.prototype.xs=function(){return this.Si.autoScale},t.prototype.Un=function(){return 1===this.Si.mode},t.prototype.Ss=function(){return 2===this.Si.mode},t.prototype.Ds=function(){return 3===this.Si.mode},t.prototype.ys=function(){return{Cs:this.Si.autoScale,Ts:this.Si.invertScale,ys:this.Si.mode}},t.prototype.gs=function(t){var i=this.ys(),n=null;void 0!==t.Cs&&(this.Si.autoScale=t.Cs),void 0!==t.ys&&(this.Si.mode=t.ys,2!==t.ys&&3!==t.ys||(this.Si.autoScale=!0),this.Jn.Gn=!1),1===i.ys&&t.ys!==i.ys&&(!function(t){if(null===t)return!1;var i=dt(t.wn()),n=dt(t.bn());return isFinite(i)&&isFinite(n)}(this.$n)?this.Si.autoScale=!0:null!==(n=function(t){if(null===t)return null;var i=dt(t.wn()),n=dt(t.bn());return new ht(i,n)}(this.$n))&&this.Es(n)),1===t.ys&&t.ys!==i.ys&&null!==(n=wt(this.$n))&&this.Es(n);var s=i.ys!==this.Si.mode;s&&(2===i.ys||this.Ss())&&this.ps(),s&&(3===i.ys||this.Ds())&&this.ps(),void 0!==t.Ts&&i.Ts!==t.Ts&&(this.Si.invertScale=t.Ts,this.As()),this.hs.an(i,this.ys())},t.prototype.Ls=function(){return this.hs},t.prototype.Lt=function(){return this.vs.fontSize},t.prototype.wt=function(){return this.Hn},t.prototype.Bs=function(t){this.Hn!==t&&(this.Hn=t,this.ks(),this.us=null)},t.prototype.Vs=function(){if(this.Yn)return this.Yn;var t=this.wt()-this.zs()-this.Fs();return this.Yn=t,t},t.prototype.Ps=function(){return this.Kn},t.prototype.Os=function(){return this.Is(),this.$n},t.prototype.Rs=function(){return this.Zn},t.prototype.Es=function(t,i,n){var s=this.$n;(i||null===s&&null!==t||null!==s&&!s._n(t))&&(this.us=null,this.$n=t,n||this.Zn.an(s,t))},t.prototype.Gt=function(){return this.Is(),0===this.Hn||!this.$n||this.$n.Gt()},t.prototype.Ws=function(t){return this.Ts()?t:this.wt()-1-t},t.prototype.$=function(t,i){return this.Ss()?t=ft(t,i):this.Ds()&&(t=ct(t,i)),this.Ms(t,i)},t.prototype.js=function(t,i,n){this.Is();for(var s=this.Fs(),h=f(this.Os()),r=h.wn(),e=h.bn(),u=this.Vs()-1,o=this.Ts(),a=u/(e-r),l=void 0===n?0:n.from,c=void 0===n?t.length:n.to,v=this.Us(),_=l;_= left"),this.jh=t,this.Uh=i}return t.prototype.ph=function(){return this.jh},t.prototype.gh=function(){return this.Uh},t.prototype.qh=function(){return this.Uh-this.jh+1},t.prototype.Hh=function(t){return this.jh<=t&&t<=this.Uh},t.prototype._n=function(t){return this.jh===t.ph()&&this.Uh===t.gh()},t}();function Vt(t,i){return null===t||null===i?t===i:t._n(i)}function zt(t,i){return t.Bi-i.Bi}var Ft,Pt=function(){function t(){this.Yh=1/0,this.Kh=-1/0,this.$h=new Map,this.Xh=[],this.Zh=new st,this.Fh=null,this.Jh=NaN}return t.prototype.Gh=function(){this.$h.clear(),this.Xh=[],this.Yh=1/0,this.Kh=-1/0,this.Fh=null,this.Zh.an()},t.prototype.gn=function(t){for(var i=this.Xh,n={},s=0,h=t;se&&(this.Yh=e),this.Kh2;){if(1e3*a(this.$h.get(i)).F.timestamp===t)return i;if(1e3*a(this.$h.get(n)).F.timestamp===t)return n;var s=Math.round((i+n)/2);1e3*a(this.$h.get(s)).F.timestamp>t?n=s:i=s}return i},t.prototype.sr=function(t,i){var n=Math.ceil(i/t);if(this.Jh===n&&this.Fh)return this.Fh;this.Jh=n;for(var s=[],h=this.Xh.length;h--;)if(this.Xh[h]){var r=s;s=[];for(var e=r.length,u=0,o=a(this.Xh[h]),f=o.length,l=1/0,c=-1/0,v=0;v=n&&d-c>=n&&(s.push(_),c=d)}for(;u=this.Kh&&this.Kh--,this.Khthis.hr.length){s=e-this.hr.length;for(var u=r;uthis.hr[this.hr.length-1].timestamp)return i?this.hr.length-1:null;for(var n=0;n=i[n])return n;var s=0,h=i[s];if(ts+1;){var r=s+n>>1,e=i[r];if(e.timestamp>t.timestamp)n=r;else{if(!(e.timestamp=1,o=u?t:s+(t-s)*e;n.Ir(o),u||setTimeout(r,20)};r()},t.prototype.B=function(t,i,n){if(this.Nr=!0,i.length>0){var s=this.pr.er();this.pr.gn(t,i),this.Lr<0&&this.pr.er()===s+1&&(this.Lr-=1)}this.gr.gn(n),this.Jr()},t.prototype.Me=function(){return this.xr},t.prototype.be=function(){return this.Sr},t.prototype.me=function(){return this.Dr},t.prototype.Gr=function(){return this.mr||0},t.prototype.pe=function(t){var i=t.qh();this.Xr(this.br/i),this.Lr=t.gh()-this.Gr(),this.Jr(),this.Nr=!0,this.ni.ne(),this.ni.se()},t.prototype.ge=function(){var t=this.pr.ur(),i=this.pr.Yi();null!==t&&null!==i&&this.pe(new Bt(t,i+this.Si.rightOffset))},t.prototype.ye=function(t){var i=new Bt(t.from,t.to);this.pe(i)},t.prototype.hi=function(t){return void 0!==this._s.timeFormatter?this._s.timeFormatter(t.businessDay||t.timestamp):this.ke.Gi(new Date(1e3*t.timestamp))},t.prototype.Ne=function(t){return(this.br+1-t)/this.Br},t.prototype.ie=function(t){var i=this.Ne(t),n=this.Gr()+this.Lr-i;return Math.round(1e6*n)/1e6},t.prototype.Xr=function(t){var i=this.Br;this.Br=t,this.Zr(),i!==this.Br&&(this.Nr=!0,this.xe())},t.prototype.Wr=function(){if(this.Nr)if(this.Nr=!1,this.Gt())this.Se(It.Mr());else{var t=this.Gr(),i=this.br/this.Br,n=this.Lr+t,s=new Bt(n-i+1,n);this.Se(new It(s))}},t.prototype.Zr=function(){if(this.Br<.5&&(this.Br=.5,this.Nr=!0),0!==this.br){var t=.5*this.br;this.Br>t&&(this.Br=t,this.Nr=!0)}},t.prototype.Jr=function(){var t=this.De();this.Lr>t&&(this.Lr=t,this.Nr=!0);var i=this.Ce();null!==i&&this.Lr=1e-15&&t<1?t.toFixed(this.su).replace(/\.?0+$/,""):String(t)).replace(/(\.[1-9]*)0+$/,(function(t,i){return i}))},t}();function Jt(t,i,n,s){if(0!==i.length){var h=i[s.from].m,r=i[s.from].p;t.moveTo(h,r);for(var e=s.from+1;ethis.l._.from&&(t.lineTo(this.l.M[this.l._.to-1].m,this.l.ru),t.lineTo(this.l.M[this.l._.from].m,this.l.ru)),t.closePath();var i=t.createLinearGradient(0,0,0,this.l.ru);i.addColorStop(0,this.l.uu),i.addColorStop(1,this.l.ou),t.fillStyle=i,t.fill()}},i}(y),Qt=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.l=null,i}return r(i,t),i.prototype.v=function(t){this.l=t},i.prototype.h=function(t){null!==this.l&&0!==this.l.M.length&&null!==this.l._&&(t.lineCap="square",t.lineWidth=this.l.rt,n(t,this.l.ut),t.strokeStyle=this.l.N,t.lineJoin="miter",t.beginPath(),Jt(t,this.l.M,this.l.eu,this.l._),t.stroke())},i}(y);function ti(t,i,n,s,h){void 0===s&&(s=0),void 0===h&&(h=t.length);for(var r=h-s;0>1,u=s+e;n(t[u],i)?(s=u+1,r-=e+1):r=e}return s}function ii(t,i,n,s,h){void 0===s&&(s=0),void 0===h&&(h=t.length);for(var r=h-s;0>1,u=s+e;n(i,t[u])?r=e:(s=u+1,r-=e+1)}return s}function ni(t,i){return t.F0&&r=s&&(u=r-1),e>0&&e=2)Math.floor(i)%2!=this.Cu%2&&this.Cu--;this.Tu=this.G.Eu?Math.min(this.Cu,Math.floor(i)):this.Cu;for(var h=null,r=this.G._.from;rc+_-1&&(M=(b=c+_-1)-f+1),t.fillRect(w,M,a-w,b-M+1)}var m=o+d,p=Math.max(c,Math.round(e.$s*i)-u),g=p+f-1;g>c+_-1&&(p=(g=c+_-1)-f+1),t.fillRect(l+1,p,m-l,g-p+1)}}}},t}(),ai=function(t){function i(i,n){return t.call(this,i,n,!1)||this}return r(i,t),i.prototype.gu=function(t,i,n){i.Qr(this.lu,p(this.cu)),t.qs(this.lu,n,p(this.cu))},i.prototype.Lu=function(t,i,n){return{F:t,open:i.Z[0],high:i.Z[1],low:i.Z[2],close:i.Z[3],m:NaN,Hs:NaN,Ys:NaN,Ks:NaN,$s:NaN}},i.prototype.Mu=function(){var t=this,i=[],n=this.vu.K();this.vu.Ki().Nu((function(s,h){var r=t.xu(s,h,n);return i.push(r),!1})),this.lu=i},i}(ri),fi=function(t){function i(i,n){var s=t.call(this,i,n)||this;return s.at=new oi,s}return r(i,t),i.prototype.I=function(t,i){this.wu();var n=this.vu.O(),s={Ki:this.lu,he:this._u.j().he(),Au:n.openVisible,Eu:n.thinBars,_:this.cu};return this.at.v(s),this.at},i.prototype.xu=function(t,i,n){return e(e({},this.Lu(t,i,n)),{et:n.Y(t).H})},i}(ai),li=function(){function t(){this.G=null,this.Cu=0}return t.prototype.v=function(t){this.G=t},t.prototype.s=function(t,i,n,s){if(null!==this.G&&0!==this.G.Ki.length&&null!==this.G._){if(this.Cu=function(t,i){var n=Math.floor(.8*t*i),s=Math.floor(t*i),h=Math.min(n,s-1);return Math.max(1,h)}(this.G.he,i),this.Cu>=2)Math.floor(i)%2!=this.Cu%2&&this.Cu--;var h=this.G.Ki;this.G.Bu&&this.Vu(t,h,this.G._,i),this.G.zu&&this.Fu(t,h,this.G._,this.G.he,i);var r=this.Pu(i);(!this.G.zu||this.Cu>2*r)&&this.Ou(t,h,this.G._,i)}},t.prototype.Vu=function(t,i,n,s){if(null!==this.G){var h="",r=Math.min(Math.floor(s),Math.floor(this.G.he*s));r=Math.min(r,this.Cu);for(var e=Math.floor(.5*r),u=n.from;u2*e?R(t,a,l,f-a+1,c-l+1,e):t.fillRect(a,l,f-a+1,c-l+1)}},t.prototype.Ou=function(t,i,n,s){if(null!==this.G)for(var h="",r=this.Pu(s),e=n.from;ea)){if(u.et!==h){var c=u.et;t.fillStyle=c,h=c}t.fillRect(f,o,l-f+1,a-o+1)}}},t}(),ci=function(t){function i(i,n){var s=t.call(this,i,n)||this;return s.at=new li,s}return r(i,t),i.prototype.I=function(t,i){this.wu();var n=this.vu.O(),s={Ki:this.lu,he:this._u.j().he(),Bu:n.wickVisible,zu:n.borderVisible,_:this.cu};return this.at.v(s),this.at},i.prototype.xu=function(t,i,n){var s=n.Y(t);return e(e({},this.Lu(t,i,n)),{et:s.H,Iu:s.Ru,Ft:s.Wu})},i}(ai),vi=function(){function t(){this.G=null,this.ju=[]}return t.prototype.v=function(t){this.G=t,this.ju=[]},t.prototype.s=function(t,i,n,s){if(null!==this.G&&0!==this.G.M.length&&null!==this.G._){this.ju.length||this.Uu(i);for(var h=Math.round(this.G.qu*i),r=Math.max(1,Math.floor(i)),e=this.G._.from;ef.Yu?f.gh=a.ph-i-1:a.ph=f.gh+i+1))}var l=Math.ceil(this.G.he*t);for(s=this.G._.from;s0&&l<4)for(s=this.G._.from;sl&&(a.Hu>a.Yu?a.gh-=1:a.ph+=1)}}else this.ju=[]},t}();function _i(t){return{M:[],he:t,qu:NaN,_:null}}var di=function(t){function i(i,n){var s=t.call(this,i,n,!1)||this;return s.S=new g,s.Ku=_i(0),s.$u=new Int32Array(0),s.at=new vi,s}return r(i,t),i.prototype.I=function(t,i){return this.wu(),this.S},i.prototype.Mu=function(){var t=this,i=this._u.j().he(),n=this.vu.Xu();this.Ku=_i(i);var s=this.vu.ku();this.$u=new Int32Array(this.vu.Ki().er());var h=0,r=0,e=0,u=this.vu.O().color;this.vu.Ki().Nu((function(i,o){var a=s(o.Z),f=o.Z[4],l=function(t,i,n){return{F:t,P:i,m:NaN,p:NaN,et:n}}(i,a,null!=f?n.Zu(f):u),c=null==f?0:f+1;return++rMath.ceil(this.G.wt*i))){var u=Math.ceil(this.G.dt*i);t.lineCap="butt",t.strokeStyle=this.G.et,t.lineWidth=Math.floor(this.G.rt*i),n(t,this.G.ut),s(t,e,0,u)}}},t}(),yi=function(){function t(t){this.uo={dt:0,wt:0,p:0,et:"rgba(0, 0, 0, 0)",rt:1,ut:0,tt:!1},this.oo=new gi,this.T=!0,this.vu=t,this._u=t.ct(),this.oo.v(this.uo)}return t.prototype.B=function(){this.T=!0},t.prototype.I=function(t,i){return this.T&&(this.ao(t,i),this.T=!1),this.oo},t}(),ki=function(t){function i(i){return t.call(this,i)||this}return r(i,t),i.prototype.ao=function(t,i){this.uo.tt=!1;var n=this.vu.X(),s=n.ys().ys;if(2===s||3===s){var h=this.vu.O();if(h.baseLineVisible){var r=this.vu.q();null!==r&&(this.uo.tt=!0,this.uo.p=n.$(r.Z,r.Z),this.uo.dt=i,this.uo.wt=t,this.uo.et=h.baseLineColor,this.uo.rt=h.baseLineWidth,this.uo.ut=h.baseLineStyle)}}},i}(yi);function Ni(t,i){return at(Math.min(Math.max(t,12),30)*i)}function xi(t,i){switch(t){case"arrowDown":case"arrowUp":return Ni(i,1);case"circle":return Ni(i,.8);case"square":return Ni(i,.7)}}function Si(t){return ot(Ni(t,1))}function Di(t){return Math.max(Ni(t,.1),3)}function Ci(t,i,n,s,h){var r=xi("square",n),e=(r-1)/2,u=t-e,o=i-e;return s>=u&&s<=u+r&&h>=o&&h<=o+r}function Ti(t,i,n,s,h){var r=(xi("arrowUp",h)-1)/2,e=(at(h/2)-1)/2;i.beginPath(),t?(i.moveTo(n-r,s),i.lineTo(n,s-r),i.lineTo(n+r,s),i.lineTo(n+e,s),i.lineTo(n+e,s+r),i.lineTo(n-e,s+r),i.lineTo(n-e,s)):(i.moveTo(n-r,s),i.lineTo(n,s+r),i.lineTo(n+r,s),i.lineTo(n+e,s),i.lineTo(n+e,s-r),i.lineTo(n-e,s-r),i.lineTo(n-e,s)),i.fill()}function Ei(t,i,n,s,h,r){return Ci(i,n,s,h,r)}var Ai=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.G=null,i.Qu=new bi,i.Le=-1,i.Be="",i.fo="",i}return r(i,t),i.prototype.v=function(t){this.G=t},i.prototype.io=function(t,i){this.Le===t&&this.Be===i||(this.Le=t,this.Be=i,this.fo=Ut(t,i),this.Qu.Gh())},i.prototype.lo=function(t,i){if(null===this.G||null===this.G._)return null;for(var n=this.G._.from;n=t&&h<=t+n&&r>=i-e&&r<=i+e}(t.m,t.Tt.p,t.Tt.dt,t.Tt.wt,i,n))||function(t,i,n){if(0===t.er)return!1;switch(t.wo){case"arrowDown":case"arrowUp":return Ei(0,t.m,t.p,t.er,i,n);case"circle":return function(t,i,n,s,h){var r=2+xi("circle",n)/2,e=t-s,u=i-h;return Math.sqrt(e*e+u*u)<=r}(t.m,t.p,t.er,i,n);case"square":return Ci(t.m,t.p,t.er,i,n)}t.wo}(t,i,n)}function Vi(t,i,n,s,h,r,e,u,o){var a=v(n)?n:n.close,f=v(n)?n:n.high,l=v(n)?n:n.low,c=v(i.size)?Math.max(i.size,0):1,_=Si(u.he())*c,d=_/2;switch(t.er=_,i.position){case"inBar":return t.p=e.$(a,o),void(void 0!==t.Tt&&(t.Tt.p=t.p+d+r+.6*h));case"aboveBar":return t.p=e.$(f,o)-d-s.Mo,void 0!==t.Tt&&(t.Tt.p=t.p-d-.6*h,s.Mo+=1.2*h),void(s.Mo+=_+r);case"belowBar":return t.p=e.$(l,o)+d+s.bo,void 0!==t.Tt&&(t.Tt.p=t.p+d+r+.6*h,s.bo+=1.2*h),void(s.bo+=_+r)}i.position}var zi=function(){function t(t,i){this.T=!0,this.mo=!0,this.po=!0,this.yo=null,this.at=new Ai,this.ko=t,this.ni=i,this.G={M:[],_:null}}return t.prototype.B=function(t){this.T=!0,this.po=!0,"data"===t&&(this.mo=!0)},t.prototype.I=function(t,i,n){this.T&&this.wu();var s=this.ni.O().layout;return this.at.io(s.fontSize,s.fontFamily),this.at.v(this.G),this.at},t.prototype.No=function(){if(this.po){if(this.ko.xo().length>0){var t=this.ni.j().he(),i=Di(t),n=1.5*Si(t)+2*i;this.yo={above:n,below:n}}else this.yo=null;this.po=!1}return this.yo},t.prototype.wu=function(){var t=this.ko.X(),i=this.ni.j(),n=this.ko.xo();this.mo&&(this.G.M=n.map((function(t){return{F:t.time,m:0,p:0,er:0,wo:t.shape,et:t.color,vo:t.vo,_o:t.id,Tt:void 0}})),this.mo=!1);var s=this.ni.O().layout;this.G._=null;var h=i.Rr();if(null!==h){var r=this.ko.q();if(null!==r&&0!==this.G.M.length){var e=NaN,u=Di(i.he()),o={Mo:u,bo:u};this.G._=hi(this.G.M,h,!0);for(var a=this.G._.from;a0&&(l.Tt={do:f.text,p:0,dt:0,wt:0});var c=this.ko.So(f.time);null!==c&&Vi(l,f,c,o,s.fontSize,u,t,i,r.Z)}this.T=!1}}},t}(),Fi=function(t){function i(i){return t.call(this,i)||this}return r(i,t),i.prototype.ao=function(t,i){var n=this.uo;n.tt=!1;var s=this.vu.O();if(s.priceLineVisible){var h=this.vu.Do(void 0,0===s.priceLineSource);h.Co||(n.tt=!0,n.p=h.Bt,n.et=this.vu.To(h.et),n.dt=i,n.wt=t,n.rt=s.priceLineWidth,n.ut=s.priceLineStyle)}},i}(yi),Pi=function(t){function i(i,n){var s=t.call(this)||this;return s.ft=i,s.G=n,s}return r(i,t),i.prototype.Eo=function(){return this.ft},i.prototype.Ao=function(){return this.G},i.prototype.Xt=function(t,i,n){t.tt=!1,i.tt=!1;var s=this.ft.O(),h=s.lastValueVisible,r=""!==this.ft.Lo(),e=0===s.seriesLastValueMode,u=this.ft.Do(void 0,!1);u.Co||(h&&(t.Tt=this.Bo(u,h,e),t.tt=0!==t.Tt.length),(r||e)&&(i.Tt=this.Vo(u,h,r,e),i.tt=i.Tt.length>0),n.zt=this.ft.To(u.et),n.et=I(n.zt),n.Bt=u.Bt,i.Ft=this.ft.ct().O().layout.backgroundColor,t.Ft=n.zt)},i.prototype.Vo=function(t,i,n,s){var h="",r=this.ft.Lo();return n&&0!==r.length&&(h+=r+" "),i&&s&&(h+=this.ft.X().Ss()?t.zo:t.Fo),h.trim()},i.prototype.Bo=function(t,i,n){return i?n?this.ft.X().Ss()?t.Fo:t.zo:t.Tt:""},i}(H),Oi=function(){function t(t,i){this.$n=t,this.Po=i||null}return t.prototype.Os=function(){return this.$n},t.prototype.yh=function(){return this.Po},t.prototype.Dn=function(){return null===this.$n?null:{priceRange:this.$n.Dn(),margins:this.Po||void 0}},t.Cn=function(i){return null===i?null:new t(ht.Cn(i.priceRange),i.margins)},t}(),Ii=function(t){function i(i,n){var s=t.call(this,i)||this;return s.Oo=n,s}return r(i,t),i.prototype.ao=function(t,i){var n=this.uo;n.tt=!1;var s=this.Oo.Io();if(null!==s){var h=this.Oo.O();n.tt=!0,n.p=s,n.et=h.color,n.dt=i,n.wt=t,n.rt=h.lineWidth,n.ut=h.lineStyle}},i}(yi),Ri=function(t){function i(i,n){var s=t.call(this)||this;return s.ko=i,s.Oo=n,s}return r(i,t),i.prototype.Xt=function(t,i,n){t.tt=!1,i.tt=!1;var s=this.Oo.O();if(s.axisLabelVisible){var h=this.Oo.Io();null!==h&&(t.Tt=this.ko.X().lh(s.price),t.tt=!0,n.zt=s.color,n.et=I(s.color),n.Bt=h)}},i}(H),Wi=function(){function t(t,i){this.ko=t,this.Si=i,this.Ro=new Ii(t,this),this.no=new Ri(t,this)}return t.prototype.ms=function(t){c(this.Si,t),this.B(),this.ko.ct().se()},t.prototype.O=function(){return this.Si},t.prototype.Wo=function(){return this.Ro},t.prototype.jo=function(){return this.no},t.prototype.B=function(){this.Ro.B(),this.no.B()},t.prototype.Io=function(){var t=this.ko,i=t.X();if(t.ct().j().Gt()||i.Gt())return null;var n=t.q();return null===n?null:i.$(this.Si.price,n.Z)},t}(),ji=function(){function t(){this.Uo=0,this.qo=new Map,this.Ho=new Map}return t.prototype.Zu=function(t){return a(this.Ho.get(t))},t.prototype.Yo=function(t){var i=this.qo.get(t);return void 0===i&&(i=this.Uo++,this.qo.set(t,i),this.Ho.set(i,t)),i},t.prototype.rr=function(){this.Uo=0,this.qo.clear(),this.Ho.clear()},t.prototype.er=function(){return this.Ho.size},t}(),Ui=function(t){function i(i){var n=t.call(this)||this;return n.ni=i,n}return r(i,t),i.prototype.ct=function(){return this.ni},i.prototype.Mh=function(){return 0},i.prototype.mh=function(t,i){return null},i}(Z),qi={H:"",Wu:"",Ru:""},Hi=function(){function t(t){this.ko=t}return t.prototype.Y=function(t,i){var n=this.ko.Ko(),s=this.ko.O();switch(n){case"Line":return this.$o(s);case"Area":return this.Xo(s);case"Bar":return this.Zo(s,t,i);case"Candlestick":return this.Jo(s,t,i);case"Histogram":return this.Go(s,t,i)}throw new Error("Unknown chart style")},t.prototype.Zo=function(t,i,n){var s=e({},qi),h=t.upColor,r=t.downColor,u=h,o=r,a=f(this.Qo(i,n)),c=l(a.Z[0])<=l(a.Z[3]);return s.H=c?h:r,s.Wu=c?u:o,s},t.prototype.Jo=function(t,i,n){var s=e({},qi),h=t.upColor,r=t.downColor,u=t.borderUpColor,o=t.borderDownColor,a=t.wickUpColor,c=t.wickDownColor,v=f(this.Qo(i,n)),_=l(v.Z[0])<=l(v.Z[3]);return s.H=_?h:r,s.Wu=_?u:o,s.Ru=_?a:c,s},t.prototype.Xo=function(t){return e(e({},qi),{H:t.lineColor})},t.prototype.$o=function(t){return e(e({},qi),{H:t.color})},t.prototype.Go=function(t,i,n){var s=e({},qi),h=f(this.Qo(i,n)).Z[4];if(null!=h){var r=f(this.ko.Xu());s.H=r.Zu(h)}else s.H=t.color;return s},t.prototype.ta=function(){return this.ko.Ki()},t.prototype.Qo=function(t,i){return void 0!==i?i.Z:this.ta().ar(t)},t}(),Yi=function(){function t(t,i){void 0===t&&(t=null),void 0===i&&(i=null),this.hr=[],this.ia=0,this.na=0,this.sa=!1,this.ha=new Map,this.ra=new Map,this.ea=new Map,this.ua=t||new Map,this.oa=i}return t.prototype.rr=function(){this.hr=[],this.ia=0,this.na=0,this.sa=!1,this.ha.clear(),this.ra.clear(),this.ea.clear()},t.prototype.aa=function(){return this.er()>0?this.hr[this.ia]:null},t.prototype.fa=function(){return this.er()>0?this.hr[this.na-1]:null},t.prototype.ur=function(){return this.er()>0?this.la(this.ia):null},t.prototype.Yi=function(){return this.er()>0?this.la(this.na-1):null},t.prototype.er=function(){return this.na-this.ia},t.prototype.Gt=function(){return 0===this.er()},t.prototype.Hh=function(t){return null!==this.ca(t,0)},t.prototype.ar=function(t){return this.va(t)},t.prototype._a=function(t,i,n){if(this.sa)return!1;var s={Bi:t,Z:n,F:i},h=this.ca(t,0);return this.ra.clear(),this.ea.clear(),null===h?(this.hr.splice(this.da(t),0,s),this.ia=0,this.na=this.hr.length,!0):(this.hr[h]=s,!1)},t.prototype.va=function(t,i,n){void 0===i&&(i=0);var s=this.ca(t,i,n);if(null===s)return null;var h=this.wa(s);return{Bi:this.la(s),F:h.F,Z:h.Z}},t.prototype.Nu=function(t){for(var i=this.ia;ithis.hr[this.hr.length-1].Bi?this.ya(t):1===t.length&&t[0].Bi===this.hr[this.hr.length-1].Bi?(this.ka(t[0]),t[0]):this.Na(t)},t.prototype.xa=function(t){if(this.sa)return null;var i=this.ca(t,1);if(null===i)return null;var n=this.hr.splice(i);return this.na=this.hr.length,this.ha.clear(),this.ra.clear(),this.ea.clear(),n.length>0?n[0]:null},t.prototype.la=function(t){return this.hr[t].Bi},t.prototype.wa=function(t){return this.hr[t]},t.prototype.ca=function(t,i,n){var s=this.Sa(t);if(null===s&&0!==i)switch(i){case-1:return this.Da(t,n);case 1:return this.Ca(t,n);default:throw new TypeError("Unknown search mode")}if(!n||null===s||0===i)return s;switch(i){case-1:return this.Ta(s);case 1:return this.Ea(s);default:throw new TypeError("Unknown search mode")}},t.prototype.Ea=function(t){for(var i=f(this.oa);t=this.ia&&i(this.wa(t).Z);)t-=1;return tthis.ia&&(n-=1);var s=n!==this.na&&this.la(n)t}),this.ia,this.na)},t.prototype.Aa=function(t,i,n){var s=null,h=this.ua.get(n.La);if(void 0===h)throw new Error('Plot "'+n.La+'" is not registered');for(var r=t;rs.Va&&(s.Va=e)))}return s},t.prototype.za=function(t){var i=Math.floor(t.Bi/30);this.ha.forEach((function(t){return t.delete(i)}))},t.prototype.ga=function(t){return o(!this.sa,"collection should not be readonly"),o(0!==t.length,"plotRows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=t.concat(this.hr),this.ia=0,this.na=this.hr.length,t[0]},t.prototype.ya=function(t){return o(!this.sa,"collection should not be readonly"),o(0!==t.length,"plotRows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=this.hr.concat(t),this.ia=0,this.na=this.hr.length,t[0]},t.prototype.ka=function(t){o(!this.Gt(),"plot list should not be empty"),o(this.hr[this.na-1].Bi===t.Bi,"last row index should match new row index"),this.za(t),this.ra.delete(t.Bi),this.ea.delete(t.Bi),this.hr[this.na-1]=t},t.prototype.Na=function(t){return o(0!==t.length,"plot rows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=function(t,i){var n=function(t,i){var n=t.length,s=i.length,h=n+s,r=0,e=0;for(;ri[e].Bi?e++:(r++,e++,h--);return h}(t,i),s=new Array(n),h=0,r=0,e=t.length,u=i.length,o=0;for(;hi[r].Bi?(s[o]=i[r],r++):(s[o]=i[r],h++,r++),o++;for(;h=0&&r.th(t),null!==r&&(r.Qs(),this.Bf(r)),this.es=null},t.prototype.ro=function(t){return t===this.gf?"left":t===this.kf?"right":"overlay"},t.prototype.Vf=function(){return this.gf},t.prototype.zf=function(){return this.kf},t.prototype.Ff=function(t,i){t.sh(i)},t.prototype.Pf=function(t,i){t.hh(i),this.Ui()},t.prototype.Of=function(t){t.rh()},t.prototype.If=function(t,i){t.eh(i)},t.prototype.Rf=function(t,i){t.uh(i),this.Ui()},t.prototype.Wf=function(t){t.oh()},t.prototype.jf=function(t,i){t.gs({Cs:i}),this.pf.Gt()?t.Es(null):this.Bf(t)},t.prototype.Ui=function(){this.rs.forEach((function(t){t.Ui()}))},t.prototype.Ti=function(){var t=null;return this.ni.O().rightPriceScale.visible&&0!==this.kf.Zs().length?t=this.kf:this.ni.O().leftPriceScale.visible&&0!==this.gf.Zs().length?t=this.gf:0!==this.rs.length&&(t=this.rs[0].X()),null===t&&(t=this.kf),t},t.prototype.Bf=function(t){null!==t&&t.xs()&&this.Uf(t)},t.prototype.qf=function(t){var i=this.pf.Rr();t.gs({Cs:!0}),null!==i&&t.wh(i),this.Ui()},t.prototype.Hf=function(){this.Uf(this.gf),this.Uf(this.kf)},t.prototype.Yf=function(){var t=this;this.Bf(this.gf),this.Bf(this.kf),this.rs.forEach((function(i){t.wf(i)&&t.Bf(i.X())})),this.Ui(),this.ni.se()},t.prototype.Gt=function(){return 0===this.rs.length},t.prototype.Js=function(){return null===this.es&&(this.es=pt(this.rs)),this.es},t.prototype.Kf=function(){return this.mf},t.prototype.Uf=function(t){var i=t.dh();if(i&&i.length>0&&!this.pf.Gt()){var n=this.pf.Rr();null!==n&&t.wh(n)}t.Ui()},t.prototype.Af=function(){var t=this.Js();if(0===t.length)return{Ef:0,$f:0};for(var i=0,n=0,s=0;sn&&(n=h))}return{Ef:i,$f:n}},t.prototype.Lf=function(t,i,n){var s=this.Sf(i);if(null===s&&(s=this.yf(i,this.ni.O().overlayPriceScales)),this.rs.push(t),!Ht(i)){var h=this.Mf.get(i)||[];h.push(t),this.Mf.set(i,h)}s.Gs(t),t.ci(s),t.li(n),this.Bf(s),this.es=null},t.prototype.Nf=function(t,i,n){i.ys!==n.ys&&this.Uf(t)},t.prototype.yf=function(t,i){var n=e({tt:!0,Cs:!0},b(i)),s=new Nt(t,n,this.ni.O().layout,this.ni.O().localization);return s.Bs(this.wt()),s},t}(),nn=function(t){function i(i){var n=t.call(this)||this;return n.Xf=new Map,n.G=i,n}return r(i,t),i.prototype.h=function(t){},i.prototype.o=function(t){if(this.G.tt){t.save();for(var i=0,n=0,s=this.G.Zf;nthis.G.dt?o.ve=this.G.dt/h:o.ve=1,i+=o.Gf*o.ve}}var r=0;switch(this.G.Qf){case"top":r=0;break;case"center":r=Math.max((this.G.wt-i)/2,0);break;case"bottom":r=Math.max(this.G.wt-i,0)}t.fillStyle=this.G.et;for(var e=0,u=this.G.Zf;e20&&(this.rl=null,i=!0),this.pf.uh(t),this.ne(),this.hf(),this.se(),i},t.prototype.Fl=function(){this.pf.oh(),this.se(),this.rl=null},t.prototype.Il=function(){this.pf.fe(),this.ne(),this.hf(),this.se()},t.prototype.qe=function(t){this.al&&this.al(t),this.ll.qe(),this.se()},t.prototype.V=function(){return this.hl},t.prototype.Rl=function(t,i,n){this.L.Vi(t,i);var s=NaN,h=this.pf.te(t),r=this.pf.Rr();null!==r&&(h=Math.min(Math.max(r.ph(),h),r.gh()));var e=n.Ti(),u=e.q();null!==u&&(s=e.Ei(i,u)),s=this.cl.df(s,h,n),this.L.Oi(h,s,n),this.Wl(),this.ol.an(this.L.W(),{x:t,y:i})},t.prototype.jl=function(){this.Dl().Ri(),this.Wl(),this.ol.an(null,null)},t.prototype.hf=function(){var t=this.L.lt();if(null!==t){var i=this.L.Fi(),n=this.L.Pi();this.Rl(i,n,t)}},t.prototype.Ul=function(t,i,n,s){s&&this.pf.Gh(),this.pf.B(t,i,n)},t.prototype.ql=function(t){var i=this.hl.reduce((function(t,i){var n=i.Ki();if(n.Gt())return t;var s=f(n.Yi());return void 0===t?s:Math.max(s,t)}),void 0);if(void 0!==i){var n=this.pf,s=n.Gr(),h=n.Rr();if(null!==h){var r=h.Hh(s);if(void 0!==t&&t>0&&!r){var e=i-s;n.Ir(n.ee()-e)}}n.ce(i)}this.hf(),this.ne(),this.se()},t.prototype.sf=function(t){null!==t&&t.Yf()},t.prototype.ho=function(t){var i=this.sl.find((function(i){return i.Js().includes(t)}));return void 0===i?null:i},t.prototype.ne=function(){this.sl.forEach((function(t){return t.Yf()})),this.kl()},t.prototype.ln=function(){this.sl.forEach((function(t){return t.ln()})),this.sl.length=0,this.Si.localization.priceFormatter=void 0,this.Si.localization.timeFormatter=void 0},t.prototype.Hl=function(){return this.fl},t.prototype.eo=function(){return this.fl.O()},t.prototype.Df=function(){return this.ul},t.prototype.Yl=function(t,i){var n=this.sl[0],s=this.Kl(i,t,n);return this.hl.push(s),1===this.hl.length?this.dl():this.se(),s},t.prototype.$l=function(t){var i=this.ho(t),n=this.hl.indexOf(t);o(-1!==n,"Series not found"),this.hl.splice(n,1),f(i).th(t),t.ln&&t.ln()},t.prototype.Ga=function(t,i){var n=f(this.ho(t));n.th(t);var s=this.yl(i);if(null===s){var h=t.fi();n.Gs(t,i,h)}else{h=s.lt===n?t.fi():void 0;s.lt.Gs(t,i,h)}},t.prototype.ge=function(){var t=new Xt(2);t.tu(),this.wl(t)},t.prototype.Xl=function(t){var i=new Xt(2);i.ye(t),this.wl(i)},t.prototype.Zl=function(){return this.Si.rightPriceScale.visible?"right":"left"},t.prototype.El=function(t,i){var n=new Xt(i);if(null!==t){var s=this.sl.indexOf(t);n.Xe(s,{Ze:i})}return n},t.prototype.Ml=function(t,i){return void 0===i&&(i=2),this.El(this.ho(t),i)},t.prototype.wl=function(t){this.al&&this.al(t),this.ll.qe()},t.prototype.Wl=function(){this.wl(new Xt(1))},t.prototype.Kl=function(t,i,n){var s=new Gi(this,t,i),h=void 0!==t.priceScaleId?t.priceScaleId:this.Zl();return n.Gs(s,h),Ht(h)||s.ms(t),s},t}(),en={allowDownsampling:!0};var un=function(){function t(t,i){var n=this;this._resolutionMediaQueryList=null,this._resolutionListener=function(t){return n._onResolutionChanged()},this._canvasConfiguredListeners=[],this.canvas=t,this._canvasSize={width:this.canvas.clientWidth,height:this.canvas.clientHeight},this._options=i,this._configureCanvas(),this._installResolutionListener()}return t.prototype.destroy=function(){this._canvasConfiguredListeners.length=0,this._uninstallResolutionListener(),this.canvas=null},Object.defineProperty(t.prototype,"canvasSize",{get:function(){return{width:this._canvasSize.width,height:this._canvasSize.height}},enumerable:!0,configurable:!0}),t.prototype.resizeCanvas=function(t){this._canvasSize={width:t.width,height:t.height},this._configureCanvas()},Object.defineProperty(t.prototype,"pixelRatio",{get:function(){var t=this.canvas.ownerDocument.defaultView;if(null==t)throw new Error("No window is associated with the canvas");return t.devicePixelRatio>1||this._options.allowDownsampling?t.devicePixelRatio:1},enumerable:!0,configurable:!0}),t.prototype.subscribeCanvasConfigured=function(t){this._canvasConfiguredListeners.push(t)},t.prototype.unsubscribeCanvasConfigured=function(t){this._canvasConfiguredListeners=this._canvasConfiguredListeners.filter((function(i){return i!=t}))},t.prototype._configureCanvas=function(){var t=this.pixelRatio;this.canvas.style.width=this._canvasSize.width+"px",this.canvas.style.height=this._canvasSize.height+"px",this.canvas.width=this._canvasSize.width*t,this.canvas.height=this._canvasSize.height*t,this._emitCanvasConfigured()},t.prototype._emitCanvasConfigured=function(){var t=this;this._canvasConfiguredListeners.forEach((function(i){return i.call(t)}))},t.prototype._installResolutionListener=function(){if(null!==this._resolutionMediaQueryList)throw new Error("Resolution listener is already installed");var t=this.canvas.ownerDocument.defaultView;if(null==t)throw new Error("No window is associated with the canvas");var i=t.devicePixelRatio;this._resolutionMediaQueryList=t.matchMedia("all and (resolution: "+i+"dppx)"),this._resolutionMediaQueryList.addListener(this._resolutionListener)},t.prototype._uninstallResolutionListener=function(){null!==this._resolutionMediaQueryList&&(this._resolutionMediaQueryList.removeListener(this._resolutionListener),this._resolutionMediaQueryList=null)},t.prototype._reinstallResolutionListener=function(){this._uninstallResolutionListener(),this._installResolutionListener()},t.prototype._onResolutionChanged=function(){this._configureCanvas(),this._reinstallResolutionListener()},t}(),on=function(){function t(t,i){this.st=t,this.ht=i}return t.prototype._n=function(t){return this.st===t.st&&this.ht===t.ht},t}();function an(t){return t.ownerDocument&&t.ownerDocument.defaultView&&t.ownerDocument.defaultView.devicePixelRatio||1}function fn(t){var i=f(t.getContext("2d"));return i.setTransform(1,0,0,1,0,0),i}function ln(t){var i=t.createElement("canvas");return function(t){t.style.userSelect="none",t.style.webkitUserSelect="none",t.style.msUserSelect="none",t.style.MozUserSelect="none",t.style.webkitTapHighlightColor="transparent"}(i),i}function cn(t,i){var n=ln(t),s=an(n);return n.style.width=i.st+"px",n.style.height=i.ht+"px",n.width=i.st*s,n.height=i.ht*s,n}function vn(t,i){var n=ln(f(t.ownerDocument));t.appendChild(n);var s=function(t,i){return void 0===i&&(i=en),new un(t,i)}(n);return s.resizeCanvas({width:i.st,height:i.ht}),s}var _n=!!navigator.maxTouchPoints||!!navigator.msMaxTouchPoints||"ontouchstart"in window||Boolean(window.DocumentTouch&&document instanceof window.DocumentTouch),dn="onorientationchange"in window&&_n,wn=/Android/i.test(navigator.userAgent),Mn=/iPhone|iPad|iPod|AppleWebKit.+Mobile/i.test(navigator.userAgent),bn=wn||Mn,mn=function(){function t(t,i,n){this.Jl=0,this.Gl=null,this.Ql=null,this.tc=!1,this.ic=null,this.nc=!1,this.sc=!1,this.hc=null,this.rc=null,this.ec=null,this.uc=null,this.oc=0,this.ac=!1,this.fc=!1,this.lc=!1,this.cc=t,this.vc=i,this.Si=n,this._c()}return t.prototype.ln=function(){null!==this.hc&&(this.hc(),this.hc=null),null!==this.rc&&(this.rc(),this.rc=null),null!==this.ec&&(this.ec(),this.ec=null),this.dc(),this.wc()},t.prototype.Mc=function(t){var i=this;this.rc&&this.rc();var n=this.bc.bind(this);this.rc=function(){i.cc.removeEventListener("mousemove",n)},this.cc.addEventListener("mousemove",n),yn(t)&&this.bc(t);var s=this.mc(t);this.pc(s,this.vc.gc)},t.prototype.wc=function(){null!==this.Gl&&clearTimeout(this.Gl),this.Jl=0,this.Gl=null},t.prototype.bc=function(t){if(!this.lc||yn(t)){var i=this.mc(t);this.pc(i,this.vc.yc)}},t.prototype.kc=function(t){if((!("button"in t)||0===t.button)&&null===this.uc){var i=yn(t);if(!this.fc||!i){this.ac=!0;var n=this.mc(t),s=l(this.ic),h=Math.abs(s.m-n.Nc),r=Math.abs(s.p-n.xc),e=h+r>5;if(e||!i){if(e&&!this.nc&&i){var u=.5*h,o=r>=u&&!this.Si.Sc,a=u>r&&!this.Si.Dc;o||a||(this.fc=!0)}e&&(this.nc=!0,this.sc=!0,i&&this.dc()),this.fc||(this.pc(n,this.vc.Cc),i&&kn(t))}}}},t.prototype.Tc=function(t){if(!("button"in t)||0===t.button){var i=this.mc(t);this.dc(),this.ic=null,this.lc=!1,this.ec&&(this.ec(),this.ec=null),yn(t)&&this.Ec(t),this.pc(i,this.vc.Ac),++this.Jl,this.Gl&&this.Jl>1?(this.pc(i,this.vc.Lc),this.wc()):this.sc||this.pc(i,this.vc.Bc),yn(t)&&(kn(t),this.Ec(t),0===t.touches.length&&(this.tc=!1))}},t.prototype.dc=function(){null!==this.Ql&&(clearTimeout(this.Ql),this.Ql=null)},t.prototype.Vc=function(t){if(!("button"in t)||0===t.button){var i=this.mc(t);this.sc=!1,this.nc=!1,this.fc=!1,yn(t)&&this.Mc(t),this.ic={m:i.Nc,p:i.xc},this.ec&&(this.ec(),this.ec=null);var n=this.kc.bind(this),s=this.Tc.bind(this),h=this.cc.ownerDocument.documentElement;this.ec=function(){h.removeEventListener("touchmove",n),h.removeEventListener("touchend",s),h.removeEventListener("mousemove",n),h.removeEventListener("mouseup",s)},h.addEventListener("touchmove",n,{passive:!1}),h.addEventListener("touchend",s,{passive:!1}),this.dc(),yn(t)&&1===t.touches.length?this.Ql=setTimeout(this.zc.bind(this,t),240):(h.addEventListener("mousemove",n),h.addEventListener("mouseup",s)),this.lc=!0,this.pc(i,this.vc.Fc),this.Gl||(this.Jl=0,this.Gl=setTimeout(this.wc.bind(this),500))}},t.prototype._c=function(){var t=this;this.cc.addEventListener("mouseenter",this.Mc.bind(this)),this.cc.addEventListener("touchcancel",this.dc.bind(this));var i=this.cc.ownerDocument,n=function(i){t.vc.Pc&&(i.target&&t.cc.contains(i.target)||t.vc.Pc())};this.hc=function(){i.removeEventListener("mousedown",n),i.removeEventListener("touchstart",n)},i.addEventListener("mousedown",n),i.addEventListener("touchstart",n,{passive:!0}),this.cc.addEventListener("mouseleave",this.Ec.bind(this)),this.cc.addEventListener("touchstart",this.Vc.bind(this),{passive:!0}),dn||this.cc.addEventListener("mousedown",this.Vc.bind(this)),this.Oc(),this.cc.addEventListener("touchmove",(function(){}),{passive:!1})},t.prototype.Oc=function(){var t=this;void 0===this.vc.Ic&&void 0===this.vc.Rc&&void 0===this.vc.Wc||(this.cc.addEventListener("touchstart",(function(i){return t.jc(i.touches)}),{passive:!0}),this.cc.addEventListener("touchmove",(function(i){if(2===i.touches.length&&null!==t.uc&&void 0!==t.vc.Rc){var n=gn(i.touches[0],i.touches[1])/t.oc;t.vc.Rc(t.uc,n),kn(i)}}),{passive:!1}),this.cc.addEventListener("touchend",(function(i){t.jc(i.touches)})))},t.prototype.jc=function(t){1===t.length&&(this.ac=!1),2!==t.length||this.ac||this.tc?this.Uc():this.qc(t)},t.prototype.qc=function(t){var i=pn(this.cc);this.uc={m:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,p:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.oc=gn(t[0],t[1]),void 0!==this.vc.Ic&&this.vc.Ic(),this.dc()},t.prototype.Uc=function(){null!==this.uc&&(this.uc=null,void 0!==this.vc.Wc&&this.vc.Wc())},t.prototype.Ec=function(t){this.rc&&this.rc();var i=this.mc(t);this.pc(i,this.vc.Hc)},t.prototype.zc=function(t){var i=this.mc(t);this.pc(i,this.vc.Yc),this.sc=!0,this.tc=!0},t.prototype.pc=function(t,i){i&&i.call(this.vc,t)},t.prototype.mc=function(t){var i;i="touches"in t&&t.touches.length?t.touches[0]:"changedTouches"in t&&t.changedTouches.length?t.changedTouches[0]:t;var n=pn(this.cc);return{Kc:i.clientX,$c:i.clientY,Nc:i.pageX,xc:i.pageY,Xc:i.screenX,Zc:i.screenY,Jc:i.clientX-n.left,Gc:i.clientY-n.top,Qc:t.ctrlKey,tv:t.altKey,iv:t.shiftKey,nv:t.metaKey,sv:t.type.startsWith("mouse")?"mouse":"touch",hv:i.target,rv:t.view}},t}();function pn(t){return t.getBoundingClientRect()||{left:0,top:0}}function gn(t,i){var n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function yn(t){return Boolean(t.touches)}function kn(t){t.cancelable&&t.preventDefault()}var Nn=function(){function t(t,i,n,s){if(this.ev=0,this.uv=0,this.ov=0,this.av=0,this.fv=0,this.lv=0,this.cv=0,this.vv=t,this._v=t.dv()[i],this.wv=t.dv()[n],this.Mv=document.createElement("tr"),this.Mv.style.height="1px",this.bv=document.createElement("td"),this.bv.style.padding="0",this.bv.setAttribute("colspan","3"),this.mv(),this.Mv.appendChild(this.bv),s)this.pv=null,this.gv=null;else{this.pv=document.createElement("div"),this.pv.style.position="absolute",this.pv.style.zIndex="50",this.pv.style.height="5px",this.pv.style.width="100%",this.pv.style.backgroundColor="rgba(255, 255, 255, 0.02)",this.pv.style.cursor="ns-resize",this.bv.appendChild(this.pv);var h={Fc:this.yv.bind(this),Cc:this.kv.bind(this),Ac:this.Nv.bind(this)};this.gv=new mn(this.pv,h,{Sc:!1,Dc:!0})}}return t.prototype.ln=function(){null!==this.gv&&this.gv.ln()},t.prototype.xv=function(){return this.Mv},t.prototype.Sv=function(){return new on(this._v.Sv().st,1)},t.prototype.Dv=function(){var t=this.Sv(),i=cn(document,t),n=fn(i);return n.fillStyle=this.vv.O().timeScale.borderColor,n.fillRect(0,0,t.st,t.ht),i},t.prototype.B=function(){this.mv()},t.prototype.mv=function(){this.bv.style.background=this.vv.O().timeScale.borderColor},t.prototype.yv=function(t){this.ev=t.xc,this.uv=0,this.ov=this._v.Sv().ht+this.wv.Sv().ht,this.av=this._v.Cf()+this.wv.Cf(),this.fv=30,this.lv=this.ov-this.fv,this.cv=this.av/this.ov},t.prototype.kv=function(t){this.uv=t.xc-this.ev;var i=this._v.Sv().ht,n=rt(i+this.uv,this.fv,this.lv)*this.cv,s=this.av-n;this._v.Tf(n),this.wv.Tf(s),this.vv.ct().dl(),this._v.Sv().ht!==i&&(this.ev=t.xc)},t.prototype.Nv=function(t){this.ev=0,this.uv=0,this.ov=0,this.av=0,this.fv=0,this.lv=0,this.cv=0},t}(),xn=function(){function t(t,i,n,s){this.Qu=new bi(200),this.Le=0,this.Cv="",this.fo="",this.Tv=[],this.Ev=new Map,this.Le=t,this.Cv=i,this.fo=Ut(t,n,s)}return t.prototype.ln=function(){delete this.Qu,this.Tv=[],this.Ev.clear()},t.prototype.Av=function(t,i,n,s,h){var r=this.Lv(t,i);if("left"!==h){var e=an(t.canvas);n-=Math.floor(r.Bv*e)}s-=Math.floor(r.wt/2),t.drawImage(r.Vv,n,s,r.dt,r.wt)},t.prototype.Lv=function(t,i){var n,s=this;if(this.Ev.has(i))n=a(this.Ev.get(i));else{if(this.Tv.length>=200){var h=a(this.Tv.shift());this.Ev.delete(h)}var r=an(t.canvas),e=Math.ceil(this.Le/4.5),u=Math.round(this.Le/10),o=Math.ceil(this.Qu.Et(t,i)),f=ot(Math.round(o+2*e)),l=ot(this.Le+2*e),c=cn(document,new on(f,l));n={Tt:i,Bv:Math.round(Math.max(1,o)),dt:Math.ceil(f*r),wt:Math.ceil(l*r),Vv:c},0!==o&&(this.Tv.push(n.Tt),this.Ev.set(n.Tt,n)),W(t=fn(n.Vv),r,(function(){t.font=s.fo,t.fillStyle=s.Cv,t.fillText(i,0,l-e-u)}))}return n},t}(),Sn=function(){function t(t,i,n,s){var h=this;this.Zt=null,this.zv=null,this.Fv=null,this.Pv=!1,this.Ov=!0,this.Iv=new bi(50),this.Rv=new xn(11,"#000"),this.Cv=null,this.fo=null,this.Wv=0,this.jv=function(){h.Uv(h.fl.O()),h.wi.qv().ct().se()},this.Hv=function(){h.wi.qv().ct().se()},this.wi=t,this.Si=i,this.fl=n,this.Yv="left"===s,this.bv=document.createElement("div"),this.bv.style.height="100%",this.bv.style.overflow="hidden",this.bv.style.width="25px",this.bv.style.left="0",this.bv.style.position="relative",this.Kv=vn(this.bv,new on(16,16)),this.Kv.subscribeCanvasConfigured(this.jv);var r=this.Kv.canvas;r.style.position="absolute",r.style.zIndex="1",r.style.left="0",r.style.top="0",this.$v=vn(this.bv,new on(16,16)),this.$v.subscribeCanvasConfigured(this.Hv);var e=this.$v.canvas;e.style.position="absolute",e.style.zIndex="2",e.style.left="0",e.style.top="0";var u={Fc:this.yv.bind(this),Cc:this.kv.bind(this),Pc:this.Xv.bind(this),Ac:this.Nv.bind(this),Lc:this.Zv.bind(this),gc:this.Jv.bind(this),Hc:this.Gv.bind(this)};this.gv=new mn(this.$v.canvas,u,{Sc:!1,Dc:!0})}return t.prototype.ln=function(){this.gv.ln(),this.$v.unsubscribeCanvasConfigured(this.Hv),this.$v.destroy(),this.Kv.unsubscribeCanvasConfigured(this.jv),this.Kv.destroy(),null!==this.Zt&&(this.Zt.nh().on(this),this.Zt.Ns().on(this)),this.Zt=null,null!==this.Fv&&(clearTimeout(this.Fv),this.Fv=null),this.Rv.ln()},t.prototype.xv=function(){return this.bv},t.prototype.Qv=function(){return this.Si.backgroundColor},t.prototype.N=function(){return f(this.Zt).O().borderColor},t.prototype.t_=function(){return this.Si.textColor},t.prototype.Lt=function(){return this.Si.fontSize},t.prototype.i_=function(){return Ut(this.Lt(),this.Si.fontFamily)},t.prototype.n_=function(){var t=this.fl.O(),i=this.Cv!==t.et,n=this.fo!==t.gt;return(i||n)&&(this.Uv(t),this.Cv=t.et),n&&(this.Iv.Gh(),this.fo=t.gt),t},t.prototype.s_=function(){if(!this.Ht()||null===this.Zt)return 0;var t=34,i=this.n_(),n=fn(this.Kv.canvas),s=this.Zt.qn();n.font=this.i_(),s.length>0&&(t=Math.max(this.Iv.Et(n,s[0].Wn),this.Iv.Et(n,s[s.length-1].Wn)));for(var h=this.h_(),r=h.length;r--;){var e=this.Iv.Et(n,h[r].Tt());e>t&&(t=e)}var u=Math.ceil(i.Nt+i.kt+i.Dt+i.Ct+t);return u+=u%2},t.prototype.r_=function(t){if(t.st<0||t.ht<0)throw new Error("Try to set invalid size to PriceAxisWidget "+JSON.stringify(t));null!==this.zv&&this.zv._n(t)||(this.zv=t,this.Kv.resizeCanvas({width:t.st,height:t.ht}),this.$v.resizeCanvas({width:t.st,height:t.ht}),this.bv.style.width=t.st+"px",this.bv.style.height=t.ht+"px",this.bv.style.minWidth=t.st+"px")},t.prototype.e_=function(){return f(this.zv).st},t.prototype.ci=function(t){this.Zt!==t&&(null!==this.Zt&&(this.Zt.nh().on(this),this.Zt.Ns().on(this)),this.Zt=t,t.nh().sn(this.ss.bind(this),this))},t.prototype.X=function(){return this.Zt},t.prototype.Ht=function(){return this.Ov},t.prototype.u_=function(t){t!==this.Ov&&(this.bv.style.display=t?"table-cell":"none",this.Ov=t)},t.prototype.o_=function(t){var i=this.wi.a_();this.wi.qv().ct().jf(i,f(this.X()),t)},t.prototype.Gh=function(){var t=this.wi.a_();this.wi.qv().ct().qf(t,f(this.X()))},t.prototype.f_=function(t){if(this.Ov&&null!==this.zv){if(1!==t){var i=fn(this.Kv.canvas);this.l_(),this.c_(i,this.Kv.pixelRatio),this.Fu(i,this.Kv.pixelRatio),this.v_(i,this.Kv.pixelRatio),this.__(i,this.Kv.pixelRatio)}var n=fn(this.$v.canvas),s=this.zv.st,h=this.zv.ht;W(n,this.$v.pixelRatio,(function(){n.clearRect(0,0,s,h)})),this.d_(n,this.$v.pixelRatio)}},t.prototype.Dv=function(){return this.Kv.canvas},t.prototype.w_=function(){return this.Yv},t.prototype.yv=function(t){if(null!==this.Zt&&!this.Zt.Gt()&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_();this.Pv=!0,i.Ff(n,this.Zt,t.Gc)}},t.prototype.kv=function(t){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_(),s=this.Zt;i.Pf(n,s,t.Gc)}},t.prototype.Xv=function(){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var t=this.wi.qv().ct(),i=this.wi.a_(),n=this.Zt;this.Pv&&(this.Pv=!1,t.Of(i,n))}},t.prototype.Nv=function(t){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_();this.Pv=!1,i.Of(n,this.Zt)}},t.prototype.Zv=function(t){this.wi.qv().O().handleScale.axisDoubleClickReset&&this.Gh()},t.prototype.Jv=function(t){null!==this.Zt&&(!this.wi.qv().ct().O().handleScale.axisPressedMouseMove.price||this.Zt.Ss()||this.Zt.Ds()||this.M_(1))},t.prototype.Gv=function(t){this.M_(0)},t.prototype.h_=function(){var t=this,i=[],n=null===this.Zt?void 0:this.Zt;return function(s){for(var h=0;h0&&(t=h[0].Bt())}));var u=i.filter((function(i){return i.Bt()<=t})),o=i.filter((function(i){return i.Bt()>t}));if(u.sort((function(t,i){return i.Bt()-t.Bt()})),u.length&&o.length&&o.push(u[0]),o.sort((function(t,i){return t.Bt()-i.Bt()})),i.forEach((function(t){return t.qt(t.Bt())})),this.Zt.O().alignLabels){for(var a=1;a(_=v.Ut())-l&&f.qt(_-l)}for(var c=1;c1&&this.J_(),null!==this.b_&&this.b_.f_(t),null!==this.m_&&this.m_.f_(t),1!==t){var i=fn(this.Kv.canvas);i.save(),this.c_(i,this.G_(),this.Kv.pixelRatio),this.C_&&(this.Q_(i,this.Kv.pixelRatio),this.td(i,this.Kv.pixelRatio),this.nd(i,this.Kv.pixelRatio)),i.restore()}var n=fn(this.$v.canvas);n.clearRect(0,0,Math.ceil(this.zv.st*this.$v.pixelRatio),Math.ceil(this.zv.ht*this.$v.pixelRatio)),this.sd(n,this.$v.pixelRatio)}},t.prototype.hd=function(){return this.b_},t.prototype.rd=function(){return this.m_},t.prototype.G_=function(){return this.T_.O().layout.backgroundColor},t.prototype.E_=function(){null!==this.C_&&this.C_.Kf().on(this),this.C_=null},t.prototype.c_=function(t,i,n){var s=this;W(t,n,(function(){j(t,0,0,s.zv.st,s.zv.ht,i)}))},t.prototype.Q_=function(t,i){for(var n=f(this.C_),s=this.ni().xl()._i(n),h=n.wt(),r=n.dt(),e=0,u=s;ei.Qh?t:i}var An=function(){function t(t){var i=this;this.ld=null,this.vd=null,this.Ee=null,this._d=!1,this.zv=new on(0,0),this.jv=function(){return i.T_.ct().se()},this.Hv=function(){return i.T_.ct().se()},this.T_=t,this.Si=t.O().layout,this.dd=document.createElement("tr"),this.wd=document.createElement("td"),this.wd.style.padding="0",this.Md=document.createElement("td"),this.Md.style.padding="0",this.bv=document.createElement("td"),this.bv.style.height="25px",this.bv.style.padding="0",this.bd=document.createElement("div"),this.bd.style.width="100%",this.bd.style.height="100%",this.bd.style.position="relative",this.bd.style.overflow="hidden",this.bv.appendChild(this.bd),this.Kv=vn(this.bd,new on(16,16)),this.Kv.subscribeCanvasConfigured(this.jv);var n=this.Kv.canvas;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.$v=vn(this.bd,new on(16,16)),this.$v.subscribeCanvasConfigured(this.Hv);var s=this.$v.canvas;s.style.position="absolute",s.style.zIndex="2",s.style.left="0",s.style.top="0",this.dd.appendChild(this.wd),this.dd.appendChild(this.bv),this.dd.appendChild(this.Md),this.md(),this.T_.ct().Df().sn(this.md.bind(this),this),this.gv=new mn(this.$v.canvas,this,{Sc:!0,Dc:!1})}return t.prototype.ln=function(){this.gv.ln(),null!==this.ld&&this.ld.ln(),null!==this.vd&&this.vd.ln(),this.$v.unsubscribeCanvasConfigured(this.Hv),this.$v.destroy(),this.Kv.unsubscribeCanvasConfigured(this.jv),this.Kv.destroy()},t.prototype.xv=function(){return this.dd},t.prototype.pd=function(){return this.ld},t.prototype.gd=function(){return this.vd},t.prototype.Fc=function(t){if(!this._d){this._d=!0;var i=this.T_.ct();!i.j().Gt()&&this.T_.O().handleScale.axisPressedMouseMove.time&&i.Al(t.Jc)}},t.prototype.Pc=function(){var t=this.T_.ct();!t.j().Gt()&&this._d&&(this._d=!1,this.T_.O().handleScale.axisPressedMouseMove.time&&t.Ol())},t.prototype.Cc=function(t){var i=this.T_.ct();!i.j().Gt()&&this.T_.O().handleScale.axisPressedMouseMove.time&&i.Pl(t.Jc)},t.prototype.Ac=function(t){this._d=!1;var i=this.T_.ct();i.j().Gt()&&!this.T_.O().handleScale.axisPressedMouseMove.time||i.Ol()},t.prototype.Lc=function(){this.T_.O().handleScale.axisDoubleClickReset&&this.T_.ct().Il()},t.prototype.gc=function(t){this.T_.ct().O().handleScale.axisPressedMouseMove.time&&this.M_(1)},t.prototype.Hc=function(t){this.M_(0)},t.prototype.Sv=function(){return this.zv},t.prototype.yd=function(t,i,n){this.zv&&this.zv._n(t)||(this.zv=t,this.Kv.resizeCanvas({width:t.st,height:t.ht}),this.$v.resizeCanvas({width:t.st,height:t.ht}),this.bv.style.width=t.st+"px",this.bv.style.height=t.ht+"px"),null!==this.ld&&this.ld.r_(new on(i,t.ht)),null!==this.vd&&this.vd.r_(new on(n,t.ht))},t.prototype.dt=function(){return this.zv.st},t.prototype.wt=function(){return this.zv.ht},t.prototype.kd=function(){var t=this.Nd();return Math.ceil(t.Nt+t.kt+t.Lt+t.xt+t.St)},t.prototype.B=function(){this.T_.ct().j().qn()},t.prototype.Dv=function(){return this.Kv.canvas},t.prototype.f_=function(t){if(0!==t){if(1!==t){var i=fn(this.Kv.canvas);this.c_(i,this.Kv.pixelRatio),this.Fu(i,this.Kv.pixelRatio),this.v_(i,this.Kv.pixelRatio),null!==this.ld&&this.ld.f_(t),null!==this.vd&&this.vd.f_(t)}var n=fn(this.$v.canvas),s=this.$v.pixelRatio;n.clearRect(0,0,Math.ceil(this.zv.st*s),Math.ceil(this.zv.ht*s)),this.xd([this.T_.ct().Dl()],n,s)}},t.prototype.c_=function(t,i){var n=this;W(t,i,(function(){j(t,0,0,n.zv.st,n.zv.ht,n.G_())}))},t.prototype.Fu=function(t,i){if(this.T_.O().timeScale.borderVisible){t.save(),t.fillStyle=this.Sd();var n=Math.max(1,Math.floor(this.Nd().Nt*i));t.fillRect(0,0,Math.ceil(this.zv.st*i),n),t.restore()}},t.prototype.v_=function(t,i){var n=this,s=this.T_.ct().j().qn();if(s&&0!==s.length){var h=s.reduce(En,s[0]).Qh;h>30&&h<40&&(h=30),t.save(),t.strokeStyle=this.Sd();var r=this.Nd(),e=r.Nt+r.kt+r.xt+r.Lt-r.At;t.textAlign="center",t.fillStyle=this.Sd();var u=Math.floor(this.Nd().Nt*i),o=Math.max(1,Math.floor(i)),a=Math.floor(.5*i);if(this.T_.ct().j().O().borderVisible){t.beginPath();for(var f=Math.round(r.kt*i),l=s.length;l--;){var c=Math.round(s[l].Rn*i);t.rect(c-a,u,o,f)}t.fill()}t.fillStyle=this.Ve(),W(t,i,(function(){t.font=n.Dd();for(var i=0,r=s;i=h&&t.fillText(a.Wn,a.Rn,e)}}))}},t.prototype.xd=function(t,i,n){for(var s=this.Nd(),h=0,r=t;h1){var r=new Nn(this,s-1,s,!0);this.Ed.push(r),this.Fd.insertBefore(r.xv(),this.Rd.xv())}this.Fd.insertBefore(h.xv(),this.Rd.xv())}for(s=0;s=0;--h)if(Math.floor(n.getTime()/qn[h].hw)!==Math.floor(s.getTime()/qn[h].hw))return qn[h].Qh}return 20}function Yn(t,i){return t.timestamp0&&h.set(i,t)})),this.fw(h)},t.prototype.$l=function(t){return this.ow(t,[])},t.prototype.lw=function(t,i){$n(i);var n=t.pu().Ki();if(n.er()>0)if(void 0!==f(n.fa()).F.businessDay){if(!Wt(i.time))throw new Error("time must be of type BusinessDay")}else if(!jt(i.time))throw new Error("time must be of type isUTCTimestamp");var s=f(zn([i]))(i.time),h=this.rw.get(s.timestamp)||{Bi:0,aw:new Map,ih:s},r=0===h.aw.size;h.aw.set(t,i);var e=!1;if(r){var u=this.rw.size;this.uw.length>0&&this.uw[this.uw.length-1].timestamp>s.timestamp?(u=ii(this.uw,s,Yn),this.uw.splice(u,0,s),this.cw(u),e=!0):this.uw.push(s),h.Bi=u,this.ew.set(h.Bi,s)}this.rw.set(s.timestamp,h);var o=new Map,l=function(i){var n=a(c.ew.get(i));a(c.rw.get(n.timestamp)).aw.forEach((function(s,h){if(e||h===t){var r=Rn(h.Ko()),u=o.get(h)||{B:[]},a={Bi:i,F:n,Z:r(s,h.Xu())};u.B.push(a),o.set(h,u)}}))},c=this;for(u=h.Bi;u1){var e=Math.ceil(h/(r.length-1)),u=r[0].F.timestamp-e;r[0].Qh=Hn(r[0].F.timestamp,u)}var o={dw:n,ww:this.uw.slice(),Bi:0,qn:r};return this.Mw(),{_w:o}},t.prototype.cw=function(t){for(var i=this.ew.size-1;i>=t;--i){var n=a(this.ew.get(i)),s=i+1;a(this.rw.get(n.timestamp)).Bi=s,this.ew.delete(i),this.ew.set(s,n)}},t.prototype.Mw=function(){var t=this;this.ew.clear(),this.rw.forEach((function(i,n){t.ew.set(i.Bi,i.ih)}))},t.prototype.vw=function(t){for(var i,n=[],s=(null===(i=this.ew.get(t-1))||void 0===i?void 0:i.timestamp)||null,h=t;hh.Bi)return{barsBefore:t.from-r,barsAfter:e-t.to};var u={barsBefore:null===s||s.Bi===r?t.from-r:s.Bi-r,barsAfter:null===h||h.Bi===e?e-t.to:e-h.Bi};return null!==s&&null!==h&&(u.from=s.F.businessDay||s.F.timestamp,u.to=h.F.businessDay||h.F.timestamp),u},t.prototype.setData=function(t){this.mw.yw(this.vu,t)},t.prototype.update=function(t){this.mw.if(this.vu,t)},t.prototype.setMarkers=function(t){var i=t.map((function(t){return e(e({},t),{time:Fn(t.time)})}));this.vu.rf(i)},t.prototype.applyOptions=function(t){var i=Gn(t);this.vu.ms(i)},t.prototype.options=function(){return b(this.vu.O())},t.prototype.priceScale=function(){return this.pw.X(this.vu.X().bs())},t.prototype.createPriceLine=function(t){var i=c(b(Zn),t),n=this.vu.uf(i);return new Jn(n)},t.prototype.removePriceLine=function(t){this.vu.af(t.bw())},t}(),ts=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return r(i,t),i.prototype.applyOptions=function(i){xt(i),t.prototype.applyOptions.call(this,i)},i}(Qn),is={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:"#2B2B43",entireTextOnly:!1,visible:!1,scaleMargins:{bottom:.1,top:.2}};var ns={rightOffset:0,barSpacing:6,fixLeftEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:"#2B2B43",visible:!0,timeVisible:!1,secondsVisible:!0,tickMarkFormatter:function(t,i,n){var s={};switch(i){case 0:s.year="numeric";break;case 1:s.month="short";break;case 2:s.day="numeric";break;case 3:s.hour12=!1,s.hour="2-digit",s.minute="2-digit";break;case 4:s.hour12=!1,s.hour="2-digit",s.minute="2-digit",s.second="2-digit"}var h=void 0===t.businessDay?new Date(1e3*t.timestamp):new Date(Date.UTC(t.businessDay.year,t.businessDay.month-1,t.businessDay.day));return new Date(h.getUTCFullYear(),h.getUTCMonth(),h.getUTCDate(),h.getUTCHours(),h.getUTCMinutes(),h.getUTCSeconds(),h.getUTCMilliseconds()).toLocaleString(n,s)}},ss={width:0,height:0,layout:{backgroundColor:"#FFFFFF",textColor:"#191919",fontSize:11,fontFamily:"'Trebuchet MS', Roboto, Ubuntu, sans-serif"},crosshair:{vertLine:{color:"#758696",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#4c525e"},horzLine:{color:"#758696",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#4c525e"},mode:1},grid:{vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},overlayPriceScales:e({},is),leftPriceScale:e(e({},is),{visible:!1}),rightPriceScale:e(e({},is),{visible:!0}),timeScale:ns,watermark:{color:"rgba(0, 0, 0, 0)",visible:!1,fontSize:48,text:"",horzAlign:"center",vertAlign:"center"},localization:{locale:navigator.language,dateFormat:"dd MMM 'yy"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:!0,mouseWheel:!0,pinch:!0}},hs={upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},rs={upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},es={color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4},us={topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4},os={color:"#26a69a",base:0},as={title:"",lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:"",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:"#B2B5BE",baseLineStyle:0,priceFormat:{type:"price",precision:2,minMove:.01}},fs=function(){function t(t,i){this.vv=t,this.kw=i}return t.prototype.ln=function(){delete this.vv},t.prototype.bs=function(){return this.Zt().bs()},t.prototype.applyOptions=function(t){this.vv.ct().gl(this.kw,t)},t.prototype.options=function(){return this.Zt().O()},t.prototype.width=function(){return Ht(this.kw)?this.vv.Xd("left"===this.kw?"left":"right"):0},t.prototype.Zt=function(){return f(this.vv.ct().yl(this.kw)).X},t}(),ls=function(){function t(t){this.Nw=new st,this.Sr=new st,this.ni=t,this.pf().Me().sn(this.xw.bind(this)),this.pf().be().sn(this.Sw.bind(this))}return t.prototype.getBarSpacing=function(){return this.pf().he()},t.prototype.ln=function(){this.pf().Me().on(this),this.pf().be().on(this),this.Nw.ln(),delete this.ni},t.prototype.scrollPosition=function(){return this.pf().ee()},t.prototype.scrollToPosition=function(t,i){i?this.pf().we(t,1e3):this.pf().Ir(t)},t.prototype.scrollToRealTime=function(){this.pf().de()},t.prototype.getVisibleRange=function(){var t,i,n=this.pf().Ur();return null===n?null:{from:null!==(t=n.from.businessDay)&&void 0!==t?t:n.from.timestamp,to:null!==(i=n.to.businessDay)&&void 0!==i?i:n.to.timestamp}},t.prototype.setVisibleRange=function(t){var i={from:Fn(t.from),to:Fn(t.to)},n=this.pf().Yr(i);this.ni.Xl(n)},t.prototype.getVisibleLogicalRange=function(){var t=this.pf().jr();return null===t?null:{from:t.ph(),to:t.gh()}},t.prototype.setVisibleLogicalRange=function(t){o(t.from<=t.to,"The from index cannot be after the to index."),this.ni.Xl(t)},t.prototype.resetTimeScale=function(){this.ni.Il()},t.prototype.fitContent=function(){this.ni.ge()},t.prototype.timeToCoordinate=function(t){var i=Fn(t),n=this.ni.j(),s=n.Hr().cr(i.timestamp,!1);return null===s?null:n.J(s)},t.prototype.coordinateToTime=function(t){var i,n=this.ni.j(),s=n.te(t),h=n.Hr().ar(s);return null===h?null:null!==(i=h.businessDay)&&void 0!==i?i:h.timestamp},t.prototype.subscribeVisibleTimeRangeChange=function(t){this.Nw.sn(t)},t.prototype.unsubscribeVisibleTimeRangeChange=function(t){this.Nw.un(t)},t.prototype.subscribeVisibleLogicalRangeChange=function(t){this.Sr.sn(t)},t.prototype.unsubscribeVisibleLogicalRangeChange=function(t){this.Sr.un(t)},t.prototype.applyOptions=function(t){this.pf().ms(t)},t.prototype.options=function(){return b(this.pf().O())},t.prototype.pf=function(){return this.ni.j()},t.prototype.xw=function(){this.Nw.fn()&&this.Nw.an(this.getVisibleRange())},t.prototype.Sw=function(){this.Sr.fn()&&this.Sr.an(this.getVisibleLogicalRange())},t}();function cs(t){if(void 0!==t&&"custom"!==t.type){var i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=function(t){if(t>=1)return 0;for(var i=0;i<8;i++){var n=Math.round(t);if(Math.abs(n-t)<1e-8)return i;t*=10}return i}(i.minMove))}}function vs(t){return function(t){if(M(t.handleScale)){var i=t.handleScale;t.handleScale={axisDoubleClickReset:i,axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale&&M(t.handleScale.axisPressedMouseMove)){var n=t.handleScale.axisPressedMouseMove;t.handleScale.axisPressedMouseMove={time:n,price:n}}var s=t.handleScroll;M(s)&&(t.handleScroll={horzTouchDrag:s,vertTouchDrag:s,mouseWheel:s,pressedMouseMove:s})}(t),function(t){if(t.priceScale){t.leftPriceScale=t.leftPriceScale||{},t.rightPriceScale=t.rightPriceScale||{};var i=t.priceScale.position;delete t.priceScale.position,t.leftPriceScale=c(t.leftPriceScale,t.priceScale),t.rightPriceScale=c(t.rightPriceScale,t.priceScale),"left"===i&&(t.leftPriceScale.visible=!0,t.rightPriceScale.visible=!1),"right"===i&&(t.leftPriceScale.visible=!1,t.rightPriceScale.visible=!0),"none"===i&&(t.leftPriceScale.visible=!1,t.rightPriceScale.visible=!1),t.overlayPriceScales=t.overlayPriceScales||{},void 0!==t.priceScale.invertScale&&(t.overlayPriceScales.invertScale=t.priceScale.invertScale),void 0!==t.priceScale.scaleMargins&&(t.overlayPriceScales.scaleMargins=t.priceScale.scaleMargins)}}(t),t}var _s=function(){function t(t,i){var n=this;this.Dw=new Xn,this.Cw=new Map,this.Tw=new Map,this.Ew=new st,this.Aw=new st;var s=void 0===i?b(ss):c(b(ss),vs(i));this.vv=new Ln(t,s),this.vv.K_().sn((function(t){n.Ew.fn()&&n.Ew.an(n.Lw(t()))}),this),this.vv.Cl().sn((function(t){n.Aw.fn()&&n.Aw.an(n.Lw(t()))}),this);var h=this.vv.ct();this.Bw=new ls(h)}return t.prototype.remove=function(){this.vv.K_().on(this),this.vv.Cl().on(this),this.Bw.ln(),this.vv.ln(),delete this.vv,this.Cw.forEach((function(t,i){i.ln()})),this.Cw.clear(),this.Tw.clear(),this.Ew.ln(),this.Aw.ln(),this.Dw.ln(),delete this.Dw},t.prototype.resize=function(t,i,n){this.vv.Wd(t,i,n)},t.prototype.addAreaSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),us,t),n=this.vv.ct().Yl("Area",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addBarSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),rs,t),n=this.vv.ct().Yl("Bar",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addCandlestickSeries=function(t){void 0===t&&(t={}),xt(t),cs(t.priceFormat);var i=c(b(as),hs,t),n=this.vv.ct().Yl("Candlestick",i),s=new ts(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addHistogramSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),os,t),n=this.vv.ct().Yl("Histogram",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addLineSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),es,t),n=this.vv.ct().Yl("Line",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.removeSeries=function(t){var i=t,n=a(this.Cw.get(i)),s=this.Dw.$l(n),h=this.vv.ct();h.$l(n);var r=s._w;h.Ul(r.Bi,r.ww,r.qn,!0),r.dw.forEach((function(t,i){i.if(t.B)})),h.ql(0),this.Cw.delete(i),this.Tw.delete(n)},t.prototype.yw=function(t,i){var n=this.Dw.ow(t,i),s=this.vv.ct(),h=n._w;s.Ul(h.Bi,h.ww,h.qn,!0),h.dw.forEach((function(t,i){i.if(t.B,!0)})),s.ql(0)},t.prototype.if=function(t,i){var n=this.Dw.lw(t,i),s=this.vv.ct(),h=n._w;s.Ul(h.Bi,h.ww,h.qn,!1),h.dw.forEach((function(t,i){i.if(t.B)})),s.ql(0)},t.prototype.subscribeClick=function(t){this.Ew.sn(t)},t.prototype.unsubscribeClick=function(t){this.Ew.un(t)},t.prototype.subscribeCrosshairMove=function(t){this.Aw.sn(t)},t.prototype.unsubscribeCrosshairMove=function(t){this.Aw.un(t)},t.prototype.priceScale=function(t){return t=t||this.vv.ct().Zl(),new fs(this.vv,t)},t.prototype.timeScale=function(){return this.Bw},t.prototype.applyOptions=function(t){this.vv.ms(vs(t))},t.prototype.options=function(){return this.vv.O()},t.prototype.takeScreenshot=function(){return this.vv.Yd()},t.prototype.Vw=function(t){return a(this.Tw.get(t))},t.prototype.Lw=function(t){var i=this,n=new Map;t.nw.forEach((function(t,s){n.set(i.Vw(s),t)}));var s=void 0===t.iw?void 0:this.Vw(t.iw);return{time:t.F&&(t.F.businessDay||t.F.timestamp),point:t.tw,hoveredSeries:s,hoveredMarkerId:t.sw,seriesPrices:n}},t}();var ds=Object.freeze({__proto__:null,version:function(){return"2.1.0-dev+202005300152"},get LineStyle(){return i},get LineType(){return t},get CrosshairMode(){return U},get PriceScaleMode(){return Mt},get PriceLineSource(){return gt},get TickMarkType(){return Ft},isBusinessDay:Wt,isUTCTimestamp:jt,createChart:function(t,i){var n=f(d(t)?document.getElementById(t):t);return new _s(n,i)}});window.LightweightCharts=ds}(); \ No newline at end of file diff --git a/trade.py b/trade.py new file mode 100644 index 0000000..61a9207 --- /dev/null +++ b/trade.py @@ -0,0 +1,9 @@ +import data as bt_data + + +def order(symbol, side, type, quantity): + try: + order = bt_data.client.create_order(symbol, side, type, quantity) + # Report error if order fails + except Exception as e: + flash(e.message, "error")