c      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V WXYZ[\]^_`a b c d e f g h i j k l m n o p q r s t u vwxyz{|}~ ) Safe-Inferred   In degrees         Safe-Inferred ! !!  ! Safe-Inferred "#$%&'()*+, "#$%&'()*+,"%$#&'()*+, Safe-Inferred-.-.-. Safe-Inferred/0123456/0123456/2103654 Safe-Inferred789:;<=>?@ABCDEFG789:;<=>?@ABCDEFG7>=<;:98?FEDCBA@G Safe-InferredIH Opcode: 1900 I Opcode: 1902J Opcode: 1901K Opcode: 1800L Opcode: 1802M Opcode: 1801O Opcode: 1608P Opcode: 1607Q Opcode: 1606R Opcode: 1605S Opcode: 1604T Opcode: 1603U Opcode: 1602V Opcode: 1601X Opcode: 1600Y Opcode: 1500Z Opcode: 1505[ Opcode: 1504\ Opcode: 1503] Opcode: 1502^ Opcode: 1501` Opcode: 1402a Opcode: 1401c Opcode: 1400d Opcode: 1300e Opcode: 1301f Opcode: 1200g Opcode: 1201h Opcode: 1000i Opcode: 1002jOpcode: 1001 First circle = inner circle, Second circle is enclosing circle k Opcode: 0900l Opcode: 0904m Opcode: 0903n Opcode: 0902o Opcode: 0901p Opcode: 0800qOpcode: 0802 [ScreenPixel] should be as long as width * height * 4 r Opcode: 0801t Opcode: 0703u Opcode:0702v Opcode: 0701w Opcode: 0700y Opcode: 0602z Opcode: 0601{ Opcode: 0600} Opcode: 0502~ Opcode: 0501 Opcode: 0500 Opcode: 0400 Opcode: 0407 Opcode: 0406 Opcode: 0405 Opcode: 0404 Opcode: 0403 Opcode: 0402 Opcode: 0401 Opcode: 0300 Opcode: 0304  Opcode: 0303  Opcode: 0302  Opcode: 0301  Opcode: 0204 Opcode: 0203 Opcode: 0202 Opcode: 0201Reserved type words Type: t | Opcode Arguments: a | List of arguments for that data type Route: r | Either s for system or u: for user Object: o | The object that is beneath Example: {r: s, o: {SystemMeasuredText object}} SystemMeasuredText object: {t:2102, a2:[CanvasId, CanvasText object, ScreenDimensions]}  Opcode: 0200 Opcode: 0100 Opcode: 0101 Opcode: 2000 Opcode: 2001 Opcode: 2100 Opcode: 2101zHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ In degrees zHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@HJIKMLNVUTSRQPOWXY^]\[Z_a`bcdefghjikonmlprqsvutwxzy{|~} Safe-InferredPTranslation is center, does not have a boundingbox due to technical limitations Translation is center Translation is center Translation is upperleftcorner Should contain atleast 1 shape 23 Safe-Inferred  Safe-Inferred"! Safe-Inferred   Safe-InferredNone Safe-Inferred           Safe-Inferred                 Safe-InferredNoneNone !"#$% !"#$% !"#$% None&'()&'()&'() NoneG !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVG !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVLVUTSRQPOEFGHIJKLMN>?@ABCD6=<;:987-543210/.*+,&% '()'()!"#()$&% '()'()!"#()$*+,-543210/.6=<;:987>?@ABCDE FGHIJKLMNOPQRSTUV!None WXYZ[\]^_` WXYZ[\]^_` WXYZ[\]^_`NoneHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~WXYZ[\]^_`WXYZ[\]^_`|~}{xzywsvutprqkonmlhjifgdecb_a`Y^]\[ZXWNVUTSRQPOKMLHJI"Noneabcde*f+abcdefabcde*f+ Noneabcdefabcdef#None ghi,-.jk/l0ghijkl ghi,-.jk/l0 None     ghijklghijkl     $None mnopqrstu123 mnopqrstu mnopqrstu123 Nonemnopqrstumnopqrstu%NonevwxyvwxyvwxyNone7vwxy=vwxy&Nonez{|}~456789:;<=z{|}~z{|}~456789:;<=None789:;<=>?@ABCDEFGz{|}~z{|}~G?FEDCBA@7>=<;:98'None>?>?None /0123456 3654/210(NoneNone-.-.)None @ABCD @ABCDNone"#$%&'()*+,,+*)(&'"%$# NoneNoneEFGHIJKLMNOPQEFGHIJKLMNOPQNoneR*+,-./012344556789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnfopqrstuvwxyz{|}~      !"#$%&'()*4+, - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G G H I J K L M N O P Q R S T U V W X Y Z Z [ \ ] ^ _ ` ` a b c d e f g h i j k l m n o p!q!r!s!t!u!v!w!x!y!H"z"{"|"}"~"######$$$$$$$$$%%%%&&&&&&'''''((()))))))       !"#$%&'()*+,-./0123456789:+,-;< = > ? @"A"B#C#D#E#F#G$H$I$J&K&L&M&N&O&P&Q&R&S&T'U'V)W)X)Y)Z)[\]^_`abcdefghieventloop-0.3.0.0Eventloop.Utility.VectorsEventloop.Types.CommonEventloop.Module.TimerEventloop.Module.StdOutEventloop.Module.StdInEventloop.Module.File!Eventloop.Module.Websocket.CanvasEventloop.Module.BasicShapesEventloop.Module.DrawTrees Eventloop.Module.Websocket.Mouse#Eventloop.Module.Websocket.KeyboardEventloop.Types.EventTypesEventloop.RouteEventEventloop.EventloopCoreEventloop.DefaultConfigurationEventloop.Module.Timer.TypesEventloop.Module.StdOut.TypesEventloop.Module.StdIn.TypesEventloop.Module.File.Types'Eventloop.Module.Websocket.Canvas.Types"Eventloop.Module.BasicShapes.Types"Eventloop.Utility.Trees.LayoutTree#Eventloop.Utility.Trees.GeneralTree Eventloop.Module.DrawTrees.Types(Eventloop.Module.Websocket.Canvas.Opcode.Eventloop.Module.Websocket.Canvas.JSONEncoding$Eventloop.Module.BasicShapes.Classes&Eventloop.Module.Websocket.Mouse.Types)Eventloop.Module.Websocket.Keyboard.TypesEventloop.Utility.Websockets$Eventloop.Utility.BufferedWebsocketsEventloop.Utility.Config(Eventloop.Module.Websocket.Canvas.Canvas,Eventloop.Module.Websocket.Keyboard.Keyboard&Eventloop.Module.Websocket.Mouse.Mouse$Eventloop.Module.DrawTrees.DrawTrees(Eventloop.Module.BasicShapes.BasicShapesEventloop.Module.File.FileEventloop.Module.StdIn.StdInEventloop.Module.StdOut.StdOutEventloop.Module.Timer.TimerRotateLeftAroundrotateLeftAround ToPolarCoord toPolarCoordToPointtoPointVector2D|+||-| negateVectorPoint PolarCoordOffsetYXLengthRadiansAngledegreesToRadiansradiansToDegrees lengthToPointlengthBetweenPointsdifferenceBetweenPoints originPoint$fRotateLeftAroundPoint$fRotateLeftAroundPolarCoord$fToPolarCoordPoint$fToPointPolarCoord$fVector2DPoint$fVector2DPolarCoord NumericIdNamedIdTimerOut UnsetTimerSetIntervalTimerSetTimerTimerInTickTimerStartFunction StartedTimerIncomingTickBufferTimerIdMicroSecondDelay StdOutOut StdOutMessageStdInOutStdInReceiveCharStdInReceiveLineStdInReceiveContentsStdInInStdInReceivedCharStdInReceivedLineStdInReceivedContentsFileOutWriteToIfEOF RetrieveChar RetrieveLineRetrieveContents CloseFileOpenFileFileInWroteToIsEOF RetrievedChar RetrievedLineRetrievedContents FileClosed FileOpened ClearPart ClearCanvasClearRectangleCSSUnit CSSPercentage CSSPixelsCanvasTransformResetTransform SetTransform TransformScaleRotate TranslateRestoreSaveTransformationMatrix TransformUnit AlignmentAlignEnd AlignStart AlignCenter AlignRight AlignLeft TextRenderTextFill TextStrokeTextFillRenderStyleTextStrokeRenderStyleFont CanvasTextCanvasGradientTypeLinearGradientRadialGradientPatternRepetitionNoRepeatRepeatYRepeatXRepeat CanvasImage ImageData CanvasElement RenderStyle CanvasPatternCanvasGradient CanvasColorCanvasColorStopPathFill PathNoFillPathRenderFillStyle PathStroke PathNoStrokePathRenderStrokeStyleScreenPathPart RectangleArcArcToQuadraticCurveTo BezierCurveToLineToMoveToCanvasOperationClear DoTransformDrawTextDrawPath CanvasOut MeasureTextCanvasOperationsTeardownCanvas SetupCanvasCanvasPositionCanvasPositionRightCanvasPositionLeftCanvasIn MeasuredTextSystemCanvasOutSystemMeasureTextSystemCanvasInSystemMeasuredTextRoutedMessageOutOutSystemCanvas OutUserCanvasRoutedMessageInInSystemCanvas InUserCanvasFontSize FontFamilyScaleYScaleX ScaleUnit ScreenCircleColorStopOffset ScreenPixel ScreenColor ScreenAlpha ScreenBlue ScreenGreen ScreenRedScreenColorMetricZIndexCanvasIdScreenEndAngleScreenStartingAngleScreenEndPointScreenControlPointScreenStartingPointScreenDimensions ScreenPoint ScreenAngle ScreenRadius ScreenHeight ScreenWidthScreenYScreenX ScreenMetricOpcodeCanvasSystemReceiveBufferCanvasUserReceiveBuffer BoundingBox RotatePoint AroundPoint AroundCenterRotation Primitive MultiLine otherPointsLinepoint1point2Texttext fontFamilyfontSizePolygonamountOfPointsCircleradius translation dimensionsShapeCompositeShape BaseShapeBasicShapesOut DrawShapesAmountOfPoints LowerRight LowerLeft UpperRight UpperLeft ShapeColor StrokeColor FillColorColorAlphaBlueGreenRedRadius DimensionsHeightWidth TranslationGraphicalNumericRoseTreeRoseNodeRBTreeRBNode NodeColorNodeGrey NodeBlackNodeRedTree TRoseTreeTRBTree DrawTreesOut DrawTrees MouseButton MouseMiddle MouseRight MouseLeftMouse MouseLeave MouseEnterMouseUp MouseDown MouseMove DoubleClickClickKeyboardKey ParametersValue ParameterAPINameIOStateNoState FileStatenewFileInEventsopened TimerStatestartedIntervalTimers startedTimersincomingIntervalTickBufferincomingTickBuffer StdInStatenewStdInInEvents CanvasStatecommonReceiveBuffercanvasUserReceiveBuffercanvasSystemReceiveBufferrouterThreadId KeyboardState MouseState receiveBufferclientConnection serverSocket SharedIOState measureTextOutStop OutDrawTreesOutBasicShapes OutCanvasOutStdIn OutStdOutOutTimerOutFileInInCanvasInStdInInTimerInFileInMouse InKeyboardStartEventloopConfiguration progState eventloopFunc outRouter sharedIOStatemoduleConfigurationsEventloopModuleConfigurationmoduleIdentifieriostate initializereventRetriever preprocessor postprocessorteardown eventSenderOutEventRouterTeardown EventSender PostProcessor PreProcessorEventRetriever InitializerEventloopModuleIdentifier defaultCanvasModuleConfigurationdefaultCanvasModuleIOStatecanvasModuleIdentifiercanvasInitializercanvasEventRetrievercanvasEventSendercanvasTeardownsendRoutedMessageOutrouter"defaultKeyboardModuleConfigurationdefaultKeyboardModuleIOStatekeyboardModuleIdentifierkeyboardInitializerkeyboardEventRetrieverkeyboardTeardowndefaultMouseModuleConfigurationdefaultMouseModuleIOStatemouseModuleIdentifiermouseInitializermouseEventRetriever mouseTeardown#defaultDrawTreesModuleConfigurationdefaultDrawTreesModuleIOStatedrawTreesModuleIdentifierdrawTreesPostProcessorshowGeneralTreeListshowGeneralTreeList'nodeColorToFillColor rbExampleTreeroseExampleTree%defaultBasicShapesModuleConfigurationdefaultBasicShapesModuleIOStatebasicShapesModuleIdentifierbasicShapesPostProcessordefaultFileModuleConfigurationdefaultFileModuleIOStatefileModuleIdentifierfileEventRetrieverfileEventSender fileTeardowndefaultStdInModuleConfigurationdefaultStdInModuleIOStatestdInModuleIdentifierstdInEventRetrieverstdInEventSender defaultStdOutModuleConfigurationstdOutModuleIdentifierstdOutEventSenderdefaultTimerModuleConfigurationdefaultTimerModuleIOStatetimerModuleIdentifiertimerInitializertimerEventRetrievertimerEventSender timerTeardown routeOutEvent startMainloop allModulesEventloopConfigurationdefaultSharedIOStateConnect BottomConnect TopConnect LayoutLineLayoutNodeContent LayoutNodeLayoutNodeText LayoutTreeLBox marginLine lineThicknesstextFont printTreeprintNodeContent printLinemarginizeLinePointsGeneralizeTreegeneralizeTreePosMiddle BottomOffset RightOffset TopOffset LeftOffset GeneralLineGeneralNodeContent GeneralNodeGeneralNodeText GeneralTreeGeneralTreeBox textHeight charWidthmarginBetweenTreesmarginBetweenNodeContentmarginBetweenNodeRowsmarginBetweenNodeColumnsgeneralNodeDimensionflattenDimensionsgeneralNodeContentDimensionlayoutGeneralTreelayoutGeneralTreeChildren layoutLinelayoutGeneralTreeslayoutGeneralNodeContentListlayoutGeneralNodeContenttextSize treeIndex$fGeneralizeTreeGeneralTreeToOpcodetoOpcode$fToOpcodeClearPart$fToOpcodeCSSUnit$fToOpcodeCanvasTransform$fToOpcodeAlignment$fToOpcodeTextRender$fToOpcodeFont$fToOpcodeCanvasText$fToOpcodeCanvasGradientType$fToOpcodePatternRepetition$fToOpcodeCanvasImage$fToOpcodeRenderStyle$fToOpcodePathFill$fToOpcodePathStroke$fToOpcodeScreenPathPart$fToOpcodeCanvasOperation$fToOpcodeCanvasOut$fToOpcodeSystemCanvasOutoperationObject$fToJSONClearPart$fToJSONCSSUnit$fToJSONCanvasTransform$fToJSONAlignment$fToJSONTextRender $fToJSONFont$fToJSONCanvasText$fToJSONCanvasGradientType$fToJSONPatternRepetition$fToJSONCanvasImage$fToJSONRenderStyle$fToJSONPathFill$fToJSONPathStroke$fToJSONScreenPathPart$fToJSONCanvasOperation$fToJSONCanvasOut$fToJSONSystemCanvasOut$fToJSONRoutedMessageOut$fFromJSONAlignment$fFromJSONFont$fFromJSONCanvasText$fFromJSONCanvasIn$fFromJSONSystemCanvasIn$fFromJSONRoutedMessageInToScreenPathParttoScreenPathPartsToCanvasOperationstoCanvasOperations ToCanvasOut toCanvasOut ToBoundingBox toBoundingBoxToCentertoCenteraddBoundingBoxfoldBoundingBoxestranslateBoundingBoxopOnBoundingBoxallPolygonPoints roundPointroundShapeColor roundColorfindRotationPoint$fToScreenPathPartPrimitive$fToCanvasOperationsShape$fToCanvasOutBasicShapesOut$fToBoundingBoxShape$fToBoundingBoxPrimitive$fToBoundingBoxBoundingBox$fToCenterBoundingBox$fToCenterShape$fToCenterPrimitive$fRotateLeftAroundBoundingBox ReceiveBufferMessagePortHostcreateBindListenServerSocketacceptFirstConnectionsetupWebsocketConnection spawnReaderreadIntoBufferhandleCloseRequestException hasMessage takeMessage writeMessagewriteBinaryMessagecloseWebsocketConnectionnetwork-2.6.0.2Network.Socket.TypesSocketwebsockets-0.9.3.1Network.WebSockets.Connection ConnectionBufferedReceiveBuffer hasMessages takeMessages ipAddress keyboardPort mousePort canvasPortmessageToKeyboardIn$fFromJSONKeyboardparseMouseEventparseMouseButtonparseMousePositionmessageToMouseIn$fFromJSONMouse$fGeneralizeTreeRoseTree$fGeneralizeTreeRBTree$fGeneralizeTreeTreefileEventSender' doReadAction getFromFilefileIsReadablefileIsWriteable fileIsOpenedretrieveContentsretrieveOpenedFileremoveOpenedFile closeAllFilesstdInEventSender' doStdInGettimerEventSender' registerTimerunregisterTimerfindStartedTimertickwithIOStateModuleswithIOStateModulestartMainloopWithStarthandleMainloopUsingSource receiveEventshandleSingleInEvent doEventloop sendOutEventsprocessEventModuleprocessEventsModules processEventsfindModuleConfigurationreplaceModuleConfiguration