<snapdata remixID="14248158"><project name="U5L6TicTacToe" app="Snap! 10.5.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U5L6TicTacToe"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="errorObsolete"></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.00000300000002" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="makeBoard" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><l>Empty</l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>30</l><comment w="78" collapsed="true">3.3.3 TIF B</comment></block><block s="setScale"><l>95</l><comment w="190" collapsed="true">Oops costumes are a bit too big.</comment></block><block s="doSetVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><l>3</l><script><custom-block s="for %upvar = %n to %n %cs"><l>j</l><l>1</l><l>3</l><script><block s="gotoXY"><block s="reportVariadicSum"><list><l>-100</l><block s="reportVariadicProduct"><list><l>50</l><block var="j"/></list></block></list></block><block s="reportDifference"><l>100</l><block s="reportVariadicProduct"><list><l>50</l><block var="i"/></list></block></block></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block></script></custom-block></script></custom-block><block s="hide"></block></script></block-definition><block-definition s="possible winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="status of triple %&apos;triple&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block var="triple"/></block></block></script></block-definition><block-definition s="status of all winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="status of triple %l"><l/></custom-block></autolambda><list></list></block><custom-block s="possible winning triples"></custom-block></block></block></script></block-definition><block-definition s="won? %&apos;who&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><custom-block s="status of all winning triples"></custom-block><block s="reportNewList"><list><block var="who"/><block var="who"/><block var="who"/></list></block></block></block></script></block-definition><block-definition s="tied?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block><l></l></list></block></block></script></block-definition><block-definition s="draw win line" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>8</l><script><block s="doDeclareVariables"><list><l>line</l></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><custom-block s="status of all winning triples"></custom-block></block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><custom-block s="status of all winning triples"></custom-block></block><block s="reportNewList"><list><l>O</l><l>O</l><l>O</l></list></block></list></block></list></block><script><block s="doSetVar"><l>line</l><block s="reportListItem"><block var="i"/><block var="win lines"/></block></block><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="line"/><comment w="137.33333333333334" collapsed="false">This is why each line in WIN LINES is a list of points, each of which is a list of x,y coordinates:  It allows us to use the endpoints, as points, in the GO TO block.</comment></block></block><block s="down"></block><block s="doGotoObject"><block s="reportListItem"><l>2</l><block var="line"/></block></block><block s="up"></block></script><list></list></block></script></block></script><scripts><comment x="174" y="6.666666666666667" w="244" collapsed="false">I&apos;m kind of bummed that I didn&apos;t find a beautiful one-line solution using FIND FIRST, but it just gives the value it finds, not the position in the list, which is what we need to find the line endpoints in WIN LINES. So it&apos;s a plain old fashioned FOR loop.</comment></scripts></block-definition><block-definition s="move in this square" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>X</l></block><block s="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="bubble"><l>X won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l></block><block s="doIf"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="bubble"><l>O won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><custom-block s="tied?"></custom-block></list></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block></script><list></list></block><block s="doDeclareVariables"><list><l>available squares</l></list></block><block s="doSetVar"><l>available squares</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="available squares"/></block><l>1</l></list></block></list></block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="available squares"/></block><block var="board"/><l>X</l></block><block s="doIf"><block s="reportNot"><custom-block s="won? %s"><l>X</l></custom-block></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script><list></list></block></script></block-definition><block-definition s="can player %&apos;player&apos; win now" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportIsA"><custom-block s="winning square for player %s"><block var="player"/></custom-block><l><option>number</option></l></block></block></script></block-definition><block-definition s="best empty sqaure" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="board"/><l></l></block></autolambda><list></list></block><block s="reportNewList"><list><l>5</l><l>1</l><l>3</l><l>7</l><l>9</l><l>2</l><l>4</l><l>6</l><l>8</l></list></block></block></block></script></block-definition><block-definition s="oponent %&apos;oponent&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="oponent"/><l>X</l></list></block><l>O</l><l>X</l></block></block></script></block-definition><block-definition s="winning square for player %&apos;player&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>triple</l></list></block><block s="doSetVar"><l>triple</l><custom-block s="winning triple for player %s"><block var="player"/></custom-block></block><block s="doIf"><block s="reportIsA"><block var="triple"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="triple"/></block></block></script><list></list></block></script></block-definition><block-definition s="winning triple for player %&apos;player&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="how many %s in %l"><block var="player"/><l/></custom-block><l>2</l></list></block><block s="reportVariadicEquals"><list><custom-block s="how many %s in %l"><custom-block s="oponent %s"><block var="player"/></custom-block><l/></custom-block><l>0</l></list></block></list></block></autolambda><list></list></block><custom-block s="status of all winning triples"></custom-block></block></block></script></block-definition><block-definition s="how many %&apos;letter&apos; in %&apos;triple&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block var="letter"/></list></block></autolambda><list></list></block><block var="triple"/></block></block></block></script></block-definition><block-definition s="next move for computer" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><custom-block s="can player %s win now"><l>O</l></custom-block><script><block s="doReport"><custom-block s="winning square for player %s"><l>O</l></custom-block></block></script><list></list></block><block s="doIf"><custom-block s="can player %s win now"><l>X</l></custom-block><script><block s="doReport"><custom-block s="winning square for player %s"><l>X</l></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="best empty sqaure"></custom-block></block></script></block-definition></blocks><primitives></primitives><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="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="741"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="742"></list></costumes><sounds><list struct="atomic" id="743"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="50.000000000000085" y="-49.99999999999999" heading="90" scale="0.95" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="748"><costumes><list id="749"><item><ref mediaID="Square_cst_Empty"></ref></item><item><ref mediaID="Square_cst_X"></ref></item><item><ref mediaID="Square_cst_O"></ref></item></list></costumes><sounds><list struct="atomic" id="750"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="10.666666666666686" y="10"><block s="receiveGo"></block><block s="clear"></block><custom-block s="makeBoard"></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>board</l><block s="reportNumbers"><l>1</l><l>9</l></block></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="11" y="312.3333333333339"><custom-block s="won? %s"><l></l></custom-block></script><script x="11" y="281.00000000000057"><custom-block s="status of all winning triples"></custom-block></script><script x="11.666666666666686" y="164.33333333333297"><custom-block s="possible winning triples"></custom-block></script><script x="14.666667666666626" y="242.66666666666686"><block s="reportVariadicEquals"><list><custom-block s="status of triple %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></custom-block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></list></block></script><script x="14.333333333333314" y="217.99999999999955"><custom-block s="status of triple %l"><l/></custom-block></script><script x="17" y="338.33333333333445"><custom-block s="tied?"></custom-block></script><script x="12.666667666666683" y="187.3333333333331"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></block></script><script x="10" y="1266.3333333333399"><block s="doSetVar"><l>win lines</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>50</l></list></block><block s="reportNewList"><list><l>100</l><l>50</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>0</l></list></block><block s="reportNewList"><list><l>100</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>-50</l></list></block><block s="reportNewList"><list><l>100</l><l>-50</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-50</l><l>100</l></list></block><block s="reportNewList"><list><l>-50</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>100</l></list></block><block s="reportNewList"><list><l>0</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>50</l><l>100</l></list></block><block s="reportNewList"><list><l>50</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>100</l></list></block><block s="reportNewList"><list><l>100</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>-100</l></list></block><block s="reportNewList"><list><l>100</l><l>100</l></list></block></list></block></list></block></block></script><script x="12.000000999999997" y="1480.6666666666729"><custom-block s="draw win line"></custom-block></script><script x="11.333333333333371" y="1533.6666666666715"><custom-block s="makeBoard"></custom-block></script><script x="17.333333333333428" y="366.6666666666675"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><block s="reportVariadicEquals"><list><block s="getCostumeIdx"></block><l>1</l></list></block></list></block><script><custom-block s="move in this square"></custom-block></script><list></list></block><block s="doBroadcast"><custom-block s="best empty sqaure"></custom-block><list></list></block></script><script x="13.333333333333968" y="507.666666666668"><block s="receiveMessage"><l><option>any message</option></l><list><l>data</l></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><block var="position number"/></list></block><script><custom-block s="move in this square"></custom-block></script><list></list></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="99.99999999999991" y="99.99999999999999" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="255,32,0,1" pen="tip" id="994"><costumes><list struct="atomic" id="995"></list></costumes><sounds><list struct="atomic" id="996"></list></sounds><blocks></blocks><variables></variables><scripts><script x="27" y="23.666666666666668"><block s="receiveGo"></block><block s="hide"></block><block s="setSize"><l>5</l></block><block s="setColor"><color>255,32,0,1</color></block></script></scripts></sprite><watcher scope="Square" var="position number" style="normal" x="10.000000000001066" y="298.50000199999994" color="243,118,29" hidden="true"/><watcher var="playing" style="normal" x="10.000000000001066" y="325.499996" color="243,118,29" hidden="true"/><watcher var="win lines" style="normal" x="10.000000000001066" y="177.99999800000003" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="0" y="26.999999999999982" color="243,118,29" extX="80" extY="70"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="1011">O,X,O,X,O,X,O,X,9</list></variable><variable name="playing"><bool>false</bool></variable><variable name="win lines"><list id="1012"><item><list id="1013"><item><list struct="atomic" id="1014">-100,50</list></item><item><list struct="atomic" id="1015">100,50</list></item></list></item><item><list id="1016"><item><list struct="atomic" id="1017">-100,0</list></item><item><list struct="atomic" id="1018">100,0</list></item></list></item><item><list id="1019"><item><list struct="atomic" id="1020">-100,-50</list></item><item><list struct="atomic" id="1021">100,-50</list></item></list></item><item><list id="1022"><item><list struct="atomic" id="1023">-50,100</list></item><item><list struct="atomic" id="1024">-50,-100</list></item></list></item><item><list id="1025"><item><list struct="atomic" id="1026">0,100</list></item><item><list struct="atomic" id="1027">0,-100</list></item></list></item><item><list id="1028"><item><list struct="atomic" id="1029">50,100</list></item><item><list struct="atomic" id="1030">50,-100</list></item></list></item><item><list id="1031"><item><list struct="atomic" id="1032">-100,100</list></item><item><list struct="atomic" id="1033">100,-100</list></item></list></item><item><list id="1034"><item><list struct="atomic" id="1035">-100,-100</list></item><item><list struct="atomic" id="1036">100,100</list></item></list></item></list></variable></variables></scene></scenes></project><media name="U5L6TicTacToe" app="Snap! 10.5.0, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="29" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAAAStJREFUaEPtmyEOg0AQRX9v0Bu0Bt0mCAxJK9bsLXoDLA5wWE6zZkUFBkFSj6E34AhlG9Kkpa2e3XwUct78/zIGNgBKAAcAx/k9xOe2WSBPAM4hEs5c10/IUWuNJEn2PgN3XTcaYxyC43iH1FqPTdMgiiKvIYdhGLMsgzFmDVmWJYqi8DnE1+xVVcHxrJIkpGf5Mkk66VFlWVfWlXWVtQE6SSdlNfLvNKwr68q6ytoAnaSTshrJE0In6SSdlLUBOkknZTWSd5JO0kk6KWsDdJJOymok7ySdpJN0UtYG6CSdlNVI3kk6SSdDcFIpNdV1jTiOtx7xrEbt+37K8xzWWsex+jx7UkohTVOvIdu2nay1Dv4rpM8B/pr9meRl+SB9FyIhgLuDDPVXiVdmD7kbqAKqUfW9AAAAAElFTkSuQmCC" mediaID="Square_cst_Empty"/><costume name="X" center-x="29" center-y="29" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA6CAYAAAAKjPErAAAAAXNSR0IArs4c6QAAA8dJREFUaEPd271P20AYBvCHVkIMlsjQIRsM3RgS9kKCutAJ+AuAjYEhqEu2wMYIAwsMwMYGY5cKBsaqAgW2DrAxVBVIDAipUnlcznIO+2zfhx3nJCQUO9i/e997z71zhzCYrQLgXtCGXn5ZB1ADUB8Q7zsAVQDPAP4A+CmQDQDNAUHKjDMZ+ex5HlZXV4dHRkZKZX56esLBwQHu7u4Skf4J9Xodp6enqFSY2uVoCwsLODk5CW52YmLi9/X19YeXDH0TyeCkMkGXl5f9KIq2v7+P29tbrK+z3EjI+fn5nt4oA1QGdjodH7exsRGN5MGxsTHwi6L1M1QGLi4uBhFVItkTDH2/Q1VABigRyZOioMx1RrbolgRMjYyCstqy6hYJTQPMhPRL09kZWJAeHh78ABYJlbMrPAbl7EqVruEvXVxcoNlsFgrNAswcSYEtEioDG42Gn2GqljmSRUJlYK1W84FJT2PaSGLzjKguUDtd8x6jJkArSNcRNQVaQ7qCcjjMzMzg/v7/P+zTjkHjKURVxWyOUVtAq5G0WXVl4OjoqF/kxsfHtZ4ijapr3BVNIhoF5DRh8vjoBBk3RvlQz8dCVeeExyAjaAp0kq6q6YXHCF1aWnrjdBFBcRFnkRQXuLm58aN3eXkZwGQoz5mcnAyqqK0I5obkhTgF8KE+CspjTFFGks020Hm6hnMyCrqzs4O9vT2nwFyRcRENd8Tx8bGyMGnNH2mXP3T/eNT3GNGpqSlcXV31HI4rSDau7bzwyDdJ5PT0NLrd7mAi5SIjd4CraOYaSU4ToooSyMKzu7urnF5Kla5Ry/d8KFBNLzaAuVXXOKBAuIY6T9e0a6MuoU6RaYGqiHJPhtsVJs0ZMitQBeXYZeXVbU6QusAwtNVq4fDwMHCZQK0jxX6guDvV8n1SZAizAbWKzLp8n4TkcRtQa0gXQNEJplArSBtro0lRNYEaI/MAmkbUCJkn0ASqjSwCqAvVQnKZkOsyouku3yeNQ9XxLGM0M9Lm8r0JMsv0kgkpA/meDz9L2gQ1xZhGNDXS5eKvaSfIqct1Xj7ris5PhexnYFwxCr89logsA1BAt7a2sLa2FiSGgG5vb8e/Wzc3N9ezCepidds0VeXvR709Njs7i83NTZ7a+ypou93G0dERuE/BVgagAMvQarUqXvDtRXqe9/fx8fF92YBx0NfPz8Xr2Z8BfAqnwcrKCtgbZWusJ+E3mLn3JJBfAXhlA6W83x9EcneUW8FfAAwDOAfwK+Uf6OfTPr7e3HcixX+V4If8+dbPd65zb/8AvCU3cMSBHxoAAAAASUVORK5CYII=" mediaID="Square_cst_X"/><costume name="O" center-x="28" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAABGBJREFUaEPtmos1c0EQx/dWgApIBagAFaACVIAKklSAClABKkhSASpABajg+n73fJMzWfcxu/eRCHNOjkf27u5//vPa2Zs45wbOuZ1/P5dVJsl/kP1lReicG/5KkMM0TX88q0mSDJ1zgmOWyTRNl8ZqkwQjzaQ7kK+vr+7t7S1bdX193W1sbLSq0NZBTiYTd39/78bjsXt6eioFs7W15XZ3d93BwYHb2WkuyLcCEqaGw2EG7uPjI4ql1dXVDGy/36/NdKMgAXR1deUGA9JtsWgT1aZb9ATznZ6eOoDHSGMgb25u3Pn5+TfmAAQjYoZlmxSz5qf4rIwH4MXFhTs+Pg7G2QhIwF1eXs4sjk/BAOBiBB/meXxay9nZWQY2RGqBxDxPTk4y3xOBOQDDXhPC3ADTzDL39fW12XyjQQJwb29vJmIeHR1lAGN9p0gprAXQ29vb6RAi8Wg0Mq0VDRIG8UMRomBVwKnLLPMTtUXwTxitkiiQ/mIsFBMQqjaX9z2KRcEhyg0GiY8cHh5OFyG0+0EnZvMhz2C6pCqRu7u70hgQDLLX6zlyG7K/vz8TdEI2Wncswefh4SGbhrLw5eWlcMogkDBGukBWVlYysE0HGSt4ghHgPj8/s0dIKzCcJ2aQTAqLUqaVTWrdaN1xWukoGzbzlG4GqSckF4rJ1t1o3edhU3JokeLNILe3t6c5sctoWqUEHW2psqiUfDGBxETX1tamz76/v8/NF30Alr2ZQFq0VaXxNr+n+nl+fs6WyLMyE0gSvZRUixBwfIXpeEFpqSsxxppAcpKQ0wD1YuzJoi028UPqaCTPL/9AiuYJOpIfFynoyP508CFPskctJibVILeorcqyPf6BFMp1iH58fHT8vUhCq5NiBdnc3PzW+jQxuUTRdTBz4aN9T4OsOrvNg2F9xo1OIboTkJds5wFMr6mLlbw2jDLXYia1zVcdUOcBWKe4vJhh8kk2Tv6RA+oiBR9NQNER0AxSm8QimaxlX2aQuj6EWU7hbV+5VZk+B3e6FSJFdbUZJBPpKMvvTDpPoSiXQ3LRgdl8ChEgvubmmU78/muZZQUxCVjtAwQj2Oy6AiLYwKIcGqpiRDBIJsZU5SSOXxJtu2pN+l1DyjhMtmz9YJCwiSYBKikl5PKljg/jLnTv5Vqe3i8AqywpCiQb9aNt26brmyh7sHYpokGyiO/8AJWr7zqM+c9y7+F3x0PaorVA5pku/8N8aHjV7QVhLVxL6LdGrCYa3BmoYgVf4QJGgpGMByTRmBxmLRyYi6YZVuI3igkynDisc8k+ajMpExH1aA3ykYCklQO7csXOJmWjgJIrBwDkvesDe5grn5go3hhIDda/+q6yhLLvm7iibxykro7klRW5R7SC5d5TXokJNc28NVoDqRfDlPVrZ9pEtenKa2cxJlmmwE5AWhlsa5ypM9DW4l3N+9uY/PZ69jhN07h3xrqiyLBOkiTcygqO3/kOukFPP25I1pL88eZZpfYvlc1Jo4IBAH0AAAAASUVORK5CYII=" mediaID="Square_cst_O"/></media></snapdata>