diff --git a/.github/actions/ghpython-components/componentize.py b/.github/actions/ghpython-components/componentize.py
index fb9bf41..f02c808 100644
--- a/.github/actions/ghpython-components/componentize.py
+++ b/.github/actions/ghpython-components/componentize.py
@@ -13,6 +13,8 @@
import System
import System.IO
+# 1. x failed to find Type Hint. Using "No Type Hint" instead. (Missing Hint: 87f87f55-5b71-41f4-8aea-21d494016f81)
+
GHPYTHON_SCRIPT_GUID = System.Guid("c9b2d725-6f87-4b07-af90-bd9aefef68eb") # <<<<<<<<<<<< changed
# GHPYTHON_SCRIPT_LIB = System.Guid("066d0a87-236f-4eae-a0f4-9e42f5327962") # ?? test unsure # <<<<<<<<<<<< changed TODO: to verify if it changes anything in py anc c#
TEMPLATE_VER = re.compile("{{version}}")
@@ -21,9 +23,9 @@
# TODO: we might want to double check this list if the guid are the same in Rhino 8
TYPES_MAP = dict(
- none="35915213-5534-4277-81b8-1bdc9e7383d2",
- ghdoc="87f87f55-5b71-41f4-8aea-21d494016f81",
- float="39fbc626-7a01-46ab-a18e-ec1c0c41685b",
+ none="6a184b65-baa3-42d1-a548-3915b401de53", # <<<<<<<<<<<< changed
+ ghdoc="1c282eeb-dd16-439f-94e4-7d92b542fe8b", # <<<<<<<<<<<< changed
+ float="9d51e32e-c038-4352-9554-f4137ca91b9a", # <<<<<<<<<<<< changed
bool="d60527f5-b5af-4ef6-8970-5f96fe412559",
int="48d01794-d3d8-4aef-990e-127168822244",
complex="309690df-6229-4774-91bb-b1c9c0bfa54d",
@@ -48,7 +50,7 @@
surface="f4070a37-c822-410f-9057-100d2e22a22d",
subd="20f4ca9c-6c90-4fd6-ba8a-5bf9ca79db08",
brep="2ceb0405-fdfe-403d-a4d6-8786da45fb9d",
- geometrybase="c37956f4-d39c-49c7-af71-1e87f8031b26",
+ geometrybase="c37956f4-d39c-49c7-af71-1e87f8031b26"
)
#TODO: double check, don't know this param
@@ -297,6 +299,9 @@ def create_ghuser_component(source, target, version=None, prefix=None):
# ------------------------------
# ------------------------------
+ # FIXME: here the component gives back this error:
+ # 1. Error running script: Unable to cast object of type 'Grasshopper.Kernel.Parameters.Param_String' to type 'RhinoCodePluginGH.Parameters.ScriptVariableParam'.
+ # needs to change the type of the parameters for both input and output
# parameters
params = ghpython_root.CreateChunk("ParameterData") # ok
inputParam = ghpython_data.get("inputParameters", []) # ok
@@ -305,13 +310,14 @@ def create_ghuser_component(source, target, version=None, prefix=None):
params.SetInt32("InputCount", len(inputParam)) # ok
for i, _pi in enumerate(inputParam):
params.SetGuid(
- "InputId", i, System.Guid.Parse("08908df5-fa14-4982-9ab2-1aa0927566aa") # ok <<<<<<<<<<<< changed
+ "InputId", i, System.Guid.Parse("08908df5-fa14-4982-9ab2-1aa0927566aa") # ?? <<<<<<<<<<<< changed ??
)
params.SetInt32("OutputCount", len(outputParam)) # ok
for i, _po in enumerate(outputParam):
params.SetGuid(
- "OutputId", i, System.Guid.Parse("3ede854e-c753-40eb-84cb-b48008f14fd4") # ok <<<<<<<<<<<< changed
+ "OutputId", i, System.Guid.Parse("08908df5-fa14-4982-9ab2-1aa0927566aa") # ?? <<<<<<<<<<<< changed ??
)
+ # FIXME: the "out" guis is 3ede854e-c753-40eb-84cb-b48008f14fd4 to replace up if you want to add it
# ------------------------------
# input parameters
@@ -330,7 +336,7 @@ def create_ghuser_component(source, target, version=None, prefix=None):
)
pi_chunk.SetInt32("SourceCount", 0) # ok
pi_chunk.SetGuid("InstanceGuid", input_instance_guid) # ok
- # pi_chunk.SetGuid("TypeHintID", parse_param_type_hint(pi.get("typeHintID"))) # ok
+ pi_chunk.SetGuid("TypeHintID", parse_param_type_hint(pi.get("typeHintID"))) # ok FIXME: this one is maybe to modify
pi_chunk.SetInt32(
"WireDisplay",
parse_wire_display(pi.get("wireDisplay", WIRE_DISPLAY["default"])), # !! TODO: not sure if not shown by default, for test get out
@@ -353,7 +359,12 @@ def create_ghuser_component(source, target, version=None, prefix=None):
po_chunk.SetString("Description", po.get("description")) # ok
po_chunk.SetBoolean("Optional", po.get("optional", False)) # ok
po_chunk.SetInt32("SourceCount", 0) # ok
+
+ # po_chunk.SetGuid("TypeHintID", System.Guid.Parse("0b057941-4ed8-4cde-9c90-bacf7ba51cb7"))
+
po_chunk.SetGuid("InstanceGuid", output_instance_guid) # ok
+ # FIXME: here the param hint needs to be added/modified
+
po_chunk.SetBoolean("ReverseData", po.get("reverse", False)) # !! TODO: see above
po_chunk.SetBoolean("SimplifyData", po.get("simplify", False)) # !! TODO: see above
@@ -369,10 +380,11 @@ def create_ghuser_component(source, target, version=None, prefix=None):
# FIXME: does not exist anymore, need a new chunk
script = ghpython_root.CreateChunk("Script")
# TODO: here the code from the component needs to go in base64
+ code = base64.b64encode(code.encode("utf-8"))
script.SetString("Text", "IiIiVGhpcyBpcyBhIG5ldyBzY3JpcHQgaW5zdGFuY2UiIiINCmltcG9ydCBTeXN0ZW0NCmltcG9ydCBSaGlubw0KaW1wb3J0IEdyYXNzaG9wcGVyDQoNCmltcG9ydCByaGlub3NjcmlwdHN5bnRheCBhcyBycw0KDQoNCmNsYXNzIE15Q29tcG9uZW50KEdyYXNzaG9wcGVyLktlcm5lbC5HSF9TY3JpcHRJbnN0YW5jZSk6DQogICAgZGVmIFJ1blNjcmlwdChzZWxmLCBjb21wYXNuZXdfeCwgeSk6DQogICAgICAgICIiIkdyYXNzaG9wcGVyIFNjcmlwdCBjb21wYXMgYWN0aW9uIiIiDQogICAgICAgIGEgPSAiSGVsbG8gUHl0aG9uIDMgaW4gR3Jhc3Nob3BwZXIhIg0KICAgICAgICBwcmludChhKQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuDQo=")
script.SetString("Title", "S")
- language_spec = ghpython_root.CreateChunk("LanguageSpec")
+ language_spec = script.CreateChunk("LanguageSpec")
language_spec.SetString("Taxon", "mcneel.pythonnet.python")
language_spec.SetString("Version", "3.9.10") # TODO: the version might be a parameter
diff --git a/assets/cpythondoc.ghx b/assets/cpythondoc.ghx
new file mode 100644
index 0000000..d1bb42f
--- /dev/null
+++ b/assets/cpythondoc.ghx
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ -
+ 0
+ 2
+ 2
+
+
+
+
+
+ -
+ 1
+ 0
+ 7
+
+
+
+
+
+ - 270470a3-090e-4199-8a96-d6d60083f906
+ - Shaded
+ - 1
+ -
+ 100;255;0;0
+
+ -
+ 100;0;150;0
+
+
+
+
+
+ - 638412573507187527
+
+ - false
+ - cpythondoc.ghx
+
+
+
+
+ - 0
+
+
+
+
+ -
+ 201
+ 292
+
+ - 1.0837505
+
+
+
+
+ - 0
+
+
+
+
+
+
+ - 0
+
+
+
+
+ - 0
+
+
+
+
+
+
+ -
+ iVBORw0KGgoAAAANSUhEUgAAAOEAAACWCAIAAACn9nhUAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGXSURBVHhe7dJBDQAhEACx9W8TIceHhJyDIWk1dOABH1Tdowt6HKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXOUeocpc5R6hylzlHqHKXudxSazlHomtmpFvoOOsRmzAAAAABJRU5ErkJggg==
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/deserializer.py b/assets/deserializer.py
index e38f242..3a4c36a 100644
--- a/assets/deserializer.py
+++ b/assets/deserializer.py
@@ -51,4 +51,5 @@ def main():
gh_io = gh_io[:-4]
clr.AddReference(gh_io)
+
main()
\ No newline at end of file
diff --git a/assets/print_hints.py b/assets/print_hints.py
new file mode 100644
index 0000000..cec893f
--- /dev/null
+++ b/assets/print_hints.py
@@ -0,0 +1,37 @@
+import argparse
+import base64
+import json
+import os
+import re
+import sys
+import tempfile
+import urllib.request, urllib.parse, urllib.error
+import zipfile
+from io import StringIO
+
+import clr
+import System
+import System.IO
+
+
+
+
+def main():
+ from GH_IO.Serialization import GH_LooseChunk
+
+ # get all the types and corresponding guids
+ # rewrite this: 08908df5-fa14-4982-9ab2-1aa0927566aa in majuscule
+ # i ncomment the line below
+ print(GH_LooseChunk.GetKnownTypes())
+
+
+
+if "__main__" == __name__:
+
+ gh_io : str = r"C:\Users\andre\.nuget\packages\grasshopper\8.0.23164.14305-wip\lib\net48\GH_IO.dll"
+ gh_io = os.path.abspath(gh_io)
+ gh_io = gh_io[:-4]
+ clr.AddReference(gh_io)
+
+
+ main()
\ No newline at end of file
diff --git a/assets/testTypeHint.ghx b/assets/testTypeHint.ghx
new file mode 100644
index 0000000..412c760
--- /dev/null
+++ b/assets/testTypeHint.ghx
@@ -0,0 +1,364 @@
+
+
+
+
+
+
+ -
+ 0
+ 2
+ 2
+
+
+
+
+
+ -
+ 1
+ 0
+ 7
+
+
+
+
+
+ - f8be2b46-c707-45df-94e6-6ce5d1c1ffdf
+ - Shaded
+ - 1
+ -
+ 100;255;0;0
+
+ -
+ 100;0;150;0
+
+
+
+
+
+ - 638413868051787861
+
+ - false
+ - testTypeHint.ghx
+
+
+
+
+ - 0
+
+
+
+
+ -
+ -33
+ -48
+
+ - 3.9772015
+
+
+
+
+ - 0
+
+
+
+
+
+
+ - 0
+
+
+
+
+ - 1
+
+
+
+
+ - RhinoCodePluginGH, Version=8.2.23346.13001, Culture=neutral, PublicKeyToken=552281e97c755530
+ - 8.2.23346.13001
+
+ - 066d0a87-236f-4eae-a0f4-9e42f5327962
+ - RhinoCodePluginGH
+
+
+
+
+
+
+
+ - 1
+
+
+
+
+ - c9b2d725-6f87-4b07-af90-bd9aefef68eb
+ - 066d0a87-236f-4eae-a0f4-9e42f5327962
+ - Script
+
+
+
+
+ - Scripting component
+ -
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAQdSURBVEhL3ZRbTJtlHMbxwmTGxCjRMONkbkx0Y0P6tf3aDhgCkwyXbcTordELl6gcC4NxGitgvFiM0ZuFHiiHcj5LCwgUWuuQOdyBEVd1rjB3p3HgIcRo/o//9/s+IFzWmJj4JP+0Td739z553udtzH8q6d3mQ7oCh1OX7wjrCpw/pxS6/tIVun+UrJ6w3tphl0t79mhLo5eUb09n8P2UfGcTg1el4hZIxa1gMPSlXTCU98FQ1vOHVDXwpLYlOqUUOBqEe/FdKmxx6a0ehntgONOrwnmMlcMwnB2uUzZEK12By87O13VFrV7J2rm+4dpYMQDj2SGeQchVo5BrvB5tS3SSClrKpOL2gFTaydMV0Jf1BhgeMJQP/Cmcy9UMrx3nA8ajO0BvbXrcYG1+2mDt2j7VQ+pUDv8k1/hgYripbhImm99DK3kJPE5aPlFOSzmxGmq7+EJf4YZclkraoC/r4unmvHtgqOhXI6kcYbdjCliu5U+Gm20zMNXPeuhengV3TgDf5gJLR1exmPaYhlUlHEuFzb9JJe1qQwRYuUgBF1l/osEnVOfnpxk+qxxgbgi66Pvj6QgfA25mA1czQPOHqzS0Kq6fU3W80RAGi8sUrkXWm5FMqc7rA7A0BGFpDMHUGMqlcM7buJEFLBwBvrCAgoY5Da1KX9p5fdO10pJBGIXrjTiEc4abz/sZPquAzY2hdUtDyHF37tVYupZ5B1+mAXNmIGAATSbfB2Ie0PAc0Zne31UwZ10lsvbBWDu2bKr79PTrH3ky3SONr7m9Yt5Xh38vXXoji24e/QBXj6zicioQkoEZCZhMBrwHAPfuHRqeD6jo/0FxrMVhrPatZ703EsfNuMDzC+7mQZmVU8Dt41DyXuS8v1IjwWdGwK8DJg4Bo8+DBvZ9p6FV8Wuclqu9ataieucmXVjJS9sEi1k+yS15Gfg6B7ieCVxJVyMJMnzqBWD8IDDyHNCfAHTFt2hoVaYaX9HGJZq5ISbbdC47/3gTHuEKfqNUELj2IpS8LzF8Vq9GMpYEDCcCfXuBznhQW9xBDa3KXNLzkHxu4p5ygM0Pi20mm1ZO2RX4RiRcQVrIIJpPJQrKRH6JaCKZaPQA0WAiUfczRO27bpEr7k0Nu11y3dgjJtvMO+b6YFtqfSiJInyAgItIuIJ0Jf1Xbem/Iwofs2PpJTUSkTdHQgF9hKaSI+RLitBIYoT6EiLUEf+htiU60WK2XbxKpYKfm7byHt0PGkpco569DurYtUYtO//Zvynn/RbmD3MFud9+7ve4qOB+YPBZUPduu7LGvdNBTbFFyoZohdmMHfzkb2E6ZauCA/tEBUGtT62RM85BF2Nv0IW4h7Ut0QsL+gf5VZ6m4UQf9e25zZGscyRhsj/hpYuP5sMds/Va/6eKifkb1QMSMlhsgFAAAAAASUVORK5CYII=
+
+ - e98563e8-3930-435f-b288-b340ed9a8197
+ - true
+ - Script
+ - S
+
+ - false
+ - false
+ - true
+
+
+
+
+ -
+ 54
+ 51
+ 147
+ 64
+
+ -
+ 121
+ 83
+
+
+
+
+
+ - 3
+ - 08908df5-fa14-4982-9ab2-1aa0927566aa
+ - 08908df5-fa14-4982-9ab2-1aa0927566aa
+ - 08908df5-fa14-4982-9ab2-1aa0927566aa
+ - 3
+ - 3ede854e-c753-40eb-84cb-b48008f14fd4
+ - 08908df5-fa14-4982-9ab2-1aa0927566aa
+ - 08908df5-fa14-4982-9ab2-1aa0927566aa
+
+
+
+
+ - true
+ - No conversion
+ -
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAQTSURBVEhL1VVbKK1pGF7ISnI+s5zP5/NZzkQohUxcUS7cOCRXtiQ0MtqS5IILp8KNtitKKQmR7ERxISllz0wadrGszdAz3/Ot9a/sMXvbczXNW2/rb631P8/7Pu/zfp/qvwo/ExOTL+IT/yJ/EvljYWFh8XFiYgJbW1vY2NjA2toaVlZWsLi4iKmpKQwMDKChoQGlpaXIyMhAUFAQREG/ilfVeoTvhJmZWbl48c/JyUmkpKTITE5ORmJiIuLj4xETE4PIyEiEhoZKYD8/P4SHh8PKyurO1NT0nQHmm6G2tbX9Y35+HpWVlbI6Znp6uiQiSVxcHKKioiRocHAwAgICZPr7+0MQaAWGRg/1D2Fubv5zfX39U3d3NzIzM9HY2Ij+/n7Mzc1hc3MT09PTSEhIkF1EREQgJydH/ra6uora2lqI4h6EVB8McK/Cz83N7cvIyAjy8/ORm5uLuro6jI6O4urqCtfX1/KzrKwMsbGxKCwsxNHREc7Pz3F4eIjx8XF4enpyFuwiQQ/5IoT2GxUVFaipqZGyZGdnIy8vT+b+/j5ub29xf38vgZKSkrC9vY2FhQXQDMvLy1JSd3d32NvbPwuSjwZYY5Q6OTnpqqurpdbUnBKRhNnX1wedToeHhwecnJxIkra2NoSEhEj9fX19ZfVCAXh7e0O48E5g1uqhxWBF9b+lpqaCyUEqJMqQi4qKJMHT0xOen5+xtLT01ZB9fHyg0Wjg6uoqSUgourgW2FYqMfkuR0dHHcE5PFqRJLTmS5vu7e1JcEZPT89XNvXy8oKHhwdcXFzg4OAgScXzvSB4rxJMn8PCwqS3mSShFemWlzk8PGzsYH193Vi9Ig/1d3Z25gwkUXR0NLf7MwneC3tp6W2FiM8koluYfOYWcwaPj49y2CR9WT3lEUrAzs5O4ojv2cEvIlVW1It/ZttM6kufK111dXWht7cXp6enElyr1aKzs1MOlNqzY1ZPedgJJRVz1c/AELVqtfqObTNbWlowNjaG9vZ2DA0NYWZmRn4/ODiIm5sbuRPHx8eymJKSErS2thqr58yERNwFo4tk0LvUjtZrbm6WG8rDbnZ21mhHynJ2dobLy0tcXFzg4OAAPLNYPcEDAwO5I88C7tUeMJJ5lnBoWVlZ0udNTU3GQdKK1JuLuLu7i52dHXR0dCjLJeXhdtvY2FD715vMEF18EH98ICid8TKpNYdJQA6UVSuyCFBpb+GcRwHzzbOIoWEX1JvVcmmUJCglVIBZsXAfrK2t5e+8G8Qcv3+aGuKdaFlLF4njw5gKKOVQqhZ3ACwtLeV5Jbom+Jv3AUMtpPqdVk1LS5PzIAD1LS4ulpWWl5eDB2NVVRV4fhUUFPBo+MR39RBvB+/Xv9+5b+WP38n/o1Cp/gJAdKz5nm6ZIAAAAABJRU5ErkJggg==
+
+ - 58f70747-b4db-4eea-9609-7c7f35c7d972
+
+ - nohintIN
+ - true
+ - 0
+ - true
+ - 0
+ - 6a184b65-baa3-42d1-a548-3915b401de53
+
+
+
+
+ -
+ 56
+ 53
+ 50
+ 20
+
+ -
+ 82.5
+ 63
+
+
+
+
+
+
+
+ - true
+ - Contains a collection of floating point numbers
+ -
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAQiSURBVEhL1VVbKLVpFN7ITnI+s5HDdj6fz5QoUeSQiUgOF27dqb+GXIyo/0a4kUMhKfqLnENEOYWEFLlkxAwKGzN65n1ee+9+Y/7/N1fTrFrtr/1977PWetaz1qv4r0xtYGDwKH7xL/wn4R8zExOT7a6uLqyurmJ5eRnz8/OYmprC6Ogo+vr60NLSgpqaGuTk5CApKQk+Pj4QCZ2Lo8pXhO+YkZFRnjj4R29vL+Li4qTHxsYiOjoakZGRCAsLQ3BwMPz9/SWwp6cnAgMDYW5ufmdoaPhJC/NNU1paWv42NDSEwsJCmR09MTFRBmKQiIgIhISESFBfX194e3tL9/LygghwLzBUr1D/YMbGxr9UVlb+2djYiJSUFKSlpUnnM4OwkqioKFlFUFAQ/Pz8kJ6ejoaGBlmJSO5JUPVFC/fO1E5OTo9tbW3Izs5Ge3s7BgcHMTIyguHhYfkfq2CA8PBw5Obmor+/H6enp1hbW4ObmxtcXV3ZC1YR9Qr5lQnulwsKClBaWoqBgQFsbm4iIyMDWVlZuLy8xP7+PpKTk2WAmJgYVFdXo6enB+fn59jb25Pgzs7OsLa2fhFBtrWwesuxs7PTFBcXQ1AkM1pcXNRTdHBwAI1Gg9bW1jcUVVVV4erqCkdHRzKAYADu7u4QKrwTmKWv0KKxIvtf4+PjQW9ubsb29rYMoGsyAzw9PWFjY+NNkxng+voaJycnUKlUcHR0lEE8PDxI1e8C20whOv+zra2thuDMjLzu7u5iZmZGL1PS8/z8jIuLizcyJU03NzcygIuLCxwcHGBjYyNVJZ4fRIDPChHpJiAgQB6is6k7OzuYnp6WdNB1AR4fH+U3/J4SJZ26AOTf3t6ePZCBQkNDOd03DPBZyOueZfNgd3e3bPDExIRUC51NJDgr4DeUp1qtRkVFhaTo+PhY0iOYgJWVlfxGqIoVtApXmJEv6phl19fXY2VlBWNjY/qqWNHDwwOWlpZk5gTn92VlZVJhh4eHMnvSw0o4L6Kvrz3QWqlSqbzjYeqd4OPj4zIgfWtrC7e3t3KgyC/BqZaSkhKcnZ3JBHTZs2eCIs6CXkXSqF3x4oXZNTU1yeVGcMqRHDMIn7n8FhYWpGrYA75bX1+X4DwrZuRFwL2bA1osdwklxkrq6urQ0dEhe9LZ2SnlyWmdnZ3F5OQkamtr5XalpOfm5lBeXo78/HxYWFiQ+/eTTBNVfBE8PpEGDs7XzowpRXLMhpJzHS0CVG5aoZxnAfPNXURTsQpWwGw5NDonKOWnA2ZDhfq4puV73g2ij9/fplr7JLR8T77F+tC7DpQ612VtZmYGU1NTuVFF1QT/4X1AUwqqLrgKEhISkJqaKgEyMzPl4mOmeXl54GIsKioC9xeXojjzsRtNa7xf/37n/sg/fif/j0yh+AuVqtAmN2lbmQAAAABJRU5ErkJggg==
+
+ - f50101bf-590f-4d1b-9ad0-aa939bf64d7c
+
+ - floatIN
+ - true
+ - 0
+ - true
+ - 0
+ - 9d51e32e-c038-4352-9554-f4137ca91b9a
+
+
+
+
+ -
+ 56
+ 73
+ 50
+ 20
+
+ -
+ 82.5
+ 83
+
+
+
+
+
+
+
+ - true
+ - rhinoscriptsyntax geometry
+ -
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAQTSURBVEhL1VVbKK1pGF7ISnI+s5zP5/NZzkQohUxcUS7cOCRXtiQ0MtqS5IILp8KNtitKKQmR7ERxISllz0wadrGszdAz3/Ot9a/sMXvbczXNW2/rb631P8/7Pu/zfp/qvwo/ExOTL+IT/yJ/EvljYWFh8XFiYgJbW1vY2NjA2toaVlZWsLi4iKmpKQwMDKChoQGlpaXIyMhAUFAQREG/ilfVeoTvhJmZWbl48c/JyUmkpKTITE5ORmJiIuLj4xETE4PIyEiEhoZKYD8/P4SHh8PKyurO1NT0nQHmm6G2tbX9Y35+HpWVlbI6Znp6uiQiSVxcHKKioiRocHAwAgICZPr7+0MQaAWGRg/1D2Fubv5zfX39U3d3NzIzM9HY2Ij+/n7Mzc1hc3MT09PTSEhIkF1EREQgJydH/ra6uora2lqI4h6EVB8McK/Cz83N7cvIyAjy8/ORm5uLuro6jI6O4urqCtfX1/KzrKwMsbGxKCwsxNHREc7Pz3F4eIjx8XF4enpyFuwiQQ/5IoT2GxUVFaipqZGyZGdnIy8vT+b+/j5ub29xf38vgZKSkrC9vY2FhQXQDMvLy1JSd3d32NvbPwuSjwZYY5Q6OTnpqqurpdbUnBKRhNnX1wedToeHhwecnJxIkra2NoSEhEj9fX19ZfVCAXh7e0O48E5g1uqhxWBF9b+lpqaCyUEqJMqQi4qKJMHT0xOen5+xtLT01ZB9fHyg0Wjg6uoqSUgourgW2FYqMfkuR0dHHcE5PFqRJLTmS5vu7e1JcEZPT89XNvXy8oKHhwdcXFzg4OAgScXzvSB4rxJMn8PCwqS3mSShFemWlzk8PGzsYH193Vi9Ig/1d3Z25gwkUXR0NLf7MwneC3tp6W2FiM8koluYfOYWcwaPj49y2CR9WT3lEUrAzs5O4ojv2cEvIlVW1It/ZttM6kufK111dXWht7cXp6enElyr1aKzs1MOlNqzY1ZPedgJJRVz1c/AELVqtfqObTNbWlowNjaG9vZ2DA0NYWZmRn4/ODiIm5sbuRPHx8eymJKSErS2thqr58yERNwFo4tk0LvUjtZrbm6WG8rDbnZ21mhHynJ2dobLy0tcXFzg4OAAPLNYPcEDAwO5I88C7tUeMJJ5lnBoWVlZ0udNTU3GQdKK1JuLuLu7i52dHXR0dCjLJeXhdtvY2FD715vMEF18EH98ICid8TKpNYdJQA6UVSuyCFBpb+GcRwHzzbOIoWEX1JvVcmmUJCglVIBZsXAfrK2t5e+8G8Qcv3+aGuKdaFlLF4njw5gKKOVQqhZ3ACwtLeV5Jbom+Jv3AUMtpPqdVk1LS5PzIAD1LS4ulpWWl5eDB2NVVRV4fhUUFPBo+MR39RBvB+/Xv9+5b+WP38n/o1Cp/gJAdKz5nm6ZIAAAAABJRU5ErkJggg==
+
+ - f9878e13-3729-4963-adf4-425c01da1947
+
+ - ghdocIN
+ - true
+ - 0
+ - true
+ - 0
+ - 1c282eeb-dd16-439f-94e4-7d92b542fe8b
+
+
+
+
+ -
+ 56
+ 93
+ 50
+ 20
+
+ -
+ 82.5
+ 103
+
+
+
+
+
+
+
+ - The execution information, as output and error streams
+ - 7a28daf9-b80f-43d1-b104-277848a24ec3
+ - out
+ - out
+ - false
+ - 0
+
+
+
+
+ -
+ 136
+ 53
+ 63
+ 20
+
+ -
+ 167.5
+ 63
+
+
+
+
+
+
+
+ - false
+ - No conversion
+ -
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAQTSURBVEhL1VVbKK1pGF7ISnI+s5zP5/NZzkQohUxcUS7cOCRXtiQ0MtqS5IILp8KNtitKKQmR7ERxISllz0wadrGszdAz3/Ot9a/sMXvbczXNW2/rb631P8/7Pu/zfp/qvwo/ExOTL+IT/yJ/EvljYWFh8XFiYgJbW1vY2NjA2toaVlZWsLi4iKmpKQwMDKChoQGlpaXIyMhAUFAQREG/ilfVeoTvhJmZWbl48c/JyUmkpKTITE5ORmJiIuLj4xETE4PIyEiEhoZKYD8/P4SHh8PKyurO1NT0nQHmm6G2tbX9Y35+HpWVlbI6Znp6uiQiSVxcHKKioiRocHAwAgICZPr7+0MQaAWGRg/1D2Fubv5zfX39U3d3NzIzM9HY2Ij+/n7Mzc1hc3MT09PTSEhIkF1EREQgJydH/ra6uora2lqI4h6EVB8McK/Cz83N7cvIyAjy8/ORm5uLuro6jI6O4urqCtfX1/KzrKwMsbGxKCwsxNHREc7Pz3F4eIjx8XF4enpyFuwiQQ/5IoT2GxUVFaipqZGyZGdnIy8vT+b+/j5ub29xf38vgZKSkrC9vY2FhQXQDMvLy1JSd3d32NvbPwuSjwZYY5Q6OTnpqqurpdbUnBKRhNnX1wedToeHhwecnJxIkra2NoSEhEj9fX19ZfVCAXh7e0O48E5g1uqhxWBF9b+lpqaCyUEqJMqQi4qKJMHT0xOen5+xtLT01ZB9fHyg0Wjg6uoqSUgourgW2FYqMfkuR0dHHcE5PFqRJLTmS5vu7e1JcEZPT89XNvXy8oKHhwdcXFzg4OAgScXzvSB4rxJMn8PCwqS3mSShFemWlzk8PGzsYH193Vi9Ig/1d3Z25gwkUXR0NLf7MwneC3tp6W2FiM8koluYfOYWcwaPj49y2CR9WT3lEUrAzs5O4ojv2cEvIlVW1It/ZttM6kufK111dXWht7cXp6enElyr1aKzs1MOlNqzY1ZPedgJJRVz1c/AELVqtfqObTNbWlowNjaG9vZ2DA0NYWZmRn4/ODiIm5sbuRPHx8eymJKSErS2thqr58yERNwFo4tk0LvUjtZrbm6WG8rDbnZ21mhHynJ2dobLy0tcXFzg4OAAPLNYPcEDAwO5I88C7tUeMJJ5lnBoWVlZ0udNTU3GQdKK1JuLuLu7i52dHXR0dCjLJeXhdtvY2FD715vMEF18EH98ICid8TKpNYdJQA6UVSuyCFBpb+GcRwHzzbOIoWEX1JvVcmmUJCglVIBZsXAfrK2t5e+8G8Qcv3+aGuKdaFlLF4njw5gKKOVQqhZ3ACwtLeV5Jbom+Jv3AUMtpPqdVk1LS5PzIAD1LS4ulpWWl5eDB2NVVRV4fhUUFPBo+MR39RBvB+/Xv9+5b+WP38n/o1Cp/gJAdKz5nm6ZIAAAAABJRU5ErkJggg==
+
+ - 89210f0e-52b1-422f-9902-7951d4400654
+
+ - nohintOUT
+ - false
+ - 0
+ - true
+ - 0
+ - 6a184b65-baa3-42d1-a548-3915b401de53
+
+
+
+
+ -
+ 136
+ 73
+ 63
+ 20
+
+ -
+ 167.5
+ 83
+
+
+
+
+
+
+
+ - false
+ - Contains a collection of floating point numbers
+ -
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAQiSURBVEhL1VVbKLVpFN7ITnI+s5HDdj6fz5QoUeSQiUgOF27dqb+GXIyo/0a4kUMhKfqLnENEOYWEFLlkxAwKGzN65n1ee+9+Y/7/N1fTrFrtr/1977PWetaz1qv4r0xtYGDwKH7xL/wn4R8zExOT7a6uLqyurmJ5eRnz8/OYmprC6Ogo+vr60NLSgpqaGuTk5CApKQk+Pj4QCZ2Lo8pXhO+YkZFRnjj4R29vL+Li4qTHxsYiOjoakZGRCAsLQ3BwMPz9/SWwp6cnAgMDYW5ufmdoaPhJC/NNU1paWv42NDSEwsJCmR09MTFRBmKQiIgIhISESFBfX194e3tL9/LygghwLzBUr1D/YMbGxr9UVlb+2djYiJSUFKSlpUnnM4OwkqioKFlFUFAQ/Pz8kJ6ejoaGBlmJSO5JUPVFC/fO1E5OTo9tbW3Izs5Ge3s7BgcHMTIyguHhYfkfq2CA8PBw5Obmor+/H6enp1hbW4ObmxtcXV3ZC1YR9Qr5lQnulwsKClBaWoqBgQFsbm4iIyMDWVlZuLy8xP7+PpKTk2WAmJgYVFdXo6enB+fn59jb25Pgzs7OsLa2fhFBtrWwesuxs7PTFBcXQ1AkM1pcXNRTdHBwAI1Gg9bW1jcUVVVV4erqCkdHRzKAYADu7u4QKrwTmKWv0KKxIvtf4+PjQW9ubsb29rYMoGsyAzw9PWFjY+NNkxng+voaJycnUKlUcHR0lEE8PDxI1e8C20whOv+zra2thuDMjLzu7u5iZmZGL1PS8/z8jIuLizcyJU03NzcygIuLCxwcHGBjYyNVJZ4fRIDPChHpJiAgQB6is6k7OzuYnp6WdNB1AR4fH+U3/J4SJZ26AOTf3t6ePZCBQkNDOd03DPBZyOueZfNgd3e3bPDExIRUC51NJDgr4DeUp1qtRkVFhaTo+PhY0iOYgJWVlfxGqIoVtApXmJEv6phl19fXY2VlBWNjY/qqWNHDwwOWlpZk5gTn92VlZVJhh4eHMnvSw0o4L6Kvrz3QWqlSqbzjYeqd4OPj4zIgfWtrC7e3t3KgyC/BqZaSkhKcnZ3JBHTZs2eCIs6CXkXSqF3x4oXZNTU1yeVGcMqRHDMIn7n8FhYWpGrYA75bX1+X4DwrZuRFwL2bA1osdwklxkrq6urQ0dEhe9LZ2SnlyWmdnZ3F5OQkamtr5XalpOfm5lBeXo78/HxYWFiQ+/eTTBNVfBE8PpEGDs7XzowpRXLMhpJzHS0CVG5aoZxnAfPNXURTsQpWwGw5NDonKOWnA2ZDhfq4puV73g2ij9/fplr7JLR8T77F+tC7DpQ612VtZmYGU1NTuVFF1QT/4X1AUwqqLrgKEhISkJqaKgEyMzPl4mOmeXl54GIsKioC9xeXojjzsRtNa7xf/37n/sg/fif/j0yh+AuVqtAmN2lbmQAAAABJRU5ErkJggg==
+
+ - 6fb8450c-3afe-4a9e-89e5-66d8f96bc6fe
+
+ - floatOUT
+ - false
+ - 0
+ - true
+ - 0
+ - 9d51e32e-c038-4352-9554-f4137ca91b9a
+
+
+
+
+ -
+ 136
+ 93
+ 63
+ 20
+
+ -
+ 167.5
+ 103
+
+
+
+
+
+
+
+
+
+ - IiIiR3Jhc3Nob3BwZXIgU2NyaXB0IiIiDQphID0gIkhlbGxvIFB5dGhvbiAzIGluIEdyYXNzaG9wcGVyISINCnByaW50KGEpDQo=
+ - S
+
+
+
+
+ - mcneel.pythonnet.python
+ - 3.9.10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ iVBORw0KGgoAAAANSUhEUgAAAOEAAACWCAIAAACn9nhUAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAABVmSURBVHhe7ZxpUFVHvsDzIaVVSb7mw5sP71WMiXlxUuOWOHmUS7Y3ajLGfd9QcUMWIaIgyCIqRtzQGDRiEFREcEMBWRXZ931HFjUKgkpMysQsc9+P23d4jFGkhIv9Hv/fpM70PbdPd5/uX/+7z+WULwjC/wEMgqAr/+vodTNw8+bNGzduODs737t374cffvi+C3Qx2/9jHjx4UF1dvWHDBrrC1I99GDM6eu3atcbGRtQ8d+7c8uXL79+/39raysencvfuXVPqn1qbPhjh448//kiehw8fUuAvRu7cuUP5nOl4rZmgIjB9MA/cYF1d3cKFC1NTU7lf5rmpT/skZnT01q1b33333eTJkyl8woQJ9Dtn6G7F7du3W1pacEt9bG5uZmyamppqamo8PDxQja84njx5knHCRTLzUZVAjMGSkJCQq1evHjp0KCwsjMBTXFx84sQJsqkCuw9F0SRqBJrHvdBmEvX19Uw/0qZ8ZoDCqXTQoEF0nY2NDTdO7aZu7XuY0VFCoJWVFSXv3r2bZYtebmhoYICBRElJSVJS0qVLl9SQZGZmnj17lqsqKipWrFgRHx+fnp6OECkpKeTkJIm4uDikCQgImDFjBoVQeHZ29uLFiwcPHkyBlLZo0SLEUlV0B2IYTUpLS2MFYKPCx4KCAhJFRUV8a2dn5+TkRI20VuXvcairtLSUDdKmTZvoQF9f37686JvLUcIAQe7FF1+0t7enZFdXV2KPcpQjBrCQMdLTp0+PjY2NiYmZP38+HpOZDBMnTvT09Jw0aRJObN269cqVKw4ODmvWrJk9e3Z4ePi+fftGjRqVk5PDyaysLILu+vXrXVxc8vPzV61apeJcN6GQ0NBQjKfkdevWUQtNZSNBOiIiYsGCBXPmzGHaMOtMF/Q0OMrtbN68ma774IMPBg4cyKrCSVPn9jHM5SirNpGAYv38/CiZkMDJdkcxeOnSpbW1tceOHSNIYACBk2xEUKIpm9eff/6ZEeLbbdu2JSYmomNubm50dDQeYyeukBkjscfR0TEjI4Ojj48P53vEUYIxghJHqYXGBAcHMwd+//33tWvXEvj9/f2PHDnCNpH4arqgp0FHIre7uzsNYEq8+uqr7Oz77HJPJyhFe9hRepld1LBhw1577TUiqJeXV8c4SnevXLmyqqqKhZtIyYpGdOQ80RQjMRUDCJBBQUHe3t4EWiRGzdOnTxPYWPSJwexusRw7V69enZCQUFlZOXLkSEtLS+KNGubuQCHW1taHDx9m44usNABRuCMCPM3bvn0786FHJsOTUHGUiojW/fr1I2xzv6ae7XuYy1HAUfaIr7zyCis+vawGVcUevt2xYwcGsOFDBZ6TbG1teTggcGIqsZPM6BsVFRUYGMgz0/79+4kruEiC8Vu2bBkX7t27l4Fks8tmgCEkYBNNuZAquglTiCmBpkwAnsN4YiOosw9hXhG5k5OT2QSTgZaYLuhp6B8WmTFjxjAuLPTl5eXsjoyd2hcxo6METkaXxxqC0LRp01j9laPAAKgBJg+QmbWMb8nDSb4iAyfxlaNymqP6yJGtgiqBkxw5w96Xkzx+cd5YQ7egEDSlQEqmSXykeSrNt9QIPVLRk+A2mcA4ysRgiSCuq17qm5jRUaBn6V9iGztFJShD+yQ6/7YrdF4C1TfUm/4jbTrbKR0LfFLaHNBveXl5bL5//fVXJkZfFhTM6ygQkNh3fvHFF8Qhep+A91y41lDHsbKquqKyiiPtuN6AZ+pL7aCvcJRdeF9e4tvpPUeJo/Q+W89ehjrr62qvZBW5Hr44Y8vJyd7h07acWf11TGRKodHb59Ckp0JfiaPt9IajbK1wlPXxuQhRV3u1sLTC6WCkd1Dsf7udGGQdNNju+H+uCfv71ui0vFI0NeXTCRzNzc0VRxW95ygLPb1Pupe5Vlebnlcya2vYsj0XPnQN/4tj6AinU8PWnXnfLfJ4fH5D3bWq6jpTVm1gPufk5IijCrM7yrM2mvLMpARl3e8EMhjjyNNzdgUKqa+taaitKSkrP3A22Ss4cVdY8pehV8a6nx/qHGnhGX88IbepPqm2Oq+yus50TRd4pHk90tRHYD5nZ2fLe08KMzrK02hjY2Nra+uFCxesrKyIDU8dTta4goKCyspK0+c/wFcUwhBWVFRQBWn1SxAfUYcz7ddS09Wa6uMX06y/irTaF2N3MMEh4PLawGS7wymjPS8Od435r03JIYnpvzfZPWywvFYRU1HVVU3bqyBBpWxgHmkwzePISdrDFL116xb3TgvpEDKT4DYVfAWcV/mNV7dBCfn5+YsWLcrIyJD3nszoKL1P506dOpXCx40bR5reZyQeCyNHhi+//HLTpk1btmyJjY1lXHm8ZSBVBvVRlcD4EZsDAgIKCwv9/PwCAwObmprS09MPHz5MNlP+q9XRyTljXEIH2R7/s0PYnx1PDXY6N3h91DsuccPdYod5JFlszYlITjNcn2+oGvZ9nkNbCyqr1bXKeERRNaqPpDGM+/Ly8kpMTOTuqOvixYvUrn4uVZnJw+MO+Tl58uTJ9evXOzs7p6SkMF2PHDly5coVzp83cujQIfUegq+vLxeCqh0ohOmn3nuys7O7e/cuV6le7YOY0VHWqWXLllHynj17GCqGjd5nvB8Lo0LM+PDDD7Fz7dq1DCHKnjlzJjo6mrHnQhLqpL+//5QpU8rLyxcvXqz+Lvr2229TQvtfLElTT11NlVtg3GD7EyOcwoc5hQ91jnrPPXmkR8pfvdL/ujnnva2FNsFVDSXBhsKPDBlDH6aMry7NKq9sC3KALkwDCqcBfGSeFBcXh4aGsv7euXPH3t6eyYCdnM/MzExKSiopKUlLSzt9+jRikRg/fnxkZCSC0s74+PigoCAmKhKvWLGCk/fu3fPx8fH09OSW6Ra6iMcjaunYOfQVdfGteu9px44d8t5TGz3rKGGGMWh/78nFxYWu78RRhpBRt7CwUC9wMLSMItei3YEDBzBy27ZtrH3Ezp07d5INgWxsbAhLbNocHR15JkMOxpuqKY16rlZVrvaPG+x4arjz2ZEbY5yDUy4knY9PPRabGhKTHHop7cT1Qi9D4ThDyghDwuBfEyxqilLaHWUmEMtnz569atWqjRs30mya4e3tPWPGDLYitIqK5s6de/DgwVOnTu3du5cAOXnyZIIi2+7Lly+PGDGC4IqRKE74ZLGmeWjNfZEfy7mFzZs3//TTT/v37ycqNzc3c4OgagccTU1NpUa6buzYsfLek1kcZWzUe08MISUzeGoM1GA8Fpy2trYmarI4MqJowcBkZWXNmzePNX379u0ETgYbO1kfGWD2uDhqa2uLFhwZbCzhcoqinqtVFWsDLr3jFDFkQ4z1N1m3G7413JtuuDvZ0PS54doEQ/VHhvyRhitDDbF/MZz/jweRf6ssyS2rqFYtwVHUZG5g58qVK1kH+MhdEM9Yl2leTEwMYRtZw8PDEY6cTCGuQlwuoWH4ZGlpqWJtS0uLq6sreYiL586dY+GmQALk/fv32ai4u7tzoaq3HRWPVaX0g7z3pBTtYUcZJAZj6NChAwYMIM1IlJWV0fscH4sam/nz53NEtePHj8+aNYvVn7DK0o9/Tk5OxDY2ZwkJCajABpSwip2ENBZWwtu7777L5VTdVlpZWU1VeUBk5lC3+CEe6YEXU/7RaGtommCo/dRQNcZQ8p4he4gh+W1D7EBDxJ8M4f/WeHlLaXmN8bo2sMHDw4N5woqPagTFJUuWcBdIScikJTgaERHBxDhx4gR7aPzbvXs3wY/Qy66AlZ0LEZoWoiyNnDRpEtPMzc0N7SiH0iic/iEPxuOoqrcdNhtMRbwn0b9/f4qV95563lFgDBiel19+mRV/5syZPGHQ+wTXx6LGBhc57tq1ixEKCQlhjFkxMZXNKMGJKEsEQgW8QQ5CGsGGgSSk3b59m49IQxxVBVaUl+UXFjsFZ4zfmXP60pV/fLfCUPc3Q+lH3xetuV3o05zj3pzpdid5zb24pbcSvcuL80rLKtWFQPBDO9Zl9RInAZ4jDcAwyqci7ovdCBE0KioKa8PCwo4ePYqOZKN57FIwj6d1Fuvly5djJNtQOoQtJpsHAjMZkI8OYQZ+9dVXVGeq+J9QFK6r955ef/11+qQv/1BqRkcZpNbWVhZrViu2a4w0fW0ahCfAyHFkhDiyQ2VvwKrHSQXDz5FCKIrHFJVWRz5ykgwkjCWV8n8VbbWVxKSX5RekPqyyNJSONuRYtGZYN6V5tlx2vJ2wtio3oaj8WnH51ZLScuMVJiiENhDRSavylUZqmvEVR5Ugj9rAcFRNIpu6U1AThlvgXnCO/JRANkrjWxJcxcn2NrfDSSLxqFGj2NWQZs9DZ5q6te9hRkeBnqV/2ZCxj1QjwbETHsnQ8eOT0h354/my0pLK8sqq0rSfCucackYYLo8wxA0yXHjzXtziB+EW15P8ispquc6U+3G0l/mkSjvyx8x/vKor5eAuW22esX777Td578m8joL6WyjxQPU+4aTXKSkuKWvO9TCkvGOIHmg4+ydD6L83R1o3XbCryEkoKi035dIJAnNycjIbcflbKPSeo3T9c3K0qKi4rKQw+0a6X2vcgh/Pj7t/5u9NkQ6VWdFFJToKCjhKHBVHFb3naBGqtPnyXCgsLCotKKqgCUWFBUWF/K+ksLjc9KV+sFtNSkoSRxW95Ki9vX0hnrTJ8hwpKigsLigq4T/SpnNawp718uXLbOLFUTC7ozeN7z05OjryoNqJo4/96vk6Te0K0+deBEcTExOdnZ3lvScwo6M8jar3niIjIxcvXqwGu6CHwPjKykoKrDKSl5fHRkL9ZGPK0Q0ohK0zx4yMjM7bTDbui5yszleN0AYa0/bLU1mZapX6WarG+JIKTe1KJ5Cf/ejChQszMzPv37/PJDf1aZ/EjI6q956mT59O4Z988skjw6M8UL9BMq6urq5xcXEMpPqKk6RZ7Fjy1DMEQ95+lfpJcv/+/Ti0ffv2AwcO1NXVEXi+/vprLjQW3y2ogpIXLVrk5+fn6elJ1Uo1jjQAKZV2fExPT+cMm5nY2FgHBwc7O7ujR48yOU8Y4Zbj4+MDAwNDQ0PZ7VhbW69bty4lJYULTTU9AQqn2DfffJOuYysv7z0ZDTWDo6xTy5cvp+Tdu3ez/afT6X2OoCINjwXHjh3DLdI2NjbffPPNmTNnlJEMeVhY2IIFCy5duoQQISEhZ8+eJZt64D1y5Ai6z5s3DwPmzp371ltvUWZERMTs2bPRwljDs0MjmTMbN26cOXNmVFQUt8AESE1NRbW0tDQaQDooKAjVmA9Tp07dunUrZz777LNDhw6dP39+0qRJFy5c4CQlEP/UX8u4KXT/9NNPExISsrOz2/vhSZCfG3dycmKG0IE7d+6U957a6FlHCaIsbe3vPRE/srKy6H3sVCsgUXPatGkbNmwYM2YM471ixYqlS5dOmTLF398/JiaGsecS9e86kVi1ahX+ETgJq3zF4F28eHHlypWoTJroRS24zo4CoVUVzwyNRETmzPjx4zGMWJ6cnDxjxgwXFxfWBBbf4ODg9evXz5kzB41oPA3w8vLiRrjl+vp6TKUxGOnt7U1APXnypJWVFR2CviTQvb0TOoFQTSds2rSJrhs7duwbb7wh7z31vKNN//rvPfHM1NFR1nGGnGDz4MED/GM8EI5jeHg4ERcDGOmWlpYlS5awYhLP2DMQdJGY9RRTKZydn6WlJY5yIb5SiJubG2Khl6qiOyA6URPzaDMKenh40NRffvmFNvv6+tJIwtv777+vfmZnbqAjmRuM7zhjsK2t7a5du7gEq06dOkWzcff06dNMIbVbfSo4yk2x/6Hr5L0ncznK8LCLGjJkyIABA+hcupsIRO/nGmEsGVf2ZwTUzz//nCWbNKPCGsr2y93dHeHIzy6W1ZbVE0HZCRCf1AtQlIDurPVcgsd4wL5w+PDhaq1XVXQHRGcm4B8WItyePXuYCWw6qWvfvn0s2dT48ccfs3CzEwgICOChcNy4cYRVriW+fvvttyhOgku4ccpBX7YunMFRVUXnsJOJjo728fGhhP79+8+aNUvee+p5RwFHGbaXXnqpX79+LOv0O73P2g3IyraM4SdkTpw4EdV49GHI2Y8yMOo1FFZwoiM5kYAn3GXLlqEy17IrwAzc3bx5s4ph7EQJVMQt8qOXqqI7MHNY5dlGswGlFqIa8ZtK1fMT0ZSAja9sUVTbyEDgZ99JI2kGedhxMpdo6urVq9mt8gyEx+xQSZjq6BQu56rRo0czLkxyViR576mNHneU3VhrayvhcP78+TxS0O8dHSVEsY7z9MMmTz3q8i3n1fMEHzkyNqjMkfN4gOUk+KhKUAWqI9kYfvKQUFV0BwpR5ZNW5aMdaY6kqUg1g2zUSDtVI1VONUlUQp1XGThD+0m0VfA0KIr+sbCwYBqz8ZD3nszlKNCzRFO6mBWcmETvM0jAGLN8E0Q5z0ZNudUJ7RcqHvnYO3SstCtpeOZ2ojVxl/6R957AvI4Cm1GekFgccZTeZx1XMH7qtySiC7HWdFYwwhzGUR405W+h0BuO8gzOTjEjIwMvTYMgdApxlGcmnhGbm5tN/diHMbujwFrPs62vry8h85mXv74DXcR+lIWe50g29KZO7MP0hqONjY0s60QFHo2thS5gZWXl6ura0NBws2//CyWK3nCULT8bf+BpnccjoXNYbUpLS1taWm4Z/5kdUyf2YXrDUcWNGzfodKErSPjsSO85KgjPhjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KuiOOCrojjgq6I44KujOvzgqCHpiclQQ9OWFF/4HE59Us1VShOYAAAAASUVORK5CYII=
+
+
+
+
+
\ No newline at end of file