Discuss Scratch

imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Scratch to Python
sb3topy is a Scratch to Python converter I have created. I've been working on it intermittently for a long time now, but finally had some time to get it ready to release! Check it out on GitHub: https://github.com/BirdLogics/sb3topy

Converted projects do not run (always) faster than Scratch, but the code is converted into single readable file. Most blocks are converted to a single line of Python code.


Projects in the above image above by @griffpatch(left), @RokCoder (middle) , and @jonzo (right).

What's Supported

Although many blocks and features have been implemented, there are still a few major features missing. Click here to see a full list of supported blocks.

Working
  • Graphics
  • Sounds
  • Custom Blocks
  • Pen
  • Color, Brightness, and Ghost effects
  • Touching [sprite v] block
  • Cloning
Not Yet
  • Variable monitors
  • Speech bubbles
  • Some “hacked” blocks
  • Touching color block
  • Sprite dragging
  • Music blocks
There are also some edge cases where the timing of a project might not always exactly match the Scratch player, although I've made an effort to make it as close as possible. Unfortunately, the asyncio module doesn't provide control over the execution order at the level I would need unless I rewrite the event loop, which would be slow unless it was done in C.

About SVGs
Currently, I'm using the CairoSVG library to convert SVGs to PNG. I've had some trouble installing it on one of my computers, so let me know if you also have trouble. I'm considering adding support for a different library which is easier to setup (let me know if know a good one). If someone wants to add a “convert all costumes to bitmap” feature to nono word that could also be handy…

Last edited by imfh (May 7, 2022 20:28:24)


Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
mbrick2
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Wow!!!!








My Forums
ATs
Collabaration
My collabs
AIPoint
AspectOS
CoreOS
OddyseyOS
Cops and Robbers
#BringBackManagerRights
#ReturnRightsToManagers
#WeAreForManagerRights
#LetsRemindAboutMangers
#WeAreMangers
#MangersMustManage

The road to 1000 posts!
0 ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ 1000
80% complete

Banner Made By @Abcde26



Card Made By @Polygon
skymover1239
Scratcher
500+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

That is awesome!!



John 3:16 wrote:

For God so loved the world that he gave his one and only Son that whoever believes in him shall not perish but have eternal life
First time a moderator got ninjaed??
500 Posts
Current Mainline projects
AquaCSS - A CSS framework.
Ink - An editor that does, lots of things.
Sid72020123
Scratcher
500+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

WOW!!!

Hello!
god286
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

I will try it soon! This is cool!

Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though

Here are some of my followers!

I joined: 5 years, 9 months, 24 days ago (31/03/2018)
I have: 479 followers
In total, I have attained: 1,403 loves, 1,145 favourites, and 33,731 views.
Fun Fact: If my account continued to gain followers at a similar rate to right now, in 14,210 years I would reach the number of followers griffpatch has today! Try to imagine how many followers he would have then!
Thank you everyone!
Script created by god286.
Retr0id
Scratcher
68 posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

It would be cool to see some example output (e.g. for the projects demoed in the screenshot)

btw i use aarch64
SansStudios
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Cool! I did a bit of testing, and it's pretty awesome! Will support for the “For Each” control block ever be added? I use it in most of my projects

scratchcloud
Click above to check it out! I've worked on it for over a year!























Just like sudden sadness comes hangin' on the breeze
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Retr0id wrote:

It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
Do you mean like the output log in the GUI? I guess I could add a screenshot of that.

SansStudios wrote:

Cool! I did a bit of testing, and it's pretty awesome! Will support for the “For Each” control block ever be added? I use it in most of my projects
Yeah, I'll probably add it eventually. Right now, I'm working on rewriting how blocks are stored so everything is saved in a single JSON file instead of messy Python code (see the feature-type-switches branch, it's currently broken). That means I have to finish that before adding new blocks, however, so it might be a little while until I add the for loop.

Once I do get new format done, adding new blocks like that should be pretty easy.

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
NFlex23
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Very cool! I can't wait for variable monitors to be implemented so I can test out one of my projects in it.

Edit: I keep on getting this error when trying to convert https://scratch.mit.edu/projects/540224710

Another edit: it's probably because the costumes are SVGs…?

Last edited by NFlex23 (May 1, 2022 18:20:06)


Help improve the Advanced Topics (Really!)
Before you create a topic:
Always search for duplicates or other similar topics before making an umbrella topic, e.g., “The Mac Topic”.
  • Is it about something you are planning on making but haven't made yet? If so, please wait to post until you have created a working prototype. This is a key factor to keeping the ATs as clean as possible.
  • The ATs aren't technical support. It is perfectly valid to ask questions about things related to programming, but not issues with external websites, apps, or devices. Most sites have their own support system; try asking there!
  • Is it related to something you are making in Scratch? (This includes OSes and other Scratch projects) If so, please post in Collaboration, Show and Tell, or another similar forum.
  • Is your topic questionably “advanced”? Try browsing the other forums to see if your topic fits better in one of those.
  • Issues with Scratch itself should be put in Bugs and Glitches.
Before you post: Is what you're posting likely to start an argument or derail the thread (e.g., browsers, operating systems)? If so, please re-think your post!





Retr0id
Scratcher
68 posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

imfh wrote:

Retr0id wrote:

It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
Do you mean like the output log in the GUI? I guess I could add a screenshot of that.

I mean like, an example of the python code that it generates.

btw i use aarch64
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

NFlex23 wrote:

Edit: I keep on getting this error when trying to convert https://scratch.mit.edu/projects/540224710

Another edit: it's probably because the costumes are SVGs…?
Ok, I found the issue. Since you don't have SVG conversion setup, it can't convert SVG files and needs to use a fallback image. However, it was still trying to get the bitmap resolution for the fallback image. I've fixed the error for now by just adding a default bitmap resolution.

Retr0id wrote:

imfh wrote:

Retr0id wrote:

It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
Do you mean like the output log in the GUI? I guess I could add a screenshot of that.

I mean like, an example of the python code that it generates.
Oh, yeah that could be helpful.

Last edited by imfh (May 1, 2022 21:28:45)


Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Version 1.1 Beta is now out! I finished refactoring the specmap and added hidden blocks. I also fixed a bug which broke a lot of projects, and improved performance by avoiding debug logs by default.

The new specmap, which stores the data for each block, is pretty neat. All of the blocks are stored in a JSON file, so it's really easy to add new ones or modify existing ones. Here's an example block:
{
    "control_for_each": {
        "type": "stack",
        "args": {
            "SUBSTACK": "stack",
            "VARIABLE": "variable",
            "VALUE": "int"
        },
        "code": [
            "for i in range(1, {VALUE}+1):",
            "    {VARIABLE} = i",
            "    {SUBSTACK}"
        ]
    }
}
You can see the file all of the blocks are stored in here and the documentation for it here.

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

Here's some example output for Opac3tyD by @griffpatch (the others are too big to post):
import math
import time
 
import engine
from engine.events import *
from engine.operators import *
from engine.types import *
 
 
@sprite('Stage')
class Stage(Target):
    """Sprite Stage"""
 
    def __init__(self, parent=None):
        super().__init__(parent)
        if parent is not None:
            return
 
        self._xpos = 0
        self._ypos = 0
        self._direction = 90
        self.shown = True
        self.pen = Pen(self)
 
        self.costume = Costumes(
           1, 100, "None", [
            {
                'name': "backdrop1",
                'path': "4b2a86f1da4c2593288abbe7f56eab5a-svg-2x.png",
                'center': (480, 360),
                'scale': 2
            },
            {
                'name': "backdrop2",
                'path': "a10d191b1511644ed42d3e869577e1ce-svg-2x.png",
                'center': (480, 360),
                'scale': 2
            }
        ])
 
        self.sounds = Sounds(
            100, [
 
        ])
 
        self.var_Resolution = 3
        self.var_Zoom = 299
 
 
 
        self.sprite.layer = 0
 
 
 
 
@sprite('Blank')
class SpriteBlank(Target):
    """Sprite Blank"""
 
    def __init__(self, parent=None):
        super().__init__(parent)
        if parent is not None:
            return
 
        self._xpos = 36
        self._ypos = 28
        self._direction = 90
        self.shown = True
        self.pen = Pen(self)
 
        self.costume = Costumes(
           0, 100, "all around", [
            {
                'name': "costume1",
                'path': "3339a2953a3bf62bb80e54ff575dbced-fallback.png",
                'center': (0, 0),
                'scale': 1
            }
        ])
 
        self.sounds = Sounds(
            100, [
            {
                'name': "pop",
                'path': "83a9787d4cb6f3b7632b4ddfebf74367.wav"
            }
        ])
 
 
 
 
 
        self.sprite.layer = 3
 
 
 
 
@sprite('3d demo')
class Spriteddemo(Target):
    """Sprite 3d demo"""
 
    def __init__(self, parent=None):
        super().__init__(parent)
        if parent is not None:
            return
 
        self._xpos = 132.1725565687481
        self._ypos = 4.912546966277481
        self._direction = 90
        self.shown = False
        self.pen = Pen(self)
 
        self.costume = Costumes(
           0, 100, "all around", [
            {
                'name': "big rect",
                'path': "c4958b3fc53e567c3f2d6903f3a7c11a-svg-2x.png",
                'center': (522, 388),
                'scale': 2
            }
        ])
 
        self.sounds = Sounds(
            100, [
            {
                'name': "Julius_-_3d_Demo_Tune.mp3",
                'path': "4baafbd297c5163c9bfe5da2a4b7a8b6.wav"
            },
            {
                'name': "silence",
                'path': "22392866c0f23819792658e9bc4f6c0a.wav"
            }
        ])
 
        self.var_pos = 1992
        self.var_lastquad = 30
        self.var_lastrendertime = 0
        self.var_incx = 72
        self.var_incy = 78
        self.var_ymin = 90
        self.var_ymax = 84
        self.var_xmin = -93.44758896468164
        self.var_xmax = 300
        self.var_xcnt = 55.67592596131997
        self.var_xminprv = -76.10188833345045
        self.var_xmaxprv = -9999999
        self.var_p = 6
        self.var_ply = 6
        self.var_pOrd = 38
        self.var_distance = 4.500000000000004
        self.var_speed = 0.5400382381196349
        self.var_speedTarget = 0.6
        self.var_starIdx = 192
        self.var_GUI = 0
        self.var_Stars = 300
        self.var_ZoomSx = 0.399999999999975
        self.var_beat = 7
        self.var_beatTimer = 28.516000000000002
        self.var_beatSize = 1.2893518518518519
        self.var_a1 = -0.7020497095555254
        self.var_a2 = 0.511866032704478
        self.var_svx = 300
        self.var_svy = 300
        self.var_svz = 300
        self.var_acc = 0
        self.var_peri = 527.0775063128438
        self.var_ind = 35.53957386718539
        self.var_td = 0.0957606658924196
 
        self.list_points = List(
            [-0.8040276720500144, -0.29271526339301984, 0.13363113549602848, -47.911626143953875, 13.445139405650869, 61.975484984148316, -0.5061708219851443, 0.6538253400375734, 0.2574947084610783, -38.88029270113208, 23.89699921288966, 77.33822300053956, 0.01381562942416649, -0.6126629922077974, 0.6119258045434227, 6.004924678902964, 35.531837354590095, 58.52431526753469, 0.3116724794890361, 0.33387761122279763, 0.7357893775084734, 26.866185715758053, 50.36695870415431, 72.03718446689328, -0.3116724794890361, -0.33387761122279763, -0.7357893775084734, -22.995111691367022, -43.109723620989236, 61.65754678663661, -0.01381562942416649, 0.6126629922077974, -0.6119258045434227, -7.884602343092702, -46.65410859267782, 76.84375374556744, 0.5061708219851443, -0.6538253400375734, -0.2574947084610783, 29.27939299558875, -17.99599701442316, 58.2407195907593, 0.8040276720500144, 0.29271526339301984, -0.13363113549602848, 55.35826330256229, -15.534842526976146, 71.60798937920059, 1.2516880008601288, -1.0616680911978267, -1.1351819042106337, 67.6241797993048, -61.796975030599754, 53.90906904828621, 0.9734028857521868, -0.8751494534208689, -1.5063532774331263, 54.10765307121713, -84.45917407126471, 55.749027701194485, -1.0724442096211277, -1.654249298486482, 0.309552256112522, -50.87156180170708, 15.471626388616022, 48.48204875370223, -1.3507293247290697, -1.4677306607095304, -0.06161911710997848, -66.61051083333321, -2.4757579894906603, 49.965101763102474, 1.3507293247290697, 1.4677306607095304, 0.06161911710997848, 132.1725565687481, 4.912546966277481, 99.14374107970566, 1.0724442096211277, 1.654249298486482, -0.309552256112522, 110.75265681961221, -33.68333243903171, 105.55043952572944, -0.9734028857521868, 0.8751494534208689, 1.5063532774331263, -79.79722095673223, 124.55922577748973, 82.21789763713979, -1.2516880008601288, 1.0616680911978267, 1.1351819042106337, -108.60164179576256, 99.24339143561592, 86.57573997496672, 1.0729604317551955, -0.878239189426486, -0.5722340487931296, 60.104749633485035, -32.42391212308745, 55.73066203911069, 0.5163902015393135, -0.5052019138725763, -1.3145767952381233, 30.550744891785886, -78.90050805164623, 59.81219060830805, -0.5871340043028463, -1.3015114803469603, 0.4597189228662642, -29.18742124287494, 23.933447513366314, 51.47577793817772, -1.1437042345187258, -0.9284742047930521, -0.28262382357872984, -62.339880852353936, -14.964981438402184, 54.9385086139351, 1.1437042345187258, 0.9284742047930521, 0.28262382357872984, 95.3694079008873, 22.89387466762048, 84.04656803688688, 0.5871340043028463, 1.3015114803469603, -0.4597189228662642, 53.12230722131608, -43.55985892315359, 93.68803318846312, -0.5163902015393135, 0.5052019138725763, 1.3145767952381233, -38.17092300043672, 98.58041852015454, 74.73096090730736, -1.0729604317551955, 0.878239189426486, 0.5722340487931296, -88.71398307386997, 47.857355846529, 82.25787544215683, 1.4705955986416253, -1.1129323546504821, 0.35878978205499035, 102.48209568488191, 23.816605196065094, 53.44256463273567, -0.19911509200601463, 0.006179472011234938, -1.8682384572799942, -18.50704863519583, -160.01940969568008, 66.49667969962444, 0.14252004979519134, -1.4515501873868624, 1.1843521593825015, 11.071858746144576, 76.65734402765746, 50.25577174938265, -1.527190640852448, -0.3324383607251463, -1.0426760799524786, -121.76466322491632, -81.7714278809795, 61.633737932011066, 1.527190640852448, 0.3324383607251463, 1.0426760799524786, 142.38215031514335, 95.61716369656168, 72.06971141134844, -0.14252004979519134, 1.4515501873868624, -1.1843521593825015, -21.59454499433319, -149.5124262967825, 98.01881952701814, 0.19911509200601463, -0.006179472011234938, 1.8682384572799942, 18.477995707473546, 159.76820636036223, 66.3922911897563, -1.4705955986416253, 1.1129323546504821, -0.35878978205499035, -168.37909504796193, -39.130917485907865, 87.80666134669723, -192.26192053601963, -174.00688689781055, -196.54504635194874, -317.17182014405154, -322.05863168518374, 1.6531120122882732, 173.5558715443796, 53.13940744302991, -40.10688178423276, -1016.3119080175866, 245.38398639931688, -5.8907569274120855, -225.22454882515484, -227.646269331458, -19.623365576069766, -283.3350581809263, -22.416976361931383, 1.2729316976338891, -48.76826731940144, 120.71832829993404, -176.23206449344138, 134.03127985821374, 454.7097634367476, -2.586674064449883, 182.50380724837163, 326.543905150942, -89.93573044034407, -163.84439779655244, 84.43353812857224, -0.9221403986062678, 179.78754746827403, -133.1917439481557, -100.69456904635393, 398.3269626438108, -225.7489422027148, 2.2068055861708267, 228.72607461792128, -85.24344380185924, 168.24962550341175, 795.5123194236439, 571.7422220394085, 3.440094729883623, -34.93355548077656, 348.0218715726326, -182.84261426345796, 35.58485167886467, 159.08704391500228, -0.8715988648726193, 67.21690284236072, -69.48321066083899, 267.62468124810874, 288.0666485176335, 1091.7864942265705, 4.088881088911711, -265.5517176249297, 287.26994087326875, -28.341920761260603, 288.09078352334006, 27.781030636783505, -1.0697993680706386, -175.80077762729297, -133.7152996779527, 53.835898802702246, -369.95716019371844, 118.02985026471049, 2.1303377712188336, -266.15535611576036, 52.95843172887552, 64.5114662714884, 1760.8876016958636, -442.45302199770487, -6.6149700575201775, -301.11811215299775, 128.73579531253384, 89.73837227865852, 748.7223483408355, -229.24779826722323, -2.4803692080800186, 39.01460417624886, 51.98139130986975, -3.129781861597584, -239.08223742352385, 21.686537784491968, -6.234990594580671, -74.23395590621182, 132.34822907171124, 297.28482031736894, 172.3693355622398, -701.6540054887984, -2.35504835322982, 304.89070273544723, -144.65958494069804, -4.925635308467054, 630.3992097294794, -15.728347345571565, 2.0562030080907334, -89.8453031686831, -83.48431075660312, 340.627639594944, -288.0116033943637, 1146.4711681148215, 3.3579821888439247, -19.81563198720707, -167.17215397464747, -28.736933165444245, -31.34570027668764, -49.673033558065725, 1.7393273374972194, 239.3814956991933, -56.96636429281584, -49.14602283128587, 1223.9666360326553, -261.9566260729376, 5.108098849198443, -276.7479651305599, 126.41192665530093, 106.67045870566174, 699.5782504728904, -275.3249856032113, -2.5227103198850287, -15.545223206711347, -93.31399890210425, -152.43307771677016, -48.08250903123014, -464.56711092106724, 3.0505801264309484, 386.7489773921464, -145.52504365724252, 27.56241914434311, 800.0920633971921, 49.61548668106367, 2.058200339656161, 87.55525585169912, 342.908153963228, -168.13409136645956, -72.09196223907269, 148.78754095467255, -0.8808710050730783, -58.03253485600112, -108.70739200789282, 300.0598704395114, -141.81941390471113, 789.1760881726049, 2.625630317626764, -96.22774768441079, 179.16127917303302, -73.56259978894205, 170.7685420707136, 125.31537032212893, -1.7237327120711181, 50.154250817250464, 59.97265536217123, -109.84457823124276, -258.26874983745387, 588.118697501457, -5.332559676151834, 92.04593869659791, 64.12225775649804, -133.77922324621775, -443.3736548657077, 662.6688703389234, -4.923385093549136, 234.45415725117243, -195.78945902261972, -38.42830461506092, 358.1869397282766, -61.37526368153722, 1.514642112554995, 241.9097553891191, 212.00846664080933, -14.215413704817946, -339.77829946836675, 23.265870984882337, -1.420731661570064, 41.125312662024726, 202.63278169755154, 73.68625276169294, -59.1528715074413, -110.363549216654, -1.505315056613652, -298.3659804108997, -24.495365879903833, -84.96891527632143, -2735.5328485657365, -753.4857924484423, 9.155352182406514, -11.709245956057263, -62.90923308153223, 154.98168099687135, -42.29523621297174, 686.6319621798629, 4.42759549091203, 335.49685482759463, 239.17418114054217, 68.01887623971191, -417.16164104753176, -81.41860475409698, -1.2522287012118758, -172.5824060609677, -261.48775048466143, -123.24555776788999, -190.10870087637525, -135.72726870355913, 1.115271557614242, -320.5583240377461, 89.82234468375691, 30.875638398538484, 1180.4995503795462, -123.94070125158963, -3.673606334361113, 26.81488707784487, 148.95412582542212, 127.48972401331325, -53.95254755937768, -262.77696708506045, -2.0651247381936866, -146.1709451055022, -94.97094643407553, 266.6244025384008, -421.23760691260543, 791.3807584841538, 2.953799421142513, 304.6455086565721, 96.77718859493534, 62.69997829838292, -946.6933639394834, -186.7816262653324, -3.114278716066836, 128.4611360163066, -298.8595909879796, -45.778602143276125, 130.49116354029044, -46.49394557860668, 0.9908266519950556, 311.8542389421845, 110.72848918054027, 116.84234034319596, -846.3136770397889, -309.8614106203002, -2.716850727584743, 133.96208387790298, 160.7478079734251, -144.93895591755586, -247.5213421782281, 276.780153715297, -1.8940687618826775, -310.5432045819966, 222.87053150644152, -59.3012820134749, 437.2870693119004, 78.77633070414828, -1.3936636077707536, -139.28090047136246, -50.11696568261712, -83.75631250797001, -739.9455241337347, -437.9653369823779, 5.308111868446278, -85.36388478568206, -83.85616250402967, 153.87706260058155, -277.5000299182539, 517.2967241895308, 3.345307578740305, 86.82734084256194, -16.15932251317108, 136.92658141781698, 1347.51149536859, 2079.109549265455, 15.271239640487874, -13.7839774946763, 3.615276817650848, -111.78072963530212, -4157.843680712906, -31313.948452776018, 280.457422094808, -11.080653069983345, 194.14957739635466, -102.92793635414104, 22.687099458212888, 162.25107181638643, -1.5779365585927425, -42.72454124647645, 96.36872880302587, 321.58774831829226, 134.25462000158515, -1053.5364781466676, -3.272293461263567, -53.88486107475325, -16.04877367491883, 389.31331320740725, -709.2354759291852, 5506.404576736134, 14.126985417583084, -78.41124465602591, -266.5578201373408, -125.00241597339367, -83.81824782645363, -136.6290957897552, 1.0992153627346932, 296.851133393138, -189.99054816778212, 11.99976166807852, 468.860720741208, 14.645155039284154, 1.5667749947559042, -253.84260458925326, 101.16837327126056, 1.3751251438654153, 815.1421063967218, -11.642863712261041, -3.1961252182506805, -37.766936992525444, -110.36626743875435, 81.96917179925393, -92.51221348245492, 213.41006059229693, 2.5929709926475835, -36.183637371449244, -150.0184746856947, 83.75679760894849, -64.82676731441435, 162.24804304497118, 1.9297621177073343, -325.9843506969062, 58.438818592337014, -33.363231827481656, 1957.7038257414258, 182.31978815612393, -5.9875770301369755, 334.9207502312929, -108.22045248110004, -65.70709426276952, 923.9042655416207, -189.10903329213917, 2.752817845821667, 363.65017079422853, -133.03853099256133, -29.669845064746173, 820.0340263244299, -73.95982281569601, 2.2468322268246856, -115.522737784733, 205.89174352029121, 187.38219217644885, 173.97188900795246, -281.69431763617797, -1.4951391863454877, -18.590020652148475, -77.51230632048258, 310.4114231876311, -54.071712432999, 1129.6673075841854, 3.6374572113216326, 24.681980410142227, -51.19375444792632, 262.90492212845834, 149.368025396936, 1418.7376702286263, 5.401136170296284, 90.42078783018077, -42.5889641684952, 166.7520932438373, 601.2691721284359, 1079.54162045827, 6.505706209537987, -121.50685122527547, -5.665565283328418, -50.497386982541514, -3125.416352192137, -1267.0933008879265, 25.644535780758005, -144.01746312415463, -370.583772166251, 193.86499095935483, -109.29108931637852, 154.85171008067013, 0.7935259426848453, -165.92001595830516, 158.8133271713293, 197.46866618196944, 326.080089036425, -390.5963991835826, -1.963357812770747, -101.63126192452143, -47.48442541472343, 1.147010724358604, -567.5281865956297, 11.543530395928174, 5.617560573955469, -73.55646197329725, -168.26876443715335, -195.1001505683045, -126.06893249901168, -334.73378468565176, 1.7215695398962028, 90.16811925137658, 8.838048357616303, 235.89107242594974, -5039.317506176801, -12854.449904073024, -54.68207203566801, 16.466366066130064, 194.56148910219767, -178.60482810159132, -19.623921784714582, 280.94913584505906, -1.5717890966450236, -237.0055101040107, 111.5300409377398, 104.41952288209433, 681.7124523869073, -305.90130041186046, -2.8714316975090317, 69.4138628740605, -33.60995031652267, 266.49218664397665, 579.8702211581484, 2135.3025235253012, 8.03163696211519, -29.014796257884925, -38.92246515815726, 344.3547315379032, -174.04062693329323, 2355.7775140770423, 6.836262813376172, 186.60806943945704, 232.22183774919438, -164.65856809836032, -236.97954554636823, 216.24042361429622, -1.3001540036003285, -275.75675938722316, -59.842226667088426, -173.56588142324256, -1220.7230183961374, -755.2557634048036, 4.414236487452396, 44.7083687467714, 102.34750945871632, 201.1147638923229, -137.47106735480833, -609.8132633815617, -3.0383208347708504, -181.84084375901344, -179.0802111449686, 168.92952214164075, -286.6721982711978, 274.48954708766405, 1.609463064353929, 116.79944697066608, 38.66364438906099, 261.8950368179907, -995.9689623800707, -2189.513587426294, -8.394049971011519, -18.225910069480488, -237.33927610335735, -4.569854561701366, -18.97006829274077, -5.443807116257143, 1.2353061125887272, -148.51111327717587, -85.6699482557785, -56.98340517835345, -480.90411245234696, -180.89769240081023, 3.2503760925442453, -56.63017426787696, 0.8934022150186097, 440.2978783853789, -3705.6806944184714, 30993.702534088785, 70.31459029041146, 307.4704494170437, -76.51905031985007, -25.15463391936967, 1192.7199932927256, -107.99173345432268, 3.8706080537859093, -180.4214018292526, 170.45754698470523, 78.13668514425723, 331.95722408529355, -145.6178854098321, -1.8260352699134288, -90.96588768500098, -1.073434638527773, -247.55616291172566, -4147.875793000821, -10986.365584122017, 44.527232256096305, 234.09569201551886, 159.54993433945086, 186.2042510726197, -442.6069306412746, -348.5642202605556, -1.8932852465622934, -289.0701312297313, 151.83521709374983, 103.08988364060072, 602.9691459176144, -219.72365014853483, -2.07937315962404, -196.18151892813523, -115.43774576349406, -174.95124130832136, -479.7301936825464, -423.2406814856343, 2.443770753685519, -219.81204056661582, -174.58550424596527, 68.98961208661541, -357.0261086813842, 116.71682948982121, 1.6450440922025316, -263.84195527125513, -201.82417493122153, -162.24494518428085, -374.9467020522853, -228.11922769476308, 1.4268027495264686, -70.3272630914353, 318.96846933097254, -92.7749448335672, 71.56808575530972, 87.8607943317393, -0.9535268850881597, -21.421737137338603, -91.86362704107165, 158.49032333705813, -58.43048614406426, 491.12866443253586, 3.0951788963773295, -256.473289598079, 31.443523858871266, -10.136817229530351, 3228.003681510227, 98.56878612712846, -12.564255004414342, 188.0972474283361, -19.60409738065256, -158.95944012150798, 2561.577875115355, -2201.628297198728, 13.70591106658382, -213.98899355731947, 68.23643763447042, 100.4315590122705, 1046.410641199856, -500.64148977273237, -4.891979298170431, 158.54224698225386, -19.064941863051246, -57.051584416371256, 2187.8021028818775, -808.2966174645703, 13.825150419813152, 370.3895509482492, -93.24305942017581, -16.072007892188225, 1191.338783142298, -62.17516162640001, 3.208164785382069, 132.3872153877578, -270.6778454720469, 65.1239447550521, 148.96013110295453, 69.89277538002439, 1.0931225149449142, -78.94366788467833, -289.0847056438151, 184.68331869523942, -74.86698368106488, 188.207442858694, 1.0152455621507261, 256.7048371661249, 51.16726022532056, -42.81981220228632, -1534.900201930804, 270.82813061153416, -6.003539582270415, 177.0610682306513, 287.8650872894075, -110.68002164664517, -180.68230026717612, 117.56523113504315, -1.0472826580175314, -152.7703908872902, 78.18551836642544, -192.37263640739818, 647.3801446686442, 795.5368550661407, -4.16511081114393, -231.82908550994378, 282.9672616077278, -12.680790361042119, 255.36429002385842, 11.509816014811413, -1.0848891425905702, -101.73553128536645, -99.92714628079887, 119.01027838226865, -281.40642925601196, 339.3596692091477, 2.8300160665916514, 124.46384005071978, -53.39362546686475, 69.79163893567814, 667.0408984838672, 364.362916407012, 5.305462296616829, -118.47069984635148, 61.615204182649975, -43.2117988184376, 642.5344983531955, 226.4578995747644, -5.37244982516657, -32.689371809007966, -22.20638284623683, -226.43162463267333, -379.5217188249461, -2492.185166788483, 11.02100146318495, 118.0497263990701, -185.30244813613695, -95.41102767905731, 189.62754508773554, -153.12816234988807, 1.587448196838764, -10.632792266249119, -173.01463645425292, -80.31736361463915, -15.53422368096858, -135.0227136152635, 1.683172677567968, 16.261997632586937, 266.13744069857813, -126.31867986611876, -13.557418767922654, 144.42628028822855, -1.1420806292224055, -137.80631094274676, -213.84418216712868, 161.55211110136557, -181.7482660512374, 221.229553419524, 1.35909778183325, 72.49155356255902, 123.36756354133495, -166.13072559811678, -173.53280138573135, 416.48247697126607, -2.497320920124876, 145.22094340345512, 292.5363629390353, 43.51266687457732, -146.51755264933294, -43.553926498167044, -1.0317515361366905, 26.903904915945294, -286.75894712242206, 107.84008997846357, 32.251881426984305, 110.59291864963312, 1.0278588170491958, 135.4604481542542, -141.10263178061223, -272.1516353253892, 279.85174578571, -567.7321364756019, 2.076935095813796, 58.2940365976277, 215.8165491908385, 159.04094251046467, -80.46919238819723, -223.53056851207936, -1.41016455528687, 3.065032888090375, 32.902826527662484, -357.5597954206483, 5.60688255750149, 3764.7509197384866, -10.528624593030655, -208.9614052598544, 45.10550504280237, -220.7501365100197, 1663.0973548650193, 1721.3952134241188, -7.864757519232542, 96.04500216508177, 240.02934863323088, -262.5685945514125, -114.65204171336951, 332.805041504468, -1.2634192903913743, -104.90369153831757, 181.47617898777716, -129.2076281562002, 184.28774764594723, 218.32316799351221, -1.7021218178262716, -295.816380837906, 138.3025281015969, -99.36839290176195, 685.4116736951752, 222.19187093905484, -2.2972284319367264, 214.42418351445318, 278.8519360365744, -5.819349788447696, -227.71836342007285, 8.350291830153928, -1.079587820666068, -237.97862082739735, 52.608523821550214, 41.863086095330495, 1576.0793941238153, -291.0214357149698, -6.616013886902045, -38.18958006907329, -75.23962335892236, -67.10107952756995, -141.14272489393736, -248.85430142809994, 3.7277505427458553, -131.56231642345728, 5.648411549206468, -153.1223418411277, -82715.35368906886, -94506.28121530352, 621.9936808318877, 298.71047875647326, 172.01341388533663, 161.53461606271475, -520.5423352676108, -277.4830984170167, -1.7467190902667136, -245.28465959161798, 47.46673073608521, 29.939003008406257, 1837.4250540946946, -240.39845240762241, -7.482267615237579, 16.077530039389497, 65.31626285745094, 279.40883573679565, -87.0530616447526, -1367.9296390812106, -4.8985130716897345, 50.1798783538343, 364.78871480261637, -122.38125376768404, -36.96350350060198, 101.76880987139629, -0.8285698583256305, -85.69998157092358, -62.61097548243769, 34.1376421727072, -371.23753600011815, 153.12213894083956, 4.387216034061772, 126.11236327041932, -44.98034102499225, 180.55038037630712, 800.4312671739222, 1119.667363304138, 6.240603004002219, -5.478878455856403, 134.9755768874976, 98.87656558079438, 14.327179833868323, -226.80579371097397, -2.292784097685381, 5.019337817296584, 196.8936263726841, 224.49878618174273, -7.164423399973881, -348.68199126501685, -1.5535298723915694, -100.403181344023, -78.23084048810459, 77.724746772329, -351.686497179316, 280.02273417732994, 3.561786892911227, 107.06963608369631, 87.56676823170974, 285.68190775165687, -384.4917313721352, -1008.6035557534441, -3.542514950486864, -49.09081679940234, -276.83865205449956, 156.33122157238685, -46.983284645769025, 166.27147179817948, 1.0606514081681668, 139.8698995967492, 262.50099075007864, -82.07094063911194, -156.4789270894857, 95.93063761934208, -1.1513904043329597, 82.58973060629422, 112.66508955646572, -315.1357036544986, -214.75442234764515, 865.3800136282487, -2.739749889190479, -198.10448835432894, -21.96880004348985, -100.94544281170448, -2055.515599564838, -1025.8388198252135, 10.34407619191553, -361.8358615247095, -158.48620275565415, -145.12728486989045, -644.9720694118432, -253.3981497812095, 1.785890198831347, 80.01375018301391, 319.5204198751301, -129.77865435398348, -70.90757272299308, 123.48297181443216, -0.9463145937412503, -63.940207575607765, -255.63552845331316, 63.61702103147021, -69.03013708452663, 73.5609617845278, 1.1460646419063978, 69.79052100329308, -53.93806968600549, -324.599701014942, 350.52975344163224, -1687.7336194458233, 5.189669519413027, -60.81564156151781, 255.18226428389974, 55.28534237743764, 75.89907216787728, -66.78871881205029, -1.1963635538197481, -307.11247349717087, -201.85209774336312, -224.11304170531773, -436.2901590132549, -314.98869244949987, 1.422967222484606, 307.4889730721536, 212.21973442314396, 211.5285133738096, -433.6574964249298, -295.15273660135955, -1.413749017880974, -314.8932480413668, 55.410673311510706, 82.07860436995637, 2000.2413155031077, -539.3771451819529, -6.35395072600807, 202.56704551258437, -44.10196449418278, -66.26920715687366, 1312.6605126821944, -441.30584236316247, 6.482525514186166, 342.46995868509657, 81.56831525987245, 94.05282672686242, -1259.271312214328, -334.76530074183523, -3.6791610951492855, 389.466663627288, -78.18992019180595, 32.419916393541676, 1499.3225673143595, 111.06395492218014, 3.8378282189030455, 107.71984870918793, 82.14994978561332, 269.0015211663384, -412.9738361401896, -1014.5261694934396, -3.785143486315452, 157.52327261365147, -188.7908701914874, 9.296516656135143, 249.8646905203663, 12.327316277786574, 1.5626170930316798, 303.7060094431977, -132.6582620747572, 32.97640588172267, 684.8244067553393, 67.81638278924535, 2.2409828220145376, 137.73015007816042, -7.083682162931004, 127.57047666528737, 4204.0702915489965, 3822.6456804502877, 30.258020471766937, -204.4174170152079, 96.88457164341115, 57.8091553934238, 682.1870239756212, -198.3808129077407, -3.3266930581025416, 60.54118594214363, -101.83044710719993, -103.29726301917478, 172.33157846238987, -294.02098069594706, 2.831644735792644, 6.193479047652108, 16.43463328416534, -229.43091053878803, -98.3487581251097, 5725.356774552244, -24.949579473558675, -121.29676638181866, -360.07439928285856, 141.69869001194812, -94.43778642495145, 116.63420273451658, 0.8168996685281826, -223.36436005199417, 32.83575460246687, 150.29030022326768, 2596.224501670522, -1777.6760483346386, -11.673751537731777, 65.47098519211981, 152.06295342278892, 47.53322886498274, -129.03463853475026, -94.61504589694239, -2.015382824188461, -75.8451373737298, 375.5860382505655, -111.37612520158744, 65.78622299305282, 89.42467972137949, -0.8078540135709921, -125.39503690934966, -102.03319993200583, 324.2827596749147, -335.55545421289753, 900.6280679321817, 2.7678414360513672, -22.284510963254565, 138.41252198486745, 226.35894802531755, 49.117869278997645, -506.8177105195149, -2.2371218507616946, -301.1848179220171, -188.3364927741768, -131.510713578647, -456.452306657743, -195.98137816598287, 1.5214198215948112, -44.18594697677704, -82.68294225332603, 300.06187915597906, -138.0586756347308, 1024.4930565801492, 3.4099228284814806, -49.254066477607886, -215.51766358767193, -134.68545861503597, -64.79677603527242, -181.93198221889938, 1.3552733334344764, -33.801270971914576, -287.4655026596302, 81.60304928597404, -30.218346699486784, 83.76500455613059, 1.0227497389844724, -107.9969236847696, -13.172682359834477, 99.94570741895159, -1684.166757834995, 1589.2915402089413, 15.750136719048124, 43.210939974307365, 147.47485470252442, -137.45174117155156, -83.71428505635188, 287.23431160555526, -2.0839406988536338, -65.56733222955525, -252.95994831528986, 13.645091986840432, -72.17700993501322, 16.47619974092063, 1.1578250491807351, -139.76069077562855, -266.8638138261884, 95.96172335546177, -148.5086978309984, 106.44641741746837, 1.0950549269452896, 340.51382557237184, 107.08715949743318, 80.05417962255179, -951.8871254692883, -215.67711617636678, -2.8006755795446043, 209.05627790439988, -205.97570773844782, -155.17241716707971, 302.2415132513188, -225.82756943506047, 1.4380820483015253, -191.0091216229755, -165.63687209080504, -282.18600160070616, -331.9043226426924, -486.1574475882405, 1.7333773008658961, 146.59323408800492, 84.39799517458219, -113.29784267927424, -529.1011360019578, 419.5423995362336, -3.6608348136122197, -237.40293611935115, 57.335282584277586, 50.54216077453232, 1423.0628567128547, -315.3683607217525, -5.988649654961074, -187.23710467286148, 57.84833878067454, 61.68334870998467, 1097.3030669740408, -371.0137390599034, -5.856238228967833, -230.92809761739917, -194.30466029863442, 118.60400620744204, -337.3449288586416, 178.9527102163723, 1.4830871903152867, -76.58171430780816, -341.60132264812574, 190.19930305795384, -60.91129537684709, 164.47552950768122, 0.8616884536496996, 234.2910936998803, -76.8568203120425, 12.0296054136393, 896.5272892459019, 37.85567621485612, 3.809929950951908, -73.55649702004787, 162.90737931047306, -34.06797872187583, 144.00060507124257, 63.42895767163745, -1.8985309981575738, 151.90644749272596, -302.965648295814, 63.900281169152855, 152.81179246536115, 61.19503793529645, 0.9784841167498138, 221.75500159525905, 138.95060737238725, 167.59309652096317, -482.85361797133436, -360.96813594596057, -2.1796890965990405, -66.35037994851355, 158.4329147794841, -200.6754532268328, 136.87008573366077, 390.7757100081264, -1.9531490929564606, 209.55829232787949, 207.2842224083768, -62.38245940330246, -300.6130755896993, 93.56367675937274, -1.4561967182818156, 109.22134529346066, 236.14775976328573, 20.613883462819995, -136.68400259755688, -25.20301091140128, -1.2834242967102139, -155.09220270500745, 215.67447701432235, -155.2189658891298, 227.3548021247175, 219.81509210485373, -1.428973817481504, -16.893112970633712, -211.39083800912738, 120.62560040411738, -18.298933316545632, 167.12615898309284, 1.3838188420687707, -0.764872889209264, -120.8815330034893, 232.14665354783975, 6.6549562428215685, 553.7101584080162, 2.385198959544599, -73.40770932727229, -53.976023312196006, 71.02039718177245, -363.1676734019559, 361.00120793525974, 5.036755726923069, 140.72075522378924, 314.72431284266565, -14.706257175103268, -131.05266811186272, 15.301465063504285, -0.9585692031388444, 37.25321613095274, -242.48909807860184, -91.85986362005124, 47.786142169398765, -111.81246011776638, 1.2128611320469358, 117.78349726136871, -30.977819015560726, 139.94792557847347, 1049.4882041969092, 1220.8034606182148, 8.789707838151841, -112.18794096061426, -227.0157719103335, 189.60934395203265, -138.29443512759914, 244.74976470033897, 1.2840744963467636, 146.2989308348164, 318.7477913489981, 11.422186429668209, -134.80610017252138, -9.570069006497455, -0.9461498053065058, 177.88947308865946, 108.47486891080818, -80.20933220932555, -495.31217912147207, 230.42566521972674, -2.817100504715394, -92.86352979614388, -12.350054435014695, 122.69001789229131, -1523.9144802337096, 2054.7433429067123, 16.6356137440523, -36.45199040744687, -91.0878559805698, 123.0010342537164, -106.60565900328972, 384.0392396984136, 3.114123532935643, -11.052535160843583, -25.805153082451458, 301.1078443335845, -79.11495166749367, 2961.854189630379, 9.833690602010096, -45.88265394576343, -60.72054421433828, -230.50552402666798, -214.4350408239563, -1045.4757277370488, 4.543839206582993, -160.1880811148066, 102.1132358647208, 307.4697766534957, 495.87478141898697, -965.3115121382501, -3.1251124611324403, 52.52666339255677, 147.1078834585669, 140.9617665537515, -108.48582235592163, -293.22070832651707, -2.087174918455067, -139.2900280761503, 117.17334047359175, 159.27239402462476, 375.2796603075527, -432.46186903452167, -2.694291830442138, 242.2669738510959, -185.9906843285693, -132.31091083382248, 387.9926087343683, -214.4085879183523, 1.594472083764723, 192.49130982499787, 249.68363697669506, -113.14669565278605, -227.59128580659558, 138.75621983472539, -1.2080272812611748, -16.365099060158713, 195.18530321524946, 5.2802042726439735, 29.36711558111021, -8.518011580069636, -1.5697950912568495, -131.21225638144722, 268.4034709971366, -104.86619764546884, 154.39150733305166, 118.2138252256118, -1.1400717557541737, 52.1819195714061, 67.42855101485083, -165.5428557900884, -234.66015335066538, 781.0991615558016, -4.705347937798019, -32.745171422087296, -195.37469353070682, -35.90936349194006, -45.78840485060624, -53.174519932705095, 1.4930205462695958, 172.69129516881546, 193.21864381874676, 202.01304497669648, -269.6493736465709, -314.0722107710188, -1.566740132583988, -103.10100342094194, -28.07776381884655, 152.09806555911143, -896.2905107932751, 1352.687440889967, 8.840339657621552, -4.247402235493655, 205.2925404415548, 92.87589506402163, 8.836840285455331, -138.39188262675242, -1.4895240960246126, -36.22984799918423, 13.686573069632889, 236.10394920819834, 1169.2053417028653, -8062.629795104431, -34.10325469933826, 234.39300473510707, -162.1481671391007, 136.13188334239118, 433.7918984812579, 244.73828235133234, 1.8259626257564157, 306.42265769811274, 214.06371779385714, 100.09933191558397, -427.03899815105456, -136.4661592152628, -1.4016962127384751, 308.2372030303256, -93.83014450125116, -77.53533704058697, 976.0352121136758, -253.87864692165752, 3.1621814618479034, -325.1526854207685, 32.52653131969404, -114.36237742421396, 4063.3960459300315, 1386.917654003148, -12.443966524386605, 22.75745063912823, 1.6579347092909533, -129.3845021005878, 2503.195771597655, -15031.963277246448, 116.00290466045858, -28.510810651646533, 139.6528672373184, -304.4900793259985, 73.08311352614389, 674.9994452045663, -2.218763700948843, -246.25938770713483, -228.04703029948556, -173.78683247403828, -310.9606045003864, -217.78335761853285, 1.2692824052746097, 149.7108836794905, 151.317828783129, 25.75975609927029, -297.8456467274754, -49.123939756239324, -2.01152300590007, -324.27568567211927, -25.81807500350987, 6.534841192836657, -2824.1285338242146, 82.24410361202747, 8.720114864602534, 210.52876486929938, 284.77036380329304, -48.4197945474789, -218.39887901037594, 53.17561906587616, -1.057197777832537, 185.98637030944988, 154.6260226332373, 331.6079918102122, -366.8762738173684, -647.1847841946653, -1.9615629284627407, -42.23365829679538, -154.8081115952867, -205.08477692861536, -78.87460250942371, -382.9233475181713, 1.870662774544653, 105.63590494580839, 51.682372191398876, -349.58830844679096, -628.8580020769242, 2163.847830598708, -6.17328467940006, -118.11726683101338, 160.99867849128157, 308.212158802615, 226.21336437907502, -596.2817102006476, -1.9281226339452409, 97.25387683966837, 116.66812657511795, 70.57783763362983, -254.38417451239036, -183.86022014680688, -2.6376454820289075, 22.748500414352648, 35.31331078658848, 0.6897662625636489, -214.6544072903198, -4.678985355329385, -9.617408409193057, -37.58804828615286, 19.447887164947005, -325.75898519300546, 842.8150178385408, 6733.294089546101, -20.691712612952536, 291.10782901520696, -53.20959684697158, -49.668589372848416, 1608.5442554887297, -288.6344204914745, 5.522279898598592, 91.551105663039, -318.733770190507, 99.88081646625996, 89.43544226297882, 91.96126006389002, 0.9283488547702003, 150.20117810780377, -117.64537607252798, -58.57619841590842, 375.54898410631637, -148.91438525006515, 2.485398303247675, -48.345110625160274, 214.34921686340775, 46.969809958142235, 72.22772379935327, -67.73154471145327, -1.428940580759666, 189.62325221974535, 336.8958631418871, -81.98900373457558, -165.04359094335317, 74.75761748701353, -0.8933775785697179, -224.41823583196006, -111.8226016922879, -224.70682886137277, -564.9905956505714, -559.123998809207, 2.5107390777173455, -200.08593706786974, -244.59933046632008, 35.18214372687529, -233.8848613114508, 43.94530299832212, 1.1887314900615513, 92.3141659237413, 6.136604515068434, 30.861572218688927, -9982.998807470733, -3241.433959837259, -107.9195895513197, -216.29975555387819, 61.73825267835837, 154.12917459239654, 1180.9582471996262, -854.58384470342, -5.4761580345414025, 300.6922916429186, 75.90449713552042, 32.27461376423125, -1194.6858821350334, -117.81783414467101, -3.982074054467668, -80.1303356304353, 75.01958662262422, 93.73468215732792, 344.83541730237164, -406.0771204506972, -4.29953303231435, -150.34023796018974, -167.87010318054874, -285.51083880177316, -258.8184931312324, -487.64494590225456, 1.7161148300101543, -202.82172062431252, 234.66656966887882, 159.5272680220389, 268.2272474881066, -211.86851793690366, -1.3132386639426765, 305.62573267431515, 120.30639339374979, 108.81305283451101, -763.0155194509014, -265.29819961944514, -2.5009642897806588, -302.09304195043933, -218.8688135862864, -50.529528222096005, -394.8245047990368, -62.982631442761964, 1.316836938984909, -218.85779270335047, -122.65371409544741, -284.1607472787243, -506.2532251982922, -649.7608322742005, 2.3025306737199265, 83.88629520354807, 283.462097277854, -241.05668700964694, -83.5771770624171, 258.25737813160333, -1.0680775082079237, -42.64293374946823, -103.42335165051202, -2.4880389636014595, -114.13415085752177, -5.809643663794627, 2.757327508798265, 217.20788748824046, 123.99522452478564, 251.04763592746363, -533.2852700797139, -609.61932696257, -2.4473154147200247, 44.92237773681762, 234.95495168691627, 201.58410005559858, -56.74172126078975, -260.38397868013675, -1.2943174874996743, 191.203232740007, 26.49992325697094, -78.84844203873571, -2336.6577778551614, 989.8691999679025, -12.288355042656425, -88.16699798268135, -34.995920015649126, -218.20601517445752, -660.4731567644052, -1601.221923174842, 7.364999101009269, -115.02992320579958, -73.45152134064445, 153.0587791029776, -424.9138553835787, 580.6756422087968, 3.7686558257362037, -154.84982418811336, 126.4372578363258, -158.48391325747696, 393.1343245735875, 391.3835224519126, -2.491393556105712, -31.621667328029286, 216.15060505907425, -173.46176805613928, 50.698710009066, 245.13106142221255, -1.4155323400030237, -78.58249319669223, 12.897796366450812, -278.108678676131, 3279.9755759007403, 11202.87377391098, -40.38591686968666, -292.9452307816561, 286.7335761064503, 103.73497889440232, 317.0966322548721, -114.12105115386753, -1.073091689449003, -210.03550543421622, -258.4361432006343, -33.01278732154164, -233.2814442099235, -35.0644464377682, 1.126203446525064, -19.169472284491217, -114.51876268523891, 358.2568656254007, -36.529901941899254, 898.9974858051049, 2.5082667864262667, 320.06067314085425, -19.05346511106695, 53.5549121811362, 4886.698525092436, 772.3608104045211, 15.235902831362178, 112.76902169932032, 127.7195320175895, 350.0812282561703, -274.2615504289076, -837.4302693630934, -2.399102439916358, -83.37238140695173, -49.762464219905745, -266.93958453681284, -460.24957067973196, -1438.9774197425272, 5.405947773585864, -118.12652054807342, -97.48919873920705, -123.42196134617166, -341.1382394165441, -353.6852384632205, 2.8904888514312406, 275.2963665919354, 301.98678772380555, 22.133393395511654, -270.10050644710753, -19.552818986444528, -0.9938852786917182, 99.92925592506154, -157.85889175557418, -243.15573777874695, 184.94826608159502, -452.7949704518886, 1.8554223127235958, -8.043655979878366, -141.51694441891925, 138.32661858597277, -10.383029675732997, 283.24710821336697, 2.046687296067853, -212.24212387878484, -211.5466418269764, 106.70659271034879, -285.3956925792934, 148.5271209255128, 1.3676728586976254, -6.195647405579523, 270.81708706283393, -38.42809480653016, 11.070251104865173, 43.096450665206206, -1.123145419723889, 76.76782108622878, 111.93404987944447, 2.7330887575039586, -208.07310866845364, -5.648443224625955, -2.7591545745449735, -9.207356371578912, 38.81690046246936, 150.3411867642336, 72.86703385584107, -1314.3754441086905, -8.738185033891046, 188.62479218075052, -124.43121956203187, -276.6921706451856, 443.05654500446065, -657.2235694111757, 2.36100320950239, 275.17444128772064, 65.0091219377018, -26.811171647299968, -1283.142315017678, 137.01060476691407, -4.6811772118503585, -132.30537960555742, 47.277037661865506, -189.57100845957368, 978.1823757972546, 1369.4077419134842, -7.269333314291645, 166.2484585622525, 64.99200803852627, -176.8515973806965, -783.814864061993, 853.0654178524231, -4.783640732945346, -208.84208212146106, 153.47863287291358, 275.463775739896, 425.18289364069784, -566.2325662780097, -2.0418131664047614, -187.47053229900075, -129.28598545611112, -286.7785400914035, -413.9431145809001, -626.3020527194316, 2.1968395646484975, 379.72558404684617, 86.839487596671, 72.81057926696282, -1303.5606031819902, -238.58336393446058, -3.437040606218969, 60.5374355422547, 64.3760344231829, 205.19001988445368, -303.63160014502967, -1009.1081914091076, -4.931114140953819, 205.71729426772737, -148.01576476876556, -225.92194764897457, 409.58402415965355, -453.956265511713, 1.993215378323415, 290.1986857038882, -55.255792866834156, -129.49331254898414, 1540.929563009414, -702.5789787256609, 5.319317096829011, -162.57686847903324, -215.35715595453888, -156.0610634307434, -217.41152474829659, -208.3665799519153, 1.347757432565357, 25.31478737801536, 242.39688593352554, 114.95177423623474, -29.33333291533088, -144.0024447779371, -1.2552401214481863, 192.8965259093468, -236.30284671729248, -152.90812125589673, 243.7809017826764, -193.89895220974725, 1.2539925265474303, 81.19064215053537, -196.35271373737032, -120.47693068412875, 123.44251860770302, -181.3203842013483, 1.4960742502907398, 109.2996651030947, 221.29349076116864, -233.42615953749848, -143.25541935690777, 321.3509691041092, -1.3709904963544255, 116.11763781157262, -160.01976478765624, -202.4953530553351, 213.1148636474652, -373.0911834512536, 1.8331500911417884, 10.28061707284499, 6.112146913530975, 290.375531191783, -2162.6906248797363, -49050.34710961527, -168.98057735719863, 117.69132117805921, -198.12958791701433, -203.9667084566345, 175.7833314327112, -304.6694376119402, 1.4861200327060373, 87.03866304681445, -276.43881189056987, -10.190860725354016, 96.50469380012052, -11.718446518603495, 1.0684190041434412, 94.10861036905796, -160.16016203036025, -1.513805945344063, 175.65008050702227, -4.305865526524845, 1.828799201793264, -236.9293813188425, 119.49252851588508, -31.73330547340615, 636.670928019735, 79.00811084601169, -2.667804955138077, -203.99444414652675, -168.52154319892122, 153.1265950001909, -341.67427051632757, 263.9895265576226, 1.703785943238236, 195.85176078896876, 25.892605766618885, 139.63043914541652, -2471.3128988576777, -1731.7237873820613, -12.56008176360326, -284.96195978108744, 287.3340609627466, 19.9202625426004, 308.5790348763381, -24.047760761794777, -1.0704444177825676, -280.02743927716705, 213.8448905548876, 113.99997399604703, 408.90382990941214, -169.16405740285393, -1.4520883163596034, 46.63355580069706, -109.63776806144489, 272.3084093099481, 132.74938262911135, 716.0536604322904, 2.6337030889301962, 135.0150926121084, -41.51384289226989, -61.46970923195447, 909.6000055280914, -422.40755436715506, 6.739818578010325, -93.32381167160987, -28.345823798977513, -49.34754485388361, -821.6090888960259, -426.7127470833716, 8.796050868113708, -220.67282504999162, -39.21695966354013, 82.42895711174654, -1413.7369802360777, 543.7494441908246, 6.442752101818647, -107.86287072224815, 20.635958980748583, -252.26723327110193, 2231.733060187549, 5081.880716089588, -20.222884841634926, 215.73780745278444, 182.4347765605042, 1.3224740967064592, -353.52106174179085, 1.0016650173915507, -1.6559179038057814, -188.6843940682933, -176.56379382722952, -193.77673804173995, -306.9024256672869, -313.1847022855473, 1.6304623562104499, -94.76931473838451, 55.67592596131997, 147.52615932611886, 562.5530797603858, -886.7596031079629, -5.9768018793175335]
        )
        self.list_polys = List(
            [0, 12, 18, 6, 15790320, 128, 24, 30, 42, 36, 15790320, 128, 12, 36, 42, 18, 4253248, 128, 0, 24, 30, 6, 4210918, 128, 48, 60, 66, 54, 12853280, 128, 72, 78, 90, 84, 12853280, 128, 60, 84, 90, 66, 4253248, 128, 48, 72, 78, 54, 4210918, 128, 96, 108, 60, 48, 12853280, 255, 108, 132, 84, 60, 4253248, 255, 132, 120, 72, 84, 12853280, 255, 120, 96, 48, 72, 4210918, 255, 102, 114, 66, 54, 12853280, 255, 114, 138, 90, 66, 4253248, 255, 138, 126, 78, 90, 12853280, 255, 126, 102, 54, 78, 4210918, 255, 144, 156, 180, 168, 16776960, 128, 186, 174, 150, 162, 65535, 128]
        )
        self.list_polyOrd = List(
            [-5.058797503814708, 24, -4.895668059457755, 48, -3.7765562327960276, 72, -2.238223653323433, 96, -1.5754094115399973, 54, -1.185162414577317, 36, -0.6398954576295532, 12, -0.45629758487826977, 78, -0.0823246956595538, 6, 0.08232469565955391, 0, 0.45629758487826977, 66, 0.6398954576295534, 18, 1.185162414577317, 42, 1.5754094115399973, 90, 2.238223653323433, 102, 3.7765562327960276, 60, 4.895668059457755, 84, 5.058797503814708, 30]
        )
        self.list_beat = List(
            [24.488, 25.448, 26.418, 27.265, 27.719, 28.232, 28.716, 29.187, 29.662, 30.148, 30.587, 31.09, 31.568, 32.075, 32.547, 33.028, 33.48, 33.981, 34.462, 34.934, 35.415, 35.911, 36.37, 36.858, 37.322, 37.811, 38.28, 42.736, 43.118, 43.587, 44.07, 44.556, 45.004, 45.527, 45.97, 46.419, 46.92, 47.429, 47.908, 48.378, 48.881, 49.36, 49.806, 50.285, 50.77, 51.29, 51.749, 52.205, 52.707, 53.179, 53.644, 54.13, 54.564, 55.074, 55.556, 56.045, 56.543, 57.021, 57.499, 57.975, 58.38, 58.905, 59.39, 59.868, 60.353, 60.852, 61.303, 61.821, 62.284, 62.777, 63.226, 63.706, 64.223, 64.681, 65.164, 65.617, 66.101, 66.579, 67.066, 67.571, 68.047, 68.513, 69, 69.485, 69.938, 70.41, 70.933, 71.427, 71.932, 72.361, 72.862, 73.327, 73.805, 74.278, 74.74, 75.241, 75.721, 76.24, 76.733, 77.19, 77.676, 78.153, 78.619, 79.089, 79.574, 80.053, 80.572, 81.037, 81.505, 81.977, 82.454, 82.911, 83.408, 83.913, 84.385, 84.862, 85.353, 85.826, 86.285, 86.804, 87.259, 87.733, 88.204, 88.686, 89.156, 89.663, 90.121, 90.624, 91.08, 91.604, 92.082, 92.559, 92.996, 93.508, 93.983, 94.466, 94.958, 95.472, 95.917, 96.355, 96.807, 97.332, 97.816, 98.335, 98.764, 99.236, 99.749, 100.21, 100.689, 101.184, 101.632, 102.106, 102.619, 103.122, 103.571, 104.054, 104.5, 104.996, 105.506, 105.979, 106.482, 106.937, 107.404, 107.873, 108.376, 108.84, 109.334, 109.822, 110.316, 110.779, 111.273, 111.752, 112.261, 112.704, 113.178, 113.681, 114.147, 114.628, 115.103, 115.588, 116.03, 116.545, 117.005, 117.497, 117.982, 118.446, 118.929]
        )
 
        self.sprite.layer = 1
 
    @warp
    async def my_Create(self, util, ):
        self.list_points.delete_all()
        self.list_polys.delete_all()
        await self.my_AddCube(util, 0.5, 0.5)
        await self.my_AddPolycolorpoffset(util, 0, 2, 3, 1, 240, 240, 240, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 4, 5, 7, 6, 240, 240, 240, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 2, 6, 7, 3, 64, 230, 64, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 0, 4, 5, 1, 64, 64, 230, 128, self.var_pOrd)
        await self.my_AddCube(util, 1.4, 0.25)
        await self.my_AddPolycolorpoffset(util, 0, 2, 3, 1, 196, 32, 32, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 4, 5, 7, 6, 196, 32, 32, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 2, 6, 7, 3, 64, 230, 64, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 0, 4, 5, 1, 64, 64, 230, 128, self.var_pOrd)
        await self.my_AddCube(util, 1, 0.5)
        await self.my_AddPolycolorpoffset(util, 0, 2, -6, -8, 196, 32, 32, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 2, 6, -2, -6, 64, 230, 64, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 6, 4, -4, -2, 196, 32, 32, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 4, 0, -8, -4, 64, 64, 230, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 1, 3, -5, -7, 196, 32, 32, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 3, 7, -1, -5, 64, 230, 64, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 7, 5, -3, -1, 196, 32, 32, 255, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 5, 1, -7, -3, 64, 64, 230, 255, self.var_pOrd)
        await self.my_AddCube(util, 0.8, 1.5)
        await self.my_AddPolycolorpoffset(util, 0, 2, 6, 4, 255, 255, 0, 128, self.var_pOrd)
        await self.my_AddPolycolorpoffset(util, 7, 5, 1, 3, 0, 255, 255, 128, self.var_pOrd)
 
    async def my_pause(self, util, ):
        if util.inputs["p"]:
            while not not util.inputs["p"]:
                await self.yield_()
            while not util.inputs["p"]:
                await self.yield_()
            while not not util.inputs["p"]:
                await self.yield_()
 
    async def my_fill4crossingsres(self, util, arg_c1, arg_c2, arg_c3, arg_c4, arg_res):
        if lt(arg_c3, arg_c1):
            await self.my_fill4crossingsres(util, arg_c3, arg_c2, arg_c1, arg_c4, arg_res)
        else:
            if lt(arg_c4, arg_c1):
                await self.my_fill4crossingsres(util, arg_c4, arg_c2, arg_c3, arg_c1, arg_res)
            else:
                if lt(arg_c3, arg_c2):
                    await self.my_fill4crossingsres(util, arg_c1, arg_c3, arg_c2, arg_c4, arg_res)
                else:
                    if lt(arg_c4, arg_c2):
                        await self.my_fill4crossingsres(util, arg_c1, arg_c4, arg_c3, arg_c2, arg_res)
                    else:
                        self.pen.set_size(1)
                        self.xpos = tonum(arg_c1)
                        self.pen.down()
                        self.pen.set_size(tonum(arg_res))
                        self.xpos = tonum(arg_c2)
                        self.pen.up()
                        self.pen.set_size(1)
                        self.xpos = tonum(arg_c3)
                        self.pen.down()
                        self.pen.set_size(tonum(arg_res))
                        self.xpos = tonum(arg_c4)
                        self.pen.up()
 
    @warp
    async def my_AddCube(self, util, arg_size, arg_size2):
        self.var_xmin = (0 - arg_size)
        self.var_ymin = (0 - arg_size2)
        self.var_pOrd = len(self.list_points)
        await self.my_AddPoint(util, self.var_ymin, self.var_xmin, self.var_xmin)
        await self.my_AddPoint(util, arg_size2, self.var_xmin, self.var_xmin)
        await self.my_AddPoint(util, self.var_ymin, arg_size, self.var_xmin)
        await self.my_AddPoint(util, arg_size2, arg_size, self.var_xmin)
        await self.my_AddPoint(util, self.var_ymin, self.var_xmin, arg_size)
        await self.my_AddPoint(util, arg_size2, self.var_xmin, arg_size)
        await self.my_AddPoint(util, self.var_ymin, arg_size, arg_size)
        await self.my_AddPoint(util, arg_size2, arg_size, arg_size)
 
    @warp
    async def my_AddPoint(self, util, arg_x, arg_y, arg_z):
        self.list_points.append(arg_x)
        self.list_points.append(arg_y)
        self.list_points.append(arg_z)
        self.list_points.append(0)
        self.list_points.append(0)
        self.list_points.append(0)
 
    @warp
    async def my_CreateStars(self, util, ):
        self.var_starIdx = len(self.list_points)
        self.var_xmax = 300
        self.var_xmin = (0 - self.var_xmax)
        for _ in range(self.var_Stars):
            await self.my_AddPoint(util, pick_rand(self.var_xmin, self.var_xmax), pick_rand(self.var_xmin, self.var_xmax), pick_rand(self.var_xmin, self.var_xmax))
 
    async def my_fill4crossingsres(self, util, arg_c1, arg_c2, arg_c3, arg_c4, arg_res):
        if lt(arg_c3, arg_c1):
            await self.my_fill4crossingsres(util, arg_c3, arg_c2, arg_c1, arg_c4, arg_res)
        else:
            if lt(arg_c4, arg_c1):
                await self.my_fill4crossingsres(util, arg_c4, arg_c2, arg_c3, arg_c1, arg_res)
            else:
                if lt(arg_c3, arg_c2):
                    await self.my_fill4crossingsres(util, arg_c1, arg_c3, arg_c2, arg_c4, arg_res)
                else:
                    if lt(arg_c4, arg_c2):
                        await self.my_fill4crossingsres(util, arg_c1, arg_c4, arg_c3, arg_c2, arg_res)
                    else:
                        self.pen.set_size(1)
                        self.xpos = tonum(arg_c1)
                        self.pen.down()
                        self.pen.set_size(tonum(arg_res))
                        self.xpos = tonum(arg_c2)
                        self.pen.up()
                        self.pen.set_size(1)
                        self.xpos = tonum(arg_c3)
                        self.pen.down()
                        self.pen.set_size(tonum(arg_res))
                        self.xpos = tonum(arg_c4)
                        self.pen.up()
 
    @warp
    async def my_rasterquadfillresolution(self, util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res):
        if lt(arg_y2, arg_y1):
            await self.my_rasterquadfillresolution(util, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_x1, arg_y1, arg_res)
        else:
            if lt(arg_y3, arg_y1):
                await self.my_rasterquadfillresolution(util, arg_x3, arg_y3, arg_x4, arg_y4, arg_x1, arg_y1, arg_x2, arg_y2, arg_res)
            else:
                if lt(arg_y4, arg_y1):
                    await self.my_rasterquadfillresolution(util, arg_x4, arg_y4, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_res)
                else:
                    if lt(arg_y4, arg_y2):
                        await self.my_rasterquadfillinnerresolutionextras(util, arg_x1, arg_y1, arg_x4, arg_y4, arg_x3, arg_y3, arg_x2, arg_y2, arg_res, div((tonum(arg_x1) - tonum(arg_x4)), (tonum(arg_y1) - tonum(arg_y4))), div((tonum(arg_x3) - tonum(arg_x4)), (tonum(arg_y3) - tonum(arg_y4))), div((tonum(arg_x3) - tonum(arg_x2)), (tonum(arg_y3) - tonum(arg_y2))), div((tonum(arg_x1) - tonum(arg_x2)), (tonum(arg_y1) - tonum(arg_y2))))
                    else:
                        await self.my_rasterquadfillinnerresolutionextras(util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res, div((tonum(arg_x1) - tonum(arg_x2)), (tonum(arg_y1) - tonum(arg_y2))), div((tonum(arg_x3) - tonum(arg_x2)), (tonum(arg_y3) - tonum(arg_y2))), div((tonum(arg_x3) - tonum(arg_x4)), (tonum(arg_y3) - tonum(arg_y4))), div((tonum(arg_x1) - tonum(arg_x4)), (tonum(arg_y1) - tonum(arg_y4))))
 
    @warp
    async def my_AddPolycolorpoffset(self, util, arg_p1, arg_p2, arg_p3, arg_p4, arg_r, arg_g, arg_b, arg_a, arg_off):
        self.list_polys.append(((arg_p1 * self.var_p) + tonum(arg_off)))
        self.list_polys.append(((arg_p2 * self.var_p) + tonum(arg_off)))
        self.list_polys.append(((arg_p3 * self.var_p) + tonum(arg_off)))
        self.list_polys.append(((arg_p4 * self.var_p) + tonum(arg_off)))
        self.list_polys.append(((arg_r * 65536) + ((arg_g * 256) + arg_b)))
        self.list_polys.append(arg_a)
 
    async def my_rasterquadfillinnerresolutionextras(self, util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res, arg_x21y21, arg_x32y32, arg_x43y43, arg_x14y14):
        self.ypos = (math.ceil((tonum(arg_y1) + div(arg_res, 2))) + 0.5)
        if lt(arg_y2, arg_y3):
            for _ in range(math.ceil(div((tonum(arg_y2) - self.ypos), arg_res))):
                self.pen.set_size(1)
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21))
                self.pen.down()
                self.pen.set_size(tonum(arg_res))
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14))
                self.pen.up()
                self.ypos += tonum(arg_res)
 
                await self.yield_()
            if lt(arg_y3, arg_y4):
                for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))):
                    await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res)
                    self.ypos += tonum(arg_res)
 
                    await self.yield_()
                for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))):
                    self.pen.set_size(1)
                    self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43))
                    self.pen.down()
                    self.pen.set_size(tonum(arg_res))
                    self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14))
                    self.pen.up()
                    self.ypos += tonum(arg_res)
 
                    await self.yield_()
            else:
                for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))):
                    await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res)
                    self.ypos += tonum(arg_res)
 
                    await self.yield_()
                for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))):
                    self.pen.set_size(1)
                    self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43))
                    self.pen.down()
                    self.pen.set_size(tonum(arg_res))
                    self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x32y32))
                    self.pen.up()
                    self.ypos += tonum(arg_res)
 
                    await self.yield_()
        else:
            for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))):
                self.pen.set_size(1)
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21))
                self.pen.down()
                self.pen.set_size(tonum(arg_res))
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14))
                self.pen.up()
                self.ypos += tonum(arg_res)
 
                await self.yield_()
            for _ in range(math.ceil(div((tonum(arg_y2) - self.ypos), arg_res))):
                await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res)
                self.ypos += tonum(arg_res)
 
                await self.yield_()
            for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))):
                self.pen.set_size(1)
                self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43))
                self.pen.down()
                self.pen.set_size(tonum(arg_res))
                self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14))
                self.pen.up()
                self.ypos += tonum(arg_res)
 
                await self.yield_()
 
    async def my_filllinescrossingsres(self, util, arg_y1, arg_y2, arg_y3, arg_y4, arg_c12, arg_c23, arg_c34, arg_c41, arg_res):
        if gt(self.ypos, arg_y2):
            self.pen.set_size(1)
            self.xpos = arg_c41
            self.pen.down()
            self.pen.set_size(tonum(arg_res))
            self.xpos = arg_c23
            self.pen.up()
        else:
            if lt(self.ypos, arg_y3):
                self.pen.set_size(1)
                self.xpos = arg_c41
                self.pen.down()
                self.pen.set_size(tonum(arg_res))
                self.xpos = arg_c12
                self.pen.up()
            else:
                if lt(arg_c23, arg_c12):
                    await self.my_fill4crossingsres(util, arg_c23, arg_c12, arg_c34, arg_c41, arg_res)
                else:
                    await self.my_fill4crossingsres(util, arg_c12, arg_c23, arg_c34, arg_c41, arg_res)
 
    @on_pressed('t')
    async def key_t_pressed(self, util):
        pass
 
    @on_pressed('y')
    async def key_y_pressed(self, util):
        pass
 
    @warp
    async def my_ProcessPoints(self, util, arg_rot1, arg_rot2, arg_from, arg_to, arg_mul):
        await self.my_ProcessPointssincos(util, math.sin(math.radians(arg_rot1)), math.cos(math.radians(arg_rot1)), math.sin(math.radians(arg_rot2)), math.cos(math.radians(arg_rot2)), arg_from, arg_to, arg_mul)
 
    @warp
    async def my_orderpolys(self, util, ):
        self.var_lastquad = 0
        self.list_polyOrd.delete_all()
        for _ in range(toint(div(len(self.list_polys), 6))):
            self.var_incx = self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 1))]) + 2))]
            self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 2))]) + 2))])
            self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 3))]) + 2))])
            self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 4))]) + 2))])
            self.var_incy = 1
            while not (gt(self.var_incy, len(self.list_polyOrd)) or gt(self.list_polyOrd[toint(self.var_incy)], self.var_incx)):
                self.var_incy = tonum(self.var_incy) + 2
            self.list_polyOrd.insert(toint(self.var_incy), self.var_incx)
            self.list_polyOrd.insert(toint((tonum(self.var_incy) + 1)), self.var_lastquad)
            self.var_lastquad = tonum(self.var_lastquad) + self.var_ply
 
    @warp
    async def my_renderatresolution(self, util, arg_res):
        self.pen.clear_all()
        self.var_pOrd = self.var_starIdx
        self.pen.exact_color("#ffffff")
        for _ in range(toint(div((len(self.list_points) - self.var_starIdx), self.var_p))):
            self.var_ymin = (tonum(self.list_points[toint((tonum(self.var_pOrd) + 6))]) * 3)
            if (gt(self.var_ymin, 0.01) and lt(self.var_ymin, 45)):
                self.var_incx = self.list_points[toint((tonum(self.var_pOrd) + 4))]
                self.var_incy = self.list_points[toint((tonum(self.var_pOrd) + 5))]
                if (lt(abs(tonum(self.var_incx)), 280) and lt(abs(tonum(self.var_incy)), 240)):
                    self.gotoxy(tonum(self.var_incx), tonum(self.var_incy))
                    if gt(self.var_ymin, 1):
                        self.pen.exact_color(((70 * 16777216) + 14737663))
                        self.pen.set_size(((tonum(self.var_ymin) * 2) - 2))
                        self.pen.down()
                        self.pen.up()
                        self.pen.exact_color("#ffffff")
                    self.pen.set_size(tonum(self.var_ymin))
                    self.pen.down()
                    self.pen.up()
            self.var_pOrd = tonum(self.var_pOrd) + self.var_p
        self.var_pOrd = 2
        for _ in range(toint(div(len(self.list_polyOrd), 2))):
            self.var_lastquad = self.list_polyOrd[toint(self.var_pOrd)]
            self.var_incx = self.list_polys[toint((tonum(self.var_lastquad) + 1))]
            self.var_incy = self.list_polys[toint((tonum(self.var_lastquad) + 2))]
            self.var_ymin = self.list_polys[toint((tonum(self.var_lastquad) + 3))]
            self.var_ymax = self.list_polys[toint((tonum(self.var_lastquad) + 4))]
            if lt(self.list_polys[toint((tonum(self.var_lastquad) + 6))], 255):
                self.pen.exact_color(((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 6))]) * 16777216) + tonum(self.list_polys[toint((tonum(self.var_lastquad) + 5))])))
                await self.my_fillquadresolution(util, self.list_points[toint((tonum(self.var_incx) + 4))], self.list_points[toint((tonum(self.var_incx) + 5))], self.list_points[toint((tonum(self.var_incy) + 4))], self.list_points[toint((tonum(self.var_incy) + 5))], self.list_points[toint((tonum(self.var_ymin) + 4))], self.list_points[toint((tonum(self.var_ymin) + 5))], self.list_points[toint((tonum(self.var_ymax) + 4))], self.list_points[toint((tonum(self.var_ymax) + 5))], arg_res)
            else:
                self.pen.exact_color(self.list_polys[toint((tonum(self.var_lastquad) + 5))])
                await self.my_fillquadtrires(util, self.list_points[toint((tonum(self.var_incx) + 4))], self.list_points[toint((tonum(self.var_incx) + 5))], self.list_points[toint((tonum(self.var_incy) + 4))], self.list_points[toint((tonum(self.var_incy) + 5))], self.list_points[toint((tonum(self.var_ymin) + 4))], self.list_points[toint((tonum(self.var_ymin) + 5))], self.list_points[toint((tonum(self.var_ymax) + 4))], self.list_points[toint((tonum(self.var_ymax) + 5))], arg_res)
            self.var_pOrd = tonum(self.var_pOrd) + 2
 
    @on_pressed('space')
    async def key_space_pressed(self, util):
        if eq(self.var_speedTarget, 0.6):
            self.var_speedTarget = 0.05
        else:
            self.var_speedTarget = 0.6
 
    @warp
    async def my_ProcessPointssincos(self, util, arg_s, arg_c, arg_s2, arg_c2, arg_from, arg_len, arg_mul):
        self.var_pos = (tonum(arg_from) * self.var_p)
        self.var_xcnt = util.sprites.stage.var_Zoom
        for _ in range(toint(arg_len)):
            self.var_incx = self.list_points[toint((self.var_pos + 1))]
            self.var_incy = self.list_points[toint((self.var_pos + 3))]
            self.var_pOrd = self.list_points[toint((self.var_pos + 2))]
            if (gt(arg_from, 31) and gt(util.timer(), 42.2)):
                self.var_incx = (((tonum(self.var_incx) + self.var_svx) % 600) - 300)
                self.var_incy = (((tonum(self.var_incy) + self.var_svy) % 600) - 300)
                self.var_pOrd = (((tonum(self.var_pOrd) + self.var_svz) % 600) - 300)
            self.var_xcnt = div(util.sprites.stage.var_Zoom, (self.var_distance - tonum(self.var_pOrd)))
            self.list_points[toint((self.var_pos + 4))] = ((tonum(self.var_incx) * tonum(arg_mul)) * self.var_xcnt)
            self.list_points[toint((self.var_pos + 5))] = ((tonum(self.var_incy) * tonum(arg_mul)) * self.var_xcnt)
            self.list_points[toint((self.var_pos + 6))] = self.var_xcnt
            self.var_xmin = ((arg_c * tonum(self.var_incx)) - (arg_s * tonum(self.var_pOrd)))
            self.var_xcnt = ((arg_c * tonum(self.var_pOrd)) + (arg_s * tonum(self.var_incx)))
            self.list_points[toint((self.var_pos + 1))] = ((arg_c2 * self.var_xmin) - (arg_s2 * tonum(self.var_incy)))
            self.list_points[toint((self.var_pos + 2))] = self.var_xcnt
            self.list_points[toint((self.var_pos + 3))] = ((arg_c2 * tonum(self.var_incy)) + (arg_s2 * self.var_xmin))
            self.var_pos += self.var_p
 
    @warp
    async def my_filltriangleresolution(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_res):
        await self.my_filltriinner1(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, sqrt((((tonum(arg_Bx) - tonum(arg_Cx)) * (tonum(arg_Bx) - tonum(arg_Cx))) + ((tonum(arg_By) - tonum(arg_Cy)) * (tonum(arg_By) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Cx)) * (tonum(arg_Ax) - tonum(arg_Cx))) + ((tonum(arg_Ay) - tonum(arg_Cy)) * (tonum(arg_Ay) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Bx)) * (tonum(arg_Ax) - tonum(arg_Bx))) + ((tonum(arg_Ay) - tonum(arg_By)) * (tonum(arg_Ay) - tonum(arg_By))))), (tonum(arg_res) * 1.4))
        self.pen.set_size(tonum(arg_res))
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.down()
        self.gotoxy(tonum(arg_Bx), tonum(arg_By))
        self.gotoxy(tonum(arg_Cx), tonum(arg_Cy))
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.up()
 
    async def my_filltriinner1(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_lena, arg_lenb, arg_lenc, arg_res14):
        self.var_peri = ((arg_lena + arg_lenb) + arg_lenc)
        self.var_ind = (sqrt(div(((((arg_lenb + arg_lenc) - arg_lena) * ((arg_lenc + arg_lena) - arg_lenb)) * ((arg_lena + arg_lenb) - arg_lenc)), self.var_peri)) + div(arg_res14, 1.5))
        if gt(self.var_ind, arg_res14):
            self.var_incx = div((((arg_lena * tonum(arg_Ax)) + (arg_lenb * tonum(arg_Bx))) + (arg_lenc * tonum(arg_Cx))), self.var_peri)
            self.var_incy = div((((arg_lena * tonum(arg_Ay)) + (arg_lenb * tonum(arg_By))) + (arg_lenc * tonum(arg_Cy))), self.var_peri)
            if (lt(arg_lena, arg_lenb) and lt(arg_lena, arg_lenc)):
                await self.my_filltriinner2(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Ax)) * (tonum(self.var_incx) - tonum(arg_Ax))) + ((tonum(self.var_incy) - tonum(arg_Ay)) * (tonum(self.var_incy) - tonum(arg_Ay))))) * 4))), arg_res14)
            else:
                if (gt(arg_lenb, arg_lena) or gt(arg_lenb, arg_lenc)):
                    await self.my_filltriinner2(util, arg_Cx, arg_Cy, arg_Bx, arg_By, arg_Ax, arg_Ay, (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Cx)) * (tonum(self.var_incx) - tonum(arg_Cx))) + ((tonum(self.var_incy) - tonum(arg_Cy)) * (tonum(self.var_incy) - tonum(arg_Cy))))) * 4))), arg_res14)
                else:
                    await self.my_filltriinner2(util, arg_Bx, arg_By, arg_Ax, arg_Ay, arg_Cx, arg_Cy, (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Bx)) * (tonum(self.var_incx) - tonum(arg_Bx))) + ((tonum(self.var_incy) - tonum(arg_By)) * (tonum(self.var_incy) - tonum(arg_By))))) * 4))), arg_res14)
 
    async def my_filltriinner2(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Aox, arg_Aoy, arg_Box, arg_Boy, arg_Cox, arg_Coy, arg_ind, arg_rate, arg_res14):
        self.gotoxy(toint(self.var_incx), toint(self.var_incy))
        self.pen.set_size(arg_ind)
        self.pen.down()
        self.pen.up()
        self.var_td = (arg_rate + 1)
        while not lt((arg_ind * self.var_td), arg_res14):
            self.pen.set_size((arg_ind * self.var_td))
            self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay)))
            self.pen.down()
            self.gotoxy(((arg_Box * self.var_td) + tonum(arg_Bx)), ((arg_Boy * self.var_td) + tonum(arg_By)))
            self.gotoxy(((arg_Cox * self.var_td) + tonum(arg_Cx)), ((arg_Coy * self.var_td) + tonum(arg_Cy)))
            self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay)))
            self.pen.up()
            self.var_td += (self.var_td * arg_rate)
 
            await self.yield_()
        self.pen.set_size((arg_ind * self.var_td))
        self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay)))
        self.pen.down()
        self.gotoxy(((arg_Box * self.var_td) + tonum(arg_Bx)), ((arg_Boy * self.var_td) + tonum(arg_By)))
        self.gotoxy(((arg_Cox * self.var_td) + tonum(arg_Cx)), ((arg_Coy * self.var_td) + tonum(arg_Cy)))
        self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay)))
        self.pen.up()
 
    @warp
    async def my_fillquadresolution(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res):
        await self.my_rasterquadfillresolution(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res)
        self.pen.set_size(1)
        self.pen.exact_color("#000000")
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.down()
        self.pen.set_size(tonum(arg_res))
        self.gotoxy(tonum(arg_Bx), tonum(arg_By))
        self.gotoxy(tonum(arg_Cx), tonum(arg_Cy))
        self.gotoxy(tonum(arg_Dx), tonum(arg_Dy))
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.up()
 
    @warp
    async def my_fillquadtrires(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res):
        await self.my_filltriinner1(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, sqrt((((tonum(arg_Bx) - tonum(arg_Cx)) * (tonum(arg_Bx) - tonum(arg_Cx))) + ((tonum(arg_By) - tonum(arg_Cy)) * (tonum(arg_By) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Cx)) * (tonum(arg_Ax) - tonum(arg_Cx))) + ((tonum(arg_Ay) - tonum(arg_Cy)) * (tonum(arg_Ay) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Bx)) * (tonum(arg_Ax) - tonum(arg_Bx))) + ((tonum(arg_Ay) - tonum(arg_By)) * (tonum(arg_Ay) - tonum(arg_By))))), (tonum(arg_res) * 1.4))
        await self.my_filltriinner1(util, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_Ax, arg_Ay, sqrt((((tonum(arg_Dx) - tonum(arg_Ax)) * (tonum(arg_Dx) - tonum(arg_Ax))) + ((tonum(arg_Dy) - tonum(arg_Ay)) * (tonum(arg_Dy) - tonum(arg_Ay))))), sqrt((((tonum(arg_Cx) - tonum(arg_Ax)) * (tonum(arg_Cx) - tonum(arg_Ax))) + ((tonum(arg_Cy) - tonum(arg_Ay)) * (tonum(arg_Cy) - tonum(arg_Ay))))), sqrt((((tonum(arg_Cx) - tonum(arg_Dx)) * (tonum(arg_Cx) - tonum(arg_Dx))) + ((tonum(arg_Cy) - tonum(arg_Dy)) * (tonum(arg_Cy) - tonum(arg_Dy))))), (tonum(arg_res) * 1.4))
        self.pen.set_size(tonum(arg_res))
        self.gotoxy(tonum(arg_Cx), tonum(arg_Cy))
        self.pen.down()
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.exact_color("#000000")
        self.gotoxy(tonum(arg_Bx), tonum(arg_By))
        self.gotoxy(tonum(arg_Cx), tonum(arg_Cy))
        self.gotoxy(tonum(arg_Dx), tonum(arg_Dy))
        self.gotoxy(tonum(arg_Ax), tonum(arg_Ay))
        self.pen.up()
 
    @on_broadcast('start music')
    async def broadcast_startmusic(self, util):
        await self.sounds.play("Julius_-_3d_Demo_Tune.mp3")
        pass # hide variable
        pass # hide variable
        while not gt(util.timer(), 202):
            await self.yield_()
        pass # hide variable
        pass # hide variable
        util.stop_all()
        return None
 
    @on_broadcast('green flag')
    async def broadcast_greenflag(self, util):
        self.var_lastrendertime = 0
        pass # hide variable
        pass # hide variable
        await self.sounds.play("silence")
        util.sprites.stage.var_Zoom = 100
        util.sprites.stage.var_Resolution = 3
        self.var_Stars = 300
        self.var_GUI = 0
        self.var_ZoomSx = 0
        self.var_beat = 1
        self.var_beatSize = 1
        self.var_beatTimer = self.list_beat[1]
        self.shown = False
        await self.my_Create(util, )
        await self.my_CreateStars(util, )
        self.var_distance = 50
        self.var_speed = 25
        self.var_speedTarget = 0.3
        self.var_acc = 0
        util.send_broadcast("start music")
        util.timer.reset()
        while True:
            if lt(util.timer(), 4):
                util.sprites.stage.var_Zoom = 100
            else:
                if lt(util.timer(), 10):
                    self.var_ZoomSx += ((300 - util.sprites.stage.var_Zoom) * 0.1)
                    self.var_ZoomSx = (self.var_ZoomSx * 0.8)
                    util.sprites.stage.var_Zoom += toint(self.var_ZoomSx)
                else:
                    if lt(util.timer(), 55):
                        if gt(util.timer(), 43):
                            self.var_ZoomSx += ((120 - util.sprites.stage.var_Zoom) * 0.015)
                            self.var_ZoomSx = (self.var_ZoomSx * 0.5)
                            util.sprites.stage.var_Zoom += toint(self.var_ZoomSx)
                    else:
                        if lt(util.timer(), 73):
                            if gt(util.timer(), 65):
                                self.var_ZoomSx += ((280 - util.sprites.stage.var_Zoom) * 0.1)
                                self.var_ZoomSx = (self.var_ZoomSx * 0.8)
                                util.sprites.stage.var_Zoom += toint(self.var_ZoomSx)
                        else:
                            util.sprites.stage.var_Zoom = (200 + (80 * math.cos(math.radians(((util.timer() - 73) * 20)))))
            if eq(self.var_GUI, lt(util.inputs.mouse_y, 100)):
                self.var_GUI = (1 - self.var_GUI)
                if eq(self.var_GUI, 1):
                    print(util.sprites.stage.var_Resolution)
                    print(util.sprites.stage.var_Zoom)
                else:
                    pass # hide variable
                    pass # hide variable
            self.var_pos += 1
            self.var_distance = div(((self.var_distance * 6) + 4.5), 7)
            self.var_speed = div(((self.var_speed * 20) + self.var_speedTarget), 21)
            await self.my_pause(util, )
            self.var_a1 = (self.var_speed * -1.3)
            self.var_a2 = ((self.var_speed * -2.5) * math.sin(math.radians((util.timer() * 20))))
            if lt(util.timer(), 12):
                await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 0, 8, 1)
            else:
                if lt(util.timer(), 27):
                    await self.my_ProcessPoints(util, (12 * math.cos(math.radians((util.timer() * 9)))), 20, 0, 8, 1)
                else:
                    await self.my_ProcessPoints(util, (8 * math.cos(math.radians((util.timer() * 9)))), 6, 0, 8, 1)
            await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 8, 16, 1)
            if gt(util.timer(), self.var_beatTimer):
                self.var_beatSize = 1.5
                self.var_beat += 1
                if gt(self.var_beat, len(self.list_beat)):
                    self.var_beatTimer = 99999
                else:
                    self.var_beatTimer = (tonum(self.list_beat[self.var_beat]) - 0.2)
            if eq(self.var_beatTimer, 99999):
                if lt(self.var_beatSize, 2):
                    self.var_beatSize += 0.05
                    await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 24, 8, self.var_beatSize)
                else:
                    await self.my_ProcessPoints(util, (8 * math.cos(math.radians((util.timer() * 9)))), (5 * math.sin(math.radians(((util.timer() - 45) * 5)))), 24, 8, 2)
            else:
                self.var_beatSize = div(((self.var_beatSize * 5) + 1), 6)
                await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 24, 8, self.var_beatSize)
            if gt(util.timer(), 42.2):
                if lt(self.var_acc, 13):
                    self.var_acc += 0
            self.var_svx = (((tonum(self.list_points[toint(((10 * self.var_p) + 1))]) + tonum(self.list_points[toint(((12 * self.var_p) + 1))])) * self.var_acc) + 300)
            self.var_svy = (((tonum(self.list_points[toint(((10 * self.var_p) + 3))]) + tonum(self.list_points[toint(((12 * self.var_p) + 3))])) * self.var_acc) + 300)
            self.var_svz = (((tonum(self.list_points[toint(((10 * self.var_p) + 2))]) + tonum(self.list_points[toint(((12 * self.var_p) + 2))])) * self.var_acc) + 300)
            if (lt(util.timer(), 12) or gt(util.timer(), 28)):
                await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), 1)
            else:
                if lt(util.timer(), 16):
                    await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), div((16.01 - util.timer()), 4))
                else:
                    if lt(util.timer(), 27):
                        await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), 0.01)
                    else:
                        await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), div((util.timer() - 27.01), 1))
                        if lt(self.var_speedTarget, 0.6):
                            self.var_speedTarget = 0.6
            await self.my_ProcessPoints(util, self.var_a1, self.var_a2, (32 + div(self.var_Stars, 2)), div(self.var_Stars, 2), 1)
            await self.my_orderpolys(util, )
            self.var_incx = toint((util.sprites.stage.var_Resolution * div(util.sprites.stage.var_Zoom, 300)))
            if lt(self.var_incx, 1):
                self.var_incx = 1
            await self.my_renderatresolution(util, self.var_incx)
            await util.sprites["fade to black"].broadcast_tick(util)
 
            await self.yield_()
 
 
@sprite('fade to black')
class Spritefadetoblack(Target):
    """Sprite fade to black"""
 
    def __init__(self, parent=None):
        super().__init__(parent)
        if parent is not None:
            return
 
        self._xpos = 0
        self._ypos = 0
        self._direction = 90
        self.shown = False
        self.pen = Pen(self)
 
        self.costume = Costumes(
           2, 100, "don't rotate", [
            {
                'name': "black",
                'path': "f5e250886e3bafbbd9bc2398a5e321c5.png",
                'center': (480, 360),
                'scale': 2
            },
            {
                'name': "white",
                'path': "b61b1077b0ea1931abee9dbbfa7903ff.png",
                'center': (480, 360),
                'scale': 2
            },
            {
                'name': "credits",
                'path': "78dfd0b4f1aa8bde356a6b71a1d6de30-svg-2x.png",
                'center': (480, 360),
                'scale': 2
            }
        ])
 
        self.sounds = Sounds(
            100, [
            {
                'name': "pop",
                'path': "83a9787d4cb6f3b7632b4ddfebf74367.wav"
            }
        ])
 
        self.var_tick = 100
        self.var_mode = 2
 
 
 
        self.sprite.layer = 2
 
    @on_broadcast('tick')
    async def broadcast_tick(self, util):
        if eq(self.var_mode, 0):
            if lt(self.var_tick, 100):
                self.var_tick += 3
                if lt(self.var_tick, 100):
                    self.costume.set_effect('ghost', self.var_tick)
                else:
                    self.shown = False
                    self.costume.switch("white")
                    self.var_mode = 1
                    self.var_tick = 0
        else:
            if eq(self.var_mode, 1):
                if gt(util.timer(), 27):
                    self.shown = True
                    self.var_tick += 15
                    if lt(self.var_tick, 100):
                        self.costume.set_effect('ghost', self.var_tick)
                    else:
                        self.shown = False
                        self.costume.switch("credits")
                        self.var_mode = 2
                        self.var_tick = 100
            else:
                if gt(util.timer(), 194):
                    self.shown = True
                    self.var_tick += -1
                    if gt(self.var_tick, 0):
                        self.costume.set_effect('ghost', self.var_tick)
                    else:
                        self.var_mode = 3
 
    @on_green_flag
    async def green_flag(self, util):
        self.gotoxy(0, 0)
        self.costume.switch("black")
        self.costume.clear_effects()
        self.shown = True
        self.var_tick = 0
        self.var_mode = 0
        util.send_broadcast("green flag")
 
 
 
 
if __name__ == '__main__':
    engine.start_program()
 

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
Gamer_Logan819
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

mbrick2 wrote:

Wow!!!!

Now do python to scratch, lol

The forum boogeymen are out to get you

-OofyRoblox-
Scratcher
500+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here

hello I am Oofy and I play Roblox

Madness Combat is a good show and Super Smash Bros is a good game
RED-001-alt
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

-OofyRoblox- wrote:

I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
im 14 and all i know is scratch and i stalk the forums 24/7 thats all i spend my life on

Please don't remove the automatic browser/OS info after making a new Bugs and Glitches forum post, that information really helps a lot!
(unless you are reporting from a different device, then you should specify what device, OS, and browser you have)

Join the Ohio Army!!
Scratch Etiquette

Sratch 2.0 player alternative: https://scratch.mit.edu/discuss/topic/633464/?page=1#post-6649811
Scratch 15th Birthday Celebration: https://youtube.com/watch?v=7Gd_b1mbrxM
Encore event: https://www.youtube.com/watch?v=gI4Gcf-T28g
Please help with this: https://scratch.mit.edu/discuss/topic/606203/
I am actually @RED-001 but I forgot my password, so this account was created
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

-OofyRoblox- wrote:

I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
There's a replit someone made in the issues of the GitHub which lets you use it online. I'm pretty sure it is not the latest version though, which run a little bit faster. It also doesn't have SVG support so some of the projects won't work right.

I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
kccuber
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

imfh wrote:

I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
I think so, just no replit collab links.


Made using Nord Theme & Inkscape
imfh
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

kccuber wrote:

imfh wrote:

I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
I think so, just no replit collab links.
I see a lot of people on Scratch sharing and using replit as of recently, but I'm still not sure if it is allowed since about a year ago it seemed like the answer was a solid no. I'll just leave it alone for now.

Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
mumu245
Scratcher
1000+ posts

[v1.1-beta] sb3topy: Scratch to Python with Pygame

god286 wrote:

I will try it soon! This is cool!

Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though
No. My project also runs everything live. It is not a transpiler.

select this text then press Ctrl+Shift+Down to read more

Powered by DjangoBB