<snapdata remixID="12497836"><project name="SnapToOpenSCAD" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>Version 5.5.12&#xD;This project is based on Jens Codificaton example but produces runnable OpenSCAD scripts instead of SJ/Python/C type code</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="SnapToOpenSCAD" palette="single"><notes>Version 5.5.12&#xD;This project is based on Jens Codificaton example but produces runnable OpenSCAD scripts instead of SJ/Python/C type code</notes><palette><category name="Objects" color="96,96,96,1"/><category name="Transformations" color="184,134,11,1"/><category name="User Modules" color="197,5,255,1"/><category name="Actions" color="54,148,169,1"/></palette><hidden> forward turn turnLeft setHeading doFaceTowards gotoXY doGotoObject doGlide changeXPosition setXPosition changeYPosition setYPosition bounceOffEdge xPosition yPosition direction doSwitchToCostume doWearNextCostume getCostumeIdx doThinkFor doThink changeEffect setEffect clearEffects changeScale setScale getScale show hide goToLayer goBack playSound doPlaySoundUntilDone doStopAllSounds doRest doPlayNote doChangeTempo doSetTempo getTempo clear down up setColor changePenColorDimension setPenColorDimension changeSize setSize doStamp reportTouchingObject reportTouchingColor reportColorIsTouchingColor colorFiltered reportStackSize reportFrameCount doAsk reportLastAnswer getLastAnswer reportMouseX reportMouseY reportMouseDown reportKeyPressed reportRelationTo doResetTimer reportTimer getTimer reportAttributeOf reportURL reportGlobalFlag doSetGlobalFlag reportCONS reportCDR reportListContainsItem doInsertInList doReplaceInList reifyPredicate reportRound reportMonadic reportRandom reportLetter reportIsA reportVariadicIsIdentical receiveInteraction doBroadcastAndWait getLastMessage doWarp doWait doWaitUntil doForever doRepeat doUntil doStopThis fork evaluate doCallCC reportCallCC receiveOnClone createClone removeClone getPosition reportGetImageAttribute reportNewCostumeStretched reportNewCostume getEffect reportShown doPlaySoundAtRate reportGetSoundAttribute reportNewSoundFromSamples doSetInstrument changeVolume setVolume getVolume changePan setPan getPan playFreq stopFreq getPenDown getPenAttribute floodFill write reportPenTrailsAsCostume doPasteOn doCutFrom receiveCondition doTellTo reportAskFor newClone doPauseAll doSwitchToScene doDefineBlock doDeleteBlock doSetBlockAttribute reportEnvironment reportMousePosition reportAspect reportDate reportObject reportAudio reportVideo doSetVideoTransparency reportPower doDeleteAttr reportNumbers reportListIsEmpty reportKeep reportFindFirst reportConcatenatedLists reportCrossproduct doMapCodeOrHeader doMapValueCode doMapListCode reportMappedCode doRun doHideVar receiveUserEdit reportUnicodeAsLetter reportCombine reportVariadicSum reportVariadicProduct reportUnicode receiveMessage doBroadcast doReport reportPipe reportGet reportVariadicLessThan reportVariadicEquals reportVariadicGreaterThan reportVariadicAnd reportVariadicOr reportNot reportTextAttribute reportListAttribute reportMap doAddToList doDeleteFromList reportReshape reportModulus doShowVar doChangeVar doFor reportBlockAttribute reportDifference reportQuotient reifyScript reifyReporter reportBoolean reportTextSplit doSetVar reportAtan2 reportVariadicMin reportVariadicMax</hidden><headers></headers><code><string>&apos;&lt;#1&gt;&apos;</string><tempvars_delim>,</tempvars_delim><delim>,</delim><doSayFor>echo(&lt;#1&gt;);</doSayFor><bubble>echo(&lt;#1&gt;);</bubble><doIf>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;};</doIf><doIfElse>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;} else {&#xD;    &lt;#3&gt;&#xD;};</doIfElse><reportSum>(&lt;#1&gt; + &lt;#2&gt;)</reportSum><reportDifference>(&lt;#1&gt; - &lt;#2&gt;)</reportDifference><reportProduct>(&lt;#1&gt; * &lt;#2&gt;)</reportProduct><reportQuotient>(&lt;#1&gt; / &lt;#2&gt;)</reportQuotient><reportModulus>(&lt;#1&gt; % &lt;#2&gt;)</reportModulus><reportLessThan>(&lt;#1&gt; &lt; &lt;#2&gt;)</reportLessThan><reportEquals>(&lt;#1&gt; === &lt;#2&gt;)</reportEquals><reportGreaterThan>(&lt;#1&gt; &gt; &lt;#2&gt;)</reportGreaterThan><reportAnd>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</reportAnd><reportOr>(&lt;#1&gt; || &lt;#2&gt;)</reportOr><reportNot>(!&lt;#1&gt;)</reportNot><reportTrue>True</reportTrue><reportFalse>False</reportFalse><reportJoinWords>(&lt;#1&gt;, &lt;#2&gt;)</reportJoinWords><reportStringSize>(&lt;#1&gt;.length)</reportStringSize><doSetVar>&lt;#1&gt; = &lt;#2&gt;;</doSetVar><doChangeVar>&lt;#1&gt; += 1;</doChangeVar><doShowVar>console.log(&lt;#1&gt;);</doShowVar><doDeclareVariables></doDeclareVariables><reportNewList>[&lt;#1&gt;]</reportNewList><reportListLength>len(&lt;#1&gt;)</reportListLength><reportListItem>&lt;#2&gt;[&lt;#1&gt; - 1]</reportListItem><doAddToList>&lt;#2&gt;.push(&lt;#1&gt;);</doAddToList><doReport>return &lt;#1&gt;;</doReport><reportVariadicSum>(&lt;#1&gt; + &lt;#2&gt;)</reportVariadicSum><reportVariadicProduct>(&lt;#1&gt; * &lt;#2&gt;)</reportVariadicProduct><reportBoolean>&lt;#1&gt;</reportBoolean><reportListAttribute>(&lt;#1&gt;.length)</reportListAttribute><doFor>for ( &lt;#1&gt; = [&lt;#2&gt; : &lt;#3&gt;]){&#xD;    &lt;#4&gt;&#xD;};</doFor><reportVariadicLessThan>(&lt;#1&gt; &lt; &lt;#2&gt;)</reportVariadicLessThan><reportVariadicEquals>(&lt;#1&gt; === &lt;#2&gt;)</reportVariadicEquals><reportVariadicGreaterThan>(&lt;#1&gt; &gt; &lt;#2&gt;)</reportVariadicGreaterThan><reportVariadicAnd>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</reportVariadicAnd><reportVariadicOr>(&lt;#1&gt; || &lt;#2&gt;)</reportVariadicOr><doForEach>for ( &lt;#1&gt; = &lt;#2&gt;){&#xD;    &lt;#3&gt;&#xD;};</doForEach><reportIfElse>(&lt;#1&gt; ? &lt;#2&gt; : &lt;#3&gt;)</reportIfElse><reportListIndex>search(&lt;#1&gt;,&lt;#2&gt;)[0] + 1</reportListIndex></code><blocks><block-definition s="let %&apos;a&apos; be %&apos;value&apos;" type="command" category="other"><header></header><code>&lt;#1&gt; = &lt;#2&gt;;</code><translations></translations><inputs><input type="%upvar">a</input><input type="%s"></input></inputs><script><block s="doSetVar"><l>a</l><block var="value"/></block></script></block-definition><block-definition s="%&apos;a&apos; (default value %&apos;value&apos; )" type="reporter" category="other"><comment x="0" y="0" w="205.45454545454544" collapsed="false">user to define parameter names and default values in module definations</comment><header></header><code>&lt;#1&gt; = &lt;#2&gt;</code><translations></translations><inputs><input type="%upvar">a</input><input type="%s">0</input></inputs></block-definition><block-definition s="comment %&apos;comment&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">add comment</comment><header></header><code>// &lt;#1&gt;;&#xD;</code><translations></translations><inputs><input type="%mlt">description</input></inputs></block-definition><block-definition s="generate OpenSCAD script %&apos;script&apos;" type="command" category="Actions"><comment x="0" y="0" w="449.99999999999994" collapsed="true">generate OpenSCAD code and place it in the code variable when it can be exported.&#xD;&#xD;If JavaScript is enabled, then the code will be downloaded as the name of the sprite with .scad added&#xD;&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doSetVar"><l>debug</l><block s="reportNewList"><list></list></block></block><custom-block s="map to OpenSCAD"></custom-block><block s="doWarp"><script><block s="doSetVar"><l>ScriptEcho</l><l>start</l></block><block s="doSetVar"><l>existing module names</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>blocks</l><custom-block s="ensure 2D list %l"><block s="reportTextSplit"><block var="script"/><l><option>blocks</option></l></block></custom-block></block><custom-block s="$seperator-0.1"></custom-block><block s="doUntil"><block s="reportVariadicAnd"><list><custom-block s="%s = %s"><custom-block s="deep index of %s in %l"><block s="reifyScript"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><block s="reportNewList"><list></list></block></custom-block><block s="reportVariadicEquals"><list><custom-block s="deep indices of %s in %l"><l>User Modules</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportListItem"><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportGet"><l><option>categories</option></l></block></block><l>null</l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block><block s="reportNewList"><list></list></block></list></block></list><comment w="90" collapsed="false">iterate over script until no more substitons are needed</comment></block><script><block s="doSetVar"><l>ScriptEcho</l><l>in repeat</l></block><block s="doSetVar"><l>blocks</l><custom-block s="imported module defiinitions"></custom-block></block><block s="doSetVar"><l>ScriptEcho</l><block s="reportJoinWords"><block var="blocks"/></block></block><custom-block s="comment %mlt"><l>Finds any blocks that are in category User Module&#xD;and extracts the custom user module script and converts it to an OpendSCAD module defintion and &#xD;places it at the beginning of the script</l></custom-block><block s="doSetVar"><l>modules</l><custom-block s="create def modules from split script %s"><block var="blocks"/></custom-block></block><block s="doSetVar"><l>blocks</l><block s="reportMonadic"><l><option>id</option></l><block s="reportConcatenatedLists"><list><block var="modules"/><block var="blocks"/></list></block></block></block><block s="doSetVar"><l>modules</l><block s="reportNewList"><list></list></block></block><custom-block s="comment %mlt"><l>Replace the actual User Modules custom reporter with a module definition</l></custom-block><block s="doForEach"><l>item path</l><custom-block s="deep indices of %s in %l"><l>User Modules</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportListItem"><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportGet"><l><option>categories</option></l></block></block><l>null</l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block><script><custom-block s="comment %mlt"><l>Note the deep map used in next block is only required to overcome a little issue in V8 - it works without it in v9 of Snap!</l></custom-block><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportNewList"><list><block s="reifyReporter"><autolambda><custom-block s="module %s options: %mult%s"><l></l><list><l></l></list></custom-block></autolambda><list></list></block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block><l><option>word</option></l></block></block><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>slots</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block></block></list></block><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><l>0</l></list></block><l>0</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><l>false</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><l>true</l><l></l></block></block></block></autolambda><list></list></block><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block><l>2</l><l>-1</l></custom-block></custom-block></list></block></list></block><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block></custom-block><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportNewList"><list><block s="reportListItem"><l>1</l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>text</option></l></block><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><l></l><l>true</l></list></block><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><l></l><l>false</l></list></block><block s="reportJoinWords"><list><l>"</l><l></l><l>"</l></list></block><l></l></block><l></l></block><l></l></block></autolambda><list></list></block><block s="reportListItem"><l>3</l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block></block></list></block><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><comment w="90" collapsed="false">Check to see if any module parameters are plain text and if so - wrap &quot;&quot; around them as they probably are strings and not var names</comment></custom-block></script></block><block s="doSetVar"><l>ScriptEcho</l><block var="blocks"/></block><block s="doSetVar"><l>blocks</l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>2</l><l/></block></list></block></autolambda><list></list></block><list><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><custom-block s="remove duplicates ≡ %b from %l"><l><bool>false</bool></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="text %txt contains %txt"><block s="reportBlockAttribute"><l><option>label</option></l><block s="reportListItem"><l>1</l><l/></block></block><l>define</l></custom-block></autolambda><list></list></block><l/></block></custom-block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><custom-block s="text %txt contains %txt"><block s="reportBlockAttribute"><l><option>label</option></l><block s="reportListItem"><l>1</l><l/></block></block><l>define</l></custom-block></block></autolambda><list></list></block><l/></block></list></block></autolambda><list></list></block><list><block var="blocks"/></list></block></list><comment w="90" collapsed="false">remove duplicate module definitions</comment></block></block></script></block><block s="doSetVar"><l>ScriptEcho</l><block var="blocks"/></block><custom-block s="comment %mlt"><l>alter list indcies in polyhedron</l></custom-block><block s="doForEach"><l>path</l><custom-block s="deep indices of %s in %l"><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><autolambda><custom-block s="polyhedron lists of points: %br %mult%l %br lists of faces: %br %mult%l"><list><l/></list><list><l/></list></custom-block></autolambda><list></list></block></block><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><l>null</l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block><script><block s="doFor"><l>i</l><block s="reportListIndex"><block s="reportTextSplit"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></autolambda><list></list></block><l><option>blocks</option></l></block><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><block s="reportListAttribute"><l><option>length</option></l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block var="value"/><block s="reportDifference"><block var="value"/><l>1</l></block></block></autolambda><list><l>value</l><l>index</l></list></block><custom-block s="deep item from path %l %br of %l"><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><block var="i"/></list></block></list></block><block var="blocks"/></custom-block></block><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><block var="i"/></list></block></list></block><comment w="90" collapsed="false">convert base 1 list values to base 0 - feel this could be done simpler :)</comment></custom-block></script><comment w="90" collapsed="false">find out where the faces lists are by utilising fact that poyhedron reports length of points list</comment></block></script></block><custom-block s="comment %mlt"><l>change \ in stl import to /</l></custom-block><block s="doForEach"><l>path</l><custom-block s="deep indices of %s in %l"><block s="reifyReporter"><autolambda><custom-block s="stl file %txt"><l></l></custom-block></autolambda><list></list></block><block var="blocks"/></custom-block><script><block s="doSetVar"><l>path</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><l>2</l></list></block></list></block></block><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><custom-block s="replace %txt in %txt with %txt"><l>\</l><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>/</l></custom-block><block var="path"/></custom-block></script></block><custom-block s="comment %mlt"><l>process threads to auto fill in values</l></custom-block><block s="doForEach"><l>path</l><custom-block s="deep indices of %s in %l"><block s="reifyReporter"><autolambda><custom-block s="thread diameter: %n pitch: %s height: %n ( internal: %b taper: %n leadin: %s )"><l></l><l></l><l></l><l/><l></l><l></l></custom-block></autolambda><list></list></block><block var="blocks"/></custom-block><script><block s="doSetVar"><l>path</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><l>7</l></list></block></list></block></block><block s="doSetVar"><l>deep item</l><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block></block><block s="doIf"><block s="reportIsA"><block var="deep item"/><l><option>text</option></l></block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportDifference"><block s="reportListIndex"><block var="deep item"/><block s="reportNewList"><list><l>none</l><l>top</l><l>both</l><l>bottom</l></list></block></block><l>1</l></block><block var="path"/></custom-block></script><list></list><comment w="241.81818181818178" collapsed="true">replace leadin text with numerical value</comment></block></script></block><block s="doSetVar"><l>script</l><block s="reportJoinWords"><block var="blocks"/></block></block><custom-block s="comment %mlt"><l>main processing</l></custom-block><block s="doSetVar"><l>ScriptEcho</l><block var="script"/></block><block s="doSetVar"><l>code</l><custom-block s="tidy up %s"><block s="reportMappedCode"><block var="script"/></block></custom-block></block><block s="doSetVar"><l>code</l><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>10</l></block><l>_alpha=255;</l><block s="reportUnicodeAsLetter"><l>10</l></block><block var="code"/></list></block></block><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="text %txt contains %txt"><block var="code"/><l>_mirror_copy</l></custom-block><block s="reportNot"><custom-block s="text %txt contains %txt"><block var="code"/><l>module _mirror_copy</l></custom-block></block></list></block><script><block s="doSetVar"><l>code</l><block s="reportJoinWords"><list><l>module _mirror_copy(v = [1, 0, 0]) {&#xD;    children();&#xD;    mirror(v) children();&#xD;}</l><block s="reportUnicodeAsLetter"><l>10</l></block><block var="code"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="text %txt contains %txt"><block var="code"/><l>metric_thread</l></custom-block><block s="reportNot"><custom-block s="text %txt contains %txt"><block var="code"/><l>module metric_thread</l></custom-block></block></list></block><script><block s="doSetVar"><l>code</l><block s="reportJoinWords"><list><block s="reportJoinWords"><block s="reportNewList"><list><l>/*&#xD; * ISO-standard metric threads, following this specification:&#xD; *          http://en.wikipedia.org</l><l>/wiki/ISO_metric_screw_thread&#xD; *&#xD; * Copyright 2022 Dan Kirshner - dan_kirshner@yahoo.com&#xD; * This pro</l><l>gram is free software: you can redistribute it and/or modify&#xD; * it under the terms of the GNU Genera</l><l>l Public License as published by&#xD; * the Free Software Foundation, either version 3 of the License, o</l><l>r&#xD; * (at your option) any later version.&#xD; *&#xD; * This program is distributed in the hope that it will </l><l>be useful,&#xD; * but WITHOUT ANY WARRANTY; without even the implied warranty of&#xD; * MERCHANTABILITY or F</l><l>ITNESS FOR A PARTICULAR PURPOSE.  See the&#xD; * GNU General Public License for more details.&#xD; *&#xD; * See </l><l>&lt;http://www.gnu.org/licenses/&gt;.&#xD; *&#xD; * Version 2.7.  2022-02-27  Increase minimum thread segments.&#xD; *</l><l> Version 2.6.  2021-05-16  Contributed patches for leadin (thanks,&#xD;                             jeff</l><l>ery.spirko@tamucc.edu) and aligning thread&#xD;                             "facets" (triangulation) wit</l><l>h base cylinder&#xD;                             (thanks, rambetter@protonmail.com).&#xD; * Version 2.5.  20</l><l>20-04-11  Leadin option works for internal threads.&#xD; * Version 2.4.  2019-07-14  Add test option - d</l><l>o not render threads.&#xD; * Version 2.3.  2017-08-31  Default for leadin: 0 (best for internal threads)</l><l>.&#xD; * Version 2.2.  2017-01-01  Correction for angle; leadfac option.  (Thanks to&#xD; *                 </l><l>          Andrew Allen &lt;a2intl@gmail.com&gt;.)&#xD; * Version 2.1.  2016-12-04  Chamfer bottom end (low-z);</l><l> leadin option.&#xD; * Version 2.0.  2016-11-05  Backwards compatibility (earlier OpenSCAD) fixes.&#xD; * Ve</l><l>rsion 1.9.  2016-07-03  Option: tapered.&#xD; * Version 1.8.  2016-01-08  Option: (non-standard) angle.&#xD;</l><l> * Version 1.7.  2015-11-28  Larger x-increment - for small-diameters.&#xD; * Version 1.6.  2015-09-01  </l><l>Options: square threads, rectangular threads.&#xD; * Version 1.5.  2015-06-12  Options: thread_size, gro</l><l>ove.&#xD; * Version 1.4.  2014-10-17  Use "faces" instead of "triangles" for polyhedron&#xD; * Version 1.3. </l><l> 2013-12-01  Correct loop over turns -- don&apos;t have early cut-off&#xD; * Version 1.2.  2012-09-09  Use di</l><l>screte polyhedra rather than linear_extrude ()&#xD; * Version 1.1.  2012-09-07  Corrected to right-hand </l><l>threads!&#xD; */&#xD;&#xD;// Examples.&#xD;//&#xD;// Standard M8 x 1.&#xD;// metric_thread (diameter=8, pitch=1, length=4);&#xD;</l><l>&#xD;// Square thread.&#xD;// metric_thread (diameter=8, pitch=1, length=4, square=true);&#xD;&#xD;// Non-standard: </l><l>long pitch, same thread size.&#xD;//metric_thread (diameter=8, pitch=4, length=4, thread_size=1, groove=</l><l>true);&#xD;&#xD;// Non-standard: 20 mm diameter, long pitch, square "trough" width 3 mm,&#xD;// depth 1 mm.&#xD;//me</l><l>tric_thread (diameter=20, pitch=8, length=16, square=true, thread_size=6,&#xD;//               groove=tr</l><l>ue, rectangle=0.333);&#xD;&#xD;// English: 1/4 x 20.&#xD;//english_thread (diameter=1/4, threads_per_inch=20, le</l><l>ngth=1);&#xD;&#xD;// Tapered.  Example -- pipe size 3/4" -- per:&#xD;// http://www.engineeringtoolbox.com/npt-na</l><l>tional-pipe-taper-threads-d_750.html&#xD;// english_thread (diameter=1.05, threads_per_inch=14, length=3</l><l>/4, taper=1/16);&#xD;&#xD;// Thread for mounting on Rohloff hub.&#xD;//difference () {&#xD;//   cylinder (r=20, h=10</l><l>, $fn=100);&#xD;//&#xD;//   metric_thread (diameter=34, pitch=1, length=10, internal=true, n_starts=6);&#xD;//}&#xD;</l><l>&#xD;&#xD;// ----------------------------------------------------------------------------&#xD;function segments </l><l>(diameter) = min (150, max (ceil (diameter*6), 25));&#xD;&#xD;&#xD;// ------------------------------------------</l><l>----------------------------------&#xD;// diameter -    outside diameter of threads in mm. Default: 8.&#xD;/</l><l>/ pitch    -    thread axial "travel" per turn in mm.  Default: 1.&#xD;// length   -    overall axial le</l><l>ngth of thread in mm.  Default: 1.&#xD;// internal -    true = clearances for internal thread (e.g., a n</l><l>ut).&#xD;//               false = clearances for external thread (e.g., a bolt).&#xD;//               (Inter</l><l>nal threads should be "cut out" from a solid using&#xD;//               difference ()).  Default: false.</l><l>&#xD;// n_starts -    Number of thread starts (e.g., DNA, a "double helix," has&#xD;//               n_start</l><l>s=2).  See wikipedia Screw_thread.  Default: 1.&#xD;// thread_size - (non-standard) axial width of a sin</l><l>gle thread "V" - independent&#xD;//               of pitch.  Default: same as pitch.&#xD;// groove      - (n</l><l>on-standard) true = subtract inverted "V" from cylinder&#xD;//                (rather thanadd protruding</l><l> "V" to cylinder).  Default: false.&#xD;// square      - true = square threads (per&#xD;//               htt</l><l>ps://en.wikipedia.org/wiki/Square_thread_form).  Default:&#xD;//               false.&#xD;// rectangle   - (</l><l>non-standard) "Rectangular" thread - ratio depth/(axial) width&#xD;//               Default: 0 (standard</l><l> "v" thread).&#xD;// angle       - (non-standard) angle (deg) of thread side from perpendicular to&#xD;//   </l><l>            axis (default = standard = 30 degrees).&#xD;// taper       - diameter change per length (Nat</l><l>ional Pipe Thread/ANSI B1.20.1&#xD;//               is 1" diameter per 16" length). Taper decreases from</l><l> &apos;diameter&apos;&#xD;//               as z increases.  Default: 0 (no taper).&#xD;// leadin      - 0 (default): n</l><l>o chamfer; 1: chamfer (45 degree) at max-z end;&#xD;//               2: chamfer at both ends, 3: chamfer</l><l> at z=0 end.&#xD;// leadfac     - scale of leadin chamfer length (default: 1.0 = 1/2 thread).&#xD;// test   </l><l>     - true = do not render threads (just draw "blank" cylinder).&#xD;//               Default: false (d</l><l>raw threads).&#xD;module metric_thread (diameter=8, pitch=1, length=1, internal=false, n_starts=1,&#xD;     </l><l>                 thread_size=-1, groove=false, square=false, rectangle=0,&#xD;                      angl</l><l>e=30, taper=0, leadin=0, leadfac=1.0, test=false)&#xD;{&#xD;   // thread_size: size of thread "V" different </l><l>than travel per turn (pitch).&#xD;   // Default: same as pitch.&#xD;   local_thread_size = thread_size == -1</l><l> ? pitch : thread_size;&#xD;   local_rectangle = rectangle ? rectangle : 1;&#xD;&#xD;   n_segments = segments (d</l><l>iameter);&#xD;   h = (test &amp;&amp; ! internal) ? 0 : (square || rectangle) ? local_thread_size*local_rectangl</l><l>e/2 : local_thread_size / (2 * tan(angle));&#xD;&#xD;   h_fac1 = (square || rectangle) ? 0.90 : 0.625;&#xD;&#xD;   /</l><l>/ External thread includes additional relief.&#xD;   h_fac2 = (square || rectangle) ? 0.95 : 5.3/8;&#xD;&#xD;   </l><l>tapered_diameter = diameter - length*taper;&#xD;&#xD;   difference () {&#xD;      union () {&#xD;         if (! groo</l><l>ve) {&#xD;            if (! test) {&#xD;               metric_thread_turns (diameter, pitch, length, interna</l><l>l, n_starts,&#xD;                                    local_thread_size, groove, square, rectangle, angle</l><l>,&#xD;                                    taper);&#xD;            }&#xD;         }&#xD;&#xD;         difference () {&#xD;&#xD;  </l><l>          // Solid center, including Dmin truncation.&#xD;            if (groove) {&#xD;               cylin</l><l>der (r1=diameter/2, r2=tapered_diameter/2,&#xD;                         h=length, $fn=n_segments);&#xD;     </l><l>       } else if (internal) {&#xD;               cylinder (r1=diameter/2 - h*h_fac1, r2=tapered_diameter</l><l>/2 - h*h_fac1,&#xD;                         h=length, $fn=n_segments);&#xD;            } else {&#xD;&#xD;           </l><l>    // External thread.&#xD;               cylinder (r1=diameter/2 - h*h_fac2, r2=tapered_diameter/2 - h</l><l>*h_fac2,&#xD;                         h=length, $fn=n_segments);&#xD;            }&#xD;&#xD;            if (groove) </l><l>{&#xD;               if (! test) {&#xD;                  metric_thread_turns (diameter, pitch, length, inter</l><l>nal, n_starts,&#xD;                                       local_thread_size, groove, square, rectangle,&#xD;</l><l>                                       angle, taper);&#xD;               }&#xD;            }&#xD;         }&#xD;&#xD;   </l><l>      // Internal thread lead-in: take away from external solid.&#xD;         if (internal) {&#xD;&#xD;         </l><l>   // "Negative chamfer" z=0 end if leadin is 2 or 3.&#xD;            if (leadin == 2 || leadin == 3) {&#xD;</l><l>&#xD;               // Fixes by jeffery.spirko@tamucc.edu.&#xD;               cylinder (r1=diameter/2 - h + </l><l>h*h_fac1*leadfac,&#xD;                         r2=diameter/2 - h,&#xD;                         h=h*h_fac1*le</l><l>adfac, $fn=n_segments);&#xD;               /*&#xD;               cylinder (r1=diameter/2,&#xD;                  </l><l>       r2=diameter/2 - h*h_fac1*leadfac,&#xD;                         h=h*h_fac1*leadfac, $fn=n_segments</l><l>);&#xD;               */&#xD;            }&#xD;&#xD;            // "Negative chamfer" z-max end if leadin is 1 or 2.</l><l>&#xD;            if (leadin == 1 || leadin == 2) {&#xD;               translate ([0, 0, length + 0.05 - h*h_</l><l>fac1*leadfac]) {&#xD;&#xD;                  cylinder (r1=tapered_diameter/2 - h,&#xD;                           </l><l> h=h*h_fac1*leadfac,&#xD;                            r2=tapered_diameter/2 - h + h*h_fac1*leadfac,&#xD;     </l><l>                       $fn=n_segments);&#xD;                  /*&#xD;                  cylinder (r1=tapered_</l><l>diameter/2 - h*h_fac1*leadfac,&#xD;                            h=h*h_fac1*leadfac,&#xD;                     </l><l>       r2=tapered_diameter/2,&#xD;                            $fn=n_segments);&#xD;                  */&#xD;    </l><l>           }&#xD;            }&#xD;         }&#xD;      }&#xD;&#xD;      if (! internal) {&#xD;&#xD;         // Chamfer z=0 end </l><l>if leadin is 2 or 3.&#xD;         if (leadin == 2 || leadin == 3) {&#xD;            difference () {&#xD;        </l><l>       cylinder (r=diameter/2 + 1, h=h*h_fac1*leadfac, $fn=n_segments);&#xD;&#xD;               cylinder (r2</l><l>=diameter/2, r1=diameter/2 - h*h_fac1*leadfac, h=h*h_fac1*leadfac,&#xD;                         $fn=n_se</l><l>gments);&#xD;            }&#xD;         }&#xD;&#xD;         // Chamfer z-max end if leadin is 1 or 2.&#xD;         if (l</l><l>eadin == 1 || leadin == 2) {&#xD;            translate ([0, 0, length + 0.05 - h*h_fac1*leadfac]) {&#xD;    </l><l>           difference () {&#xD;                  cylinder (r=diameter/2 + 1, h=h*h_fac1*leadfac, $fn=n_s</l><l>egments);&#xD;&#xD;                  cylinder (r1=tapered_diameter/2, r2=tapered_diameter/2 - h*h_fac1*leadf</l><l>ac, h=h*h_fac1*leadfac,&#xD;                            $fn=n_segments);&#xD;               }&#xD;            }&#xD;</l><l>         }&#xD;      }&#xD;   }&#xD;}&#xD;&#xD;&#xD;// ---------------------------------------------------------------------</l><l>-------&#xD;// Input units in inches.&#xD;// Note: units of measure in drawing are mm!&#xD;module english_thread</l><l> (diameter=0.25, threads_per_inch=20, length=1,&#xD;                      internal=false, n_starts=1, th</l><l>read_size=-1, groove=false,&#xD;                      square=false, rectangle=0, angle=30, taper=0, lead</l><l>in=0,&#xD;                      leadfac=1.0, test=false)&#xD;{&#xD;   // Convert to mm.&#xD;   mm_diameter = diamete</l><l>r*25.4;&#xD;   mm_pitch = (1.0/threads_per_inch)*25.4;&#xD;   mm_length = length*25.4;&#xD;&#xD;   echo (str ("mm_di</l><l>ameter: ", mm_diameter));&#xD;   echo (str ("mm_pitch: ", mm_pitch));&#xD;   echo (str ("mm_length: ", mm_le</l><l>ngth));&#xD;   metric_thread (mm_diameter, mm_pitch, mm_length, internal, n_starts,&#xD;                  th</l><l>read_size, groove, square, rectangle, angle, taper, leadin,&#xD;                  leadfac, test);&#xD;}&#xD;&#xD;// </l><l>----------------------------------------------------------------------------&#xD;module metric_thread_tu</l><l>rns (diameter, pitch, length, internal, n_starts,&#xD;                            thread_size, groove, s</l><l>quare, rectangle, angle,&#xD;                            taper)&#xD;{&#xD;   // Number of turns needed.&#xD;   n_tur</l><l>ns = floor (length/pitch);&#xD;&#xD;   intersection () {&#xD;&#xD;      // Start one below z = 0.  Gives an extra tu</l><l>rn at each end.&#xD;      for (i=[-1*n_starts : n_turns+1]) {&#xD;         translate ([0, 0, i*pitch]) {&#xD;   </l><l>         metric_thread_turn (diameter, pitch, internal, n_starts,&#xD;                                th</l><l>read_size, groove, square, rectangle, angle,&#xD;                                taper, i*pitch);&#xD;      </l><l>   }&#xD;      }&#xD;&#xD;      // Cut to length.&#xD;      translate ([0, 0, length/2]) {&#xD;         cube ([diameter*</l><l>3, diameter*3, length], center=true);&#xD;      }&#xD;   }&#xD;}&#xD;&#xD;&#xD;// ------------------------------------------</l><l>----------------------------------&#xD;module metric_thread_turn (diameter, pitch, internal, n_starts, t</l><l>hread_size,&#xD;                           groove, square, rectangle, angle, taper, z)&#xD;{&#xD;   n_segments =</l><l> segments (diameter);&#xD;   fraction_circle = 1.0/n_segments;&#xD;   for (i=[0 : n_segments-1]) {&#xD;&#xD;      //</l><l> Keep polyhedron "facets" aligned -- circumferentially -- with base&#xD;      // cylinder facets.  (Patc</l><l>h contributed by rambetter@protonmail.com.)&#xD;      rotate ([0, 0, (i + 0.5)*360*fraction_circle + 90]</l><l>) {&#xD;         translate ([0, 0, i*n_starts*pitch*fraction_circle]) {&#xD;            //current_diameter =</l><l> diameter - taper*(z + i*n_starts*pitch*fraction_circle);&#xD;            thread_polyhedron ((diameter -</l><l> taper*(z + i*n_starts*pitch*fraction_circle))/2,&#xD;                               pitch, internal, n_</l><l>starts, thread_size, groove,&#xD;                               square, rectangle, angle);&#xD;         }&#xD;  </l><l>    }&#xD;   }&#xD;}&#xD;&#xD;&#xD;// ----------------------------------------------------------------------------&#xD;modul</l><l>e thread_polyhedron (radius, pitch, internal, n_starts, thread_size,&#xD;                          groov</l><l>e, square, rectangle, angle)&#xD;{&#xD;   n_segments = segments (radius*2);&#xD;   fraction_circle = 1.0/n_segme</l><l>nts;&#xD;&#xD;   local_rectangle = rectangle ? rectangle : 1;&#xD;&#xD;   h = (square || rectangle) ? thread_size*lo</l><l>cal_rectangle/2 : thread_size / (2 * tan(angle));&#xD;   outer_r = radius + (internal ? h/20 : 0); // Ad</l><l>ds internal relief.&#xD;   //echo (str ("outer_r: ", outer_r));&#xD;&#xD;   // A little extra on square thread -</l><l>- make sure overlaps cylinder.&#xD;   h_fac1 = (square || rectangle) ? 1.1 : 0.875;&#xD;   inner_r = radius </l><l>- h*h_fac1; // Does NOT do Dmin_truncation - do later with&#xD;                                // cylind</l><l>er.&#xD;&#xD;   translate_y = groove ? outer_r + inner_r : 0;&#xD;   reflect_x   = groove ? 1 : 0;&#xD;&#xD;   // Make t</l><l>hese just slightly bigger (keep in proportion) so polyhedra will&#xD;   // overlap.&#xD;   x_incr_outer = (!</l><l> groove ? outer_r : inner_r) * fraction_circle * 2 * PI * 1.02;&#xD;   x_incr_inner = (! groove ? inner_</l><l>r : outer_r) * fraction_circle * 2 * PI * 1.02;&#xD;   z_incr = n_starts * pitch * fraction_circle * 1.0</l><l>05;&#xD;&#xD;   /*&#xD;    (angles x0 and x3 inner are actually 60 deg)&#xD;&#xD;                          /\  (x2_inner</l><l>, z2_inner) [2]&#xD;                         /  \&#xD;   (x3_inner, z3_inner) /    \&#xD;                  [3]  </l><l> \     \&#xD;                        |\     \ (x2_outer, z2_outer) [6]&#xD;                        | \    /&#xD;</l><l>                        |  \  /|&#xD;             z          |[7]\/ / (x1_outer, z1_outer) [5]&#xD;         </l><l>    |          |   | /&#xD;             |   x      |   |/&#xD;             |  /       |   / (x0_outer, z0_ou</l><l>ter) [4]&#xD;             | /        |  /     (behind: (x1_inner, z1_inner) [1]&#xD;             |/         </l><l>| /&#xD;    y________|          |/&#xD;   (r)                  / (x0_inner, z0_inner) [0]&#xD;&#xD;   */&#xD;&#xD;   x1_oute</l><l>r = outer_r * fraction_circle * 2 * PI;&#xD;&#xD;   z0_outer = (outer_r - inner_r) * tan(angle);&#xD;   //echo (</l><l>str ("z0_outer: ", z0_outer));&#xD;&#xD;   //polygon ([[inner_r, 0], [outer_r, z0_outer],&#xD;   //        [oute</l><l>r_r, 0.5*pitch], [inner_r, 0.5*pitch]]);&#xD;   z1_outer = z0_outer + z_incr;&#xD;&#xD;   // Give internal squar</l><l>e threads some clearance in the z direction, too.&#xD;   bottom = internal ? 0.235 : 0.25;&#xD;   top    = i</l><l>nternal ? 0.765 : 0.75;&#xD;&#xD;   translate ([0, translate_y, 0]) {&#xD;      mirror ([reflect_x, 0, 0]) {&#xD;&#xD;  </l><l>       if (square || rectangle) {&#xD;&#xD;            // Rule for face ordering: look at polyhedron from ou</l><l>tside: points must&#xD;            // be in clockwise order.&#xD;            polyhedron (&#xD;               poi</l><l>nts = [&#xD;                         [-x_incr_inner/2, -inner_r, bottom*thread_size],         // [0]&#xD;   </l><l>                      [x_incr_inner/2, -inner_r, bottom*thread_size + z_incr], // [1]&#xD;              </l><l>           [x_incr_inner/2, -inner_r, top*thread_size + z_incr],    // [2]&#xD;                         </l><l>[-x_incr_inner/2, -inner_r, top*thread_size],            // [3]&#xD;&#xD;                         [-x_incr_o</l><l>uter/2, -outer_r, bottom*thread_size],         // [4]&#xD;                         [x_incr_outer/2, -out</l><l>er_r, bottom*thread_size + z_incr], // [5]&#xD;                         [x_incr_outer/2, -outer_r, top*t</l><l>hread_size + z_incr],    // [6]&#xD;                         [-x_incr_outer/2, -outer_r, top*thread_size</l><l>]             // [7]&#xD;                        ],&#xD;&#xD;               faces = [&#xD;                         [</l><l>0, 3, 7, 4],  // This-side trapezoid&#xD;&#xD;                         [1, 5, 6, 2],  // Back-side trapezoid</l><l>&#xD;&#xD;                         [0, 1, 2, 3],  // Inner rectangle&#xD;&#xD;                         [4, 7, 6, 5],</l><l>  // Outer rectangle&#xD;&#xD;                         // These are not planar, so do with separate triangle</l><l>s.&#xD;                         [7, 2, 6],     // Upper rectangle, bottom&#xD;                         [7, 3</l><l>, 2],     // Upper rectangle, top&#xD;&#xD;                         [0, 5, 1],     // Lower rectangle, botto</l><l>m&#xD;                         [0, 4, 5]      // Lower rectangle, top&#xD;                        ]&#xD;        </l><l>    );&#xD;         } else {&#xD;&#xD;            // Rule for face ordering: look at polyhedron from outside: po</l><l>ints must&#xD;            // be in clockwise order.&#xD;            polyhedron (&#xD;               points = [&#xD; </l><l>                        [-x_incr_inner/2, -inner_r, 0],                        // [0]&#xD;              </l><l>           [x_incr_inner/2, -inner_r, z_incr],                    // [1]&#xD;                         [x</l><l>_incr_inner/2, -inner_r, thread_size + z_incr],      // [2]&#xD;                         [-x_incr_inner/</l><l>2, -inner_r, thread_size],              // [3]&#xD;&#xD;                         [-x_incr_outer/2, -outer_r,</l><l> z0_outer],                 // [4]&#xD;                         [x_incr_outer/2, -outer_r, z0_outer + z_</l><l>incr],         // [5]&#xD;                         [x_incr_outer/2, -outer_r, thread_size - z0_outer + z</l><l>_incr], // [6]&#xD;                         [-x_incr_outer/2, -outer_r, thread_size - z0_outer]    // [7</l><l>]&#xD;                        ],&#xD;&#xD;               faces = [&#xD;                         [0, 3, 7, 4],  // Th</l><l>is-side trapezoid&#xD;&#xD;                         [1, 5, 6, 2],  // Back-side trapezoid&#xD;&#xD;                 </l><l>        [0, 1, 2, 3],  // Inner rectangle&#xD;&#xD;                         [4, 7, 6, 5],  // Outer rectangl</l><l>e&#xD;&#xD;                         // These are not planar, so do with separate triangles.&#xD;                </l><l>         [7, 2, 6],     // Upper rectangle, bottom&#xD;                         [7, 3, 2],     // Upper </l><l>rectangle, top&#xD;&#xD;                         [0, 5, 1],     // Lower rectangle, bottom&#xD;                 </l><l>        [0, 4, 5]      // Lower rectangle, top&#xD;                        ]&#xD;            );&#xD;         }&#xD; </l><l>     }&#xD;   }&#xD;}&#xD;&#xD;&#xD;</l></list></block></block><block s="reportUnicodeAsLetter"><l>10</l></block><block var="code"/></list></block></block></script><list></list></block><block s="doSetVar"><l>code as unicode</l><block s="reportListAttribute"><l><option>columns</option></l><block s="reportNewList"><list><block s="reportTextSplit"><block var="code"/><l><option>letter</option></l></block><block s="reportUnicode"><block var="code"/></block></list></block></block></block><block s="doDeclareVariables"><list><l>split code</l></list></block><block s="doSetVar"><l>split code</l><block s="reportTextSplit"><block var="code"/><l><option>line</option></l></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="code list"/></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="split code"/></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="split code"/></block><block var="code list"/></block></script></block><custom-block s="safely try %cs then if %upvar %cs"><script><custom-block s="file save prompt name: %s %br contents: %mlt extension: %s"><block s="reportJoinWords"><list><l>Snap_</l><block s="reportGet"><l><option>name</option></l></block></list></block><block var="code"/><l>.scad</l></custom-block></script><l>error</l><script><block s="doSetVar"><l>error</l><l>pass</l></block></script></custom-block></script></block></script><scripts><script x="781.3636363636363" y="2197.060606060607"><block s="reportListItem"><l>both</l><l/></block></script><script x="853.1818181818181" y="2009.6969696969686"><block s="reportListIndex"><l>thing</l><block s="reportNewList"><list><block s="reportNewList"><list><l></l><l></l></list></block><l></l><l></l><l></l></list></block></block></script><script x="869.7481356534089" y="996.6363636363627"><block s="doSetVar"><l>ScriptEcho</l><block var="modules"/></block><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>space</option></l></block></block></script><script x="1025.9999999999998" y="1100.9393939393956"><block s="reportJoinWords"><list><l></l><l></l></list></block></script><script x="874.181818181818" y="1149.1515151515164"><custom-block s="ensure list %s"><block var="imported module definition blocks"/></custom-block></script><script x="777.3636363636363" y="3140.272727272742"><block s="doApplyExtension"><l>err_error(msg)</l><list><l></l></list></block></script><script x="573.7272727272726" y="1487.4848484848533"><block s="doApplyExtension"><l>err_error(msg)</l><list><l>here</l></list></block></script><script x="591.9090909090908" y="1172.999999999999"><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportTextSplit"><block s="evaluate"><block s="reportJoinWords"><block s="reportCONS"><block s="reifyReporter"><autolambda><custom-block s="module definition %s from %s"><l></l><l></l></custom-block></autolambda><list></list></block><block s="reportCDR"><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep index of %s in %l"><block s="reifyReporter"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block></block></block><list></list></block><l><option>blocks</option></l></block><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep index of %s in %l"><block s="reifyReporter"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><l>1</l><l>-2</l></custom-block></custom-block></script><script x="639.181818181818" y="2526.6363636363685"><block s="doFor"><l>i</l><block s="reportVariadicSum"><list><block s="evaluate"><block s="reportJoinWords"><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><list></list></block><l>2</l></list></block><block s="reportListAttribute"><l><option>length</option></l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>thing</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block var="value"/><block s="reportDifference"><block var="value"/><l>1</l></block></block></autolambda><list><l>value</l><l>index</l></list></block><custom-block s="deep item from path %l %br of %l"><l/><block var="blocks"/></custom-block></block></custom-block><block s="reportNewList"><list><block var="i"/></list></block></list></block></custom-block><block s="reportNewList"><list><block var="i"/></list></block></list></block><comment w="90" collapsed="false">convert base 1 list values to base 0 - feel this could be done simpler :)</comment></custom-block></script><comment w="90" collapsed="false">find out where the faces lists are by utilising fact that poyhedron reports length of points list</comment></block></script><script x="540.3636363636364" y="3565.2727272727348"><custom-block s="comment %mlt"><l>fill in pitch based on diameter ANAMDODONED</l></custom-block><block s="doSetVar"><l>path</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><l>3</l></list><comment w="302.7272727272727" collapsed="true">fill in pitch automagically using diameter</comment></block></list></block></block><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>coarse</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportListItem"><l>1</l><block s="reportNewList"><list><block s="reportNewList"><list><l>M6</l><l>1</l></list></block><block s="reportNewList"><list><l>M7</l><l>1</l></list></block><block s="reportNewList"><list><l>M8</l><l>1.25</l></list></block><block s="reportNewList"><list><l>M10</l><l>1.5</l></list></block><block s="reportNewList"><list><l>M12</l><l>1.75</l></list></block><block s="reportNewList"><list><l>M14</l><l>2</l></list></block><block s="reportNewList"><list><l>M16</l><l>2</l></list></block><block s="reportNewList"><list><l>M18</l><l>2.5</l></list></block><block s="reportNewList"><list><l>M20</l><l>2.5</l></list></block><block s="reportNewList"><list><l>M22</l><l>2.5</l></list></block><block s="reportNewList"><list><l>M24</l><l>3</l></list></block><block s="reportNewList"><list><l>M27</l><l>3</l></list></block><block s="reportNewList"><list><l>M30</l><l>3.5</l></list></block><block s="reportNewList"><list><l>M33</l><l>3.5</l></list></block><block s="reportNewList"><list><l>M36</l><l>4</l></list></block><block s="reportNewList"><list><l>M39</l><l>4</l></list></block><block s="reportNewList"><list><l>M42</l><l>4.5</l></list></block><block s="reportNewList"><list><l>M48</l><l>5</l></list></block><block s="reportNewList"><list><l>M52</l><l>5</l></list></block><block s="reportNewList"><list><l>M56</l><l>5.5</l></list></block></list></block></block><block var="path"/><comment w="239.99999999999997" collapsed="true">Metric sizes&#xD;M1	R10	0.25	0.2&#xD;M1.2	R10	0.25	0.2          16	R10	2	1.5&#xD;M1.4	R20	0.3	0.2	           18	R20	2.5	2 or 1.5&#xD;M1.6	R10	0.35	0.2	         20	R10	2.5	2 or 1.5&#xD;M1.8	R20	0.35	0.2	         22	R20	2.5	2 or 1.5&#xD;M2	R10	0.4	0.25	            24	R10	3	2&#xD;M2.5	R10	0.45	0.35	       27	R20	3	2&#xD;M3	R10	0.5	0.35	             30	R10	3.5	2&#xD;M3.5	R20	0.6	0.35	          33	R20	3.5	2&#xD;M4	R10	0.7	0.5	               36	R10	4	3&#xD;M5	R10	0.8	0.5	               39	R20	4	3&#xD;M6	R10	1	0.75	                 42	R10	4.5	3&#xD;M7	R20	1	0.75	                 45	R20	4.5	3&#xD;M8	R10	1.25	1 or 0.75	     48	R10	5	3&#xD;M10	R10	1.5	1.25 or 1	      52	R20	5	4&#xD;M12	R10	1.75	1.5 or 1.25	 56	R10	5.5	4&#xD;M14	R20	2	1.5 </comment></custom-block></script><list></list></block></script><script x="686.4545454545453" y="3868.454545454566"><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>both</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>2</l><block var="path"/></custom-block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>none</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>0</l><block var="path"/></custom-block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>top</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>1</l><block var="path"/></custom-block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>bottom</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>3</l><block var="path"/></custom-block></script><list></list></block></script><script x="757.0369318181816" y="267.909090909091"><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><script x="778.2727272727271" y="197.54545454545448"><block s="doApplyExtension"><l>err_error(msg)</l><list><l>here</l></list></block></script><script x="760.9999999999999" y="326.6363636363636"><custom-block s="deep index of %s in %l"><l>thing</l><block var="blocks"/></custom-block></script><script x="763.6301491477273" y="439.6666666666696"><block var="sprite name"/></script><script x="755.5454545454544" y="482.9999999999997"><block s="reportJoinWords"><block s="reportCONS"><block s="reifyReporter"><autolambda><custom-block s="module definition %s from %s"><l></l><l></l></custom-block></autolambda><list></list></block><block s="reportCDR"><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep index of %s in %l"><block s="reifyReporter"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block></block></block></script><script x="764.6363636363635" y="675.7272727272721"><block s="doSetVar"><l>debug</l><l></l></block></script><script x="760.8036221590937" y="377.3030303030292"><block s="reportMonadic"><l><option>id</option></l><block s="reportConcatenatedLists"><list><block var="modules"/><block var="blocks"/></list></block></block></script></scripts></block-definition><block-definition s="move x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos; %&apos;object&apos;" type="reporter" category="Transformations"><header></header><code>translate([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%s">object</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="rotate x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos; %&apos;object&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="90" collapsed="false">rotate an object</comment><header></header><code>rotate([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%s">object</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="cube x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos;" type="reporter" category="Objects"><header></header><code>translate([0,0,&lt;#3&gt;*50/100])cube([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;],center=true)</code><translations></translations><inputs><input type="%n">20</input><input type="%n">20</input><input type="%n">20</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="cylinder height: %&apos;h&apos; radius: %&apos;r&apos; sides: %&apos;sides&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="90" collapsed="false">create vertical cylinder.</comment><header></header><code>translate([0,0,&lt;#1&gt;*50/100])rotate([0,0,-90])cylinder(&lt;#1&gt;,r=&lt;#2&gt;,$fn=&lt;#3&gt;,center=true)</code><translations></translations><inputs><input type="%n">20</input><input type="%n">10</input><input type="%n">64</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="cone height: %&apos;h&apos; bottom radius: %&apos;b&apos; top radius: %&apos;t&apos; sides: %&apos;sides&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="90" collapsed="false">create vertical cone</comment><header></header><code>translate([0,0,&lt;#1&gt;*50/100])rotate([0,0,-90])cylinder(&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;,$fn=&lt;#4&gt;,center=true)</code><translations></translations><inputs><input type="%n">20</input><input type="%n">10</input><input type="%n">0</input><input type="%n">64</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="wedge x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="90" collapsed="false">create a wedge</comment><header></header><code>translate([0,0,&lt;#3&gt;*50/100])translate([&lt;#1&gt;/2,-&lt;#2&gt;/2,-&lt;#3&gt;/2])rotate([0,-90,0])linear_extrude(&lt;#1&gt;)polygon(points=[[0,0],[&lt;#3&gt;,0],[0,&lt;#2&gt;]])</code><translations></translations><inputs><input type="%n">20</input><input type="%n">20</input><input type="%n">20</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;a&apos; + %&apos;b&apos;" type="reporter" category="operators"><header></header><code>(&lt;#1&gt; + &lt;#2&gt;)</code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;val1&apos; - %&apos;val2&apos;" type="reporter" category="operators"><header></header><code>(&lt;#1&gt; - &lt;#2&gt;)</code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportDifference"><block var="val1"/><block var="val2"/></block></block></script></block-definition><block-definition s="%&apos;a&apos; x %&apos;b&apos;" type="reporter" category="operators"><header></header><code>(&lt;#1&gt; * &lt;#2&gt;)</code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;val1&apos; / %&apos;val2&apos;" type="reporter" category="operators"><header></header><code>(&lt;#1&gt; / &lt;#2&gt;)</code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block var="val1"/><block var="val2"/></block></block></script></block-definition><block-definition s="map to OpenSCAD" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>&apos;&lt;#1&gt;&apos;</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l>,</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l>,</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="add colored: %clr object: %s"><color>145,26,68,1</color><l>object</l></custom-block></script><list></list></block><l><option>code</option></l><l>colorstart!£&lt;#1&gt;colorend!£&lt;#2&gt;;&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="add %s"><l>object</l></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;;&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l>name</l><list><l></l></list><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>module &lt;#1&gt;(&lt;#2&gt;) {&#xD;&lt;#3&gt;&#xD;};</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="group as one object %cs"><script></script></custom-block></autolambda><list></list></block><l><option>code</option></l><l>{&lt;#1&gt;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="_literal reporter %s"><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="_literal command %s"><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="user module %upvar options: %l"><l>name</l><l/></custom-block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;___(&lt;#2&gt;)___</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="cube x: %n y: %n z: %n"><l>0</l><l>0</l><l>0</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>translate([0,0,&lt;#3&gt;*50/100])cube([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;],center=true)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="sphere radius: %n sides: %n"><l>10</l><l>24</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>translate([0,0,2*&lt;#1&gt;*50/100])sphere(&lt;#1&gt;,$fn=&lt;#2&gt;,center=true)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="cylinder height: %n radius: %n sides: %n"><l>20</l><l>10</l><l>64</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>translate([0,0,&lt;#1&gt;*50/100])rotate([0,0,-90])cylinder(&lt;#1&gt;,r=&lt;#2&gt;,$fn=&lt;#3&gt;,center=true)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><l>20</l><l>10</l><l>0</l><l>64</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>translate([0,0,&lt;#1&gt;*50/100])rotate([0,0,-90])cylinder(&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;,$fn=&lt;#4&gt;,center=true)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="wedge x: %n y: %n z: %n"><l>20</l><l>20</l><l>20</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>translate([0,0,&lt;#3&gt;*50/100])translate([&lt;#1&gt;/2,-&lt;#2&gt;/2,-&lt;#3&gt;/2])rotate([0,-90,0])linear_extrude(&lt;#1&gt;)polygon(points=[[0,0],[&lt;#3&gt;,0],[0,&lt;#2&gt;]])</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="roof x: %n y: %n z: %n"><l>0</l><l>0</l><l>0</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>translate([0,0,&lt;#3&gt;*50/100])translate([-&lt;#1&gt;/2,&lt;#2&gt;/2,-&lt;#3&gt;/2])rotate([90,0,0])linear_extrude(&lt;#2&gt;)polygon(points=[[0,0],[&lt;#1&gt;/2,&lt;#3&gt;],[&lt;#1&gt;,0]])</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="round roof length: %n radius: %n sides: %n"><l>20</l><l>10</l><l>32</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>translate([0,0,&lt;#2&gt;*50/100])difference(){&#xD;translate([0,0,-&lt;#2&gt;/2])rotate([90,0,0])cylinder(&lt;#1&gt;,r=&lt;#2&gt;,$fn=&lt;#3&gt;*2,center=true);&#xD;translate([0,0,-&lt;#2&gt;*1.5])cube([&lt;#1&gt;+0.01,(&lt;#2&gt;*2)+0.01,&lt;#2&gt;*2],center=true);};</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="dome radius: %n sides: %n"><l>10</l><l>24</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>difference(){&#xD;sphere(&lt;#1&gt;,$fn=&lt;#2&gt;*2);&#xD;translate([0,0,-&lt;#1&gt;])cube([(&lt;#1&gt;*2)+0.01,(&lt;#1&gt;*2)+0.01,&lt;#1&gt;*2],center=true);};</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="2D polygon %mult%l"><list><l/></list></custom-block></autolambda><list></list></block><l><option>code</option></l><l>polygon(points=[&lt;#1&gt;])</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="text %txt size %n font: %txt align x: %txt y: %txt z: %txt height: %n direction: %txt"><l>OpenSCAD</l><l></l><l></l><l></l><l></l><l></l><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>linear_extrude(&lt;#7&gt;)text("&lt;#1&gt;",size=&lt;#2&gt;,font="&lt;#3&gt;",halign="&lt;#4&gt;",valign="&lt;#5&gt;",direction="&lt;#8&gt;");</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="pyramid x: %n y: %n z: %n"><l>20</l><l>20</l><l>20</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>polyhedron(&#xD;  points=[ [&lt;#1&gt;/2,&lt;#2&gt;/2,0],[&lt;#1&gt;/2,-&lt;#2&gt;/2,0],[-&lt;#1&gt;/2,-&lt;#2&gt;/2,0],[-&lt;#1&gt;/2,&lt;#2&gt;/2,0], // the four points at base&#xD;           [0,0,&lt;#3&gt;]  ],                                 // the apex point &#xD;  faces=[ [0,1,2],[2,3,0],[0,1,4],[1,2,4],              // each triangle side&#xD;              [2,3,4],[3,0,4] ]                         // two triangles for square base&#xD; )&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="stl file %txt"><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>import("&lt;#1&gt;")</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="polyhedron lists of points: %br %mult%l %br lists of faces: %br %mult%l"><list><l/></list><list><l/></list></custom-block></autolambda><list></list></block><l><option>code</option></l><l>polyhedron(&#xD;  points=[ &lt;#1&gt;] , &#xD;  faces=[ &lt;#2&gt; ]&#xD; )&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="thread diameter: %n pitch: %s height: %n ( internal: %b taper: %n leadin: %s )"><l>8</l><l>20</l><l></l><l/><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>metric_thread (&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;,internal=&lt;#4&gt;,taper=&lt;#5&gt;,leadin=&lt;#6&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="module %s options: %mult%s"><l></l><list><l></l></list></custom-block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;(&lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>0</l><l>thing</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>translate([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>0</l><l>thing</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>rotate([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="scale x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>0</l><l>thing</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>scale([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="resize x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>0</l><l>object</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>resize([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="color r: %n g: %n b: %n %s"><l>0</l><l>0</l><l>0</l><l>object</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>color([&lt;#1&gt;/255,&lt;#2&gt;/255,&lt;#3&gt;/255],alpha=_alpha)&lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="mirror x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>0</l><l>thing</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>mirror([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="linear extrude %n %s"><l>20</l><l>thing</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>linear_extrude(&lt;#1&gt;)&lt;#2&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="intersection of %s with %s"><l>object1</l><l>object2</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>intersection(){&#xD;    &lt;#1&gt;;&#xD;    &lt;#2&gt;;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="join %s to %s"><l>object1</l><l>object2</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>union(){&#xD;scale([1.01,1.01,1.01])&lt;#1&gt;;&#xD;&lt;#2&gt;;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="make hole in %s using %s"><l>object1</l><l>object2</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>difference(){&#xD;    &lt;#1&gt;;&#xD;    {&#xD;        translate([0.01,0,0])&lt;#2&gt;;&#xD;        translate([-0.01,0,0])&lt;#2&gt;;&#xD;        translate([0,0.01,0])&lt;#2&gt;;&#xD;        translate([0,-0.01,0])&lt;#2&gt;;&#xD;        translate([0,0,0.01])&lt;#2&gt;;&#xD;        translate([0,0,-0.01])&lt;#2&gt;;&#xD;    };&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="render %s"><l>object</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>render()&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="mirror copy x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>0</l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>_mirror_copy([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="hollow out leaving thickness: %n %s"><l>0.8</l><l>object</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>union(){&#xD;    difference(){&lt;#2&gt;;translate([0,0,&lt;#1&gt;])&lt;#2&gt;;};&#xD;    difference(){&lt;#2&gt;;translate([&lt;#1&gt;,0,0.01])&lt;#2&gt;;};&#xD;    difference(){&lt;#2&gt;;translate([-&lt;#1&gt;,0,0.01])&lt;#2&gt;;};&#xD;    difference(){&lt;#2&gt;;translate([0,&lt;#1&gt;,0.01])&lt;#2&gt;;};&#xD;    difference(){&lt;#2&gt;;translate([0,-&lt;#1&gt;,0.01])&lt;#2&gt;;};&#xD;};</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="make %s hole in %s using %s"><l>definite</l><l>object1</l><l>object2</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>difference(){&#xD;    &lt;#2&gt;;&#xD;    if ("&lt;#1&gt;" == "simple") &#xD;      {&#xD;        &lt;#3&gt;;&#xD;      } else {&#xD;        translate([0.01,0,0])&lt;#3&gt;;&#xD;        translate([-0.01,0,0])&lt;#3&gt;;&#xD;        translate([0,0.01,0])&lt;#3&gt;;&#xD;        translate([0,-0.01,0])&lt;#3&gt;;&#xD;        translate([0,0,0.01])&lt;#3&gt;;&#xD;        translate([0,0,-0.01])&lt;#3&gt;;&#xD;      };&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="let %upvar be %s"><l>a</l><l>0</l></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%upvar (default value %s )"><l>a</l><l>0</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="comment %mlt"><l>description</l></custom-block></script><list></list></block><l><option>code</option></l><l>// &lt;#1&gt;;&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="comment out for debugging purposes %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>*translate([0,0,0]){&lt;#1&gt;};&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="for %upvar = %n to %n step %n %cs"><l>i</l><l>1</l><l>10</l><l>1</l><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>for ( &lt;#1&gt; = [&lt;#2&gt; : &lt;#4&gt; : &lt;#3&gt;]){&#xD;    &lt;#5&gt;&#xD;};</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><l><option>code</option></l><l>[&lt;#1&gt;]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;-1)[&lt;#2&gt;]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListIndex"><l>thing</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>search(&lt;#1&gt;,&lt;#2&gt;)[0] + 1</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doForEach"><l>item</l><l/><script></script></block></script><list></list></block><l><option>code</option></l><l>for ( &lt;#1&gt; = &lt;#2&gt;){&#xD;    &lt;#3&gt;&#xD;};</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n - %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n / %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="%s = %s"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; == &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="%s &gt; %s"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="%s &lt; %s"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="$bool-0.01 %b"><l><bool>true</bool></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="not %b"><l/></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(!&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="%b and %b"><l/><l/></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="%b or %b"><l/><l/></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; || &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="join %txt %txt"><l>hello</l><l>World</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="&quot; %s &quot;"><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>"&lt;#1&gt;"</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="is %s a text ?"><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>is_string(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.length)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#2&gt;[&lt;#1&gt; - 1]</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doAddToList"><l>thing</l><l/></block></script><list></list></block><l><option>code</option></l><l>&lt;#2&gt;.push(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>echo(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>echo(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block><l><option>code</option></l><l>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;};</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;} else {&#xD;    &lt;#3&gt;&#xD;};</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportIfElse"><l/><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; ? &lt;#2&gt; : &lt;#3&gt;)</l></block></script><scripts><script x="566.4545454545455" y="2765.7272727272816"><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="is %s a Number?"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(typeof &lt;#1&gt; === &apos;number&apos;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.toString())</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>function fact(n) {&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>function fib(n) {&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fib(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doShowVar"><l></l></block></script><list></list></block><l><option>code</option></l><l>console.log(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doHideVar"><l></l></block></script><list></list></block><l><option>code</option></l><l></l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fact(&lt;#1&gt;)</l></block></script><script x="631.8181818181818" y="1019.5878787878788"><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="minkowski x: %n y: %n z: %n corner radius: %n"><l>20</l><l>20</l><l>20</l><l>3</l></custom-block></script><list></list></block><l><option>code</option></l><l>module _minkowski (x,y,z,r) {$fn=64;&#xD;minkowski()&#xD;{&#xD;  cube([x-2*r,y-2*r,z/2],center=true);&#xD;  cylinder(r=r,h=z/2,center=true);&#xD;};&#xD;};</l></block></script><script x="638.2727272727271" y="2113"><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="special list %l"><l/></custom-block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l></l></block></script><script x="460.9090909090909" y="2593.587878787876"><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; += 1;</l></block></script><script x="564.5454545454545" y="3099.8303030302964"><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>return &lt;#1&gt;;</l></block></script><script x="565.4545454545454" y="2312.1939393939338"><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>for ( &lt;#1&gt; = [&lt;#2&gt; : &lt;#3&gt;]){&#xD;    &lt;#4&gt;&#xD;};</l></block></script></scripts></block-definition><block-definition s="add colored: %&apos;newcolor&apos; object: %&apos;object&apos;" type="command" category="Actions"><comment x="0" y="0" w="165.45454545454544" collapsed="false">add.an object to the project&#xD;&#xD;The color picker of the object in the OpenSCAD preview can be set using the colour picker</comment><header></header><code>colorstart!£&lt;#1&gt;colorend!£&lt;#2&gt;;&#xD;</code><translations></translations><inputs><input type="%clr"></input><input type="%s">object</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="add %&apos;object&apos;" type="command" category="Actions"><header></header><code>&lt;#1&gt;;&#xD;</code><translations></translations><inputs><input type="%s">object</input></inputs></block-definition><block-definition s="sphere radius: %&apos;radius&apos; sides: %&apos;sides&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="90" collapsed="false">create a sphere</comment><header></header><code>translate([0,0,2*&lt;#1&gt;*50/100])sphere(&lt;#1&gt;,$fn=&lt;#2&gt;,center=true)</code><translations></translations><inputs><input type="%n">10</input><input type="%n">24</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="roof x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos;" type="reporter" category="Objects"><header></header><code>translate([0,0,&lt;#3&gt;*50/100])translate([-&lt;#1&gt;/2,&lt;#2&gt;/2,-&lt;#3&gt;/2])rotate([90,0,0])linear_extrude(&lt;#2&gt;)polygon(points=[[0,0],[&lt;#1&gt;/2,&lt;#3&gt;],[&lt;#1&gt;,0]])</code><translations></translations><inputs><input type="%n">20</input><input type="%n">20</input><input type="%n">20</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="round roof length: %&apos;h&apos; radius: %&apos;r&apos; sides: %&apos;sides&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="90" collapsed="false">create a round roof object</comment><header></header><code>translate([0,0,&lt;#2&gt;*50/100])difference(){&#xD;translate([0,0,-&lt;#2&gt;/2])rotate([90,0,0])cylinder(&lt;#1&gt;,r=&lt;#2&gt;,$fn=&lt;#3&gt;*2,center=true);&#xD;translate([0,0,-&lt;#2&gt;*1.5])cube([&lt;#1&gt;+0.01,(&lt;#2&gt;*2)+0.01,&lt;#2&gt;*2],center=true);};</code><translations></translations><inputs><input type="%n">20</input><input type="%n">10</input><input type="%n">32</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="dome radius: %&apos;r&apos; sides: %&apos;sides&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="90" collapsed="false">create a round roof object</comment><header></header><code>difference(){&#xD;sphere(&lt;#1&gt;,$fn=&lt;#2&gt;*2);&#xD;translate([0,0,-&lt;#1&gt;])cube([(&lt;#1&gt;*2)+0.01,(&lt;#1&gt;*2)+0.01,&lt;#1&gt;*2],center=true);};</code><translations></translations><inputs><input type="%n">10</input><input type="%n">24</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="scale x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos; %&apos;object&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="90" collapsed="false">scale an object</comment><header></header><code>scale([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</code><translations></translations><inputs><input type="%n">1</input><input type="%n">1</input><input type="%n">1</input><input type="%s">object</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="resize x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos; %&apos;object&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="90" collapsed="false">rersize an object</comment><header></header><code>resize([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%s">object</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="color r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos; %&apos;object&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="90" collapsed="false">color the object  - values are from 0 to 1</comment><header></header><code>color([&lt;#1&gt;/255,&lt;#2&gt;/255,&lt;#3&gt;/255],alpha=_alpha)&lt;#4&gt;</code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%s">object</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="mirror x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos; %&apos;object&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="146.36363636363635" collapsed="false">mirror the object in one or more of the axii&#xD;&#xD;Note this moves the object - it doesn&apos;t create an extra one</comment><header></header><code>mirror([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</code><translations></translations><inputs><input type="%n" readonly="true">1<options>0&#xD;1</options></input><input type="%n" readonly="true">0<options>0&#xD;1</options></input><input type="%n" readonly="true">0<options>0&#xD;1</options></input><input type="%s">object</input></inputs></block-definition><block-definition s="%&apos;newcolor&apos; intersection of %&apos;object1&apos; with %&apos;object2&apos;" type="command" category="other" helper="true"><comment x="0" y="0" w="90" collapsed="false">create a new object from the intersection of the two objects</comment><header></header><code>colorstart!£&lt;#1&gt;colorend!£intersection(){&#xD;&lt;#2&gt;;&#xD;&lt;#3&gt;;};</code><translations></translations><inputs><input type="%clr"></input><input type="%s">object1</input><input type="%s">object2</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;newcolor&apos; subtract %&apos;object1&apos; from %&apos;object2&apos;" type="command" category="other" helper="true"><comment x="0" y="0" w="162.72727272727272" collapsed="false">subtract the second object where it intersects with the first one, from the first one&#xD;</comment><header></header><code>colorstart!£&lt;#1&gt;colorend!£difference(){&#xD;&lt;#3&gt;;&#xD;&lt;#2&gt;;};</code><translations></translations><inputs><input type="%clr"></input><input type="%s">object1</input><input type="%s">object2</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;newcolor&apos; join %&apos;object1&apos; to %&apos;object2&apos;" type="command" category="other" helper="true"><comment x="0" y="0" w="143.63636363636363" collapsed="false">join two objects to become one&#xD;&#xD;The equivalent of a logical OR&#xD;&#xD;The two objects must overlap to avoid issues in OpenSCAd if exported to an stl file for 3D printing</comment><header></header><code>colorstart!£&lt;#1&gt;colorend!£union(){&#xD;scale([1.01,1.01,1.01])&lt;#2&gt;;&#xD;&lt;#3&gt;;};</code><translations></translations><inputs><input type="%clr"></input><input type="%s">object1</input><input type="%s">object2</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="linear extrude %&apos;height&apos; %&apos;object&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="90" collapsed="false">used to turn a 2D shape generated by polygon into a 3D object</comment><header></header><code>linear_extrude(&lt;#1&gt;)&lt;#2&gt;</code><translations></translations><inputs><input type="%n">20</input><input type="%s">2D polygon</input></inputs></block-definition><block-definition s="define module %&apos;name&apos; $nl options: %&apos;options&apos; %&apos;elements&apos;" type="command" category="Actions"><comment x="0" y="0" w="90" collapsed="false">add a set of operations under one name.</comment><header></header><code>module &lt;#1&gt;(&lt;#2&gt;) {&#xD;&lt;#3&gt;&#xD;};</code><translations></translations><inputs><input type="%upvar"></input><input type="%mult%s"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>name</l><custom-block s="name of var %anyUE"><block var="name"/></custom-block></block></script></block-definition><block-definition s="2D polygon %&apos;points&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="168.18181818181827" collapsed="false">each value should a 2 element list of x and y co-ordinates&#xD;&#xD;draw a 2D polygon&#xD;&#xD;Use linear_extrude to turn it into a 3D shape&#xD;</comment><header></header><code>polygon(points=[&lt;#1&gt;])</code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="map to JavaScript" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>&apos;&lt;#1&gt;&apos;</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l>,</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l>,</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>console.log(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>console.log(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="main %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block><l><option>code</option></l><l>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;} else {&#xD;    &lt;#3&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>return &lt;#1&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="while %boolUE %ca"><l/><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>while (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>for (var &lt;#1&gt; = &lt;#2&gt;; &lt;#1&gt; &lt;= &lt;#3&gt;; &lt;#1&gt; += 1) {&#xD;    &lt;#4&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportModulus"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; % &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; === &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; || &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(!&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="join %txt %txt"><l>hello</l><l>World</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportTextAttribute"><l><option>length</option></l><l>world</l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.length)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="is %s a Number?"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(typeof &lt;#1&gt; === &apos;number&apos;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.toString())</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>function fact(n) {&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fact(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>function fib(n) {&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fib(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; += 1;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doShowVar"><l></l></block></script><list></list></block><l><option>code</option></l><l>console.log(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doHideVar"><l></l></block></script><list></list></block><l><option>code</option></l><l></l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l>var &lt;#1&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><l><option>code</option></l><l>[&lt;#1&gt;]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><script></script><list></list></block><l><option>code</option></l><l>[]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.length)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#2&gt;[&lt;#1&gt; - 1]</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doAddToList"><l>thing</l><l/></block></script><list></list></block><l><option>code</option></l><l>&lt;#2&gt;.push(&lt;#1&gt;);</l></block></script></block-definition><block-definition s="map to Smalltalk" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>&apos;&lt;#1&gt;&apos;</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l></l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l></l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>Transcript&#xD;    show: &lt;#1&gt;;&#xD;    cr.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>Transcript&#xD;    show: &lt;#1&gt;;&#xD;    cr.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="main %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; ifTrue: [&#xD;    &lt;#2&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;&#xD;    ifTrue: [&#xD;        &lt;#2&gt;]&#xD;    ifFalse: [&#xD;        &lt;#3&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="while %boolUE %ca"><l/><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>[&lt;#1&gt;] whileTrue: [&#xD;    &lt;#2&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>(&lt;#2&gt; to: &lt;#3&gt;) do: [:&lt;#1&gt; |&#xD;    &lt;#4&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportModulus"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; \\ &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; = &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; and: [&lt;#2&gt;])</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; or: [&lt;#2&gt;])</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; not)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="join %txt %txt"><l>hello</l><l>World</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;, &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportTextAttribute"><l><option>length</option></l><l>world</l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; size)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="is %s a Number?"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; isNumber)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; printString)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>| fact |&#xD;fact := [:n| &lt;body&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(fact value: &lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>| fib |&#xD;fib := [:n | &lt;body&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(fib value: &lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; := &lt;#2&gt;.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; := &lt;#1&gt; + 1.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doShowVar"><l></l></block></script><list></list></block><l><option>code</option></l><l>Transcript&#xD;    show: &lt;#1&gt;;&#xD;    cr.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doHideVar"><l></l></block></script><list></list></block><l><option>code</option></l><l></l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l>| &lt;#1&gt; |</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><l><option>code</option></l><l>#(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><script></script><list></list></block><l><option>code</option></l><l>(OrderedCollection new)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; size)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#2&gt; at: &lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doAddToList"><l>thing</l><l/></block></script><list></list></block><l><option>code</option></l><l>&lt;#2&gt; add: &lt;#1&gt;.</l></block></script></block-definition><block-definition s="map to Python" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>"&lt;#1&gt;"</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l>,</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l>,</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>print &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>print &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="main %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block><l><option>code</option></l><l>if &lt;#1&gt;:&#xD;    &lt;#2&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>if &lt;#1&gt;:&#xD;    &lt;#2&gt;&#xD;else: &#xD;    &lt;#3&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>return &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="while %boolUE %ca"><l/><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>while &lt;#1&gt;:&#xD;    &lt;#2&gt;&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>for &lt;#1&gt; in range(&lt;#2&gt;, &lt;#3&gt;):&#xD;    &lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportModulus"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; % &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; == &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &amp; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; | &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(!&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="join %txt %txt"><l>hello</l><l>World</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportTextAttribute"><l><option>length</option></l><l>world</l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.length)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="is %s a Number?"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>isinstance(&lt;#1&gt;, (int, long, float, complex))</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>str(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>def fact(n):&#xD;    &lt;body&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fact(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>def fib(n):&#xD;    &lt;body&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fib(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; += 1</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doShowVar"><l></l></block></script><list></list></block><l><option>code</option></l><l>print &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doHideVar"><l></l></block></script><list></list></block><l><option>code</option></l><l></l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l>#variables &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><l><option>code</option></l><l>[&lt;#1&gt;]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><script></script><list></list></block><l><option>code</option></l><l>[]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>len(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#2&gt;[&lt;#1&gt; - 1]</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doAddToList"><l>thing</l><l/></block></script><list></list></block><l><option>code</option></l><l>&lt;#2&gt;.append(&lt;#1&gt;)</l></block></script></block-definition><block-definition s="map to C" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>"&lt;#1&gt;"</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l>,</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l>,</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>printf(&lt;#1&gt;);&#xD;printf("\n");</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>printf(&lt;#1&gt;);&#xD;printf("\n");</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="main %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>#include &lt;stdio.h&gt;&#xD;int main()&#xD;{&#xD;    &lt;#1&gt;&#xD;    return(0);&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block><l><option>code</option></l><l>if &lt;#1&gt;&#xD;{&#xD;    &lt;#2&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>if &lt;#1&gt;&#xD;{&#xD;    &lt;#2&gt;&#xD;}&#xD;else &#xD;{&#xD;    &lt;#3&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>return &lt;#1&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="while %boolUE %ca"><l/><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>while &lt;#1&gt;&#xD;{&#xD;    &lt;#2&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>int &lt;#1&gt;; for (&lt;#1&gt; = &lt;#2&gt;; &lt;#1&gt; &lt;= &lt;#3&gt;; &lt;#1&gt;++)&#xD;{&#xD;    &lt;#4&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportModulus"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; % &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; == &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; || &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(!&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>"%d", &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>int fact(int n)&#xD;{&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fact(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>int fib(int n)&#xD;{&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fib(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;++;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l>int &lt;#1&gt;;</l></block></script></block-definition><block-definition s="get file from computer" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doDeclareVariables"><list><l>file</l></list></block><block s="doSetVar"><l>file</l><block s="reportApplyExtension"><l>SciS_importSprite1()</l><list></list></block></block><block s="doWaitUntil"><block s="reportListItem"><l>1</l><block s="evaluate"><block var="file"/><list></list></block></block></block><block s="doReport"><block s="reportListItem"><l>2</l><block s="evaluate"><block var="file"/><list></list></block></block></block></script></block-definition><block-definition s="color %&apos;newcolor&apos; %&apos;object&apos;" type="reporter" category="other" helper="true"><header></header><code>colorstart!£&lt;#1&gt;colorend!£&lt;#2&gt;</code><translations></translations><inputs><input type="%clr"></input><input type="%s">thing</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="parse colors %&apos;input text&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>parsed text</l><l>temp</l><l>temp2</l></list></block><block s="doSetVar"><l>parsed text</l><block var="input text"/></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="parsed text"/><l>colorstart!£</l></custom-block><script><block s="doSetVar"><l>temp</l><block s="reportTextSplit"><block var="parsed text"/><l>colorstart!£rgba(</l></block></block><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="temp"/></block><script><block s="doIf"><custom-block s="text %txt contains %txt"><block s="reportListItem"><block var="i"/><block var="temp"/></block><l>,1)colorend!£</l></custom-block><script><block s="doSetVar"><l>temp2</l><block s="reportTextSplit"><block s="reportListItem"><block var="i"/><block var="temp"/></block><l>,1)colorend!£</l></block></block><block s="doReplaceInList"><block var="i"/><block var="temp"/><block s="reportJoinWords"><list><block s="reportJoinWords"><list><l>color([</l><block s="reportCombine"><block s="reportQuotient"><block s="reportRound"><custom-block s="%n x %n"><block s="reportQuotient"><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block var="temp2"/></block><l><option>csv</option></l></block><l>255</l></block><l>1000</l></custom-block></block><l>1000</l></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>,</l><l></l></list></block></autolambda><list></list></block></block><l>],alpha=_alpha/255)</l></list></block><block s="reportListItem"><l>2</l><block var="temp2"/></block></list></block></block></script><list></list></block></script></block><block s="doSetVar"><l>parsed text</l><block s="reportJoinWords"><block var="temp"/></block></block></script><list></list></block><block s="doReport"><block var="parsed text"/></block></script></block-definition><block-definition s="cylinder height: %&apos;h&apos; radius: %&apos;r&apos; center: %&apos;center&apos; sides: %&apos;sides&apos;" type="reporter" category="other" helper="true"><header></header><code>translate([0,0,&lt;#1&gt;/2])cylinder(&lt;#1&gt;,r=&lt;#2&gt;,$fn=&lt;#3&gt;)</code><translations></translations><inputs><input type="%n">20</input><input type="%n">10</input><input type="%b">true</input><input type="%n">64</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="cone height: %&apos;h&apos; bottom radius: %&apos;b&apos; top radius: %&apos;t&apos; center: %&apos;center&apos; sides: %&apos;sides&apos;" type="reporter" category="other" helper="true"><header></header><code>cylinder(&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;,&lt;#4&gt;,$fn=&lt;#5&gt;)¬</code><translations></translations><inputs><input type="%n">20</input><input type="%n">10</input><input type="%n">10</input><input type="%b">true</input><input type="%n">64</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="wedge x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos;" type="reporter" category="other" helper="true"><comment x="0" y="0" w="90" collapsed="false">create a wedge</comment><header></header><code>translate([&lt;#1&gt;/2,-&lt;#2&gt;/2,0])rotate([0,-90,0])linear_extrude(&lt;#1&gt;)polygon(points=[[0,0],[&lt;#3&gt;,0],[0,&lt;#2&gt;]])</code><translations></translations><inputs><input type="%s">20</input><input type="%s">20</input><input type="%s">20</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="tidy up %&apos;code&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportPipe"><block var="code"/><list><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportTextSplit"><block var="#1"/><l>&apos;</l></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list><l>#1</l></list></block><block s="reifyReporter"><autolambda><custom-block s="parse colors %s"><block var="#1"/></custom-block></autolambda><list><l>#1</l></list></block><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportTextSplit"><block var="#1"/><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>10</l></block><block s="reportUnicodeAsLetter"><l>10</l></block></list></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block s="reportUnicodeAsLetter"><l>10</l></block><l></l></list></block></autolambda><list></list></block></block></autolambda><list><l>#1</l></list></block></list></block></block></script><scripts><script x="514.5454545454545" y="335.8484848484843"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportTextSplit"><block var="#1"/><l>|</l></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block s="reportUnicodeAsLetter"><l>10</l></block><l></l></list></block></autolambda><list></list></block></block></autolambda><list><l>#1</l></list></block></script><script x="550" y="129.45454545454538"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportTextSplit"><block var="#1"/><l>¬,</l></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list><l>#1</l></list></block></script><script x="549.090909090909" y="175.27272727272728"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportTextSplit"><block var="#1"/><l>¬</l></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list><l>#1</l></list></block></script><script x="564.9520596590909" y="70.69696969696973"><block s="reportCombine"><block s="reportTextSplit"><block var="code"/><l><option>line</option></l></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><script x="530" y="229.12121212121193"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportTextSplit"><block var="#1"/><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>10</l></block><l>}</l></list></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>}</l><l></l></list></block></autolambda><list></list></block></block></autolambda><list><l>#1</l></list></block></script><script x="539.090909090909" y="451.18181818181733"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportTextSplit"><block var="#1"/><l>color([1,1,1</l></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>//color([1,1,1</l><l></l></list></block></autolambda><list></list></block></block></autolambda><list><l>#1</l></list></block></script><script x="454.5454545454545" y="9.09090909090909"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportTextSplit"><block var="#1"/><l>;</l></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>;</l><block s="reportUnicodeAsLetter"><l>10</l></block><l></l></list></block></autolambda><list></list></block></block></autolambda><list><l>#1</l></list></block></script></scripts></block-definition><block-definition s="file save prompt name: %&apos;filename&apos; $nl contents: %&apos;body&apos; extension: %&apos;extension&apos;" type="command" category="other" helper="true"><comment x="0" y="0" w="260.350692471591" collapsed="false">Downloads a file onto the user&apos;s computer.&#xD;URLs are supported, and required for PNG images and possibly other extensions.&#xD;&#xD;Update: Now supports backslashing of URLs to instead get a file with the URL as its binary contents.</comment><header></header><code></code><translations></translations><inputs><input type="%s">filename</input><input type="%mlt">body</input><input type="%s">.txt<options>.txt&#xD;.png&#xD;.rtf&#xD;.sb2&#xD;.sb3&#xD;.xml&#xD;.html</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>contents</l><l>filename</l><l>ext</l></list><l>var pattern = new RegExp(&apos;^(https?:\\/\\/)?&apos;+ // protocol&#xD;    &apos;((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|&apos;+ // domain name&#xD;    &apos;((\\d{1,3}\\.){3}\\d{1,3}))&apos;+ // OR ip (v4) address&#xD;    &apos;(\\:\\d+)?(\\/[-a-z\\d%_.&#126;+]*)*&apos;+ // port and path&#xD;    &apos;(\\?[;&amp;a-z\\d%_.&#126;+=-]*)?&apos;+ // query string&#xD;    &apos;(\\#[-a-z\\d_]*)?$&apos;,&apos;i&apos;); // fragment locator&#xD;if (ext[0] != &apos;.&apos;)&#xD;ext = &apos;.&apos;+ext;&#xD;var lnk = document.createElement(&apos;a&apos;),&#xD;    blob = new Blob([contents]);&#xD;if (pattern.test(contents) || (pattern.test(contents.slice(1)) &amp;&amp;&#xD;pattern[0] == &apos;\\&apos;)){&#xD;lnk.href = contents;&#xD;} else {&#xD;lnk.href = (window.URL||window.webkitURL).createObjectURL(blob);}&#xD;lnk.download = filename + ext;&#xD;lnk.click();</l></block><list><block var="body"/><block var="filename"/><block var="extension"/></list></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control" helper="true"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;ca:prova de forma segura _ i si _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="join %&apos;a&apos; %&apos;b&apos;" type="reporter" category="operators" helper="true"><header></header><code>(&lt;#1&gt; + &lt;#2&gt;)</code><translations></translations><inputs><input type="%txt">hello</input><input type="%txt">World</input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="is %&apos;thing&apos; a Number?" type="predicate" category="operators" helper="true"><header></header><code>(typeof &lt;#1&gt; === &apos;number&apos;)</code><translations></translations><inputs><input type="%s">5</input></inputs><script><block s="doReport"><block s="reportIsA"><block var="thing"/><l><option>number</option></l></block></block></script></block-definition><block-definition s="%&apos;num&apos; as text" type="reporter" category="operators" helper="true"><header></header><code>(&lt;#1&gt;.toString())</code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doReport"><block var="num"/></block></script></block-definition><block-definition s="! %&apos;n&apos;" type="reporter" category="operators" helper="true"><header>function fact(n) {&#xD;    &lt;body&gt;&#xD;}</header><code>fact(&lt;#1&gt;)</code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><block s="doReport"><l>1</l></block></script><script><block s="doReport"><custom-block s="%n x %n"><block var="n"/><custom-block s="! %n"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="fib %&apos;n&apos;" type="reporter" category="operators" helper="true"><header>function fib(n) {&#xD;    &lt;body&gt;&#xD;}</header><code>fib(&lt;#1&gt;)</code><translations></translations><inputs><input type="%n">7</input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="n"/><l>2</l></list></block><script><block s="doReport"><block var="n"/></block></script><script><block s="doReport"><custom-block s="%n + %n"><custom-block s="fib %n"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block><custom-block s="fib %n"><block s="reportDifference"><block var="n"/><l>2</l></block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="main %&apos;script&apos;" type="command" category="control" helper="true"><header></header><code>&lt;#1&gt;</code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="script"/><list></list></block></script></block-definition><block-definition s="while %&apos;test&apos; %&apos;action&apos;" type="command" category="control" helper="true"><header></header><code>while (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;}</code><translations></translations><inputs><input type="%boolUE"></input><input type="%ca"></input></inputs><script><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><custom-block s="while %boolUE %ca"><block s="evaluate"><block var="test"/><list></list></block><block var="action"/></custom-block></script><list></list></block></script></block-definition><block-definition s="substring of %&apos;string&apos; before %&apos;marker&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="175.33333333333334" collapsed="false">Reports the part of the first string up to the first instance of the second string inside it.  If the second string isn&apos;t found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;ca:part del text _ anterior a _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>0</l></list></block><block var="string"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><l></l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><l>1</l><block s="reportDifference"><block var="index"/><l>1</l></block></custom-block></block></block></block></script></block-definition><block-definition s="module %&apos;module&apos; options: %&apos;options&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="90" collapsed="false">execute a previously defined module</comment><header></header><code>&lt;#1&gt;(&lt;#2&gt;)</code><translations></translations><inputs><input type="%s"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><l>null</l></block></script></block-definition><block-definition s="substring of %&apos;string&apos; after %&apos;marker&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="203.33333333333334" collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string.  If the second string isn&apos;t found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _&#xD;ca:part del text _ posterior a _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>end</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doSetVar"><l>end</l><block s="reportVariadicSum"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="marker"/></block></list></block></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>0</l></list></block><l></l><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block var="end"/><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block></list></block><l></l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><block var="end"/><l></l></custom-block></block></block></block></script></block-definition><block-definition s="use case-independent comparisons %&apos;tf&apos;" type="command" category="operators" helper="true"><comment x="0" y="0" w="225.33333333333334" collapsed="false">If input is TRUE, comparisons made by functions in the string library will be case-independent (so &quot;FOO&quot; = &quot;foo&quot;).  This is the default.&#xD;If input is FALSE, comparisons will be exact.</comment><header></header><code></code><translations>pt:altera comparações ignorando distinção minúsculas/maiúsculas para _&#xD;ca:ignora la diferenciació de majúscules _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block s="reportNot"><block var="tf"/></block><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>_case indepent</l></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>_case indepent</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></script><script><block s="doApplyExtension"><l>var_delete(name)</l><list><l>_case indepent</l></list></block></script></block></script></block-definition><block-definition s="substring of %&apos;str&apos; from position %&apos;start&apos; to position %&apos;end&apos; inclusive" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;ca:part del text _ des de la posició _ fins _&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="start"/><l>0</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="start"/><l>1</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="str"/></block></list></block><block var="start"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="end"/><l>0</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="str"/></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="end"/><l>0</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="end"/><l>1</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="str"/></block></list></block><block var="end"/></block></block></block><block var="str"/></block></block></block></script></block-definition><block-definition s="text %&apos;string&apos; contains %&apos;marker&apos;" type="predicate" category="operators" helper="true"><comment x="0" y="0" w="218" collapsed="false">Reports True if the first input string contains the second input string, otherwise false.&#xD;&#xD;Comparison is case-independent by default; use USE CASE-INDEPENDENT COMPARISONS to change that.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;ca:text _ conté _ ?&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block><l>0</l></list></block></block></script></block-definition><block-definition s="deep item from path %&apos;path&apos; $nl of %&apos;list&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="176.66666666666669" collapsed="false">report the item of a nested list using path as the pointer to the item&#xD;&#xD;e.g given a list data as:&#xD;[&#xD;A,&#xD;[B,C],&#xD;D, [E,F,G],&#xD;H&#xD;]&#xD;&#xD;item from path [3,2,1]&#xD;of data &#xD;&#xD;would return E as its the 1st item of the 2nd item of the 3rd item of data</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="path"/></block><script><block s="doReport"><block var="list"/></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="list"/><l><option>list</option></l></block><script><block s="doReport"><custom-block s="deep item from path %l %br of %l"><block s="reportCDR"><block var="path"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="path"/></block><block var="list"/></block></custom-block></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="deep replace item in %&apos;data&apos; with %&apos;new&apos; using path %&apos;path&apos;" type="command" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s">thing</input><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="path"/></block><l>1</l></list></block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="path"/></block><block var="data"/><block var="new"/></block></script><script><custom-block s="deep replace item in %l with %s using path %l"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="path"/></block><block var="data"/></block><block var="new"/><block s="reportCDR"><block var="path"/></block></custom-block></script></block></script></block-definition><block-definition s="$slice-1-255-0-0 %&apos;value&apos; from %&apos;start&apos; to %&apos;end&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Combined text/list reporter&#xD;&#xD;Reports the portion of the first input starting at the position given by the second input and ending at the position given by the third input.  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;&#xD;If a position number is negative, counts from the end backward, so -1 is the last character/item, -2 is the next to last, etc.&#xD;&#xD;If processed start value &gt; processed end value then the result will be in reported in reverse order&#xD;&#xD;Note: If the processed values lie outside the range of 1 to length of item, then an empty value or empty list will be returned. &#xD;&#xD;17Sep2022 Tidy up&#xD;05Sep2022 range checking behaviour altered&#xD;01Sep2022 V1.2.0 Align algorthim with library substring&#xD;27Aug2022 V1.1.1 bug-fix length handling</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;ca:part del text _ des de la posició _ fins _&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>length</l></list></block><block s="doSetVar"><l>length</l><block s="reportIfElse"><block s="reportIsA"><block var="value"/><l><option>list</option></l></block><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="end"/><l></l></list></block><script><block s="doSetVar"><l>end</l><block var="length"/></block></script><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="end"/><l>0</l></list></block><script><block s="doSetVar"><l>end</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="end"/><l>1</l></list></block><block var="length"/></list></block></block></script><list></list></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="start"/><l></l></list></block><script><block s="doSetVar"><l>start</l><l>1</l></block></script><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="start"/><l>0</l></list></block><script><block s="doSetVar"><l>start</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="start"/><l>1</l></list></block><block var="length"/></list></block></block></script><list></list></block></script></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="start"/><block var="length"/></list></block><block s="reportVariadicGreaterThan"><list><block var="end"/><block var="length"/></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="start"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="end"/><l>1</l></list></block></list></block></list></block><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><l></l></list></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListItem"><block s="reportNumbers"><block var="start"/><block var="end"/></block><block var="value"/></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block var="start"/><block var="end"/></block><block var="value"/></block></block></block></script></block-definition><block-definition s="intersection of %&apos;object1&apos; with %&apos;object2&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="90" collapsed="false">create a new object from the intersection of the two objects</comment><header></header><code>intersection(){&#xD;    &lt;#1&gt;;&#xD;    &lt;#2&gt;;&#xD;}</code><translations></translations><inputs><input type="%s">object1</input><input type="%s">object2</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="join %&apos;object1&apos; to %&apos;object2&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="143.63636363636363" collapsed="false">join two objects to become one&#xD;&#xD;The equivalent of a logical OR&#xD;&#xD;The two objects must overlap to avoid issues in OpenSCAd if exported to an stl file for 3D printing</comment><header></header><code>union(){&#xD;scale([1.01,1.01,1.01])&lt;#1&gt;;&#xD;&lt;#2&gt;;}</code><translations></translations><inputs><input type="%s">object1</input><input type="%s">object2</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="deep indices of %&apos;item&apos; in %&apos;data&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="214.16666666666669" collapsed="false">return all indices of the search item in the list&#xD;&#xD;e.g given a list data as:&#xD;[&#xD;A,&#xD;[B,C],&#xD;[D, [A,F,A]],&#xD;H&#xD;]&#xD;deep indices of A of data would return&#xD;[&#xD;[1],&#xD;[3,2,1],&#xD;[3,2,3]&#xD;]&#xD;&#xD;V2.1.0 15Sep2022 Works on quite a few test cases</comment><header></header><code></code><translations></translations><inputs><input type="%s">thing</input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>deep indices</l></list></block><block s="doSetVar"><l>deep indices</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doFor"><l>index</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="index"/><block var="data"/></block><block var="item"/></list></block><script><block s="doAddToList"><block var="index"/><block var="deep indices"/></block></script><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><block var="index"/><block var="data"/></block><l><option>list</option></l></block><script><block s="doDeclareVariables"><list><l>path</l></list></block><block s="doSetVar"><l>path</l><custom-block s="deep indices of %s in %l"><block var="item"/><block s="reportListItem"><block var="index"/><block var="data"/></block></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="path"/></block></block><script><block s="doFor"><l>path index</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="path"/></block><script><block s="doAddToList"><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportCONS"><block var="index"/><block s="reportIfElse"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><block var="path index"/><block var="path"/></block><l><option>list</option></l></block></block><block s="reportNewList"><list></list></block><block s="reportListItem"><block var="path index"/><block var="path"/></block></block></block></block><block var="deep indices"/></block></script></block></script><list></list></block></script><list></list></block></script></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>flatten</option></l><l/></block></autolambda><list></list></block><block var="deep indices"/></block></block></script></block></script></block-definition><block-definition s="group as one object %&apos;objects&apos;" type="reporter" category="Actions"><header></header><code>{&lt;#1&gt;}</code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;val1&apos; = %&apos;val2&apos;" type="predicate" category="operators"><header></header><code>(&lt;#1&gt; == &lt;#2&gt;)</code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="val1"/><block var="val2"/></list></block></block></script></block-definition><block-definition s="%&apos;val1&apos; &gt; %&apos;val2&apos;" type="predicate" category="operators"><header></header><code>(&lt;#1&gt; &gt; &lt;#2&gt;)</code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block var="val1"/><block var="val2"/></list></block></block></script></block-definition><block-definition s="minkowski x: %&apos;x&apos; y: %&apos;y:&apos; z: %&apos;z&apos; corner radius: %&apos;r&apos;" type="command" category="Objects" helper="true"><header></header><code>module _minkowski (x,y,z,r) {$fn=64;&#xD;minkowski()&#xD;{&#xD;  cube([x-2*r,y-2*r,z/2],center=true);&#xD;  cylinder(r=r,h=z/2,center=true);&#xD;};&#xD;};</code><translations></translations><inputs><input type="%n">20</input><input type="%n">20</input><input type="%n">20</input><input type="%n">3</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;val1&apos; &lt; %&apos;val2&apos;" type="predicate" category="operators"><header></header><code>(&lt;#1&gt; &lt; &lt;#2&gt;)</code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicLessThan"><list><block var="val1"/><block var="val2"/></list></block></block></script></block-definition><block-definition s="make hole in %&apos;object1&apos; using %&apos;object2&apos;" type="reporter" category="Transformations" helper="true"><header></header><code>difference(){&#xD;    &lt;#1&gt;;&#xD;    {&#xD;        translate([0.01,0,0])&lt;#2&gt;;&#xD;        translate([-0.01,0,0])&lt;#2&gt;;&#xD;        translate([0,0.01,0])&lt;#2&gt;;&#xD;        translate([0,-0.01,0])&lt;#2&gt;;&#xD;        translate([0,0,0.01])&lt;#2&gt;;&#xD;        translate([0,0,-0.01])&lt;#2&gt;;&#xD;    };&#xD;}</code><translations></translations><inputs><input type="%s">object1</input><input type="%s">object2</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="comment out for debugging purposes %&apos;noAction&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">add comment</comment><header></header><code>*translate([0,0,0]){&lt;#1&gt;};&#xD;</code><translations></translations><inputs><input type="%cs"></input></inputs></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; step %&apos;step&apos; %&apos;action&apos;" type="command" category="control"><header></header><code>for ( &lt;#1&gt; = [&lt;#2&gt; : &lt;#4&gt; : &lt;#3&gt;]){&#xD;    &lt;#5&gt;&#xD;};</code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%n">1</input><input type="%cs"></input></inputs></block-definition><block-definition s="text %&apos;text&apos; size %&apos;size&apos; font: %&apos;font&apos; align x: %&apos;xalign&apos; y: %&apos;yalign&apos; z: %&apos;zalign&apos; height: %&apos;height&apos; direction: %&apos;direction&apos;" type="reporter" category="Objects"><header></header><code>linear_extrude(&lt;#7&gt;)text(&quot;&lt;#1&gt;&quot;,size=&lt;#2&gt;,font=&quot;&lt;#3&gt;&quot;,halign=&quot;&lt;#4&gt;&quot;,valign=&quot;&lt;#5&gt;&quot;,direction=&quot;&lt;#8&gt;&quot;);</code><translations></translations><inputs><input type="%txt">OpenSCAD</input><input type="%n">12</input><input type="%txt" readonly="true">Liberation Mono<options>Liberation Mono</options></input><input type="%txt" readonly="true">center<options>left&#xD;center&#xD;right</options></input><input type="%txt" readonly="true">center<options>top&#xD;center&#xD;baseline&#xD;bottom</options></input><input type="%txt" readonly="true">center<options>bottom&#xD;center&#xD;top</options></input><input type="%n">20</input><input type="%txt" readonly="true">ltr<options>ltr&#xD;ttb&#xD;btt&#xD;rtl</options></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="name of var %&apos;v&apos;" type="reporter" category="variables" helper="true"><header></header><code></code><translations></translations><inputs><input type="%anyUE"><options>§_getVarNamesDict</options></input></inputs><script><block s="doDeclareVariables"><list><l>res</l></list></block><block s="doSetVar"><l>res</l><block s="reportTextSplit"><block var="v"/><l><option>blocks</option></l></block></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="res"/></block><l></l></list></block><block s="evaluate"><block var="v"/><list></list></block><block s="reportListItem"><l>2</l><block var="res"/></block></block></block></script></block-definition><block-definition s="module definition %&apos;module&apos; from %&apos;sprite&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s">module</input><input type="%s" readonly="true">myself<options>§_objectsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>sprite blocks</l></list></block><block s="doSetVar"><l>sprite blocks</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></autolambda><list></list></block><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></block><block s="doReport"><block s="reportJoinWords"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="%s = %s"><block s="reportListItem"><l>2</l><l/></block><block var="module"/></custom-block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><l></l><l>1</l><l>-2</l></custom-block><block var="sprite blocks"/></custom-block></autolambda><list></list></block><custom-block s="deep indices of %s in %l"><l>define module _ _ options: _ _</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><l></l></block></autolambda><list></list></block><block var="sprite blocks"/></custom-block></custom-block></block></block></block></block></script><scripts><script x="577.2727272727273" y="235.21212121212116"><block s="doReport"><l></l></block></script><script x="643.6646247632576" y="142.72727272728486"><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportAskFor"><l>rocket2</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block><l><option>blocks</option></l></block></script><script x="628.939393939394" y="35.12121212121201"><block s="bubble"><l>Hello!</l></block></script><script x="722.4982244318181" y="56.24242424242419"><block s="reportListItem"><l>1</l><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></script><script x="606.7937677556818" y="310.90909090909133"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></autolambda><list></list></block><block s="reportAskFor"><l>house</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></script></scripts></block-definition><block-definition s="import %&apos;script&apos;" type="command" category="control" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="script"/></block></script></block-definition><block-definition s="deep map %&apos;fun&apos; over %&apos;data&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><custom-block s="deep map %repRing over %l"><block var="fun"/><l/></custom-block><block s="evaluate"><block var="fun"/><list><l></l></list></block></block></autolambda><list></list></block><block var="data"/></block></block></script></block-definition><block-definition s="import module definition %&apos;module&apos; from %&apos;sprite&apos;" type="command" category="Actions"><header></header><code></code><translations></translations><inputs><input type="%upvar">module</input><input type="%s" readonly="true">myself<options>§_objectsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>blocks</l></list></block><block s="doSetVar"><l>blocks</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></autolambda><list></list></block><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></block><block s="doReport"><block s="reportJoinWords"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="%s = %s"><block s="reportListItem"><l>2</l><l/></block><block var="module"/></custom-block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><l></l><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></autolambda><list></list></block><custom-block s="deep indices of %s in %l"><l>define module _ _ options: _ _</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><l></l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block></block></block></block></block></script><scripts><script x="643.6646247632576" y="142.72727272728486"><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportAskFor"><l>rocket2</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block><l><option>blocks</option></l></block></script><script x="628.939393939394" y="35.12121212121201"><block s="bubble"><l>Hello!</l></block></script><script x="722.4982244318181" y="56.24242424242419"><block s="reportListItem"><l>1</l><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></script><script x="851.8181818181818" y="202.48484848484844"><block s="doReport"><l></l></block></script><script x="660.4301313920454" y="248.1818181818186"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></autolambda><list></list></block><block s="reportAskFor"><l>house</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></script></scripts></block-definition><block-definition s="pyramid x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos;" type="reporter" category="Objects"><header></header><code>polyhedron(&#xD;  points=[ [&lt;#1&gt;/2,&lt;#2&gt;/2,0],[&lt;#1&gt;/2,-&lt;#2&gt;/2,0],[-&lt;#1&gt;/2,-&lt;#2&gt;/2,0],[-&lt;#1&gt;/2,&lt;#2&gt;/2,0], // the four points at base&#xD;           [0,0,&lt;#3&gt;]  ],                                 // the apex point &#xD;  faces=[ [0,1,2],[2,3,0],[0,1,4],[1,2,4],              // each triangle side&#xD;              [2,3,4],[3,0,4] ]                         // two triangles for square base&#xD; )&#xD;</code><translations></translations><inputs><input type="%n">20</input><input type="%n">20</input><input type="%n">20</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="$bool-0.01 %&apos;state&apos;" type="predicate" category="operators"><comment x="0" y="0" w="123.63636363636363" collapsed="false">true or false predicate</comment><header></header><code>&lt;#1&gt;</code><translations></translations><inputs><input type="%b">true</input></inputs><script><block s="doReport"><block var="state"/></block></script></block-definition><block-definition s="render %&apos;object&apos;" type="reporter" category="Transformations"><header></header><code>render()&lt;#1&gt;</code><translations></translations><inputs><input type="%s">object</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="mirror copy x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos; %&apos;object&apos;" type="reporter" category="Transformations"><header></header><code>_mirror_copy([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;])&lt;#4&gt;</code><translations></translations><inputs><input type="%n" readonly="true">1<options>0&#xD;1</options></input><input type="%n" readonly="true">0<options>0&#xD;1</options></input><input type="%n" readonly="true">0<options>0&#xD;1</options></input><input type="%s">object</input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;val1&apos; or %&apos;val2&apos;" type="predicate" category="operators"><header></header><code>(&lt;#1&gt; || &lt;#2&gt;)</code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportVariadicOr"><list><block var="val1"/><block var="val2"/></list></block></block></script></block-definition><block-definition s="%&apos;val1&apos; and %&apos;val2&apos;" type="predicate" category="operators"><header></header><code>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block var="val1"/><block var="val2"/></list></block></block></script></block-definition><block-definition s="not %&apos;val&apos;" type="predicate" category="operators"><header></header><code>(!&lt;#1&gt;)</code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doReport"><block s="reportNot"><block var="val"/></block></block></script></block-definition><block-definition s="multiline %&apos;text&apos;" type="reporter" category="operators" helper="true"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="hollow out leaving thickness: %&apos;thickness&apos; %&apos;object&apos;" type="reporter" category="Transformations"><comment x="0" y="0" w="90" collapsed="false">hollow out an object</comment><header></header><code>union(){&#xD;    difference(){&lt;#2&gt;;translate([0,0,&lt;#1&gt;])&lt;#2&gt;;};&#xD;    difference(){&lt;#2&gt;;translate([&lt;#1&gt;,0,0.01])&lt;#2&gt;;};&#xD;    difference(){&lt;#2&gt;;translate([-&lt;#1&gt;,0,0.01])&lt;#2&gt;;};&#xD;    difference(){&lt;#2&gt;;translate([0,&lt;#1&gt;,0.01])&lt;#2&gt;;};&#xD;    difference(){&lt;#2&gt;;translate([0,-&lt;#1&gt;,0.01])&lt;#2&gt;;};&#xD;};</code><translations></translations><inputs><input type="%n">1</input><input type="%s">object</input></inputs></block-definition><block-definition s="stl file %&apos;file&apos;" type="reporter" category="Objects"><header></header><code>import(&quot;&lt;#1&gt;&quot;)</code><translations></translations><inputs><input type="%txt"></input></inputs></block-definition><block-definition s="tube height: %&apos;height&apos; outer radius: %&apos;outerRadius&apos; innter radius: %&apos;innerRadius&apos; thickness %&apos;thickness&apos; $nl sides: %&apos;sides&apos;" type="reporter" category="User Modules"><comment x="0" y="0" w="270" collapsed="false">Specfiy any two of outer radius, inner radius or thickness and make the 3rd one 0</comment><header></header><code></code><translations></translations><inputs><input type="%n">20</input><input type="%n">10</input><input type="%n">5</input><input type="%n">0</input><input type="%n">64</input></inputs><script><custom-block s="comment %mlt"><l>needed temp padding to keep things happy</l></custom-block><custom-block s="add %s"><custom-block s="make %s hole in %s using %s"><l>standard</l><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="height"/><block s="reportIfElse"><custom-block s="%s = %s"><block var="outerRadius"/><l>0</l></custom-block><custom-block s="%n + %n"><block var="innerRadius"/><block var="thickness"/></custom-block><block var="outerRadius"/></block><block var="sides"/></custom-block><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="height"/><block s="reportIfElse"><custom-block s="%s = %s"><block var="innerRadius"/><l>0</l></custom-block><custom-block s="%n - %n"><block var="outerRadius"/><block var="thickness"/></custom-block><block var="innerRadius"/></block><block var="sides"/></custom-block></custom-block></custom-block></script></block-definition><block-definition s="rocket radius: %&apos;radius&apos; body height: %&apos;bodyHeight&apos; cone height: %&apos;coneHeight&apos;" type="reporter" category="User Modules"><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">70</input><input type="%n">20</input></inputs><script><custom-block s="let %upvar be %s"><l>finHeight</l><custom-block s="%n / %n"><block var="bodyHeight"/><l>4</l></custom-block></custom-block><custom-block s="let %upvar be %s"><l>finX</l><custom-block s="%n / %n"><block var="radius"/><l>5</l></custom-block></custom-block><custom-block s="let %upvar be %s"><l>finY</l><block var="radius"/></custom-block><custom-block s="comment %mlt"><l>body</l></custom-block><custom-block s="add colored: %clr object: %s"><color>251,45,0,1</color><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="bodyHeight"/><block var="rocketRadius"/><l>64</l></custom-block></custom-block><custom-block s="comment %mlt"><l>nose cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>28,255,7,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="bodyHeight"/><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="coneHeight"/><block var="rocketRadius"/><l>0</l><l>64</l></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>fins</l></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>degree</l><l>0</l><l>270</l><l>90</l><script><custom-block s="add colored: %clr object: %s"><color>0,78,231,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><block var="rocketRadius"/><block s="reportQuotient"><block var="finY"/><l>2</l></block></custom-block><l>0</l><custom-block s="wedge x: %n y: %n z: %n"><block var="finX"/><block var="finY"/><block var="finHeight"/></custom-block></custom-block></custom-block></custom-block></script></custom-block></script></block-definition><block-definition s="_literal reporter %&apos;text&apos;" type="reporter" category="Actions"><header></header><code>&lt;#1&gt;</code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="input names of custom block %&apos;block&apos;" type="reporter" category="control" helper="true"><comment x="0" y="0" w="112.72727272727272" collapsed="false">report the input names defined in the hat of a custom block&#xD;&#xD;cymplecy 11May2023</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>definition</option></l><block var="block"/></block><l><option>blocks</option></l></block></block></autolambda><list></list></block><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>definition</option></l><block var="block"/></block><l><option>blocks</option></l></block></block></list></block><custom-block s="%n x %n"><block s="reportListAttribute"><l><option>length</option></l><block s="reportBlockAttribute"><l><option>slots</option></l><block var="block"/></block></block><l>-1</l></custom-block><l>-1</l></custom-block></block></script></block-definition><block-definition s="slot names of custom block %&apos;block&apos; (2)" type="reporter" category="control" helper="true"><comment x="0" y="0" w="112.72727272727272" collapsed="false">report the slot names&#xD; i.e the parameters specified in the hat of a custom block</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>definition</option></l><block var="block"/></block><l><option>blocks</option></l></block></block><custom-block s="%n x %n"><block s="reportListAttribute"><l><option>length</option></l><block s="reportBlockAttribute"><l><option>slots</option></l><block var="block"/></block></block><l>-1</l></custom-block><l>-1</l></custom-block></block></script><scripts><script x="95.9090909090909" y="223.60606060606057"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>definition</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><block var="block"/></list></block><l><option>blocks</option></l></block></block><custom-block s="%n x %n"><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>slots</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><block var="block"/></list></block></block><l>-1</l></custom-block><l>-1</l></custom-block></script><script x="589.6076882102273" y="225.6060606060606"><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list><block var="block"/></list></block></script><script x="582.4372336647727" y="52.0303030303033"><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list></list></block></script></scripts></block-definition><block-definition s="_literal command %&apos;text&apos;" type="command" category="Actions"><header></header><code>&lt;#1&gt;&#xD;</code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="singleBinBase" type="reporter" category="User Modules"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="let %upvar be %s"><l>unitSize</l><l>42</l></custom-block><custom-block s="let %upvar be %s"><l>baseSize</l><l>34</l></custom-block><custom-block s="let %upvar be %s"><l>bottomSize</l><l>0.8</l></custom-block><custom-block s="let %upvar be %s"><l>stepSize</l><l>1.8</l></custom-block><custom-block s="let %upvar be %s"><l>topSize</l><l>2.15</l></custom-block><custom-block s="let %upvar be %s"><l>topRadius</l><l>3.75</l></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>degree</l><l>0</l><l>90</l><l>90</l><script><custom-block s="add colored: %clr object: %s"><color>253,94,0,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="cube x: %n y: %n z: %n"><block var="baseSize"/><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><block var="bottomSize"/></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>1,231,255,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="bottomSize"/><custom-block s="cube x: %n y: %n z: %n"><block var="baseSize"/><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>4</l></custom-block></custom-block><custom-block s="%n + %n"><block var="topSize"/><block var="stepSize"/></custom-block></custom-block></custom-block></custom-block></custom-block></script></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>degree</l><l>0</l><l>270</l><l>90</l><script><custom-block s="comment %mlt"><l>bottomlip</l></custom-block><custom-block s="add colored: %clr object: %s"><color>251,255,57,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n + %n"><custom-block s="%n x %n"><block var="bottomSize"/><l>1.5</l></custom-block><l></l></custom-block></custom-block><block var="bottomSize"/><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>180</l><l>0</l><custom-block s="wedge x: %n y: %n z: %n"><block var="baseSize"/><block var="bottomSize"/><block var="bottomSize"/></custom-block></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>bottom cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>28,255,4,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><l>0</l><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="bottomSize"/><block var="bottomSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><l>64</l></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>step corner</l></custom-block><custom-block s="add colored: %clr object: %s"><color>0,21,242,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><block var="bottomSize"/><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="stepSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><l>64</l></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>top cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>24,248,0,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n + %n"><block var="stepSize"/><block var="bottomSize"/></custom-block><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="topSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><block var="topRadius"/><l>64</l></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>top lip</l></custom-block><custom-block s="add colored: %clr object: %s"><color>244,255,31,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n + %n"><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><block s="reportQuotient"><block var="topSize"/><l>2</l></block></custom-block></custom-block><custom-block s="%n + %n"><custom-block s="%n + %n"><block var="stepSize"/><block var="bottomSize"/></custom-block><block var="topSize"/></custom-block><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>180</l><l>0</l><custom-block s="wedge x: %n y: %n z: %n"><block var="baseSize"/><block var="topSize"/><block var="topSize"/></custom-block></custom-block></custom-block></custom-block></custom-block></script></custom-block><custom-block s="comment %mlt"><l>extra rim</l></custom-block><custom-block s="add colored: %clr object: %s"><color>64,91,255,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>4.75</l><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><block s="reportDifference"><block var="unitSize"/><l>0.5</l></block><block s="reportDifference"><block var="unitSize"/><l>0.5</l></block><l>0.6</l><block var="topRadius"/><l>0</l><l><bool>false</bool></l></custom-block></custom-block></custom-block></script></block-definition><block-definition s="gridFinityBin units width: %&apos;x_size&apos; units length: %&apos;y_size&apos; height(in mm): %&apos;z_size&apos; use stl? %&apos;use_stl&apos;" type="reporter" category="User Modules"><comment x="0" y="0" w="90" collapsed="false">create a bins x times y size of a single bin</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">1</input><input type="%n">7</input><input type="%b">false</input></inputs><script><custom-block s="let %upvar be %s"><l>unitSize</l><l>42</l></custom-block><custom-block s="let %upvar be %s"><l>baseSize</l><l>34</l></custom-block><custom-block s="let %upvar be %s"><l>bottomSize</l><l>0.8</l></custom-block><custom-block s="let %upvar be %s"><l>stepSize</l><l>1.8</l></custom-block><custom-block s="let %upvar be %s"><l>topSize</l><l>2.15</l></custom-block><custom-block s="let %upvar be %s"><l>topRadius</l><l>3.75</l></custom-block><custom-block s="let %upvar be %s"><l>remainSize</l><block s="reportDifference"><l>7</l><custom-block s="%n + %n"><block var="bottomSize"/><custom-block s="%n + %n"><block var="stepSize"/><block var="topSize"/></custom-block></custom-block></block></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>y</l><l>1</l><block var="y_size"/><l>1</l><script><custom-block s="for %upvar = %n to %n step %n %cs"><l>x</l><l>1</l><block var="x_size"/><l>1</l><script><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="x"/><l>1</l></custom-block><block var="unitSize"/></custom-block><custom-block s="%n / %n"><block var="unitSize"/><l>2</l></custom-block></custom-block><custom-block s="%n + %n"><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="y"/><l>1</l></custom-block><block var="unitSize"/></custom-block><custom-block s="%n / %n"><block var="unitSize"/><l>2</l></custom-block></custom-block><l>0</l><custom-block s="singleBinBase"></custom-block></custom-block></custom-block></script></custom-block></script></custom-block><custom-block s="add colored: %clr object: %s"><color>255,34,4,1</color><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><l>0.25</l><custom-block s="%n / %n"><custom-block s="%n - %n"><custom-block s="%n x %n"><block var="x_size"/><block var="unitSize"/></custom-block><l>0.5</l></custom-block><l>2</l></custom-block></custom-block><custom-block s="%n + %n"><l>0.25</l><custom-block s="%n / %n"><custom-block s="%n - %n"><custom-block s="%n x %n"><block var="y_size"/><block var="unitSize"/></custom-block><l>0.5</l></custom-block><l>2</l></custom-block></custom-block><l>5.34</l><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><custom-block s="%n - %n"><custom-block s="%n x %n"><block var="x_size"/><block var="unitSize"/></custom-block><l>0.5</l></custom-block><custom-block s="%n - %n"><custom-block s="%n x %n"><block var="y_size"/><block var="unitSize"/></custom-block><l>0.5</l></custom-block><custom-block s="%n - %n"><block var="z_size"/><l>5.4</l></custom-block><block var="topRadius"/><l>0</l><l><bool>false</bool></l></custom-block></custom-block></custom-block></script></block-definition><block-definition s="join %&apos;data&apos; back into text using %&apos;connector&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="90" collapsed="false">re-combines a list that has been split from some text.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt">line<options>line&#xD;tab&#xD;cr&#xD;comma&#xD;space</options></input></inputs><script><block s="doReport"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><custom-block s="replace %txt in %txt with %txt"><l>tab</l><custom-block s="replace %txt in %txt with %txt"><l>cr</l><custom-block s="replace %txt in %txt with %txt"><l>line</l><block var="connector"/><block s="reportUnicodeAsLetter"><l>10</l></block></custom-block><block s="reportUnicodeAsLetter"><l>10</l></block></custom-block><block s="reportUnicodeAsLetter"><l>9</l></block></custom-block><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="create def modules from split script %&apos;blocks&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>modules</l><l>module name</l></list></block><block s="doSetVar"><l>modules</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item path</l><custom-block s="deep indices of %s in %l"><l>User Modules</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportListItem"><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportGet"><l><option>categories</option></l></block></block><l>null</l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block><script><block s="doSetVar"><l>module name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block><l><option>word</option></l></block></block></block><block s="doIf"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="%s = %s"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><l></l><l>1</l><l>2</l></custom-block><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l> </l><list><l></l><l></l></list><script></script></custom-block></script><list></list></block><block var="module name"/></list></block></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="ScriptEcho"/><l><option>blocks</option></l></block></block><comment w="127.27272727272727" collapsed="false">if def of mudle doesn&apos;t exist then add it</comment></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l> </l><list><l></l></list><script></script></custom-block></script><list></list></block><block var="module name"/><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>slots</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block></block></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block var="value"/></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="input names of custom block %repRing"><block s="reifyReporter"><script></script><list></list></block></custom-block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block></block></list></block><block s="reportNewList"><list><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="not %b"><custom-block s="%s = %s"><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block></custom-block></custom-block></autolambda><list><l>value</l></list></block><custom-block s="ensure 2D list %l"><block s="reportTextSplit"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>definition</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block><l><option>blocks</option></l></block></custom-block></block></list></block></list><comment w="90" collapsed="false">add &#xD;def module equivalent blocks</comment></block><block var="modules"/></block></script><list></list></block></script></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><custom-block s="deep indices of %s in %l"><l>User Modules</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportListItem"><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportGet"><l><option>categories</option></l></block></block><l>null</l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block><block s="reportNewList"><list></list></block></list></block></block><script><block s="doSetVar"><l>modules</l><block s="reportConcatenatedLists"><list><custom-block s="create def modules from split script %s"><block var="modules"/></custom-block><block var="modules"/></list></block></block></script><list></list><comment w="184.54545454545453" collapsed="false">check if new User Modues have been added in and recursilvely deal with them</comment></block><block s="doReport"><block var="modules"/></block></script><scripts><script x="691.2727272727273" y="881.6363636363676"><block s="fork"><block s="reifyScript"><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="module name"/></list></block></script><list></list></block><list></list></block></script><script x="612.8181818181816" y="241.18181818181816"><block s="doSetVar"><l>debug</l><custom-block s="ensure 2D list %l"><block s="reportTextSplit"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>definition</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block><l><option>blocks</option></l></block></custom-block></block></script><script x="725.5454545454544" y="441.18181818181813"><block s="doSetVar"><l>debug</l><block var="modules"/></block></script><script x="716.7272727272727" y="484.4848484848504"><block s="reportApplyExtension"><l>err_error(msg)</l><list><l></l></list></block></script><script x="721.9090909090908" y="355.7272727272727"><block s="doAddToList"><l></l><block var="existing module names"/></block></script><script x="637.3636363636363" y="556.6363636363635"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reifyReporter"><autolambda><custom-block s="%upvar (default value %s )"><l>a</l><l></l></custom-block></autolambda><list></list></block><block var="value"/><block s="reportListItem"><block var="index"/><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>defaults</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="input names of custom block %repRing"><block s="reifyReporter"><script></script><list></list></block></custom-block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block></block></script></scripts></block-definition><block-definition s="user module %&apos;name&apos; options: %&apos;options&apos;" type="reporter" category="Actions"><header></header><code>&lt;#1&gt;___(&lt;#2&gt;)___</code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="generate ringified empty list with %&apos;var&apos; items" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l></list></block></autolambda><list></list></block><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block var="var"/></list></block><block s="reportNewList"><list><l></l></list></block></list></block></list></block></block></script></block-definition><block-definition s="special list %&apos;data&apos;" type="reporter" category="other" helper="true"><header></header><code>&lt;#1&gt;</code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="softBox x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos; corner radius: %&apos;corner_radius&apos; wall thickness: %&apos;wall_thickness&apos; with floor? %&apos;floor&apos;" type="reporter" category="User Modules"><comment w="144.54545454545453" collapsed="false">V1.1 - 2024-01-01 modified inner radius used</comment><header></header><code>resize([&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;+0.002])_soft_box2(&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;,&lt;#4&gt;,&lt;#5&gt;,&lt;#6&gt;,&lt;#7&gt;,&lt;#8&gt;,&lt;#9&gt;);</code><translations></translations><inputs><input type="%n">20</input><input type="%n">20</input><input type="%n">20</input><input type="%n">3</input><input type="%n">2</input><input type="%b">true</input></inputs><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l>softBoxShape</l><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list><script><custom-block s="add %s"><custom-block s="cube x: %n y: %n z: %n"><custom-block s="%n - %n"><block var="x"/><custom-block s="%n x %n"><l>2</l><block var="corner_radius"/></custom-block></custom-block><block var="y"/><block var="z"/></custom-block></custom-block><custom-block s="add %s"><custom-block s="cube x: %n y: %n z: %n"><block var="x"/><custom-block s="%n - %n"><block var="y"/><custom-block s="%n x %n"><l>2</l><block var="corner_radius"/></custom-block></custom-block><block var="z"/></custom-block></custom-block><block s="doForEach"><l>y_pos</l><block s="reportNewList"><list><l>1</l><l>-1</l></list></block><script><block s="doForEach"><l>x_pos</l><block s="reportNewList"><list><l>1</l><l>-1</l></list></block><script><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n x %n"><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="x"/><l>2</l></custom-block><block var="corner_radius"/></custom-block><block var="x_pos"/></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="y"/><l>2</l></custom-block><block var="corner_radius"/></custom-block><block var="y_pos"/></custom-block><l>0</l><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="z"/><block var="corner_radius"/><l>64</l></custom-block></custom-block></custom-block></script></block></script></block></script></custom-block><block s="doIfElse"><custom-block s="%b or %b"><custom-block s="%b or %b"><custom-block s="%s = %s"><block var="wall_thickness"/><l>0</l></custom-block><custom-block s="%s &gt; %s"><block var="wall_thickness"/><custom-block s="%n / %n"><block var="x"/><l>2</l></custom-block></custom-block></custom-block><custom-block s="%s &gt; %s"><block var="wall_thickness"/><custom-block s="%n / %n"><block var="y"/><l>2</l></custom-block></custom-block></custom-block><script><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list></custom-block></custom-block></script><script><custom-block s="add %s"><custom-block s="make %s hole in %s using %s"><l>standard</l><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list></custom-block><custom-block s="resize x: %n y: %n z: %n %s"><custom-block s="%n - %n"><block var="x"/><custom-block s="%n x %n"><l>2</l><block var="wall_thickness"/></custom-block></custom-block><custom-block s="%n - %n"><block var="y"/><custom-block s="%n x %n"><l>2</l><block var="wall_thickness"/></custom-block></custom-block><custom-block s="%n + %n"><block var="z"/><l>0.01</l></custom-block><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><custom-block s="%n / %n"><block var="corner_radius"/><l>1.4142</l></custom-block></list></custom-block></custom-block></custom-block></custom-block><block s="doIf"><block var="floor"/><script><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="wall_thickness"/><block var="corner_radius"/></list></custom-block></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="import module definition %&apos;module&apos; from %&apos;sprite&apos; (2)" type="reporter" category="Actions" helper="true"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s" readonly="true">myself<options>§_objectsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>blocks</l></list></block><block s="doSetVar"><l>blocks</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></autolambda><list></list></block><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></block><block s="doReport"><block s="reportJoinWords"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="%s = %s"><block s="reportListItem"><l>2</l><l/></block><block var="module"/></custom-block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><l></l><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></autolambda><list></list></block><custom-block s="deep indices of %s in %l"><l>define module _ _ options: _ _</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><l></l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block></block></block></block></block></script><scripts><script x="643.6646247632576" y="142.72727272728486"><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportAskFor"><l>rocket2</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block><l><option>blocks</option></l></block></script><script x="628.939393939394" y="35.12121212121201"><block s="bubble"><l>Hello!</l></block></script><script x="722.4982244318181" y="56.24242424242419"><block s="reportListItem"><l>1</l><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></script><script x="851.8181818181818" y="202.48484848484844"><block s="doReport"><l></l></block></script><script x="660.4301313920454" y="248.1818181818186"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></autolambda><list></list></block><block s="reportAskFor"><l>house</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></script></scripts></block-definition><block-definition s="remove duplicates ≡ %&apos;identical&apos; from %&apos;data&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%b">false</input><input type="%l"></input></inputs><script><block s="doIf"><block var="identical"/><script><block s="doReport"><l></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>1</l></list></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doDeclareVariables"><list><l>tail</l></list></block><block s="doSetVar"><l>tail</l><custom-block s="remove duplicates ≡ %b from %l"><block var="identical"/><block s="reportCDR"><block var="data"/></block></custom-block></block><block s="doIf"><block s="reportListContainsItem"><block var="tail"/><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><block var="tail"/></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block var="tail"/></block></block></script></block-definition><block-definition s="column %&apos;col&apos; of %&apos;data&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="122.72727272727272" collapsed="false">Get columns of a table as item of gets rows.  Can use column names if present in 1st row.  Supports lists of columns</comment><header></header><code></code><translations></translations><inputs><input type="%s">1<options>1&#xD;last&#xD;random</options></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="col"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportListItem"><block var="col"/><block s="reportListAttribute"><l><option>columns</option></l><block var="data"/></block></block></block></block></script><list></list></block><block s="doReport"><block s="reportListItem"><block var="col"/><block s="reportListAttribute"><l><option>columns</option></l><block var="data"/></block></block></block></script><scripts><script x="14.545454545454545" y="182.48484848484844"><block s="doIf"><block s="reportIsA"><block var="col"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListItem"><block s="reportNewList"><list><block s="reportNewList"><list></list></block><block var="col"/></list></block><block var="data"/></block></block></script><list></list><comment w="90" collapsed="false">Pre Snap 8.1 code</comment></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="col"/><l><option>number</option></l></block><block s="reportVariadicGreaterThan"><list><block var="col"/><l>0</l></list></block></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="col"/><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="data"/></block></block></list></block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><block var="col"/><l/></block></autolambda><list></list></block><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="col"/><l>last</l></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l><option>last</option></l><l/></block></autolambda><list></list></block><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="col"/><l>random</l></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l><option>random</option></l><l/></block></autolambda><list></list></block><block var="data"/></block></block></script><list></list></block><block s="doReport"><block s="reportListItem"><block var="col"/><block s="reportListAttribute"><l><option>columns</option></l><block var="data"/></block></block></block></script></scripts></block-definition><block-definition s="polyhedron lists of points: $nl %&apos;points&apos; $nl lists of faces: $nl %&apos;faces&apos;" type="reporter" category="Objects"><comment x="0" y="0" w="218.18181818181816" collapsed="false">each point should a a 3 item list of x,y and z co-oridinates&#xD;&#xD;each face should refer to a triangle made up of 3 of the points&#xD;&#xD;NOTE: 1st face MUST be [1,2,3]&#xD;&#xD;e.g&#xD;points = [10,0,0], [0,20,0],[-20,0,0],[0,10,20]&#xD;faces = [1,2,3],[1,2,4],[2,3,4],[3,1,4]&#xD;&#xD;</comment><header></header><code>polyhedron(&#xD;  points=[ &lt;#1&gt;] , &#xD;  faces=[ &lt;#2&gt; ]&#xD; )&#xD;</code><translations></translations><inputs><input type="%mult%l"></input><input type="%mult%l"></input></inputs></block-definition><block-definition s="replace %&apos;search&apos; in %&apos;text&apos; with %&apos;replace&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="90" collapsed="false">search and replace</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportTextSplit"><block var="text"/><block var="search"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block var="replace"/><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.&#xD;If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;ca:posició de _ en _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="use case-independent comparison"></custom-block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><custom-block s="to lower case %txt"><block var="small"/></custom-block><custom-block s="to lower case %txt"><block var="large"/></custom-block></list></block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="small"/><block var="large"/></list></block></block></block></script></block-definition><block-definition s="use case-independent comparison" type="predicate" category="sensing"><header></header><code></code><translations>ca:comparacions ignorant majúscules?&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>var_get(name)</l><list><l>_case indepent</l></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="to lower case %&apos;text&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="275.3333333333333" collapsed="false">Reports the input text with lower case letters instead of capital letters in the input.  Uses the user&apos;s locale&apos;s rules for case conversion.</comment><header></header><code></code><translations>pt:em minúsculas _&#xD;ca:_ a minúscules&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_lowercase(txt)</l><list><block s="reportJoinWords"><list><block var="text"/></list></block></list></block></block></script></block-definition><block-definition s="import module definition from file %&apos;file&apos;" type="command" category="Actions"><header></header><code></code><translations></translations><inputs><input type="%s">example.scad</input></inputs><scripts><script x="643.6646247632576" y="142.72727272728486"><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportAskFor"><l>rocket2</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block><l><option>blocks</option></l></block></script><script x="628.939393939394" y="35.12121212121201"><block s="bubble"><l>Hello!</l></block></script><script x="722.4982244318181" y="56.24242424242419"><block s="reportListItem"><l>1</l><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></script><script x="851.8181818181818" y="202.48484848484844"><block s="doReport"><l></l></block></script><script x="660.4301313920454" y="248.1818181818186"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></autolambda><list></list></block><block s="reportAskFor"><l>house</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></script></scripts></block-definition><block-definition s="thread diameter: %&apos;diameter&apos; pitch: %&apos;pitch&apos; height: %&apos;height&apos; ( internal: %&apos;internal&apos; taper: %&apos;taper&apos; leadin: %&apos;leadin&apos; )" type="reporter" category="Objects" helper="true"><comment x="0" y="0" w="325.45454545454544" collapsed="false">M1	R10	0.25	0.2&#xD;M1.2	R10	0.25	0.2          16	R10	2	1.5&#xD;M1.4	R20	0.3	0.2	           18	R20	2.5	2 or 1.5&#xD;M1.6	R10	0.35	0.2	         20	R10	2.5	2 or 1.5&#xD;M1.8	R20	0.35	0.2	         22	R20	2.5	2 or 1.5&#xD;M2	R10	0.4	0.25	            24	R10	3	2&#xD;M2.5	R10	0.45	0.35	       27	R20	3	2&#xD;M3	R10	0.5	0.35	             30	R10	3.5	2&#xD;M3.5	R20	0.6	0.35	          33	R20	3.5	2&#xD;M4	R10	0.7	0.5	               36	R10	4	3&#xD;M5	R10	0.8	0.5	               39	R20	4	3&#xD;M6	R10	1	0.75	                 42	R10	4.5	3&#xD;M7	R20	1	0.75	                 45	R20	4.5	3&#xD;M8	R10	1.25	1 or 0.75	     48	R10	5	3&#xD;M10	R10	1.5	1.25 or 1	      52	R20	5	4&#xD;M12	R10	1.75	1.5 or 1.25	 56	R10	5.5	4&#xD;M14	R20	2	1.5 </comment><header></header><code>metric_thread (&lt;#1&gt;,&lt;#2&gt;,&lt;#3&gt;,internal=&lt;#4&gt;,taper=&lt;#5&gt;,leadin=&lt;#6&gt;)</code><translations></translations><inputs><input type="%n">8</input><input type="%s">auto</input><input type="%n">20</input><input type="%b">false</input><input type="%n">0</input><input type="%s" readonly="true">both<options>both&#xD;top&#xD;bottom&#xD;none</options></input></inputs></block-definition><block-definition s="reshape %&apos;options&apos; %&apos;data&apos; to %&apos;shape&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="166.66666666666669" collapsed="false">when padding selected, instead of repeating source list values- use empty cells instead&#xD;V1.0.1 Allow 1st dimension to be zero&#xD;V1.0.2  Alter code but still not certain it&apos;s right</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">default<options>default&#xD;pad with empty cells&#xD;no repeat of cells</options></input><input type="%l"></input><input type="%mult%n"></input></inputs><script><block s="doDeclareVariables"><list><l>flat</l><l>original length</l><l>shape length</l><l>new list</l></list></block><block s="doSetVar"><l>flat</l><block s="reportListAttribute"><l><option>flatten</option></l><block var="data"/></block></block><block s="doSetVar"><l>original length</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="shape"/></block><l>1</l></list><comment w="90" collapsed="false">sometimes 1st item is blank and sometime zero hence this &lt;1 check</comment></block><script><block s="doReplaceInList"><l>1</l><block var="shape"/><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="flat"/></block><block s="reportVariadicProduct"><block s="reportCDR"><block var="shape"/></block></block></block></block></script><list></list></block><block s="doSetVar"><l>shape length</l><block s="reportVariadicProduct"><block var="shape"/></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="original length"/><block var="shape length"/></list></block><block s="reportVariadicEquals"><list><block var="options"/><l>default</l></list></block></list></block><script><block s="doReport"><block s="reportReshape"><block var="data"/><block var="shape"/></block></block></script><list></list></block><block s="doSetVar"><l>new list</l><block s="reportReshape"><block s="reportConcatenatedLists"><list><block var="flat"/><block s="reportListItem"><block s="reportNumbers"><block s="reportVariadicSum"><list><block var="original length"/><l>1</l></list></block><block var="shape length"/></block><block s="reportNewList"><list></list></block></block></list></block><block var="shape"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="options"/><l>pad with empty cells</l></list></block><script><block s="doReport"><block var="new list"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="options"/><l>no repeat of cells</l></list></block><script><block s="doReport"><custom-block s="deep remove empty from %l"><block var="new list"/></custom-block></block></script><list></list></block></script><scripts><script x="531.8333333333334" y="194.77777777777794"><block s="doSayFor"><block var="shape"/><l>2</l></block><block s="doSayFor"><block s="reportVariadicProduct"><block s="reportCDR"><block var="shape"/></block></block><l>2</l></block><block s="doSayFor"><block var="shape"/><l>2</l></block></script><script x="322.6416015625" y="100.75"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="reportVariadicSum"><block var="shape"/></block><l>0</l></list></block><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="shape"/></block><l>1</l></list><comment w="90" collapsed="false">code before 27Oct22 - don&apos;t know why sum is in there</comment></block></list></block></script><script x="555" y="304.72222222222223"><block s="doReport"><block var="shape"/></block></script></scripts></block-definition><block-definition s="deep remove empty from %&apos;data input&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>data</l></list></block><block s="doSetVar"><l>data</l><block s="reportMonadic"><l><option>id</option></l><block var="data input"/></block></block><block s="doIf"><custom-block s="does %l contain a list"><block var="data"/></custom-block><script><block s="doWarp"><script><block s="doFor"><l>index</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><block var="index"/><block var="data"/></block><l><option>list</option></l></block><script><block s="doReplaceInList"><block var="index"/><block var="data"/><custom-block s="remove empty items from %l"><custom-block s="deep remove empty from %l"><block s="reportListItem"><block var="index"/><block var="data"/></block></custom-block></custom-block></block></script><list></list></block></script></block></script></block></script><list></list></block><block s="doReport"><custom-block s="remove empty items from %l"><block var="data"/></custom-block></block></script></block-definition><block-definition s="does %&apos;data&apos; contain a list" type="predicate" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="data"/></block><l><option>list</option></l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="remove empty items from %&apos;data&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="90" collapsed="false">remove empty items from a list</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicNotEquals"><list><block var="value"/><l></l></list></block><block s="reportVariadicNotEquals"><list><block var="value"/><block s="reportNewList"><list></list></block></list></block></list></block><block s="reportVariadicNotEquals"><list><block var="value"/><block s="reportNewList"><list><l></l></list></block></list></block></list></block></autolambda><list><l>value</l></list></block><block s="reportListAttribute"><l><option>flatten</option></l><block var="items"/></block></block><l></l></list></block></autolambda><list><l>items</l></list></block><block var="data"/></block></block></script></block-definition><block-definition s="threads type: %&apos;type&apos; size: M %&apos;size&apos; height: %&apos;height&apos; tapered: %&apos;taper&apos;" type="reporter" category="User Modules"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">bolt<options>bolt&#xD;nut</options></input><input type="%n" readonly="true">8<options>6&#xD;7&#xD;8&#xD;10&#xD;12&#xD;14&#xD;16&#xD;18&#xD;20&#xD;22&#xD;24&#xD;27&#xD;30&#xD;33&#xD;36&#xD;39&#xD;42&#xD;45&#xD;48&#xD;52&#xD;56</options></input><input type="%s">20</input><input type="%b">true</input></inputs><script><custom-block s="comment %mlt"><l>needed temp padding</l></custom-block><custom-block s="let %upvar be %s"><l>pitchData</l><block s="reportNewList"><list><block s="reportNewList"><list><l>6</l><l>1</l></list></block><block s="reportNewList"><list><l>7</l><l>1</l></list></block><block s="reportNewList"><list><l>8</l><l>1.25</l></list></block><block s="reportNewList"><list><l>10</l><l>1.5</l></list></block><block s="reportNewList"><list><l>12</l><l>1.75</l></list></block><block s="reportNewList"><list><l>14</l><l>2</l></list></block><block s="reportNewList"><list><l>16</l><l>2</l></list></block><block s="reportNewList"><list><l>18</l><l>2.5</l></list></block><block s="reportNewList"><list><l>20</l><l>2.5</l></list></block><block s="reportNewList"><list><l>22</l><l>2.5</l></list></block><block s="reportNewList"><list><l>24</l><l>3</l></list></block><block s="reportNewList"><list><l>27</l><l>3</l></list></block><block s="reportNewList"><list><l>30</l><l>3.5</l></list></block><block s="reportNewList"><list><l>33</l><l>3.5</l></list></block><block s="reportNewList"><list><l>36</l><l>4</l></list></block><block s="reportNewList"><list><l>39</l><l>4</l></list></block><block s="reportNewList"><list><l>42</l><l>4.5</l></list></block><block s="reportNewList"><list><l>48</l><l>5</l></list></block><block s="reportNewList"><list><l>52</l><l>5</l></list></block><block s="reportNewList"><list><l>56</l><l>5.5</l></list></block></list></block></custom-block><custom-block s="let %upvar be %s"><l>pitchIndex</l><block s="reportListIndex"><block var="size"/><block var="pitchData"/></block></custom-block><custom-block s="let %upvar be %s"><l>pitch</l><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="pitchIndex"/><block var="pitchData"/></block></block></custom-block><custom-block s="let %upvar be %s"><l>headRadiusData</l><block s="reportNewList"><list><block s="reportNewList"><list><l>6</l><l>10</l></list></block><block s="reportNewList"><list><l>7</l><l>11</l></list></block><block s="reportNewList"><list><l>8</l><l>13</l></list></block><block s="reportNewList"><list><l>10</l><l>17</l></list></block><block s="reportNewList"><list><l>12</l><l>19</l></list></block><block s="reportNewList"><list><l>14</l><l>22</l></list></block><block s="reportNewList"><list><l>16</l><l>24</l></list></block><block s="reportNewList"><list><l>18</l><l>27</l></list></block><block s="reportNewList"><list><l>20</l><l>30</l></list></block><block s="reportNewList"><list><l>22</l><l>32</l></list></block><block s="reportNewList"><list><l>24</l><l>46</l></list></block><block s="reportNewList"><list><l>27</l><l>41</l></list></block><block s="reportNewList"><list><l>30</l><l>46</l></list></block><block s="reportNewList"><list><l>33</l><l>50</l></list></block><block s="reportNewList"><list><l>36</l><l>55</l></list></block><block s="reportNewList"><list><l>39</l><l>60</l></list></block><block s="reportNewList"><list><l>42</l><l>66</l></list></block><block s="reportNewList"><list><l>48</l><l>72</l></list></block><block s="reportNewList"><list><l>52</l><l>78</l></list></block><block s="reportNewList"><list><l>56</l><l>80</l></list></block></list></block></custom-block><custom-block s="let %upvar be %s"><l>headRadiusIndex</l><block s="reportListIndex"><block var="size"/><block var="headRadiusData"/></block></custom-block><custom-block s="let %upvar be %s"><l>headRadius</l><custom-block s="%n / %n"><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="headRadiusIndex"/><block var="headRadiusData"/></block></block><l>2</l></custom-block></custom-block><custom-block s="let %upvar be %s"><l>thickness</l><custom-block s="%n x %n"><block var="pitch"/><l>5</l></custom-block></custom-block><block s="doIfElse"><custom-block s="%s = %s"><block var="type"/><custom-block s="&quot; %s &quot;"><l>bolt</l></custom-block></custom-block><script><custom-block s="add %s"><custom-block s="thread diameter: %n pitch: %s height: %n ( internal: %b taper: %n leadin: %s )"><block var="size"/><block var="pitch"/><block var="height"/><l><bool>false</bool></l><block s="reportIfElse"><block var="taper"/><l>0.1</l><l>0</l></block><l>top</l></custom-block></custom-block><custom-block s="add %s"><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="thickness"/><block var="headRadius"/><l>6</l></custom-block></custom-block></script><script><custom-block s="add %s"><custom-block s="make %s hole in %s using %s"><l>simple</l><custom-block s="make %s hole in %s using %s"><l>simple</l><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>0.01</l><custom-block s="cylinder height: %n radius: %n sides: %n"><custom-block s="%n - %n"><block var="thickness"/><l>0.005</l></custom-block><custom-block s="%n x %n"><block var="headRadius"/><l>1.14142</l></custom-block><l>6</l></custom-block></custom-block><custom-block s="group as one object %cs"><script><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><custom-block s="%n x %n"><block var="thickness"/><l>1.8</l></custom-block><custom-block s="rotate x: %n y: %n z: %n %s"><l>180</l><l>0</l><l>0</l><custom-block s="dome radius: %n sides: %n"><block var="headRadius"/><l>24</l></custom-block></custom-block></custom-block></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><custom-block s="%n - %n"><l>-1</l><custom-block s="%n x %n"><block var="thickness"/><l>0.8</l></custom-block></custom-block><custom-block s="dome radius: %n sides: %n"><block var="headRadius"/><l>24</l></custom-block></custom-block></custom-block></script></custom-block></custom-block><custom-block s="thread diameter: %n pitch: %s height: %n ( internal: %b taper: %n leadin: %s )"><custom-block s="%n x %n"><block var="size"/><l>1.05</l></custom-block><block var="pitch"/><block var="thickness"/><l><bool>true</bool></l><l>0</l><l>both</l></custom-block></custom-block></custom-block></script></block></script><scripts><script x="555.5454545454544" y="140.24242424242428"><block s="doSayFor"><block var="pitchIndex"/><l>2</l></block></script></scripts></block-definition><block-definition s="make %&apos;type&apos; hole in %&apos;object1&apos; using %&apos;object2&apos;" type="reporter" category="Transformations"><header></header><code>difference(){&#xD;    &lt;#2&gt;;&#xD;    if (&quot;&lt;#1&gt;&quot; == &quot;simple&quot;) &#xD;      {&#xD;        &lt;#3&gt;;&#xD;      } else {&#xD;        translate([0.01,0,0])&lt;#3&gt;;&#xD;        translate([-0.01,0,0])&lt;#3&gt;;&#xD;        translate([0,0.01,0])&lt;#3&gt;;&#xD;        translate([0,-0.01,0])&lt;#3&gt;;&#xD;        translate([0,0,0.01])&lt;#3&gt;;&#xD;        translate([0,0,-0.01])&lt;#3&gt;;&#xD;      };&#xD;}</code><translations></translations><inputs><input type="%s" readonly="true">standard<options>standard&#xD;simple</options></input><input type="%s">object1</input><input type="%s">object2</input></inputs></block-definition><block-definition s="test width: %&apos;width&apos; length: %&apos;length&apos;" type="reporter" category="User Modules"><header></header><code></code><translations></translations><inputs><input type="%s">default</input><input type="%n">10</input></inputs><script><custom-block s="add %s"><custom-block s="cube x: %n y: %n z: %n"><block s="reportIfElse"><custom-block s="%s = %s"><block var="width"/><custom-block s="&quot; %s &quot;"><l>default</l></custom-block></custom-block><l>20</l><block var="width"/></block><block var="length"/><l>5</l></custom-block></custom-block></script></block-definition><block-definition s="&quot; %&apos;val&apos; &quot;" type="reporter" category="operators"><header></header><code>&quot;&lt;#1&gt;&quot;</code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="is %&apos;val&apos; a text ?" type="reporter" category="operators"><header></header><code>is_string(&lt;#1&gt;)</code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="ensure list %&apos;val&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="133.63636363636363" collapsed="false">makes ure the data is a list</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="val"/><l><option>list</option></l></block><script><block s="doReport"><block var="val"/></block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><block var="val"/></list></block></block></script></block-definition><block-definition s="ensure 2D list %&apos;val&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="289.09090909090907" collapsed="false">convert a simple list into a 2D list with one row</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="val"/></block><l><option>list</option></l></block><script><block s="doReport"><block var="val"/></block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><block var="val"/></list></block></block></script></block-definition><block-definition s="enhanced index of %&apos;search&apos; in %&apos;data&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="215.69824218749963" collapsed="false">&#xD;If search item is not a list and data list is of rank 1, then standard index reporter is invoked&#xD;&#xD;However, if search item is a list and data list is of rank 1, then returns index of search list within main list (0 if not found)&#xD;&#xD;If search item is a list and data list is rank 2 (i.e. a table), then checks each item of data list for a match with search list and report matching index (0 if not found)&#xD;&#xD;If non of the above criteria are valid, then the job is handed off to a deep index reporter (see seperate help on that custom block)&#xD;&#xD;26Oct2022 V2.0.1</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>index</l><l>search length</l></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>rank</option></l><block var="data"/></block><l>1</l></list></block><script><block s="doIf"><block s="reportIsA"><block var="search"/><l><option>list</option></l></block><script><block s="doSetVar"><l>index</l><block s="reportListIndex"><block s="reportListItem"><l>1</l><block var="search"/></block><block var="data"/></block></block><block s="doSetVar"><l>search length</l><block s="reportListAttribute"><l><option>length</option></l><block var="search"/></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportVariadicSum"><list><block var="index"/><block var="search length"/><l>-1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block></list></block><script><block s="doReport"><l>0</l></block></script><list></list></block><block s="doFor"><l>i</l><block var="index"/><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><block var="search length"/></block><l>1</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="search"/><block s="reportListItem"><block s="reportNumbers"><block var="i"/><block s="reportVariadicSum"><list><block var="i"/><block var="search length"/><l>-1</l></list></block></block><block var="data"/></block></list></block><script><block s="doReport"><block var="i"/></block></script><list></list></block></script></block><block s="doReport"><l>0</l></block></script><list></list></block><block s="doReport"><block s="reportListIndex"><block var="search"/><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>rank</option></l><block var="data"/></block><l>2</l></list></block><script><block s="doIf"><block s="reportIsA"><block var="search"/><l><option>list</option></l></block><script><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>item</l><block var="data"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="search"/><block var="item"/></list></block><script><block s="doReport"><block var="#"/></block></script><list></list></block></script></custom-block><block s="doReport"><l>0</l></block></script><list></list></block><block s="doReport"><custom-block s="deep index of %s in %l"><block var="search"/><block var="data"/></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="deep index of %s in %l"><block var="search"/><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists" helper="true"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doForEach"><l>inner item</l><block var="data"/><script><block s="doSetVar"><l>item</l><block var="inner item"/></block><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="deep index of %&apos;item&apos; in %&apos;list&apos;" type="reporter" category="lists" helper="true"><comment x="0" y="0" w="222.01113281249985" collapsed="false">return an index (as a list) of the first occurence of the item in a nested list&#xD;&#xD;e.g given a list data as:&#xD;[&#xD;A,&#xD;[B,C],&#xD;D, [E,F,G],&#xD;H&#xD;]&#xD;deep index of E of data would return [3,2,1] to indicate that it found the item as the 1st item of the 2nd item of the 3rd item of data</comment><header></header><code></code><translations></translations><inputs><input type="%s">thing</input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="item"/><block s="reportListItem"><block var="i"/><block var="list"/></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="i"/></list></block></block></script><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="list"/></block><l><option>list</option></l></block><script><block s="doDeclareVariables"><list><l>path</l></list></block><block s="doSetVar"><l>path</l><custom-block s="deep index of %s in %l"><block var="item"/><block s="reportListItem"><block var="i"/><block var="list"/></block></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="path"/></block></block><script><block s="doReport"><block s="reportCONS"><block var="i"/><block var="path"/></block></block></script><list></list></block></script><list></list></block></script></block></script></block><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block></script></block-definition><block-definition s="imported module defiinitions" type="reporter" category="other" helper="true"><comment x="0" y="0" w="90" collapsed="false">Finds any import module blocks and replaces them with module definitions</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="%s = %s"><custom-block s="deep index of %s in %l"><block s="reifyScript"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><block s="reportNewList"><list></list></block></custom-block><comment w="90" collapsed="false">are there any import module blocks</comment></block><script><block s="doDeclareVariables"><list><l>import module path</l></list></block><block s="doSetVar"><l>import module path</l><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep index of %s in %l"><block s="reifyReporter"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><l>1</l><l>-2</l></custom-block></block><block s="doDeclareVariables"><list><l>module name</l></list></block><block s="doSetVar"><l>module name</l><block s="reportListItem"><l>2</l><custom-block s="deep item from path %l %br of %l"><block var="import module path"/><block var="blocks"/></custom-block></block></block><block s="doDeclareVariables"><list><l>sprite name</l></list></block><block s="doSetVar"><l>sprite name</l><block s="reportListItem"><l>3</l><custom-block s="deep item from path %l %br of %l"><block var="import module path"/><block var="blocks"/></custom-block></block></block><block s="doDeclareVariables"><list><l>sprite blocks</l></list></block><block s="doSetVar"><l>sprite blocks</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></autolambda><list></list></block><block s="reportAskFor"><block var="sprite name"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></block><block s="doDeclareVariables"><list><l>imported module definition blocks</l></list></block><block s="doSetVar"><l>imported module definition blocks</l><block s="reportListItem"><l>1</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="%s = %s"><block s="reportListItem"><l>2</l><l/></block><block var="module name"/></custom-block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><l></l><l>1</l><l>-2</l></custom-block><block var="sprite blocks"/></custom-block></autolambda><list></list></block><custom-block s="deep indices of %s in %l"><l>define module _ _ options: _ _</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><l></l></block></autolambda><list></list></block><block var="sprite blocks"/></custom-block></custom-block></block></block></block><comment w="249.99999999999997" collapsed="false">make a list of all define module blocks that match with module name but since there should only be one - only use the 1st one in the list (maybe could be coded better)</comment></block><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block var="imported module definition blocks"/><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep index of %s in %l"><block s="reifyReporter"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><l>1</l><l>-2</l></custom-block></custom-block><block s="doSetVar"><l>debug</l><block s="reportMonadic"><l><option>id</option></l><block var="blocks"/></block></block></script><list></list></block><block s="doReport"><block var="blocks"/></block></script></block-definition><block-definition s="$seperator-0.1" type="command" category="other"><comment x="0" y="0" w="100.9090909090909" collapsed="false">just a seperator block that does nothing</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="generate OpenSCAD script %&apos;script&apos;" type="command" category="Actions"><comment x="0" y="0" w="449.99999999999994" collapsed="true">generate OpenSCAD code and place it in the code variable when it can be exported.&#xD;&#xD;If JavaScript is enabled, then the code will be downloaded as the name of the sprite with .scad added&#xD;&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doSetVar"><l>debug</l><block s="reportNewList"><list></list></block></block><custom-block s="map to OpenSCAD"></custom-block><block s="doWarp"><script><block s="doSetVar"><l>ScriptEcho</l><l>start</l></block><block s="doSetVar"><l>existing module names</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>blocks</l><custom-block s="ensure 2D list %l"><block s="reportTextSplit"><block var="script"/><l><option>blocks</option></l></block></custom-block></block><custom-block s="$seperator-0.1"></custom-block><block s="doUntil"><block s="reportVariadicAnd"><list><custom-block s="%s = %s"><custom-block s="deep index of %s in %l"><block s="reifyScript"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><block s="reportNewList"><list></list></block></custom-block><block s="reportVariadicEquals"><list><custom-block s="deep indices of %s in %l"><l>User Modules</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportListItem"><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportGet"><l><option>categories</option></l></block></block><l>null</l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block><block s="reportNewList"><list></list></block></list></block></list><comment w="90" collapsed="false">iterate over script until no more substitons are needed</comment></block><script><block s="doSetVar"><l>ScriptEcho</l><l>in repeat</l></block><block s="doSetVar"><l>blocks</l><custom-block s="imported module defiinitions"></custom-block></block><block s="doSetVar"><l>ScriptEcho</l><block s="reportJoinWords"><block var="blocks"/></block></block><custom-block s="comment %mlt"><l>Finds any blocks that are in category User Module&#xD;and extracts the custom user module script and converts it to an OpendSCAD module defintion and &#xD;places it at the beginning of the script</l></custom-block><block s="doSetVar"><l>modules</l><custom-block s="create def modules from split script %s"><block var="blocks"/></custom-block></block><block s="doSetVar"><l>blocks</l><block s="reportMonadic"><l><option>id</option></l><block s="reportConcatenatedLists"><list><block var="modules"/><block var="blocks"/></list></block></block></block><block s="doSetVar"><l>modules</l><block s="reportNewList"><list></list></block></block><custom-block s="comment %mlt"><l>Replace the actual User Modules custom reporter with a module definition</l></custom-block><block s="doForEach"><l>item path</l><custom-block s="deep indices of %s in %l"><l>User Modules</l><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportListItem"><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportGet"><l><option>categories</option></l></block></block><l>null</l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block><script><custom-block s="comment %mlt"><l>Note the deep map used in next block is only required to overcome a little issue in V8 - it works without it in v9 of Snap!</l></custom-block><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportNewList"><list><block s="reifyReporter"><autolambda><custom-block s="module %s options: %mult%s"><l></l><list><l></l></list></custom-block></autolambda><list></list></block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block><l><option>word</option></l></block></block><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>slots</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><list><custom-block s="deep item from path %l %br of %l"><block var="item path"/><block var="blocks"/></custom-block></list></block></block></list></block><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><l>0</l></list></block><l>0</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><l>false</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><l>true</l><l></l></block></block></block></autolambda><list></list></block><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block><l>2</l><l>-1</l></custom-block></custom-block></list></block></list></block><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block></custom-block><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportNewList"><list><block s="reportListItem"><l>1</l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>text</option></l></block><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><l></l><l>true</l></list></block><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><l></l><l>false</l></list></block><block s="reportJoinWords"><list><l>"</l><l></l><l>"</l></list></block><l></l></block><l></l></block><l></l></block></autolambda><list></list></block><block s="reportListItem"><l>3</l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block></block></list></block><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="item path"/><l>1</l><l>-2</l></custom-block><comment w="90" collapsed="false">Check to see if any module parameters are plain text and if so - wrap &quot;&quot; around them as they probably are strings and not var names</comment></custom-block></script></block><block s="doSetVar"><l>ScriptEcho</l><block var="blocks"/></block><block s="doSetVar"><l>blocks</l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>2</l><l/></block></list></block></autolambda><list></list></block><list><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><custom-block s="remove duplicates ≡ %b from %l"><l><bool>false</bool></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="text %txt contains %txt"><block s="reportBlockAttribute"><l><option>label</option></l><block s="reportListItem"><l>1</l><l/></block></block><l>define</l></custom-block></autolambda><list></list></block><l/></block></custom-block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><custom-block s="text %txt contains %txt"><block s="reportBlockAttribute"><l><option>label</option></l><block s="reportListItem"><l>1</l><l/></block></block><l>define</l></custom-block></block></autolambda><list></list></block><l/></block></list></block></autolambda><list></list></block><list><block var="blocks"/></list></block></list><comment w="90" collapsed="false">remove duplicate module definitions</comment></block></block></script></block><block s="doSetVar"><l>ScriptEcho</l><block var="blocks"/></block><custom-block s="comment %mlt"><l>alter list indcies in polyhedron</l></custom-block><block s="doForEach"><l>path</l><custom-block s="deep indices of %s in %l"><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><autolambda><custom-block s="polyhedron lists of points: %br %mult%l %br lists of faces: %br %mult%l"><list><l/></list><list><l/></list></custom-block></autolambda><list></list></block></block><custom-block s="deep map %repRing over %l"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><l></l><l><option>command</option></l></block><block s="reportIsA"><l></l><l><option>reporter</option></l></block><block s="reportIsA"><l></l><l><option>predicate</option></l></block></list></block><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><l>null</l></block></autolambda><list></list></block><block var="blocks"/></custom-block></custom-block><script><block s="doFor"><l>i</l><block s="reportListIndex"><block s="reportTextSplit"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></autolambda><list></list></block><l><option>blocks</option></l></block><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><block s="reportListAttribute"><l><option>length</option></l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block var="value"/><block s="reportDifference"><block var="value"/><l>1</l></block></block></autolambda><list><l>value</l><l>index</l></list></block><custom-block s="deep item from path %l %br of %l"><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><block var="i"/></list></block></list></block><block var="blocks"/></custom-block></block><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><block var="i"/></list></block></list></block><comment w="90" collapsed="false">convert base 1 list values to base 0 - feel this could be done simpler :)</comment></custom-block></script><comment w="90" collapsed="false">find out where the faces lists are by utilising fact that poyhedron reports length of points list</comment></block></script></block><custom-block s="comment %mlt"><l>change \ in stl import to /</l></custom-block><block s="doForEach"><l>path</l><custom-block s="deep indices of %s in %l"><block s="reifyReporter"><autolambda><custom-block s="stl file %txt"><l></l></custom-block></autolambda><list></list></block><block var="blocks"/></custom-block><script><block s="doSetVar"><l>path</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><l>2</l></list></block></list></block></block><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><custom-block s="replace %txt in %txt with %txt"><l>\</l><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>/</l></custom-block><block var="path"/></custom-block></script></block><custom-block s="comment %mlt"><l>process threads to auto fill in values</l></custom-block><block s="doForEach"><l>path</l><custom-block s="deep indices of %s in %l"><block s="reifyReporter"><autolambda><custom-block s="thread diameter: %n pitch: %s height: %n ( internal: %b taper: %n leadin: %s )"><l></l><l></l><l></l><l/><l></l><l></l></custom-block></autolambda><list></list></block><block var="blocks"/></custom-block><script><block s="doSetVar"><l>path</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><l>7</l></list></block></list></block></block><block s="doSetVar"><l>deep item</l><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block></block><block s="doIf"><block s="reportIsA"><block var="deep item"/><l><option>text</option></l></block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportDifference"><block s="reportListIndex"><block var="deep item"/><block s="reportNewList"><list><l>none</l><l>top</l><l>both</l><l>bottom</l></list></block></block><l>1</l></block><block var="path"/></custom-block></script><list></list><comment w="241.81818181818178" collapsed="true">replace leadin text with numerical value</comment></block></script></block><block s="doSetVar"><l>script</l><block s="reportJoinWords"><block var="blocks"/></block></block><custom-block s="comment %mlt"><l>main processing</l></custom-block><block s="doSetVar"><l>ScriptEcho</l><block var="script"/></block><block s="doSetVar"><l>code</l><custom-block s="tidy up %s"><block s="reportMappedCode"><block var="script"/></block></custom-block></block><block s="doSetVar"><l>code</l><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>10</l></block><l>_alpha=255;</l><block s="reportUnicodeAsLetter"><l>10</l></block><block var="code"/></list></block></block><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="text %txt contains %txt"><block var="code"/><l>_mirror_copy</l></custom-block><block s="reportNot"><custom-block s="text %txt contains %txt"><block var="code"/><l>module _mirror_copy</l></custom-block></block></list></block><script><block s="doSetVar"><l>code</l><block s="reportJoinWords"><list><l>module _mirror_copy(v = [1, 0, 0]) {&#xD;    children();&#xD;    mirror(v) children();&#xD;}</l><block s="reportUnicodeAsLetter"><l>10</l></block><block var="code"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="text %txt contains %txt"><block var="code"/><l>metric_thread</l></custom-block><block s="reportNot"><custom-block s="text %txt contains %txt"><block var="code"/><l>module metric_thread</l></custom-block></block></list></block><script><block s="doSetVar"><l>code</l><block s="reportJoinWords"><list><block s="reportJoinWords"><block s="reportNewList"><list><l>/*&#xD; * ISO-standard metric threads, following this specification:&#xD; *          http://en.wikipedia.org</l><l>/wiki/ISO_metric_screw_thread&#xD; *&#xD; * Copyright 2022 Dan Kirshner - dan_kirshner@yahoo.com&#xD; * This pro</l><l>gram is free software: you can redistribute it and/or modify&#xD; * it under the terms of the GNU Genera</l><l>l Public License as published by&#xD; * the Free Software Foundation, either version 3 of the License, o</l><l>r&#xD; * (at your option) any later version.&#xD; *&#xD; * This program is distributed in the hope that it will </l><l>be useful,&#xD; * but WITHOUT ANY WARRANTY; without even the implied warranty of&#xD; * MERCHANTABILITY or F</l><l>ITNESS FOR A PARTICULAR PURPOSE.  See the&#xD; * GNU General Public License for more details.&#xD; *&#xD; * See </l><l>&lt;http://www.gnu.org/licenses/&gt;.&#xD; *&#xD; * Version 2.7.  2022-02-27  Increase minimum thread segments.&#xD; *</l><l> Version 2.6.  2021-05-16  Contributed patches for leadin (thanks,&#xD;                             jeff</l><l>ery.spirko@tamucc.edu) and aligning thread&#xD;                             "facets" (triangulation) wit</l><l>h base cylinder&#xD;                             (thanks, rambetter@protonmail.com).&#xD; * Version 2.5.  20</l><l>20-04-11  Leadin option works for internal threads.&#xD; * Version 2.4.  2019-07-14  Add test option - d</l><l>o not render threads.&#xD; * Version 2.3.  2017-08-31  Default for leadin: 0 (best for internal threads)</l><l>.&#xD; * Version 2.2.  2017-01-01  Correction for angle; leadfac option.  (Thanks to&#xD; *                 </l><l>          Andrew Allen &lt;a2intl@gmail.com&gt;.)&#xD; * Version 2.1.  2016-12-04  Chamfer bottom end (low-z);</l><l> leadin option.&#xD; * Version 2.0.  2016-11-05  Backwards compatibility (earlier OpenSCAD) fixes.&#xD; * Ve</l><l>rsion 1.9.  2016-07-03  Option: tapered.&#xD; * Version 1.8.  2016-01-08  Option: (non-standard) angle.&#xD;</l><l> * Version 1.7.  2015-11-28  Larger x-increment - for small-diameters.&#xD; * Version 1.6.  2015-09-01  </l><l>Options: square threads, rectangular threads.&#xD; * Version 1.5.  2015-06-12  Options: thread_size, gro</l><l>ove.&#xD; * Version 1.4.  2014-10-17  Use "faces" instead of "triangles" for polyhedron&#xD; * Version 1.3. </l><l> 2013-12-01  Correct loop over turns -- don&apos;t have early cut-off&#xD; * Version 1.2.  2012-09-09  Use di</l><l>screte polyhedra rather than linear_extrude ()&#xD; * Version 1.1.  2012-09-07  Corrected to right-hand </l><l>threads!&#xD; */&#xD;&#xD;// Examples.&#xD;//&#xD;// Standard M8 x 1.&#xD;// metric_thread (diameter=8, pitch=1, length=4);&#xD;</l><l>&#xD;// Square thread.&#xD;// metric_thread (diameter=8, pitch=1, length=4, square=true);&#xD;&#xD;// Non-standard: </l><l>long pitch, same thread size.&#xD;//metric_thread (diameter=8, pitch=4, length=4, thread_size=1, groove=</l><l>true);&#xD;&#xD;// Non-standard: 20 mm diameter, long pitch, square "trough" width 3 mm,&#xD;// depth 1 mm.&#xD;//me</l><l>tric_thread (diameter=20, pitch=8, length=16, square=true, thread_size=6,&#xD;//               groove=tr</l><l>ue, rectangle=0.333);&#xD;&#xD;// English: 1/4 x 20.&#xD;//english_thread (diameter=1/4, threads_per_inch=20, le</l><l>ngth=1);&#xD;&#xD;// Tapered.  Example -- pipe size 3/4" -- per:&#xD;// http://www.engineeringtoolbox.com/npt-na</l><l>tional-pipe-taper-threads-d_750.html&#xD;// english_thread (diameter=1.05, threads_per_inch=14, length=3</l><l>/4, taper=1/16);&#xD;&#xD;// Thread for mounting on Rohloff hub.&#xD;//difference () {&#xD;//   cylinder (r=20, h=10</l><l>, $fn=100);&#xD;//&#xD;//   metric_thread (diameter=34, pitch=1, length=10, internal=true, n_starts=6);&#xD;//}&#xD;</l><l>&#xD;&#xD;// ----------------------------------------------------------------------------&#xD;function segments </l><l>(diameter) = min (150, max (ceil (diameter*6), 25));&#xD;&#xD;&#xD;// ------------------------------------------</l><l>----------------------------------&#xD;// diameter -    outside diameter of threads in mm. Default: 8.&#xD;/</l><l>/ pitch    -    thread axial "travel" per turn in mm.  Default: 1.&#xD;// length   -    overall axial le</l><l>ngth of thread in mm.  Default: 1.&#xD;// internal -    true = clearances for internal thread (e.g., a n</l><l>ut).&#xD;//               false = clearances for external thread (e.g., a bolt).&#xD;//               (Inter</l><l>nal threads should be "cut out" from a solid using&#xD;//               difference ()).  Default: false.</l><l>&#xD;// n_starts -    Number of thread starts (e.g., DNA, a "double helix," has&#xD;//               n_start</l><l>s=2).  See wikipedia Screw_thread.  Default: 1.&#xD;// thread_size - (non-standard) axial width of a sin</l><l>gle thread "V" - independent&#xD;//               of pitch.  Default: same as pitch.&#xD;// groove      - (n</l><l>on-standard) true = subtract inverted "V" from cylinder&#xD;//                (rather thanadd protruding</l><l> "V" to cylinder).  Default: false.&#xD;// square      - true = square threads (per&#xD;//               htt</l><l>ps://en.wikipedia.org/wiki/Square_thread_form).  Default:&#xD;//               false.&#xD;// rectangle   - (</l><l>non-standard) "Rectangular" thread - ratio depth/(axial) width&#xD;//               Default: 0 (standard</l><l> "v" thread).&#xD;// angle       - (non-standard) angle (deg) of thread side from perpendicular to&#xD;//   </l><l>            axis (default = standard = 30 degrees).&#xD;// taper       - diameter change per length (Nat</l><l>ional Pipe Thread/ANSI B1.20.1&#xD;//               is 1" diameter per 16" length). Taper decreases from</l><l> &apos;diameter&apos;&#xD;//               as z increases.  Default: 0 (no taper).&#xD;// leadin      - 0 (default): n</l><l>o chamfer; 1: chamfer (45 degree) at max-z end;&#xD;//               2: chamfer at both ends, 3: chamfer</l><l> at z=0 end.&#xD;// leadfac     - scale of leadin chamfer length (default: 1.0 = 1/2 thread).&#xD;// test   </l><l>     - true = do not render threads (just draw "blank" cylinder).&#xD;//               Default: false (d</l><l>raw threads).&#xD;module metric_thread (diameter=8, pitch=1, length=1, internal=false, n_starts=1,&#xD;     </l><l>                 thread_size=-1, groove=false, square=false, rectangle=0,&#xD;                      angl</l><l>e=30, taper=0, leadin=0, leadfac=1.0, test=false)&#xD;{&#xD;   // thread_size: size of thread "V" different </l><l>than travel per turn (pitch).&#xD;   // Default: same as pitch.&#xD;   local_thread_size = thread_size == -1</l><l> ? pitch : thread_size;&#xD;   local_rectangle = rectangle ? rectangle : 1;&#xD;&#xD;   n_segments = segments (d</l><l>iameter);&#xD;   h = (test &amp;&amp; ! internal) ? 0 : (square || rectangle) ? local_thread_size*local_rectangl</l><l>e/2 : local_thread_size / (2 * tan(angle));&#xD;&#xD;   h_fac1 = (square || rectangle) ? 0.90 : 0.625;&#xD;&#xD;   /</l><l>/ External thread includes additional relief.&#xD;   h_fac2 = (square || rectangle) ? 0.95 : 5.3/8;&#xD;&#xD;   </l><l>tapered_diameter = diameter - length*taper;&#xD;&#xD;   difference () {&#xD;      union () {&#xD;         if (! groo</l><l>ve) {&#xD;            if (! test) {&#xD;               metric_thread_turns (diameter, pitch, length, interna</l><l>l, n_starts,&#xD;                                    local_thread_size, groove, square, rectangle, angle</l><l>,&#xD;                                    taper);&#xD;            }&#xD;         }&#xD;&#xD;         difference () {&#xD;&#xD;  </l><l>          // Solid center, including Dmin truncation.&#xD;            if (groove) {&#xD;               cylin</l><l>der (r1=diameter/2, r2=tapered_diameter/2,&#xD;                         h=length, $fn=n_segments);&#xD;     </l><l>       } else if (internal) {&#xD;               cylinder (r1=diameter/2 - h*h_fac1, r2=tapered_diameter</l><l>/2 - h*h_fac1,&#xD;                         h=length, $fn=n_segments);&#xD;            } else {&#xD;&#xD;           </l><l>    // External thread.&#xD;               cylinder (r1=diameter/2 - h*h_fac2, r2=tapered_diameter/2 - h</l><l>*h_fac2,&#xD;                         h=length, $fn=n_segments);&#xD;            }&#xD;&#xD;            if (groove) </l><l>{&#xD;               if (! test) {&#xD;                  metric_thread_turns (diameter, pitch, length, inter</l><l>nal, n_starts,&#xD;                                       local_thread_size, groove, square, rectangle,&#xD;</l><l>                                       angle, taper);&#xD;               }&#xD;            }&#xD;         }&#xD;&#xD;   </l><l>      // Internal thread lead-in: take away from external solid.&#xD;         if (internal) {&#xD;&#xD;         </l><l>   // "Negative chamfer" z=0 end if leadin is 2 or 3.&#xD;            if (leadin == 2 || leadin == 3) {&#xD;</l><l>&#xD;               // Fixes by jeffery.spirko@tamucc.edu.&#xD;               cylinder (r1=diameter/2 - h + </l><l>h*h_fac1*leadfac,&#xD;                         r2=diameter/2 - h,&#xD;                         h=h*h_fac1*le</l><l>adfac, $fn=n_segments);&#xD;               /*&#xD;               cylinder (r1=diameter/2,&#xD;                  </l><l>       r2=diameter/2 - h*h_fac1*leadfac,&#xD;                         h=h*h_fac1*leadfac, $fn=n_segments</l><l>);&#xD;               */&#xD;            }&#xD;&#xD;            // "Negative chamfer" z-max end if leadin is 1 or 2.</l><l>&#xD;            if (leadin == 1 || leadin == 2) {&#xD;               translate ([0, 0, length + 0.05 - h*h_</l><l>fac1*leadfac]) {&#xD;&#xD;                  cylinder (r1=tapered_diameter/2 - h,&#xD;                           </l><l> h=h*h_fac1*leadfac,&#xD;                            r2=tapered_diameter/2 - h + h*h_fac1*leadfac,&#xD;     </l><l>                       $fn=n_segments);&#xD;                  /*&#xD;                  cylinder (r1=tapered_</l><l>diameter/2 - h*h_fac1*leadfac,&#xD;                            h=h*h_fac1*leadfac,&#xD;                     </l><l>       r2=tapered_diameter/2,&#xD;                            $fn=n_segments);&#xD;                  */&#xD;    </l><l>           }&#xD;            }&#xD;         }&#xD;      }&#xD;&#xD;      if (! internal) {&#xD;&#xD;         // Chamfer z=0 end </l><l>if leadin is 2 or 3.&#xD;         if (leadin == 2 || leadin == 3) {&#xD;            difference () {&#xD;        </l><l>       cylinder (r=diameter/2 + 1, h=h*h_fac1*leadfac, $fn=n_segments);&#xD;&#xD;               cylinder (r2</l><l>=diameter/2, r1=diameter/2 - h*h_fac1*leadfac, h=h*h_fac1*leadfac,&#xD;                         $fn=n_se</l><l>gments);&#xD;            }&#xD;         }&#xD;&#xD;         // Chamfer z-max end if leadin is 1 or 2.&#xD;         if (l</l><l>eadin == 1 || leadin == 2) {&#xD;            translate ([0, 0, length + 0.05 - h*h_fac1*leadfac]) {&#xD;    </l><l>           difference () {&#xD;                  cylinder (r=diameter/2 + 1, h=h*h_fac1*leadfac, $fn=n_s</l><l>egments);&#xD;&#xD;                  cylinder (r1=tapered_diameter/2, r2=tapered_diameter/2 - h*h_fac1*leadf</l><l>ac, h=h*h_fac1*leadfac,&#xD;                            $fn=n_segments);&#xD;               }&#xD;            }&#xD;</l><l>         }&#xD;      }&#xD;   }&#xD;}&#xD;&#xD;&#xD;// ---------------------------------------------------------------------</l><l>-------&#xD;// Input units in inches.&#xD;// Note: units of measure in drawing are mm!&#xD;module english_thread</l><l> (diameter=0.25, threads_per_inch=20, length=1,&#xD;                      internal=false, n_starts=1, th</l><l>read_size=-1, groove=false,&#xD;                      square=false, rectangle=0, angle=30, taper=0, lead</l><l>in=0,&#xD;                      leadfac=1.0, test=false)&#xD;{&#xD;   // Convert to mm.&#xD;   mm_diameter = diamete</l><l>r*25.4;&#xD;   mm_pitch = (1.0/threads_per_inch)*25.4;&#xD;   mm_length = length*25.4;&#xD;&#xD;   echo (str ("mm_di</l><l>ameter: ", mm_diameter));&#xD;   echo (str ("mm_pitch: ", mm_pitch));&#xD;   echo (str ("mm_length: ", mm_le</l><l>ngth));&#xD;   metric_thread (mm_diameter, mm_pitch, mm_length, internal, n_starts,&#xD;                  th</l><l>read_size, groove, square, rectangle, angle, taper, leadin,&#xD;                  leadfac, test);&#xD;}&#xD;&#xD;// </l><l>----------------------------------------------------------------------------&#xD;module metric_thread_tu</l><l>rns (diameter, pitch, length, internal, n_starts,&#xD;                            thread_size, groove, s</l><l>quare, rectangle, angle,&#xD;                            taper)&#xD;{&#xD;   // Number of turns needed.&#xD;   n_tur</l><l>ns = floor (length/pitch);&#xD;&#xD;   intersection () {&#xD;&#xD;      // Start one below z = 0.  Gives an extra tu</l><l>rn at each end.&#xD;      for (i=[-1*n_starts : n_turns+1]) {&#xD;         translate ([0, 0, i*pitch]) {&#xD;   </l><l>         metric_thread_turn (diameter, pitch, internal, n_starts,&#xD;                                th</l><l>read_size, groove, square, rectangle, angle,&#xD;                                taper, i*pitch);&#xD;      </l><l>   }&#xD;      }&#xD;&#xD;      // Cut to length.&#xD;      translate ([0, 0, length/2]) {&#xD;         cube ([diameter*</l><l>3, diameter*3, length], center=true);&#xD;      }&#xD;   }&#xD;}&#xD;&#xD;&#xD;// ------------------------------------------</l><l>----------------------------------&#xD;module metric_thread_turn (diameter, pitch, internal, n_starts, t</l><l>hread_size,&#xD;                           groove, square, rectangle, angle, taper, z)&#xD;{&#xD;   n_segments =</l><l> segments (diameter);&#xD;   fraction_circle = 1.0/n_segments;&#xD;   for (i=[0 : n_segments-1]) {&#xD;&#xD;      //</l><l> Keep polyhedron "facets" aligned -- circumferentially -- with base&#xD;      // cylinder facets.  (Patc</l><l>h contributed by rambetter@protonmail.com.)&#xD;      rotate ([0, 0, (i + 0.5)*360*fraction_circle + 90]</l><l>) {&#xD;         translate ([0, 0, i*n_starts*pitch*fraction_circle]) {&#xD;            //current_diameter =</l><l> diameter - taper*(z + i*n_starts*pitch*fraction_circle);&#xD;            thread_polyhedron ((diameter -</l><l> taper*(z + i*n_starts*pitch*fraction_circle))/2,&#xD;                               pitch, internal, n_</l><l>starts, thread_size, groove,&#xD;                               square, rectangle, angle);&#xD;         }&#xD;  </l><l>    }&#xD;   }&#xD;}&#xD;&#xD;&#xD;// ----------------------------------------------------------------------------&#xD;modul</l><l>e thread_polyhedron (radius, pitch, internal, n_starts, thread_size,&#xD;                          groov</l><l>e, square, rectangle, angle)&#xD;{&#xD;   n_segments = segments (radius*2);&#xD;   fraction_circle = 1.0/n_segme</l><l>nts;&#xD;&#xD;   local_rectangle = rectangle ? rectangle : 1;&#xD;&#xD;   h = (square || rectangle) ? thread_size*lo</l><l>cal_rectangle/2 : thread_size / (2 * tan(angle));&#xD;   outer_r = radius + (internal ? h/20 : 0); // Ad</l><l>ds internal relief.&#xD;   //echo (str ("outer_r: ", outer_r));&#xD;&#xD;   // A little extra on square thread -</l><l>- make sure overlaps cylinder.&#xD;   h_fac1 = (square || rectangle) ? 1.1 : 0.875;&#xD;   inner_r = radius </l><l>- h*h_fac1; // Does NOT do Dmin_truncation - do later with&#xD;                                // cylind</l><l>er.&#xD;&#xD;   translate_y = groove ? outer_r + inner_r : 0;&#xD;   reflect_x   = groove ? 1 : 0;&#xD;&#xD;   // Make t</l><l>hese just slightly bigger (keep in proportion) so polyhedra will&#xD;   // overlap.&#xD;   x_incr_outer = (!</l><l> groove ? outer_r : inner_r) * fraction_circle * 2 * PI * 1.02;&#xD;   x_incr_inner = (! groove ? inner_</l><l>r : outer_r) * fraction_circle * 2 * PI * 1.02;&#xD;   z_incr = n_starts * pitch * fraction_circle * 1.0</l><l>05;&#xD;&#xD;   /*&#xD;    (angles x0 and x3 inner are actually 60 deg)&#xD;&#xD;                          /\  (x2_inner</l><l>, z2_inner) [2]&#xD;                         /  \&#xD;   (x3_inner, z3_inner) /    \&#xD;                  [3]  </l><l> \     \&#xD;                        |\     \ (x2_outer, z2_outer) [6]&#xD;                        | \    /&#xD;</l><l>                        |  \  /|&#xD;             z          |[7]\/ / (x1_outer, z1_outer) [5]&#xD;         </l><l>    |          |   | /&#xD;             |   x      |   |/&#xD;             |  /       |   / (x0_outer, z0_ou</l><l>ter) [4]&#xD;             | /        |  /     (behind: (x1_inner, z1_inner) [1]&#xD;             |/         </l><l>| /&#xD;    y________|          |/&#xD;   (r)                  / (x0_inner, z0_inner) [0]&#xD;&#xD;   */&#xD;&#xD;   x1_oute</l><l>r = outer_r * fraction_circle * 2 * PI;&#xD;&#xD;   z0_outer = (outer_r - inner_r) * tan(angle);&#xD;   //echo (</l><l>str ("z0_outer: ", z0_outer));&#xD;&#xD;   //polygon ([[inner_r, 0], [outer_r, z0_outer],&#xD;   //        [oute</l><l>r_r, 0.5*pitch], [inner_r, 0.5*pitch]]);&#xD;   z1_outer = z0_outer + z_incr;&#xD;&#xD;   // Give internal squar</l><l>e threads some clearance in the z direction, too.&#xD;   bottom = internal ? 0.235 : 0.25;&#xD;   top    = i</l><l>nternal ? 0.765 : 0.75;&#xD;&#xD;   translate ([0, translate_y, 0]) {&#xD;      mirror ([reflect_x, 0, 0]) {&#xD;&#xD;  </l><l>       if (square || rectangle) {&#xD;&#xD;            // Rule for face ordering: look at polyhedron from ou</l><l>tside: points must&#xD;            // be in clockwise order.&#xD;            polyhedron (&#xD;               poi</l><l>nts = [&#xD;                         [-x_incr_inner/2, -inner_r, bottom*thread_size],         // [0]&#xD;   </l><l>                      [x_incr_inner/2, -inner_r, bottom*thread_size + z_incr], // [1]&#xD;              </l><l>           [x_incr_inner/2, -inner_r, top*thread_size + z_incr],    // [2]&#xD;                         </l><l>[-x_incr_inner/2, -inner_r, top*thread_size],            // [3]&#xD;&#xD;                         [-x_incr_o</l><l>uter/2, -outer_r, bottom*thread_size],         // [4]&#xD;                         [x_incr_outer/2, -out</l><l>er_r, bottom*thread_size + z_incr], // [5]&#xD;                         [x_incr_outer/2, -outer_r, top*t</l><l>hread_size + z_incr],    // [6]&#xD;                         [-x_incr_outer/2, -outer_r, top*thread_size</l><l>]             // [7]&#xD;                        ],&#xD;&#xD;               faces = [&#xD;                         [</l><l>0, 3, 7, 4],  // This-side trapezoid&#xD;&#xD;                         [1, 5, 6, 2],  // Back-side trapezoid</l><l>&#xD;&#xD;                         [0, 1, 2, 3],  // Inner rectangle&#xD;&#xD;                         [4, 7, 6, 5],</l><l>  // Outer rectangle&#xD;&#xD;                         // These are not planar, so do with separate triangle</l><l>s.&#xD;                         [7, 2, 6],     // Upper rectangle, bottom&#xD;                         [7, 3</l><l>, 2],     // Upper rectangle, top&#xD;&#xD;                         [0, 5, 1],     // Lower rectangle, botto</l><l>m&#xD;                         [0, 4, 5]      // Lower rectangle, top&#xD;                        ]&#xD;        </l><l>    );&#xD;         } else {&#xD;&#xD;            // Rule for face ordering: look at polyhedron from outside: po</l><l>ints must&#xD;            // be in clockwise order.&#xD;            polyhedron (&#xD;               points = [&#xD; </l><l>                        [-x_incr_inner/2, -inner_r, 0],                        // [0]&#xD;              </l><l>           [x_incr_inner/2, -inner_r, z_incr],                    // [1]&#xD;                         [x</l><l>_incr_inner/2, -inner_r, thread_size + z_incr],      // [2]&#xD;                         [-x_incr_inner/</l><l>2, -inner_r, thread_size],              // [3]&#xD;&#xD;                         [-x_incr_outer/2, -outer_r,</l><l> z0_outer],                 // [4]&#xD;                         [x_incr_outer/2, -outer_r, z0_outer + z_</l><l>incr],         // [5]&#xD;                         [x_incr_outer/2, -outer_r, thread_size - z0_outer + z</l><l>_incr], // [6]&#xD;                         [-x_incr_outer/2, -outer_r, thread_size - z0_outer]    // [7</l><l>]&#xD;                        ],&#xD;&#xD;               faces = [&#xD;                         [0, 3, 7, 4],  // Th</l><l>is-side trapezoid&#xD;&#xD;                         [1, 5, 6, 2],  // Back-side trapezoid&#xD;&#xD;                 </l><l>        [0, 1, 2, 3],  // Inner rectangle&#xD;&#xD;                         [4, 7, 6, 5],  // Outer rectangl</l><l>e&#xD;&#xD;                         // These are not planar, so do with separate triangles.&#xD;                </l><l>         [7, 2, 6],     // Upper rectangle, bottom&#xD;                         [7, 3, 2],     // Upper </l><l>rectangle, top&#xD;&#xD;                         [0, 5, 1],     // Lower rectangle, bottom&#xD;                 </l><l>        [0, 4, 5]      // Lower rectangle, top&#xD;                        ]&#xD;            );&#xD;         }&#xD; </l><l>     }&#xD;   }&#xD;}&#xD;&#xD;&#xD;</l></list></block></block><block s="reportUnicodeAsLetter"><l>10</l></block><block var="code"/></list></block></block></script><list></list></block><block s="doSetVar"><l>code as unicode</l><block s="reportListAttribute"><l><option>columns</option></l><block s="reportNewList"><list><block s="reportTextSplit"><block var="code"/><l><option>letter</option></l></block><block s="reportUnicode"><block var="code"/></block></list></block></block></block><block s="doDeclareVariables"><list><l>split code</l></list></block><block s="doSetVar"><l>split code</l><block s="reportTextSplit"><block var="code"/><l><option>line</option></l></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="code list"/></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="split code"/></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="split code"/></block><block var="code list"/></block></script></block><custom-block s="safely try %cs then if %upvar %cs"><script><custom-block s="file save prompt name: %s %br contents: %mlt extension: %s"><block s="reportJoinWords"><list><l>Snap_</l><block s="reportGet"><l><option>name</option></l></block></list></block><block var="code"/><l>.scad</l></custom-block></script><l>error</l><script><block s="doSetVar"><l>error</l><l>pass</l></block></script></custom-block></script></block></script><scripts><script x="791.3636363636363" y="2207.060606060607"><block s="reportListItem"><l>both</l><l/></block></script><script x="863.1818181818181" y="2019.6969696969686"><block s="reportListIndex"><l>thing</l><block s="reportNewList"><list><block s="reportNewList"><list><l></l><l></l></list></block><l></l><l></l><l></l></list></block></block></script><script x="879.7481356534089" y="1006.6363636363627"><block s="doSetVar"><l>ScriptEcho</l><block var="modules"/></block><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>space</option></l></block></block></script><script x="1035.9999999999998" y="1110.9393939393956"><block s="reportJoinWords"><list><l></l><l></l></list></block></script><script x="884.181818181818" y="1159.1515151515164"><custom-block s="ensure list %s"><block var="imported module definition blocks"/></custom-block></script><script x="787.3636363636363" y="3150.272727272742"><block s="doApplyExtension"><l>err_error(msg)</l><list><l></l></list></block></script><script x="583.7272727272726" y="1497.4848484848533"><block s="doApplyExtension"><l>err_error(msg)</l><list><l>here</l></list></block></script><script x="601.9090909090908" y="1182.999999999999"><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportTextSplit"><block s="evaluate"><block s="reportJoinWords"><block s="reportCONS"><block s="reifyReporter"><autolambda><custom-block s="module definition %s from %s"><l></l><l></l></custom-block></autolambda><list></list></block><block s="reportCDR"><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep index of %s in %l"><block s="reifyReporter"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block></block></block><list></list></block><l><option>blocks</option></l></block><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep index of %s in %l"><block s="reifyReporter"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><l>1</l><l>-2</l></custom-block></custom-block></script><script x="649.181818181818" y="2536.6363636363685"><block s="doFor"><l>i</l><block s="reportVariadicSum"><list><block s="evaluate"><block s="reportJoinWords"><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><list></list></block><l>2</l></list></block><block s="reportListAttribute"><l><option>length</option></l><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>thing</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block var="value"/><block s="reportDifference"><block var="value"/><l>1</l></block></block></autolambda><list><l>value</l><l>index</l></list></block><custom-block s="deep item from path %l %br of %l"><l/><block var="blocks"/></custom-block></block></custom-block><block s="reportNewList"><list><block var="i"/></list></block></list></block></custom-block><block s="reportNewList"><list><block var="i"/></list></block></list></block><comment w="90" collapsed="false">convert base 1 list values to base 0 - feel this could be done simpler :)</comment></custom-block></script><comment w="90" collapsed="false">find out where the faces lists are by utilising fact that poyhedron reports length of points list</comment></block></script><script x="550.3636363636364" y="3575.2727272727348"><custom-block s="comment %mlt"><l>fill in pitch based on diameter ANAMDODONED</l></custom-block><block s="doSetVar"><l>path</l><block s="reportConcatenatedLists"><list><custom-block s="$slice-1-255-0-0 %s from %s to %s"><block var="path"/><l>1</l><l>-2</l></custom-block><block s="reportNewList"><list><l>3</l></list><comment w="302.7272727272727" collapsed="true">fill in pitch automagically using diameter</comment></block></list></block></block><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>coarse</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><block s="reportListItem"><l>1</l><block s="reportNewList"><list><block s="reportNewList"><list><l>M6</l><l>1</l></list></block><block s="reportNewList"><list><l>M7</l><l>1</l></list></block><block s="reportNewList"><list><l>M8</l><l>1.25</l></list></block><block s="reportNewList"><list><l>M10</l><l>1.5</l></list></block><block s="reportNewList"><list><l>M12</l><l>1.75</l></list></block><block s="reportNewList"><list><l>M14</l><l>2</l></list></block><block s="reportNewList"><list><l>M16</l><l>2</l></list></block><block s="reportNewList"><list><l>M18</l><l>2.5</l></list></block><block s="reportNewList"><list><l>M20</l><l>2.5</l></list></block><block s="reportNewList"><list><l>M22</l><l>2.5</l></list></block><block s="reportNewList"><list><l>M24</l><l>3</l></list></block><block s="reportNewList"><list><l>M27</l><l>3</l></list></block><block s="reportNewList"><list><l>M30</l><l>3.5</l></list></block><block s="reportNewList"><list><l>M33</l><l>3.5</l></list></block><block s="reportNewList"><list><l>M36</l><l>4</l></list></block><block s="reportNewList"><list><l>M39</l><l>4</l></list></block><block s="reportNewList"><list><l>M42</l><l>4.5</l></list></block><block s="reportNewList"><list><l>M48</l><l>5</l></list></block><block s="reportNewList"><list><l>M52</l><l>5</l></list></block><block s="reportNewList"><list><l>M56</l><l>5.5</l></list></block></list></block></block><block var="path"/><comment w="239.99999999999997" collapsed="true">Metric sizes&#xD;M1	R10	0.25	0.2&#xD;M1.2	R10	0.25	0.2          16	R10	2	1.5&#xD;M1.4	R20	0.3	0.2	           18	R20	2.5	2 or 1.5&#xD;M1.6	R10	0.35	0.2	         20	R10	2.5	2 or 1.5&#xD;M1.8	R20	0.35	0.2	         22	R20	2.5	2 or 1.5&#xD;M2	R10	0.4	0.25	            24	R10	3	2&#xD;M2.5	R10	0.45	0.35	       27	R20	3	2&#xD;M3	R10	0.5	0.35	             30	R10	3.5	2&#xD;M3.5	R20	0.6	0.35	          33	R20	3.5	2&#xD;M4	R10	0.7	0.5	               36	R10	4	3&#xD;M5	R10	0.8	0.5	               39	R20	4	3&#xD;M6	R10	1	0.75	                 42	R10	4.5	3&#xD;M7	R20	1	0.75	                 45	R20	4.5	3&#xD;M8	R10	1.25	1 or 0.75	     48	R10	5	3&#xD;M10	R10	1.5	1.25 or 1	      52	R20	5	4&#xD;M12	R10	1.75	1.5 or 1.25	 56	R10	5.5	4&#xD;M14	R20	2	1.5 </comment></custom-block></script><list></list></block></script><script x="696.4545454545453" y="3878.454545454566"><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>both</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>2</l><block var="path"/></custom-block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>none</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>0</l><block var="path"/></custom-block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>top</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>1</l><block var="path"/></custom-block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><custom-block s="deep item from path %l %br of %l"><block var="path"/><block var="blocks"/></custom-block><l>bottom</l></custom-block><script><custom-block s="deep replace item in %l with %s using path %l"><block var="blocks"/><l>3</l><block var="path"/></custom-block></script><list></list></block></script><script x="767.0369318181816" y="277.909090909091"><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><script x="788.2727272727271" y="207.54545454545445"><block s="doApplyExtension"><l>err_error(msg)</l><list><l>here</l></list></block></script><script x="770.9999999999999" y="336.6363636363636"><custom-block s="deep index of %s in %l"><l>thing</l><block var="blocks"/></custom-block></script><script x="773.6301491477273" y="449.6666666666696"><block var="sprite name"/></script><script x="765.5454545454544" y="492.9999999999997"><block s="reportJoinWords"><block s="reportCONS"><block s="reifyReporter"><autolambda><custom-block s="module definition %s from %s"><l></l><l></l></custom-block></autolambda><list></list></block><block s="reportCDR"><custom-block s="deep item from path %l %br of %l"><custom-block s="$slice-1-255-0-0 %s from %s to %s"><custom-block s="deep index of %s in %l"><block s="reifyReporter"><script><custom-block s="import module definition %upvar from %s"><l> </l><l></l></custom-block></script><list></list></block><block var="blocks"/></custom-block><l>1</l><l>-2</l></custom-block><block var="blocks"/></custom-block></block></block></block></script><script x="774.6363636363635" y="685.7272727272722"><block s="doSetVar"><l>debug</l><l></l></block></script><script x="770.8036221590937" y="387.3030303030292"><block s="reportMonadic"><l><option>id</option></l><block s="reportConcatenatedLists"><list><block var="modules"/><block var="blocks"/></list></block></block></script></scripts></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="10878"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="10879"></list></costumes><sounds><list struct="atomic" id="10880"></list></sounds><variables></variables><blocks></blocks><scripts><script x="150.9090909090909" y="27.27272727272727"><block s="receiveGo"></block></script><script x="22.727272727272727" y="74.90909090909088"><block s="doRun"><block s="reportJSFunction"><list></list><l>if( CustomCommandBlockMorph.prototype._userMenu){&#xD;  CustomCommandBlockMorph.prototype.userMenu = CustomCommandBlockMorph.prototype._userMenu;&#xD;  delete CustomCommandBlockMorph.prototype._userMenu&#xD;}</l></block><list></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>if( !CustomCommandBlockMorph.prototype._userMenu){&#xD;  CustomCommandBlockMorph.prototype._userMenu = CustomCommandBlockMorph.prototype.userMenu;&#xD;}&#xD;&#xD;&#xD;&#xD;CustomCommandBlockMorph.prototype.userMenu = function(){&#xD;var&#xD; shiftClicked = world.currentKey === 16 &#xD; ,menu = this._userMenu();&#xD;&#xD; menu.addItem(&#xD;     "move block to top",&#xD;     function (){&#xD;       var rcvr = this.scriptTarget(),&#xD;           ide = this.parentThatIsA(IDE_Morph),&#xD;           def = this.isGlobal ? this.definition : rcvr.getMethod(this.blockSpec),&#xD;           spec = def.spec;&#xD;    &#xD;       if (this.isGlobal) {&#xD;          ide.stage.globalBlocks = ide.stage.globalBlocks.filter(item =&gt; item !== def);&#xD;&#xD;          ide.stage.globalBlocks.unshift(def);&#xD;       } else {&#xD;          rcvr.customBlocks = rcvr.customBlocks.filter(item =&gt; item !== def);&#xD;          rcvr.customBlocks.unshift(def);&#xD;&#xD;       }&#xD;&#xD;       ide.flushPaletteCache();&#xD;       ide.refreshPalette();&#xD;       ide.recordUnsavedChanges();&#xD; &#xD;       }&#xD;    );&#xD;&#xD; menu.addItem(&#xD;     "move block up",&#xD;     function (){&#xD;       var rcvr = this.scriptTarget(),&#xD;           ide = this.parentThatIsA(IDE_Morph),&#xD;           def = this.isGlobal ? this.definition : rcvr.getMethod(this.blockSpec),&#xD;           spec = def.spec;&#xD;       if (this.isGlobal) {&#xD;          let newPos = ide.stage.globalBlocks.indexOf(def);&#xD;          ide.stage.globalBlocks = ide.stage.globalBlocks.filter(item =&gt; item !== def);&#xD;          ide.stage.globalBlocks.splice(newPos-1,0,def);&#xD;       } else {&#xD;          let newPos = rcvr.customBlocks.indexOf(def);&#xD;          rcvr.customBlocks = rcvr.customBlocks.filter(item =&gt; item !== def);&#xD;          rcvr.customBlocks.splice(newPos-1,0,def);&#xD;       }&#xD;&#xD;       ide.flushPaletteCache();&#xD;       ide.refreshPalette();&#xD;       ide.recordUnsavedChanges();&#xD; &#xD;       }&#xD;    );&#xD;&#xD; menu.addItem(&#xD;     "move block down",&#xD;     function (){&#xD;       var rcvr = this.scriptTarget(),&#xD;           ide = this.parentThatIsA(IDE_Morph),&#xD;           def = this.isGlobal ? this.definition : rcvr.getMethod(this.blockSpec),&#xD;           spec = def.spec;&#xD;       if (this.isGlobal) {&#xD;          let newPos = ide.stage.globalBlocks.indexOf(def);&#xD;          ide.stage.globalBlocks = ide.stage.globalBlocks.filter(item =&gt; item !== def);&#xD;          ide.stage.globalBlocks.splice(newPos+1,0,def);&#xD;       } else {&#xD;          let newPos = rcvr.customBlocks.indexOf(def);&#xD;          rcvr.customBlocks = rcvr.customBlocks.filter(item =&gt; item !== def);&#xD;          rcvr.customBlocks.splice(newPos+1,0,def);&#xD;          rcvr.customBlocks.shift(def);&#xD;       }&#xD;&#xD;       ide.flushPaletteCache();&#xD;       ide.refreshPalette();&#xD;       ide.recordUnsavedChanges();&#xD; &#xD;       }&#xD;    );&#xD;&#xD;return menu;&#xD;}&#xD;</l></block><list></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>if( CustomReporterBlockMorph.prototype._userMenu){&#xD;  CustomReporterBlockMorph.prototype.userMenu = CustomReporterBlockMorph.prototype._userMenu;&#xD;  delete CustomReporterBlockMorph.prototype._userMenu&#xD;}</l></block><list></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>if( !CustomReporterBlockMorph.prototype._userMenu){&#xD;  CustomReporterBlockMorph.prototype._userMenu = CustomReporterBlockMorph.prototype.userMenu;&#xD;}&#xD;&#xD;&#xD;&#xD;CustomReporterBlockMorph.prototype.userMenu = function(){&#xD;var&#xD; shiftClicked = world.currentKey === 16 &#xD; ,menu = this._userMenu();&#xD;&#xD; menu.addItem(&#xD;     "move block to top",&#xD;     function (){&#xD;       var rcvr = this.scriptTarget(),&#xD;           ide = this.parentThatIsA(IDE_Morph),&#xD;           def = this.isGlobal ? this.definition : rcvr.getMethod(this.blockSpec),&#xD;           spec = def.spec;&#xD;    &#xD;       if (this.isGlobal) {&#xD;          ide.stage.globalBlocks = ide.stage.globalBlocks.filter(item =&gt; item !== def);&#xD;          ide.stage.globalBlocks.unshift(def);&#xD;       } else {&#xD;          rcvr.customBlocks = rcvr.customBlocks.filter(item =&gt; item !== def);&#xD;          rcvr.customBlocks.unshift(def);&#xD;&#xD;       }&#xD;&#xD;       ide.flushPaletteCache();&#xD;       ide.refreshPalette();&#xD;       ide.recordUnsavedChanges();&#xD; &#xD;       }&#xD;    );&#xD;&#xD; menu.addItem(&#xD;     "move block up",&#xD;     function (){&#xD;       var rcvr = this.scriptTarget(),&#xD;           ide = this.parentThatIsA(IDE_Morph),&#xD;           def = this.isGlobal ? this.definition : rcvr.getMethod(this.blockSpec),&#xD;           spec = def.spec;&#xD;       if (this.isGlobal) {&#xD;          let newPos = ide.stage.globalBlocks.indexOf(def);&#xD;          ide.stage.globalBlocks = ide.stage.globalBlocks.filter(item =&gt; item !== def);&#xD;          ide.stage.globalBlocks.splice(newPos-1,0,def);&#xD;       } else {&#xD;          let newPos = rcvr.customBlocks.indexOf(def);&#xD;          rcvr.customBlocks = rcvr.customBlocks.filter(item =&gt; item !== def);&#xD;          rcvr.customBlocks.splice(newPos-1,0,def);&#xD;       }&#xD;&#xD;       ide.flushPaletteCache();&#xD;       ide.refreshPalette();&#xD;       ide.recordUnsavedChanges();&#xD; &#xD;       }&#xD;    );&#xD;&#xD; menu.addItem(&#xD;     "move block down",&#xD;     function (){&#xD;       var rcvr = this.scriptTarget(),&#xD;           ide = this.parentThatIsA(IDE_Morph),&#xD;           def = this.isGlobal ? this.definition : rcvr.getMethod(this.blockSpec),&#xD;           spec = def.spec;&#xD;       if (this.isGlobal) {&#xD;          let newPos = ide.stage.globalBlocks.indexOf(def);&#xD;          ide.stage.globalBlocks = ide.stage.globalBlocks.filter(item =&gt; item !== def);&#xD;          ide.stage.globalBlocks.splice(newPos+1,0,def);&#xD;       } else {&#xD;          let newPos = rcvr.customBlocks.indexOf(def);&#xD;          rcvr.customBlocks = rcvr.customBlocks.filter(item =&gt; item !== def);&#xD;          rcvr.customBlocks.splice(newPos+1,0,def);&#xD;          rcvr.customBlocks.shift(def);&#xD;       }&#xD;&#xD;       ide.flushPaletteCache();&#xD;       ide.refreshPalette();&#xD;       ide.recordUnsavedChanges();&#xD; &#xD;       }&#xD;    );&#xD;&#xD;return menu;&#xD;}&#xD;</l></block><list></list></block></script></scripts><sprites select="6"><sprite name="gridFinityBinSnap4" idx="4" x="92.59090909090878" y="473.5454545454547" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="10918"><costumes><list id="10919"><item><ref mediaID="gridFinityBinSnap4_cst_alonzo (vector)"></ref></item><item><ref mediaID="gridFinityBinSnap4_cst_Snap! primitives refactored script pic"></ref></item></list></costumes><sounds><list struct="atomic" id="10920"></list></sounds><blocks></blocks><variables></variables><scripts><script x="9.09090909090909" y="12.636363636363718"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="import module definition %upvar from %s"><l>bin</l><l>myself</l></custom-block><custom-block s="let %upvar be %s"><l>x_size</l><l>2</l></custom-block><custom-block s="let %upvar be %s"><l>y_size</l><l>1</l></custom-block><custom-block s="let %upvar be %s"><l>z_size</l><l>7</l></custom-block><block s="doIf"><custom-block s="%s &lt; %s"><block var="z_size"/><l>7</l></custom-block><script><custom-block s="let %upvar be %s"><l>z_size</l><l>7</l></custom-block></script><list></list></block><custom-block s="let %upvar be %s"><l>hollow</l><custom-block s="$bool-0.01 %b"><l><bool>true</bool></l></custom-block></custom-block><block s="doIfElse"><custom-block s="%s = %s"><block var="hollow"/><custom-block s="$bool-0.01 %b"><l><bool>true</bool></l></custom-block></custom-block><script><custom-block s="add %s"><custom-block s="hollow out leaving thickness: %n %s"><l>0.8</l><custom-block s="module %s options: %mult%s"><block var="bin"/><list><block var="x_size"/><block var="y_size"/><block var="z_size"/></list></custom-block></custom-block></custom-block></script><script><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="bin"/><list><block var="x_size"/><block var="y_size"/><block var="z_size"/></list></custom-block></custom-block></script></block></script><list></list></block></custom-block></script><script x="13.727272727272746" y="385.45454545454544"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="let %upvar be %s"><l>x_size</l><l>2</l></custom-block><custom-block s="let %upvar be %s"><l>y_size</l><l>2</l></custom-block><custom-block s="let %upvar be %s"><l>z_size</l><l>7</l></custom-block><block s="doIf"><custom-block s="%s &lt; %s"><block var="z_size"/><l>7</l></custom-block><script><custom-block s="let %upvar be %s"><l>z_size</l><l>7</l></custom-block></script><list></list></block><custom-block s="let %upvar be %s"><l>hollow</l><custom-block s="$bool-0.01 %b"><l><bool>true</bool></l></custom-block></custom-block><block s="doIfElse"><custom-block s="%s = %s"><block var="hollow"/><custom-block s="$bool-0.01 %b"><l><bool>true</bool></l></custom-block></custom-block><script><custom-block s="add %s"><custom-block s="hollow out leaving thickness: %n %s"><l>0.8</l><custom-block s="gridFinityBin units width: %n units length: %n height(in mm): %n use stl? %b"><block var="x_size"/><block var="y_size"/><block var="z_size"/><l><bool>false</bool></l></custom-block></custom-block></custom-block></script><script><custom-block s="add %s"><custom-block s="gridFinityBin units width: %n units length: %n height(in mm): %n use stl? %b"><block var="x_size"/><block var="y_size"/><block var="z_size"/><l><bool>false</bool></l></custom-block></custom-block></script></block></script><list></list></block></custom-block></script><script x="514.090909090909" y="11.21212121212135"><custom-block s="define module %upvar %br options: %mult%s %cs"><l>bin</l><list><block var="x_size"/><block var="y_size"/><block var="z_size"/></list><script><custom-block s="import module definition %upvar from %s"><l>singleBinBase</l><l>myself</l></custom-block><custom-block s="let %upvar be %s"><l>unitSize</l><l>42</l></custom-block><custom-block s="let %upvar be %s"><l>baseSize</l><l>34</l></custom-block><custom-block s="let %upvar be %s"><l>bottomSize</l><l>0.8</l></custom-block><custom-block s="let %upvar be %s"><l>stepSize</l><l>1.8</l></custom-block><custom-block s="let %upvar be %s"><l>topSize</l><l>2.15</l></custom-block><custom-block s="let %upvar be %s"><l>topRadius</l><l>3.75</l></custom-block><custom-block s="let %upvar be %s"><l>remainSize</l><block s="reportDifference"><l>7</l><custom-block s="%n + %n"><block var="bottomSize"/><custom-block s="%n + %n"><block var="stepSize"/><block var="topSize"/></custom-block></custom-block></block></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>y</l><l>1</l><block var="y_size"/><l>1</l><script><custom-block s="for %upvar = %n to %n step %n %cs"><l>x</l><l>1</l><block var="x_size"/><l>1</l><script><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="x"/><l>1</l></custom-block><block var="unitSize"/></custom-block><custom-block s="%n / %n"><block var="unitSize"/><l>2</l></custom-block></custom-block><custom-block s="%n + %n"><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="y"/><l>1</l></custom-block><block var="unitSize"/></custom-block><custom-block s="%n / %n"><block var="unitSize"/><l>2</l></custom-block></custom-block><l>0</l><custom-block s="module %s options: %mult%s"><block var="singleBinBase"/><list></list></custom-block></custom-block></custom-block></script></custom-block></script></custom-block><custom-block s="add colored: %clr object: %s"><color>255,34,4,1</color><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><l>0.25</l><custom-block s="%n / %n"><custom-block s="%n - %n"><custom-block s="%n x %n"><block var="x_size"/><block var="unitSize"/></custom-block><l>0.5</l></custom-block><l>2</l></custom-block></custom-block><custom-block s="%n + %n"><l>0.25</l><custom-block s="%n / %n"><custom-block s="%n - %n"><custom-block s="%n x %n"><block var="y_size"/><block var="unitSize"/></custom-block><l>0.5</l></custom-block><l>2</l></custom-block></custom-block><l>5.34</l><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><custom-block s="%n - %n"><custom-block s="%n x %n"><block var="x_size"/><block var="unitSize"/></custom-block><l>0.5</l></custom-block><custom-block s="%n - %n"><custom-block s="%n x %n"><block var="y_size"/><block var="unitSize"/></custom-block><l>0.5</l></custom-block><custom-block s="%n - %n"><block var="z_size"/><l>5.4</l></custom-block><block var="topRadius"/><l>0</l><l><bool>false</bool></l></custom-block></custom-block></custom-block></script></custom-block></script><script x="1001.9090909090908" y="9.09090909090909"><custom-block s="define module %upvar %br options: %mult%s %cs"><l>singleBinBase</l><list></list><script><custom-block s="let %upvar be %s"><l>unitSize</l><l>42</l></custom-block><custom-block s="let %upvar be %s"><l>baseSize</l><l>34</l></custom-block><custom-block s="let %upvar be %s"><l>bottomSize</l><l>0.8</l></custom-block><custom-block s="let %upvar be %s"><l>stepSize</l><l>1.8</l></custom-block><custom-block s="let %upvar be %s"><l>topSize</l><l>2.15</l></custom-block><custom-block s="let %upvar be %s"><l>topRadius</l><l>3.75</l></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>degree</l><l>0</l><l>90</l><l>90</l><script><custom-block s="add colored: %clr object: %s"><color>253,94,0,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="cube x: %n y: %n z: %n"><block var="baseSize"/><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><block var="bottomSize"/></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>1,231,255,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="bottomSize"/><custom-block s="cube x: %n y: %n z: %n"><block var="baseSize"/><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>4</l></custom-block></custom-block><custom-block s="%n + %n"><block var="topSize"/><block var="stepSize"/></custom-block></custom-block></custom-block></custom-block></custom-block></script></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>degree</l><l>0</l><l>270</l><l>90</l><script><custom-block s="comment %mlt"><l>bottomlip</l></custom-block><custom-block s="add colored: %clr object: %s"><color>251,255,57,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n + %n"><custom-block s="%n x %n"><block var="bottomSize"/><l>1.5</l></custom-block><l></l></custom-block></custom-block><block var="bottomSize"/><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>180</l><l>0</l><custom-block s="wedge x: %n y: %n z: %n"><block var="baseSize"/><block var="bottomSize"/><block var="bottomSize"/></custom-block></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>bottom cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>28,255,4,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><l>0</l><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="bottomSize"/><block var="bottomSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><l>64</l></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>step corner</l></custom-block><custom-block s="add colored: %clr object: %s"><color>0,21,242,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><block var="bottomSize"/><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="stepSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><l>64</l></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>top cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>24,248,0,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n + %n"><block var="stepSize"/><block var="bottomSize"/></custom-block><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="topSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><block var="topRadius"/><l>64</l></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>top lip</l></custom-block><custom-block s="add colored: %clr object: %s"><color>244,255,31,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n + %n"><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><block s="reportQuotient"><block var="topSize"/><l>2</l></block></custom-block></custom-block><custom-block s="%n + %n"><custom-block s="%n + %n"><block var="stepSize"/><block var="bottomSize"/></custom-block><block var="topSize"/></custom-block><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>180</l><l>0</l><custom-block s="wedge x: %n y: %n z: %n"><block var="baseSize"/><block var="topSize"/><block var="topSize"/></custom-block></custom-block></custom-block></custom-block></custom-block></script></custom-block><custom-block s="comment %mlt"><l>extra rim</l></custom-block><custom-block s="add colored: %clr object: %s"><color>64,91,255,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>4.75</l><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><block s="reportDifference"><block var="unitSize"/><l>0.5</l></block><block s="reportDifference"><block var="unitSize"/><l>0.5</l></block><l>0.6</l><block var="topRadius"/><l>0</l><l><bool>false</bool></l></custom-block></custom-block></custom-block></script></custom-block></script><script x="596.4545454545454" y="605.8484848484849"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="import module definition %upvar from %s"><l>singleBinBase</l><l>myself</l></custom-block><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="singleBinBase"/><list></list></custom-block></custom-block></script><list></list></block></custom-block></script><script x="26.466974431818098" y="1249.3939393939395"><block var="bin"/></script></scripts></sprite><sprite name="examples" idx="7" x="-169.00000000000023" y="-152.00000000000017" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="23.663999999999987,73.94999999999999,0,1" pen="tip" id="11489"><costumes><list struct="atomic" id="11490"></list></costumes><sounds><list struct="atomic" id="11491"></list></sounds><blocks></blocks><variables></variables><scripts><script x="18.18181818181818" y="9.09090909090909"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="comment %mlt"><l>Just some text</l></custom-block><custom-block s="add colored: %clr object: %s"><color>249,65,0,1</color><custom-block s="text %txt size %n font: %txt align x: %txt y: %txt z: %txt height: %n direction: %txt"><l>OpenSCAD</l><l>12</l><l>Liberation Mono</l><l>center</l><l>center</l><l>center</l><l>20</l><l>ltr</l></custom-block></custom-block></script><list></list></block></custom-block></script><script x="552.7272727272726" y="26.36363636363636"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="comment %mlt"><l>Pyramid</l></custom-block><custom-block s="add %s"><custom-block s="polyhedron lists of points: %br %mult%l %br lists of faces: %br %mult%l"><list><block s="reportNewList"><list><l>10</l><l>-10</l><l>0</l></list></block><block s="reportNewList"><list><l>10</l><l>10</l><l>0</l></list></block><block s="reportNewList"><list><l>-10</l><l>10</l><l>0</l></list></block><block s="reportNewList"><list><l>-10</l><l>-10</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>10</l></list></block></list><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>3</l><l>4</l><l>1</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>2</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>3</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>4</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>1</l></list></block></list></custom-block></custom-block></script><list></list></block></custom-block></script><script x="24.636363636363654" y="136.45454545454547"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="comment %mlt"><l>a container type box</l></custom-block><custom-block s="add %s"><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><l>20</l><l>20</l><l>20</l><l>10</l><l>0.8</l><l><bool>true</bool></l></custom-block></custom-block></script><list></list></block></custom-block></script><script x="27.27272727272727" y="279.09090909090907"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="comment %mlt"><l>Tetrahedron</l></custom-block><custom-block s="let %upvar be %s"><l>a</l><l>10</l></custom-block><custom-block s="let %upvar be %s"><l>b</l><custom-block s="%n x %n"><block var="a"/><l>0.707</l></custom-block></custom-block><custom-block s="add %s"><custom-block s="polyhedron lists of points: %br %mult%l %br lists of faces: %br %mult%l"><list><block s="reportNewList"><list><custom-block s="%n x %n"><block var="a"/><l>1</l></custom-block><custom-block s="%n x %n"><block var="b"/><l>-1</l></custom-block><l>0</l></list></block><block s="reportNewList"><list><l>0</l><custom-block s="%n x %n"><block var="b"/><l>1</l></custom-block><l>0</l></list></block><block s="reportNewList"><list><custom-block s="%n x %n"><block var="a"/><l>-1</l></custom-block><custom-block s="%n x %n"><block var="b"/><l>-1</l></custom-block><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><custom-block s="%n x %n"><block var="b"/><l>2</l></custom-block></list></block></list><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>1</l><l>2</l><l>4</l></list></block><block s="reportNewList"><list><l>2</l><l>3</l><l>4</l></list></block><block s="reportNewList"><list><l>3</l><l>1</l><l>4</l></list></block></list></custom-block></custom-block></script><list></list></block></custom-block></script><script x="31.000000000000018" y="510.09090909090907"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="comment %mlt"><l>simple tube</l></custom-block><custom-block s="add %s"><custom-block s="tube height: %n outer radius: %n innter radius: %n thickness %n %br sides: %n"><l>20</l><l>10</l><l>5</l><l>0</l><l>64</l></custom-block></custom-block></script><list></list></block></custom-block></script><script x="29.999999999999996" y="634.5454545454545"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="add colored: %clr object: %s"><color>255,70,0,1</color><custom-block s="threads type: %s size: M %n height: %s tapered: %b"><l>bolt</l><l>8</l><l>20</l><l><bool>false</bool></l></custom-block></custom-block></script><list></list></block></custom-block></script><script x="558.1818181818181" y="230.90909090909088"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="comment %mlt"><l>test object with holes in it</l></custom-block><custom-block s="let %upvar be %s"><l>Hole_Size</l><l>2</l></custom-block><custom-block s="let %upvar be %s"><l>Thick</l><l>4</l></custom-block><custom-block s="let %upvar be %s"><l>Wid</l><l>50</l></custom-block><custom-block s="let %upvar be %s"><l>Len</l><l>150</l></custom-block><custom-block s="let %upvar be %s"><l>Offset</l><l>10</l></custom-block><custom-block s="define module %upvar %br options: %mult%s %cs"><l>holes</l><list></list><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l>slot4</l><list></list><script><custom-block s="add %s"><custom-block s="cylinder height: %n radius: %n sides: %n"><custom-block s="%n x %n"><block var="Thick"/><l>2</l></custom-block><block var="Hole_Size"/><l>64</l></custom-block></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n / %n"><block var="Hole_Size"/><l>2</l></custom-block><l>0</l><l>0</l><custom-block s="cylinder height: %n radius: %n sides: %n"><custom-block s="%n x %n"><block var="Thick"/><l>2</l></custom-block><block var="Hole_Size"/><l>64</l></custom-block></custom-block></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n / %n"><block var="Hole_Size"/><l>-2</l></custom-block><l>0</l><l>0</l><custom-block s="cylinder height: %n radius: %n sides: %n"><custom-block s="%n x %n"><block var="Thick"/><l>2</l></custom-block><block var="Hole_Size"/><l>64</l></custom-block></custom-block></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n / %n"><block var="Hole_Size"/><l>2</l></custom-block><l>0</l><custom-block s="cylinder height: %n radius: %n sides: %n"><custom-block s="%n x %n"><block var="Thick"/><l>2</l></custom-block><block var="Hole_Size"/><l>64</l></custom-block></custom-block></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n / %n"><block var="Hole_Size"/><l>-2</l></custom-block><l>0</l><custom-block s="cylinder height: %n radius: %n sides: %n"><custom-block s="%n x %n"><block var="Thick"/><l>2</l></custom-block><block var="Hole_Size"/><l>64</l></custom-block></custom-block></custom-block></script></custom-block><custom-block s="define module %upvar %br options: %mult%s %cs"><l>star</l><list></list><script><custom-block s="for %upvar = %n to %n step %n %cs"><l>i</l><l>0</l><l>3</l><l>1</l><script><custom-block s="add %s"><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><custom-block s="%n x %n"><block var="i"/><l>45</l></custom-block><custom-block s="cube x: %n y: %n z: %n"><l>1</l><custom-block s="%n / %n"><block var="Wid"/><l>3</l></custom-block><custom-block s="%n x %n"><block var="Thick"/><l>2</l></custom-block></custom-block></custom-block></custom-block></script></custom-block><custom-block s="add %s"><custom-block s="cylinder height: %n radius: %n sides: %n"><custom-block s="%n x %n"><block var="Thick"/><l>2</l></custom-block><custom-block s="%n / %n"><block var="Wid"/><l>8</l></custom-block><l>64</l></custom-block></custom-block></script></custom-block><custom-block s="comment %mlt"><l>add 4 slots near corners</l></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n - %n"><l>0</l><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="Wid"/><l>2</l></custom-block><block var="Offset"/></custom-block></custom-block><custom-block s="%n - %n"><l>0</l><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="Len"/><l>2</l></custom-block><block var="Offset"/></custom-block></custom-block><l>0</l><custom-block s="module %s options: %mult%s"><block var="slot4"/><list></list></custom-block></custom-block></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n - %n"><l>0</l><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="Wid"/><l>2</l></custom-block><block var="Offset"/></custom-block></custom-block><custom-block s="%n + %n"><l>0</l><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="Len"/><l>2</l></custom-block><block var="Offset"/></custom-block></custom-block><l>0</l><custom-block s="module %s options: %mult%s"><block var="slot4"/><list></list></custom-block></custom-block></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><l>0</l><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="Wid"/><l>2</l></custom-block><block var="Offset"/></custom-block></custom-block><custom-block s="%n - %n"><l>0</l><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="Len"/><l>2</l></custom-block><block var="Offset"/></custom-block></custom-block><l>0</l><custom-block s="module %s options: %mult%s"><block var="slot4"/><list></list></custom-block></custom-block></custom-block><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><l>0</l><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="Wid"/><l>2</l></custom-block><block var="Offset"/></custom-block></custom-block><custom-block s="%n + %n"><l>0</l><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="Len"/><l>2</l></custom-block><block var="Offset"/></custom-block></custom-block><l>0</l><custom-block s="module %s options: %mult%s"><block var="slot4"/><list></list></custom-block></custom-block></custom-block><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="star"/><list></list></custom-block></custom-block></script></custom-block><custom-block s="add colored: %clr object: %s"><color>255,48,15,1</color><custom-block s="make hole in %s using %s"><custom-block s="cube x: %n y: %n z: %n"><block var="Wid"/><block var="Len"/><block var="Thick"/></custom-block><custom-block s="module %s options: %mult%s"><block var="holes"/><list></list></custom-block></custom-block></custom-block></script><list></list></block></custom-block></script></scripts></sprite><sprite name="house" idx="2" x="-111.40190794972182" y="-151.69002240794958" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="102,0,91.80000000000004,1" pen="tip" id="12054"><costumes><list id="12055"><item><ref mediaID="house_cst_house"></ref></item></list></costumes><sounds><list struct="atomic" id="12056"></list></sounds><blocks></blocks><variables></variables><scripts><script x="42.72727272727273" y="19.09090909090909"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="comment %mlt"><l>building</l></custom-block><custom-block s="add colored: %clr object: %s"><color>123,59,0,1</color><custom-block s="cube x: %n y: %n z: %n"><l>20</l><l>30</l><l>20</l></custom-block></custom-block><custom-block s="comment %mlt"><l>roof raised to top of building</l></custom-block><custom-block s="add colored: %clr object: %s"><color>150,150,150,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>20</l><custom-block s="roof x: %n y: %n z: %n"><l>20</l><l>30</l><l>10</l></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>door</l></custom-block><custom-block s="add colored: %clr object: %s"><color>255,39,2,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>10</l><l>-10</l><l>0</l><custom-block s="cube x: %n y: %n z: %n"><l>0.1</l><l>5</l><l>8</l></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>windows</l></custom-block><custom-block s="add colored: %clr object: %s"><color>238,255,243,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>10</l><l>7</l><l>3</l><custom-block s="cube x: %n y: %n z: %n"><l>0.1</l><l>10</l><l>5</l></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>247,255,250,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>10</l><l>-8</l><l>13</l><custom-block s="cube x: %n y: %n z: %n"><l>0.1</l><l>10</l><l>5</l></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>247,255,252,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>10</l><l>7</l><l>13</l><custom-block s="cube x: %n y: %n z: %n"><l>0.1</l><l>10</l><l>5</l></custom-block></custom-block></custom-block></script><list></list></block></custom-block></script></scripts></sprite><sprite name="street" idx="3" x="-56.34583318336354" y="-152.5965644640247" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="102,0,91.80000000000004,1" pen="tip" id="12142"><costumes><list id="12143"><item><ref mediaID="street_cst_house"></ref></item></list></costumes><sounds><list struct="atomic" id="12144"></list></sounds><blocks></blocks><variables></variables><scripts><script x="568.6363636363636" y="27.060606060605423"><custom-block s="define module %upvar %br options: %mult%s %cs"><l>house</l><list></list><script><custom-block s="comment %mlt"><l>building</l></custom-block><custom-block s="add colored: %clr object: %s"><color>123,59,0,1</color><custom-block s="cube x: %n y: %n z: %n"><l>20</l><l>30</l><l>20</l></custom-block></custom-block><custom-block s="comment %mlt"><l>roof raised to top of building</l></custom-block><custom-block s="add colored: %clr object: %s"><color>150,150,150,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>20</l><custom-block s="roof x: %n y: %n z: %n"><l>20</l><l>30</l><l>10</l></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>door</l></custom-block><custom-block s="add colored: %clr object: %s"><color>255,39,2,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>10</l><l>-10</l><l>0</l><custom-block s="cube x: %n y: %n z: %n"><l>0.1</l><l>5</l><l>8</l></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>windows</l></custom-block><custom-block s="add colored: %clr object: %s"><color>238,255,243,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>10</l><l>7</l><l>3</l><custom-block s="cube x: %n y: %n z: %n"><l>0.1</l><l>10</l><l>5</l></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>247,255,250,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>10</l><l>-8</l><l>13</l><custom-block s="cube x: %n y: %n z: %n"><l>0.1</l><l>10</l><l>5</l></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>247,255,252,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>10</l><l>7</l><l>13</l><custom-block s="cube x: %n y: %n z: %n"><l>0.1</l><l>10</l><l>5</l></custom-block></custom-block></custom-block></script></custom-block></script><script x="35.90909090909091" y="32.06060606060604"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="import module definition %upvar from %s"><l>house</l><l>street</l></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>i</l><l>0</l><l>5</l><l>1</l><script><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n x %n"><block var="i"/><l>40</l></custom-block><l>0</l><custom-block s="module %s options: %mult%s"><block var="house"/><list></list></custom-block></custom-block></custom-block></script></custom-block></script><list></list></block></custom-block></script></scripts></sprite><sprite name="soft_box2" idx="6" x="70.71228557648601" y="-154.10266414241386" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="112.2,0,74.052,1" pen="tip" id="12260"><costumes><list struct="atomic" id="12261"></list></costumes><sounds><list struct="atomic" id="12262"></list></sounds><blocks></blocks><variables></variables><scripts><script x="31.796342329545784" y="16.24242424242381"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="import module definition %upvar from %s"><l>softBox</l><l>myself</l></custom-block><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="softBox"/><list><l>20</l><l>20</l><l>20</l><l>3</l><l>1</l><custom-block s="$bool-0.01 %b"><l><bool>true</bool></l></custom-block><l>0</l><l>0</l><l>0</l></list></custom-block></custom-block></script><list></list></block></custom-block></script><script x="619.6145241477275" y="9.09090909090909"><custom-block s="define module %upvar %br options: %mult%s %cs"><l>softBox</l><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/><block var="wall_thickness"/><block var="floor"/><block var="x_offset"/><block var="y_offset"/><block var="z_offset"/></list><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l>softBoxShape</l><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list><script><custom-block s="add %s"><custom-block s="cube x: %n y: %n z: %n"><custom-block s="%n - %n"><block var="x"/><custom-block s="%n x %n"><l>2</l><block var="corner_radius"/></custom-block></custom-block><block var="y"/><block var="z"/></custom-block></custom-block><custom-block s="add %s"><custom-block s="cube x: %n y: %n z: %n"><block var="x"/><custom-block s="%n - %n"><block var="y"/><custom-block s="%n x %n"><l>2</l><block var="corner_radius"/></custom-block></custom-block><block var="z"/></custom-block></custom-block><block s="doForEach"><l>y_pos</l><block s="reportNewList"><list><l>1</l><l>-1</l></list></block><script><block s="doForEach"><l>x_pos</l><block s="reportNewList"><list><l>1</l><l>-1</l></list></block><script><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n x %n"><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="x"/><l>2</l></custom-block><block var="corner_radius"/></custom-block><block var="x_pos"/></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="y"/><l>2</l></custom-block><block var="corner_radius"/></custom-block><block var="y_pos"/></custom-block><l>0</l><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="z"/><block var="corner_radius"/><l>64</l></custom-block></custom-block></custom-block></script></block></script></block></script></custom-block><block s="doIfElse"><custom-block s="%b or %b"><custom-block s="%b or %b"><custom-block s="%s = %s"><block var="wall_thickness"/><l>0</l></custom-block><custom-block s="%s &gt; %s"><block var="wall_thickness"/><custom-block s="%n / %n"><block var="x"/><l>2</l></custom-block></custom-block></custom-block><custom-block s="%s &gt; %s"><block var="wall_thickness"/><custom-block s="%n / %n"><block var="y"/><l>2</l></custom-block></custom-block></custom-block><script><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list></custom-block></custom-block></script><script><custom-block s="add %s"><custom-block s="make %s hole in %s using %s"><l>standard</l><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list></custom-block><custom-block s="resize x: %n y: %n z: %n %s"><custom-block s="%n - %n"><block var="x"/><custom-block s="%n x %n"><l>2</l><block var="wall_thickness"/></custom-block></custom-block><custom-block s="%n - %n"><block var="y"/><custom-block s="%n x %n"><l>2</l><block var="wall_thickness"/></custom-block></custom-block><custom-block s="%n + %n"><block var="z"/><l>0.01</l></custom-block><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list></custom-block></custom-block></custom-block></custom-block><block s="doIf"><block var="floor"/><script><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="wall_thickness"/><block var="corner_radius"/></list></custom-block></custom-block></script><list></list></block></script></block></script></custom-block></script><script x="40.09090909090911" y="139.848484848485"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="add %s"><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><l>20</l><l>10</l><l>5</l><l>1</l><l>2</l><l><bool>true</bool></l></custom-block></custom-block></script><list></list></block></custom-block></script><script x="35" y="266.7878787878763"><custom-block s="generate OpenSCAD script %cs"><script><custom-block s="import module definition %upvar from %s"><l>softBox</l><l>myself</l></custom-block><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="softBox"/><list><l>10</l><l>20</l><l>5</l><l>3</l><l>1</l><custom-block s="$bool-0.01 %b"><l><bool>true</bool></l></custom-block><l>0</l><l>0</l><l>0</l></list></custom-block></custom-block></script></custom-block></script></scripts></sprite><sprite name="rocket" idx="1" x="9.948559340000202" y="-153.56177734045258" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="12525"><costumes><list id="12526"><item><ref mediaID="rocket_cst_rocket(2)"></ref></item></list></costumes><sounds><list struct="atomic" id="12527"></list></sounds><blocks></blocks><variables></variables><scripts><script x="47.272727272727266" y="26.999999999999986"><block s="receiveKey"><l><option>space</option></l><list></list></block><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="let %upvar be %s"><l>rocketRadius</l><l>10</l></custom-block><custom-block s="let %upvar be %s"><l>bodyHeight</l><l>80</l></custom-block><custom-block s="let %upvar be %s"><l>coneHeight</l><l>20</l></custom-block><custom-block s="let %upvar be %s"><l>finHeight</l><l>20</l></custom-block><custom-block s="let %upvar be %s"><l>finX</l><l>2</l></custom-block><custom-block s="let %upvar be %s"><l>finY</l><l>10</l></custom-block><custom-block s="comment %mlt"><l>body</l></custom-block><custom-block s="add colored: %clr object: %s"><color>251,45,0,1</color><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="bodyHeight"/><block var="rocketRadius"/><l>64</l></custom-block></custom-block><custom-block s="comment %mlt"><l>nose cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>28,255,7,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="bodyHeight"/><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="coneHeight"/><block var="rocketRadius"/><l>0</l><l>64</l></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>fins</l></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>degree</l><l>0</l><l>270</l><l>90</l><script><custom-block s="add colored: %clr object: %s"><color>0,78,231,1</color><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><block var="rocketRadius"/><block s="reportQuotient"><block var="finY"/><l>2</l></block></custom-block><l>0</l><custom-block s="wedge x: %n y: %n z: %n"><block var="finX"/><block var="finY"/><block var="finHeight"/></custom-block></custom-block></custom-block></custom-block></script><comment w="234.54545454545453" collapsed="false">add fins by making using the wedge shape- moving it to outside of the body and doing this 4 times rotated around the body</comment></custom-block></script><list></list><comment w="220.90909090909088" collapsed="false">generate OpenSCAD code and place it in the code variable where it can be exported.&#xD;&#xD;If JavaScript is enabled, then the code will be downloaded as the name of the sprite with Snap_ prefix i.e - for this spirte, it will be downloaded as Snap_rocket.scad</comment></block></custom-block></script></scripts></sprite><sprite name="gFTopSurround" idx="5" x="187.15416681663373" y="-152.0965644640243" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="12616"><costumes><list id="12617"><item><ref mediaID="gFTopSurround_cst_alonzo (vector)"></ref></item></list></costumes><sounds><list struct="atomic" id="12618"></list></sounds><blocks></blocks><variables></variables><scripts><script x="19.09090909090909" y="9.09090909090909"><custom-block s="generate OpenSCAD script %cmdRing"><block s="reifyScript"><script><custom-block s="import module definition %upvar from %s"><l>stacking_lip_mold</l><l>myself</l></custom-block><custom-block s="let %upvar be %s"><l>units_x</l><l>1</l></custom-block><custom-block s="let %upvar be %s"><l>units_y</l><l>1</l></custom-block><custom-block s="let %upvar be %s"><l>topRadius</l><l>3.75</l></custom-block><custom-block s="add %s"><custom-block s="make %s hole in %s using %s"><l>standard</l><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><custom-block s="%n + %n"><l>41.5</l><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><custom-block s="%n + %n"><l>41.5</l><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><l>7.58</l><block var="topRadius"/><l>0</l><l><bool>false</bool></l></custom-block><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>3.19</l><custom-block s="module %s options: %mult%s"><block var="stacking_lip_mold"/><list><block var="units_x"/><block var="units_y"/></list></custom-block></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>4,228,1,1</color><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><custom-block s="%n + %n"><l>41.5</l><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><custom-block s="%n + %n"><l>41.5</l><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><l>1</l><block var="topRadius"/><l>0.8</l><l><bool>false</bool></l></custom-block></custom-block></script><list></list></block></custom-block></script><script x="599.5454545454545" y="18.18181818181818"><custom-block s="define module %upvar %br options: %mult%s %cs"><l>stacking_lip_mold</l><list><block var="units_x"/><block var="units_y"/></list><script><custom-block s="let %upvar be %s"><l>baseSize</l><l>36.3</l></custom-block><custom-block s="let %upvar be %s"><l>bottomSize</l><l>0.7</l></custom-block><custom-block s="let %upvar be %s"><l>stepSize</l><l>1.8</l></custom-block><custom-block s="let %upvar be %s"><l>topSize</l><l>1.9</l></custom-block><custom-block s="let %upvar be %s"><l>topRadius</l><l>3.3</l></custom-block><custom-block s="let %upvar be %s"><l>basementSize</l><l>2.6</l></custom-block><custom-block s="let %upvar be %s"><l>basementRadius</l><l>3.3</l></custom-block><custom-block s="comment %mlt"><l>internal objects</l></custom-block><custom-block s="let %upvar be %s"><l>degree</l><l>0</l></custom-block><custom-block s="add colored: %clr object: %s"><color>145,26,68,1</color><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><block var="bottomSize"/><block var="bottomSize"/><l>0</l><l><bool>false</bool></l></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>255,23,10,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="bottomSize"/><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><custom-block s="%n + %n"><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><custom-block s="%n + %n"><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><custom-block s="%n + %n"><block var="stepSize"/><block var="topSize"/></custom-block><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><l>0</l><l><bool>false</bool></l></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>6,255,251,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><l>0</l><custom-block s="%n x %n"><custom-block s="%n + %n"><l>0.6</l><block var="basementSize"/></custom-block><l>-1</l></custom-block><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><custom-block s="%n + %n"><block var="baseSize"/><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><custom-block s="%n + %n"><l>0.6</l><block var="basementSize"/></custom-block><block var="bottomSize"/><l>0</l><l><bool>false</bool></l></custom-block></custom-block></custom-block><custom-block s="for %upvar = %n to %n step %n %cs"><l>degree</l><l>0</l><l>180</l><l>180</l><script><custom-block s="add %s"><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><block var="degree"/><custom-block s="group as one object %cs"><script><custom-block s="add colored: %clr object: %s"><color>255,244,4,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><block var="bottomSize"/><l>0</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><l>0</l><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>180</l><l>0</l><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><block s="reportQuotient"><block var="bottomSize"/><l>2</l></block><custom-block s="%n x %n"><block var="bottomSize"/><l>-1</l></custom-block><custom-block s="wedge x: %n y: %n z: %n"><custom-block s="%n + %n"><custom-block s="%n - %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><block var="bottomSize"/><block var="bottomSize"/></custom-block></custom-block></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>240,253,0,1</color><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><block var="bottomSize"/><l>0</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><l>0</l><l>0</l><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>180</l><l>270</l><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><block s="reportQuotient"><block var="bottomSize"/><l>2</l></block><custom-block s="%n x %n"><block var="bottomSize"/><l>-1</l></custom-block><custom-block s="wedge x: %n y: %n z: %n"><custom-block s="%n + %n"><custom-block s="%n - %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><block var="bottomSize"/><block var="bottomSize"/></custom-block></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>top lips</l></custom-block><custom-block s="add colored: %clr object: %s"><color>24,0,252,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><block var="bottomSize"/><l>1</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><custom-block s="%n + %n"><block var="stepSize"/><block var="bottomSize"/></custom-block><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>180</l><l>0</l><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><block s="reportQuotient"><block var="topSize"/><l>2</l></block><custom-block s="%n x %n"><block var="topSize"/><l>-1</l></custom-block><custom-block s="wedge x: %n y: %n z: %n"><custom-block s="%n + %n"><custom-block s="%n - %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><block var="topSize"/><block var="topSize"/></custom-block></custom-block></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>0,10,249,1</color><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><block var="bottomSize"/><l>1</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><l>0</l><custom-block s="%n + %n"><block var="stepSize"/><block var="bottomSize"/></custom-block><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>180</l><l>270</l><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><block s="reportQuotient"><block var="topSize"/><l>2</l></block><custom-block s="%n x %n"><block var="topSize"/><l>-1</l></custom-block><custom-block s="wedge x: %n y: %n z: %n"><custom-block s="%n + %n"><custom-block s="%n - %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><block var="topSize"/><block var="topSize"/></custom-block></custom-block></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>basement lips</l></custom-block><custom-block s="add colored: %clr object: %s"><color>243,42,0,1</color><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><custom-block s="%n + %n"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><block var="bottomSize"/><l>0</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><l>-0.6</l><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>0</l><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><block s="reportQuotient"><block var="basementSize"/><l>2</l></block><custom-block s="%n x %n"><block var="basementSize"/><l>-1</l></custom-block><custom-block s="wedge x: %n y: %n z: %n"><custom-block s="%n + %n"><custom-block s="%n - %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><block var="basementSize"/><block var="basementSize"/></custom-block></custom-block></custom-block></custom-block></custom-block><custom-block s="add colored: %clr object: %s"><color>243,42,0,1</color><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n + %n"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><block var="bottomSize"/><l>0</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><l>0</l><l>-0.6</l><custom-block s="rotate x: %n y: %n z: %n %s"><l>0</l><l>0</l><l>270</l><custom-block s="move x: %n y: %n z: %n %s"><l>0</l><block s="reportQuotient"><block var="basementSize"/><l>2</l></block><custom-block s="%n x %n"><block var="basementSize"/><l>-1</l></custom-block><custom-block s="wedge x: %n y: %n z: %n"><custom-block s="%n + %n"><custom-block s="%n - %n"><block var="baseSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>42</l></custom-block></custom-block><block var="basementSize"/><block var="basementSize"/></custom-block></custom-block></custom-block></custom-block></custom-block></script></custom-block></custom-block></custom-block></script></custom-block><block s="doForEach"><l>y</l><block s="reportNewList"><list><l>-1</l><l>1</l></list></block><script><block s="doForEach"><l>x</l><block s="reportNewList"><list><l>-1</l><l>1</l></list></block><script><custom-block s="comment %mlt"><l>bottom cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>98,194,19,1</color><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n x %n"><block var="x"/><block s="reportDifference"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><custom-block s="%n / %n"><block var="bottomSize"/><l>1</l></custom-block></block></custom-block><custom-block s="%n x %n"><block var="y"/><block s="reportDifference"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><custom-block s="%n / %n"><block var="bottomSize"/><l>1</l></custom-block></block></custom-block><l>0</l><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="bottomSize"/><block var="bottomSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><l>64</l></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>top cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>98,194,19,1</color><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n x %n"><block var="x"/><block s="reportDifference"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><custom-block s="%n / %n"><block var="bottomSize"/><l>1</l></custom-block></block></custom-block><custom-block s="%n x %n"><block var="y"/><block s="reportDifference"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><custom-block s="%n / %n"><block var="bottomSize"/><l>1</l></custom-block></block></custom-block><custom-block s="%n + %n"><block var="stepSize"/><block var="bottomSize"/></custom-block><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="topSize"/><custom-block s="%n x %n"><block var="bottomSize"/><l>2</l></custom-block><block var="topRadius"/><l>64</l></custom-block></custom-block></custom-block><custom-block s="comment %mlt"><l>basement cone</l></custom-block><custom-block s="add colored: %clr object: %s"><color>214,0,228,1</color><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n x %n"><block var="x"/><block s="reportDifference"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_x"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><custom-block s="%n / %n"><block var="bottomSize"/><l>1</l></custom-block></block></custom-block><custom-block s="%n x %n"><block var="y"/><block s="reportDifference"><custom-block s="%n + %n"><block s="reportQuotient"><block var="baseSize"/><l>2</l></block><custom-block s="%n x %n"><custom-block s="%n - %n"><block var="units_y"/><l>1</l></custom-block><l>21</l></custom-block></custom-block><custom-block s="%n / %n"><block var="bottomSize"/><l>1</l></custom-block></block></custom-block><custom-block s="%n x %n"><custom-block s="%n + %n"><l>0.6</l><block var="basementSize"/></custom-block><l>-1</l></custom-block><custom-block s="cone height: %n bottom radius: %n top radius: %n sides: %n"><block var="basementSize"/><block var="basementRadius"/><block var="bottomSize"/><l>64</l></custom-block></custom-block></custom-block></script></block></script></block></script></custom-block></script></scripts></sprite><watcher var="code as unicode" style="normal" x="87.00000000000432" y="7.999999999999972" color="243,118,29" hidden="true"/><watcher var="code list" style="normal" x="11.500000000008868" y="146.9999999999997" color="243,118,29" hidden="true"/><watcher var="script" style="normal" x="0" y="0" color="243,118,29" hidden="true"/><watcher var="modules" style="normal" x="20.000000000000455" y="186.40000399999985" color="243,118,29" hidden="true"/><watcher var="blocks" style="normal" x="7.999999999997044" y="83.9999999999999" color="243,118,29" hidden="true"/><watcher var="debug" style="normal" x="3.0000000000002274" y="0" color="243,118,29" hidden="true"/><watcher var="ScriptEcho" style="normal" x="2.363636363637397" y="92.05454145454524" color="243,118,29" hidden="true"/><watcher var="deep item" style="normal" x="9.999999999999773" y="10" color="243,118,29" hidden="true"/><watcher var="code" style="normal" x="4.602258469260278" y="3.181932245922198" color="243,118,29"/></sprites></stage><variables><variable name="code"><l>&#xD;_alpha=255;&#xD;module softBox(x,y,z,corner_radius,wall_thickness,floor) {&#xD;module softBoxShape(x,y,z,corner_radius) {&#xD;translate([0,0,z*50/100])cube([(x - (2 * corner_radius)),y,z],center=true);&#xD;translate([0,0,z*50/100])cube([x,(y - (2 * corner_radius)),z],center=true);&#xD;for ( y_pos = [1,-1]){&#xD;    for ( x_pos = [1,-1]){&#xD;        translate([(((x / 2) - corner_radius) * x_pos),(((y / 2) - corner_radius) * y_pos),0])translate([0,0,z*50/100])rotate([0,0,-90])cylinder(z,r=corner_radius,$fn=64,center=true);&#xD;        &#xD;    };&#xD;};&#xD;};&#xD;if ((((wall_thickness == 0) || (wall_thickness &gt; (x / 2))) || (wall_thickness &gt; (y / 2)))) {&#xD;    softBoxShape(x,y,z,corner_radius);&#xD;    &#xD;} else {&#xD;    difference(){&#xD;        softBoxShape(x,y,z,corner_radius);&#xD;        if ("standard" == "simple") &#xD;          {&#xD;            resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&#xD;          } else {&#xD;            translate([0.01,0,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&#xD;            translate([-0.01,0,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&#xD;            translate([0,0.01,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&#xD;            translate([0,-0.01,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&#xD;            translate([0,0,0.01])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&#xD;            translate([0,0,-0.01])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&#xD;          };&#xD;    };&#xD;    &#xD;    if (floor) {&#xD;        softBoxShape(x,y,wall_thickness,corner_radius);&#xD;        &#xD;    };&#xD;};&#xD;};&#xD;softBox(20,10,5,1,2,true);&#xD;</l></variable><variable name="script" hidden="true"><context id="13475"><inputs></inputs><variables></variables><script><custom-block s="let %upvar be %s"><l>a</l><l>10</l></custom-block><custom-block s="add %s"><custom-block s="rocket radius: %n body height: %n cone height: %n"><block var="a"/><l>18</l><l>3</l></custom-block></custom-block></script><receiver></receiver><origin></origin></context></variable><variable name="code list" hidden="true"><list struct="atomic" id="13487">,_alpha=255;,&quot;module softBox(x,y,z,corner_radius,wall_thickness,floor) {&quot;,&quot;module softBoxShape(x,y,z,corner_radius) {&quot;,&quot;translate([0,0,z*50/100])cube([(x - (2 * corner_radius)),y,z],center=true);&quot;,&quot;translate([0,0,z*50/100])cube([x,(y - (2 * corner_radius)),z],center=true);&quot;,&quot;for ( y_pos = [1,-1]){&quot;,&quot;    for ( x_pos = [1,-1]){&quot;,&quot;        translate([(((x / 2) - corner_radius) * x_pos),(((y / 2) - corner_radius) * y_pos),0])translate([0,0,z*50/100])rotate([0,0,-90])cylinder(z,r=corner_radius,$fn=64,center=true);&quot;,        ,    };,};,};,if ((((wall_thickness == 0) || (wall_thickness &gt; (x / 2))) || (wall_thickness &gt; (y / 2)))) {,&quot;    softBoxShape(x,y,z,corner_radius);&quot;,    ,} else {,    difference(){,&quot;        softBoxShape(x,y,z,corner_radius);&quot;,&quot;        if (&quot;&quot;standard&quot;&quot; == &quot;&quot;simple&quot;&quot;) &quot;,          {,&quot;            resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,          } else {,&quot;            translate([0.01,0,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([-0.01,0,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([0,0.01,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([0,-0.01,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([0,0,0.01])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([0,0,-0.01])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,          };,    };,    ,    if (floor) {,&quot;        softBoxShape(x,y,wall_thickness,corner_radius);&quot;,        ,    };,};,};,&quot;softBox(20,10,5,1,2,true);&quot;,</list></variable><variable name="code as unicode" hidden="true"><list id="13488"><item><list struct="atomic" id="13489">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13490">_,95</list></item><item><list struct="atomic" id="13491">a,97</list></item><item><list struct="atomic" id="13492">l,108</list></item><item><list struct="atomic" id="13493">p,112</list></item><item><list struct="atomic" id="13494">h,104</list></item><item><list struct="atomic" id="13495">a,97</list></item><item><list struct="atomic" id="13496">=,61</list></item><item><list struct="atomic" id="13497">2,50</list></item><item><list struct="atomic" id="13498">5,53</list></item><item><list struct="atomic" id="13499">5,53</list></item><item><list struct="atomic" id="13500">;,59</list></item><item><list struct="atomic" id="13501">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13502">m,109</list></item><item><list struct="atomic" id="13503">o,111</list></item><item><list struct="atomic" id="13504">d,100</list></item><item><list struct="atomic" id="13505">u,117</list></item><item><list struct="atomic" id="13506">l,108</list></item><item><list struct="atomic" id="13507">e,101</list></item><item><list struct="atomic" id="13508"> ,32</list></item><item><list struct="atomic" id="13509">s,115</list></item><item><list struct="atomic" id="13510">o,111</list></item><item><list struct="atomic" id="13511">f,102</list></item><item><list struct="atomic" id="13512">t,116</list></item><item><list struct="atomic" id="13513">B,66</list></item><item><list struct="atomic" id="13514">o,111</list></item><item><list struct="atomic" id="13515">x,120</list></item><item><list struct="atomic" id="13516">(,40</list></item><item><list struct="atomic" id="13517">x,120</list></item><item><list struct="atomic" id="13518">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13519">y,121</list></item><item><list struct="atomic" id="13520">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13521">z,122</list></item><item><list struct="atomic" id="13522">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13523">c,99</list></item><item><list struct="atomic" id="13524">o,111</list></item><item><list struct="atomic" id="13525">r,114</list></item><item><list struct="atomic" id="13526">n,110</list></item><item><list struct="atomic" id="13527">e,101</list></item><item><list struct="atomic" id="13528">r,114</list></item><item><list struct="atomic" id="13529">_,95</list></item><item><list struct="atomic" id="13530">r,114</list></item><item><list struct="atomic" id="13531">a,97</list></item><item><list struct="atomic" id="13532">d,100</list></item><item><list struct="atomic" id="13533">i,105</list></item><item><list struct="atomic" id="13534">u,117</list></item><item><list struct="atomic" id="13535">s,115</list></item><item><list struct="atomic" id="13536">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13537">w,119</list></item><item><list struct="atomic" id="13538">a,97</list></item><item><list struct="atomic" id="13539">l,108</list></item><item><list struct="atomic" id="13540">l,108</list></item><item><list struct="atomic" id="13541">_,95</list></item><item><list struct="atomic" id="13542">t,116</list></item><item><list struct="atomic" id="13543">h,104</list></item><item><list struct="atomic" id="13544">i,105</list></item><item><list struct="atomic" id="13545">c,99</list></item><item><list struct="atomic" id="13546">k,107</list></item><item><list struct="atomic" id="13547">n,110</list></item><item><list struct="atomic" id="13548">e,101</list></item><item><list struct="atomic" id="13549">s,115</list></item><item><list struct="atomic" id="13550">s,115</list></item><item><list struct="atomic" id="13551">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13552">f,102</list></item><item><list struct="atomic" id="13553">l,108</list></item><item><list struct="atomic" id="13554">o,111</list></item><item><list struct="atomic" id="13555">o,111</list></item><item><list struct="atomic" id="13556">r,114</list></item><item><list struct="atomic" id="13557">),41</list></item><item><list struct="atomic" id="13558"> ,32</list></item><item><list struct="atomic" id="13559">{,123</list></item><item><list struct="atomic" id="13560">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13561">m,109</list></item><item><list struct="atomic" id="13562">o,111</list></item><item><list struct="atomic" id="13563">d,100</list></item><item><list struct="atomic" id="13564">u,117</list></item><item><list struct="atomic" id="13565">l,108</list></item><item><list struct="atomic" id="13566">e,101</list></item><item><list struct="atomic" id="13567"> ,32</list></item><item><list struct="atomic" id="13568">s,115</list></item><item><list struct="atomic" id="13569">o,111</list></item><item><list struct="atomic" id="13570">f,102</list></item><item><list struct="atomic" id="13571">t,116</list></item><item><list struct="atomic" id="13572">B,66</list></item><item><list struct="atomic" id="13573">o,111</list></item><item><list struct="atomic" id="13574">x,120</list></item><item><list struct="atomic" id="13575">S,83</list></item><item><list struct="atomic" id="13576">h,104</list></item><item><list struct="atomic" id="13577">a,97</list></item><item><list struct="atomic" id="13578">p,112</list></item><item><list struct="atomic" id="13579">e,101</list></item><item><list struct="atomic" id="13580">(,40</list></item><item><list struct="atomic" id="13581">x,120</list></item><item><list struct="atomic" id="13582">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13583">y,121</list></item><item><list struct="atomic" id="13584">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13585">z,122</list></item><item><list struct="atomic" id="13586">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13587">c,99</list></item><item><list struct="atomic" id="13588">o,111</list></item><item><list struct="atomic" id="13589">r,114</list></item><item><list struct="atomic" id="13590">n,110</list></item><item><list struct="atomic" id="13591">e,101</list></item><item><list struct="atomic" id="13592">r,114</list></item><item><list struct="atomic" id="13593">_,95</list></item><item><list struct="atomic" id="13594">r,114</list></item><item><list struct="atomic" id="13595">a,97</list></item><item><list struct="atomic" id="13596">d,100</list></item><item><list struct="atomic" id="13597">i,105</list></item><item><list struct="atomic" id="13598">u,117</list></item><item><list struct="atomic" id="13599">s,115</list></item><item><list struct="atomic" id="13600">),41</list></item><item><list struct="atomic" id="13601"> ,32</list></item><item><list struct="atomic" id="13602">{,123</list></item><item><list struct="atomic" id="13603">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13604">t,116</list></item><item><list struct="atomic" id="13605">r,114</list></item><item><list struct="atomic" id="13606">a,97</list></item><item><list struct="atomic" id="13607">n,110</list></item><item><list struct="atomic" id="13608">s,115</list></item><item><list struct="atomic" id="13609">l,108</list></item><item><list struct="atomic" id="13610">a,97</list></item><item><list struct="atomic" id="13611">t,116</list></item><item><list struct="atomic" id="13612">e,101</list></item><item><list struct="atomic" id="13613">(,40</list></item><item><list struct="atomic" id="13614">[,91</list></item><item><list struct="atomic" id="13615">0,48</list></item><item><list struct="atomic" id="13616">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13617">0,48</list></item><item><list struct="atomic" id="13618">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13619">z,122</list></item><item><list struct="atomic" id="13620">*,42</list></item><item><list struct="atomic" id="13621">5,53</list></item><item><list struct="atomic" id="13622">0,48</list></item><item><list struct="atomic" id="13623">/,47</list></item><item><list struct="atomic" id="13624">1,49</list></item><item><list struct="atomic" id="13625">0,48</list></item><item><list struct="atomic" id="13626">0,48</list></item><item><list struct="atomic" id="13627">],93</list></item><item><list struct="atomic" id="13628">),41</list></item><item><list struct="atomic" id="13629">c,99</list></item><item><list struct="atomic" id="13630">u,117</list></item><item><list struct="atomic" id="13631">b,98</list></item><item><list struct="atomic" id="13632">e,101</list></item><item><list struct="atomic" id="13633">(,40</list></item><item><list struct="atomic" id="13634">[,91</list></item><item><list struct="atomic" id="13635">(,40</list></item><item><list struct="atomic" id="13636">x,120</list></item><item><list struct="atomic" id="13637"> ,32</list></item><item><list struct="atomic" id="13638">-,45</list></item><item><list struct="atomic" id="13639"> ,32</list></item><item><list struct="atomic" id="13640">(,40</list></item><item><list struct="atomic" id="13641">2,50</list></item><item><list struct="atomic" id="13642"> ,32</list></item><item><list struct="atomic" id="13643">*,42</list></item><item><list struct="atomic" id="13644"> ,32</list></item><item><list struct="atomic" id="13645">c,99</list></item><item><list struct="atomic" id="13646">o,111</list></item><item><list struct="atomic" id="13647">r,114</list></item><item><list struct="atomic" id="13648">n,110</list></item><item><list struct="atomic" id="13649">e,101</list></item><item><list struct="atomic" id="13650">r,114</list></item><item><list struct="atomic" id="13651">_,95</list></item><item><list struct="atomic" id="13652">r,114</list></item><item><list struct="atomic" id="13653">a,97</list></item><item><list struct="atomic" id="13654">d,100</list></item><item><list struct="atomic" id="13655">i,105</list></item><item><list struct="atomic" id="13656">u,117</list></item><item><list struct="atomic" id="13657">s,115</list></item><item><list struct="atomic" id="13658">),41</list></item><item><list struct="atomic" id="13659">),41</list></item><item><list struct="atomic" id="13660">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13661">y,121</list></item><item><list struct="atomic" id="13662">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13663">z,122</list></item><item><list struct="atomic" id="13664">],93</list></item><item><list struct="atomic" id="13665">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13666">c,99</list></item><item><list struct="atomic" id="13667">e,101</list></item><item><list struct="atomic" id="13668">n,110</list></item><item><list struct="atomic" id="13669">t,116</list></item><item><list struct="atomic" id="13670">e,101</list></item><item><list struct="atomic" id="13671">r,114</list></item><item><list struct="atomic" id="13672">=,61</list></item><item><list struct="atomic" id="13673">t,116</list></item><item><list struct="atomic" id="13674">r,114</list></item><item><list struct="atomic" id="13675">u,117</list></item><item><list struct="atomic" id="13676">e,101</list></item><item><list struct="atomic" id="13677">),41</list></item><item><list struct="atomic" id="13678">;,59</list></item><item><list struct="atomic" id="13679">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13680">t,116</list></item><item><list struct="atomic" id="13681">r,114</list></item><item><list struct="atomic" id="13682">a,97</list></item><item><list struct="atomic" id="13683">n,110</list></item><item><list struct="atomic" id="13684">s,115</list></item><item><list struct="atomic" id="13685">l,108</list></item><item><list struct="atomic" id="13686">a,97</list></item><item><list struct="atomic" id="13687">t,116</list></item><item><list struct="atomic" id="13688">e,101</list></item><item><list struct="atomic" id="13689">(,40</list></item><item><list struct="atomic" id="13690">[,91</list></item><item><list struct="atomic" id="13691">0,48</list></item><item><list struct="atomic" id="13692">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13693">0,48</list></item><item><list struct="atomic" id="13694">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13695">z,122</list></item><item><list struct="atomic" id="13696">*,42</list></item><item><list struct="atomic" id="13697">5,53</list></item><item><list struct="atomic" id="13698">0,48</list></item><item><list struct="atomic" id="13699">/,47</list></item><item><list struct="atomic" id="13700">1,49</list></item><item><list struct="atomic" id="13701">0,48</list></item><item><list struct="atomic" id="13702">0,48</list></item><item><list struct="atomic" id="13703">],93</list></item><item><list struct="atomic" id="13704">),41</list></item><item><list struct="atomic" id="13705">c,99</list></item><item><list struct="atomic" id="13706">u,117</list></item><item><list struct="atomic" id="13707">b,98</list></item><item><list struct="atomic" id="13708">e,101</list></item><item><list struct="atomic" id="13709">(,40</list></item><item><list struct="atomic" id="13710">[,91</list></item><item><list struct="atomic" id="13711">x,120</list></item><item><list struct="atomic" id="13712">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13713">(,40</list></item><item><list struct="atomic" id="13714">y,121</list></item><item><list struct="atomic" id="13715"> ,32</list></item><item><list struct="atomic" id="13716">-,45</list></item><item><list struct="atomic" id="13717"> ,32</list></item><item><list struct="atomic" id="13718">(,40</list></item><item><list struct="atomic" id="13719">2,50</list></item><item><list struct="atomic" id="13720"> ,32</list></item><item><list struct="atomic" id="13721">*,42</list></item><item><list struct="atomic" id="13722"> ,32</list></item><item><list struct="atomic" id="13723">c,99</list></item><item><list struct="atomic" id="13724">o,111</list></item><item><list struct="atomic" id="13725">r,114</list></item><item><list struct="atomic" id="13726">n,110</list></item><item><list struct="atomic" id="13727">e,101</list></item><item><list struct="atomic" id="13728">r,114</list></item><item><list struct="atomic" id="13729">_,95</list></item><item><list struct="atomic" id="13730">r,114</list></item><item><list struct="atomic" id="13731">a,97</list></item><item><list struct="atomic" id="13732">d,100</list></item><item><list struct="atomic" id="13733">i,105</list></item><item><list struct="atomic" id="13734">u,117</list></item><item><list struct="atomic" id="13735">s,115</list></item><item><list struct="atomic" id="13736">),41</list></item><item><list struct="atomic" id="13737">),41</list></item><item><list struct="atomic" id="13738">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13739">z,122</list></item><item><list struct="atomic" id="13740">],93</list></item><item><list struct="atomic" id="13741">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13742">c,99</list></item><item><list struct="atomic" id="13743">e,101</list></item><item><list struct="atomic" id="13744">n,110</list></item><item><list struct="atomic" id="13745">t,116</list></item><item><list struct="atomic" id="13746">e,101</list></item><item><list struct="atomic" id="13747">r,114</list></item><item><list struct="atomic" id="13748">=,61</list></item><item><list struct="atomic" id="13749">t,116</list></item><item><list struct="atomic" id="13750">r,114</list></item><item><list struct="atomic" id="13751">u,117</list></item><item><list struct="atomic" id="13752">e,101</list></item><item><list struct="atomic" id="13753">),41</list></item><item><list struct="atomic" id="13754">;,59</list></item><item><list struct="atomic" id="13755">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13756">f,102</list></item><item><list struct="atomic" id="13757">o,111</list></item><item><list struct="atomic" id="13758">r,114</list></item><item><list struct="atomic" id="13759"> ,32</list></item><item><list struct="atomic" id="13760">(,40</list></item><item><list struct="atomic" id="13761"> ,32</list></item><item><list struct="atomic" id="13762">y,121</list></item><item><list struct="atomic" id="13763">_,95</list></item><item><list struct="atomic" id="13764">p,112</list></item><item><list struct="atomic" id="13765">o,111</list></item><item><list struct="atomic" id="13766">s,115</list></item><item><list struct="atomic" id="13767"> ,32</list></item><item><list struct="atomic" id="13768">=,61</list></item><item><list struct="atomic" id="13769"> ,32</list></item><item><list struct="atomic" id="13770">[,91</list></item><item><list struct="atomic" id="13771">1,49</list></item><item><list struct="atomic" id="13772">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13773">-,45</list></item><item><list struct="atomic" id="13774">1,49</list></item><item><list struct="atomic" id="13775">],93</list></item><item><list struct="atomic" id="13776">),41</list></item><item><list struct="atomic" id="13777">{,123</list></item><item><list struct="atomic" id="13778">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13779"> ,32</list></item><item><list struct="atomic" id="13780"> ,32</list></item><item><list struct="atomic" id="13781"> ,32</list></item><item><list struct="atomic" id="13782"> ,32</list></item><item><list struct="atomic" id="13783">f,102</list></item><item><list struct="atomic" id="13784">o,111</list></item><item><list struct="atomic" id="13785">r,114</list></item><item><list struct="atomic" id="13786"> ,32</list></item><item><list struct="atomic" id="13787">(,40</list></item><item><list struct="atomic" id="13788"> ,32</list></item><item><list struct="atomic" id="13789">x,120</list></item><item><list struct="atomic" id="13790">_,95</list></item><item><list struct="atomic" id="13791">p,112</list></item><item><list struct="atomic" id="13792">o,111</list></item><item><list struct="atomic" id="13793">s,115</list></item><item><list struct="atomic" id="13794"> ,32</list></item><item><list struct="atomic" id="13795">=,61</list></item><item><list struct="atomic" id="13796"> ,32</list></item><item><list struct="atomic" id="13797">[,91</list></item><item><list struct="atomic" id="13798">1,49</list></item><item><list struct="atomic" id="13799">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13800">-,45</list></item><item><list struct="atomic" id="13801">1,49</list></item><item><list struct="atomic" id="13802">],93</list></item><item><list struct="atomic" id="13803">),41</list></item><item><list struct="atomic" id="13804">{,123</list></item><item><list struct="atomic" id="13805">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13806"> ,32</list></item><item><list struct="atomic" id="13807"> ,32</list></item><item><list struct="atomic" id="13808"> ,32</list></item><item><list struct="atomic" id="13809"> ,32</list></item><item><list struct="atomic" id="13810"> ,32</list></item><item><list struct="atomic" id="13811"> ,32</list></item><item><list struct="atomic" id="13812"> ,32</list></item><item><list struct="atomic" id="13813"> ,32</list></item><item><list struct="atomic" id="13814">t,116</list></item><item><list struct="atomic" id="13815">r,114</list></item><item><list struct="atomic" id="13816">a,97</list></item><item><list struct="atomic" id="13817">n,110</list></item><item><list struct="atomic" id="13818">s,115</list></item><item><list struct="atomic" id="13819">l,108</list></item><item><list struct="atomic" id="13820">a,97</list></item><item><list struct="atomic" id="13821">t,116</list></item><item><list struct="atomic" id="13822">e,101</list></item><item><list struct="atomic" id="13823">(,40</list></item><item><list struct="atomic" id="13824">[,91</list></item><item><list struct="atomic" id="13825">(,40</list></item><item><list struct="atomic" id="13826">(,40</list></item><item><list struct="atomic" id="13827">(,40</list></item><item><list struct="atomic" id="13828">x,120</list></item><item><list struct="atomic" id="13829"> ,32</list></item><item><list struct="atomic" id="13830">/,47</list></item><item><list struct="atomic" id="13831"> ,32</list></item><item><list struct="atomic" id="13832">2,50</list></item><item><list struct="atomic" id="13833">),41</list></item><item><list struct="atomic" id="13834"> ,32</list></item><item><list struct="atomic" id="13835">-,45</list></item><item><list struct="atomic" id="13836"> ,32</list></item><item><list struct="atomic" id="13837">c,99</list></item><item><list struct="atomic" id="13838">o,111</list></item><item><list struct="atomic" id="13839">r,114</list></item><item><list struct="atomic" id="13840">n,110</list></item><item><list struct="atomic" id="13841">e,101</list></item><item><list struct="atomic" id="13842">r,114</list></item><item><list struct="atomic" id="13843">_,95</list></item><item><list struct="atomic" id="13844">r,114</list></item><item><list struct="atomic" id="13845">a,97</list></item><item><list struct="atomic" id="13846">d,100</list></item><item><list struct="atomic" id="13847">i,105</list></item><item><list struct="atomic" id="13848">u,117</list></item><item><list struct="atomic" id="13849">s,115</list></item><item><list struct="atomic" id="13850">),41</list></item><item><list struct="atomic" id="13851"> ,32</list></item><item><list struct="atomic" id="13852">*,42</list></item><item><list struct="atomic" id="13853"> ,32</list></item><item><list struct="atomic" id="13854">x,120</list></item><item><list struct="atomic" id="13855">_,95</list></item><item><list struct="atomic" id="13856">p,112</list></item><item><list struct="atomic" id="13857">o,111</list></item><item><list struct="atomic" id="13858">s,115</list></item><item><list struct="atomic" id="13859">),41</list></item><item><list struct="atomic" id="13860">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13861">(,40</list></item><item><list struct="atomic" id="13862">(,40</list></item><item><list struct="atomic" id="13863">(,40</list></item><item><list struct="atomic" id="13864">y,121</list></item><item><list struct="atomic" id="13865"> ,32</list></item><item><list struct="atomic" id="13866">/,47</list></item><item><list struct="atomic" id="13867"> ,32</list></item><item><list struct="atomic" id="13868">2,50</list></item><item><list struct="atomic" id="13869">),41</list></item><item><list struct="atomic" id="13870"> ,32</list></item><item><list struct="atomic" id="13871">-,45</list></item><item><list struct="atomic" id="13872"> ,32</list></item><item><list struct="atomic" id="13873">c,99</list></item><item><list struct="atomic" id="13874">o,111</list></item><item><list struct="atomic" id="13875">r,114</list></item><item><list struct="atomic" id="13876">n,110</list></item><item><list struct="atomic" id="13877">e,101</list></item><item><list struct="atomic" id="13878">r,114</list></item><item><list struct="atomic" id="13879">_,95</list></item><item><list struct="atomic" id="13880">r,114</list></item><item><list struct="atomic" id="13881">a,97</list></item><item><list struct="atomic" id="13882">d,100</list></item><item><list struct="atomic" id="13883">i,105</list></item><item><list struct="atomic" id="13884">u,117</list></item><item><list struct="atomic" id="13885">s,115</list></item><item><list struct="atomic" id="13886">),41</list></item><item><list struct="atomic" id="13887"> ,32</list></item><item><list struct="atomic" id="13888">*,42</list></item><item><list struct="atomic" id="13889"> ,32</list></item><item><list struct="atomic" id="13890">y,121</list></item><item><list struct="atomic" id="13891">_,95</list></item><item><list struct="atomic" id="13892">p,112</list></item><item><list struct="atomic" id="13893">o,111</list></item><item><list struct="atomic" id="13894">s,115</list></item><item><list struct="atomic" id="13895">),41</list></item><item><list struct="atomic" id="13896">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13897">0,48</list></item><item><list struct="atomic" id="13898">],93</list></item><item><list struct="atomic" id="13899">),41</list></item><item><list struct="atomic" id="13900">t,116</list></item><item><list struct="atomic" id="13901">r,114</list></item><item><list struct="atomic" id="13902">a,97</list></item><item><list struct="atomic" id="13903">n,110</list></item><item><list struct="atomic" id="13904">s,115</list></item><item><list struct="atomic" id="13905">l,108</list></item><item><list struct="atomic" id="13906">a,97</list></item><item><list struct="atomic" id="13907">t,116</list></item><item><list struct="atomic" id="13908">e,101</list></item><item><list struct="atomic" id="13909">(,40</list></item><item><list struct="atomic" id="13910">[,91</list></item><item><list struct="atomic" id="13911">0,48</list></item><item><list struct="atomic" id="13912">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13913">0,48</list></item><item><list struct="atomic" id="13914">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13915">z,122</list></item><item><list struct="atomic" id="13916">*,42</list></item><item><list struct="atomic" id="13917">5,53</list></item><item><list struct="atomic" id="13918">0,48</list></item><item><list struct="atomic" id="13919">/,47</list></item><item><list struct="atomic" id="13920">1,49</list></item><item><list struct="atomic" id="13921">0,48</list></item><item><list struct="atomic" id="13922">0,48</list></item><item><list struct="atomic" id="13923">],93</list></item><item><list struct="atomic" id="13924">),41</list></item><item><list struct="atomic" id="13925">r,114</list></item><item><list struct="atomic" id="13926">o,111</list></item><item><list struct="atomic" id="13927">t,116</list></item><item><list struct="atomic" id="13928">a,97</list></item><item><list struct="atomic" id="13929">t,116</list></item><item><list struct="atomic" id="13930">e,101</list></item><item><list struct="atomic" id="13931">(,40</list></item><item><list struct="atomic" id="13932">[,91</list></item><item><list struct="atomic" id="13933">0,48</list></item><item><list struct="atomic" id="13934">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13935">0,48</list></item><item><list struct="atomic" id="13936">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13937">-,45</list></item><item><list struct="atomic" id="13938">9,57</list></item><item><list struct="atomic" id="13939">0,48</list></item><item><list struct="atomic" id="13940">],93</list></item><item><list struct="atomic" id="13941">),41</list></item><item><list struct="atomic" id="13942">c,99</list></item><item><list struct="atomic" id="13943">y,121</list></item><item><list struct="atomic" id="13944">l,108</list></item><item><list struct="atomic" id="13945">i,105</list></item><item><list struct="atomic" id="13946">n,110</list></item><item><list struct="atomic" id="13947">d,100</list></item><item><list struct="atomic" id="13948">e,101</list></item><item><list struct="atomic" id="13949">r,114</list></item><item><list struct="atomic" id="13950">(,40</list></item><item><list struct="atomic" id="13951">z,122</list></item><item><list struct="atomic" id="13952">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13953">r,114</list></item><item><list struct="atomic" id="13954">=,61</list></item><item><list struct="atomic" id="13955">c,99</list></item><item><list struct="atomic" id="13956">o,111</list></item><item><list struct="atomic" id="13957">r,114</list></item><item><list struct="atomic" id="13958">n,110</list></item><item><list struct="atomic" id="13959">e,101</list></item><item><list struct="atomic" id="13960">r,114</list></item><item><list struct="atomic" id="13961">_,95</list></item><item><list struct="atomic" id="13962">r,114</list></item><item><list struct="atomic" id="13963">a,97</list></item><item><list struct="atomic" id="13964">d,100</list></item><item><list struct="atomic" id="13965">i,105</list></item><item><list struct="atomic" id="13966">u,117</list></item><item><list struct="atomic" id="13967">s,115</list></item><item><list struct="atomic" id="13968">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13969">$,36</list></item><item><list struct="atomic" id="13970">f,102</list></item><item><list struct="atomic" id="13971">n,110</list></item><item><list struct="atomic" id="13972">=,61</list></item><item><list struct="atomic" id="13973">6,54</list></item><item><list struct="atomic" id="13974">4,52</list></item><item><list struct="atomic" id="13975">&quot;,&quot;,44</list></item><item><list struct="atomic" id="13976">c,99</list></item><item><list struct="atomic" id="13977">e,101</list></item><item><list struct="atomic" id="13978">n,110</list></item><item><list struct="atomic" id="13979">t,116</list></item><item><list struct="atomic" id="13980">e,101</list></item><item><list struct="atomic" id="13981">r,114</list></item><item><list struct="atomic" id="13982">=,61</list></item><item><list struct="atomic" id="13983">t,116</list></item><item><list struct="atomic" id="13984">r,114</list></item><item><list struct="atomic" id="13985">u,117</list></item><item><list struct="atomic" id="13986">e,101</list></item><item><list struct="atomic" id="13987">),41</list></item><item><list struct="atomic" id="13988">;,59</list></item><item><list struct="atomic" id="13989">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13990"> ,32</list></item><item><list struct="atomic" id="13991"> ,32</list></item><item><list struct="atomic" id="13992"> ,32</list></item><item><list struct="atomic" id="13993"> ,32</list></item><item><list struct="atomic" id="13994"> ,32</list></item><item><list struct="atomic" id="13995"> ,32</list></item><item><list struct="atomic" id="13996"> ,32</list></item><item><list struct="atomic" id="13997"> ,32</list></item><item><list struct="atomic" id="13998">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="13999"> ,32</list></item><item><list struct="atomic" id="14000"> ,32</list></item><item><list struct="atomic" id="14001"> ,32</list></item><item><list struct="atomic" id="14002"> ,32</list></item><item><list struct="atomic" id="14003">},125</list></item><item><list struct="atomic" id="14004">;,59</list></item><item><list struct="atomic" id="14005">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14006">},125</list></item><item><list struct="atomic" id="14007">;,59</list></item><item><list struct="atomic" id="14008">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14009">},125</list></item><item><list struct="atomic" id="14010">;,59</list></item><item><list struct="atomic" id="14011">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14012">i,105</list></item><item><list struct="atomic" id="14013">f,102</list></item><item><list struct="atomic" id="14014"> ,32</list></item><item><list struct="atomic" id="14015">(,40</list></item><item><list struct="atomic" id="14016">(,40</list></item><item><list struct="atomic" id="14017">(,40</list></item><item><list struct="atomic" id="14018">(,40</list></item><item><list struct="atomic" id="14019">w,119</list></item><item><list struct="atomic" id="14020">a,97</list></item><item><list struct="atomic" id="14021">l,108</list></item><item><list struct="atomic" id="14022">l,108</list></item><item><list struct="atomic" id="14023">_,95</list></item><item><list struct="atomic" id="14024">t,116</list></item><item><list struct="atomic" id="14025">h,104</list></item><item><list struct="atomic" id="14026">i,105</list></item><item><list struct="atomic" id="14027">c,99</list></item><item><list struct="atomic" id="14028">k,107</list></item><item><list struct="atomic" id="14029">n,110</list></item><item><list struct="atomic" id="14030">e,101</list></item><item><list struct="atomic" id="14031">s,115</list></item><item><list struct="atomic" id="14032">s,115</list></item><item><list struct="atomic" id="14033"> ,32</list></item><item><list struct="atomic" id="14034">=,61</list></item><item><list struct="atomic" id="14035">=,61</list></item><item><list struct="atomic" id="14036"> ,32</list></item><item><list struct="atomic" id="14037">0,48</list></item><item><list struct="atomic" id="14038">),41</list></item><item><list struct="atomic" id="14039"> ,32</list></item><item><list struct="atomic" id="14040">|,124</list></item><item><list struct="atomic" id="14041">|,124</list></item><item><list struct="atomic" id="14042"> ,32</list></item><item><list struct="atomic" id="14043">(,40</list></item><item><list struct="atomic" id="14044">w,119</list></item><item><list struct="atomic" id="14045">a,97</list></item><item><list struct="atomic" id="14046">l,108</list></item><item><list struct="atomic" id="14047">l,108</list></item><item><list struct="atomic" id="14048">_,95</list></item><item><list struct="atomic" id="14049">t,116</list></item><item><list struct="atomic" id="14050">h,104</list></item><item><list struct="atomic" id="14051">i,105</list></item><item><list struct="atomic" id="14052">c,99</list></item><item><list struct="atomic" id="14053">k,107</list></item><item><list struct="atomic" id="14054">n,110</list></item><item><list struct="atomic" id="14055">e,101</list></item><item><list struct="atomic" id="14056">s,115</list></item><item><list struct="atomic" id="14057">s,115</list></item><item><list struct="atomic" id="14058"> ,32</list></item><item><list struct="atomic" id="14059">&gt;,62</list></item><item><list struct="atomic" id="14060"> ,32</list></item><item><list struct="atomic" id="14061">(,40</list></item><item><list struct="atomic" id="14062">x,120</list></item><item><list struct="atomic" id="14063"> ,32</list></item><item><list struct="atomic" id="14064">/,47</list></item><item><list struct="atomic" id="14065"> ,32</list></item><item><list struct="atomic" id="14066">2,50</list></item><item><list struct="atomic" id="14067">),41</list></item><item><list struct="atomic" id="14068">),41</list></item><item><list struct="atomic" id="14069">),41</list></item><item><list struct="atomic" id="14070"> ,32</list></item><item><list struct="atomic" id="14071">|,124</list></item><item><list struct="atomic" id="14072">|,124</list></item><item><list struct="atomic" id="14073"> ,32</list></item><item><list struct="atomic" id="14074">(,40</list></item><item><list struct="atomic" id="14075">w,119</list></item><item><list struct="atomic" id="14076">a,97</list></item><item><list struct="atomic" id="14077">l,108</list></item><item><list struct="atomic" id="14078">l,108</list></item><item><list struct="atomic" id="14079">_,95</list></item><item><list struct="atomic" id="14080">t,116</list></item><item><list struct="atomic" id="14081">h,104</list></item><item><list struct="atomic" id="14082">i,105</list></item><item><list struct="atomic" id="14083">c,99</list></item><item><list struct="atomic" id="14084">k,107</list></item><item><list struct="atomic" id="14085">n,110</list></item><item><list struct="atomic" id="14086">e,101</list></item><item><list struct="atomic" id="14087">s,115</list></item><item><list struct="atomic" id="14088">s,115</list></item><item><list struct="atomic" id="14089"> ,32</list></item><item><list struct="atomic" id="14090">&gt;,62</list></item><item><list struct="atomic" id="14091"> ,32</list></item><item><list struct="atomic" id="14092">(,40</list></item><item><list struct="atomic" id="14093">y,121</list></item><item><list struct="atomic" id="14094"> ,32</list></item><item><list struct="atomic" id="14095">/,47</list></item><item><list struct="atomic" id="14096"> ,32</list></item><item><list struct="atomic" id="14097">2,50</list></item><item><list struct="atomic" id="14098">),41</list></item><item><list struct="atomic" id="14099">),41</list></item><item><list struct="atomic" id="14100">),41</list></item><item><list struct="atomic" id="14101">),41</list></item><item><list struct="atomic" id="14102"> ,32</list></item><item><list struct="atomic" id="14103">{,123</list></item><item><list struct="atomic" id="14104">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14105"> ,32</list></item><item><list struct="atomic" id="14106"> ,32</list></item><item><list struct="atomic" id="14107"> ,32</list></item><item><list struct="atomic" id="14108"> ,32</list></item><item><list struct="atomic" id="14109">s,115</list></item><item><list struct="atomic" id="14110">o,111</list></item><item><list struct="atomic" id="14111">f,102</list></item><item><list struct="atomic" id="14112">t,116</list></item><item><list struct="atomic" id="14113">B,66</list></item><item><list struct="atomic" id="14114">o,111</list></item><item><list struct="atomic" id="14115">x,120</list></item><item><list struct="atomic" id="14116">S,83</list></item><item><list struct="atomic" id="14117">h,104</list></item><item><list struct="atomic" id="14118">a,97</list></item><item><list struct="atomic" id="14119">p,112</list></item><item><list struct="atomic" id="14120">e,101</list></item><item><list struct="atomic" id="14121">(,40</list></item><item><list struct="atomic" id="14122">x,120</list></item><item><list struct="atomic" id="14123">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14124">y,121</list></item><item><list struct="atomic" id="14125">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14126">z,122</list></item><item><list struct="atomic" id="14127">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14128">c,99</list></item><item><list struct="atomic" id="14129">o,111</list></item><item><list struct="atomic" id="14130">r,114</list></item><item><list struct="atomic" id="14131">n,110</list></item><item><list struct="atomic" id="14132">e,101</list></item><item><list struct="atomic" id="14133">r,114</list></item><item><list struct="atomic" id="14134">_,95</list></item><item><list struct="atomic" id="14135">r,114</list></item><item><list struct="atomic" id="14136">a,97</list></item><item><list struct="atomic" id="14137">d,100</list></item><item><list struct="atomic" id="14138">i,105</list></item><item><list struct="atomic" id="14139">u,117</list></item><item><list struct="atomic" id="14140">s,115</list></item><item><list struct="atomic" id="14141">),41</list></item><item><list struct="atomic" id="14142">;,59</list></item><item><list struct="atomic" id="14143">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14144"> ,32</list></item><item><list struct="atomic" id="14145"> ,32</list></item><item><list struct="atomic" id="14146"> ,32</list></item><item><list struct="atomic" id="14147"> ,32</list></item><item><list struct="atomic" id="14148">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14149">},125</list></item><item><list struct="atomic" id="14150"> ,32</list></item><item><list struct="atomic" id="14151">e,101</list></item><item><list struct="atomic" id="14152">l,108</list></item><item><list struct="atomic" id="14153">s,115</list></item><item><list struct="atomic" id="14154">e,101</list></item><item><list struct="atomic" id="14155"> ,32</list></item><item><list struct="atomic" id="14156">{,123</list></item><item><list struct="atomic" id="14157">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14158"> ,32</list></item><item><list struct="atomic" id="14159"> ,32</list></item><item><list struct="atomic" id="14160"> ,32</list></item><item><list struct="atomic" id="14161"> ,32</list></item><item><list struct="atomic" id="14162">d,100</list></item><item><list struct="atomic" id="14163">i,105</list></item><item><list struct="atomic" id="14164">f,102</list></item><item><list struct="atomic" id="14165">f,102</list></item><item><list struct="atomic" id="14166">e,101</list></item><item><list struct="atomic" id="14167">r,114</list></item><item><list struct="atomic" id="14168">e,101</list></item><item><list struct="atomic" id="14169">n,110</list></item><item><list struct="atomic" id="14170">c,99</list></item><item><list struct="atomic" id="14171">e,101</list></item><item><list struct="atomic" id="14172">(,40</list></item><item><list struct="atomic" id="14173">),41</list></item><item><list struct="atomic" id="14174">{,123</list></item><item><list struct="atomic" id="14175">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14176"> ,32</list></item><item><list struct="atomic" id="14177"> ,32</list></item><item><list struct="atomic" id="14178"> ,32</list></item><item><list struct="atomic" id="14179"> ,32</list></item><item><list struct="atomic" id="14180"> ,32</list></item><item><list struct="atomic" id="14181"> ,32</list></item><item><list struct="atomic" id="14182"> ,32</list></item><item><list struct="atomic" id="14183"> ,32</list></item><item><list struct="atomic" id="14184">s,115</list></item><item><list struct="atomic" id="14185">o,111</list></item><item><list struct="atomic" id="14186">f,102</list></item><item><list struct="atomic" id="14187">t,116</list></item><item><list struct="atomic" id="14188">B,66</list></item><item><list struct="atomic" id="14189">o,111</list></item><item><list struct="atomic" id="14190">x,120</list></item><item><list struct="atomic" id="14191">S,83</list></item><item><list struct="atomic" id="14192">h,104</list></item><item><list struct="atomic" id="14193">a,97</list></item><item><list struct="atomic" id="14194">p,112</list></item><item><list struct="atomic" id="14195">e,101</list></item><item><list struct="atomic" id="14196">(,40</list></item><item><list struct="atomic" id="14197">x,120</list></item><item><list struct="atomic" id="14198">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14199">y,121</list></item><item><list struct="atomic" id="14200">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14201">z,122</list></item><item><list struct="atomic" id="14202">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14203">c,99</list></item><item><list struct="atomic" id="14204">o,111</list></item><item><list struct="atomic" id="14205">r,114</list></item><item><list struct="atomic" id="14206">n,110</list></item><item><list struct="atomic" id="14207">e,101</list></item><item><list struct="atomic" id="14208">r,114</list></item><item><list struct="atomic" id="14209">_,95</list></item><item><list struct="atomic" id="14210">r,114</list></item><item><list struct="atomic" id="14211">a,97</list></item><item><list struct="atomic" id="14212">d,100</list></item><item><list struct="atomic" id="14213">i,105</list></item><item><list struct="atomic" id="14214">u,117</list></item><item><list struct="atomic" id="14215">s,115</list></item><item><list struct="atomic" id="14216">),41</list></item><item><list struct="atomic" id="14217">;,59</list></item><item><list struct="atomic" id="14218">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14219"> ,32</list></item><item><list struct="atomic" id="14220"> ,32</list></item><item><list struct="atomic" id="14221"> ,32</list></item><item><list struct="atomic" id="14222"> ,32</list></item><item><list struct="atomic" id="14223"> ,32</list></item><item><list struct="atomic" id="14224"> ,32</list></item><item><list struct="atomic" id="14225"> ,32</list></item><item><list struct="atomic" id="14226"> ,32</list></item><item><list struct="atomic" id="14227">i,105</list></item><item><list struct="atomic" id="14228">f,102</list></item><item><list struct="atomic" id="14229"> ,32</list></item><item><list struct="atomic" id="14230">(,40</list></item><item><list struct="atomic" id="14231">&quot;&quot;&quot;&quot;,34</list></item><item><list struct="atomic" id="14232">s,115</list></item><item><list struct="atomic" id="14233">t,116</list></item><item><list struct="atomic" id="14234">a,97</list></item><item><list struct="atomic" id="14235">n,110</list></item><item><list struct="atomic" id="14236">d,100</list></item><item><list struct="atomic" id="14237">a,97</list></item><item><list struct="atomic" id="14238">r,114</list></item><item><list struct="atomic" id="14239">d,100</list></item><item><list struct="atomic" id="14240">&quot;&quot;&quot;&quot;,34</list></item><item><list struct="atomic" id="14241"> ,32</list></item><item><list struct="atomic" id="14242">=,61</list></item><item><list struct="atomic" id="14243">=,61</list></item><item><list struct="atomic" id="14244"> ,32</list></item><item><list struct="atomic" id="14245">&quot;&quot;&quot;&quot;,34</list></item><item><list struct="atomic" id="14246">s,115</list></item><item><list struct="atomic" id="14247">i,105</list></item><item><list struct="atomic" id="14248">m,109</list></item><item><list struct="atomic" id="14249">p,112</list></item><item><list struct="atomic" id="14250">l,108</list></item><item><list struct="atomic" id="14251">e,101</list></item><item><list struct="atomic" id="14252">&quot;&quot;&quot;&quot;,34</list></item><item><list struct="atomic" id="14253">),41</list></item><item><list struct="atomic" id="14254"> ,32</list></item><item><list struct="atomic" id="14255">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14256"> ,32</list></item><item><list struct="atomic" id="14257"> ,32</list></item><item><list struct="atomic" id="14258"> ,32</list></item><item><list struct="atomic" id="14259"> ,32</list></item><item><list struct="atomic" id="14260"> ,32</list></item><item><list struct="atomic" id="14261"> ,32</list></item><item><list struct="atomic" id="14262"> ,32</list></item><item><list struct="atomic" id="14263"> ,32</list></item><item><list struct="atomic" id="14264"> ,32</list></item><item><list struct="atomic" id="14265"> ,32</list></item><item><list struct="atomic" id="14266">{,123</list></item><item><list struct="atomic" id="14267">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14268"> ,32</list></item><item><list struct="atomic" id="14269"> ,32</list></item><item><list struct="atomic" id="14270"> ,32</list></item><item><list struct="atomic" id="14271"> ,32</list></item><item><list struct="atomic" id="14272"> ,32</list></item><item><list struct="atomic" id="14273"> ,32</list></item><item><list struct="atomic" id="14274"> ,32</list></item><item><list struct="atomic" id="14275"> ,32</list></item><item><list struct="atomic" id="14276"> ,32</list></item><item><list struct="atomic" id="14277"> ,32</list></item><item><list struct="atomic" id="14278"> ,32</list></item><item><list struct="atomic" id="14279"> ,32</list></item><item><list struct="atomic" id="14280">r,114</list></item><item><list struct="atomic" id="14281">e,101</list></item><item><list struct="atomic" id="14282">s,115</list></item><item><list struct="atomic" id="14283">i,105</list></item><item><list struct="atomic" id="14284">z,122</list></item><item><list struct="atomic" id="14285">e,101</list></item><item><list struct="atomic" id="14286">(,40</list></item><item><list struct="atomic" id="14287">[,91</list></item><item><list struct="atomic" id="14288">(,40</list></item><item><list struct="atomic" id="14289">x,120</list></item><item><list struct="atomic" id="14290"> ,32</list></item><item><list struct="atomic" id="14291">-,45</list></item><item><list struct="atomic" id="14292"> ,32</list></item><item><list struct="atomic" id="14293">(,40</list></item><item><list struct="atomic" id="14294">2,50</list></item><item><list struct="atomic" id="14295"> ,32</list></item><item><list struct="atomic" id="14296">*,42</list></item><item><list struct="atomic" id="14297"> ,32</list></item><item><list struct="atomic" id="14298">w,119</list></item><item><list struct="atomic" id="14299">a,97</list></item><item><list struct="atomic" id="14300">l,108</list></item><item><list struct="atomic" id="14301">l,108</list></item><item><list struct="atomic" id="14302">_,95</list></item><item><list struct="atomic" id="14303">t,116</list></item><item><list struct="atomic" id="14304">h,104</list></item><item><list struct="atomic" id="14305">i,105</list></item><item><list struct="atomic" id="14306">c,99</list></item><item><list struct="atomic" id="14307">k,107</list></item><item><list struct="atomic" id="14308">n,110</list></item><item><list struct="atomic" id="14309">e,101</list></item><item><list struct="atomic" id="14310">s,115</list></item><item><list struct="atomic" id="14311">s,115</list></item><item><list struct="atomic" id="14312">),41</list></item><item><list struct="atomic" id="14313">),41</list></item><item><list struct="atomic" id="14314">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14315">(,40</list></item><item><list struct="atomic" id="14316">y,121</list></item><item><list struct="atomic" id="14317"> ,32</list></item><item><list struct="atomic" id="14318">-,45</list></item><item><list struct="atomic" id="14319"> ,32</list></item><item><list struct="atomic" id="14320">(,40</list></item><item><list struct="atomic" id="14321">2,50</list></item><item><list struct="atomic" id="14322"> ,32</list></item><item><list struct="atomic" id="14323">*,42</list></item><item><list struct="atomic" id="14324"> ,32</list></item><item><list struct="atomic" id="14325">w,119</list></item><item><list struct="atomic" id="14326">a,97</list></item><item><list struct="atomic" id="14327">l,108</list></item><item><list struct="atomic" id="14328">l,108</list></item><item><list struct="atomic" id="14329">_,95</list></item><item><list struct="atomic" id="14330">t,116</list></item><item><list struct="atomic" id="14331">h,104</list></item><item><list struct="atomic" id="14332">i,105</list></item><item><list struct="atomic" id="14333">c,99</list></item><item><list struct="atomic" id="14334">k,107</list></item><item><list struct="atomic" id="14335">n,110</list></item><item><list struct="atomic" id="14336">e,101</list></item><item><list struct="atomic" id="14337">s,115</list></item><item><list struct="atomic" id="14338">s,115</list></item><item><list struct="atomic" id="14339">),41</list></item><item><list struct="atomic" id="14340">),41</list></item><item><list struct="atomic" id="14341">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14342">(,40</list></item><item><list struct="atomic" id="14343">z,122</list></item><item><list struct="atomic" id="14344"> ,32</list></item><item><list struct="atomic" id="14345">+,43</list></item><item><list struct="atomic" id="14346"> ,32</list></item><item><list struct="atomic" id="14347">0,48</list></item><item><list struct="atomic" id="14348">.,46</list></item><item><list struct="atomic" id="14349">0,48</list></item><item><list struct="atomic" id="14350">1,49</list></item><item><list struct="atomic" id="14351">),41</list></item><item><list struct="atomic" id="14352">],93</list></item><item><list struct="atomic" id="14353">),41</list></item><item><list struct="atomic" id="14354">s,115</list></item><item><list struct="atomic" id="14355">o,111</list></item><item><list struct="atomic" id="14356">f,102</list></item><item><list struct="atomic" id="14357">t,116</list></item><item><list struct="atomic" id="14358">B,66</list></item><item><list struct="atomic" id="14359">o,111</list></item><item><list struct="atomic" id="14360">x,120</list></item><item><list struct="atomic" id="14361">S,83</list></item><item><list struct="atomic" id="14362">h,104</list></item><item><list struct="atomic" id="14363">a,97</list></item><item><list struct="atomic" id="14364">p,112</list></item><item><list struct="atomic" id="14365">e,101</list></item><item><list struct="atomic" id="14366">(,40</list></item><item><list struct="atomic" id="14367">x,120</list></item><item><list struct="atomic" id="14368">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14369">y,121</list></item><item><list struct="atomic" id="14370">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14371">z,122</list></item><item><list struct="atomic" id="14372">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14373">(,40</list></item><item><list struct="atomic" id="14374">c,99</list></item><item><list struct="atomic" id="14375">o,111</list></item><item><list struct="atomic" id="14376">r,114</list></item><item><list struct="atomic" id="14377">n,110</list></item><item><list struct="atomic" id="14378">e,101</list></item><item><list struct="atomic" id="14379">r,114</list></item><item><list struct="atomic" id="14380">_,95</list></item><item><list struct="atomic" id="14381">r,114</list></item><item><list struct="atomic" id="14382">a,97</list></item><item><list struct="atomic" id="14383">d,100</list></item><item><list struct="atomic" id="14384">i,105</list></item><item><list struct="atomic" id="14385">u,117</list></item><item><list struct="atomic" id="14386">s,115</list></item><item><list struct="atomic" id="14387"> ,32</list></item><item><list struct="atomic" id="14388">/,47</list></item><item><list struct="atomic" id="14389"> ,32</list></item><item><list struct="atomic" id="14390">1,49</list></item><item><list struct="atomic" id="14391">.,46</list></item><item><list struct="atomic" id="14392">4,52</list></item><item><list struct="atomic" id="14393">1,49</list></item><item><list struct="atomic" id="14394">4,52</list></item><item><list struct="atomic" id="14395">2,50</list></item><item><list struct="atomic" id="14396">),41</list></item><item><list struct="atomic" id="14397">),41</list></item><item><list struct="atomic" id="14398">;,59</list></item><item><list struct="atomic" id="14399">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14400"> ,32</list></item><item><list struct="atomic" id="14401"> ,32</list></item><item><list struct="atomic" id="14402"> ,32</list></item><item><list struct="atomic" id="14403"> ,32</list></item><item><list struct="atomic" id="14404"> ,32</list></item><item><list struct="atomic" id="14405"> ,32</list></item><item><list struct="atomic" id="14406"> ,32</list></item><item><list struct="atomic" id="14407"> ,32</list></item><item><list struct="atomic" id="14408"> ,32</list></item><item><list struct="atomic" id="14409"> ,32</list></item><item><list struct="atomic" id="14410">},125</list></item><item><list struct="atomic" id="14411"> ,32</list></item><item><list struct="atomic" id="14412">e,101</list></item><item><list struct="atomic" id="14413">l,108</list></item><item><list struct="atomic" id="14414">s,115</list></item><item><list struct="atomic" id="14415">e,101</list></item><item><list struct="atomic" id="14416"> ,32</list></item><item><list struct="atomic" id="14417">{,123</list></item><item><list struct="atomic" id="14418">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14419"> ,32</list></item><item><list struct="atomic" id="14420"> ,32</list></item><item><list struct="atomic" id="14421"> ,32</list></item><item><list struct="atomic" id="14422"> ,32</list></item><item><list struct="atomic" id="14423"> ,32</list></item><item><list struct="atomic" id="14424"> ,32</list></item><item><list struct="atomic" id="14425"> ,32</list></item><item><list struct="atomic" id="14426"> ,32</list></item><item><list struct="atomic" id="14427"> ,32</list></item><item><list struct="atomic" id="14428"> ,32</list></item><item><list struct="atomic" id="14429"> ,32</list></item><item><list struct="atomic" id="14430"> ,32</list></item><item><list struct="atomic" id="14431">t,116</list></item><item><list struct="atomic" id="14432">r,114</list></item><item><list struct="atomic" id="14433">a,97</list></item><item><list struct="atomic" id="14434">n,110</list></item><item><list struct="atomic" id="14435">s,115</list></item><item><list struct="atomic" id="14436">l,108</list></item><item><list struct="atomic" id="14437">a,97</list></item><item><list struct="atomic" id="14438">t,116</list></item><item><list struct="atomic" id="14439">e,101</list></item><item><list struct="atomic" id="14440">(,40</list></item><item><list struct="atomic" id="14441">[,91</list></item><item><list struct="atomic" id="14442">0,48</list></item><item><list struct="atomic" id="14443">.,46</list></item><item><list struct="atomic" id="14444">0,48</list></item><item><list struct="atomic" id="14445">1,49</list></item><item><list struct="atomic" id="14446">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14447">0,48</list></item><item><list struct="atomic" id="14448">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14449">0,48</list></item><item><list struct="atomic" id="14450">],93</list></item><item><list struct="atomic" id="14451">),41</list></item><item><list struct="atomic" id="14452">r,114</list></item><item><list struct="atomic" id="14453">e,101</list></item><item><list struct="atomic" id="14454">s,115</list></item><item><list struct="atomic" id="14455">i,105</list></item><item><list struct="atomic" id="14456">z,122</list></item><item><list struct="atomic" id="14457">e,101</list></item><item><list struct="atomic" id="14458">(,40</list></item><item><list struct="atomic" id="14459">[,91</list></item><item><list struct="atomic" id="14460">(,40</list></item><item><list struct="atomic" id="14461">x,120</list></item><item><list struct="atomic" id="14462"> ,32</list></item><item><list struct="atomic" id="14463">-,45</list></item><item><list struct="atomic" id="14464"> ,32</list></item><item><list struct="atomic" id="14465">(,40</list></item><item><list struct="atomic" id="14466">2,50</list></item><item><list struct="atomic" id="14467"> ,32</list></item><item><list struct="atomic" id="14468">*,42</list></item><item><list struct="atomic" id="14469"> ,32</list></item><item><list struct="atomic" id="14470">w,119</list></item><item><list struct="atomic" id="14471">a,97</list></item><item><list struct="atomic" id="14472">l,108</list></item><item><list struct="atomic" id="14473">l,108</list></item><item><list struct="atomic" id="14474">_,95</list></item><item><list struct="atomic" id="14475">t,116</list></item><item><list struct="atomic" id="14476">h,104</list></item><item><list struct="atomic" id="14477">i,105</list></item><item><list struct="atomic" id="14478">c,99</list></item><item><list struct="atomic" id="14479">k,107</list></item><item><list struct="atomic" id="14480">n,110</list></item><item><list struct="atomic" id="14481">e,101</list></item><item><list struct="atomic" id="14482">s,115</list></item><item><list struct="atomic" id="14483">s,115</list></item><item><list struct="atomic" id="14484">),41</list></item><item><list struct="atomic" id="14485">),41</list></item><item><list struct="atomic" id="14486">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14487">(,40</list></item><item><list struct="atomic" id="14488">y,121</list></item><item><list struct="atomic" id="14489"> ,32</list></item><item><list struct="atomic" id="14490">-,45</list></item><item><list struct="atomic" id="14491"> ,32</list></item><item><list struct="atomic" id="14492">(,40</list></item><item><list struct="atomic" id="14493">2,50</list></item><item><list struct="atomic" id="14494"> ,32</list></item><item><list struct="atomic" id="14495">*,42</list></item><item><list struct="atomic" id="14496"> ,32</list></item><item><list struct="atomic" id="14497">w,119</list></item><item><list struct="atomic" id="14498">a,97</list></item><item><list struct="atomic" id="14499">l,108</list></item><item><list struct="atomic" id="14500">l,108</list></item><item><list struct="atomic" id="14501">_,95</list></item><item><list struct="atomic" id="14502">t,116</list></item><item><list struct="atomic" id="14503">h,104</list></item><item><list struct="atomic" id="14504">i,105</list></item><item><list struct="atomic" id="14505">c,99</list></item><item><list struct="atomic" id="14506">k,107</list></item><item><list struct="atomic" id="14507">n,110</list></item><item><list struct="atomic" id="14508">e,101</list></item><item><list struct="atomic" id="14509">s,115</list></item><item><list struct="atomic" id="14510">s,115</list></item><item><list struct="atomic" id="14511">),41</list></item><item><list struct="atomic" id="14512">),41</list></item><item><list struct="atomic" id="14513">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14514">(,40</list></item><item><list struct="atomic" id="14515">z,122</list></item><item><list struct="atomic" id="14516"> ,32</list></item><item><list struct="atomic" id="14517">+,43</list></item><item><list struct="atomic" id="14518"> ,32</list></item><item><list struct="atomic" id="14519">0,48</list></item><item><list struct="atomic" id="14520">.,46</list></item><item><list struct="atomic" id="14521">0,48</list></item><item><list struct="atomic" id="14522">1,49</list></item><item><list struct="atomic" id="14523">),41</list></item><item><list struct="atomic" id="14524">],93</list></item><item><list struct="atomic" id="14525">),41</list></item><item><list struct="atomic" id="14526">s,115</list></item><item><list struct="atomic" id="14527">o,111</list></item><item><list struct="atomic" id="14528">f,102</list></item><item><list struct="atomic" id="14529">t,116</list></item><item><list struct="atomic" id="14530">B,66</list></item><item><list struct="atomic" id="14531">o,111</list></item><item><list struct="atomic" id="14532">x,120</list></item><item><list struct="atomic" id="14533">S,83</list></item><item><list struct="atomic" id="14534">h,104</list></item><item><list struct="atomic" id="14535">a,97</list></item><item><list struct="atomic" id="14536">p,112</list></item><item><list struct="atomic" id="14537">e,101</list></item><item><list struct="atomic" id="14538">(,40</list></item><item><list struct="atomic" id="14539">x,120</list></item><item><list struct="atomic" id="14540">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14541">y,121</list></item><item><list struct="atomic" id="14542">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14543">z,122</list></item><item><list struct="atomic" id="14544">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14545">(,40</list></item><item><list struct="atomic" id="14546">c,99</list></item><item><list struct="atomic" id="14547">o,111</list></item><item><list struct="atomic" id="14548">r,114</list></item><item><list struct="atomic" id="14549">n,110</list></item><item><list struct="atomic" id="14550">e,101</list></item><item><list struct="atomic" id="14551">r,114</list></item><item><list struct="atomic" id="14552">_,95</list></item><item><list struct="atomic" id="14553">r,114</list></item><item><list struct="atomic" id="14554">a,97</list></item><item><list struct="atomic" id="14555">d,100</list></item><item><list struct="atomic" id="14556">i,105</list></item><item><list struct="atomic" id="14557">u,117</list></item><item><list struct="atomic" id="14558">s,115</list></item><item><list struct="atomic" id="14559"> ,32</list></item><item><list struct="atomic" id="14560">/,47</list></item><item><list struct="atomic" id="14561"> ,32</list></item><item><list struct="atomic" id="14562">1,49</list></item><item><list struct="atomic" id="14563">.,46</list></item><item><list struct="atomic" id="14564">4,52</list></item><item><list struct="atomic" id="14565">1,49</list></item><item><list struct="atomic" id="14566">4,52</list></item><item><list struct="atomic" id="14567">2,50</list></item><item><list struct="atomic" id="14568">),41</list></item><item><list struct="atomic" id="14569">),41</list></item><item><list struct="atomic" id="14570">;,59</list></item><item><list struct="atomic" id="14571">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14572"> ,32</list></item><item><list struct="atomic" id="14573"> ,32</list></item><item><list struct="atomic" id="14574"> ,32</list></item><item><list struct="atomic" id="14575"> ,32</list></item><item><list struct="atomic" id="14576"> ,32</list></item><item><list struct="atomic" id="14577"> ,32</list></item><item><list struct="atomic" id="14578"> ,32</list></item><item><list struct="atomic" id="14579"> ,32</list></item><item><list struct="atomic" id="14580"> ,32</list></item><item><list struct="atomic" id="14581"> ,32</list></item><item><list struct="atomic" id="14582"> ,32</list></item><item><list struct="atomic" id="14583"> ,32</list></item><item><list struct="atomic" id="14584">t,116</list></item><item><list struct="atomic" id="14585">r,114</list></item><item><list struct="atomic" id="14586">a,97</list></item><item><list struct="atomic" id="14587">n,110</list></item><item><list struct="atomic" id="14588">s,115</list></item><item><list struct="atomic" id="14589">l,108</list></item><item><list struct="atomic" id="14590">a,97</list></item><item><list struct="atomic" id="14591">t,116</list></item><item><list struct="atomic" id="14592">e,101</list></item><item><list struct="atomic" id="14593">(,40</list></item><item><list struct="atomic" id="14594">[,91</list></item><item><list struct="atomic" id="14595">-,45</list></item><item><list struct="atomic" id="14596">0,48</list></item><item><list struct="atomic" id="14597">.,46</list></item><item><list struct="atomic" id="14598">0,48</list></item><item><list struct="atomic" id="14599">1,49</list></item><item><list struct="atomic" id="14600">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14601">0,48</list></item><item><list struct="atomic" id="14602">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14603">0,48</list></item><item><list struct="atomic" id="14604">],93</list></item><item><list struct="atomic" id="14605">),41</list></item><item><list struct="atomic" id="14606">r,114</list></item><item><list struct="atomic" id="14607">e,101</list></item><item><list struct="atomic" id="14608">s,115</list></item><item><list struct="atomic" id="14609">i,105</list></item><item><list struct="atomic" id="14610">z,122</list></item><item><list struct="atomic" id="14611">e,101</list></item><item><list struct="atomic" id="14612">(,40</list></item><item><list struct="atomic" id="14613">[,91</list></item><item><list struct="atomic" id="14614">(,40</list></item><item><list struct="atomic" id="14615">x,120</list></item><item><list struct="atomic" id="14616"> ,32</list></item><item><list struct="atomic" id="14617">-,45</list></item><item><list struct="atomic" id="14618"> ,32</list></item><item><list struct="atomic" id="14619">(,40</list></item><item><list struct="atomic" id="14620">2,50</list></item><item><list struct="atomic" id="14621"> ,32</list></item><item><list struct="atomic" id="14622">*,42</list></item><item><list struct="atomic" id="14623"> ,32</list></item><item><list struct="atomic" id="14624">w,119</list></item><item><list struct="atomic" id="14625">a,97</list></item><item><list struct="atomic" id="14626">l,108</list></item><item><list struct="atomic" id="14627">l,108</list></item><item><list struct="atomic" id="14628">_,95</list></item><item><list struct="atomic" id="14629">t,116</list></item><item><list struct="atomic" id="14630">h,104</list></item><item><list struct="atomic" id="14631">i,105</list></item><item><list struct="atomic" id="14632">c,99</list></item><item><list struct="atomic" id="14633">k,107</list></item><item><list struct="atomic" id="14634">n,110</list></item><item><list struct="atomic" id="14635">e,101</list></item><item><list struct="atomic" id="14636">s,115</list></item><item><list struct="atomic" id="14637">s,115</list></item><item><list struct="atomic" id="14638">),41</list></item><item><list struct="atomic" id="14639">),41</list></item><item><list struct="atomic" id="14640">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14641">(,40</list></item><item><list struct="atomic" id="14642">y,121</list></item><item><list struct="atomic" id="14643"> ,32</list></item><item><list struct="atomic" id="14644">-,45</list></item><item><list struct="atomic" id="14645"> ,32</list></item><item><list struct="atomic" id="14646">(,40</list></item><item><list struct="atomic" id="14647">2,50</list></item><item><list struct="atomic" id="14648"> ,32</list></item><item><list struct="atomic" id="14649">*,42</list></item><item><list struct="atomic" id="14650"> ,32</list></item><item><list struct="atomic" id="14651">w,119</list></item><item><list struct="atomic" id="14652">a,97</list></item><item><list struct="atomic" id="14653">l,108</list></item><item><list struct="atomic" id="14654">l,108</list></item><item><list struct="atomic" id="14655">_,95</list></item><item><list struct="atomic" id="14656">t,116</list></item><item><list struct="atomic" id="14657">h,104</list></item><item><list struct="atomic" id="14658">i,105</list></item><item><list struct="atomic" id="14659">c,99</list></item><item><list struct="atomic" id="14660">k,107</list></item><item><list struct="atomic" id="14661">n,110</list></item><item><list struct="atomic" id="14662">e,101</list></item><item><list struct="atomic" id="14663">s,115</list></item><item><list struct="atomic" id="14664">s,115</list></item><item><list struct="atomic" id="14665">),41</list></item><item><list struct="atomic" id="14666">),41</list></item><item><list struct="atomic" id="14667">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14668">(,40</list></item><item><list struct="atomic" id="14669">z,122</list></item><item><list struct="atomic" id="14670"> ,32</list></item><item><list struct="atomic" id="14671">+,43</list></item><item><list struct="atomic" id="14672"> ,32</list></item><item><list struct="atomic" id="14673">0,48</list></item><item><list struct="atomic" id="14674">.,46</list></item><item><list struct="atomic" id="14675">0,48</list></item><item><list struct="atomic" id="14676">1,49</list></item><item><list struct="atomic" id="14677">),41</list></item><item><list struct="atomic" id="14678">],93</list></item><item><list struct="atomic" id="14679">),41</list></item><item><list struct="atomic" id="14680">s,115</list></item><item><list struct="atomic" id="14681">o,111</list></item><item><list struct="atomic" id="14682">f,102</list></item><item><list struct="atomic" id="14683">t,116</list></item><item><list struct="atomic" id="14684">B,66</list></item><item><list struct="atomic" id="14685">o,111</list></item><item><list struct="atomic" id="14686">x,120</list></item><item><list struct="atomic" id="14687">S,83</list></item><item><list struct="atomic" id="14688">h,104</list></item><item><list struct="atomic" id="14689">a,97</list></item><item><list struct="atomic" id="14690">p,112</list></item><item><list struct="atomic" id="14691">e,101</list></item><item><list struct="atomic" id="14692">(,40</list></item><item><list struct="atomic" id="14693">x,120</list></item><item><list struct="atomic" id="14694">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14695">y,121</list></item><item><list struct="atomic" id="14696">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14697">z,122</list></item><item><list struct="atomic" id="14698">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14699">(,40</list></item><item><list struct="atomic" id="14700">c,99</list></item><item><list struct="atomic" id="14701">o,111</list></item><item><list struct="atomic" id="14702">r,114</list></item><item><list struct="atomic" id="14703">n,110</list></item><item><list struct="atomic" id="14704">e,101</list></item><item><list struct="atomic" id="14705">r,114</list></item><item><list struct="atomic" id="14706">_,95</list></item><item><list struct="atomic" id="14707">r,114</list></item><item><list struct="atomic" id="14708">a,97</list></item><item><list struct="atomic" id="14709">d,100</list></item><item><list struct="atomic" id="14710">i,105</list></item><item><list struct="atomic" id="14711">u,117</list></item><item><list struct="atomic" id="14712">s,115</list></item><item><list struct="atomic" id="14713"> ,32</list></item><item><list struct="atomic" id="14714">/,47</list></item><item><list struct="atomic" id="14715"> ,32</list></item><item><list struct="atomic" id="14716">1,49</list></item><item><list struct="atomic" id="14717">.,46</list></item><item><list struct="atomic" id="14718">4,52</list></item><item><list struct="atomic" id="14719">1,49</list></item><item><list struct="atomic" id="14720">4,52</list></item><item><list struct="atomic" id="14721">2,50</list></item><item><list struct="atomic" id="14722">),41</list></item><item><list struct="atomic" id="14723">),41</list></item><item><list struct="atomic" id="14724">;,59</list></item><item><list struct="atomic" id="14725">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14726"> ,32</list></item><item><list struct="atomic" id="14727"> ,32</list></item><item><list struct="atomic" id="14728"> ,32</list></item><item><list struct="atomic" id="14729"> ,32</list></item><item><list struct="atomic" id="14730"> ,32</list></item><item><list struct="atomic" id="14731"> ,32</list></item><item><list struct="atomic" id="14732"> ,32</list></item><item><list struct="atomic" id="14733"> ,32</list></item><item><list struct="atomic" id="14734"> ,32</list></item><item><list struct="atomic" id="14735"> ,32</list></item><item><list struct="atomic" id="14736"> ,32</list></item><item><list struct="atomic" id="14737"> ,32</list></item><item><list struct="atomic" id="14738">t,116</list></item><item><list struct="atomic" id="14739">r,114</list></item><item><list struct="atomic" id="14740">a,97</list></item><item><list struct="atomic" id="14741">n,110</list></item><item><list struct="atomic" id="14742">s,115</list></item><item><list struct="atomic" id="14743">l,108</list></item><item><list struct="atomic" id="14744">a,97</list></item><item><list struct="atomic" id="14745">t,116</list></item><item><list struct="atomic" id="14746">e,101</list></item><item><list struct="atomic" id="14747">(,40</list></item><item><list struct="atomic" id="14748">[,91</list></item><item><list struct="atomic" id="14749">0,48</list></item><item><list struct="atomic" id="14750">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14751">0,48</list></item><item><list struct="atomic" id="14752">.,46</list></item><item><list struct="atomic" id="14753">0,48</list></item><item><list struct="atomic" id="14754">1,49</list></item><item><list struct="atomic" id="14755">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14756">0,48</list></item><item><list struct="atomic" id="14757">],93</list></item><item><list struct="atomic" id="14758">),41</list></item><item><list struct="atomic" id="14759">r,114</list></item><item><list struct="atomic" id="14760">e,101</list></item><item><list struct="atomic" id="14761">s,115</list></item><item><list struct="atomic" id="14762">i,105</list></item><item><list struct="atomic" id="14763">z,122</list></item><item><list struct="atomic" id="14764">e,101</list></item><item><list struct="atomic" id="14765">(,40</list></item><item><list struct="atomic" id="14766">[,91</list></item><item><list struct="atomic" id="14767">(,40</list></item><item><list struct="atomic" id="14768">x,120</list></item><item><list struct="atomic" id="14769"> ,32</list></item><item><list struct="atomic" id="14770">-,45</list></item><item><list struct="atomic" id="14771"> ,32</list></item><item><list struct="atomic" id="14772">(,40</list></item><item><list struct="atomic" id="14773">2,50</list></item><item><list struct="atomic" id="14774"> ,32</list></item><item><list struct="atomic" id="14775">*,42</list></item><item><list struct="atomic" id="14776"> ,32</list></item><item><list struct="atomic" id="14777">w,119</list></item><item><list struct="atomic" id="14778">a,97</list></item><item><list struct="atomic" id="14779">l,108</list></item><item><list struct="atomic" id="14780">l,108</list></item><item><list struct="atomic" id="14781">_,95</list></item><item><list struct="atomic" id="14782">t,116</list></item><item><list struct="atomic" id="14783">h,104</list></item><item><list struct="atomic" id="14784">i,105</list></item><item><list struct="atomic" id="14785">c,99</list></item><item><list struct="atomic" id="14786">k,107</list></item><item><list struct="atomic" id="14787">n,110</list></item><item><list struct="atomic" id="14788">e,101</list></item><item><list struct="atomic" id="14789">s,115</list></item><item><list struct="atomic" id="14790">s,115</list></item><item><list struct="atomic" id="14791">),41</list></item><item><list struct="atomic" id="14792">),41</list></item><item><list struct="atomic" id="14793">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14794">(,40</list></item><item><list struct="atomic" id="14795">y,121</list></item><item><list struct="atomic" id="14796"> ,32</list></item><item><list struct="atomic" id="14797">-,45</list></item><item><list struct="atomic" id="14798"> ,32</list></item><item><list struct="atomic" id="14799">(,40</list></item><item><list struct="atomic" id="14800">2,50</list></item><item><list struct="atomic" id="14801"> ,32</list></item><item><list struct="atomic" id="14802">*,42</list></item><item><list struct="atomic" id="14803"> ,32</list></item><item><list struct="atomic" id="14804">w,119</list></item><item><list struct="atomic" id="14805">a,97</list></item><item><list struct="atomic" id="14806">l,108</list></item><item><list struct="atomic" id="14807">l,108</list></item><item><list struct="atomic" id="14808">_,95</list></item><item><list struct="atomic" id="14809">t,116</list></item><item><list struct="atomic" id="14810">h,104</list></item><item><list struct="atomic" id="14811">i,105</list></item><item><list struct="atomic" id="14812">c,99</list></item><item><list struct="atomic" id="14813">k,107</list></item><item><list struct="atomic" id="14814">n,110</list></item><item><list struct="atomic" id="14815">e,101</list></item><item><list struct="atomic" id="14816">s,115</list></item><item><list struct="atomic" id="14817">s,115</list></item><item><list struct="atomic" id="14818">),41</list></item><item><list struct="atomic" id="14819">),41</list></item><item><list struct="atomic" id="14820">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14821">(,40</list></item><item><list struct="atomic" id="14822">z,122</list></item><item><list struct="atomic" id="14823"> ,32</list></item><item><list struct="atomic" id="14824">+,43</list></item><item><list struct="atomic" id="14825"> ,32</list></item><item><list struct="atomic" id="14826">0,48</list></item><item><list struct="atomic" id="14827">.,46</list></item><item><list struct="atomic" id="14828">0,48</list></item><item><list struct="atomic" id="14829">1,49</list></item><item><list struct="atomic" id="14830">),41</list></item><item><list struct="atomic" id="14831">],93</list></item><item><list struct="atomic" id="14832">),41</list></item><item><list struct="atomic" id="14833">s,115</list></item><item><list struct="atomic" id="14834">o,111</list></item><item><list struct="atomic" id="14835">f,102</list></item><item><list struct="atomic" id="14836">t,116</list></item><item><list struct="atomic" id="14837">B,66</list></item><item><list struct="atomic" id="14838">o,111</list></item><item><list struct="atomic" id="14839">x,120</list></item><item><list struct="atomic" id="14840">S,83</list></item><item><list struct="atomic" id="14841">h,104</list></item><item><list struct="atomic" id="14842">a,97</list></item><item><list struct="atomic" id="14843">p,112</list></item><item><list struct="atomic" id="14844">e,101</list></item><item><list struct="atomic" id="14845">(,40</list></item><item><list struct="atomic" id="14846">x,120</list></item><item><list struct="atomic" id="14847">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14848">y,121</list></item><item><list struct="atomic" id="14849">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14850">z,122</list></item><item><list struct="atomic" id="14851">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14852">(,40</list></item><item><list struct="atomic" id="14853">c,99</list></item><item><list struct="atomic" id="14854">o,111</list></item><item><list struct="atomic" id="14855">r,114</list></item><item><list struct="atomic" id="14856">n,110</list></item><item><list struct="atomic" id="14857">e,101</list></item><item><list struct="atomic" id="14858">r,114</list></item><item><list struct="atomic" id="14859">_,95</list></item><item><list struct="atomic" id="14860">r,114</list></item><item><list struct="atomic" id="14861">a,97</list></item><item><list struct="atomic" id="14862">d,100</list></item><item><list struct="atomic" id="14863">i,105</list></item><item><list struct="atomic" id="14864">u,117</list></item><item><list struct="atomic" id="14865">s,115</list></item><item><list struct="atomic" id="14866"> ,32</list></item><item><list struct="atomic" id="14867">/,47</list></item><item><list struct="atomic" id="14868"> ,32</list></item><item><list struct="atomic" id="14869">1,49</list></item><item><list struct="atomic" id="14870">.,46</list></item><item><list struct="atomic" id="14871">4,52</list></item><item><list struct="atomic" id="14872">1,49</list></item><item><list struct="atomic" id="14873">4,52</list></item><item><list struct="atomic" id="14874">2,50</list></item><item><list struct="atomic" id="14875">),41</list></item><item><list struct="atomic" id="14876">),41</list></item><item><list struct="atomic" id="14877">;,59</list></item><item><list struct="atomic" id="14878">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="14879"> ,32</list></item><item><list struct="atomic" id="14880"> ,32</list></item><item><list struct="atomic" id="14881"> ,32</list></item><item><list struct="atomic" id="14882"> ,32</list></item><item><list struct="atomic" id="14883"> ,32</list></item><item><list struct="atomic" id="14884"> ,32</list></item><item><list struct="atomic" id="14885"> ,32</list></item><item><list struct="atomic" id="14886"> ,32</list></item><item><list struct="atomic" id="14887"> ,32</list></item><item><list struct="atomic" id="14888"> ,32</list></item><item><list struct="atomic" id="14889"> ,32</list></item><item><list struct="atomic" id="14890"> ,32</list></item><item><list struct="atomic" id="14891">t,116</list></item><item><list struct="atomic" id="14892">r,114</list></item><item><list struct="atomic" id="14893">a,97</list></item><item><list struct="atomic" id="14894">n,110</list></item><item><list struct="atomic" id="14895">s,115</list></item><item><list struct="atomic" id="14896">l,108</list></item><item><list struct="atomic" id="14897">a,97</list></item><item><list struct="atomic" id="14898">t,116</list></item><item><list struct="atomic" id="14899">e,101</list></item><item><list struct="atomic" id="14900">(,40</list></item><item><list struct="atomic" id="14901">[,91</list></item><item><list struct="atomic" id="14902">0,48</list></item><item><list struct="atomic" id="14903">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14904">-,45</list></item><item><list struct="atomic" id="14905">0,48</list></item><item><list struct="atomic" id="14906">.,46</list></item><item><list struct="atomic" id="14907">0,48</list></item><item><list struct="atomic" id="14908">1,49</list></item><item><list struct="atomic" id="14909">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14910">0,48</list></item><item><list struct="atomic" id="14911">],93</list></item><item><list struct="atomic" id="14912">),41</list></item><item><list struct="atomic" id="14913">r,114</list></item><item><list struct="atomic" id="14914">e,101</list></item><item><list struct="atomic" id="14915">s,115</list></item><item><list struct="atomic" id="14916">i,105</list></item><item><list struct="atomic" id="14917">z,122</list></item><item><list struct="atomic" id="14918">e,101</list></item><item><list struct="atomic" id="14919">(,40</list></item><item><list struct="atomic" id="14920">[,91</list></item><item><list struct="atomic" id="14921">(,40</list></item><item><list struct="atomic" id="14922">x,120</list></item><item><list struct="atomic" id="14923"> ,32</list></item><item><list struct="atomic" id="14924">-,45</list></item><item><list struct="atomic" id="14925"> ,32</list></item><item><list struct="atomic" id="14926">(,40</list></item><item><list struct="atomic" id="14927">2,50</list></item><item><list struct="atomic" id="14928"> ,32</list></item><item><list struct="atomic" id="14929">*,42</list></item><item><list struct="atomic" id="14930"> ,32</list></item><item><list struct="atomic" id="14931">w,119</list></item><item><list struct="atomic" id="14932">a,97</list></item><item><list struct="atomic" id="14933">l,108</list></item><item><list struct="atomic" id="14934">l,108</list></item><item><list struct="atomic" id="14935">_,95</list></item><item><list struct="atomic" id="14936">t,116</list></item><item><list struct="atomic" id="14937">h,104</list></item><item><list struct="atomic" id="14938">i,105</list></item><item><list struct="atomic" id="14939">c,99</list></item><item><list struct="atomic" id="14940">k,107</list></item><item><list struct="atomic" id="14941">n,110</list></item><item><list struct="atomic" id="14942">e,101</list></item><item><list struct="atomic" id="14943">s,115</list></item><item><list struct="atomic" id="14944">s,115</list></item><item><list struct="atomic" id="14945">),41</list></item><item><list struct="atomic" id="14946">),41</list></item><item><list struct="atomic" id="14947">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14948">(,40</list></item><item><list struct="atomic" id="14949">y,121</list></item><item><list struct="atomic" id="14950"> ,32</list></item><item><list struct="atomic" id="14951">-,45</list></item><item><list struct="atomic" id="14952"> ,32</list></item><item><list struct="atomic" id="14953">(,40</list></item><item><list struct="atomic" id="14954">2,50</list></item><item><list struct="atomic" id="14955"> ,32</list></item><item><list struct="atomic" id="14956">*,42</list></item><item><list struct="atomic" id="14957"> ,32</list></item><item><list struct="atomic" id="14958">w,119</list></item><item><list struct="atomic" id="14959">a,97</list></item><item><list struct="atomic" id="14960">l,108</list></item><item><list struct="atomic" id="14961">l,108</list></item><item><list struct="atomic" id="14962">_,95</list></item><item><list struct="atomic" id="14963">t,116</list></item><item><list struct="atomic" id="14964">h,104</list></item><item><list struct="atomic" id="14965">i,105</list></item><item><list struct="atomic" id="14966">c,99</list></item><item><list struct="atomic" id="14967">k,107</list></item><item><list struct="atomic" id="14968">n,110</list></item><item><list struct="atomic" id="14969">e,101</list></item><item><list struct="atomic" id="14970">s,115</list></item><item><list struct="atomic" id="14971">s,115</list></item><item><list struct="atomic" id="14972">),41</list></item><item><list struct="atomic" id="14973">),41</list></item><item><list struct="atomic" id="14974">&quot;,&quot;,44</list></item><item><list struct="atomic" id="14975">(,40</list></item><item><list struct="atomic" id="14976">z,122</list></item><item><list struct="atomic" id="14977"> ,32</list></item><item><list struct="atomic" id="14978">+,43</list></item><item><list struct="atomic" id="14979"> ,32</list></item><item><list struct="atomic" id="14980">0,48</list></item><item><list struct="atomic" id="14981">.,46</list></item><item><list struct="atomic" id="14982">0,48</list></item><item><list struct="atomic" id="14983">1,49</list></item><item><list struct="atomic" id="14984">),41</list></item><item><list struct="atomic" id="14985">],93</list></item><item><list struct="atomic" id="14986">),41</list></item><item><list struct="atomic" id="14987">s,115</list></item><item><list struct="atomic" id="14988">o,111</list></item><item><list struct="atomic" id="14989">f,102</list></item><item><list struct="atomic" id="14990">t,116</list></item><item><list struct="atomic" id="14991">B,66</list></item><item><list struct="atomic" id="14992">o,111</list></item><item><list struct="atomic" id="14993">x,120</list></item><item><list struct="atomic" id="14994">S,83</list></item><item><list struct="atomic" id="14995">h,104</list></item><item><list struct="atomic" id="14996">a,97</list></item><item><list struct="atomic" id="14997">p,112</list></item><item><list struct="atomic" id="14998">e,101</list></item><item><list struct="atomic" id="14999">(,40</list></item><item><list struct="atomic" id="15000">x,120</list></item><item><list struct="atomic" id="15001">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15002">y,121</list></item><item><list struct="atomic" id="15003">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15004">z,122</list></item><item><list struct="atomic" id="15005">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15006">(,40</list></item><item><list struct="atomic" id="15007">c,99</list></item><item><list struct="atomic" id="15008">o,111</list></item><item><list struct="atomic" id="15009">r,114</list></item><item><list struct="atomic" id="15010">n,110</list></item><item><list struct="atomic" id="15011">e,101</list></item><item><list struct="atomic" id="15012">r,114</list></item><item><list struct="atomic" id="15013">_,95</list></item><item><list struct="atomic" id="15014">r,114</list></item><item><list struct="atomic" id="15015">a,97</list></item><item><list struct="atomic" id="15016">d,100</list></item><item><list struct="atomic" id="15017">i,105</list></item><item><list struct="atomic" id="15018">u,117</list></item><item><list struct="atomic" id="15019">s,115</list></item><item><list struct="atomic" id="15020"> ,32</list></item><item><list struct="atomic" id="15021">/,47</list></item><item><list struct="atomic" id="15022"> ,32</list></item><item><list struct="atomic" id="15023">1,49</list></item><item><list struct="atomic" id="15024">.,46</list></item><item><list struct="atomic" id="15025">4,52</list></item><item><list struct="atomic" id="15026">1,49</list></item><item><list struct="atomic" id="15027">4,52</list></item><item><list struct="atomic" id="15028">2,50</list></item><item><list struct="atomic" id="15029">),41</list></item><item><list struct="atomic" id="15030">),41</list></item><item><list struct="atomic" id="15031">;,59</list></item><item><list struct="atomic" id="15032">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15033"> ,32</list></item><item><list struct="atomic" id="15034"> ,32</list></item><item><list struct="atomic" id="15035"> ,32</list></item><item><list struct="atomic" id="15036"> ,32</list></item><item><list struct="atomic" id="15037"> ,32</list></item><item><list struct="atomic" id="15038"> ,32</list></item><item><list struct="atomic" id="15039"> ,32</list></item><item><list struct="atomic" id="15040"> ,32</list></item><item><list struct="atomic" id="15041"> ,32</list></item><item><list struct="atomic" id="15042"> ,32</list></item><item><list struct="atomic" id="15043"> ,32</list></item><item><list struct="atomic" id="15044"> ,32</list></item><item><list struct="atomic" id="15045">t,116</list></item><item><list struct="atomic" id="15046">r,114</list></item><item><list struct="atomic" id="15047">a,97</list></item><item><list struct="atomic" id="15048">n,110</list></item><item><list struct="atomic" id="15049">s,115</list></item><item><list struct="atomic" id="15050">l,108</list></item><item><list struct="atomic" id="15051">a,97</list></item><item><list struct="atomic" id="15052">t,116</list></item><item><list struct="atomic" id="15053">e,101</list></item><item><list struct="atomic" id="15054">(,40</list></item><item><list struct="atomic" id="15055">[,91</list></item><item><list struct="atomic" id="15056">0,48</list></item><item><list struct="atomic" id="15057">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15058">0,48</list></item><item><list struct="atomic" id="15059">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15060">0,48</list></item><item><list struct="atomic" id="15061">.,46</list></item><item><list struct="atomic" id="15062">0,48</list></item><item><list struct="atomic" id="15063">1,49</list></item><item><list struct="atomic" id="15064">],93</list></item><item><list struct="atomic" id="15065">),41</list></item><item><list struct="atomic" id="15066">r,114</list></item><item><list struct="atomic" id="15067">e,101</list></item><item><list struct="atomic" id="15068">s,115</list></item><item><list struct="atomic" id="15069">i,105</list></item><item><list struct="atomic" id="15070">z,122</list></item><item><list struct="atomic" id="15071">e,101</list></item><item><list struct="atomic" id="15072">(,40</list></item><item><list struct="atomic" id="15073">[,91</list></item><item><list struct="atomic" id="15074">(,40</list></item><item><list struct="atomic" id="15075">x,120</list></item><item><list struct="atomic" id="15076"> ,32</list></item><item><list struct="atomic" id="15077">-,45</list></item><item><list struct="atomic" id="15078"> ,32</list></item><item><list struct="atomic" id="15079">(,40</list></item><item><list struct="atomic" id="15080">2,50</list></item><item><list struct="atomic" id="15081"> ,32</list></item><item><list struct="atomic" id="15082">*,42</list></item><item><list struct="atomic" id="15083"> ,32</list></item><item><list struct="atomic" id="15084">w,119</list></item><item><list struct="atomic" id="15085">a,97</list></item><item><list struct="atomic" id="15086">l,108</list></item><item><list struct="atomic" id="15087">l,108</list></item><item><list struct="atomic" id="15088">_,95</list></item><item><list struct="atomic" id="15089">t,116</list></item><item><list struct="atomic" id="15090">h,104</list></item><item><list struct="atomic" id="15091">i,105</list></item><item><list struct="atomic" id="15092">c,99</list></item><item><list struct="atomic" id="15093">k,107</list></item><item><list struct="atomic" id="15094">n,110</list></item><item><list struct="atomic" id="15095">e,101</list></item><item><list struct="atomic" id="15096">s,115</list></item><item><list struct="atomic" id="15097">s,115</list></item><item><list struct="atomic" id="15098">),41</list></item><item><list struct="atomic" id="15099">),41</list></item><item><list struct="atomic" id="15100">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15101">(,40</list></item><item><list struct="atomic" id="15102">y,121</list></item><item><list struct="atomic" id="15103"> ,32</list></item><item><list struct="atomic" id="15104">-,45</list></item><item><list struct="atomic" id="15105"> ,32</list></item><item><list struct="atomic" id="15106">(,40</list></item><item><list struct="atomic" id="15107">2,50</list></item><item><list struct="atomic" id="15108"> ,32</list></item><item><list struct="atomic" id="15109">*,42</list></item><item><list struct="atomic" id="15110"> ,32</list></item><item><list struct="atomic" id="15111">w,119</list></item><item><list struct="atomic" id="15112">a,97</list></item><item><list struct="atomic" id="15113">l,108</list></item><item><list struct="atomic" id="15114">l,108</list></item><item><list struct="atomic" id="15115">_,95</list></item><item><list struct="atomic" id="15116">t,116</list></item><item><list struct="atomic" id="15117">h,104</list></item><item><list struct="atomic" id="15118">i,105</list></item><item><list struct="atomic" id="15119">c,99</list></item><item><list struct="atomic" id="15120">k,107</list></item><item><list struct="atomic" id="15121">n,110</list></item><item><list struct="atomic" id="15122">e,101</list></item><item><list struct="atomic" id="15123">s,115</list></item><item><list struct="atomic" id="15124">s,115</list></item><item><list struct="atomic" id="15125">),41</list></item><item><list struct="atomic" id="15126">),41</list></item><item><list struct="atomic" id="15127">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15128">(,40</list></item><item><list struct="atomic" id="15129">z,122</list></item><item><list struct="atomic" id="15130"> ,32</list></item><item><list struct="atomic" id="15131">+,43</list></item><item><list struct="atomic" id="15132"> ,32</list></item><item><list struct="atomic" id="15133">0,48</list></item><item><list struct="atomic" id="15134">.,46</list></item><item><list struct="atomic" id="15135">0,48</list></item><item><list struct="atomic" id="15136">1,49</list></item><item><list struct="atomic" id="15137">),41</list></item><item><list struct="atomic" id="15138">],93</list></item><item><list struct="atomic" id="15139">),41</list></item><item><list struct="atomic" id="15140">s,115</list></item><item><list struct="atomic" id="15141">o,111</list></item><item><list struct="atomic" id="15142">f,102</list></item><item><list struct="atomic" id="15143">t,116</list></item><item><list struct="atomic" id="15144">B,66</list></item><item><list struct="atomic" id="15145">o,111</list></item><item><list struct="atomic" id="15146">x,120</list></item><item><list struct="atomic" id="15147">S,83</list></item><item><list struct="atomic" id="15148">h,104</list></item><item><list struct="atomic" id="15149">a,97</list></item><item><list struct="atomic" id="15150">p,112</list></item><item><list struct="atomic" id="15151">e,101</list></item><item><list struct="atomic" id="15152">(,40</list></item><item><list struct="atomic" id="15153">x,120</list></item><item><list struct="atomic" id="15154">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15155">y,121</list></item><item><list struct="atomic" id="15156">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15157">z,122</list></item><item><list struct="atomic" id="15158">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15159">(,40</list></item><item><list struct="atomic" id="15160">c,99</list></item><item><list struct="atomic" id="15161">o,111</list></item><item><list struct="atomic" id="15162">r,114</list></item><item><list struct="atomic" id="15163">n,110</list></item><item><list struct="atomic" id="15164">e,101</list></item><item><list struct="atomic" id="15165">r,114</list></item><item><list struct="atomic" id="15166">_,95</list></item><item><list struct="atomic" id="15167">r,114</list></item><item><list struct="atomic" id="15168">a,97</list></item><item><list struct="atomic" id="15169">d,100</list></item><item><list struct="atomic" id="15170">i,105</list></item><item><list struct="atomic" id="15171">u,117</list></item><item><list struct="atomic" id="15172">s,115</list></item><item><list struct="atomic" id="15173"> ,32</list></item><item><list struct="atomic" id="15174">/,47</list></item><item><list struct="atomic" id="15175"> ,32</list></item><item><list struct="atomic" id="15176">1,49</list></item><item><list struct="atomic" id="15177">.,46</list></item><item><list struct="atomic" id="15178">4,52</list></item><item><list struct="atomic" id="15179">1,49</list></item><item><list struct="atomic" id="15180">4,52</list></item><item><list struct="atomic" id="15181">2,50</list></item><item><list struct="atomic" id="15182">),41</list></item><item><list struct="atomic" id="15183">),41</list></item><item><list struct="atomic" id="15184">;,59</list></item><item><list struct="atomic" id="15185">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15186"> ,32</list></item><item><list struct="atomic" id="15187"> ,32</list></item><item><list struct="atomic" id="15188"> ,32</list></item><item><list struct="atomic" id="15189"> ,32</list></item><item><list struct="atomic" id="15190"> ,32</list></item><item><list struct="atomic" id="15191"> ,32</list></item><item><list struct="atomic" id="15192"> ,32</list></item><item><list struct="atomic" id="15193"> ,32</list></item><item><list struct="atomic" id="15194"> ,32</list></item><item><list struct="atomic" id="15195"> ,32</list></item><item><list struct="atomic" id="15196"> ,32</list></item><item><list struct="atomic" id="15197"> ,32</list></item><item><list struct="atomic" id="15198">t,116</list></item><item><list struct="atomic" id="15199">r,114</list></item><item><list struct="atomic" id="15200">a,97</list></item><item><list struct="atomic" id="15201">n,110</list></item><item><list struct="atomic" id="15202">s,115</list></item><item><list struct="atomic" id="15203">l,108</list></item><item><list struct="atomic" id="15204">a,97</list></item><item><list struct="atomic" id="15205">t,116</list></item><item><list struct="atomic" id="15206">e,101</list></item><item><list struct="atomic" id="15207">(,40</list></item><item><list struct="atomic" id="15208">[,91</list></item><item><list struct="atomic" id="15209">0,48</list></item><item><list struct="atomic" id="15210">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15211">0,48</list></item><item><list struct="atomic" id="15212">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15213">-,45</list></item><item><list struct="atomic" id="15214">0,48</list></item><item><list struct="atomic" id="15215">.,46</list></item><item><list struct="atomic" id="15216">0,48</list></item><item><list struct="atomic" id="15217">1,49</list></item><item><list struct="atomic" id="15218">],93</list></item><item><list struct="atomic" id="15219">),41</list></item><item><list struct="atomic" id="15220">r,114</list></item><item><list struct="atomic" id="15221">e,101</list></item><item><list struct="atomic" id="15222">s,115</list></item><item><list struct="atomic" id="15223">i,105</list></item><item><list struct="atomic" id="15224">z,122</list></item><item><list struct="atomic" id="15225">e,101</list></item><item><list struct="atomic" id="15226">(,40</list></item><item><list struct="atomic" id="15227">[,91</list></item><item><list struct="atomic" id="15228">(,40</list></item><item><list struct="atomic" id="15229">x,120</list></item><item><list struct="atomic" id="15230"> ,32</list></item><item><list struct="atomic" id="15231">-,45</list></item><item><list struct="atomic" id="15232"> ,32</list></item><item><list struct="atomic" id="15233">(,40</list></item><item><list struct="atomic" id="15234">2,50</list></item><item><list struct="atomic" id="15235"> ,32</list></item><item><list struct="atomic" id="15236">*,42</list></item><item><list struct="atomic" id="15237"> ,32</list></item><item><list struct="atomic" id="15238">w,119</list></item><item><list struct="atomic" id="15239">a,97</list></item><item><list struct="atomic" id="15240">l,108</list></item><item><list struct="atomic" id="15241">l,108</list></item><item><list struct="atomic" id="15242">_,95</list></item><item><list struct="atomic" id="15243">t,116</list></item><item><list struct="atomic" id="15244">h,104</list></item><item><list struct="atomic" id="15245">i,105</list></item><item><list struct="atomic" id="15246">c,99</list></item><item><list struct="atomic" id="15247">k,107</list></item><item><list struct="atomic" id="15248">n,110</list></item><item><list struct="atomic" id="15249">e,101</list></item><item><list struct="atomic" id="15250">s,115</list></item><item><list struct="atomic" id="15251">s,115</list></item><item><list struct="atomic" id="15252">),41</list></item><item><list struct="atomic" id="15253">),41</list></item><item><list struct="atomic" id="15254">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15255">(,40</list></item><item><list struct="atomic" id="15256">y,121</list></item><item><list struct="atomic" id="15257"> ,32</list></item><item><list struct="atomic" id="15258">-,45</list></item><item><list struct="atomic" id="15259"> ,32</list></item><item><list struct="atomic" id="15260">(,40</list></item><item><list struct="atomic" id="15261">2,50</list></item><item><list struct="atomic" id="15262"> ,32</list></item><item><list struct="atomic" id="15263">*,42</list></item><item><list struct="atomic" id="15264"> ,32</list></item><item><list struct="atomic" id="15265">w,119</list></item><item><list struct="atomic" id="15266">a,97</list></item><item><list struct="atomic" id="15267">l,108</list></item><item><list struct="atomic" id="15268">l,108</list></item><item><list struct="atomic" id="15269">_,95</list></item><item><list struct="atomic" id="15270">t,116</list></item><item><list struct="atomic" id="15271">h,104</list></item><item><list struct="atomic" id="15272">i,105</list></item><item><list struct="atomic" id="15273">c,99</list></item><item><list struct="atomic" id="15274">k,107</list></item><item><list struct="atomic" id="15275">n,110</list></item><item><list struct="atomic" id="15276">e,101</list></item><item><list struct="atomic" id="15277">s,115</list></item><item><list struct="atomic" id="15278">s,115</list></item><item><list struct="atomic" id="15279">),41</list></item><item><list struct="atomic" id="15280">),41</list></item><item><list struct="atomic" id="15281">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15282">(,40</list></item><item><list struct="atomic" id="15283">z,122</list></item><item><list struct="atomic" id="15284"> ,32</list></item><item><list struct="atomic" id="15285">+,43</list></item><item><list struct="atomic" id="15286"> ,32</list></item><item><list struct="atomic" id="15287">0,48</list></item><item><list struct="atomic" id="15288">.,46</list></item><item><list struct="atomic" id="15289">0,48</list></item><item><list struct="atomic" id="15290">1,49</list></item><item><list struct="atomic" id="15291">),41</list></item><item><list struct="atomic" id="15292">],93</list></item><item><list struct="atomic" id="15293">),41</list></item><item><list struct="atomic" id="15294">s,115</list></item><item><list struct="atomic" id="15295">o,111</list></item><item><list struct="atomic" id="15296">f,102</list></item><item><list struct="atomic" id="15297">t,116</list></item><item><list struct="atomic" id="15298">B,66</list></item><item><list struct="atomic" id="15299">o,111</list></item><item><list struct="atomic" id="15300">x,120</list></item><item><list struct="atomic" id="15301">S,83</list></item><item><list struct="atomic" id="15302">h,104</list></item><item><list struct="atomic" id="15303">a,97</list></item><item><list struct="atomic" id="15304">p,112</list></item><item><list struct="atomic" id="15305">e,101</list></item><item><list struct="atomic" id="15306">(,40</list></item><item><list struct="atomic" id="15307">x,120</list></item><item><list struct="atomic" id="15308">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15309">y,121</list></item><item><list struct="atomic" id="15310">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15311">z,122</list></item><item><list struct="atomic" id="15312">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15313">(,40</list></item><item><list struct="atomic" id="15314">c,99</list></item><item><list struct="atomic" id="15315">o,111</list></item><item><list struct="atomic" id="15316">r,114</list></item><item><list struct="atomic" id="15317">n,110</list></item><item><list struct="atomic" id="15318">e,101</list></item><item><list struct="atomic" id="15319">r,114</list></item><item><list struct="atomic" id="15320">_,95</list></item><item><list struct="atomic" id="15321">r,114</list></item><item><list struct="atomic" id="15322">a,97</list></item><item><list struct="atomic" id="15323">d,100</list></item><item><list struct="atomic" id="15324">i,105</list></item><item><list struct="atomic" id="15325">u,117</list></item><item><list struct="atomic" id="15326">s,115</list></item><item><list struct="atomic" id="15327"> ,32</list></item><item><list struct="atomic" id="15328">/,47</list></item><item><list struct="atomic" id="15329"> ,32</list></item><item><list struct="atomic" id="15330">1,49</list></item><item><list struct="atomic" id="15331">.,46</list></item><item><list struct="atomic" id="15332">4,52</list></item><item><list struct="atomic" id="15333">1,49</list></item><item><list struct="atomic" id="15334">4,52</list></item><item><list struct="atomic" id="15335">2,50</list></item><item><list struct="atomic" id="15336">),41</list></item><item><list struct="atomic" id="15337">),41</list></item><item><list struct="atomic" id="15338">;,59</list></item><item><list struct="atomic" id="15339">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15340"> ,32</list></item><item><list struct="atomic" id="15341"> ,32</list></item><item><list struct="atomic" id="15342"> ,32</list></item><item><list struct="atomic" id="15343"> ,32</list></item><item><list struct="atomic" id="15344"> ,32</list></item><item><list struct="atomic" id="15345"> ,32</list></item><item><list struct="atomic" id="15346"> ,32</list></item><item><list struct="atomic" id="15347"> ,32</list></item><item><list struct="atomic" id="15348"> ,32</list></item><item><list struct="atomic" id="15349"> ,32</list></item><item><list struct="atomic" id="15350">},125</list></item><item><list struct="atomic" id="15351">;,59</list></item><item><list struct="atomic" id="15352">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15353"> ,32</list></item><item><list struct="atomic" id="15354"> ,32</list></item><item><list struct="atomic" id="15355"> ,32</list></item><item><list struct="atomic" id="15356"> ,32</list></item><item><list struct="atomic" id="15357">},125</list></item><item><list struct="atomic" id="15358">;,59</list></item><item><list struct="atomic" id="15359">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15360"> ,32</list></item><item><list struct="atomic" id="15361"> ,32</list></item><item><list struct="atomic" id="15362"> ,32</list></item><item><list struct="atomic" id="15363"> ,32</list></item><item><list struct="atomic" id="15364">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15365"> ,32</list></item><item><list struct="atomic" id="15366"> ,32</list></item><item><list struct="atomic" id="15367"> ,32</list></item><item><list struct="atomic" id="15368"> ,32</list></item><item><list struct="atomic" id="15369">i,105</list></item><item><list struct="atomic" id="15370">f,102</list></item><item><list struct="atomic" id="15371"> ,32</list></item><item><list struct="atomic" id="15372">(,40</list></item><item><list struct="atomic" id="15373">f,102</list></item><item><list struct="atomic" id="15374">l,108</list></item><item><list struct="atomic" id="15375">o,111</list></item><item><list struct="atomic" id="15376">o,111</list></item><item><list struct="atomic" id="15377">r,114</list></item><item><list struct="atomic" id="15378">),41</list></item><item><list struct="atomic" id="15379"> ,32</list></item><item><list struct="atomic" id="15380">{,123</list></item><item><list struct="atomic" id="15381">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15382"> ,32</list></item><item><list struct="atomic" id="15383"> ,32</list></item><item><list struct="atomic" id="15384"> ,32</list></item><item><list struct="atomic" id="15385"> ,32</list></item><item><list struct="atomic" id="15386"> ,32</list></item><item><list struct="atomic" id="15387"> ,32</list></item><item><list struct="atomic" id="15388"> ,32</list></item><item><list struct="atomic" id="15389"> ,32</list></item><item><list struct="atomic" id="15390">s,115</list></item><item><list struct="atomic" id="15391">o,111</list></item><item><list struct="atomic" id="15392">f,102</list></item><item><list struct="atomic" id="15393">t,116</list></item><item><list struct="atomic" id="15394">B,66</list></item><item><list struct="atomic" id="15395">o,111</list></item><item><list struct="atomic" id="15396">x,120</list></item><item><list struct="atomic" id="15397">S,83</list></item><item><list struct="atomic" id="15398">h,104</list></item><item><list struct="atomic" id="15399">a,97</list></item><item><list struct="atomic" id="15400">p,112</list></item><item><list struct="atomic" id="15401">e,101</list></item><item><list struct="atomic" id="15402">(,40</list></item><item><list struct="atomic" id="15403">x,120</list></item><item><list struct="atomic" id="15404">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15405">y,121</list></item><item><list struct="atomic" id="15406">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15407">w,119</list></item><item><list struct="atomic" id="15408">a,97</list></item><item><list struct="atomic" id="15409">l,108</list></item><item><list struct="atomic" id="15410">l,108</list></item><item><list struct="atomic" id="15411">_,95</list></item><item><list struct="atomic" id="15412">t,116</list></item><item><list struct="atomic" id="15413">h,104</list></item><item><list struct="atomic" id="15414">i,105</list></item><item><list struct="atomic" id="15415">c,99</list></item><item><list struct="atomic" id="15416">k,107</list></item><item><list struct="atomic" id="15417">n,110</list></item><item><list struct="atomic" id="15418">e,101</list></item><item><list struct="atomic" id="15419">s,115</list></item><item><list struct="atomic" id="15420">s,115</list></item><item><list struct="atomic" id="15421">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15422">c,99</list></item><item><list struct="atomic" id="15423">o,111</list></item><item><list struct="atomic" id="15424">r,114</list></item><item><list struct="atomic" id="15425">n,110</list></item><item><list struct="atomic" id="15426">e,101</list></item><item><list struct="atomic" id="15427">r,114</list></item><item><list struct="atomic" id="15428">_,95</list></item><item><list struct="atomic" id="15429">r,114</list></item><item><list struct="atomic" id="15430">a,97</list></item><item><list struct="atomic" id="15431">d,100</list></item><item><list struct="atomic" id="15432">i,105</list></item><item><list struct="atomic" id="15433">u,117</list></item><item><list struct="atomic" id="15434">s,115</list></item><item><list struct="atomic" id="15435">),41</list></item><item><list struct="atomic" id="15436">;,59</list></item><item><list struct="atomic" id="15437">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15438"> ,32</list></item><item><list struct="atomic" id="15439"> ,32</list></item><item><list struct="atomic" id="15440"> ,32</list></item><item><list struct="atomic" id="15441"> ,32</list></item><item><list struct="atomic" id="15442"> ,32</list></item><item><list struct="atomic" id="15443"> ,32</list></item><item><list struct="atomic" id="15444"> ,32</list></item><item><list struct="atomic" id="15445"> ,32</list></item><item><list struct="atomic" id="15446">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15447"> ,32</list></item><item><list struct="atomic" id="15448"> ,32</list></item><item><list struct="atomic" id="15449"> ,32</list></item><item><list struct="atomic" id="15450"> ,32</list></item><item><list struct="atomic" id="15451">},125</list></item><item><list struct="atomic" id="15452">;,59</list></item><item><list struct="atomic" id="15453">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15454">},125</list></item><item><list struct="atomic" id="15455">;,59</list></item><item><list struct="atomic" id="15456">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15457">},125</list></item><item><list struct="atomic" id="15458">;,59</list></item><item><list struct="atomic" id="15459">&quot;&#xD;&quot;,10</list></item><item><list struct="atomic" id="15460">s,115</list></item><item><list struct="atomic" id="15461">o,111</list></item><item><list struct="atomic" id="15462">f,102</list></item><item><list struct="atomic" id="15463">t,116</list></item><item><list struct="atomic" id="15464">B,66</list></item><item><list struct="atomic" id="15465">o,111</list></item><item><list struct="atomic" id="15466">x,120</list></item><item><list struct="atomic" id="15467">(,40</list></item><item><list struct="atomic" id="15468">2,50</list></item><item><list struct="atomic" id="15469">0,48</list></item><item><list struct="atomic" id="15470">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15471">1,49</list></item><item><list struct="atomic" id="15472">0,48</list></item><item><list struct="atomic" id="15473">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15474">5,53</list></item><item><list struct="atomic" id="15475">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15476">1,49</list></item><item><list struct="atomic" id="15477">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15478">2,50</list></item><item><list struct="atomic" id="15479">&quot;,&quot;,44</list></item><item><list struct="atomic" id="15480">t,116</list></item><item><list struct="atomic" id="15481">r,114</list></item><item><list struct="atomic" id="15482">u,117</list></item><item><list struct="atomic" id="15483">e,101</list></item><item><list struct="atomic" id="15484">),41</list></item><item><list struct="atomic" id="15485">;,59</list></item><item><list struct="atomic" id="15486">&quot;&#xD;&quot;,10</list></item></list></variable><variable name="blocks" hidden="true"><list id="15487"><item><list id="15488"><item><context id="15489"><inputs></inputs><variables></variables><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l> </l><list><l></l></list><script></script></custom-block></script><receiver><ref id="12260"></ref></receiver><origin><ref id="12260"></ref></origin><context id="15498"><inputs></inputs><variables></variables><receiver><ref id="12260"></ref></receiver><origin></origin><context id="15500"><inputs></inputs><variables><variable name="blocks"><list id="15502"><item><list id="15503"><item><context id="15504"><inputs></inputs><variables></variables><script><custom-block s="add %s"><l></l></custom-block></script><receiver></receiver><origin></origin></context></item><item><list id="15509"><item><context id="15510"><inputs></inputs><variables></variables><custom-block s="softBox x: %n y: %n z: %n corner radius: %n wall thickness: %n with floor? %b"><l></l><l></l><l></l><l></l><l></l><l/></custom-block><receiver></receiver><origin></origin></context></item><item><l>20</l></item><item><l>10</l></item><item><l>5</l></item><item><l>1</l></item><item><l>2</l></item><item><bool>true</bool></item></list></item></list></item></list></variable><variable name="modules"><list id="15520"><item><list id="15521"><item><ref id="15489"></ref></item><item><l>softBox</l></item><item><list struct="atomic" id="15522">6,x,y,z,corner_radius,wall_thickness,floor</list></item><item><list id="15523"><item><list id="15524"><item><list id="15525"><item><context id="15526"><inputs></inputs><variables></variables><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l> </l><list><l></l><l></l><l></l><l></l></list><script></script></custom-block></script><receiver></receiver><origin></origin></context></item><item><l>softBoxShape</l></item><item><list id="15538"><item><context id="15539"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><list id="15542"><item><context id="15543"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><list id="15546"><item><context id="15547"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>z</l></item></list></item><item><list id="15550"><item><context id="15551"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item><item><list id="15554"><item><list id="15555"><item><context id="15556"><inputs></inputs><variables></variables><script><custom-block s="add %s"><l></l></custom-block></script><receiver></receiver><origin></origin></context></item><item><list id="15561"><item><context id="15562"><inputs></inputs><variables></variables><custom-block s="cube x: %n y: %n z: %n"><l></l><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15569"><item><context id="15570"><inputs></inputs><variables></variables><custom-block s="%n - %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15576"><item><context id="15577"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><list id="15580"><item><context id="15581"><inputs></inputs><variables></variables><custom-block s="%n x %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><l>2</l></item><item><list id="15587"><item><context id="15588"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item></list></item></list></item><item><list id="15591"><item><context id="15592"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><list id="15595"><item><context id="15596"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>z</l></item></list></item></list></item></list></item><item><list id="15599"><item><context id="15600"><inputs></inputs><variables></variables><script><custom-block s="add %s"><l></l></custom-block></script><receiver></receiver><origin></origin></context></item><item><list id="15605"><item><context id="15606"><inputs></inputs><variables></variables><custom-block s="cube x: %n y: %n z: %n"><l></l><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15613"><item><context id="15614"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><list id="15617"><item><context id="15618"><inputs></inputs><variables></variables><custom-block s="%n - %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15624"><item><context id="15625"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><list id="15628"><item><context id="15629"><inputs></inputs><variables></variables><custom-block s="%n x %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><l>2</l></item><item><list id="15635"><item><context id="15636"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item></list></item></list></item><item><list id="15639"><item><context id="15640"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>z</l></item></list></item></list></item></list></item><item><list id="15643"><item><context id="15644"><inputs></inputs><variables></variables><script><block s="doForEach"><l> </l><l/><script></script></block></script><receiver></receiver><origin></origin></context></item><item><l>y_pos</l></item><item><list id="15651"><item><context id="15652"><inputs></inputs><variables></variables><block s="reportNewList"><list><l></l><l></l></list></block><receiver></receiver><origin></origin></context></item><item><l>1</l></item><item><l>-1</l></item></list></item><item><list id="15660"><item><context id="15661"><inputs></inputs><variables></variables><script><block s="doForEach"><l> </l><l/><script></script></block></script><receiver></receiver><origin></origin></context></item><item><l>x_pos</l></item><item><list id="15668"><item><context id="15669"><inputs></inputs><variables></variables><block s="reportNewList"><list><l></l><l></l></list></block><receiver></receiver><origin></origin></context></item><item><l>1</l></item><item><l>-1</l></item></list></item><item><list id="15677"><item><context id="15678"><inputs></inputs><variables></variables><script><custom-block s="add %s"><l></l></custom-block></script><receiver></receiver><origin></origin></context></item><item><list id="15683"><item><context id="15684"><inputs></inputs><variables></variables><custom-block s="move x: %n y: %n z: %n %s"><l></l><l></l><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15692"><item><context id="15693"><inputs></inputs><variables></variables><custom-block s="%n x %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15699"><item><context id="15700"><inputs></inputs><variables></variables><custom-block s="%n - %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15706"><item><context id="15707"><inputs></inputs><variables></variables><custom-block s="%n / %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15713"><item><context id="15714"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><l>2</l></item></list></item><item><list id="15717"><item><context id="15718"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item></list></item><item><list id="15721"><item><context id="15722"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x_pos</l></item></list></item></list></item><item><list id="15725"><item><context id="15726"><inputs></inputs><variables></variables><custom-block s="%n x %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15732"><item><context id="15733"><inputs></inputs><variables></variables><custom-block s="%n - %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15739"><item><context id="15740"><inputs></inputs><variables></variables><custom-block s="%n / %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15746"><item><context id="15747"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><l>2</l></item></list></item><item><list id="15750"><item><context id="15751"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item></list></item><item><list id="15754"><item><context id="15755"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y_pos</l></item></list></item></list></item><item><l>0</l></item><item><list id="15758"><item><context id="15759"><inputs></inputs><variables></variables><custom-block s="cylinder height: %n radius: %n sides: %n"><l></l><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15766"><item><context id="15767"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>z</l></item></list></item><item><list id="15770"><item><context id="15771"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item><item><l>64</l></item></list></item></list></item></list></item></list></item></list></item></list></item><item><l>x</l></item><item><l>y</l></item><item><l>z</l></item><item><l>corner_radius</l></item><item><l>wall_thickness</l></item><item><l>floor</l></item></list></item><item><list id="15774"><item><context id="15775"><inputs></inputs><variables></variables><script><block s="doIfElse"><l/><script></script><script></script></block></script><receiver></receiver><origin></origin></context></item><item><list id="15782"><item><context id="15783"><inputs></inputs><variables></variables><custom-block s="%b or %b"><l/><l/></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15789"><item><context id="15790"><inputs></inputs><variables></variables><custom-block s="%b or %b"><l/><l/></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15796"><item><context id="15797"><inputs></inputs><variables></variables><custom-block s="%s = %s"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15803"><item><context id="15804"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>wall_thickness</l></item></list></item><item><l>0</l></item></list></item><item><list id="15807"><item><context id="15808"><inputs></inputs><variables></variables><custom-block s="%s &gt; %s"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15814"><item><context id="15815"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>wall_thickness</l></item></list></item><item><list id="15818"><item><context id="15819"><inputs></inputs><variables></variables><custom-block s="%n / %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15825"><item><context id="15826"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><l>2</l></item></list></item></list></item></list></item><item><list id="15829"><item><context id="15830"><inputs></inputs><variables></variables><custom-block s="%s &gt; %s"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15836"><item><context id="15837"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>wall_thickness</l></item></list></item><item><list id="15840"><item><context id="15841"><inputs></inputs><variables></variables><custom-block s="%n / %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15847"><item><context id="15848"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><l>2</l></item></list></item></list></item></list></item><item><list id="15851"><item><context id="15852"><inputs></inputs><variables></variables><script><custom-block s="add %s"><l></l></custom-block></script><receiver></receiver><origin></origin></context></item><item><list id="15857"><item><context id="15858"><inputs></inputs><variables></variables><custom-block s="module %s options: %mult%s"><l></l><list><l></l><l></l><l></l><l></l></list></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15869"><item><context id="15870"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>softBoxShape</l></item></list></item><item><list id="15873"><item><context id="15874"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><list id="15877"><item><context id="15878"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><list id="15881"><item><context id="15882"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>z</l></item></list></item><item><list id="15885"><item><context id="15886"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item></list></item></list></item><item><list id="15889"><item><list id="15890"><item><context id="15891"><inputs></inputs><variables></variables><script><custom-block s="add %s"><l></l></custom-block></script><receiver></receiver><origin></origin></context></item><item><list id="15896"><item><context id="15897"><inputs></inputs><variables></variables><custom-block s="make %s hole in %s using %s"><l></l><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><l>standard</l></item><item><list id="15904"><item><context id="15905"><inputs></inputs><variables></variables><custom-block s="module %s options: %mult%s"><l></l><list><l></l><l></l><l></l><l></l></list></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15916"><item><context id="15917"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>softBoxShape</l></item></list></item><item><list id="15920"><item><context id="15921"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><list id="15924"><item><context id="15925"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><list id="15928"><item><context id="15929"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>z</l></item></list></item><item><list id="15932"><item><context id="15933"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item></list></item><item><list id="15936"><item><context id="15937"><inputs></inputs><variables></variables><custom-block s="resize x: %n y: %n z: %n %s"><l></l><l></l><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15945"><item><context id="15946"><inputs></inputs><variables></variables><custom-block s="%n - %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15952"><item><context id="15953"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><list id="15956"><item><context id="15957"><inputs></inputs><variables></variables><custom-block s="%n x %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><l>2</l></item><item><list id="15963"><item><context id="15964"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>wall_thickness</l></item></list></item></list></item></list></item><item><list id="15967"><item><context id="15968"><inputs></inputs><variables></variables><custom-block s="%n - %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15974"><item><context id="15975"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><list id="15978"><item><context id="15979"><inputs></inputs><variables></variables><custom-block s="%n x %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><l>2</l></item><item><list id="15985"><item><context id="15986"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>wall_thickness</l></item></list></item></list></item></list></item><item><list id="15989"><item><context id="15990"><inputs></inputs><variables></variables><custom-block s="%n + %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="15996"><item><context id="15997"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>z</l></item></list></item><item><l>0.01</l></item></list></item><item><list id="16000"><item><context id="16001"><inputs></inputs><variables></variables><custom-block s="module %s options: %mult%s"><l></l><list><l></l><l></l><l></l><l></l></list></custom-block><receiver></receiver><origin></origin></context></item><item><list id="16012"><item><context id="16013"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>softBoxShape</l></item></list></item><item><list id="16016"><item><context id="16017"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><list id="16020"><item><context id="16021"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><list id="16024"><item><context id="16025"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>z</l></item></list></item><item><list id="16028"><item><context id="16029"><inputs></inputs><variables></variables><custom-block s="%n / %n"><l></l><l></l></custom-block><receiver></receiver><origin></origin></context></item><item><list id="16035"><item><context id="16036"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item><item><l>1.4142</l></item></list></item></list></item></list></item></list></item></list></item><item><list id="16039"><item><context id="16040"><inputs></inputs><variables></variables><script><block s="doIf"><l/><script></script><list></list></block></script><receiver></receiver><origin></origin></context></item><item><list id="16048"><item><context id="16049"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>floor</l></item></list></item><item><list id="16052"><item><context id="16053"><inputs></inputs><variables></variables><script><custom-block s="add %s"><l></l></custom-block></script><receiver></receiver><origin></origin></context></item><item><list id="16058"><item><context id="16059"><inputs></inputs><variables></variables><custom-block s="module %s options: %mult%s"><l></l><list><l></l><l></l><l></l><l></l></list></custom-block><receiver></receiver><origin></origin></context></item><item><list id="16070"><item><context id="16071"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>softBoxShape</l></item></list></item><item><list id="16074"><item><context id="16075"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>x</l></item></list></item><item><list id="16078"><item><context id="16079"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>y</l></item></list></item><item><list id="16082"><item><context id="16083"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>wall_thickness</l></item></list></item><item><list id="16086"><item><context id="16087"><inputs></inputs><variables></variables><block var=" "/><receiver></receiver><origin></origin></context></item><item><l>corner_radius</l></item></list></item></list></item></list></item><item></item></list></item></list></item></list></item></list></item></list></item></list></item></list></variable><variable name="module name"><l>softBox</l></variable><variable name="item path"><list struct="atomic" id="16090">1,2,1</list></variable></variables><receiver><ref id="12260"></ref></receiver><origin></origin></context></context></context></item><item><l>softBox</l></item><item><list struct="atomic" id="16091">6,x,y,z,corner_radius,wall_thickness,floor</list></item><item><list id="16092"><item><list id="16093"><item><list id="16094"><item><ref id="15526"></ref></item><item><l>softBoxShape</l></item><item><list id="16095"><item><ref id="15539"></ref></item><item><l>x</l></item></list></item><item><list id="16096"><item><ref id="15543"></ref></item><item><l>y</l></item></list></item><item><list id="16097"><item><ref id="15547"></ref></item><item><l>z</l></item></list></item><item><list id="16098"><item><ref id="15551"></ref></item><item><l>corner_radius</l></item></list></item><item><list id="16099"><item><list id="16100"><item><ref id="15556"></ref></item><item><list id="16101"><item><ref id="15562"></ref></item><item><list id="16102"><item><ref id="15570"></ref></item><item><list id="16103"><item><ref id="15577"></ref></item><item><l>x</l></item></list></item><item><list id="16104"><item><ref id="15581"></ref></item><item><l>2</l></item><item><list id="16105"><item><ref id="15588"></ref></item><item><l>corner_radius</l></item></list></item></list></item></list></item><item><list id="16106"><item><ref id="15592"></ref></item><item><l>y</l></item></list></item><item><list id="16107"><item><ref id="15596"></ref></item><item><l>z</l></item></list></item></list></item></list></item><item><list id="16108"><item><ref id="15600"></ref></item><item><list id="16109"><item><ref id="15606"></ref></item><item><list id="16110"><item><ref id="15614"></ref></item><item><l>x</l></item></list></item><item><list id="16111"><item><ref id="15618"></ref></item><item><list id="16112"><item><ref id="15625"></ref></item><item><l>y</l></item></list></item><item><list id="16113"><item><ref id="15629"></ref></item><item><l>2</l></item><item><list id="16114"><item><ref id="15636"></ref></item><item><l>corner_radius</l></item></list></item></list></item></list></item><item><list id="16115"><item><ref id="15640"></ref></item><item><l>z</l></item></list></item></list></item></list></item><item><list id="16116"><item><ref id="15644"></ref></item><item><l>y_pos</l></item><item><list id="16117"><item><ref id="15652"></ref></item><item><l>1</l></item><item><l>-1</l></item></list></item><item><list id="16118"><item><ref id="15661"></ref></item><item><l>x_pos</l></item><item><list id="16119"><item><ref id="15669"></ref></item><item><l>1</l></item><item><l>-1</l></item></list></item><item><list id="16120"><item><ref id="15678"></ref></item><item><list id="16121"><item><ref id="15684"></ref></item><item><list id="16122"><item><ref id="15693"></ref></item><item><list id="16123"><item><ref id="15700"></ref></item><item><list id="16124"><item><ref id="15707"></ref></item><item><list id="16125"><item><ref id="15714"></ref></item><item><l>x</l></item></list></item><item><l>2</l></item></list></item><item><list id="16126"><item><ref id="15718"></ref></item><item><l>corner_radius</l></item></list></item></list></item><item><list id="16127"><item><ref id="15722"></ref></item><item><l>x_pos</l></item></list></item></list></item><item><list id="16128"><item><ref id="15726"></ref></item><item><list id="16129"><item><ref id="15733"></ref></item><item><list id="16130"><item><ref id="15740"></ref></item><item><list id="16131"><item><ref id="15747"></ref></item><item><l>y</l></item></list></item><item><l>2</l></item></list></item><item><list id="16132"><item><ref id="15751"></ref></item><item><l>corner_radius</l></item></list></item></list></item><item><list id="16133"><item><ref id="15755"></ref></item><item><l>y_pos</l></item></list></item></list></item><item><l>0</l></item><item><list id="16134"><item><ref id="15759"></ref></item><item><list id="16135"><item><ref id="15767"></ref></item><item><l>z</l></item></list></item><item><list id="16136"><item><ref id="15771"></ref></item><item><l>corner_radius</l></item></list></item><item><l>64</l></item></list></item></list></item></list></item></list></item></list></item></list></item><item><l>x</l></item><item><l>y</l></item><item><l>z</l></item><item><l>corner_radius</l></item><item><l>wall_thickness</l></item><item><l>floor</l></item></list></item><item><list id="16137"><item><ref id="15775"></ref></item><item><list id="16138"><item><ref id="15783"></ref></item><item><list id="16139"><item><ref id="15790"></ref></item><item><list id="16140"><item><ref id="15797"></ref></item><item><list id="16141"><item><ref id="15804"></ref></item><item><l>wall_thickness</l></item></list></item><item><l>0</l></item></list></item><item><list id="16142"><item><ref id="15808"></ref></item><item><list id="16143"><item><ref id="15815"></ref></item><item><l>wall_thickness</l></item></list></item><item><list id="16144"><item><ref id="15819"></ref></item><item><list id="16145"><item><ref id="15826"></ref></item><item><l>x</l></item></list></item><item><l>2</l></item></list></item></list></item></list></item><item><list id="16146"><item><ref id="15830"></ref></item><item><list id="16147"><item><ref id="15837"></ref></item><item><l>wall_thickness</l></item></list></item><item><list id="16148"><item><ref id="15841"></ref></item><item><list id="16149"><item><ref id="15848"></ref></item><item><l>y</l></item></list></item><item><l>2</l></item></list></item></list></item></list></item><item><list id="16150"><item><ref id="15852"></ref></item><item><list id="16151"><item><ref id="15858"></ref></item><item><list id="16152"><item><ref id="15870"></ref></item><item><l>softBoxShape</l></item></list></item><item><list id="16153"><item><ref id="15874"></ref></item><item><l>x</l></item></list></item><item><list id="16154"><item><ref id="15878"></ref></item><item><l>y</l></item></list></item><item><list id="16155"><item><ref id="15882"></ref></item><item><l>z</l></item></list></item><item><list id="16156"><item><ref id="15886"></ref></item><item><l>corner_radius</l></item></list></item></list></item></list></item><item><list id="16157"><item><list id="16158"><item><ref id="15891"></ref></item><item><list id="16159"><item><ref id="15897"></ref></item><item><l>standard</l></item><item><list id="16160"><item><ref id="15905"></ref></item><item><list id="16161"><item><ref id="15917"></ref></item><item><l>softBoxShape</l></item></list></item><item><list id="16162"><item><ref id="15921"></ref></item><item><l>x</l></item></list></item><item><list id="16163"><item><ref id="15925"></ref></item><item><l>y</l></item></list></item><item><list id="16164"><item><ref id="15929"></ref></item><item><l>z</l></item></list></item><item><list id="16165"><item><ref id="15933"></ref></item><item><l>corner_radius</l></item></list></item></list></item><item><list id="16166"><item><ref id="15937"></ref></item><item><list id="16167"><item><ref id="15946"></ref></item><item><list id="16168"><item><ref id="15953"></ref></item><item><l>x</l></item></list></item><item><list id="16169"><item><ref id="15957"></ref></item><item><l>2</l></item><item><list id="16170"><item><ref id="15964"></ref></item><item><l>wall_thickness</l></item></list></item></list></item></list></item><item><list id="16171"><item><ref id="15968"></ref></item><item><list id="16172"><item><ref id="15975"></ref></item><item><l>y</l></item></list></item><item><list id="16173"><item><ref id="15979"></ref></item><item><l>2</l></item><item><list id="16174"><item><ref id="15986"></ref></item><item><l>wall_thickness</l></item></list></item></list></item></list></item><item><list id="16175"><item><ref id="15990"></ref></item><item><list id="16176"><item><ref id="15997"></ref></item><item><l>z</l></item></list></item><item><l>0.01</l></item></list></item><item><list id="16177"><item><ref id="16001"></ref></item><item><list id="16178"><item><ref id="16013"></ref></item><item><l>softBoxShape</l></item></list></item><item><list id="16179"><item><ref id="16017"></ref></item><item><l>x</l></item></list></item><item><list id="16180"><item><ref id="16021"></ref></item><item><l>y</l></item></list></item><item><list id="16181"><item><ref id="16025"></ref></item><item><l>z</l></item></list></item><item><list id="16182"><item><ref id="16029"></ref></item><item><list id="16183"><item><ref id="16036"></ref></item><item><l>corner_radius</l></item></list></item><item><l>1.4142</l></item></list></item></list></item></list></item></list></item></list></item><item><list id="16184"><item><ref id="16040"></ref></item><item><list id="16185"><item><ref id="16049"></ref></item><item><l>floor</l></item></list></item><item><list id="16186"><item><ref id="16053"></ref></item><item><list id="16187"><item><ref id="16059"></ref></item><item><list id="16188"><item><ref id="16071"></ref></item><item><l>softBoxShape</l></item></list></item><item><list id="16189"><item><ref id="16075"></ref></item><item><l>x</l></item></list></item><item><list id="16190"><item><ref id="16079"></ref></item><item><l>y</l></item></list></item><item><list id="16191"><item><ref id="16083"></ref></item><item><l>wall_thickness</l></item></list></item><item><list id="16192"><item><ref id="16087"></ref></item><item><l>corner_radius</l></item></list></item></list></item></list></item><item></item></list></item></list></item></list></item></list></item></list></item></list></item><item><list id="16193"><item><ref id="15504"></ref></item><item><list id="16194"><item><context id="16195"><inputs></inputs><variables></variables><custom-block s="module %s options: %mult%s"><l></l><list><l></l></list></custom-block><receiver><ref id="12260"></ref></receiver><origin><ref id="12260"></ref></origin><context id="16203"><inputs></inputs><variables></variables><receiver><ref id="12260"></ref></receiver><origin></origin><context id="16205"><inputs></inputs><variables><variable name="script"><context id="16207"><inputs></inputs><variables></variables><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l>softBox</l><list><l>x</l><l>y</l><l>z</l><l>corner_radius</l><l>wall_thickness</l><l>floor</l></list><script><custom-block s="define module %upvar %br options: %mult%s %cs"><l>softBoxShape</l><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list><script><custom-block s="add %s"><custom-block s="cube x: %n y: %n z: %n"><custom-block s="%n - %n"><block var="x"/><custom-block s="%n x %n"><l>2</l><block var="corner_radius"/></custom-block></custom-block><block var="y"/><block var="z"/></custom-block></custom-block><custom-block s="add %s"><custom-block s="cube x: %n y: %n z: %n"><block var="x"/><custom-block s="%n - %n"><block var="y"/><custom-block s="%n x %n"><l>2</l><block var="corner_radius"/></custom-block></custom-block><block var="z"/></custom-block></custom-block><block s="doForEach"><l>y_pos</l><block s="reportNewList"><list><l>1</l><l>-1</l></list></block><script><block s="doForEach"><l>x_pos</l><block s="reportNewList"><list><l>1</l><l>-1</l></list></block><script><custom-block s="add %s"><custom-block s="move x: %n y: %n z: %n %s"><custom-block s="%n x %n"><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="x"/><l>2</l></custom-block><block var="corner_radius"/></custom-block><block var="x_pos"/></custom-block><custom-block s="%n x %n"><custom-block s="%n - %n"><custom-block s="%n / %n"><block var="y"/><l>2</l></custom-block><block var="corner_radius"/></custom-block><block var="y_pos"/></custom-block><l>0</l><custom-block s="cylinder height: %n radius: %n sides: %n"><block var="z"/><block var="corner_radius"/><l>64</l></custom-block></custom-block></custom-block></script></block></script></block></script></custom-block><block s="doIfElse"><custom-block s="%b or %b"><custom-block s="%b or %b"><custom-block s="%s = %s"><block var="wall_thickness"/><l>0</l></custom-block><custom-block s="%s &gt; %s"><block var="wall_thickness"/><custom-block s="%n / %n"><block var="x"/><l>2</l></custom-block></custom-block></custom-block><custom-block s="%s &gt; %s"><block var="wall_thickness"/><custom-block s="%n / %n"><block var="y"/><l>2</l></custom-block></custom-block></custom-block><script><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list></custom-block></custom-block></script><script><custom-block s="add %s"><custom-block s="make %s hole in %s using %s"><l>standard</l><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><block var="corner_radius"/></list></custom-block><custom-block s="resize x: %n y: %n z: %n %s"><custom-block s="%n - %n"><block var="x"/><custom-block s="%n x %n"><l>2</l><block var="wall_thickness"/></custom-block></custom-block><custom-block s="%n - %n"><block var="y"/><custom-block s="%n x %n"><l>2</l><block var="wall_thickness"/></custom-block></custom-block><custom-block s="%n + %n"><block var="z"/><l>0.01</l></custom-block><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="z"/><custom-block s="%n / %n"><block var="corner_radius"/><l>1.4142</l></custom-block></list></custom-block></custom-block></custom-block></custom-block><block s="doIf"><block var="floor"/><script><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><block var="softBoxShape"/><list><block var="x"/><block var="y"/><block var="wall_thickness"/><block var="corner_radius"/></list></custom-block></custom-block></script><list></list></block></script></block></script></custom-block><custom-block s="add %s"><custom-block s="module %s options: %mult%s"><l>softBox</l><list><l>20</l><l>10</l><l>5</l><l>1</l><l>2</l><l>true</l></list></custom-block></custom-block></script><receiver></receiver><origin></origin></context></variable><variable name="item path"><list struct="atomic" id="16415">2,2,1</list></variable><variable name="split code"><list struct="atomic" id="16416">,_alpha=255;,&quot;module softBox(x,y,z,corner_radius,wall_thickness,floor) {&quot;,&quot;module softBoxShape(x,y,z,corner_radius) {&quot;,&quot;translate([0,0,z*50/100])cube([(x - (2 * corner_radius)),y,z],center=true);&quot;,&quot;translate([0,0,z*50/100])cube([x,(y - (2 * corner_radius)),z],center=true);&quot;,&quot;for ( y_pos = [1,-1]){&quot;,&quot;    for ( x_pos = [1,-1]){&quot;,&quot;        translate([(((x / 2) - corner_radius) * x_pos),(((y / 2) - corner_radius) * y_pos),0])translate([0,0,z*50/100])rotate([0,0,-90])cylinder(z,r=corner_radius,$fn=64,center=true);&quot;,        ,    };,};,};,if ((((wall_thickness == 0) || (wall_thickness &gt; (x / 2))) || (wall_thickness &gt; (y / 2)))) {,&quot;    softBoxShape(x,y,z,corner_radius);&quot;,    ,} else {,    difference(){,&quot;        softBoxShape(x,y,z,corner_radius);&quot;,&quot;        if (&quot;&quot;standard&quot;&quot; == &quot;&quot;simple&quot;&quot;) &quot;,          {,&quot;            resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,          } else {,&quot;            translate([0.01,0,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([-0.01,0,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([0,0.01,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([0,-0.01,0])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([0,0,0.01])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,&quot;            translate([0,0,-0.01])resize([(x - (2 * wall_thickness)),(y - (2 * wall_thickness)),(z + 0.01)])softBoxShape(x,y,z,(corner_radius / 1.4142));&quot;,          };,    };,    ,    if (floor) {,&quot;        softBoxShape(x,y,wall_thickness,corner_radius);&quot;,        ,    };,};,};,&quot;softBox(20,10,5,1,2,true);&quot;,</list></variable><variable name="i"><l>41</l></variable><variable name="error"><l>error</l></variable></variables><receiver><ref id="12260"></ref></receiver><origin></origin></context></context></context></item><item><l>softBox</l></item><item><list struct="atomic" id="16417">6,20,10,5,1,2,true</list></item></list></item></list></item></list></variable><variable name="modules" hidden="true"><list struct="atomic" id="16418"></list></variable><variable name="ScriptEcho"><ref id="16207"></ref></variable><variable name="existing module names" hidden="true"><list struct="atomic" id="16419"></list></variable><variable name="debug"><list struct="atomic" id="16420"></list></variable><variable name="deep item"><l>both</l></variable></variables></scene></scenes></project><media name="SnapToOpenSCAD" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="alonzo (vector)" center-x="47.5" center-y="61.5" image="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOTVweCIgaGVpZ2h0PSIxMjNweCIgdmlld0JveD0iMCAwIDk1IDEyMyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOTUgMTIzIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnIGlkPSJJRDAuODMyMzgyOTczNzQ5MTkwNiIgdHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMykiPg0KCTxwYXRoIGlkPSJSX0xlZyIgZmlsbD0iI0ZGQzkzRSIgc3Ryb2tlPSIjNjAzODEzIiBzdHJva2Utd2lkdGg9IjMiIGQ9Ik00Ny4zMTYsMTA0LjI1MWMwLTEuMjc2LDAuMzU4LTMuMTA5LDIuMzM4LTMuNTIzDQoJCWMyLjg1Ny0wLjU5OSw2LjEyNiwyLjI5Myw3LjAxNCwzLjE0NmMtMC4wNjUsMC4zMzgsMS4wNDcsNy4xNzMsMS4wNDcsNy43NjVjMCwyLjAwNC0wLjUzNSwyLjA4My0wLjc0MywyLjExNg0KCQljLTEuOTU2LDAuMjg0LTcuMTY5LTUuMTk3LTkuNTYyLTguMzg3QzQ3LjM3NiwxMDUuMTkzLDQ3LjMxNiwxMDQuODA5LDQ3LjMxNiwxMDQuMjUxTDQ3LjMxNiwxMDQuMjUxTDQ3LjMxNiwxMDQuMjUxeiIvPg0KCTxwYXRoIGlkPSJDZW50ZXJfTGVnIiBmaWxsPSIjRkZDOTNFIiBzdHJva2U9IiM2MDM4MTMiIHN0cm9rZS13aWR0aD0iNCIgZD0iTTM5LjM5NCwxMTMuODI3Yy0xLjQxOC0xLjUzOC0xLjYyMS01LjcwNy0xLjYyMS03LjQ4Mg0KCQljMC0wLjc1MiwwLjAzOS0xLjI1MywwLjA0MS0xLjI2OGwwLjAwMi0wLjAzOWMwLDAtMC4wMDQtMC4xNi0wLjAwNC0wLjIxOWMwLTMuMzQxLDMuMDc1LTQuNTAxLDMuNTk3LTQuNjc1DQoJCWMxLjc4MSwwLjAyMSw0Ljg1OCwwLjg2NCw1LjU5MywyLjEzNmMwLjA3NSwwLjEyOCwwLjE0NCwwLjI4OSwwLjE0NCwwLjQ5NWMwLDAuMTgxLTAuMDU0LDAuNC0wLjIwOCwwLjY2Ng0KCQljLTAuMDcxLDAuMTIxLTEuMzM1LDMuMTA5LTIuNDA1LDUuNGwtMC43NjUsMi4xMTljLTAuNTcyLDEuODUxLTEuNDczLDMuNzAzLTIuNDUyLDMuNzAzDQoJCUM0MC41NDIsMTE0LjY2NiwzOS45MTQsMTE0LjM5MiwzOS4zOTQsMTEzLjgyN0wzOS4zOTQsMTEzLjgyN0wzOS4zOTQsMTEzLjgyN3oiLz4NCgk8cGF0aCBpZD0iUl9Bcm0iIGZpbGw9IiNGRkM5M0UiIHN0cm9rZT0iIzYwMzgxMyIgc3Ryb2tlLXdpZHRoPSIzIiBkPSJNNzkuNTA1LDg5LjYxMWwtMS4zODMtMi40NA0KCQljLTEuNTE2LTIuNjM3LTMuMjY1LTUuMDUyLTQuODA3LTcuMTc3Yy0xLjk4My0yLjczOC0zLjcxLTUuNTcxLTQuMjgxLTcuNTcyYy0wLjIwNy0wLjcyMS0wLjEwNy0xLjQxLDAuMTg5LTEuNzkNCgkJYzAuMDI4LTAuMTAyLDAuMzI3LTAuMjY1LDAuNTM5LTAuMzA5YzIuNTQxLTAuNTUsMTMuMDYsNS40OTEsMTUuNjg1LDguNzE5YzMuODQ1LDQuNzI3LDUuMzgyLDExLjM1OCw0LjUyNCwxNC42OTkNCgkJYy0wLjM1MiwxLjM2NC0xLjEzOSwyLjMzMi0yLjI3OCwyLjc5M0M4NC43ODIsOTcuNzEsODIuODY3LDk1LjU4Niw3OS41MDUsODkuNjExTDc5LjUwNSw4OS42MTFMNzkuNTA1LDg5LjYxMXoiLz4NCgk8cGF0aCBpZD0iQm9keSIgZmlsbD0iI0ZGQzkzRSIgc3Ryb2tlPSIjNjAzODEzIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iDQoJCU0zOC4wOTcsNDMuMDA3YzAsMC0zLjExLTkuNjI5LTYuMDExLTEzLjU5OGMtMS43Mi0yLjc5LTQuMi02LjI2Ny03LjQ3Ny02LjA0OWMtNC4wNjcsMC4xMDYtNi4yODMsNC45ODQtMTAuMjk5LDYuNTQ1DQoJCWMtMi42MDIsMS4wMDMtOS40NjEsMi4zMTQtOC40MDYsMGMyLjgxMy01LjgxNCwxNC4wNC05LjA3OSwxNi44NDQtMTYuMzc5YzEuMjYzLTMuMzA1LTQuMjcyLTcuMjUyLTcuOTQxLTcuOTQyDQoJCWMtMi43NDUtMC41MDEtNC4wMzksNC4yMTctNi41NDUsNS42MTVjLTEuMTUxLDAuNjQzLTQuMzM5LDEuMzA1LTMuNzUzLDBDNi42MjksNi44MzYsOS4wNTIsMS4xNzIsMTMuODQ1LTAuNDk1DQoJCWMzLjYxNy0xLjI1NCw3LjU2MiwyLjQ3MywxMC4yOTksNS4xMTljOC40NjQsOC4xODUsMTUuNjE3LDE3LjkzOCwyMy4yNCwyNi42NWw0LjUxMSw1LjEzOWMwLDAsMy4yMjUsMy45NTYsNS42OTIsNi41NjYNCgkJYzAuMDQ0LDAuMDQ1LDIuMzc4LTAuMzE3LDMuOTg5LTEuNjU3YzEuMzE0LTEuMDk2LDEuMTQxLTIuMzIzLDEuNTU5LTQuOTAyYzAuMzg0LTIuMzcxLDAuODAyLTYuNjU5LDIuMDcyLTYuNjgxDQoJCWMxLjkxNi0wLjAyOSwzLjE3Niw3Ljg2OCwzLjY2NiwxMC43OTNsMC4yNzIsMS41NjVjMC42NDMsMy40NzksMy45OTksMTMuOTQsNC4xNDQsMTQuMzg0YzAuMDQ2LDAuMTA4LDAuMTIxLDAuMjQ5LDAuMTIxLDAuMjQ5DQoJCWwwLjAyNywwLjA1NmwwLjAzOCwwLjA0N2M1LjE4NSw2LjQyOSw5LjAzOCwxNC4yMjMsOS4wMzgsMjEuNTI0YzAsMTUuNDY0LTEzLjU1NSwyNi4zNDktMzEuNjk3LDI2LjM0OQ0KCQljLTMuMzY1LDAtNi42NTctMC40NzMtOS43ODMtMS4zOThsLTAuMTY4LTAuMDQ5YzAsMC00LjkwOC0wLjQxMi0xMS4xODYsNy44NGMtMS4yNiwxLjY1Ny0xLjE0NywzLjIwMS0yLjkyMiwyLjcyNg0KCQljLTAuNTkyLTAuMTU4LTEuMDI2LTAuNTkzLTEuMzgyLTEuMzgzYy0wLjg0OC0xLjg4NC0wLjIyMi02LjM0NywwLjgxNi05LjE5N2wwLjE2My0wLjQ0OGwtMC4zNzUtMC4yOTcNCgkJYy0wLjA5Mi0wLjA3My0xMC4yNzQtNy40OTMtMTEuMzAzLTE4LjEyNWMtMC44OTYtOS4yNjgsMy43ODUtMTQuNTQ1LDUuNzI4LTE3LjQ0NGwxLjExNy0xLjg1OA0KCQljMS40MDktMy40MjgtMS4yNDMtOC4xOTUtMy41ODMtMTIuNDAxYy0xLjM5Ny0yLjUxMS0zLjY1Mi02LjE3Ni0zLjE0My03LjAzOGMwLjU2NS0wLjk1NCwyLjU4NSwwLjA2Miw0LjYyNSwxLjAzNA0KCQljMS42NTQsMC43OTEsMy4yNDUsMS45MDgsNC4zNSwxLjE3MWMxLjE0OS0wLjc2NSwwLjM5Ni0yLjY4Ni0wLjY0OS01LjM0NmMtMC45ODItMi40OTgtMi44NDEtNi40NDMtMi4xMjctOC4wNzINCgkJYzAuMTk3LTAuNDQ3LDAuNTQyLTAuNzYyLDEuMDU1LTAuOTYxYzEuODk3LTAuNzM0LDQuNjA5LDIuNDYxLDYuODA1LDQuOTYxQzMxLjUzMiw0MS40NjksMzQuNTcsNDQuOTI3LDM4LjA5Nyw0My4wMDcNCgkJTDM4LjA5Nyw0My4wMDdMMzguMDk3LDQzLjAwN3oiLz4NCgk8ZyBpZD0iTF9FeWUiPg0KCQk8cGF0aCBpZD0iV2hpdGVfMV8iIGZpbGw9IiNGRkZGRkYiIGQ9Ik00MS4yMjgsNzkuNDg5YzAsMi43ODksMi4yNjMsNS4wNSw1LjA1NCw1LjA1YzIuNzkxLDAsNS4wNTEtMi4yNjEsNS4wNTEtNS4wNQ0KCQkJYzAtMi43OTEtMi4yNjEtNS4wNTYtNS4wNTEtNS4wNTZDNDMuNDksNzQuNDM2LDQxLjIyOCw3Ni42OTgsNDEuMjI4LDc5LjQ4OUw0MS4yMjgsNzkuNDg5TDQxLjIyOCw3OS40ODl6Ii8+DQoJCTxwYXRoIGlkPSJQdXBpbF8xXyIgZmlsbD0iIzYwMzgxMyIgZD0iTTQ2Ljk2MSw3NS43OTZjMC45ODEsMCwxLjg3LDAuMzk4LDIuNTEzLDEuMDQzYzAuNjQ1LDAuNjQzLDEuMDQyLDEuNTMyLDEuMDQyLDIuNTEzDQoJCQljMCwwLjk4MS0wLjM5NywxLjg3LTEuMDQyLDIuNTE0Yy0wLjY0NCwwLjY0NC0xLjUzMiwxLjA0Mi0yLjUxMywxLjA0MnMtMS44Ny0wLjM5OC0yLjUxMy0xLjA0Mg0KCQkJYy0wLjY0NS0wLjY0NC0xLjA0Mi0xLjUzMi0xLjA0Mi0yLjUxNGMwLTAuOTgsMC4zOTgtMS44NywxLjA0Mi0yLjUxM0M0NS4wOTIsNzYuMTk0LDQ1Ljk4LDc1Ljc5Niw0Ni45NjEsNzUuNzk2TDQ2Ljk2MSw3NS43OTZ6Ig0KCQkJLz4NCgk8L2c+DQoJPGcgaWQ9IlJfRXllIj4NCgkJPHBhdGggaWQ9IldoaXRlIiBmaWxsPSIjRkZGRkZGIiBkPSJNNjUuNTY4LDc5LjQ4OWMwLDIuNzg5LDIuMjYyLDUuMDUsNS4wNTQsNS4wNWMyLjc4OCwwLDUuMDUyLTIuMjYxLDUuMDUyLTUuMDUNCgkJCWMwLTIuNzkxLTIuMjYyLTUuMDU2LTUuMDUyLTUuMDU2QzY3LjgzLDc0LjQzNiw2NS41NjgsNzYuNjk4LDY1LjU2OCw3OS40ODlMNjUuNTY4LDc5LjQ4OUw2NS41NjgsNzkuNDg5eiIvPg0KCQk8cGF0aCBpZD0iUHVwaWwiIGZpbGw9IiM2MDM4MTMiIGQ9Ik02Ny43NDUsNzkuMzUyYzAsMS45NjQsMS41OSwzLjU1NSwzLjU1NiwzLjU1NWMxLjk2MywwLDMuNTU2LTEuNTksMy41NTYtMy41NTUNCgkJCWMwLTEuOTYyLTEuNTkzLTMuNTU2LTMuNTU2LTMuNTU2QzY5LjMzNSw3NS43OTYsNjcuNzQ1LDc3LjM4OSw2Ny43NDUsNzkuMzUyTDY3Ljc0NSw3OS4zNTJMNjcuNzQ1LDc5LjM1MnoiLz4NCgk8L2c+DQoJPHBhdGggaWQ9IkxfQXJtIiBmaWxsPSIjRkZDOTNFIiBzdHJva2U9IiM2MDM4MTMiIHN0cm9rZS13aWR0aD0iMyIgZD0iTTYuMzQxLDk4Ljk5NGMtMS4wMzYtMC42NjEtMS42MzMtMS43NTMtMS43MjktMy4xNjENCgkJYy0wLjIzNC0zLjQ0NSwyLjQ5Mi05LjY4Miw3LjEzNC0xMy42MjZjMy4xNy0yLjY5NCwxNC42MTctNi43MDcsMTcuMDE0LTUuNzAzYzAuMTk4LDAuMDgzLDAuNDYzLDAuMjk3LDAuNDcyLDAuNDA0DQoJCWMwLjIyNCwwLjQyNywwLjE5NCwxLjExOS0wLjE0LDEuNzkxYy0wLjkyNywxLjg2NC0zLjE0Miw0LjMzNS01LjU5NCw2LjY2Yy0xLjkwNiwxLjgxNC00LjA2NSwzLjg2My02LjAzNSw2LjE4MWwtMS44MDcsMi4xNDENCgkJQzExLjI1OSw5OC45NDMsOC45ODYsMTAwLjY4NSw2LjM0MSw5OC45OTRMNi4zNDEsOTguOTk0TDYuMzQxLDk4Ljk5NHoiLz4NCgk8cGF0aCBpZD0iTW91dGgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzYwMzgxMyIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Ik02My4xNDgsOTUuMzkxDQoJCWMwLDAtNC41OTksMC4wMDQtNy44MTktMi43NTYiLz4NCjwvZz4NCjwvc3ZnPg0K" mediaID="gridFinityBinSnap4_cst_alonzo (vector)"/><costume name="Snap! primitives refactored script pic" center-x="75.5" center-y="11" image="data:image/png;base64,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" mediaID="gridFinityBinSnap4_cst_Snap! primitives refactored script pic"/><costume name="house" center-x="179" center-y="180" image="data:image/png;base64,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" mediaID="house_cst_house"/><costume name="house" center-x="179" center-y="180" image="data:image/png;base64,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" mediaID="street_cst_house"/><costume name="rocket(2)" center-x="63.5" center-y="119.5" image="data:image/png;base64,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" mediaID="rocket_cst_rocket(2)"/><costume name="alonzo (vector)" center-x="47.5" center-y="61.5" image="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOTVweCIgaGVpZ2h0PSIxMjNweCIgdmlld0JveD0iMCAwIDk1IDEyMyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOTUgMTIzIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnIGlkPSJJRDAuODMyMzgyOTczNzQ5MTkwNiIgdHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMykiPg0KCTxwYXRoIGlkPSJSX0xlZyIgZmlsbD0iI0ZGQzkzRSIgc3Ryb2tlPSIjNjAzODEzIiBzdHJva2Utd2lkdGg9IjMiIGQ9Ik00Ny4zMTYsMTA0LjI1MWMwLTEuMjc2LDAuMzU4LTMuMTA5LDIuMzM4LTMuNTIzDQoJCWMyLjg1Ny0wLjU5OSw2LjEyNiwyLjI5Myw3LjAxNCwzLjE0NmMtMC4wNjUsMC4zMzgsMS4wNDcsNy4xNzMsMS4wNDcsNy43NjVjMCwyLjAwNC0wLjUzNSwyLjA4My0wLjc0MywyLjExNg0KCQljLTEuOTU2LDAuMjg0LTcuMTY5LTUuMTk3LTkuNTYyLTguMzg3QzQ3LjM3NiwxMDUuMTkzLDQ3LjMxNiwxMDQuODA5LDQ3LjMxNiwxMDQuMjUxTDQ3LjMxNiwxMDQuMjUxTDQ3LjMxNiwxMDQuMjUxeiIvPg0KCTxwYXRoIGlkPSJDZW50ZXJfTGVnIiBmaWxsPSIjRkZDOTNFIiBzdHJva2U9IiM2MDM4MTMiIHN0cm9rZS13aWR0aD0iNCIgZD0iTTM5LjM5NCwxMTMuODI3Yy0xLjQxOC0xLjUzOC0xLjYyMS01LjcwNy0xLjYyMS03LjQ4Mg0KCQljMC0wLjc1MiwwLjAzOS0xLjI1MywwLjA0MS0xLjI2OGwwLjAwMi0wLjAzOWMwLDAtMC4wMDQtMC4xNi0wLjAwNC0wLjIxOWMwLTMuMzQxLDMuMDc1LTQuNTAxLDMuNTk3LTQuNjc1DQoJCWMxLjc4MSwwLjAyMSw0Ljg1OCwwLjg2NCw1LjU5MywyLjEzNmMwLjA3NSwwLjEyOCwwLjE0NCwwLjI4OSwwLjE0NCwwLjQ5NWMwLDAuMTgxLTAuMDU0LDAuNC0wLjIwOCwwLjY2Ng0KCQljLTAuMDcxLDAuMTIxLTEuMzM1LDMuMTA5LTIuNDA1LDUuNGwtMC43NjUsMi4xMTljLTAuNTcyLDEuODUxLTEuNDczLDMuNzAzLTIuNDUyLDMuNzAzDQoJCUM0MC41NDIsMTE0LjY2NiwzOS45MTQsMTE0LjM5MiwzOS4zOTQsMTEzLjgyN0wzOS4zOTQsMTEzLjgyN0wzOS4zOTQsMTEzLjgyN3oiLz4NCgk8cGF0aCBpZD0iUl9Bcm0iIGZpbGw9IiNGRkM5M0UiIHN0cm9rZT0iIzYwMzgxMyIgc3Ryb2tlLXdpZHRoPSIzIiBkPSJNNzkuNTA1LDg5LjYxMWwtMS4zODMtMi40NA0KCQljLTEuNTE2LTIuNjM3LTMuMjY1LTUuMDUyLTQuODA3LTcuMTc3Yy0xLjk4My0yLjczOC0zLjcxLTUuNTcxLTQuMjgxLTcuNTcyYy0wLjIwNy0wLjcyMS0wLjEwNy0xLjQxLDAuMTg5LTEuNzkNCgkJYzAuMDI4LTAuMTAyLDAuMzI3LTAuMjY1LDAuNTM5LTAuMzA5YzIuNTQxLTAuNTUsMTMuMDYsNS40OTEsMTUuNjg1LDguNzE5YzMuODQ1LDQuNzI3LDUuMzgyLDExLjM1OCw0LjUyNCwxNC42OTkNCgkJYy0wLjM1MiwxLjM2NC0xLjEzOSwyLjMzMi0yLjI3OCwyLjc5M0M4NC43ODIsOTcuNzEsODIuODY3LDk1LjU4Niw3OS41MDUsODkuNjExTDc5LjUwNSw4OS42MTFMNzkuNTA1LDg5LjYxMXoiLz4NCgk8cGF0aCBpZD0iQm9keSIgZmlsbD0iI0ZGQzkzRSIgc3Ryb2tlPSIjNjAzODEzIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iDQoJCU0zOC4wOTcsNDMuMDA3YzAsMC0zLjExLTkuNjI5LTYuMDExLTEzLjU5OGMtMS43Mi0yLjc5LTQuMi02LjI2Ny03LjQ3Ny02LjA0OWMtNC4wNjcsMC4xMDYtNi4yODMsNC45ODQtMTAuMjk5LDYuNTQ1DQoJCWMtMi42MDIsMS4wMDMtOS40NjEsMi4zMTQtOC40MDYsMGMyLjgxMy01LjgxNCwxNC4wNC05LjA3OSwxNi44NDQtMTYuMzc5YzEuMjYzLTMuMzA1LTQuMjcyLTcuMjUyLTcuOTQxLTcuOTQyDQoJCWMtMi43NDUtMC41MDEtNC4wMzksNC4yMTctNi41NDUsNS42MTVjLTEuMTUxLDAuNjQzLTQuMzM5LDEuMzA1LTMuNzUzLDBDNi42MjksNi44MzYsOS4wNTIsMS4xNzIsMTMuODQ1LTAuNDk1DQoJCWMzLjYxNy0xLjI1NCw3LjU2MiwyLjQ3MywxMC4yOTksNS4xMTljOC40NjQsOC4xODUsMTUuNjE3LDE3LjkzOCwyMy4yNCwyNi42NWw0LjUxMSw1LjEzOWMwLDAsMy4yMjUsMy45NTYsNS42OTIsNi41NjYNCgkJYzAuMDQ0LDAuMDQ1LDIuMzc4LTAuMzE3LDMuOTg5LTEuNjU3YzEuMzE0LTEuMDk2LDEuMTQxLTIuMzIzLDEuNTU5LTQuOTAyYzAuMzg0LTIuMzcxLDAuODAyLTYuNjU5LDIuMDcyLTYuNjgxDQoJCWMxLjkxNi0wLjAyOSwzLjE3Niw3Ljg2OCwzLjY2NiwxMC43OTNsMC4yNzIsMS41NjVjMC42NDMsMy40NzksMy45OTksMTMuOTQsNC4xNDQsMTQuMzg0YzAuMDQ2LDAuMTA4LDAuMTIxLDAuMjQ5LDAuMTIxLDAuMjQ5DQoJCWwwLjAyNywwLjA1NmwwLjAzOCwwLjA0N2M1LjE4NSw2LjQyOSw5LjAzOCwxNC4yMjMsOS4wMzgsMjEuNTI0YzAsMTUuNDY0LTEzLjU1NSwyNi4zNDktMzEuNjk3LDI2LjM0OQ0KCQljLTMuMzY1LDAtNi42NTctMC40NzMtOS43ODMtMS4zOThsLTAuMTY4LTAuMDQ5YzAsMC00LjkwOC0wLjQxMi0xMS4xODYsNy44NGMtMS4yNiwxLjY1Ny0xLjE0NywzLjIwMS0yLjkyMiwyLjcyNg0KCQljLTAuNTkyLTAuMTU4LTEuMDI2LTAuNTkzLTEuMzgyLTEuMzgzYy0wLjg0OC0xLjg4NC0wLjIyMi02LjM0NywwLjgxNi05LjE5N2wwLjE2My0wLjQ0OGwtMC4zNzUtMC4yOTcNCgkJYy0wLjA5Mi0wLjA3My0xMC4yNzQtNy40OTMtMTEuMzAzLTE4LjEyNWMtMC44OTYtOS4yNjgsMy43ODUtMTQuNTQ1LDUuNzI4LTE3LjQ0NGwxLjExNy0xLjg1OA0KCQljMS40MDktMy40MjgtMS4yNDMtOC4xOTUtMy41ODMtMTIuNDAxYy0xLjM5Ny0yLjUxMS0zLjY1Mi02LjE3Ni0zLjE0My03LjAzOGMwLjU2NS0wLjk1NCwyLjU4NSwwLjA2Miw0LjYyNSwxLjAzNA0KCQljMS42NTQsMC43OTEsMy4yNDUsMS45MDgsNC4zNSwxLjE3MWMxLjE0OS0wLjc2NSwwLjM5Ni0yLjY4Ni0wLjY0OS01LjM0NmMtMC45ODItMi40OTgtMi44NDEtNi40NDMtMi4xMjctOC4wNzINCgkJYzAuMTk3LTAuNDQ3LDAuNTQyLTAuNzYyLDEuMDU1LTAuOTYxYzEuODk3LTAuNzM0LDQuNjA5LDIuNDYxLDYuODA1LDQuOTYxQzMxLjUzMiw0MS40NjksMzQuNTcsNDQuOTI3LDM4LjA5Nyw0My4wMDcNCgkJTDM4LjA5Nyw0My4wMDdMMzguMDk3LDQzLjAwN3oiLz4NCgk8ZyBpZD0iTF9FeWUiPg0KCQk8cGF0aCBpZD0iV2hpdGVfMV8iIGZpbGw9IiNGRkZGRkYiIGQ9Ik00MS4yMjgsNzkuNDg5YzAsMi43ODksMi4yNjMsNS4wNSw1LjA1NCw1LjA1YzIuNzkxLDAsNS4wNTEtMi4yNjEsNS4wNTEtNS4wNQ0KCQkJYzAtMi43OTEtMi4yNjEtNS4wNTYtNS4wNTEtNS4wNTZDNDMuNDksNzQuNDM2LDQxLjIyOCw3Ni42OTgsNDEuMjI4LDc5LjQ4OUw0MS4yMjgsNzkuNDg5TDQxLjIyOCw3OS40ODl6Ii8+DQoJCTxwYXRoIGlkPSJQdXBpbF8xXyIgZmlsbD0iIzYwMzgxMyIgZD0iTTQ2Ljk2MSw3NS43OTZjMC45ODEsMCwxLjg3LDAuMzk4LDIuNTEzLDEuMDQzYzAuNjQ1LDAuNjQzLDEuMDQyLDEuNTMyLDEuMDQyLDIuNTEzDQoJCQljMCwwLjk4MS0wLjM5NywxLjg3LTEuMDQyLDIuNTE0Yy0wLjY0NCwwLjY0NC0xLjUzMiwxLjA0Mi0yLjUxMywxLjA0MnMtMS44Ny0wLjM5OC0yLjUxMy0xLjA0Mg0KCQkJYy0wLjY0NS0wLjY0NC0xLjA0Mi0xLjUzMi0xLjA0Mi0yLjUxNGMwLTAuOTgsMC4zOTgtMS44NywxLjA0Mi0yLjUxM0M0NS4wOTIsNzYuMTk0LDQ1Ljk4LDc1Ljc5Niw0Ni45NjEsNzUuNzk2TDQ2Ljk2MSw3NS43OTZ6Ig0KCQkJLz4NCgk8L2c+DQoJPGcgaWQ9IlJfRXllIj4NCgkJPHBhdGggaWQ9IldoaXRlIiBmaWxsPSIjRkZGRkZGIiBkPSJNNjUuNTY4LDc5LjQ4OWMwLDIuNzg5LDIuMjYyLDUuMDUsNS4wNTQsNS4wNWMyLjc4OCwwLDUuMDUyLTIuMjYxLDUuMDUyLTUuMDUNCgkJCWMwLTIuNzkxLTIuMjYyLTUuMDU2LTUuMDUyLTUuMDU2QzY3LjgzLDc0LjQzNiw2NS41NjgsNzYuNjk4LDY1LjU2OCw3OS40ODlMNjUuNTY4LDc5LjQ4OUw2NS41NjgsNzkuNDg5eiIvPg0KCQk8cGF0aCBpZD0iUHVwaWwiIGZpbGw9IiM2MDM4MTMiIGQ9Ik02Ny43NDUsNzkuMzUyYzAsMS45NjQsMS41OSwzLjU1NSwzLjU1NiwzLjU1NWMxLjk2MywwLDMuNTU2LTEuNTksMy41NTYtMy41NTUNCgkJCWMwLTEuOTYyLTEuNTkzLTMuNTU2LTMuNTU2LTMuNTU2QzY5LjMzNSw3NS43OTYsNjcuNzQ1LDc3LjM4OSw2Ny43NDUsNzkuMzUyTDY3Ljc0NSw3OS4zNTJMNjcuNzQ1LDc5LjM1MnoiLz4NCgk8L2c+DQoJPHBhdGggaWQ9IkxfQXJtIiBmaWxsPSIjRkZDOTNFIiBzdHJva2U9IiM2MDM4MTMiIHN0cm9rZS13aWR0aD0iMyIgZD0iTTYuMzQxLDk4Ljk5NGMtMS4wMzYtMC42NjEtMS42MzMtMS43NTMtMS43MjktMy4xNjENCgkJYy0wLjIzNC0zLjQ0NSwyLjQ5Mi05LjY4Miw3LjEzNC0xMy42MjZjMy4xNy0yLjY5NCwxNC42MTctNi43MDcsMTcuMDE0LTUuNzAzYzAuMTk4LDAuMDgzLDAuNDYzLDAuMjk3LDAuNDcyLDAuNDA0DQoJCWMwLjIyNCwwLjQyNywwLjE5NCwxLjExOS0wLjE0LDEuNzkxYy0wLjkyNywxLjg2NC0zLjE0Miw0LjMzNS01LjU5NCw2LjY2Yy0xLjkwNiwxLjgxNC00LjA2NSwzLjg2My02LjAzNSw2LjE4MWwtMS44MDcsMi4xNDENCgkJQzExLjI1OSw5OC45NDMsOC45ODYsMTAwLjY4NSw2LjM0MSw5OC45OTRMNi4zNDEsOTguOTk0TDYuMzQxLDk4Ljk5NHoiLz4NCgk8cGF0aCBpZD0iTW91dGgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzYwMzgxMyIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Ik02My4xNDgsOTUuMzkxDQoJCWMwLDAtNC41OTksMC4wMDQtNy44MTktMi43NTYiLz4NCjwvZz4NCjwvc3ZnPg0K" mediaID="gFTopSurround_cst_alonzo (vector)"/></media></snapdata>