From efb4ebce97c0b7ea2c5fc0220c7744f7046d3379 Mon Sep 17 00:00:00 2001 From: Hannah-Dagemark Date: Sat, 1 Jun 2024 03:23:34 +0200 Subject: [PATCH] Commit 01/06-24 --- Main.py | 95 +++++++++++++----- Map/MapManager.py | 42 +++++++- Map/TileTypes.py | 24 +++-- Map/__pycache__/MapManager.cpython-312.pyc | Bin 16464 -> 18723 bytes Map/__pycache__/TileTypes.cpython-312.pyc | Bin 4629 -> 5176 bytes Realms/RealmManager.py | 28 ++++-- .../__pycache__/RealmManager.cpython-312.pyc | Bin 3126 -> 3608 bytes Realms/valid_border_colours.txt | 14 +-- .../__pycache__/ScriptUtils.cpython-312.pyc | Bin 165 -> 164 bytes 9 files changed, 152 insertions(+), 51 deletions(-) diff --git a/Main.py b/Main.py index 3c8dc32..1a719b3 100644 --- a/Main.py +++ b/Main.py @@ -13,7 +13,8 @@ import RealmManager # pygame setup pygame.init() -screen = pygame.display.set_mode((1280, 720)) +w,h = 1280, 720 +screen = pygame.display.set_mode((w, h)) pygame.display.set_caption('CountDuchKing') clock = pygame.time.Clock() running = True @@ -137,7 +138,11 @@ class uText: if textTest[0] != text and textTest[1] == position: self.texts.remove(textTest) self.texts.append((text,position)) - print(self.texts) + #print("\n\nT E X T S :") + #p = [] + #for t in self.texts: + # p.append(t[0]) + #print(p) def delete(self, parameter, info): text2 = [] @@ -155,22 +160,30 @@ class uText: textPrintRect = textPrintRect.move(int(text[1][0]),int(text[1][1])) screen.blit(textPrint, textPrintRect) - def runTextTile(self, tile_pressed): + def runResourceView(self, info, mode): i=0 - info = GameMap.getTileInfo(tile_pressed) - self.write(info["terrain"],(1000,50)) - - for bit in info["gameplay"]: - if True: #type(bit) == " 0: + print(f"Claiming {pt.Id} for {ip.name}") + GameMap.claimTileFor(pt.Id,ip) + for tile in GameMap.findBorderTiles(pt.Id): + ip.borderTiles.append(int(tile)) + ip.resources["villagers"] -= 1 + self.turnHolder += 1 + elif ip.resources["settlers"] > 0: + print(f"Settling {pt.Id} for {ip.name}") + GameMap.claimTileFor(pt.Id,ip) + for tile in GameMap.findBorderTiles(pt.Id): + ip.borderTiles.append(int(tile)) + ip.resources["settlers"] -= 1 + self.turnHolder += 1 + else: + self.turnHolder += 1 def expand_cccs(self, ccc): print(f"Using ccc = {ccc}") @@ -352,6 +393,7 @@ while running: # pygame.QUIT event means the user clicked X to close your window for event in pygame.event.get(): if event.type == pygame.QUIT: + uCommunicator.globalGameState = 0 running = False if event.type == pygame.MOUSEBUTTONDOWN: if pygame.mouse.get_pressed()[0] == True: @@ -366,8 +408,13 @@ while running: # fill the screen with a color to wipe away anything from last frame screen.fill("black") - if tile_pressed != None: - uTexter.runTextTile(tile_pressed) + if uCommunicator.resourceViewActive == False and uCommunicator.resourceView == True and tile_pressed != None: + uButtoner.addButton("State", 850, 0, 120, 50, "darkgray", "gray", "uCommunicator.switchResourceView()", True) + + if tile_pressed != None and uCommunicator.resourceView == False: + uTexter.runResourceView(tile_pressed, "t") + elif uCommunicator.globalGameState == 1: + uTexter.runResourceView("p1", "p") uButtoner.updateHover() uButtoner.drawButtons() diff --git a/Map/MapManager.py b/Map/MapManager.py index 6ba997b..d933a4e 100644 --- a/Map/MapManager.py +++ b/Map/MapManager.py @@ -148,14 +148,18 @@ class MapManager: tilesMapped[position[0]][position[1]] = self.TileWorker.get_rand_tType(tilesMapped, position) #print(f"{tilesMapped}") mappedColours = self.TileWorker.get_terrain("colours") + print("Assigning terrains and features...") for x in self.tiles.keys(): tile = self.tiles[f"{x}"] if tilesMapped[tile.Position[0]][tile.Position[1]] != "": - colour = mappedColours[f"{tilesMapped[tile.Position[0]][tile.Position[1]]}"] + terrain = f"{tilesMapped[tile.Position[0]][tile.Position[1]]}" + colour = mappedColours[terrain] colour1, colour2, colour3 = colour[0], colour[1], colour[2] - tile.add_terrain(f"{tilesMapped[tile.Position[0]][tile.Position[1]]}") + tile.add_terrain(terrain) tile.paint_pixels(mapObject, int(colour1),int(colour2),int(colour3)) tile.findBorder(mapObject) + tile.add_resources(self.TileWorker.get_resource_for(terrain)) + def re_load(self): print("To Be Implomented") @@ -179,6 +183,30 @@ class MapManager: print(f"Could not find tile at position: {pos[0]},{pos[1]}") return None + def findBorderTiles(self, id): + bTiles = [] + id = int(id) + pos = self.tiles[str(id)].Position + if id != 0: + bTiles.append(id-1) + if self.findTileAtRel((pos[0],pos[1]-1)): + bTiles.append(self.findTileAtRel((pos[0],pos[1]-1))) + if self.findTileAtRel((pos[0],pos[1]+1)): + bTiles.append(self.findTileAtRel((pos[0],pos[1]+1))) + if pos[1] % 2 == 1: + pos1 = (pos[0]+1) + else: + pos1 = (pos[0]-1) + bTiles.append(self.findTileAtRel((pos1,pos[1]-1))) + bTiles.append(self.findTileAtRel((pos1,pos[1]+1))) + + if pos[1] == self.tiles[str(id+1)].Position[1]: + bTiles.append(id+1) + print(f"Tile: {id}/{pos} has bordertiles: ") + for tile in bTiles: + print(f"{tile}/{self.tiles[str(tile)].Position}") + return bTiles + def findTileAtRel(self, pos): for x in self.tiles.keys(): tile = self.tiles[f"{x}"] @@ -200,6 +228,10 @@ class MapManager: info["gameplay"] = thistile.getGameplayInfo() return info + def illegalTilePaint(self, id, mapObject): + tile = self.tiles[str(id)] + tile.paint_border_pixels(mapObject) + def paintTileBorder(self, id, mapObject): if self.paintedTile != None: self.clearPaintedTile(mapObject) @@ -233,7 +265,7 @@ class Tile: self.pixels = [] self.colour = (0,0,0) self.terrain = "" - self.resources = {} + self.resources = [] self.buildings = [] self.units = {} self.owner = "Unclaimed" @@ -264,6 +296,10 @@ class Tile: def add_terrain(self, terrain): self.terrain = terrain #print(f"Added terrain for tile {self.Id}, it is now a {self.terrain} / {terrain} biome") + + def add_resources(self, resources): + for resource in resources: + self.resources.append(resource) def paint_pixels(self, map, r,g,b): for pixel in self.pixels: diff --git a/Map/TileTypes.py b/Map/TileTypes.py index b8955b1..779ee0e 100644 --- a/Map/TileTypes.py +++ b/Map/TileTypes.py @@ -4,19 +4,19 @@ class TerrainWorker: def generateTerrain(self): self.terrains = [] - ocean = Terrain("ocean", (0, 102, 255), 2, True, ("plains", "forest", "hills")) + ocean = Terrain("ocean", (0, 102, 255), 2, True, ("plains", "forest", "hills"),((0.5,"food"),)) self.terrains.append(ocean) - lake = Terrain("lake", (0, 204, 255), 1, True, ("plains", "forest", "hills")) + lake = Terrain("lake", (0, 204, 255), 1, True, ("plains", "forest", "hills"),((1,"food"),)) self.terrains.append(lake) - plains = Terrain("plains", (0, 200, 0), 1, False, ("ocean", "lake", "forest", "hills", "desert")) + plains = Terrain("plains", (0, 200, 0), 1, False, ("ocean", "lake", "forest", "hills", "desert"),((0.5,"food"),(0.25,"wood"),(0.25,"stone"))) self.terrains.append(plains) - forest = Terrain("forest", (0, 100, 0), 2, False, ("ocean", "lake", "plains", "hills")) + forest = Terrain("forest", (0, 100, 0), 2, False, ("ocean", "lake", "plains", "hills"),((1,"wood"),(0.25,"stone"),(0.25,"food"))) self.terrains.append(forest) - hills = Terrain("hills", (102, 102, 153), 2, False, ("ocean", "lake", "plains", "forest")) + hills = Terrain("hills", (102, 102, 153), 2, False, ("ocean", "lake", "plains", "forest"),((1,"stone"),(0.25,"wood"),(0.25,"food"))) self.terrains.append(hills) - desert = Terrain("desert", (230, 230, 0), 1, False, ("plains", "dune")) + desert = Terrain("desert", (230, 230, 0), 1, False, ("plains", "dune"),((0.25,"stone"),)) self.terrains.append(desert) - dune = Terrain("dune", (153, 153, 0), 2, False, ("desert",)) + dune = Terrain("dune", (153, 153, 0), 2, False, ("desert",),((0.5,"stone"),)) self.terrains.append(dune) self.terrainNames = [] for terrain in self.terrains: @@ -34,6 +34,11 @@ class TerrainWorker: #print(f"{dictionary}") return dictionary + def get_resource_for(self, terrainName): + for terrain in self.terrains: + if terrain.name == terrainName: + return terrain.resources + def biomebalance(self, biome): if biome == "ocean": return 2 @@ -83,9 +88,10 @@ class TerrainWorker: class Terrain: - def __init__(self, name, colour, moveC, water, proxys): + def __init__(self, name, colour, moveC, water, proxys, resources): self.name = name self.colour = colour self.moveCost = moveC self.isWater = water - self.proxys = proxys \ No newline at end of file + self.proxys = proxys + self.resources = resources \ No newline at end of file diff --git a/Map/__pycache__/MapManager.cpython-312.pyc b/Map/__pycache__/MapManager.cpython-312.pyc index a231d2aa0ad3728eefe9f1a3c75538537667ab84..63033afd3ca8be928b3ab64fdb2805a7b51c701f 100644 GIT binary patch delta 3520 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 M+E9w&9-Q+30)HuYz5oCK delta 1554 zcmZvcdrVtZ9LMju^g(HFDHL1UF-j={mq&S|z<56-2s#+D2@G(ou7v=F!YL0ysyK$I zfRp`(6tR5%L&{_D9QgEowkPcx|DXQ0QElJH)50rF0>Tyy} zSG|2`$my{GvGxRWeHlZ|d6Q zQPYxXS-%c0YPF!&XQmt2#9r03${|CGjnccLIuwcas=Wd$us}?zR(ekBpN2-Ps)GhSxAfn-muP#8u-@G4&_F@M1uv#jm5<61LJgr zc01<2^TuW4dDF6KD<(O}$rYK9l~|N!NWGkS&9OeXHh8@{P*@kpcyLqlrSO^HZ*2?I zw+Awg`^Aocp$lG2yg%jPYm#+gP58hb$gK*bR9{c|GPYqpu3fEa56=?1H{j(iAX))go`%C(HlQVIhZfCkO{a_Y9ItYDg7ccv>~33z-wg%L<)hjrdV{*R~bY; zEEQ!rjAF!+%w#^KJhupk_s9sULhlJv!aoxeAddVyb-0Q$%v4svuIsFw836= zGP`;DnuA2+E2!ZmrjUmCuNmI05-k-%K&(J(T`EcNdF$p$kD9)Kz6Hc0;$;LL5k=AI z7-AeTfk;C%BGM6FL=$4)eN9Cl;wSd=lz_WF4_4~4jrXSg8Cf>yc8s~474#jrU2jP2 XiXgeW9P;-nc>^J}B*=w^&{Oyajy;WK diff --git a/Map/__pycache__/TileTypes.cpython-312.pyc b/Map/__pycache__/TileTypes.cpython-312.pyc index aa1fb08f40531da3d712e1996d4aa3e6b07b444d..c461dca08aeb601518884aa4675c3b77cceb9983 100644 GIT binary patch delta 1659 zcmZ8hO>7%Q6rNe{u78rXogdrzbzG;3y(X=wpcJ*G^e3pKY7?p^1lpj)@odsGu@`3J zrYW(4)Eo*bf@p+Vkhl{?LP!Cr5*H*69Oxk>LPX1j6DUHU#yJ#m;=OTxL`K?gXTSI6 zn>X*h*-s8WOb357i~xZ#Q@lF%N_a6?pqa%|$FodZAXmM!y6JU|ev9+$L}Ae8lNQfW z^xhsmczfX4N-sW2RWp5AuNX>HT&B;6G>sZw=3{=QGK~e6bJ>fBu=VH z8WzK9WFCAC;C7W(L1_k*mJ}WZ-qoCGyI}Du6xfz!sDT@pD#y(5FaoBVS0n4$*(Zin z1HiTz5AFGIFV4N`=Fz zE9R}jv@>*mV*1tMsQ5$JWB*BBdww)q&BqP)=Oblg1N5ZqNZ`i;&va z74c4m8KFIrxqwVWEb9jP<>*CZYc46`TNLRVS*yvSLv1Mf@y!RNFS1`n9#*Y(_pgNp zR#b00ZA#*C+5lWVXHVHh&JV%|l&4di@il}}@ZqQc2^c&ruKPYnWZ*N0Y1tXr@UrPg zU~->8S4OM5$y=aWQs$H!ir5U)&rha7iQcON0`>NdoI=SJqLNv%M0=rIFd`X=>*tmO zVdX3b=uV*Bs_Dx0>&@mZE(65PWqfE3k6Y8jJBx#^qhrNvU2D1P(q`Snorqq+Cz9=y92%B;uYzr@myW9gs5=}isHJR`Pzci=9}_>(DY zFxflunk*4$6d9{FI$`H62eT#f_nrR`&4|DK*Jx(tLf{AGvb$n=v7RD|968h>eXLcTv18>Q@o++yU3Y}uqI7Uti&f(YJ+Yz$m#G)4 z)@%C2*P)I<6L&a*@B#u#@=FLO5YUrDwFt*TNx%dvC4~xg)*y+>2@aK{C z%A{@EfN-_EebYMUYBO1^`L3gbe*h>r4rt2Onl}9!Fiw{^ThlpzuWG$9c~|`~C{NN0 zz1#~%-iPoS!XU!Fqb86;coQC}zd*KBU2CtT11->hXW>=J3KIJ?{`H;A+pKtW$~wj0 j05kqM9jxOM52f^1Vmwv*Dec-Mh)<^!A8jua0J+0|0aRo1 delta 1061 zcmZ8gOHUI~6rS6eI|H4zLn$p#XiL#r8xbN=L1ILNg@p(k#Hd75oRJWuC3lL-g1C?v zW8$JYapNB_q?%w@=s#fL!Ur0Yajl826c$7iqvu@W^Ct7%Ip_P%J&(Ebbnm_0p=ZIM zU%@riHFo(ys1ho&-Ib+`w#ajOxh4v4YkJQ;=Y1jXb?@ns#z9?A8IcQYpqb$Qn4VW7bZaf!P9NWbwnASYe`d5)SC!EBTtX~ zv86tYOiumyfdmZ%K63a3MR=OMP;^9;JgSHgD?v(_2*WC$i2rvU>xhxRWOf#iHYO+J$Lnt{`S7ha7jdT$+dT`Zzlat9o4Bs5=8M^mce@G(x}#sT<)L z$QtdqUxW$T>!y&8!hIu%zA<=Yq}2^;XzjJJi^ZEMXAHs9FO{y87KCU)Bd3W3gln6u zBpR-U(1uH-pttr8OT#DsO%{Zr*`D1g8F^tLtk4J&_~P-YnbMr&Qp+;#iMgL;;JtaC zrPl@m>%MN1%b|Hn&M#yYP2{3dWC@-=FG|-JU5|@GaoQ1G&}SuC0?t}JED06s5KF%gUw};T@YDH9Wc5 z5aQ9T_Ez2@(vYq1X=y~kB^}|{qQ>OS9)`vGk#mbmj*aHHEL>!e^J?ZwSDnF@f4VpBno8GZt^%iV(j diff --git a/Realms/RealmManager.py b/Realms/RealmManager.py index 075c0ae..3020caf 100644 --- a/Realms/RealmManager.py +++ b/Realms/RealmManager.py @@ -8,18 +8,22 @@ class RealmManager: self.amount = amount temptext = open("./Realms/computer_names.txt", "r") self.compnames = temptext.read() - print (self.compnames) self.compnames = self.compnames.split("\n") temptext.close() temptext = open("./Realms/valid_border_colours.txt", "r") self.colournames = temptext.read() - print (self.colournames) self.colournames = self.colournames.split("\n") temptext.close() for x in range(self.amount): if x == 0: - self.players[0] = Player("p1", self.colournames) - self.players[x] = Player("c", self.colournames, x, self.compnames) + c = self.colournames[random.randint(0,len(self.colournames)-1)] + self.players[0] = Player("p1", c) + self.colournames.remove(c) + c1 = self.colournames[random.randint(0,len(self.colournames)-1)] + c2 = self.compnames[random.randint(0,len(self.compnames)-1)] + self.players[x] = Player("c", c1, x, c2) + self.colournames.remove(c1) + self.compnames.remove(c2) for x in self.players: p = self.players[x] print(f"Player {p.id}/{p.name} with colour {p.borderColour}") @@ -33,13 +37,21 @@ class RealmManager: class Player: - def __init__(self, controller, colour, id=0, names=None,): + def __init__(self, controller, colour, id=0, name=None,): + self.resources = { + "settlers": 1, + "villagers": 4, + "wood": 0.0, + "stone": 0.0, + "food": 0.0, + "weapons": 0.0, + "tools": 0.0, + } self.id = id self.controller = controller self.heldTiles = [] - colour = colour[random.randint(0,len(colour)-1)] + self.borderTiles = [] colour = colour.split(",") print (colour) self.borderColour = (int(colour[0]),int(colour[1]),int(colour[2])) - if controller == "c": - self.name = names[random.randint(0,len(names)-1)] \ No newline at end of file + self.name = name \ No newline at end of file diff --git a/Realms/__pycache__/RealmManager.cpython-312.pyc b/Realms/__pycache__/RealmManager.cpython-312.pyc index 222a88706d57279e61f872c590329f4e1b4755df..e3ad1eee2e0dac9b639ffff1f3cead399ba17b0b 100644 GIT binary patch delta 1829 zcma)7OH3O_7@k@0%dlV@4A|fhGyiM+oo^{n`*TfA6(I8I?5XKBVWIY0W`$k&=>i^xjrbD0j(0QH>gM5xZvt?c zHCUPdq!R#?#%`uDq&LtXQkiKik6TgZbw3uFa7Y#|krVDSWztWE%bea)St^SLhyP;Q z$w5u6J1Vm;MuWQ#%NE2grs)+A9oyzm-T*VUt1mXE+ADZ*5QaOq*-+Txh11{-))4Nq z_-`h_8SFs-a1Y~a*v=y!pMq_>wqt}%U%@=QegMxp4!tev&;18Lt}?`#)|anOt(!ou zCQNW!Mj}iIKXF804Q^&XVje+!o(;n~{1tm5i{cqsO3AyswG#jL|sYG>dFP( zf)@~txWy#)kndg#&T39#2P@L{Y<{PG>kbP;$BF2d`4-4W9r$-`Cm zYb8%Z(bHyn+U|t!cHiz^_B`la){FfkX8%Z`_vpi{$Lt*~gpQe>vD_e8yV$zWdWXMT zd%HG&_Cfvf$?vDWnJVlVUO8^=IZ_CYn4Y7#!L`=*TPO0Ne0;gC(7G=-d}HkD*plb! zL`iZNrGO~~iqbAq+I4GiRf>?g8{=2Ui&C2@wcQH+Ds`;a6NlHmpssN-un@pM@+)05 ziimbpltDE#!VZ!>qSNBAcv;co$&^Oo=FoIceZ-1B&=yd}30E$q( zg92Lt2T?S->lLuU`nXZJv5)1tPz0yNx3aW<#}gdEiikv^KiT+~z#@>L%*c+-5BsHH zfLLWMFdW3%ENBA~>-oa~z!^X+x|1!oMek&b!OT=sB~UgiC~v+Fml?eV$D9pWSA{be znWwj{^pw7pf&a@0TbXHkUFx7Mq{BgshTfKoAS#X{N=#c8^lQ7m?v8p3%cKC5Oli_=v#r9Fdh*jasKr?$#+B1I#emQXa* zf+wn4veo4VJef?9sXB5Zk|;ze&<6$4_(VCo4$xtuTYSQ9Rzx3Mo7HIU>;|;cZi%s2 zGLzI}u}iLU-*;Cg$V(5j&k1}6{_y!r{^nAjx2e?ND-mpJCdy-%*j$xkuh*{Ef%*ob z2&LwBGPp|q7CK#O*^y&cMIYW-eJJbo<=8KrcD<28r4EiqS=2>F)J>s>!XSm+6kgON z%?F}D%T^NzTmk>E9?oB0Lz$=p(SM+F3ES&m-s72gus^NJb1CI88X^m60ctc}>kbIv ZZ=mKW8-!ht0fDDSU_JCd0R-&*{{sX-ibMba delta 1436 zcmb7E-A`Oa6rZ_Y`@IY0Yx!EXbW6JxB-U6I3zYz-)`pLOCI-}Q_g>nCyC0o97-(+6 zL}Rv1O-m=HG?J9ZCG>&xLGh`HFFyESR+_N6;vdlXf~83tVxng*E+EDSPjY{A=A1Jp z=gj=hov-^Q=>O5@b0d(?ei|4XQRe&)g<)~-`ze89_J`QS7Nu&og~RL$p5Uexp@|KM zK{kL7voc}mMmq`JWq+_Mxl@OZ#e!#*+}nRV>NS^fAkojAi;Sj%#sB ze2~|2QZ1RG+7z|$l!Y^f0>-c{+r8cGqwg6SF-FhEQYp=NS&d!Nk})zd+M^j0G@Tjk zPEV$2&t&}ay9wrZwBcd)w&Rp{!|BV?TQk>Z9y>$KbiC=e4eNo1e4yd6Gt9nqv<^K* zqN^Wgy9$Al+g&$4*=RhTE6>sO)-(CmGi!}+-Infp=e+ZSbAgReWN|1LSwGR9KheJ0 zwMrk&d^fWe>dW@rI)DBAeCdt;O$Sf4>14k;e`s++`9uJS3dGC%6B8*4dNtP-Rim+l zZg77%OhPR0YQnYbh3i$INVEIop$2e}2*45|VXlW*#$Dqnm(Ss?W=U=#VfK~#jakl; zzPJon6bC3Gd|Ns^?_FeyCi=MOLnemZ?z3M)u;UfjVhWU>wPl?_5Vz34!J`OaL`(OqD&}X4C;s6P{?jAv_l)sYUAr0a ztSZ~H^pYw4kItlG3IA>k((ew|G@3?HrO$rgC;Tq9aq|;?34~V=^^i&gwOQ_XIz>rZ z*I^!9mo;4-PUxD!E-00~gf~z4m6Apde9A}_KvcFlLRvw$l(;=KkPbF7pC-fL&uz~I zkm8Xy)WK0`ReN7C37uwIv?!F_I&xyrii@t zHXDJ)yw|>{M4DhF$2h=$3z1VCq8!2;LL4|rZQy+xoMfM)XOc_q+=;0`Bha)+Ug2R< xG4?=`ZRhD^TAkFjPSOS;{KkzsfK3r&{0s6um+ElK?+D;|rw4aFMF4jCzW|fPC|3Xg diff --git a/Realms/valid_border_colours.txt b/Realms/valid_border_colours.txt index 4dcefaf..a7068b6 100644 --- a/Realms/valid_border_colours.txt +++ b/Realms/valid_border_colours.txt @@ -1,8 +1,8 @@ -255,0,0 -255,255,0 +255,51,102 +204,0,102 +255,128,0 255,0,255 -0,0,0 -160,160,160 -0,100,0 -255,100,255 -180,0,180 \ No newline at end of file +255,255,0 +102,0,204 +255,255,102 +204,51,255 \ No newline at end of file diff --git a/Script/__pycache__/ScriptUtils.cpython-312.pyc b/Script/__pycache__/ScriptUtils.cpython-312.pyc index c3644de0faf98f9260a94f43c8662cae9db414e2..24c6d33af90715deb6a6753240486312865f4482 100644 GIT binary patch delta 55 zcmZ3=xP+1WG%qg~0}z-N$xh@pR&aK)5NX*MijB&|NF3nBND=Cg~&n)pM JO_~_*1^}fH5o`be delta 56 zcmZ3&xRjCmG%qg~0}v$X`%mOHR&;T;iU}=FEh>)jNX*MiE!Im(Oi#^CEXs~?NiEJU K$uF1~=LP__>=Dxd