From 52489d9b9b2d7633f9b7caaed0ed1ea40972032b Mon Sep 17 00:00:00 2001
From: Sam Moore <matches@ucc.asn.au>
Date: Sat, 5 May 2012 21:10:31 +0800
Subject: [PATCH] [PRELIMINARY ROUND 2]

Finally.
BLERGH.
---
 agents/asmodeus/basic_python.pyc        | Bin 0 -> 10802 bytes
 agents/asmodeus/path.pyc                | Bin 0 -> 2111 bytes
 agents/basic_cpp/basic_cpp              | Bin 0 -> 145014 bytes
 agents/basic_cpp/basic_cpp.o            | Bin 0 -> 269696 bytes
 agents/celsius-v1.1.tar                 | Bin 0 -> 20480 bytes
 agents/celsius-v1.2.tar.gz              | Bin 0 -> 5191 bytes
 agents/celsius1.1/celsius.py            | 539 +++++++++++++++
 agents/celsius1.1/info                  |   4 +
 agents/hunter/basic_python.pyc          | Bin 0 -> 11452 bytes
 agents/peternlewis.zip                  | Bin 0 -> 14703 bytes
 agents/ramen.tar                        | Bin 0 -> 51200 bytes
 agents/ramen/28f56d3c_peternlewis.ramen | Bin 0 -> 48 bytes
 agents/ramen/ramen                      | Bin 0 -> 49073 bytes
 agents/ramen/src/Makefile               |  25 +
 agents/ramen/src/ai.c                   | 874 ++++++++++++++++++++++++
 agents/ramen/src/ai.o                   | Bin 0 -> 41552 bytes
 agents/ramen/src/ai.o.dep               |   1 +
 agents/ramen/src/ai_common.h            | 108 +++
 agents/ramen/src/db.c                   | 258 +++++++
 agents/ramen/src/db.o                   | Bin 0 -> 20832 bytes
 agents/ramen/src/db.o.dep               |   1 +
 agents/ramen/src/interface.h            |  70 ++
 agents/ramen/src/main.c                 | 240 +++++++
 agents/ramen/src/main.o                 | Bin 0 -> 19688 bytes
 agents/ramen/src/main.o.dep             |   1 +
 agents/vixen/basic_python.pyc           | Bin 0 -> 10751 bytes
 agents/vixen/path.pyc                   | Bin 0 -> 2093 bytes
 27 files changed, 2121 insertions(+)
 create mode 100644 agents/asmodeus/basic_python.pyc
 create mode 100644 agents/asmodeus/path.pyc
 create mode 100755 agents/basic_cpp/basic_cpp
 create mode 100644 agents/basic_cpp/basic_cpp.o
 create mode 100644 agents/celsius-v1.1.tar
 create mode 100644 agents/celsius-v1.2.tar.gz
 create mode 100755 agents/celsius1.1/celsius.py
 create mode 100644 agents/celsius1.1/info
 create mode 100644 agents/hunter/basic_python.pyc
 create mode 100644 agents/peternlewis.zip
 create mode 100644 agents/ramen.tar
 create mode 100644 agents/ramen/28f56d3c_peternlewis.ramen
 create mode 100755 agents/ramen/ramen
 create mode 100644 agents/ramen/src/Makefile
 create mode 100644 agents/ramen/src/ai.c
 create mode 100644 agents/ramen/src/ai.o
 create mode 100644 agents/ramen/src/ai.o.dep
 create mode 100644 agents/ramen/src/ai_common.h
 create mode 100644 agents/ramen/src/db.c
 create mode 100644 agents/ramen/src/db.o
 create mode 100644 agents/ramen/src/db.o.dep
 create mode 100644 agents/ramen/src/interface.h
 create mode 100644 agents/ramen/src/main.c
 create mode 100644 agents/ramen/src/main.o
 create mode 100644 agents/ramen/src/main.o.dep
 create mode 100644 agents/vixen/basic_python.pyc
 create mode 100644 agents/vixen/path.pyc

diff --git a/agents/asmodeus/basic_python.pyc b/agents/asmodeus/basic_python.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4338c88ee0ea8a0e8eed17b454241cbb2e932868
GIT binary patch
literal 10802
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

literal 0
HcmV?d00001

diff --git a/agents/asmodeus/path.pyc b/agents/asmodeus/path.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..73e171a42de1c13694f80e114a34df59fec29d8c
GIT binary patch
literal 2111
zcmb_d%Wm676um=<de~0U#0YGq0SdGmA&V+?H(3Nhkho4?Py#ANS_6T=khDxiA{ou7
ztpR!EqAj{^|EilV`y2g%_MAJC>@2);DBa=AeVqH4JHx;Ky|(esSARZDWch@6KLptx
zh7^AzuSE{mb0ddF(m>L>q&4|j<V@uIL#&Mqx-`!J!_#*gm_Cc$@j+gs*=!AOz<va>
zw=iS?2AB}WLvT`)XwVHHPN+=c;xWix!!QzAhzvELL6_pbj;@L654p`<mU>2=CfVeu
zi?`@t?_t(EE~i<~#?#(@narnI;cTy(m7}DbR(p3p-Rs38<;8Ydrr8`qr1430;#x2s
z4)Y>+!y%nnIuO$i5>B>2<kmp;FNC~6YDPN0X$?E$K+0QU$P7FaFET?hNNHe@RF1!)
z-I<z>>ne2tr5+4`W0C5K2LigQ$)ZO6aVXW@HU3iX!!^U}Em1mNpRN_0LiK*`_aj(>
z>%DgPM!20+WL&!tln*&vhP)0kklm%lQ6Q)F6$~JDF7VZi6<YEj-lcwHrGL)fA-^dL
zK*0(MO&QhYv?Ys{<PA3BuOdeXvM#@{BMnP>+LoWbrpEru$8x$M3;Yo<U^WDs!m`z5
z1mI0sY-)Ze2GhHa+}o1F(<Uox-u!MzFUVA9Y3Li@7*?*m+AhDDe!JSb_nKW@xXrf}
zlnhofZ&98$<SY<V{BbU0Il{{gn%*FJ+n{l|LCYKLy=~CE+yL1yB&3bRR^bl1JkEXe
zr*^0a@)miWog}Lx$`h~+vOH%fGde{(AFo}YY?F1~_sZHCbcv#%*e-n@qW_m?)t_N5
zGe4zrR-|+wS3k)2C-L-E8bA1$XoOs+LO%m?-^1Y6*`O2rb>l;1U|NMqR%m<?FFy_L
z>JdgwVBG;}WRAuC=JSK+jxM4vpM3EgO(yc~GnMQ=ebMi>Dbbjyla%wqsrErUv02mt
zPj&lck+}v|aaEy~%CqIn>D|VAj@Pv+<b};<uFG33qBBLaE}prF_PTsk#xsvG$&S3g
zSw1>;8r{57^tAl3(5pE)F7qU_Ixj1imxWc3s>~59F+JCpkg2GnEA4c2129a%KEfd8
zP7ns2AT-~BJ`2M7`(}6fyJ0$}VVcq~ADHXrX0UCxp?lNZHWw)9awnGGfg+w}!=ZlX
zhC_TQ<`XO<HjjEe?}T^I4h)_Z(l1WKv_p?hXWE1I#A*d+agmnOi0bdszh->j=lFol
KpmA)Ot=j*1I(-QM

literal 0
HcmV?d00001

diff --git a/agents/basic_cpp/basic_cpp b/agents/basic_cpp/basic_cpp
new file mode 100755
index 0000000000000000000000000000000000000000..70af5d61e6f12454ce340a7c2233a52e97a6e603
GIT binary patch
literal 145014
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
LmMg8V40HbhWauRD

literal 0
HcmV?d00001

diff --git a/agents/basic_cpp/basic_cpp.o b/agents/basic_cpp/basic_cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..d3c66dd094573baca3a1107c9b755b76de051476
GIT binary patch
literal 269696
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
XF<y+h{Tr9gJY*(}7Xx3BPB`^H!-1tf

literal 0
HcmV?d00001

diff --git a/agents/celsius-v1.1.tar b/agents/celsius-v1.1.tar
new file mode 100644
index 0000000000000000000000000000000000000000..e0dec595632363f6fa9591ddc2673f2d7daeb402
GIT binary patch
literal 20480
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

literal 0
HcmV?d00001

diff --git a/agents/celsius-v1.2.tar.gz b/agents/celsius-v1.2.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..7e220da3fb8b8dcdc0feb24473613f017b7d3722
GIT binary patch
literal 5191
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
Wi#Uh>e<Uo%5_%S8PXI~)fd2tCpCqsV

literal 0
HcmV?d00001

diff --git a/agents/celsius1.1/celsius.py b/agents/celsius1.1/celsius.py
new file mode 100755
index 0000000..cc71b90
--- /dev/null
+++ b/agents/celsius1.1/celsius.py
@@ -0,0 +1,539 @@
+#!/usr/bin/python -u
+
+#NOTE: The -u option is required for unbuffered stdin/stdout.
+#	If stdin/stdout are buffered, the manager program will not recieve any messages and assume that the agent has timed out.
+
+
+import sys
+import random
+
+ranks = ['B','1','2','3','4','5','6','7','8','9','s','F', '?', '!', '+']
+
+"""
+The scaretable lists how `scary' pieces are to each other; pieces will move
+in the least scary direction.
+"""
+
+#	         B   1  2  3  4  5  6  7  8  9  s  F  ?  !  +
+scaretable = [[  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #B
+              [  0,  0,-8,-8,-7,-6,-5,-4,-3,-2, 5,-9, 0,-7, 0], #1
+	      [  0,  4, 0,-7,-6,-5,-4,-3,-2,-1,-2,-9,-3,-6, 0], #2
+	      [  0,  4, 2, 0,-6,-5,-4,-3,-2,-1,-2,-9,-2,-5, 0], #3
+	      [  0,  3, 2, 2, 0,-5,-4,-3,-2,-1,-2,-9,-1,-3, 0], #4 
+	      [  0,  3, 2, 2, 2, 0,-4,-3,-2,-1,-2,-9, 0,-2, 0], #5
+	      [  0,  3, 2, 2, 2, 2, 0,-3,-2,-1,-2,-9, 1,-1, 0], #6
+	      [  0,  3, 2, 2, 2, 2, 2, 0,-2,-1,-2,-9,-1, 0, 0], #7
+	      [-40,  3, 2, 2, 2, 2, 2, 2, 0,-2,-2,-9,-1, 1, 0], #8
+	      [  0,  3, 2, 2, 2, 2, 2, 2, 2, 0,-2,-9,-2, 2, 0], #9
+	      [  0, -5, 3, 3, 3, 3, 3, 3, 3, 3,-1,-9, 5, 3, 0], #s
+	      [  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #F
+	      [  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #?
+	      [  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #!
+	      [  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] #+
+
+"""
+The override table allows moves to be forced or prevented, thus ensuring
+that sacrifices are not made.
+"""
+#	        B  1  2  3  4  5  6  7  8  9  s  F  ?  !  +
+overrides  = [[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #B
+              [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,-1,-1, 0, 0, 1], #1
+	      [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 1], #2
+	      [ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 1], #3
+	      [ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 1], #4 
+	      [ 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,-1, 0, 0, 1], #5
+	      [ 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,-1, 0, 0, 1], #6
+	      [ 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,-1, 0, 0, 1], #7
+	      [-1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,-1, 0, 0, 1], #8
+	      [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,-1, 0, 0, 1], #9
+	      [ 1,-1, 1, 1, 1, 1, 1, 1, 1, 1,-1,-1, 0, 0, 1], #s
+	      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #F
+	      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #?
+	      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #!
+	      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] #+
+
+
+def is_integer(s):
+	""" Using exceptions for this feels... wrong..."""
+	try:
+		int(s)
+		return True
+	except ValueError:
+		return False
+
+def move(x, y, direction, multiplier):
+	""" Moves point (x,y) in direction, returns a pair """
+	if direction == "UP":
+		return (x,y-multiplier)
+	elif direction == "DOWN":
+		return (x,y+multiplier)
+	elif direction == "LEFT":
+		return (x-multiplier, y)
+	elif direction == "RIGHT":
+		return (x+multiplier, y)
+	return (x,y)
+
+
+
+def oppositeColour(colour):
+	""" Returns the opposite colour to that given """
+	if colour == "RED":
+		return "BLUE"
+	elif colour == "BLUE":
+		return "RED"
+	else:
+		return "NONE"
+
+class Piece:
+	""" Class representing a piece 
+		Pieces have colour, rank and co-ordinates	
+	"""
+	def __init__(self, colour, rank, x, y):
+		self.colour = colour
+		self.rank = rank
+		self.x = x
+		self.y = y
+		self.lastMoved = -1
+		self.beenRevealed = False
+		self.positions = [(x, y)]
+		
+
+
+		self.heatmap = []
+		self.turnCount = 0
+
+	def mobile(self):
+		return self.rank != 'F' and self.rank != 'B' and self.rank != '?' and self.rank != '+'
+
+	def valuedRank(self):
+		if ranks.count(self.rank) > 0:
+			return len(ranks) - 2 - ranks.index(self.rank)
+		else:
+			return 0
+
+	def scariness(self, other):
+		scare = scaretable[ranks.index(self.rank)][ranks.index(other.rank)]
+		if scare > 0:
+			scare = scare * 1
+		return scare
+
+	def getOverride(self, other):
+		return overrides[ranks.index(self.rank)][ranks.index(other.rank)]
+
+	def getHeatmap(self, x,y,w,h):
+		if (x < 0) or (x >= w) or (y < 0) or (y >= h):
+			return 10
+		else:
+			return self.heatmap[x][y]
+
+	def validSquare(self, x, y, width, height, board):
+		if x < 0:
+			return False
+		if y < 0:
+			return False
+		if x >= width:
+			return False
+		if y >= height:
+			return False
+		if board[x][y] != None and board[x][y].colour == self.colour:
+			return False
+		if board[x][y] != None and board[x][y].rank == '#':
+			return False
+		return True
+
+	def generateHeatmap(self, width, height, board):
+		self.heatmap = []
+		newmap = []
+		for x in range(0,width):
+			self.heatmap.append([])
+			newmap.append([])
+			for y in range(0,height):
+				self.heatmap[x].append(0)
+				newmap[x].append(0)
+				if board[x][y] == None:
+					self.heatmap[x][y] = 0
+					continue
+				if board[x][y].colour == self.colour:
+					if board[x][y].rank == 'F':
+						self.heatmap[x][y] = -5 # + self.valuedRank()		# Defend our flag
+				else:
+					self.heatmap[x][y] = self.scariness(board[x][y])
+
+		# Make pieces prefer to stay where they are
+		#self.heatmap[self.x][self.y] = -0.5
+
+		for i in range(0,min(30,len(self.positions))):
+			p = self.positions[len(self.positions)-1-i]
+			if board[p[0]][p[1]] != None:
+				self.heatmap[p[0]][p[1]] += 0.2 * ((50 - i)/50)
+				
+
+
+		for n in range(0,8):
+			for x in range(0,width):
+				for y in range(0,height):
+					if self.heatmap[x][y] != 0:
+						newmap[x][y] = self.heatmap[x][y]
+						continue
+					newmap[x][y] = 0 #self.heatmap[x][y] * 0.2
+					if self.validSquare(x-1,y,width,height,board):
+						newmap[x][y] += self.heatmap[x-1][y] * 0.2
+					else:
+						newmap[x][y] += 0 #self.heatmap[x][y] * 0.1
+					if self.validSquare(x+1,y,width,height,board):
+						newmap[x][y] += self.heatmap[x+1][y] * 0.2
+					else:
+						newmap[x][y] += 0 #self.heatmap[x][y] * 0.1
+					if self.validSquare(x,y-1,width,height,board):
+						newmap[x][y] += self.heatmap[x][y-1] * 0.2
+					else:
+						newmap[x][y] += 0 #self.heatmap[x][y] * 0.1
+					if self.validSquare(x,y+1,width,height,board):
+						newmap[x][y] += self.heatmap[x][y+1] * 0.2
+					else:
+						newmap[x][y] += 0 #self.heatmap[x][y] * 0.1
+			self.heatmap = newmap
+
+	def debugPrintHeat(self,w,h):
+		""" For debug purposes only. Prints the board to stderr.
+			Does not indicate difference between allied and enemy pieces
+			Unknown (enemy) pieces are shown as '?'
+ 		"""
+		sys.stderr.write("Pos: " + str(self.x) + ", " + str(self.y) + " -- rank: " + str(self.rank) + "\n")
+		for y in range(0, h):
+			for x in range(0, w):
+				if (self.heatmap[x][y] - self.heatmap[self.x][self.y] > 0.0):
+					sys.stderr.write("O")
+				elif (self.heatmap[x][y] - self.heatmap[self.x][self.y] == 0.0):
+					sys.stderr.write("X")
+				elif (self.heatmap[x][y] - self.heatmap[self.x][self.y] < 0.0):
+					sys.stderr.write(".")
+				else:
+					sys.stderr.write(" ")
+			sys.stderr.write("\n")
+		sys.stderr.write("\n")
+				
+
+	
+
+def valuedRank(rank):
+	if ranks.count(rank) > 0:
+		return len(ranks) - 2 - ranks.index(rank)
+	else:
+		return 0
+
+
+
+class SulixAI:
+	"""
+		BasicAI class to play a game of stratego
+ 		Implements the protocol correctly. Stores the state of the board in self.board
+		Only makes random moves.
+		Override method "MakeMove" for more complex moves
+	"""
+	def __init__(self):	
+		""" Constructs the BasicAI agent, and starts it playing the game """
+		#sys.stderr.write("BasicAI __init__ here...\n");
+		self.turn = 0
+		self.board = []
+		self.units = []
+		self.enemyUnits = []
+
+		self.total_turns = 0
+
+		self.totalAllies = {'B':6,'1':1,'2':1,'3':2,'4':3,'5':4,'6':4,'7':4,'8':5,'9':8,'s':1,'F':1}
+		self.totalEnemies = {'B':6,'1':1,'2':1,'3':2,'4':3,'5':4,'6':4,'7':4,'8':5,'9':8,'s':1,'F':1}
+		self.hiddenEnemies = {'B':6,'1':1,'2':1,'3':2,'4':3,'5':4,'6':4,'7':4,'8':5,'9':8,'s':1,'F':1}
+		self.hiddenAllies = {'B':6,'1':1,'2':1,'3':2,'4':3,'5':4,'6':4,'7':4,'8':5,'9':8,'s':1,'F':1}
+		self.lastMoved = None
+
+		
+
+	def Setup(self):
+		""" Implements Setup part of protocol. Always uses the same setup. Override to create custom setups """
+		#sys.stderr.write("BasicAI Setup here...\n");
+		setup = sys.stdin.readline().split(' ')
+		if len(setup) != 4:
+			sys.stderr.write("BasicAI setup fails, expected 4 tokens, got " + str(len(setup)) + " "+str(setup) + "\n")
+		self.colour = setup[0]
+		self.opponentName = setup[1]
+		self.width = int(setup[2])
+		self.height = int(setup[3])
+		for x in range(0, self.width):
+			self.board.append([])
+			for y in range(0, self.height):		
+				self.board[x].append(None)
+		if self.colour == "RED":
+			print "FB8sB979B8\nBB99555583\n6724898974\nB314676699"
+		elif self.colour == "BLUE":
+			print "B314676699\n6724898974\nBB99555583\nFB8sB979B8"
+		return True
+
+	def MoveCycle(self):
+		#sys.stderr.write("BasicAI MakeMove here...\n");
+		if self.InterpretResult() == False or self.ReadBoard() == False or self.MakeMove() == False:
+			return False
+		self.turn += 1
+		return self.InterpretResult()
+
+	def MakeMove(self):
+		""" Randomly moves any moveable piece, or prints "NO_MOVE" if there are none """
+		#TODO: Over-ride this function in base classes with more complex move behaviour
+
+		#sys.stderr.write("Sulix's AI makes a move...\n")
+		#self.debugPrintBoard()
+
+		if len(self.units) <= 0:
+			return False
+
+		index = random.randint(0, len(self.units)-1)
+		startIndex = index
+
+		directions = ("UP", "DOWN", "LEFT", "RIGHT")
+		bestdir = 0
+		bestScare = 999
+		bestpiece = None
+		while True:
+			piece = self.units[index]
+
+			if piece != None and piece.mobile():
+				dirIndex = random.randint(0, len(directions)-1)
+				startDirIndex = dirIndex
+				piece.generateHeatmap(self.width, self.height, self.board)		
+				currentScary = piece.getHeatmap(piece.x, piece.y, self.width, self.height) * 0 + piece.turnCount*0 #Perhaps just look for the best move
+				piece.turnCount = piece.turnCount + 1
+				while True:
+					#sys.stderr.write("Trying index " + str(dirIndex) + "\n")
+					p = move(piece.x, piece.y, directions[dirIndex],1)
+					if p[0] >= 0 and p[0] < self.width and p[1] >= 0 and p[1] < self.height:
+						target = self.board[p[0]][p[1]]
+						if target == None or (target.colour != piece.colour and target.colour != "NONE" and target.colour != "BOTH"):	
+							scare = piece.getHeatmap(p[0], p[1],self.width, self.height) - currentScary
+							override = 0
+							if target != None:
+								override = piece.getOverride(target)
+							
+							if (self.total_turns % 250 < 15) and (self.total_turns > 250):
+								scare += random.randint(0, 5)
+
+
+							if override == 1:
+								scare = 999
+							elif override == -1:
+								piece.turnCount = 0
+								print str(piece.x) + " " + str(piece.y) + " " + directions[dirIndex]
+								return True
+
+
+							
+
+							if scare < bestScare:
+								bestdir = dirIndex
+								bestScare = scare
+								bestpiece = piece
+
+					dirIndex = (dirIndex + 1) % len(directions)
+					if startDirIndex == dirIndex:
+						break
+
+
+			index = (index + 1) % len(self.units)
+			if startIndex == index:
+				if bestScare != 999:
+					bestpiece.turnCount = 0
+					print str(bestpiece.x) + " " + str(bestpiece.y) + " "+directions[bestdir]
+#					bestpiece.debugPrintHeat(self.width, self.height)
+					return True
+				else:
+					print "SURRENDER"
+					return True
+							
+			
+	def ReadBoard(self):
+		""" Reads in the board. 
+			On the very first turn, sets up the self.board structure
+			On subsequent turns, the board is simply read, but the self.board structure is not updated here.
+		"""
+		#sys.stderr.write("BasicAI ReadBoard here...\n");
+		for y in range(0,self.height):
+			row = sys.stdin.readline().strip()
+			if len(row) < self.width:
+				sys.stderr.write("Row has length " + str(len(row)) + " vs " + str(self.width) + "\n")
+				return False
+			for x in range(0,self.width):
+				if self.turn == 0:
+					if row[x] == '.':
+						pass
+					elif row[x] == '#':
+						self.board[x][y] = Piece(oppositeColour(self.colour), '?',x,y)
+						self.enemyUnits.append(self.board[x][y])
+					elif row[x] == '+':
+						self.board[x][y] = Piece("NONE", '+', x, y)
+					else:
+						self.board[x][y] = Piece(self.colour, row[x],x,y)
+						self.units.append(self.board[x][y])
+				else:
+					pass
+		return True
+		
+
+	def InterpretResult(self):
+		""" Interprets the result of a move, and updates the board. 
+			The very first move is ignored. 
+			On subsequent moves, the self.board structure is updated
+		"""
+
+		self.total_turns = self.total_turns + 1
+
+		#sys.stderr.write("BasicAI InterpretResult here...\n")
+		result = sys.stdin.readline().split(' ')
+		#sys.stderr.write("	Read status line \"" + str(result) + "\"\n")
+		if self.turn == 0:
+			return True
+
+		if result[0].strip() == "QUIT": #Make sure we exit when the manager tells us to!
+			return False
+
+		if result[0].strip() == "NO_MOVE": #No move was made, don't need to update anything
+			return True
+
+		if len(result) < 4: #Should be at least 4 tokens (X Y DIRECTION OUTCOME) in any other case
+			return False
+
+		x = int(result[0].strip())
+		y = int(result[1].strip())
+
+
+		# The piece moved! It's not a bomb
+		if self.board[x][y].rank == '?':
+			self.board[x][y].rank = '!'
+		#sys.stderr.write("	Board position " + str(x) + " " + str(y) + " is OK!\n")		
+
+		direction = result[2].strip()
+
+		multiplier = 1
+		outcome = result[3].strip()
+		outIndex = 3
+		if is_integer(outcome):
+			multiplier = int(outcome)
+			outcome = result[4].strip()
+			outIndex = 4
+		
+		p = move(x,y,direction, multiplier)
+
+		# It's a scout! I saw it move.
+		if multiplier > 1:
+			self.board[x][y].rank = '9'
+
+		#Determine attacking piece
+		attacker = self.board[x][y]
+		self.board[x][y] = None
+
+		if attacker == None:
+			return False
+
+		lastMoved = attacker
+
+		defender = self.board[p[0]][p[1]]
+
+		#Update attacker's position (Don't overwrite the board yet though)
+
+		attacker.x = p[0]
+		attacker.y = p[1]
+		attacker.positions.insert(0, (attacker.x, attacker.y))
+
+		
+		#Determine ranks of pieces if supplied
+		if len(result) >= outIndex + 3:
+			if defender == None:
+				return False
+			attacker.rank = result[outIndex+1].strip()
+			if attacker.beenRevealed == False:
+				if attacker.colour == self.colour:
+					self.hiddenAllies[attacker.rank] -= 1
+				elif attacker.colour == oppositeColour(self.colour):
+					self.hiddenEnemies[attacker.rank] -= 1
+			attacker.beenRevealed = True
+			defender.rank = result[outIndex+2].strip()
+			if defender.beenRevealed == False:
+				if defender.colour == self.colour:
+					self.hiddenAllies[defender.rank] -= 1
+				elif defender.colour == oppositeColour(self.colour):
+					self.hiddenEnemies[defender.rank] -= 1
+
+			defender.beenRevealed = True
+
+			
+		
+		if outcome == "OK":
+			self.board[p[0]][p[1]] = attacker
+			
+		elif outcome == "KILLS":
+			self.board[p[0]][p[1]] = attacker
+
+			if defender.colour == self.colour:
+				self.totalAllies[defender.rank] -= 1
+				self.units.remove(defender)
+			elif defender.colour == oppositeColour(self.colour):
+				self.totalEnemies[defender.rank] -= 1
+				self.enemyUnits.remove(defender)
+	
+		elif outcome == "DIES":
+			if attacker.colour == self.colour:
+				self.totalAllies[attacker.rank] -= 1
+				self.units.remove(attacker)
+			elif attacker.colour == oppositeColour(self.colour):
+				self.totalEnemies[attacker.rank] -= 1
+				self.enemyUnits.remove(attacker)
+
+		elif outcome == "BOTHDIE":
+			self.board[p[0]][p[1]] = None
+
+			if defender.colour == self.colour:
+				self.totalAllies[defender.rank] -= 1
+				self.units.remove(defender)
+			elif defender.colour == oppositeColour(self.colour):
+				self.totalEnemies[defender.rank] -= 1
+				self.enemyUnits.remove(defender)
+
+			if attacker.colour == self.colour:
+				self.totalAllies[attacker.rank] -= 1
+				self.units.remove(attacker)
+			elif attacker.colour == oppositeColour(self.colour):
+				self.totalEnemies[attacker.rank] -= 1
+				self.enemyUnits.remove(attacker)
+
+		elif outcome == "FLAG":
+			#sys.stderr.write("	Game over!\n")
+			return False
+		elif outcome == "ILLEGAL":
+			#sys.stderr.write("	Illegal move!\n")
+			return False
+		else:
+			#sys.stderr.write("	Don't understand outcome \"" + outcome + "\"!\n");
+			return False
+
+		#sys.stderr.write("	Completed interpreting move!\n");		
+		return True
+
+
+
+	def debugPrintBoard(self):
+		""" For debug purposes only. Prints the board to stderr.
+			Does not indicate difference between allied and enemy pieces
+			Unknown (enemy) pieces are shown as '?'
+ 		"""
+		for y in range(0, self.height):
+			for x in range(0, self.width):
+				if self.board[x][y] == None:
+					sys.stderr.write(".");
+				else:
+					sys.stderr.write(str(self.board[x][y].rank));
+			sys.stderr.write("\n")
+
+if __name__ == "__main__":
+	sulixAI = SulixAI()
+	if sulixAI.Setup():
+		while sulixAI.MoveCycle():
+			pass
+
diff --git a/agents/celsius1.1/info b/agents/celsius1.1/info
new file mode 100644
index 0000000..aedb008
--- /dev/null
+++ b/agents/celsius1.1/info
@@ -0,0 +1,4 @@
+celsius.py
+David Gow
+python
+Generates a heatmap of the board, and uses this to control pieces.
diff --git a/agents/hunter/basic_python.pyc b/agents/hunter/basic_python.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..158229fa785d60f2aedf6278736b52fb44ece0a9
GIT binary patch
literal 11452
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
SjZA*4N@GwFV~AypIsXlZFwlJf

literal 0
HcmV?d00001

diff --git a/agents/peternlewis.zip b/agents/peternlewis.zip
new file mode 100644
index 0000000000000000000000000000000000000000..45848bc7dee04fab8c844b6ffe36567b5aa716da
GIT binary patch
literal 14703
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
Dm1p}(

literal 0
HcmV?d00001

diff --git a/agents/ramen.tar b/agents/ramen.tar
new file mode 100644
index 0000000000000000000000000000000000000000..69a5119a8f4e3e1dadb49e73f759f017410af722
GIT binary patch
literal 51200
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
R1@0(tM}a#E{EI2@zX6L5P00WN

literal 0
HcmV?d00001

diff --git a/agents/ramen/28f56d3c_peternlewis.ramen b/agents/ramen/28f56d3c_peternlewis.ramen
new file mode 100644
index 0000000000000000000000000000000000000000..cd917d2ecdedc85c4a4e432d934b30bd4a263be7
GIT binary patch
literal 48
UcmZ=N)?wh{Vq{Rp3oPNX0G=HNg#Z8m

literal 0
HcmV?d00001

diff --git a/agents/ramen/ramen b/agents/ramen/ramen
new file mode 100755
index 0000000000000000000000000000000000000000..c583e6611d6beba5c0d31d73e359fd9730fb12bf
GIT binary patch
literal 49073
zcmeIb3w%`7wLgB&nM`s*0y7~ABoN3zc&dbefI&egAp;XhAPtFvVkfUjNX@I684|1z
zY``)OvBcVz+v_c~_1@Cf2ko^O1u>xVDy^ufsZyI-(21cfzNw|=|6Thrb0&|r|6lLD
zzu)ik`5n#dy&ik*wbx$zarQoY)8;5xuBoabA5FPYA*d|g&QSbUQPzHsfdZGU=!#vL
zsZ3L%fidIH&L|Y}m<+pxXc_8)&xA0F;+jBcb{-L78iy1aN)0Kb{KAi2M0vQRn1eD@
z6dOZOI?~lH==S0=hL>RhDTHS)Q;K3X`eEu(x(y=T29ZvN`$;e!8OrjJ82U>S<xA7-
zfC#ozpyaXNa454ay5Oy%cy=LY$S$<Ahzz4dexZ=FDPKT3((@mEq@Hu@YAY5km|Ish
zr>?fa*E**)d(oUl3o<>8ne&<cRtTglSF9>!qNzBP&shACo=Ny4(-A$p*YnetKkf3=
zWb}O3YO4Ou52}+sNB}JzfAX1(NGkr4@kg}r_#1~ml0!O8z#r8)<x6=?#NXd5m$V)E
zg>)y<ISzmH#PA^W8;jVO5Tq!hMLZE<3jX5pXTjen{88B^iIDUnxlA9`rfgNM8sUge
z&+JJ%)2d6$t&2Yh5PI0>46szL!A~6!!{OJAfd6y^{MHfhWD6Vq20vtP+h8PM5B`SJ
zCwm0^vJvn<909*{1pI{&@GD2ayGFoMMGdF_t`Yc8jevh_1pL2@fPZ}i{PQE=-x>k$
z9s$311pG52;9nd8zX|vRw6^`FWr*>%N8vjB5q|F=`~iXAHwdqw|EQ<#Vv*u<)zmjO
zxIEtSX0OYoxNhF)Dt6b@dc5xDWp(8qkK04cm7Lk#TI*G+8=Kq>ipSgBP+8xkG`nlu
zt?o*t+Uu^X1GcKRL8-2Bdp$~Jd0ky&rBd&%_qdVD<96Rk^hTc-nbvw5D;F<zReLJS
z8>*R*=H|v`Vy<l3q*PbdHG14iJ(qwiDjSg%61$t5mFkw}TCZEFZg!VfDdpbATBW+F
zxwgSutstKY9|CVPY36c~;-X~r<<QI1AQ+L>t*j`>&t2x4pLuQOf>8XrP;7qYLb9wT
z{^J9UgeZ&((TrGQocbM;k_jo)FVf>ptwlE$rI_L8gd1O5i*C%MBna3yf#{kt5imU|
zC1ot6zRTF3%6g{0Q}$!TDC?Q<)Mv{_`U~NWom{q%PkpV(k|nVl@Um|vg42NK7Gdm4
zkpVCJb)u{_;3;qUlo{}HOe5L`1D^VO`7{~u)W6H8)qt1d2GO<}@H8&SXNLhV#}A_I
zGT@D4%x(jo#uoYPHQ;645^bLWPvfL~_8aiV{;kV^r*TX^-3C03vGO@#z|&YPpECyh
zIEh5qW5AC$;Cl^t8aw3^G~j8xm(L{wp2i;eTsGio%$JX|{h}WHJv=Jd4EG5>x(Ke*
z{=EL&z``%(+mwOnb@;WU+Yuvp110P09l$faf?#sRzB3HIjbL)YzHSB=6HKnxx1Yf`
z6HG4Gx0k`W1e2@v?PBot1XI)L+sfei1e3e>H8J=qf^~w+7(A6=a=pGH22UWET&~Z~
z;IRagtMz3ucof0pVtqCSYXp;P^;sGGnG-O%RG-4&4+th#>bvwg5Yyiym|Uo@m%(on
zOs>;+hQV(TOfJ*c&ES^_CRgd(&)`!8lZ*82W$;mg$u;_RG5BeM$tC)>GWcf%k0-c^
z!9OOLT%fNEFhcgs`$N9}r7t@DZ#&!1Un(leKi=JKw=2%$N6xU|c;0Bc68tR^e6(v9
z)wMHVzGsC^ac=MSY6E9jRqrxBrB45aHN?1e>1AZ7_*NcVTU@3f8QH^mPk#|XNB&}R
zw)d;f#XX*B)t2-;1y0kgI{oHff@vV>1;!LGKTAm#_cXtK%={BXRm$%6lh0LGS7%z%
zw=w-oo$X7nb08z+>mA!gIMPjjwhZ~49Oymy+^$_*r+Y32LG(Y9hRSgIe@>MKt(HLU
zVV25&JlKMA0+(&XRRZ@kx#{8F9J}(Y{gyH%_&r@wIBrxfa0=l%fIFB55CYyM3w3mm
zpEx^8dvl)J3XYtvAjW2=|1GEgIMXvY>#sz2^d6o?$&mke<h8xq7kk`s5g97|4o1C3
zQ2z{eK_z|qXFioplz@3F%dWK7>Hk$oc05E0F#*R#XU8|0GXB?)%aT|{2_y%QC}5t1
zqFNq5>fBA)_gsNKese7-{pv0VPA9?sqt1@)l=`p@xf0(c;)5nx2g|qu1Ium7Q_Dep
z`acL^DB^bL{4CNA1aGHALeQg(>v(V`FOg|i{{xcrxFE%IQl>MI{A);uG7nJTe~lEl
z9nJojV=w-`hrfNwamT|7p8h%^<>@FuhY#eEF2{rK|Ap*k*|rc?li3^;w10<IL`!3|
z(!GK%@<}CZAbBlUAR(;48^|Ewc%=Puv}N0Q<b`_L>+~Oc7EvX54LS)Rx+(8^G+@gC
z#|g{fO9998{%&U={skM{0JtNT!)Fk5TMqYhorF3${!0eKo&F5w3Yh=RVM7^))IbA@
z6j1}4!S|F8xeuuU6H3Ty;MXLwqqIA+j0=&7YkTZja;soH`n-VSG?i`pr>KSgm|gu*
zyWkMKaozJgH6ye_*{XJv0RJ-^P|0XkWfXLj!h5z8Ca3GQTsz1wJsr*1j`0Rm#O${l
zZf9a_PQT+sz_Hf|p9whj8Q~shz;S|1`h64w771*ptaey|K11k01iDBCzUOHgP7e2=
z-4aLNpIQ4!6iJWUquA*3ds2*;p_6j>O~HI<2s4rU4n#2jQZRpg2s2r-&o7y2lsf#f
zV6NcIP@I(jYLJ%wu0ZJ{D00UF?O<;%6b_hww9JN}v<KGne_(7>St#mL=4Fg&8)Nz=
zw|=<!kEXf~WdQl8(*4`JTW27ERjIR;mOmaWf<|GB7U}(QBIz-^t_B=k#%kz=sd~9x
z$C3uHYv<)bc8#Y3^*sU`Fy<IQhm!?!)evT|DSd5{nFiRylLYg1Lzu~n`idnpjh=_E
z63nB9XP!>X9p7vszl7>JT}v4MORTzCo2A~HTtBeAm6+g@j$Sxq5bQzbwue`WEPnXu
z;F6k1pKsxZF|&Fu7R+~X=5Rg7lLw)XBC!}Ol*4NUXVDN&64aj?_~zYEh^s|@v4Qvl
z=FS`&g3{m+zes@vLX}R2M5S-#<*^))dh95&1{^zvViTPAJWowI)Uw+zW;^|x(d2yH
zVj$_;2D;M^<2)BIugtM29Zt<zdBoWs#L(^NVbN|2oXg@o5{z;l>5X#EexCS^7(a}Q
zdO!hAu;D8B{ZCLv^A$S^Re8o4DC`ZG{{+DDIEF2%i*7!w1y6y`=|9)*xTprqZsfk$
zanZ7~p4ICemt}v{esQhT+FyFe=`Y-0;CJi`I1Vx4=s^O7`<;P1x^sAM#(LbK1)}|q
z^X;3@E0%2ssgQv?P6Qn1pF&i5ntssy;OXO;3fwcOS8jg~1uw-c=pQIG`Y$wP$b|+$
z$mSAX_!v!jC$HD1Zh{E{=${S4xPx*G6!skaSI+ZI&a=<h9ZUhwvoOOz@Y9cAN{9{^
z?cp@oBLI^G3cFDOs8{MOf>lr;RP=9CNrx|b8u(<R_^&DYDJV-ed1@ao+S50p_=ck2
zj2wBfY>bo2#OHGU%R3xbEQcLe+JhPGmy23zXk3kYVOAbqGkUvJ6rz7!7xh8?#a+}u
z`&V|crkB^n+SSr7>P7k&by3IEKevn8V*jkJSPG_e(HlVjgf5!+_a}ByE9#GDzS3`I
z0e3XaaP9uhr>SvZtn{1zK*|UBn7?E)tmrq7LRB4id_?L593Qn`RxR7#N8EYbac2K=
zJB2-mc-VV_hrzQ5+c%$9eAgUzTn4YwKQZ9Aj8+iHdw~Wyra<tg9}En%J1(p3n=hNT
z{I-AYamSS?;vFAwTp7%}op?82Q7qr=Zm++hZtM2F5lEf|Wdr8>mddH0c>)TpcKgkh
zjBp2)W%prHoIK=#52@zOCRRf86{I2+Ee{^G9C+D}Ud7x8RG{><f7c<{74WYm+={oO
zlh5&4#d;`0GX@yWcHGem*)Yy|9?*nB>AM*<COev|5y!;qw@XOT-{BX%LD0lHgpMf9
zazNSP7}&abAk(t#3e-gGYTqp6?4q2Lf6DkvgQn7p&dQga_Z&?@@s8ycnN58!a_$Vv
z_BWAb`{v%6TVmTCy=vb95FlVO1UNgKt<*uGGxDE7C#E@73QW$9DC*`e5kIQ>(s4WM
zVksIZy-1eek)kvn3;K(qLNOb~j@hj!&QYj`Dd&UTmILVS9GCn>NyzzODr)j4H&9WB
zQC$PeJ&ffQ!Qy|(RCqB^+Dm;<<w@r~N2ruLN}N%B@3EqtXGJ@&_EAZZdKpqXJ9b<`
zolqAsa_P>q(iw_G1qmd_QF^Yf<!~vDrI+|*{B7h5`M-x=XwH`c#qs`^piUWDUZ7xy
z-hM>&Qza1WFW9AnwF|6)<WVD)75SUL$ynaKo|{9I_56^s_N%-2c<>B3*?4daGuC!T
z5JN;RL@ag$Ejxb*6hsmXd!aD>Yn_47*Ah6AA<Vrn(=mGrR2fZrj?8!kjK^VNc$4Ei
znk3Br{ebx`s1vSZ^8i3@tiuzTu?_%nY%BFcYIxwv79EP^fcgH#Hf0-LOV+_HkD1#5
zDZ#_^0);LnV2`3VmK&MJGO+z}l;vyGh<HC}UqSs~n05PUkPh}z9}_T_K-N>g0pjT-
zuo;JuH~u91+x>s!Iav<aRm<US8j~ys###=)4Ey_!`Ckt%LeJ^+JI?fPq+Euw9p!8m
z$+p_S)=|Vtfi?`$?0qyy-3CcR6Anr1U^95g4zV4PZ1id>`KSePrW1&r;bYo*%2(ov
z<BXp*N};L1*oY-ykH?FS?<!bkDlFsdC~6IuZHR5>EfiACIRLrf7t^TIK>sY#vWob#
zs0ivSskiS73Iw-HSVLag&oBm|v^~!D%{>ZUp>0$R0rR2jP%obiS1-A!4L%O0{DIX=
zPe9?5s2;ci#%^AYD0o3jA@_g{ArF8KI_x~#(c3?dn}oqC;3)=pw&Q$%f&o?mtGfcF
z=g|?eI?Cf(2YFs(Gt1X#9hv91i{(e`g}vbD;nsQ;X+-bCsw)96yr2eoOZW*JEHIaX
z*$!X`9-R8ylp|yj{UR##xcO0-h@QT$;fEAK;UZ<;%4M=NG`h?5w?O`JbG=C4fAg@3
zCm0fc#gI4^iIIRQI+_WZCI!J0+n>)i%$RAe)dl9RaNQ#sa^cU>2cqt~QTN?c_a|UC
z)P46t)crNE=8!hI{GzP;w0_b0i;@E7wnZTa?OuG;n|1Iq7t}(6<_st3uSm|F=#}?m
zHxiE}oJm4ieTlk-Il$q?WL(%hj@!SRoQ>KR^*esYY2ruB;B47W(cMs?xwD;M&L&~i
zae_IUgl9WWGiQ^q3YeVjG-jpD*<Pp79~}bEi#ywIp%!<xGL|2)7c#xLv(ZX%-_zVN
zNU)VV8`>Nd=0;4AAdM{)?BNAt@ujHq!ICCJQoo1t9wO#bsy`uSt*{S?{{-=V`>;u#
z=SjMW?L|Y*sfPHIl$`f!=#Nk<*JJMU`)h5KS9ib}h4BP{<#ApO3e7`yV>Uwbpomhg
zMPA1p=U@b-?=Ad@c~;-E%q+>B5E3wdgNbsSqnBJMWryS4t()J)Z0bI6B6hW9TRUQb
z(sQBqPkkD_6Sr>;8hWj02z!ba@rQWs&OYgI6+z~3!2o&g3rGNuy&5G8^0H1rei`10
zm{Yt<NM2v}!vjL=PBh^PnBSaF!+Eb|=X|{Bv^&lLRYt-b=PWxDfkI1k8d~Bkw8S1U
z!|Y#!Mz##he}Dc%9bAz77&GM*rX-uh1<?v<>2xWq!sZ-esQ)1ZzX!#rz9{JU4$XPl
zTMam2v13mEZ-ZrcwSaoFgnItX7yUkDWZut`>{^fnQ=9)X&p69fyQzX<@yk%+G8CeL
z81E3?$@poD#tQeC{x7#**1R{gUp9Hm`rTcWUw<W}-o~V|i5^d@ILS+f%w_u*fq4#N
zcDDX)&iJmf(lRCD1!xWId&%#+=*K!l!2AxB4<u)^B9sRGubA$*2$P%vjMvRefiFh|
zMo(nK_Zb|k{>oYT3o&PPR=(xD=Q*0aTAnPqEvnj&IV?negC)j%@@7mv-^wE6oMQ9K
zu^mYXk@I?F5-|stGjD3YsK>>OOy0KwG8Z4EiZw4lG_dP=wEuR@R#>Fp3Va&ji*!O3
z>68$Yc6G2{`7iBooW%?1S-8ZV@6!u3itE5|9Df7WB(}|`#=>D#RJxHgL6Y#sP!!)6
zFG14oM<}G2cA!_cY<~zf+P?WBmLwh^U&1;+7-(MplC%9tR3Lr_pIWycjq=Cu0=b;X
zMe$7ac%JDr<iA!#p_;b<djWoon_H9e?C3jA2$BJH=HPDhuaI{2TvVQ6LHghYYR2X(
zK=YX^FCr@k6GKIK2h?y8d|62F3zEa8RVTwlWNdy9An&_d6XCjSiP_LfXcH*~P6qdK
z@V>*31Z=eH<{J7l(fRZa*ZEkWD<ADH{GN9{aD^1OLO$}no)p6JnS4>9FT?Pn5-(p=
z2*!&FENHfXHL&Z1bP|e?HtfZq{rME(7F<d5+faweC5N2@fIDn3FucR^GW{HU27`@8
zrr#ksX!!k00CW&wW-r#PFEHOt2!r-z==0fYR^Q;)EC+S4V7=_e3f&QFpya-&j+^m9
z0|X`@-By3WSLyvUf-5SJbYI8KsAs_h&-yBOE<+NZw_k?Wazs=J!KBbqarjjx3pVM+
z;z*Cb^sK+|Odci<1^!pql-IKD67yz95AS9z+kemDUT1)|?kwA10~{#D`u|zh=bogc
zY`k|P^(Dod;k;+_CF+g5G+nubLB$y`1?)*^);g9{E@31X2rP@o0=NGt7<zWFR@{RU
zU2?K_^j<dXc+m$qD0+kAv~K~$p-sZJZtpBgbj+RrL!m)qRfCn6s8)kaYyWhfrU-oo
zWkNwO8XrMC2?<e-FVo>o;h_xvon`1uHaPv4VWr(D-d?2K{WOgfhmimda6I_yUfRN=
zWps?>`xrLh*c;Hnxi?T0<v)Y93H6NHP4j_3;ch2?rN_v@*DH?Y={nN0gvT9EQ2M?<
zkgpd$@pKKgQ2i%9eecL;n*YR+%jvU^hNSsV5#YxxZx}xROS6yoPx!H#iVOpeCkE#!
z)=0Wh6DOF$SnLvEj|h8N$Y<{uWi8uEpi}$iL&_GIba<h2n8)ztmlN%qyOb?cB`any
zc%Q`B7Am$-p$8)Mwh={|4I<A#q}~=G5(_;;MfPG9xx+aSDDC3QxR}Rx`1a=eKgeOL
zjJ&f9{u!_7j8Wx`XHZ>XMp~#7jAs~QS4R^h!k%})M~Sfz5>Mr@Rm||dPw)ql8B&QE
zjm5x>*^**l-UwzkOL+nd5>HfG?vKT0Z~)ttXcP|GWTIB~HdaNBJN8p;$W^z85vR@K
zVVnu;tGcuO@_;XWB!=TrcsKgn=`k4D1HOwRNU$7$!(uDJ{~T8U6L&)$>{t(?W4}tv
zJs1>GsA6jA*v)ExenY59-E&dLJOaCsDQu<w=T;VcQ%B(Mh{A9CGxTfrjbaAwyNAt~
zX`tN-m)(ny)@37_3}1@e&IGcRLFx2ERtCF{JDwL3xbyQ@2y*i6ufxevWq5VM>r9+w
z+bJU)Z`t+?!PulHeZeO7pU+~O7fS`SQee6N-@qbg_p~t`aGV?3{I~=@btE6bAL~@N
zy-h`9Fm+Wjg8)2-PhP+Xg4r?4hA%FT`pOVr$KsAI-x`j`Omhp+*8|;t+1wU?eEStF
z(Ub4>kK%FIo=s5B9QiE$(`Sh4KjOzKWpXsqgnF1ydsH@GqD~d>ol+2r6cR*2X{Hk)
z=!EKc9)rLM#jC@GZg8C4l7P_fILpd~w^Ziy=inaa;2ytWKEDk<2kwV%a6G>mWpbQA
z1^6A?5bFwH5qT?%*rRqh?%^@iPONVfF;b6@882zI!?A-l?;Q^jkCXS+n8Co$9Q*o5
z?J~Tmum(5Na{n*TxSZ|Jkl$hYmcnWas^FFXGM~HraysTN-6-ae7pFDn<lJTUo8%1J
zNeG6ot!(%z-QmQ%G*G(BPeTr)(c3s$&C&J`@JjUM8K|6~iW)2yWXpjf9V?3KLC8Mp
zTN1)rfxL+$XNHhPDzH~^Y(l`inxvuAFfT_0m2AEqAw41i`HVmL&nSx%b7n+8K{Q~u
z`pq9R9Cq;i<_~yuFQPF>j{O24nABe4hE?x*o?5M(O<`vRvxgpxi_~@Yu-C@>!HF_W
zhWmYm#L;vhU~ZzQoE!!F(}22zQ!!~Y7aOTy$37jziI#O23gO3giOgUQn2|v_Lr@#l
zywl+d^rQM#0(&W7$K=Ed`%$zG(FHHLuk>fp58h_Y=cl18TOYyOAGRv41d^R&kpZR;
zN2w`nKCL>g@EI=lXu{JZCkhIO^6iJzE;f~M?B{cttb<wkc39Q?a0VPD2Hn&UN4e?^
z=_tytd9T4tRS89esfrMFvUL=*gQC(@Czz?`b1EF!Jkv-eGf_W<BF;t>3Q-iMXHhn*
zA~Kts&435@O~8*R0PFyLk^K#j`Vyje)u2^wOss?~dLt3CrbWtn1FfX*SNIW~9A!w2
z5NTuhuAG@|$6@VLyw`){3?@P>u*WYx+Lm>21GiekR9J2Ha8~=MM_TRF>ofq;Vy)8m
zUHo7w?A#ql+TOd&jyV!M2+Kv-SmCc)fjb1^O=tUa)<E9wC`?D>Z0I7rrFqxVFI4E_
zD)di*3R%Oc@a2#SE1&}MA#-9%&n$Wtn$Xs_>cH9yerX++?PoZGH(-)_|1E6PJ16|=
zyx(!|p3UdJg+yDLBh5j|9qi@0xS$Ibb8`GAo~i<?@wM(eRFD#~4(d1C$?4{T|0(-$
zy8j&P&q9TPVBj?xe$Qc^N^=PRkzwYPAkW6;cxYY5zxj&acbT>$eKB3Lkg9(p_Ao<0
zEr57Xs5JfS!KQmh0~H6<L&&i|pHM!DqJs1<0%{aPso-L$479Kt9G3xtLFrH8;ATNJ
zGf}(+LLCs9CH-fvbzGT!1{=(@M>)d&@(vj1e`<f3-hMZrci4>=04m3E2W{d|Guurq
zx}SDb@bwt2|Iz;QEB+&|{NCR)&+&+}-Ejt!q|@d=;pwM89s9;gKFv3Uruk~OdZr`k
z1(K$ok(2$?LL6R^{{s^sF)L&i1UPu=PAUYc*Q2E}WyxH;c~Rq`O$~v{459Gx2ilmx
zLp;`SXzznQ_Qc$c;&AJY$;80AgZ;8mb@k&zE$lwfTikyCE3=>T_u!?Z%UVbtddL1i
zVHZA_%J=^oPK^Z-|55hZL@S*NQ#*L@6`DI8!c?3xgUZK)mw`gI-A|JcL8yezoA(EN
zc-?sfId$jz|BMguj4h;@QqgQXJkiW4q55f}`tkc7lru(zY~J^@jp;}=#TK7CMYfo`
z(5ipm-MqiV3<KTcnSfcH%(~18$b@Dc7=nS^#*p3_VqK)8bRW}!OU#L(MvP^7nhp8>
z6I}$0S+*sUXn$|M|M`IV$CGRd%~A1M$iGwJAAbG)?{hGZrCtaxWe;NV(u-KY{4s>J
z2c!683;A|OQFUWp2)whhCy=}Z5kFo=@$QLoA90!r$r-ww{x`&jCULMrz?{tZQNDOY
z@Xkgb_<-?_uE6Ne(n!=vXGeS-TQ_|%*z+<ad7I&p<ku82Bsd9JJsFwg-&vB!S&|b>
zZu0j5gfvs}a)Au}r^M2%5B&WZ0rO@s31gua@Cg8oD$t&NBU1z>G34~^X69H$G95dy
zEi5|Xo&F=H!n1)%3qc5B|AP1EU&*gFG}?E8X&gb?Os03k-IfDU8k$55Di4e5rGxNZ
zj`!Lb**iIcOnaxtgRAK?P#QUMr_t_nz<gjLE5;3u^OmpENWs0Qz>f^!z)11xOGwe-
zz657hZqHfIJHkQk?59a4^P%L=ArI^9__aKa(GXueu}{7Bv*<tY(Nh;K)WVRVH4XC_
zG9`1bzMqmQF?;9h7KYa;6Xx4?8(va(_`!m=!LAY6ifjS%kqM}bS1gbBjL2nA>xeSJ
z_<RY0921LAn3VYDjGQE%7Dab?*?@=@9xEG%&*J6cEavwP*p@dBI_DWM-v||`9HgrG
zB!G^!@Z4F5SRQ{48LLOg3c{UK*dSnzqa?doisWxoirYTN_aCX0;uW%5M;aEmATIfB
z;0U2oFULBj7lVgiBoQZwB1Duh5q}LN|K~6w_5i28JXpvkCZwH-M_Va{>SIXC+A9Hb
zJ(EJJccf`f>K>DC11i*xI-;UkBchMlgIN$XxYK*+S8z1hMOn7fF{r0ABKyTnf~D_I
ztd<?HH}4QHrBH`x+5SohFFM6Ws6d2gKse@j7o%bjF{Q5qKQsc-$8%^^d0Nzx46lb{
zL^}h*ZD1+Tq9VxIN4zT{5Lg^HutOq7+Jn<s0nAqDXB;8+q99O5?VmuON%OByt^p5R
z`UVV<UoVHZV3$kr&I!FL;uC4=&`*dVq6y}KwJ^qP?p7?@|Aco}NaE18@1u0!?Y2B=
z*TiQL)&3&XN+A>RG?_rS);p)Ed0iw-|2($NVz7vBV&D$G_`*A%c!&VG^0^(b2LFs^
z<9MO<#kL~>^9Bx)6RbslSPCbhUgRZq^nn{7_~0)G2H1zr0rTPzI~yL32X{alDiyw~
z0twEG<U6bZ^S&^|zw)R)Zr4;aqff^fdf_e<5C%Ddkp{bHF9uIRTEKi3EEv#XTFaBv
z-nz+(hjTq-g5$yW$P}WhyNz;ZCO#f~3vucN2lsq5jL!<aZ3=fnNqd|)mLW@eIEoqg
zcyI$rq!+@wEKfRmtC!|_d`{$m;RJ^&enGk69n%lR9B*5mgrSZH?<Fj{e2zlLL!W@s
zR4KxSR><WXWZ@oRUN-b3lK>hXEZf}FpTj9AeRwlbmLTZ=5X)u$!k%jX9p|g@jzoO?
zJ8kj?Qs(3-reY9f!`G)=gTt6GFyd*hKM}(Pm&C_Gq#|3Mq#^`KNhv_MK?l>5ZE+e;
z1MS-NA)VGSoY!&s>!$S-_^YP%Iy>gvo?uf7I;NLU0DQ2(@11t3z<>9&%TE9LX_&WM
z%r2OHA;<sMeE%oTBY!pJ<J+UaNt9yyAG~Sv-lTJ71^&+p{Ga6c|CBS3bPn%kI8)T$
z{GKzgewywK)J?M%1gfT`6d-0R2zaN>DhS*?Eeqz$#;2t0;ink*!KO1-n?j46-qeG1
z?SMF!)UV^5Qvm0cu=@EvlF|tzeikZd;icA}BNGq*s5s+EPyVV~3X}rJ@)D&ue}%I|
zDJ@d+R^PfxnRR>CoW*xsJ=<o8<jlDZm{~SKy2&;x^Qzh41m4A1Gr^uYTbb^$(f_sh
zUnzFvDY*ru4yncJ#wJf@W~Qyd=k;!~)t5Jv*SMRnu~jzKHTs%uOOX&uE_ia*tZ@{V
z<gZ?3Tb`3&;K;Mhv9U9~vvA#j`x=|4_AYm0H3Mb?qBFm<ZBv%oR+SbM*vh>SbN%$%
zQ8>O^+mKm_1Nm!8a*9hvDPJhfFHvsEUskfZc%5r`LC%U%3R9EoJ4z{R+~~GZ4obeq
z=H1|y3X-~>n{0WtOvTKrJT_m$ouhCpxxo#cXHNIb9Hp#YspJ<FI9B8oMC1?xa!N{y
z^QlBivD@RT^V*sko4vJ-4a!O+TVqr5@*ViiU0vct%*Kp>pJDY70$?quGKx+c*EZCI
z6oCn+qu=2VPExyDVcz<t+PZSe&Q@JsTj#EVJ*BB7YeYB;5ITSMN1lS0ZiV_A`DaF4
z#~<-vA%%q*^X6Z>VBw<cvKM=Dmjg%7_VIQW?))DL=ZSo>MR=14my57age4-pU4#`P
ztQFxut8dHSk+bFR(Er)||6h9UcTK|1%X70mxeKmaoSQvL$<4iX-a<Ut*N##aT{nM0
z_Tuct*DV;OEM9b7?xIDD@r)X-|Dn!d&W%;*1JKdr<rllqcjg#-oAO%pHR2hj|7tRH
zOv>Uku3xJN_lWSA2>&3$uT18AH;8bh2yYkRog(}$#vFQN_!EJDUW6%vUMfNf52I&2
z%30-Vs&!YojT$rY!`a2aKj+30cX_>S=~CO2n!-)Xc&8rjjv*pwvok^aMA#+56C&&p
z;d@g!pA1t3JWqtJBK*l9e2&NCt8X%NbQm4VQ6Ag$N~*T<N{kJa&|sKy7g34BB^bT{
z!=$Tld%P|(LgwG_jbYN2Y^e2!?4Vgmc{A>;5OCOJ!=%GK8Q^qzVd*(HHZZL{wi|7c
z==>^ogSWQ279|f08@}8PE(~T6kY(hA6>YPo*Ukoh^)lD3`KvfIXO69*w1Ej<N(1b0
zcBG_BmQperVU0pr&GVoCs`2H*LOT<9@qZ}n6#48H;T{qGhX@}P;S(Y}D8i#6JSoC|
zR^QkEj-0pt4*j3a|No`ues@OLd3siMtBa;%na$<(xSXc>YNbWV%Uy9jW`~tCsq3L|
zl%h^F-9T$I>G0b4?tuXt;uX&g4A>DaIX*B@hVTP~TM=q_rPzzG2VpnD+wr2*i||2A
z?`it}6TIKs5H?^P(2nr(t4NRV+t>oxif}zPMfM^r!p2TF!e_7_*Nd<QJ9IRm+lY-^
z8^V9X)-LU;T>352Bm6l&PTNZO^GJ_y*SkoMFdbja_9DziNE5+>2yF=0VF}TWa2C!1
zlp&n@0n#Hpk8m%-9Ume+!rcga5Ym&x14X^7SW#Q8>csdMeHY4>20Z<pKRhsS3-VHO
z##oo#tBsDXYA1-%mLQyPbYS2OBfTX|Ul01(7X}6nPy(5LU6_71&|f+>FknS~A^MlX
z^oM}H4Ryel17-U1F#Qnd))QE1Ll{a=aXe}GJBL3H=!=c=iHL{jSMawJbvoXtKN0Z|
zoeurC<K6o?BmMSp{!2igfyKJ}jP!~yeLd*Au&lj@1WNsj!}PmBx11dqV4E$HPP}+1
z|A#<-0`!jvA?aTXr#}Sx4)|I<!VtYAOg{(wtMI`e8`Iwwre6Ww1>dw7(-SWqR(|;C
zD){V7Bi)dG3FxKp<u%6g8|r60=sV!kFBs`{;rwZ%V-7xIV~cdMd^~$ze$YP#{X>MI
z^0~t44*`DyZRG2eW|;KnK)()cCuIcs70|OlZy$l42ED%l`ge`xH<WJ)=n3x(47_O6
zuf9EMC-7vy^$5GsHb0}bCiPnzrr!<vchFXk8uPCYm+v9am;7;H;9ExeN=~PCdx+$N
zPT9+68X{+b?*g7y$CWSaG~XNT8e?DH9`kkWep82N_mUrrM(i00mUuD&J%htcj%Ii6
zQFQMpJHy~Z2lnjFv9nNSTc&aN<Ie{gi7?B=VS10H#~y8GA-&7evsTdgYJ{RNUj#mm
zQTcs;6ipVe3}6EG*h<P+C~dS>L}b5*oig@}7ok(PvzWvOV>nFj*z}aKUqy)(A@eQ7
zu_DXLvrq8Ds0^0&!iT2}-XQ2A`G0#L@3|bD(XT{3y(Pjwituw0j)}9gB$Gv$DZ(2?
zxJray6k&r1w}|k55q?*MkBRWG2!AEQw?z0y5q>VhG4UdQ5oU_;MiH(O;ox!&hEE9p
zqpLXRp<6cSp-VsLq5C}k|31=}jOnPJS1en0y=_*WyP~$d!L}fCLFU3a*|T{>xdwEe
zPG`yTM%!6<DwYL9emMUNpmKhzcz<?H9>U5HoPP<r9nRk*=0mx%p$tm)L%>`g%3~#(
zAG;TCHrm|^x0hbAm1wkqV%)5k+gRRQwZ>bHoA$m-C|?6x%u?<|PRrPWmYXAPfux#R
z#(ryUm3M<u7e+YUwKW^O%2x?fZjiW}5G*-+byFS-!_ByGke)YTTTLM~Tkz4;htM!5
z-<97`>#Z%XtHs@bKZR1j;NCw2){sRh^aR~m-cVKNW+jV*tkR|`l!z6}qr3|QSn?Vf
z`3`h8Famp{%iUDe=uv(K43QYBq*3`CFc(l<-f*X~3PxrmM{5&qE38ts0#WR)mnoEA
z0)|BXZs}Rx+*q$XfgTd5T)echOcz-gyr#0T*{$s3Kyi5shqolaO7cZsd61x7+^Bdb
z%T)O>!L=(e-(|&FgEd*Dn{Z9be9g^x{|u3obA+x~Ufb;PmiU?*6uRHF#<RMqsj&fk
zd7#v}8z4y0Vd|RNRlfRScas~2s$xn`W>`w;SyS6k=`JXTobo%}$^s$~#Mo{&LM~ov
zr7Qx;HK*!r!=I**=WaqROn@im<+@-QsT8TC#G=-LE@&*TTH$lEyC^54+JU;2u7J!f
zue?)u1b5Ugpw2-gpCA|J$S1<coF?2{SyfVALmDVYkg;f->cfE5c0k{P+sRfsMzlU+
z))vywE7|xp=`mX=Q1vzw0xiagbf&17?F<=BUk{r!^S>a7iZVkNBrv}P8q3SnQA^Pq
zFfy9%r>I$viPmHEPM&xNQfc!k>AW8Rqh})86E&w1X=B$yHM3Q%p!69^EQ+O=lhptN
z^;kM7Y91#*Ypeqqn8yn+CH4$~DFU>`W<Z`fRe-Z%|4QHl0cORzN%BMiX2-foa+(0`
zv2+`sd9nbVv5%AFbO9E{t|8DSz_qar(BC{&eH3Z5jIvl7ug%lc|775X*l8qrhA2@}
z?7xuYs|4tcy_M2lqc*Vuw#I&$n6uR708JTN)!3JbJWnlQ@K@E?B_w;k`V@qiGTPPH
zZ;-S_>PZIgP-AZ={+raVF#cU??3YMWr|M_$ZZ-DH1m_EQuNvD*@XZ3=r^dDsyi&mX
z)!2IpE>P#N^j&J~_b9(rOnXyCw;KB$q8F(&O*CaZuPUSHg~R-W{yEB#Vt$%T61R|e
z4sz=#ak(Vn5I2q<S4`~P6%emwSd|!kBd9U@4*<uLvrxH4--`%g$v+tOw-TEO>;(X0
zm}BYYUxN>hOQmOwI;6AY>54{@qvw!oTXZO7k8V;aj4cHw+RNhPaHF7jbc;%ST819`
zDuH(i&>Gu8;AWNNY8ff9G!u^gs_+9_YzNTMJA|lNu^&Txbb#4T%gC}GBIZuD5J8lh
zu4QCfe@D_D;uvibVGfXly@Dr=Fm(TU^uq!(kudY9Ao~Pn0%6K1qn`*&Dq-lgF#0ip
zNdX3ix(OL4oFKwa)kNfz@B_;1309Y5_2?JXRb-9=LY`44AWr7^BY`goFiJ_din4lH
zok8T)5EwJgji~N|*rb?o)BqD(m6!!oA4s0KDHK-|v2v-zEF=~!BP#A8ba63@IG-N(
zM_^;Jlh8qG8S!!Vp@cDuIn5e(nX<W_LkUXK2goWaCiO2!k^B-Em1NRYO-@BzOa2J@
znvx#?I!Z}82_PzFDv3?5L|jRZ!>_6&<uSr6ni?ekg%M7HswP{QjCT<?B~K-u<fFit
zlYfgGqLp##FDNG)vzY8Yzhkw7oj)e@<l~=ZJQcv0I(Kdv|6>Lc#nicVOUk2SZglGy
zJ4-|7qEjCst*)jdTIc%I=PAWCG%9GFMX4V_0d-C)OTTLiZa>D8dIKSIZv&&LbAMav
z%`k}sceSO`yRo|LGI&g#NP?=T?vphLlEWH=nZvUs+=knD$urgMsw|N=$qs~~6yUEH
zeB+ti?Ig?8*|TN*zhY!jw-d$Gd1g!MMbhbO?=Wy{Tk087Vkc+rYD@hPsnibEjd$8p
zGpLC7bI6(cSAu@Tp`tWLq8+?gJrUWb21)P}pD@9_TT)xdSWj~9wNyAVLp=E|vB<&^
zOp`nYn^3qJ5UHM0WudN0wo@j`Zv1Tr-}o;gqMo9tsk5tX{B@MeDawT`oVHykGfgC$
zRI8|`D?mksrF~lv6C}}#dzsZ=1(>WNC<P@cA65f2&76EMlj|gxYDQFjmARDE>H2YY
zAhAA$zXA+^<2REnU!^G1Z8`AjtJDdSZsTbzP+uiwOr4Lkjc4`nYB6Kp+cutFiY4>z
zwn@#nq*{HQYhIGJQD{6*<Twd4Bt?CbdV8&NZR)>LM(5TtQBW4e7z1fBIvJN0hNj7)
zF!pE|`At&g9aR=UPA#&a|EFN(1$ie_kR@c~cR~eON5y<c7KE!Bl&XGNsHltS3Rm^L
z2vz$j6H_Ot%G4VL4-KmqPZ>=Biupv8lG;xBS%@jtL>E)ilO7AEs7@N5R5ksF1Uw*s
zAE4Ax-{64lc4C-VffQ=2DJT-##*xG{f!%sb8A()ZzoTMKB3}Y;ujHi<jnz~#D6n?P
z`xwccAh3$SDjv))HRVT;uJcJ;35rOQIQi<-xX=!9it_Kku}PfipP$4<g(q=QBTVA>
z%q@CO6}0}pdFJ+g=&xmjW^Vf!_}?>gqY5_8+~_MLQ^x<kncMR$|DiKCGKrYEaqGyL
z8#m6-ncJO6VCd(lT&$rHmi&XY$g>hlGq*PY3^Q{xMMaH)dz<vAFQ92^)2QP~V#7b5
za3r8P$q5H7Gg=H24vS&JVc`=FVi{?|(amUod%|HA6OJE(H-Sw!64-<zflW9P*n}g2
zPdKb%!a-sa*n}g2PdKb%!tp5)*n}g2O*j(Rgd^cyv|LjHn{Xr?g;C52e8OSfi2f`}
zwX8)ak?<$Pm4vV1S55daO_UO9@oP#bgMFeB=)xg$!ZR3Lq7!uR#3Y=@ubw~)1hEO{
zfFG6c7C7S)z7I@%!kvhZR`ei(S?Y~{Kn9kzih5H8^1!^!vMv;lin|?&Rr_C{7be7U
zV+hKjg3wHDGlZ$RoMw${AlfoAl$MbcH-n(%oR$*z9u!oaTz*>I`v%As7ek!+T;?=I
zyN8H3Q=!L}gK{WZEo=cQ?l!`&;^LLKJUEBCnhT7IGZ9q8Aw6y!sr3a8#mB8fA=P3M
zfp?5J4{@&HP+pvappvgKT5H^2h_jSbHf3~;R^mwl(U>F0EAeEfZ%cTlqSaD9w_FBR
z??zNp*Zl(2xc?+ExA7UP!mV;Uhww?<H^8B;|2}@l&IjLuB-NFUFpj1kY8gpK1;iy1
zR8Ej7<Iw21Nd#7K@bZMX-^0XeB_%UuJTXg&r(81uCEg2#7416Wu6hl~B)ZutMT^q*
zAWUvjG&74Khgh0`Ytb6lOOJgJ3|fo;V`Du;)ivID;$tt9TCsv^jeVQIQ36arQzpZV
zdxo%a+D{=VeldRN)-q<fN@e^G(9{f->R66h-w-4D-59fI<twFf16Y_oopnm8`XE`f
zNR@1-Q|weYh2CJk2kj=1J7`7Z4yMjSZ4=0TS`l?HG%K1o8xpm3%mq5D(q0mI6$>E~
z=@we8p5$nq_DP=#a)uz^1N`J#Mf39X8<aFjkphUikyGoSR6ONNi*>BLCTPz@->XWk
ze?QSq$}36Wqc%B_-aWJ(Ttd-ACqaG=m888b)L0=BP2Qwv_i^Idv_A^s0!eIDw4I!|
zKJ7C>oFa*+^82aowa&816^izCZr(;xB~^WdjPRl=b^8zT-A<VXD%!;ani^>@l5A#S
zn(%8c5``>0X;PXU6l@t!;^6^En~eP4;Q85=v?m2+j}T1MKXa;c;%qAN6|Q*E#7qNJ
zlCF|sW|gzDNq#hP9TSbZwyFO{tTR<rs+*O;^M3?t(_-h83skGvOks-dYfIOt{8uq)
zq<A{ZdA`ca)zy~H@|N(Sw)7tp{|zE{ds^01E`PSjXDVvL#ZqgX1!+qJb)2N4I?4qV
zH}46mNm45nty1NcaO+f<qdHtjDq9wG)|ymRmgz;2j$Y<&#lq|qTHXZ%#kEdn+EPK^
zBjuCRirh=mmJ94RB^4QNG-Mc~lSMPstt51t$|y3&2dD8;)5!G*a+|i6Sa@}<pSCUx
ztex7_tZ4VD#H4j@KxaU`kxe~G)zqn~QqYd+T;MJUq&4O#Z&4+83U$gzey35s1lB^<
zMw0c2s!ACj&)~AoK^84gb6JlFS<WeD&d=?fm%fa^$5`is_ch4NB@cN^Ri&IgGr7E3
z=*DP$o6CDEWGb8bC-RAlFp=PVY!*-9MT#S#6c=TR^i{<FN0mt2DAaey=+rG{sK2D_
z<26>=S7(c?=kTx_0v{U<6~>U#@fyWVojcmnuct~Hqj9g@+cupwj$}=hnn*$MNT;qj
z6pt!vs_|e+L_5xuD4J%3oYUZ^$xNEonKunCEdl#9nl}NYzMtAXx#>hcY;=~Tvs#Pi
zphrpHO+^{Y<V1OtjQI5X36U5==n*XD&RuPhJPe~7rDDyZZPN0qxHa;x;o<$T!c_S7
zd{O>~+tP{!%MF5MDhjkfkoUDwBV8z<N7|-R(HAj8upXd-Y?&=!^Z*567{fvOS^^gf
zyE)VEFoH$c|E>~QP8M}WnpLyR$h}a_|IVs;HJQT4t9h1S{X-Tn5M7~1+agn5B}egT
z<S3}-x+!BRGYN04o5DI>pGFPd)Oq>NDa$xNcY}}aOrK0{a+fIS&bIVZ)T+LsQNuQM
zUfPm=h2XnceUW9;uaHuk1-!d0ow?Z-jWh<mE^U)g^y#@=Q7YR#LOiU#U63D<WH?8=
zkcO_doV3{{*q>-ir%ML4?O{Wgkv8`VQ{_#?wt==wK+d!=nLNv-Qudb=?VEyHkTyY3
z=SnKo>9<8C6{VMx<nIV>R05t1^=>NcZ+Hzz%fC90=khRArM;*r`K04-xJP$7r{s|!
z3EI<XEmHd}s~;?hq+f>I5LlL8N#*Soxz-`alO)V!;!RuRbYcO|@e-IjtTIQFiCVC!
zb6*?JQo?)N(mx=z%_i;>G(eF`9EN+QeK?=XJ0j#x#n+IEHpRp{=YpyA<!B011z41x
zL@H$nuq5q^*Yea!GBqmrYC&C__9a1$64dl3sf2R`o!NCpBB56BGRm^uDi$D?AhVaK
zjLffBh;+iOCAdMEnUlLl(aO0DnN}`h?0}5u1oU6Gl-CgxFISy1@hK40^oby09c39W
z#+Vjp!`>~kfM?UMcx7S@T9G={!8qx@H+sg{0M4RSoak@RORTESx*b8xQj!mV7H?v1
z6acN+#M~5Ml-ajZfpcl5iKUv|Vo_!`si`fanJ=((Ef+nruO;3*CMDK%R`SlJ8g;w|
z1;D#YU}JQev(KJNwaea<K-(eZOr(CmNz+PTPe?iU6ZU2y{fxwVNRyQU+byvxNp1mk
z1dy;-Vy`D`A-Nu~T@riNi0u(r#Yeee(+{sVeA$UM6KUB=?!f=dZfB(~qe3r4^nYgA
ziR~Sl4SR>?@ZMo`<lbR)<lbR)<lbR)<lbR)<lbR)<lbR)<lbR)<lbR)<lbR)<lbR)
z<lbR)<lbR)<lbR)<lbR)<lbR)<lbR)<lbTQpuNNBL3@YMgZ2)i2kjk3586A79<+BD
zJ!tPRdeGis^q{@N=s|mj(S!C5qX+LDMvJ|}=<wcQbj03abj03a^ndBzp@!zB#H?*1
zPv+Z*Z23uN%TE@zx}#5>i56w8#E)X-t2-94Ohen+R<=xIWy>^HwoGGX%QRNDOk-us
zG*-4uV`a-UR<=xIWy>^HwoGGX%QRNDOk<5)rkRA6m|$3@Nf^3JV}cIhWg1d7yiCJs
za+zifqse6&PWwleX}HYLG7S})t&?O!Inn)UlQCO~oktsv8jimyvGbQx^ihf~C`44B
zfoPOw{VElRzEsc>mLaNP;p5NL=ZxhL{+Y?W1SYNnQ4b;-rH%U)rMXqn##4q!k>Cu)
z)i?{}YAGUh+;s${QUWXh@<HM^0LI=66%_3uqE6@lB2lbPP|;-9_MsTi&Z4KJ4>yt`
zRwt6xe<#JJu&rOo+IgLw1S>Xl_OVDdjx9+{;rkmq+Q!pAv!P|ILWZW!huX#`Q~vWf
z6&p201kR^UoaO{6v=hU}5!%&Bp?w?8LE{lkU{hlj*%4KgW)Yr-hAEBJm=Vq35)QSc
z;K&|cgGoLn4a$Uj1gk}8IlhxJT)^qh@#_g%$e|*hb`gj0{*8aBlgKMoS;VsIdH!`M
z>SZeGeT+^C=w)RbTbo%)E@tZ7)|OI@Sz;mak@Dl$ljp5^pYiT)8-Fz=UHv(ucC}5&
z&gP<5h%8bnP^yY3WE2IvMDtQsQYrD`lDb`RyBG6R#~=nN<||q)84K^o%7h()7Lte=
zPb(Ktl9mOo6sUJs3JuYnC@gvawp|yale4g?1<@wm3rbYy-nMAasU=QSzf79nr%Geo
zc9We_D|G$(QVgivDECDg<vwYYakTWP-AAG^vERaqxs#HyVsazxi!{=YxRLgAgZ`Ks
z6q~EB2vdFM2ChI5GE-2<uL~<p_^n{rDHu{JP~r!qft1N*(0Vem9`B|S9b}zB=dBYa
zE#>k~h>&DH!)3xw6XxH@$#;p6$S-p;CW_2(^sSP?aLMZHROp~e1(D`TvvV<YiQ;4U
zOCoOxQsGd0<CwDq2@fw$@ls#$9(5bo8|RIppJY+R#pq<MiRv-R;)*K8$~j6AM2rTB
ziNC_duT5f|&lT2Tbe4>}k>)W1DjIiyjB&*e+mIWL=d;hL5P|)=o4L+oXvKh)^g7^0
z_cxx;KIx@0*5s9(GXbXm0PJS5hnP;YPhHGD(`ojpi`geu_|@rS65~u`CXPu^$EsE;
z;W))K=K8oB;_?&WFw>N{xEn!-w}>c8XXa7NZ!I9hjVT~@JyA7{iHoDuD!|y$T$DLK
z5hoRuQBpD%p#=r0h!U@=`H7Tb^b{pOaV|uTnSluQ3PJ+SM7D+n#>I_}i;ttk2|_G#
zL6@7Tviuo)BG`3a6k<$@iqI~37PLznjpmc7-W1QvJTpE&kqlvvrtHR>L#EJ>J|zz3
z8mkf|bwLDWLY!I((@iuA3X4hO>ENJ9CG;VAlUZRANe@fADSinSRBT2BvHqW5QIV#$
zMw&W7ni|yu2Qf<rNhAxPVj^ofS;!J@GtOAQ<1-<El1J853Tnz=+0@}H0>i6xZ8GY_
zu$2i6S5vs2Cr8$ptSD$kDQux^%roP|^*u#oBe<pt83N2OCNg^4G*Je@H(iu8B-%NO
zJa0xAZA?59Xfgn}jp$k7B681~ZAARv;aQQcWR<Rz5b1Gaxho|O?;rRw%jh4;p*k4k
zN8=(rWPI3KWUCZWljyYwObz=9IsmHwztsg$2Qf*u_{r2^P<2X=f=FIL%J(2eQy!-_
zul{AsX#CQbc?$m2xjs+xT>LBSb89Lq=eA}qaxGdg2iG?ETIbX>_~x>Y<>%sy;yPcI
zTVcEcm|Ibce?Z=d;a{rr6W+LRqRL&Ji9Inz@os8zdl1EdLHAHJB8oW_vXs$gx`KgY
z@hz^qxw^d44Uj#tn*3JHWK;EaeW`wvexshNU7Mt@?9^92pkLUe-()(9B_q|e+@`Hb
z)_tZ$Hd8^S-lA_?xe^SY>QCsm={pYViHEes$;7cvPd;c`pP6GCv&1ycw(fiSgW8Ow
z4?p}!uR)?teQx;gBP}yo%Si0;f#LBF!+6FspHgugf{(NX$-jo^+rFnK>Ql9)^mFxS
zePONsxHcnkkN&#0FcJD+(55ARZ)q*c(H_R_#U_ucK1nl6<){DMl~i8q!fhAzjSbwy
z@=X2+HD;(LL*)%qO>$$@l%aO&8-0eS^|mO@l#+Sj8~S{oDdlPXLXCD!k~VjO{<{9C
zKKH|qOdB&zqrcnk^BsCte`n7I*!%XqH7jq^u1*A5U)rv(1WKDbo^Y9ooqJB|Q$PdG
zv|hVLHEpu#*O;!=Ghdvm%}xYiMZNy|>+?Q*XXEYf>W^tRC2BK6|Bso0RH&Y5-P%>j
z8!qVMw5f^ObxFvj<--p@{NoHgOaH09^ftZypuY6rp4$-~+>=GW2Tiq4n<m;?PH9t<
zwCfVJ{3Q5_A>BMm$N2T7ECKs5)xBm)wLPj`Kkm>W{lcC-dKS_m`$W?weaTY0sg*Rh
z=$S3QctE=<@sQp;33fmsTJ~tOpmUN>o0AB_#&z?8aI9DLQ`+35&b^0_aqB1TH|ZHY
zA3yfV-rKdAsrs8A>9tQSeP8c+V~@Vww2sU&YKbY`)^bwIf!kl5sIS|0*EVe~Jn$Df
zjFbeIgd>tJ?WPHt`pHM({c~ZB_6v`}L~zZ;3og9A%~ZE*=~7do%~bAvf0cfl&ot4i
z%}@3nf_nNvz30P^KCaQGC)OaH2$QG^@c*1d)0efms;R|hn)q6$Y5XI;L;8oP?{~E&
ziKf<@P4TZSZ9xI`tc~sW9zq5A?)_K~>f63|2%<jHx08a-6z#g?3pJ*O?@ltMz4p$Y
z&OQ3cns(C{PTX{-snKRy`dSYe^DzibUpcT+PcQu4!XH4HM<4B5`tT<@TxZ^+dNLY*
zl773sZfVxiEN$j!Q~b?K=jq8>ZjxXa2ZqzfSNfU@npf+mefpleKs%(}khnoxl&p7d
zPBU3Q=;_oJCsEHaEvaSC$x}5O5Bd&nJh-tP|E-(vyMR>}RW+e+)0AKTH#c2lXFJ!k
z$)hNP+HzIJ|3dF8yJt-92Q_PI@C{zxF=OJb$<>7sns{yI$rfLGmhM}(Qp+4|ihTqo
zY6m=5pIh>?gM0J>eV#TiQD3UfPg>ccPi^0(`<_K#zH;_Wll1qd>q+p9mc0iLYFUZe
zwe0`-<Ft&_L)uN_^o{6IOg{aD{*@carz}ej{z6|{qb*C+Z#+buLvhm2OfB&G$tLS-
zdnxs@M9qO_nxgw2)my)a^xF%-n1o(<Y2wPOR+!@SwWbYUUB;wM(59&wk3r3i59m|$
zf7NGbbI0j>Uca!1Bu`5^bm13z(sm@?OC>=EpzkrYo-mEFp%4erE)VJlsT+xb8@ODJ
z)zvPq;>us`YR2gnR})q-T$LMe$&%u7RpS&+eR<R1qg!-S6Q%KNz;#CzzG`t>QRuXn
z%LQb$yP5E~(SivF##K>{BUYg^Uv-VR;E4VB8a%Z%4Y<|<b%#5Xie2owDtB{pWAhrQ
zvtm`LZJ9XxW<1~Ja#fZ$xGLPP247trZlzjNT2SJW_cev3lTbmVYnhZyv`~Yg9*1_I
zqRZ9L=<@g~5Gk+2IVd`xBu}1+gJ!O3I?2=+wh>ZNI(G|Q7Ue2$sDvGqMse_opFML`
z*Og<#%)`zwk#VW~EM29q8KYU9uO1f)&@6%#cvViJV+~|_HZ^#$n>2SrW4(K>r@Ve{
zUSp*XcMo_ybDNqQYv|6W`C0Sk&n>TEICd|=Tu*Z)7lk@$rNX&fJ~}zZF1>Q0T5CLp
zvbpnWo86Ukn~H~(sJ^`UPF7WDInqw6S2C^m^<kua3!RMOz5#oAT@{UWO8usKI@;&*
zFb^PCzztf4ii|kEM?&b*7VZO3NfZ?-iwnKVy<VKWq8g#oXbLyrd<EvjG!E^$(dU(?
z`{*=ZLt(kMaswiwYQ-g6OmB9HPvm(*ByrV?6tbpR@p;LpW|plkSY2A|VmF(Sx}*lw
z6Y}XQFP30At}cW7c)UszRCeRw8;&f}<zGs3y~_hH!LdEX)mT?WEz5&tL?M@MO@j(#
zY!9l-<D!}h84N9s>do6+-r&KdUMMj$DETgo#oH*qP|a0K&L>)?tGp8aMEq`kGY_)f
z=q<0PbIaT#PDnyScOx?q?u3&KhHgAUCN5DN*><TNvP<Ofc><{lHJAaZ;WxNj@k?1O
zT0k(Y#X1kxz(Z9nnhD&+4R>)NgQ|HvK(!KdEe{s(V4=cVd?AkH!MzpSU_)L!pXwe2
z1vlhuWI0v9O?*w<k$|jJxLx?6Q_7rIDer7}ry#C}BeS!LLYF~J9xjCzg)RvPFPBjT
z)HK7mbY4&p*fl^Nc8n6Oy;Z@_rXj~8QDt|cG4R`!a7?fYZ906wvdP8M7w4>6=^|HH
z<tQ+o_vA-I70SM(k(~hLm|}Nz<hfENV1;9qqZrl2?)Oo|A<z}1HFY%dNGZ=Nr>G<+
zf0a_f+q;5ui_PA(JXohxQ>9kb!i%X9i>slO>bk~qFYM`q+j&Urnz}|W?yp;2pum%1
zbY$cSp8&1!y3ofJxHr1%6uS9HX>4gg17`E{1}Y0$Cl$Le=jPSL$|@HDYhb@&4t*NW
zpi(ba=Wea_ZlaOMjaEos$Vdw-`OLzFIcu3b*tB$2$r`G)&=J=h*_E)|b5|GUDjt4F
z)Oe7#f}Q@vo;TGwI|y3E>|eM^9=$ExlvC;TVN<+9Vum>e%LGfh@f2=F9>!B-Tvxuy
zjd83T@1As%mNY%aHMf@^$(6@bl?s=S9VPZCG)l1Q`CF%vS@8<;9i=6XRXM9lNTBgp
zFe9%iTBk_)Y%uboqS!@K3iEDwMGZPB&g&>%;UGc$HYj%0RKyWq&dgJXj_ArmxgmrQ
zhKeas;3C}ry+%8@xpP!F%h>=~CEcWWjT6p|A{&lmGtKDMsX+&?nL~<trN$DvvMYRe
z*d;2R`CvX;4$r4_)yh?LA0|uDgpq_=fKpMoiP<Ml&J2b<%N#!0-QeQZz)-}p@!;^Y
zt4hH*h2EFqb@YQi#pCiRm8=xYoH@m7l!leHb-1mOn*deDQuDLnLr+PgLTl*sG5BOH
zvO~<QUC?(ZYyvHgCx=fW4>_;wSwlCb8BVenxEpG4tR9TUgV4)Z(`WM?I=St`_>+we
z-a}fjJJ&Gs;{?C5s<FAAotWn$8RNV~;FL*eJFO10M^_a(kP5gm%?B}Op$vyVW}TPI
z3dRy)2=r`Fyn}Tnb*`O{T=L4j<$SS)-d{vaQ(ANx$D09rfV0XtyLt#%P1%SKW+ER+
zyA=x>^pGqWzb%Zj%6Jxbd^q1wS&}v{#M7e7_<}IbD&y~ja6@HD+Pfj17G1{Q3*)RZ
z{t31vM$${t=+GADX~9YpkAD`%S!G;aCo!D8c&dNg_U$6UaIz$ATZjkiU?TptFwQFD
zheRb0Cri@k-?*ZO>QTnK!#JyqzapGtI9ZZ*HpJ7S%lPYIoK?oZ6|&*bdX%(phj?0a
z8UIcgXO(dqc0aiOLuE<Yln_sgF5}a}IIE058^R5hC28Fuo)%rkp9|xxGQJJ_L?h`X
zY1>0QExL^F2;;0W-iqC{kz`5QrVvkyF5`EHaaI|>fDa2tk|k;Hgm_wX8Se|@tTO&}
z(K`(16Oy(o#M7e7_&35htBijaU!aYo*9$mgNY615lCR46$uQ0;<0<1f|8RQAeD;L$
zYtd!=`(d0_#%12a$&&e`hVpCCWjrm6v&#5yQb*QH(%uU3wCFPayD-iw<1b7YS(c<7
z3-Q2SB7QQAv&wkaq>*Jw+EXE(7G1^<g>hCHUom-PS(4@q@wDhNzA}un%DB9CXE@vQ
zT>kg;t5dKdNY8M3N!rv950=A3e0msXmGMiV{&8rZBWdr4cv^HB|0s;J%J_TO$R9~B
zN$U^swCFPa$1u(+<8)|ZBw3P1pG|R|7G1{ohjCUJm)9W;XRk$KtognO9~R*XF_+*u
zgny@ra(9W4Zf&4PjyD_%|F(*;pT6&=Cm_O|BCHf)jR-lH;WyK>sUGVDN+w?IdALEw
zFv)T^Hz}D|=W%D|<mS(zk3cwt{k6;rUu|909K17S610IPYME7=8X%8{SSnzYjacWP
ztI&-Aro)-d?z(bHAYx5eILWNV4NOX=msS-rs{w%4h%1%Kl}z^rS2eA2xi(ZGt%Q`!
zN^c{UQ8KG|@TE!+A+x-`wh|d)%1J+&Og5KO;Q=>oBGDW)v&voJt8tY#mp9a41xbKS
zz6!doC<NCwR5wamc|}FDd!vNd!kS1$OCutR1tS?1k_`s`C!!OPmi$MwGeqow@CZa2
zheE%?*FtaxV&pF}eVS$mgq?nYurVn7BYZD}n1`4#{SwX2XiG%;X$%Vg3{LL^2_O1|
z@-NfufE1-nq(8wRd`2Te>9bN!9`K*w&O539ER&sa&Jv9&OQai|UZ9m#h~QhAQ2z2B
zz_lWMPza_nlI>*vDTvc^3;u{z=5LR-15$9M4GTi|2y!Ugc}w_<h|nE=GW~`aJ0oon
zjrc~vDD{_oGQ1OXx)V^s`$YPEB0ZPJ>&U3T5UbpU2-#Am4~q2k*&01%?02aBW%;*(
zZcH!lHFOF?$$Jn<f12kFw%`50kzTTVdq>#;(fy7rP-H$F;(5t9g?{`Q(|3vVT_XKn
zA{rjjl^!u4QyxUzn7%CDPGqG_OmMU5OM1g2(@E5K5HY5g_fYQ6;T&Q<D%qK>LI5Ir
z@ki;U{kwDQfE1-$q;DnXG(0v#oTB^iXH1`6XeYFiUC08QSm&YqmF1W40Yr@H?W^pJ
zWT%FK=Za_t917Q;gu4-;^pcJK!4i7x#ViQfnL|U<9|yshzDT4m`UlhhYEb$zk-ki%
zm;N?V{;z;Qz9;pU_gHQa>Guo!iRKXUU+D+u2IZepQU(mZgDGJ_h@V5@@=Lvb2ZFKu
z@*Yu}NZ%_HicqGL;d_J9E2U+evy=xrc@X-wg<?E%2?5EH<=-pP?-c3nqWm(MO-4lc
zF+yU=8ibeWM;d>m*w01!LCKYUBL7{32r`{Sj|O5ej%eA`G2<C63&z1Aypu*q?^wqZ
z{Cv7dI70f_Bc%Uq3r|2d3>crmx?VRz`VQ(?@zhAi<KPhemx=U)?f+4LCpakjL6JO^
zUh1)Gg!~`>7EkezbhHujXZHk2;f8SK9uDj^;3z8dmFNUS22~Lw^^5d1gAxn^nLOEd
zN|_X<{DebR(E-l@xD0=?IC5N}_kiK@pY;?^@0SA;2Z!h{(8C5M;@0d#XeRXba-L-*
znxKiCKSkoBFdwoTQ7mr4%t_97j6@T9G&zrn#K(m0J&wfdikx>u;$sy#pNPbdQsg`#
z5+A3?@jntDAG)tO5<gmz<8>r{48~u(5yj#r#iGdZ)krj9l#%0RBt8M-pxuaKag#Du
zk>i|^Xi^d}Zj~8Pf<H--<C2kR!fnuUyotn*Q{*@ji64(~q0ES4aT8`avfnonadm|f
z>dy@X6K<Z9{j>oM@1eJWp^u5(5<VPWtY!=%nUu+cFdQ_of5l)Z$)wnZB7rd}Q%1l~
z9RZ&)1W)Z<Q^qJe2l)f_8&S&p1A`OLc%u$ek5@7L(0a^f_@VXa0G{&QKPcbZ8UF;O
zON^7GA3a~fpNe|v7I@juv;t3ZY@_Xng`bi1r*5D0cMkHyPKF<=WEb1RLJ*^FQXR$*
zsr#dR%W~|9g`Xpc4rjL$z^m{#o6vujNb>Rs{I4^9t0Is7E)e|h3cNh%E7o?E4}m9r
z<ad?rf}h5J!poZz<h|=-U|7P-GtFNY{HX#j&ne4(oW}9t$|d!bheQVJ>Al&`BoEe8
zejFzCoC^7>Hng2)1CK*-%926#l|KT0J(DxEf1oRGZNs$pCg8`4vKxbKz$d`pdI$Mi
zr@+f=@Z@}-{%wKb<os*|{0j^}M(MWOS+;VFr8`)MlhZHw%LcU<y0B|F{?QOP7WFId
zfIJ`yN9zuRmp21^C^DWU@bX?pE9BBM4|p4kMgG`Fz?TR)@-Cq9CZ4W|;Ui@b)DAq^
zS)LP@?fP3nj=ZnuIU(oa5#$^Ya^#71Sufo}j=al+{Tms`_cX%~9q(Qia^xBEB%$&-
z#xDRvK*z9#v%eYo4u?+xp2{mvqs#Kn9)aIE0{#w$AEU@aiZ4PBdg=uJ!D)5|f5d(j
zr4{%D_`f`JFREABCivx@9qixuKpMKahWtd{BoP#H=o0MV%0<_@GQXN_XPoTc5<%=B
z@Ck<bgRGZR43GZ&mNLdK@xL8G{`<gNhiSi`GyXA(yvX$p!1P2zAlX@t<I>Klz>}Wx
z9OGvq<M|BF(;9!Bf?r<qc~%fh1zuhu^n$=w3cNh<cU0iL0xxg%VgJ?(XmkfP=_Ak8
zvVWrl_y>Sb&{7p$^glw3vWMZ5l(mEU!$*XiGj=;;rF9#64lz8B8-MAbFy$*RmSX?*
z4H(`e`LLV3g+bblHV%fXce;IOIDF~|_&Fos?F>Ig`FMt%srh4}Y$5Pg%tLk#vco#T
zFK<j+EF8LK1o>Y9p30>Nf8)6*%DqC4yo5@;7Ad<%kV7}AkUqUaj!;wik&rL%serlI
zb8rMXbQdz|V;`i?n*uLy(~xrd1%B(G_VQ<e-#2KS8jbg=;p$}y@RYB-_d?e1JcdtI
z%7mO*LVvo{W;pxjG5KQ@dGhpIf}f5U4VUkinEVOK{y}<f5pv|Q9r-axJHrq2UQ>xL
zg<Ul`kAiPF@ll;p+3fXr@x?PfWp}ygAEI>?<gY1lxd7!wKsPTlkg6J8HFb>@<#jH$
zi{UEwwc^t|`t%K-AZISRcELP_2>9l%m7r@Cz7bO8tFOn0aXcT#syvp>@?v~I?2-^=
zBje#**p>;)MSO8fUwHBlkJ%S{gTJUVezRowJTd%9Ugm;@S@VsbOVTAX?0Y2Fih|X-
zIR&oO%a^Zll(<TAatj<}4ch0ywo7yQCjKq75y4IA%3BAO@|P*JZ6nOvgntUxTWz<m
zD9F!U=9-^5KXYN^Kl~B#rE$Hx9-oFqa#wrZb#;*_mkZ~FDqWQxA3pEKj+3WhxNL+5
z(A?8lxp=Xw+JjHd4XRu>_|tfNrxp4PG4!Ro%it_jT{myUza&wEk1yTL%kZU>2YXI`
z>oY%mMeM#aQu|@PLxcpwKTATNPYy~F`Zqs}A3^fMhd<rJc2+}WeN$voeCmb0tw>yT
zBmUKkNK{CQ{31};nAI#keXbqEk1vYdt!{(dYcm%N{veG$$zvbL;a^HI{$nGsbFTd7
zP7vqcQL=wcI#MUlO4t{U{9j68-zL);5&nhzu%Dt<H@n@DLR>C`H$o!&PLLfniR2sc
z+cqjGoo0w+UuOIVZy?t2A>fej_YD6+3}|4E_!<xjdKz6D*uP36I~~~pgxs8MvX*-r
zYa_LY_{VF8{pJzcQ@<3M49%>vX;UN)?G9%FB5|;0c~vBel~aB(i?bpg`WBx0(Z~-!
z;fg~%Q5^rkcihA*{*4{#jt9FZ>tBX`PFY=9hksNjQXS)wlEMG<jp$j#K@k2WdSvQq
t_O*E=F5D1UQ6v6=9haMJNQ(*%f3aCTT=#<v@r`<<aQ1I2v5r&u{{UELvVZ^p

literal 0
HcmV?d00001

diff --git a/agents/ramen/src/Makefile b/agents/ramen/src/Makefile
new file mode 100644
index 0000000..06068b3
--- /dev/null
+++ b/agents/ramen/src/Makefile
@@ -0,0 +1,25 @@
+
+OBJ = main.o ai.o db.o
+BIN = ../ramen
+
+CFLAGS = -Wall -Wextra -g -std=gnu99
+LINKFLAGS = -g -lm
+
+DEPFILES = $(OBJ:%=%.dep)
+
+.PHONY: all clean
+
+all: $(BIN)
+
+clean:
+	$(RM) $(BIN) $(OBJ) $(DEPFILES)
+
+$(BIN): $(OBJ)
+	$(CC) -o $@ $(OBJ) $(LINKFLAGS)
+
+%.o: %.c
+	$(CC) -o $@ -c $< $(CFLAGS) $(CPPFLAGS)
+	$(CPP) $(CPPFLAGS) $< -MM -o $@.dep
+
+-include $(DEPFILES)
+
diff --git a/agents/ramen/src/ai.c b/agents/ramen/src/ai.c
new file mode 100644
index 0000000..6625d24
--- /dev/null
+++ b/agents/ramen/src/ai.c
@@ -0,0 +1,874 @@
+/*
+ * UCC 2012 Programming Competition Entry
+ * - "Ramen"
+ *
+ * By John Hodge [TPG]
+ */
+#define ENABLE_DEBUG	0
+#define SHOW_TARGET_MAP	0
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <limits.h>
+#include "interface.h"
+#include "ai_common.h"
+
+// === CONSTANTS ===
+//! \brief Maximum recusion depth
+#define MAX_SEARCH_DEPTH	5
+
+//! \brief Threshold before repeat modifier is applied
+#define REPEAT_THRESHOLD	3
+//! \brief Modifier applied to a repeated move
+#define REPEAT_MOVE_MODIFY(score)	do{score /= (giNumRepeatedMove <= 5 ? 2 : 10); score -= giNumRepeatedMove*10;}while(0);
+
+//! \brief Number of moves by this AI before the defensive modifier kicks in
+#define DEFENSIVE_THRESHOLD	20
+//! \brief Modifier applied to offensive moves when > DEFENSIVE_THRESHOLD defensive moves have been done in a row
+#define DEFENSIVE_MODIFY(score)	do{score *= 1+(giTurnsSinceLastTake/15);}while(0)
+/**
+ * \name AI move outcome scores
+ * \{
+ */
+#define OC_LOSE	-100
+#define OC_DRAW	0
+#define OC_UNK	40
+#define OC_WIN	100
+#define OC_FLAG	150
+/**
+ * \}
+ */
+
+// === PROTOTYPES ===
+// - Wrapper and Initialisation
+void	AI_Initialise(enum eColours Colour, const char *Opponent);
+void	AI_HandleMove(int bMyMove, const tMove *Move);
+void	UpdateStates(const tMove *OpponentMove);
+void	AI_DoMove(tMove *MyMove);
+// - Management
+tPiece	*GetPieceByPos(int X, int Y);
+void	MovePieceTo(tPiece *Piece, int X, int Y);
+void	UpdateRank(tPiece *Piece, char RankChar);
+void	PieceExposed(tPiece *Piece);
+void	RemovePiece(tPiece *Piece);
+// -- AI Core 
+ int	GetBestMove(tPlayerStats *Attacker, tPlayerStats *Defender, tMove *Move, int Level);
+ int	GetPositionScore(tPlayerStats *Attacker, tPlayerStats *Defender, int Level, int X, int Y, tPiece *Piece);
+ int	GetScore(tPiece *This, tPiece *Target);
+ int	GetRawScore(tPiece *This, tPiece *Target);
+// -- Helpers
+static inline int	GetOutcome(int Attacker, int Defender);
+static inline int	ABS(int Val);
+static inline int	RANGE(int Min, int Val, int Max);
+
+// === GLOBALS ===
+enum eColours	gMyColour;
+tPiece	gBlockPiece = {.Team = 2};
+ int	giGameStateSize;
+tGameState	*gpCurrentGameState;
+BOOL	gbFirstTurn = true;
+//tPiece	**gaBoardPieces;
+const char *gsOpponentDbFilename;
+// -- State variables to avoid deadlocking
+ int	giNumRepeatedMove;
+ int	giTurnsSinceLastTake;
+tMove	gLastMove;
+tPiece	*gLastMove_Target, *gLastMove_Piece;
+
+// === CODE ===
+void AI_Initialise(enum eColours Colour, const char *Opponent)
+{
+	gMyColour = Colour;
+
+	// TODO: Get opponent filename
+	gsOpponentDbFilename = DB_GetOpponentFile(Opponent);
+	
+	// Select setup
+//	setup_id = rand() % 3;
+	int setup_id = 1;
+	switch( setup_id )
+	{
+//	case 0:	// Bomb-off (dick move)
+//		// 39 pieces, bombs blocking gates, high level pieces backing up
+//		{
+//		const char *setup[] = {
+//			"8.88979993\n",
+//			"6689995986\n",
+//			"F72434s174\n",
+//			"BB56BB55BB\n"
+//			};
+//		if( Colour == COLOUR_RED )
+//			for(int i = 0; i < 4; i ++ )	printf(setup[i]);
+//		else
+//			for(int i = 4; i --; )		printf(setup[i]);
+//		break;
+//		}
+	case 1:
+		{
+		const char *setup[] = {
+			"FB8sB479B8\n",
+			"BB31555583\n",
+			"6724898974\n",
+			"967B669999\n"
+			};
+		if( Colour == COLOUR_RED )
+			for(int i = 0; i < 4; i ++ )	printf(setup[i]);
+		else
+			for(int i = 4; i --; )		printf(setup[i]);
+		}
+		break ;
+	default:
+		exit(1);
+	}
+
+
+	giGameStateSize = sizeof(tGameState) + giBoardHeight*giBoardWidth*sizeof(tPieceRef);
+	gpCurrentGameState = calloc( giGameStateSize, 1 );
+	gpCurrentGameState->Opponent.Colour = !Colour;
+	gpCurrentGameState->MyExposed.Colour = Colour;
+	gpCurrentGameState->MyActual.Colour = Colour;
+//	gaBoardPieces = calloc( giBoardHeight*giBoardWidth, sizeof(tPiece*) );
+}
+
+void AI_int_InitialiseBoardState(void)
+{
+	 int	piece_index = 0;
+	 int	my_piece_index = 0;
+	for( int y = 0; y < giBoardHeight; y ++ )
+	{
+		for( int x = 0; x < giBoardWidth; x ++ )
+		{
+			tPiece	*p;
+			char b;
+			
+			b = gaBoardState[y*giBoardWidth+x];
+	
+			if( b == '.' )	continue ;
+			if( b == '+' )
+			{
+				gpCurrentGameState->BoardState[ y*giBoardWidth+x ].Team = 3;
+				continue ;
+			}
+
+			if( b == '#' )
+			{
+				if( piece_index >= N_PIECES ) {
+					piece_index ++;
+					continue ;
+				}
+				p = &gpCurrentGameState->Opponent.Pieces[piece_index++];
+				p->Rank = RANK_UNKNOWN;
+				p->X = x;	p->StartX = x;
+				p->Y = y;	p->StartY = y;
+				p->bHasMoved = false;
+				p->Team = !gMyColour;
+				gpCurrentGameState->BoardState[ y*giBoardWidth+x ].Team = 2;
+				gpCurrentGameState->BoardState[ y*giBoardWidth+x ].Index = piece_index - 1;
+				DEBUG("Enemy at %i,%i", x, y);
+			}
+			else
+			{
+				if( my_piece_index >= N_PIECES ) {
+					my_piece_index ++;
+					continue ;
+				}
+				p = &gpCurrentGameState->MyActual.Pieces[my_piece_index++];
+				p->X = x;
+				p->Y = y;
+				p->Team = gMyColour;
+				UpdateRank(p, b);
+				gpCurrentGameState->MyActual.nRanks[p->Rank] ++;
+				gpCurrentGameState->BoardState[ y*giBoardWidth+x ].Team = 1;
+				gpCurrentGameState->BoardState[ y*giBoardWidth+x ].Index = my_piece_index - 1;
+			}
+
+			
+		}
+	}
+	gpCurrentGameState->Opponent.nPieces = piece_index;
+	if( piece_index > N_PIECES )
+		DEBUG("GAH! Too many opposing pieces (%i > 40)", piece_index);
+	if( my_piece_index > N_PIECES )
+		DEBUG("GAH! Too many of my pieces (%i > 40)", my_piece_index);
+
+	// Catch for if I don't put enough pieces out (shouldn't happen)
+	while( my_piece_index < N_PIECES ) {
+		gpCurrentGameState->MyActual.Pieces[my_piece_index].bDead = true;
+		gpCurrentGameState->MyActual.Pieces[my_piece_index].Rank = RANK_UNKNOWN;
+		my_piece_index ++;
+	}
+
+	// Load guesses at what each piece is
+	DB_LoadGuesses(gsOpponentDbFilename, !gMyColour);
+	gpCurrentGameState->Opponent.bGuessValid = true;
+}
+
+void AI_HandleMove(int bMyMove, const tMove *Move)
+{
+	if( gbFirstTurn )
+	{
+		gbFirstTurn = false;
+		
+		AI_int_InitialiseBoardState();
+
+		// Reverse the first move
+		if( Move->dir != DIR_INVAL )
+		{
+			tPiece	*p;
+			switch(Move->dir)
+			{
+			case DIR_INVAL:	ASSERT(Move->dir != DIR_INVAL);	break;
+			case DIR_LEFT:	p = GetPieceByPos( Move->x-1, Move->y );	break ;
+			case DIR_RIGHT:	p = GetPieceByPos( Move->x+1, Move->y );	break ;
+			case DIR_UP:	p = GetPieceByPos( Move->x, Move->y-1 );	break ;
+			case DIR_DOWN:	p = GetPieceByPos( Move->x, Move->y+1 );	break ;
+			}
+			MovePieceTo( p, Move->x, Move->y );
+			p->StartX = Move->x;
+			p->StartY = Move->y;
+		}
+	}
+
+	if(Move->result == RESULT_VICTORY)
+	{
+		// TODO: Distiguish between victory conditions?
+		// - Note flag location?
+
+		// TODO: Save back initial board state
+		DB_WriteBackInitialState(gsOpponentDbFilename, !gMyColour, gpCurrentGameState->Opponent.Pieces);
+	}
+
+	if( !bMyMove )
+	{
+		if( Move->dir != DIR_INVAL )
+			UpdateStates(Move);
+	}
+	else
+	{
+		tPiece	*p = GetPieceByPos(Move->x, Move->y);
+		ASSERT(p);
+
+	 	int newx = p->X, newy = p->Y;
+		switch(Move->dir)
+		{
+		case DIR_INVAL:	break;
+		case DIR_LEFT:	newx -= Move->dist;	break;
+		case DIR_RIGHT:	newx += Move->dist;	break;
+		case DIR_UP:	newy -= Move->dist;	break;
+		case DIR_DOWN:	newy += Move->dist;	break;
+		}
+		tPiece	*target = GetPieceByPos(newx, newy);
+
+		switch(Move->result)
+		{
+		case RESULT_ILLEGAL:	break;
+		case RESULT_INVAL:	break;
+		case RESULT_OK:
+			MovePieceTo(p, newx, newy);
+			break;
+		case RESULT_KILL:
+			UpdateRank(target, Move->defender);
+			RemovePiece(target);
+			MovePieceTo(p, newx, newy);
+			PieceExposed(p);	// TODO: Update oponent's view
+			giTurnsSinceLastTake = 0;
+			break;
+		case RESULT_DIES:
+		case RESULT_VICTORY:
+			UpdateRank(target, Move->defender);
+			PieceExposed(p);
+			RemovePiece(p);
+			giTurnsSinceLastTake = 0;
+			break;
+		case RESULT_BOTHDIE:
+			UpdateRank(target, Move->defender);
+			PieceExposed(p);
+			RemovePiece(p);
+			RemovePiece(target);
+			giTurnsSinceLastTake = 0;
+			break;
+		}
+	}
+}
+
+void UpdateStates(const tMove *OpponentMove)
+{
+	// --- Get moved piece, update position ---
+	tPiece	*moved_piece = GetPieceByPos(OpponentMove->x, OpponentMove->y);
+	// - Sanity
+	ASSERT( moved_piece );
+	ASSERT( moved_piece->Team == !gMyColour );
+	// - Only scouts can move multiple squares
+	if( moved_piece->Rank == RANK_UNKNOWN && OpponentMove->dist > 1 )
+		UpdateRank(moved_piece, '9');
+	// - Update position
+	 int newx = moved_piece->X, newy = moved_piece->Y;
+	switch(OpponentMove->dir)
+	{
+	case DIR_INVAL:	break;
+	case DIR_LEFT:	newx -= OpponentMove->dist;	break;
+	case DIR_RIGHT:	newx += OpponentMove->dist;	break;
+	case DIR_UP:	newy -= OpponentMove->dist;	break;
+	case DIR_DOWN:	newy += OpponentMove->dist;	break;
+	}
+	tPiece	*my_piece = GetPieceByPos(newx, newy);
+	
+	// Check if one of my pieces has been taken
+	switch( OpponentMove->result )
+	{
+	case RESULT_ILLEGAL:	break;
+	case RESULT_INVAL:	break;
+	case RESULT_OK:
+		MovePieceTo(moved_piece, newx, newy);
+		break;
+	case RESULT_KILL:
+	case RESULT_VICTORY:
+		UpdateRank(moved_piece, OpponentMove->attacker);
+		PieceExposed(my_piece);
+		RemovePiece(my_piece);
+		MovePieceTo(moved_piece, newx, newy);
+		break;
+	case RESULT_DIES:
+		UpdateRank(moved_piece, OpponentMove->attacker);
+		PieceExposed(my_piece);
+		RemovePiece(moved_piece);
+		break;
+	case RESULT_BOTHDIE:
+		UpdateRank(moved_piece, OpponentMove->attacker);
+		RemovePiece(moved_piece);
+		PieceExposed(my_piece);
+		RemovePiece(my_piece);
+		break;
+	}
+
+	// Update rank if revealed
+	if( moved_piece->Rank == RANK_UNKNOWN )
+		UpdateRank(moved_piece, gaBoardState[moved_piece->Y*giBoardWidth+moved_piece->X]);
+
+	// - Update piece states
+	DEBUG("Updating piece states");
+	for( int y = 0; y < giBoardHeight; y ++ )
+	{
+		for( int x = 0; x < giBoardWidth; x ++ )
+		{
+			char	c = gaBoardState[y*giBoardWidth+x];
+			if( c == '.' )	continue;
+			if( c == '+' )	continue;
+			tPiece *p = GetPieceByPos(x, y);
+			if(!p) DEBUG("c = %c", c);
+			ASSERT(p);
+			if( p->Team == gMyColour )	continue ;
+			if( p->Rank == RANK_UNKNOWN && c != '#' )
+				UpdateRank(p, c);
+		}
+	}
+}
+
+void AI_DoMove(tMove *MyMove)
+{
+#if 1
+	// Sanity checks
+	for( int i = 0; i < N_PIECES; i ++ )
+	{
+		tPiece	*p = &gpCurrentGameState->MyActual.Pieces[i];
+		if(p->bDead)	continue;
+
+		if( p != GetPieceByPos(p->X, p->Y) ) {
+			DEBUG("Piece %p(%i,%i R%i) not at stated position",
+				p, p->X, p->Y, p->Rank);
+		}
+	}
+#endif
+
+	DEBUG("Deciding on move");
+	GetBestMove(&gpCurrentGameState->MyActual, &gpCurrentGameState->Opponent, MyMove, 0);
+}
+
+tPiece *GetPieceByPos(int X, int Y)
+{
+	tPieceRef	*pr = &gpCurrentGameState->BoardState[Y*giBoardWidth+X];
+	switch( pr->Team )
+	{
+	case 0:	return NULL;
+	case 1:	return &gpCurrentGameState->MyActual.Pieces[ (int)pr->Index ];
+	case 2:	return &gpCurrentGameState->Opponent.Pieces[ (int)pr->Index ];
+	case 3:	return &gBlockPiece;
+	}
+	return NULL;
+}
+
+void MovePieceTo(tPiece *Piece, int X, int Y)
+{
+	DEBUG("Moved %p(%i,%i) to (%i,%i)",
+		Piece, Piece->X, Piece->Y, X, Y);
+	
+	gpCurrentGameState->BoardState[Y*giBoardWidth + X]
+		= gpCurrentGameState->BoardState[Piece->Y*giBoardWidth + Piece->X];
+	gpCurrentGameState->BoardState[Piece->Y*giBoardWidth + Piece->X].Team = 0;
+
+	Piece->X = X;
+	Piece->Y = Y;
+
+	if( !Piece->bHasMoved )
+	{
+		if( Piece->Team == gMyColour )
+		{
+			gpCurrentGameState->MyExposed.nMoved ++;
+		}
+		else
+		{
+			gpCurrentGameState->Opponent.nMoved ++;
+		}
+	}
+	
+	Piece->bHasMoved = true;
+}
+
+void UpdateRank(tPiece *Piece, char RankChar)
+{
+	enum eRanks rank;
+
+	rank = CharToRank(RankChar);
+
+	if( Piece->Rank == rank )
+		return ;
+
+	if( Piece->Rank != RANK_UNKNOWN )
+	{
+		if(Piece->Rank != rank )
+		{
+			DEBUG("Rank of piece %p(%i,%i) has changed, was %i now %i",
+				Piece, Piece->X, Piece->Y, Piece->Rank, rank);
+			Piece->Rank = rank;
+		}
+		return ;
+	}
+
+	if( Piece->Team == !gMyColour && rank != RANK_UNKNOWN )
+	{
+		if( gpCurrentGameState->Opponent.nRanks[rank] >= MAX_RANK_COUNTS[rank] ) {
+			DEBUG("ERROR: Bookkeeping failed, >%i units of rank %i on board",
+				MAX_RANK_COUNTS[rank], rank);
+		}
+		DEBUG("Found a %i", rank);
+		gpCurrentGameState->Opponent.nRanks[rank] ++;
+		if( gpCurrentGameState->Opponent.nIdentified == gpCurrentGameState->Opponent.nPieces ) {
+			DEBUG("ERROR: Bookkeeping failed, >%i units identified",
+				gpCurrentGameState->Opponent.nPieces);
+		}
+		gpCurrentGameState->Opponent.nIdentified ++;
+
+		if( Piece->GuessedRank != RANK_UNKNOWN && Piece->GuessedRank != rank )
+		{
+			fprintf(stderr, "Assumption failed, saved %c != act %c",
+				cRANK_CHARS[Piece->GuessedRank], cRANK_CHARS[rank]);
+			gpCurrentGameState->Opponent.bGuessValid = false;
+		}
+
+	}
+	Piece->Rank = rank;
+	if( Piece->Team == !gMyColour )
+	{
+		// Expensive? What's that?
+		DB_WriteBackInitialState(gsOpponentDbFilename, !gMyColour, gpCurrentGameState->Opponent.Pieces);
+	}
+}
+
+void PieceExposed(tPiece *Piece)
+{
+	ASSERT(Piece->Team == gMyColour);
+	if( Piece->bExposed == false )
+	{
+		gpCurrentGameState->MyExposed.nRanks[Piece->Rank] ++;
+		gpCurrentGameState->MyExposed.nIdentified ++;
+		Piece->bExposed = true;
+	}
+}
+
+/**
+ * \brief Remove a piece from the board
+ */
+void RemovePiece(tPiece *Piece)
+{
+	tPlayerStats	*owner;
+	gpCurrentGameState->BoardState[Piece->Y*giBoardWidth + Piece->X].Team = 0;
+	if( Piece->Team == !gMyColour ) {
+		owner = &gpCurrentGameState->Opponent;
+	}
+	else {
+		owner = &gpCurrentGameState->MyExposed;
+		gpCurrentGameState->MyActual.nRanks[Piece->Rank] --;
+	}
+	owner->nKilledRanks[Piece->Rank] ++;
+	owner->nRanks[Piece->Rank] --;
+	owner->nIdentified --;
+	owner->nPieces --;
+	Piece->bDead = true;
+}
+
+// ----------------------------------------------------------------------------
+// - AI Core
+// ----------------------------------------------------------------------------
+#define TARGET_GRID_W	10
+#define TARGET_GRID_H	10
+#define TARGET_GRID_SIZE	(TARGET_GRID_W*TARGET_GRID_H)
+typedef struct sGridSlot {
+	tPiece	*p;
+	char	dist;
+	char	complexity;
+	enum eDirections	firstdir;
+	char	firstdist;
+	char	bDirect;
+} tTargetGrid[TARGET_GRID_SIZE];
+int GetTargetsFrom(tPiece *Piece, tTargetGrid *grid)
+{
+	 int	n_targets;
+	
+	memset(*grid, 0, sizeof(*grid));
+
+	int cur_dist = 1;
+	int b_updates = 0;
+
+	void _check_dir(struct sGridSlot *pgs, struct sGridSlot *gs, int x, int y, enum eDirections dir)
+	{
+		if( !gs )	return ;
+		if( gs->dist )	return ;
+		if( pgs->p )	return ;
+
+		tPiece *p = GetPieceByPos(x, y);
+		if( p && (p == &gBlockPiece || p->Team == Piece->Team) )
+			p = (void*)-1;
+		gs->dist = cur_dist + 1;
+		gs->p = p;
+		DEBUG("%p at %i,%i %i away", p, x, y, cur_dist);
+		if( pgs->firstdir == DIR_INVAL || (pgs->firstdir == dir && pgs->bDirect) ) {
+			gs->bDirect = 1;
+			gs->firstdir = dir;
+			gs->firstdist = pgs->firstdist + 1;
+		}
+		else {
+			gs->firstdist = pgs->firstdist;
+			gs->firstdir = pgs->firstdir;
+			gs->bDirect = 0;
+		}
+		b_updates = 1;
+	}
+
+	(*grid)[ Piece->X + Piece->Y * TARGET_GRID_W ].dist = -1;
+
+	do {
+		b_updates = 0;
+		for( int i = 0; i < TARGET_GRID_SIZE; i ++ )
+		{
+			int x = i % TARGET_GRID_W;
+			int y = i / TARGET_GRID_H;
+			struct sGridSlot	*gs = &(*grid)[i];
+
+			struct sGridSlot	*gs_u = NULL, *gs_d = NULL;
+			struct sGridSlot	*gs_l = NULL, *gs_r = NULL;
+
+			if( !gs->dist )	continue ;
+
+			// Get adjacent cells
+			if( y > 0 )
+				gs_u = &(*grid)[i - TARGET_GRID_W];
+			if( x > 0 )
+				gs_l = &(*grid)[i - 1];
+			if( y < TARGET_GRID_H - 1 )
+				gs_d = &(*grid)[i + TARGET_GRID_W];
+			if( x < TARGET_GRID_W - 1 )
+				gs_r = &(*grid)[i + 1];
+			
+			_check_dir(gs, gs_u, x, y-1, DIR_UP);
+			_check_dir(gs, gs_d, x, y+1, DIR_DOWN);
+			_check_dir(gs, gs_l, x-1, y, DIR_LEFT);
+			_check_dir(gs, gs_r, x+1, y, DIR_RIGHT);
+		}
+
+		cur_dist ++;
+	} while(b_updates);
+
+#if SHOW_TARGET_MAP
+	fprintf(stderr, "%p Type %c\n", Piece, cRANK_CHARS[Piece->Rank]);
+	for( int i = 0; i < 10*10; i ++ )
+	{
+		tPiece	*np = (*grid)[i].p;
+		if( i == Piece->X + Piece->Y * TARGET_GRID_W )
+			fprintf(stderr, "?");
+		else if( (*grid)[i].dist == 0 )
+			fprintf(stderr, "#");	// Unreachable
+		else if( !np )
+			fprintf(stderr, " ");	// Empty
+		else if( np == (void*)-1 )
+			fprintf(stderr, ".");	// My team/block
+		else
+			fprintf(stderr, "X");	// Viable target!
+		if( i % 10 == 9 )
+			fprintf(stderr, "\n");
+	}
+#endif
+
+	DEBUG("Getting targets");
+	n_targets = 0;
+	for( int i = 0; i < TARGET_GRID_SIZE; i ++ )
+	{
+		if( (*grid)[i].p == (void*)-1 )
+			(*grid)[i].p = NULL;
+		if( (*grid)[i].p ) {
+			DEBUG("Target (%i,%i) %p %i dist",
+				i%10, i/10, (*grid)[i].p, (*grid)[i].dist);
+			(*grid)[i].dist -= 1;
+			n_targets ++;
+		}
+	}
+
+	return n_targets;
+}
+
+int GetBestMove(tPlayerStats *Attacker, tPlayerStats *Defender, tMove *Move, int Level)
+{
+	// Avoid infinite recursion
+	if( Level == MAX_SEARCH_DEPTH )	return 1;
+
+	 int	best_score = INT_MIN;
+	tMove	best_move;
+	tPiece	*best_p = NULL;
+	tPiece	*best_target = NULL;
+	tTargetGrid	grid;
+
+	// - Check possible moves
+	for( int i = 0; i < N_PIECES; i ++ )
+	{
+		tPiece	*p = &Attacker->Pieces[i];
+		 int	p_score = 0;	// Piece score
+		struct sGridSlot	*bt_gs = NULL;
+		 int	bt_score;	// Best target score
+
+		// Dead, ignore
+		if( p->bDead )
+			continue ;
+		// These cannot move
+		if( p->Rank == RANK_BOMB || p->Rank == RANK_FLAG )
+			continue ;
+
+		// Get what pieces are able to be attacked from this piece
+		int nt = GetTargetsFrom(p, &grid);
+		DEBUG("(%i,%i) %i targets", p->X, p->Y, nt);
+		if( nt <= 0 )	continue ;
+
+		// Find the best target of those
+		for( int j = 0; j < TARGET_GRID_SIZE; j ++ )
+		{
+			struct sGridSlot *gs = &grid[j];
+			if( !gs->p )	continue ;
+
+			int t_score = GetScore(p, gs->p);
+
+#if 1
+			if( gs->p == gLastMove_Target && p == gLastMove_Piece && giNumRepeatedMove > REPEAT_THRESHOLD)
+			{
+				REPEAT_MOVE_MODIFY(t_score);
+			}
+#endif
+
+			// TODO: For scouts, use gs->complexity
+			// TODO: Don't use a linear relationship on distance
+			p_score += t_score / (gs->dist < 2 ? 1 : 2);
+
+			// Best target
+			if( !bt_gs || t_score > bt_score ) {
+				bt_score = t_score;
+				bt_gs = gs;
+			}
+		}
+
+		DEBUG("p_score = %i, bt_score = %i", p_score, bt_score);
+
+		// Best move is towards that piece
+		if( best_move.dir == DIR_INVAL || best_score < p_score )
+		{
+			best_move.dir = bt_gs->firstdir;
+			best_move.x = p->X;
+			best_move.y = p->Y;
+			best_move.dist = (p->Rank == RANK_SCOUT) ? bt_gs->firstdist : 1;
+			best_score = p_score;
+			best_p = p;
+			best_target = bt_gs->p;
+		}
+	}
+
+
+	if( Move )
+	{
+		ASSERT(best_move.dir != DIR_INVAL);
+		*Move = best_move;
+		
+		if( ((Move->dir-1)^1) == gLastMove.dir-1 && Move->dist == gLastMove.dist
+		&& Move->x == gLastMove.x && Move->y == gLastMove.y )
+		{
+			giNumRepeatedMove ++;
+			DEBUG("Up to %i repititions", giNumRepeatedMove);
+		}
+		else
+			giNumRepeatedMove = 0;
+
+		// TODO: Recurse once on this to determine what the other team will do
+		// Record that move, then check when the move is performed to see if we were right.
+
+		gLastMove = *Move;
+		gLastMove_Target = best_target;
+		gLastMove_Piece = best_p;
+		giTurnsSinceLastTake ++;
+	}
+
+	DEBUG("best_score = %i", best_score);
+
+	return best_score;
+}
+
+/**
+ * \brief 
+ */
+int GetScore(tPiece *This, tPiece *Target)
+{
+	tPlayerStats	*attacker, *defender;
+	int score;
+
+	if( This->Team == gMyColour ) {
+		defender = &gpCurrentGameState->Opponent;
+		attacker = &gpCurrentGameState->MyExposed;
+	}
+	else {
+		attacker = &gpCurrentGameState->Opponent;
+		defender = &gpCurrentGameState->MyExposed;
+	}
+
+	score = GetRawScore(This, Target);
+
+	if( This->Team == gMyColour )
+	{
+		switch( This->Rank )
+		{
+		case RANK_MARSHAL:	// Marshal has balls of steel if the spy and enemy marshal are dead
+			if( defender->nKilledRanks[RANK_MARSHAL] && defender->nKilledRanks[RANK_SPY] )
+				score *= 2;
+			break;
+		case RANK_GENERAL:	// General always attacks!
+			score *= 2;
+			break;
+		case RANK_SCOUT:
+			score = score * gpCurrentGameState->MyActual.nRanks[RANK_SCOUT] / MAX_RANK_COUNTS[RANK_SCOUT] + score;
+			break;
+		default:
+			break;
+		}
+	}
+
+	return score;
+}
+
+int GetRawScore(tPiece *This, tPiece *Target)
+{
+	tPlayerStats	*this_team, *target_team;
+	
+	ASSERT( This->Team != Target->Team );
+
+	if( This->Team == gMyColour ) {
+		target_team = &gpCurrentGameState->Opponent;
+		this_team = &gpCurrentGameState->MyExposed;
+	}
+	else {
+		this_team = &gpCurrentGameState->Opponent;
+		target_team = &gpCurrentGameState->MyExposed;
+	}
+
+	// Both ranks known, used fixed rules
+	if( This->Rank != RANK_UNKNOWN && Target->Rank != RANK_UNKNOWN )
+	{
+		return GetOutcome(This->Rank, Target->Rank);
+	}
+	// If it's our move, and the guesses are valid, then use the guess
+	else if( This->Team == gMyColour
+		&& gpCurrentGameState->Opponent.bGuessValid
+		&& Target->GuessedRank != RANK_UNKNOWN
+		)
+	{
+		return GetOutcome(This->Rank, Target->GuessedRank);
+	}
+	else
+	{
+		 int	sum = 0;
+		 int	max = Target->bHasMoved ? RANK_SPY : RANK_FLAG;
+		 int	count = 0;
+
+		if( target_team->nIdentified >= target_team->nPieces ) {
+			DEBUG("%i >= %i, what the fsck",
+				target_team->nIdentified, target_team->nPieces);
+		}
+		ASSERT(target_team->nPieces > target_team->nIdentified);
+
+		for( int i = RANK_MARSHAL; i <= max; i ++ )
+		{
+			 int	n_unk = MAX_RANK_COUNTS[i] - (target_team->nRanks[i] + target_team->nKilledRanks[i]);
+			if( n_unk == 0 )
+				continue ;
+			ASSERT( n_unk > 0 );
+
+			// TODO: Fiddle with outcome score depending on respective ranks
+			sum += n_unk * GetOutcome(This->Rank, i);
+			count += n_unk;
+		}
+
+//		if( Target->bHasMoved )
+//			sum /= target_team->nPieces - target_team->nMoved;
+//		else
+//			sum /= target_team->nPieces - target_team->nIdentified;
+		sum /= count;
+
+		if( sum > OC_FLAG ) {
+			fprintf(stderr, "sum (%i) > OC_WIN (%i) -- nUnIdent=%i\n",
+				sum, OC_WIN, target_team->nPieces - target_team->nIdentified);
+			ASSERT( sum <= OC_FLAG );
+		}
+
+		return sum - ABS(sum) / 10;
+	}
+}
+
+static inline int GetOutcome(int Attacker, int Defender)
+{
+	if( Attacker == 0 )	return OC_UNK;
+	if( Defender == 0 )	return OC_UNK;
+
+	if( Defender == RANK_FLAG )
+		return OC_FLAG;
+
+	if( Attacker != RANK_MINER && Defender == RANK_BOMB )
+		return OC_LOSE;
+	if( Attacker == RANK_MINER && Defender == RANK_BOMB )
+		return OC_WIN;
+
+	if( Attacker == RANK_SPY && Defender == RANK_MARSHAL )
+		return OC_WIN;
+
+	if( Attacker == Defender )
+		return OC_DRAW;
+
+	if( Attacker < Defender )
+		return OC_WIN;
+	else
+		return OC_LOSE;
+}
+
+
+static inline int ABS(int Val)
+{
+	return Val < 0 ? -Val : Val;
+}
+
+static inline int RANGE(int Min, int Val, int Max)
+{
+	return Min <= Val && Val <= Max;
+}
+
diff --git a/agents/ramen/src/ai.o b/agents/ramen/src/ai.o
new file mode 100644
index 0000000000000000000000000000000000000000..39db28eb021287e1d2d121e2124522a45c0fc592
GIT binary patch
literal 41552
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
COU*d|

literal 0
HcmV?d00001

diff --git a/agents/ramen/src/ai.o.dep b/agents/ramen/src/ai.o.dep
new file mode 100644
index 0000000..ed132fc
--- /dev/null
+++ b/agents/ramen/src/ai.o.dep
@@ -0,0 +1 @@
+ai.o: ai.c interface.h ai_common.h
diff --git a/agents/ramen/src/ai_common.h b/agents/ramen/src/ai_common.h
new file mode 100644
index 0000000..0793659
--- /dev/null
+++ b/agents/ramen/src/ai_common.h
@@ -0,0 +1,108 @@
+/*
+ * UCC 2012 Programming Competition Entry
+ * - "Ramen"
+ *
+ * By John Hodge [TPG]
+ */
+#ifndef _AI_COMMON_H_
+#define _AI_COMMON_H_
+
+#include "interface.h"
+
+#define N_PIECES	40
+
+enum eRanks
+{
+	RANK_UNKNOWN,	//  0
+	RANK_MARSHAL,	//  1
+	RANK_GENERAL,	//  2
+	RANK_COLONEL,	//  3
+	RANK_MAJOR,	//  4
+	RANK_CAPTAIN,	//  5
+	RANK_LIEUTENANT,//  6
+	RANK_SERGEANT,	//  7
+	RANK_MINER,	//  8
+	RANK_SCOUT,	//  9
+	RANK_SPY,	// 10
+	RANK_BOMB,	// 11
+	RANK_FLAG,	// 12
+	N_RANKS
+};
+static const int MAX_RANK_COUNTS[N_RANKS] = {
+	40, 1, 1, 2, 3, 4, 4, 4, 5, 8, 1, 6, 1
+};
+static const char cRANK_CHARS[N_RANKS] = "#123456789sBF";
+static inline enum eRanks CharToRank(char ch)
+{
+	switch(ch)
+	{
+	case '1':	return RANK_MARSHAL;
+	case '2':	return RANK_GENERAL;
+	case '3':	return RANK_COLONEL;
+	case '4':	return RANK_MAJOR;
+	case '5':	return RANK_CAPTAIN;
+	case '6':	return RANK_LIEUTENANT;
+	case '7':	return RANK_SERGEANT;
+	case '8':	return RANK_MINER;
+	case '9':	return RANK_SCOUT;
+	case 's':	return RANK_SPY;
+	case 'B':	return RANK_BOMB;
+	case 'F':	return RANK_FLAG;
+	case '#':	return RANK_UNKNOWN;
+	default:
+		// Wut. Unkown
+		DEBUG("Unknown character '%c'", ch);
+		return RANK_UNKNOWN;
+	}
+}
+
+/**
+ */
+typedef struct sPiece
+{
+	 int	X, Y;
+	BOOL	bDead;
+	enum eRanks	Rank;	// -1 = unknown
+	BOOL	bHasMoved;
+	enum eColours	Team;
+	// TODO: Keep last moved
+	
+	BOOL	bExposed;	// Marks when the piece is known by the other team
+
+	 int	StartX, StartY;	// Used to save initial layout
+	enum eRanks	GuessedRank;	// Only used it bGuessValid is set
+} tPiece;
+
+typedef struct sPlayerStats
+{
+	enum eColours	Colour;
+	 int	nPieces;
+	 int	nMoved;
+	 int	nIdentified;
+	 int	nRanks[N_RANKS];
+	 int	nKilledRanks[N_RANKS];
+	tPiece	Pieces[N_PIECES];
+	BOOL	bGuessValid;
+} tPlayerStats;
+
+typedef struct sPieceRef
+{
+	char	Index;	// Index into tPlayerStats.Pieces
+	char	Team;	// 0 = Empty, 1 = Me, 2 = Opponent, 3 = Block
+} tPieceRef;
+
+typedef struct sGameState
+{
+	tPlayerStats	Opponent;
+	tPlayerStats	MyExposed;
+	tPlayerStats	MyActual;
+	tPieceRef	BoardState[];	// 
+} tGameState;
+
+// --- Database
+extern char	*DB_GetOpponentFile(const char *Opponent);
+extern void	DB_LoadGuesses(const char *DBFile, enum eColours Colour);
+extern void	DB_WriteBackInitialState(const char *DBFile, enum eColours Colour, tPiece *Pieces);
+
+#endif
+
diff --git a/agents/ramen/src/db.c b/agents/ramen/src/db.c
new file mode 100644
index 0000000..a62d44a
--- /dev/null
+++ b/agents/ramen/src/db.c
@@ -0,0 +1,258 @@
+/*
+ * UCC 2012 Programming Competition Entry
+ * - "Ramen"
+ *
+ * By John Hodge [TPG]
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include "ai_common.h"
+#include <stdint.h>
+#include <string.h>
+
+#define TAG_BOARDSTATE	0x7342
+
+typedef struct sTag
+{
+	uint16_t	Tag;
+	uint16_t	Length;
+} tTag;
+
+typedef struct sSavedBoardState
+{
+	uint8_t 	W, H;
+	uint16_t	Count;
+	char	NormalisedBoard[];
+} tSavedBoardState;
+
+// === PROTOTYPES ===
+tSavedBoardState	*DB_int_ReadState(FILE *fp, off_t *offset);
+void	DB_int_AppendTag(FILE *fp, uint16_t Tag, uint16_t Size, void *Data);
+
+// === CODE ===
+char *DB_GetOpponentFile(const char *Opponent)
+{
+	uint32_t	checksum = 0;
+
+	{
+		 int	ofs = 0;
+		const char *str = Opponent;
+		while( *str )
+		{
+			checksum ^= *str << ofs;
+			str ++;
+			ofs += 5;
+			ofs %= 32 - 5;
+		}
+	}
+	
+	const char	*filename = NULL;
+	 int	filenamelen = 0;
+	{
+		const char *last_slash = NULL;
+		const char *last_dot = NULL;
+		const char *str = Opponent;
+		while( *str )
+		{
+			if(*str == '/')	last_slash = str;
+			if(*str == '.')	last_dot = str;
+			str ++;
+		}
+		filename = last_slash + 1;
+		if( last_slash > last_dot )
+			filenamelen = str - filename;
+		else
+			filenamelen = last_dot - filename;
+	}
+
+	int len = snprintf(NULL, 0, "%08x_%.*s.ramen", checksum, filenamelen, filename);
+	char *ret = malloc(len+1);
+	snprintf(ret, len+1, "%08x_%.*s.ramen", checksum, filenamelen, filename);
+//	fprintf(stderr, "DB File = '%s'\n", ret);
+	return ret;
+}
+
+void DB_LoadGuesses(const char *DBFile, enum eColours Colour)
+{
+	FILE	*fp;
+	off_t	offset = 0;
+	tSavedBoardState	*saved_board = NULL;
+
+	fp = fopen(DBFile, "r+");
+	if(!fp)	return ;
+
+	// Read board states, checking for a same state
+	while( (saved_board = DB_int_ReadState(fp, &offset)) )
+	{
+		if( saved_board->W != giBoardWidth )
+			continue ;
+		if( saved_board->H != giBoardHeight )
+			continue ;
+		break;
+	}
+
+	// TODO: Combine counts of how many times a state has been played
+
+	if( saved_board )
+	{
+		char	bs[giBoardWidth*4];
+		 int	ofs = 0;
+
+
+		if( Colour != COLOUR_RED )
+		{
+			ofs = giBoardHeight-4;
+			char	*bs2 = saved_board->NormalisedBoard;
+			memcpy(bs + giBoardWidth*0, bs2 + giBoardWidth*(4-1), giBoardWidth);
+			memcpy(bs + giBoardWidth*1, bs2 + giBoardWidth*(4-2), giBoardWidth);
+			memcpy(bs + giBoardWidth*2, bs2 + giBoardWidth*(4-3), giBoardWidth);
+			memcpy(bs + giBoardWidth*3, bs2 + giBoardWidth*(4-4), giBoardWidth);
+		}
+		else
+		{
+			memcpy(bs, saved_board->NormalisedBoard, giBoardWidth*4);
+		}
+//		for( int i = 0; i < 4; i ++ ) {
+//			fprintf(stderr, "%.*s\n", giBoardWidth, bs + giBoardWidth*i);
+//		}
+
+		// Set guessed ranks
+		for( int i = 0; i < giBoardWidth*4; i ++ )
+		{
+			tPiece	*p = GetPieceByPos(i % giBoardWidth, i/giBoardWidth + ofs );
+//			fprintf(stderr, "%c", bs[i]);
+//			if(i % giBoardWidth == giBoardWidth-1)
+//				fprintf(stderr, "\n");
+			if( bs[i] == '\0' && p )
+				break;
+			if( bs[i] != '\0' && !p )
+				break;
+			if( p )
+				p->GuessedRank = CharToRank(bs[i]);
+		}
+	}
+
+	fclose(fp);
+}
+
+void DB_WriteBackInitialState(const char *DBFile, enum eColours Colour, tPiece *Pieces)
+{
+	char	bs[giBoardHeight*giBoardWidth];
+	memset(bs, 0, sizeof(bs));
+
+	for( int i = 0; i < N_PIECES; i ++ )
+	{
+		if( Pieces[i].StartY < 0 )	continue ;
+		char	*bp = &bs[ Pieces[i].StartY*giBoardWidth + Pieces[i].StartX ];
+
+		if( *bp != '\0' )
+		{
+			// Oops?
+		}
+		else
+		{
+			*bp = cRANK_CHARS[ Pieces[i].Rank ];
+		}
+	}
+
+	// Normalise board to RED
+	if( Colour != COLOUR_RED )
+	{
+		memcpy(bs + giBoardWidth*0, bs + giBoardWidth*(giBoardHeight-1), giBoardWidth);
+		memcpy(bs + giBoardWidth*1, bs + giBoardWidth*(giBoardHeight-2), giBoardWidth);
+		memcpy(bs + giBoardWidth*2, bs + giBoardWidth*(giBoardHeight-3), giBoardWidth);
+		memcpy(bs + giBoardWidth*3, bs + giBoardWidth*(giBoardHeight-4), giBoardWidth);
+	}
+
+
+	off_t	offset;
+	tSavedBoardState	*saved_board;
+	FILE *fp = fopen(DBFile, "r+");
+	if( !fp ) {
+		fp = fopen(DBFile, "w");
+	}
+
+	// Read board states, checking for a same state
+	while( (saved_board = DB_int_ReadState(fp, &offset)) )
+	{
+//		fprintf(stderr, "DBG: %i == %i? and %i == %i\n",
+//			saved_board->W, giBoardWidth, saved_board->H, giBoardHeight
+//			);
+
+		if( saved_board->W != giBoardWidth )
+			continue ;
+		if( saved_board->H != giBoardHeight )
+			continue ;
+
+		BOOL	b_different = false;
+
+		for( int i = 0; i < 4*giBoardWidth; i ++ )
+		{
+			if( saved_board->NormalisedBoard[i] == '#' || bs[i] == '#' )
+				continue ;
+			if( saved_board->NormalisedBoard[i] != bs[i] ) {
+				fprintf(stderr, "DBG: '%c' != '%c'\n", saved_board->NormalisedBoard[i], bs[i]);
+				b_different = true;
+				break;
+			}
+		}
+
+		if( b_different )	continue ;
+
+		break;
+	}
+
+	if( saved_board )
+	{
+		saved_board->Count ++;
+		fseek(fp, offset, SEEK_SET);
+		// Merge
+		for( int i = 0; i < 4*giBoardWidth; i ++ )
+		{
+			if( saved_board->NormalisedBoard[i] == '#' )
+				saved_board->NormalisedBoard[i] = bs[i];
+		}
+		// Write back
+		fwrite(saved_board, sizeof(*saved_board) + giBoardWidth*4, 1, fp);
+	}
+	else
+	{
+		saved_board = malloc( sizeof(*saved_board) + giBoardWidth*4 );
+		saved_board->W = giBoardWidth;
+		saved_board->H = giBoardHeight;
+		saved_board->Count = 1;
+		memcpy(saved_board->NormalisedBoard, bs, 4*giBoardWidth);
+		DB_int_AppendTag(fp, TAG_BOARDSTATE, sizeof(*saved_board) + giBoardWidth*4, saved_board);
+	}
+	free(saved_board);
+
+	fclose(fp);
+}
+
+tSavedBoardState *DB_int_ReadState(FILE *fp, off_t *offset)
+{
+	tTag	tag;
+	tSavedBoardState	*ret = NULL;
+
+	do {
+		if( fread(&tag, sizeof(tag), 1, fp) != 1 )
+			break ;
+		if( tag.Tag == TAG_BOARDSTATE )
+		{
+			*offset = ftell(fp);
+			ret = malloc(tag.Length);
+			fread(ret, tag.Length, 1, fp);
+		}
+		fseek(fp, tag.Length, SEEK_CUR);
+	} while(!ret);
+
+	return ret;
+}
+
+void DB_int_AppendTag(FILE *fp, uint16_t Tag, uint16_t Size, void *Data)
+{
+	fseek(fp, 0, SEEK_END);
+	fwrite(&Tag, sizeof(uint16_t), 1, fp);
+	fwrite(&Size, sizeof(uint16_t), 1, fp);
+	fwrite(Data, Size, 1, fp);
+}
diff --git a/agents/ramen/src/db.o b/agents/ramen/src/db.o
new file mode 100644
index 0000000000000000000000000000000000000000..28ca7ce077ada44f31332078ce40fe09bd5b57cb
GIT binary patch
literal 20832
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
V-s#r3Jf9!XxIFLuRO9lz_uo2;xU&EN

literal 0
HcmV?d00001

diff --git a/agents/ramen/src/db.o.dep b/agents/ramen/src/db.o.dep
new file mode 100644
index 0000000..f0eb37c
--- /dev/null
+++ b/agents/ramen/src/db.o.dep
@@ -0,0 +1 @@
+db.o: db.c ai_common.h interface.h
diff --git a/agents/ramen/src/interface.h b/agents/ramen/src/interface.h
new file mode 100644
index 0000000..cb7e949
--- /dev/null
+++ b/agents/ramen/src/interface.h
@@ -0,0 +1,70 @@
+/*
+ * UCC 2012 Programming Competition Entry
+ * - "Ramen"
+ *
+ * By John Hodge [TPG]
+ */
+#ifndef _COMMON_H_
+#define _COMMON_H_
+
+#if ENABLE_DEBUG
+# define DEBUG(s, a...)	fprintf(stderr, "DEBUG: "s"\n" ,## a)
+#else
+# define DEBUG(...)	do{}while(0)
+#endif
+#define ASSERT(val)	do{if(!(val)){fprintf(stderr, "ASSERTION FAILED - " #val " at %s:%i\n", __FILE__, __LINE__);exit(-1);} }while(0)
+
+
+#define true	1
+#define false	0
+typedef char	BOOL;
+
+typedef struct sMove	tMove;
+
+enum eDirections
+{
+	DIR_INVAL,
+	DIR_LEFT,
+	DIR_RIGHT,
+	DIR_UP,
+	DIR_DOWN
+};
+
+enum eColours
+{
+	COLOUR_RED,
+	COLOUR_BLUE
+};
+
+enum eResult
+{
+	RESULT_INVAL,
+	RESULT_ILLEGAL,
+	RESULT_OK,
+	RESULT_KILL,
+	RESULT_DIES,
+	RESULT_BOTHDIE,
+	RESULT_VICTORY
+};
+
+struct sMove
+{
+	char	x, y;
+	enum eDirections	dir;	// eDirections
+	char	dist;
+
+	enum eResult	result;
+	char	attacker;
+	char	defender;
+};
+
+extern int	giBoardWidth;
+extern int	giBoardHeight;
+extern char	*gaBoardState;
+
+extern void	AI_Initialise(enum eColours Colour, const char *Opponent);
+extern void	AI_HandleMove(int bMyMove, const tMove *Move);
+extern void	AI_DoMove(tMove *MyMove);
+
+#endif
+
diff --git a/agents/ramen/src/main.c b/agents/ramen/src/main.c
new file mode 100644
index 0000000..a9a2d71
--- /dev/null
+++ b/agents/ramen/src/main.c
@@ -0,0 +1,240 @@
+/*
+ * UCC 2012 Programming Competition Entry
+ * - "Ramen"
+ *
+ * By John Hodge [TPG]
+ */
+#define ENABLE_DEBUG	0
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <regex.h>
+#include "interface.h"
+
+// === CONSTANTS ===
+static const char *DIR_NAMES[] = {"INVL", "LEFT", "RIGHT", "UP", "DOWN"};
+
+// === PROTOTYPES ===
+ int	main(int argc, char *argv[]);
+void	GetMove(char *line, tMove *Move);
+void	ReadBoardState(FILE *stream, char *dest);
+ int	RunRegex(regex_t *regex, const char *string, int nMatches, regmatch_t *matches, const char *errorMessage);
+void	CompileRegex(regex_t *regex, const char *pattern, int flags);
+
+// === GLOBALS ===
+regex_t	gRegex_move;
+regex_t	gRegex_res;
+ int	giBoardWidth;
+ int	giBoardHeight;
+char	*gaBoardState;
+
+// === CODE ===
+int main(int argc, char *argv[])
+{
+	setbuf(stdin, NULL);
+	setbuf(stdout, NULL);
+
+	// $X $Y $DIRECTION [$MULTIPLIER=1] $OUTCOME
+	CompileRegex(&gRegex_move, "([0-9]+) ([0-9]+) ([A-Z]+)( [0-9]+)? (.*)", REG_EXTENDED);
+	// (KILLS|DIES|BOTHDIE) $ATTACKER_RANK $DEFENDER_RANK
+	CompileRegex(&gRegex_res, "([A-Z_]+) (.) (.)", REG_EXTENDED);
+
+	{
+		 int	colour_id;
+		char	colour[6];
+		char	opponent[128];
+		fscanf(stdin, "%s %s %i %i", colour, opponent, &giBoardWidth, &giBoardHeight);
+
+		if( strcmp(colour, "RED") == 0 )
+			colour_id = COLOUR_RED;
+		else if( strcmp(colour, "BLUE") == 0 )
+			colour_id = COLOUR_BLUE;
+		else {
+			fprintf(stderr, "Oops... nutty manager, colour = %s\n", colour);
+			colour_id = COLOUR_RED;
+		}
+
+		DEBUG("colour=%i, opponent='%s', dims = %ix%i", colour_id, opponent, giBoardWidth, giBoardHeight);
+
+		AI_Initialise(colour_id, opponent);
+	}
+	
+	gaBoardState = malloc(giBoardWidth*giBoardHeight);
+
+	for( ;; )
+	{
+		tMove	mymove, opponent_move;
+		char	line[32];
+
+//		DEBUG("Waiting for move");
+		ASSERT( fgets(line, sizeof(line), stdin) != NULL );
+//		DEBUG("pm line = '%s'", line);
+
+		if( strcmp(line, "\n") == 0 )
+			continue ;
+
+		if( strcmp(line, "START\n") == 0 )
+		{
+//			DEBUG("New game");
+			ReadBoardState(stdin, gaBoardState);
+			// TODO: Check if this hasn't happened before
+			opponent_move.x = 0;
+			opponent_move.y = 0;
+			opponent_move.dist = 0;
+			opponent_move.dir = 0;
+		}
+		else if( strncmp(line, "QUIT", 4) == 0 )
+		{
+			// TODO: Result?
+			break ;
+		}
+		else if( strcmp(line, "VICTORY_FLAG\n") == 0 )
+		{
+			// I win!
+			break;
+		}
+		else
+		{
+//			DEBUG("GetMove");
+			GetMove(line, &opponent_move);
+//			DEBUG("Read board state");
+			ReadBoardState(stdin, gaBoardState);
+		}
+		DEBUG("Opposing move %i,%i dir %i dist %i",
+			opponent_move.x, opponent_move.y, opponent_move.dir, opponent_move.dist);
+
+		// Silly opponent, you lost
+		if( opponent_move.result == RESULT_VICTORY )
+			break;
+
+		// Determine move
+		AI_HandleMove(0, &opponent_move);
+		AI_DoMove(&mymove);
+		DEBUG("Chose move %i,%i %i %i", mymove.x, mymove.y, mymove.dir, mymove.dist);
+		printf("%i %i %s %i\n", mymove.x, mymove.y, DIR_NAMES[mymove.dir], mymove.dist);
+
+		// Get result of the move
+		ASSERT( fgets(line, sizeof(line), stdin) != NULL );
+//		DEBUG("res line = '%s'", line);
+//
+		GetMove(line, &mymove);
+		AI_HandleMove(1, &mymove);
+
+		// I WON!
+		if( mymove.result == RESULT_VICTORY )
+			break;
+
+//		DEBUG("Move over");
+	}
+
+	return 0;
+}
+
+void GetMove(char *line, tMove *Move)
+{
+	regmatch_t	matches[1+5];
+
+	// regex (\d+) (\d+) ([A-Z]*)(?: (\d+))?
+	RunRegex(&gRegex_move, line, 1+5, matches, "Move line");
+
+	char *xstr = line + matches[1].rm_so;
+	char *ystr = line + matches[2].rm_so;
+	char *dirstr = line + matches[3].rm_so;
+
+	Move->x = atoi(xstr);
+	Move->y = atoi(ystr);
+//	DEBUG("(%i,%i)", Move->x, Move->y);
+	// Direction
+	     if( strncmp(dirstr, "UP",    2) == 0 )
+		Move->dir = DIR_UP;
+	else if( strncmp(dirstr, "DOWN",  4) == 0 )
+		Move->dir = DIR_DOWN;
+	else if( strncmp(dirstr, "LEFT",  4) == 0 )
+		Move->dir = DIR_LEFT;
+	else if( strncmp(dirstr, "RIGHT", 5) == 0 )
+		Move->dir = DIR_RIGHT;
+	else {
+		fprintf(stderr, "Is the manager nuts? Dir = %.*s unk\n",
+			matches[3].rm_eo + matches[3].rm_so, dirstr
+			);
+		fprintf(stderr, "line = '%s'\n", line);
+		Move->dir = DIR_INVAL;
+	}
+	if( matches[4].rm_so >= 0 )
+		Move->dist = atoi(line + matches[4].rm_so + 1);
+	else
+		Move->dist = 1;
+	
+	// Outcome
+	char	*outcome = line + matches[5].rm_so;
+	if( strncmp(outcome, "OK", 2) == 0 )
+		Move->result = RESULT_OK;
+	else if( strncmp(outcome, "ILLEGAL", 7) == 0 )
+		Move->result = RESULT_ILLEGAL;
+	else if( strncmp(outcome, "VICTORY_FLAG", 12) == 0 )
+		Move->result = RESULT_VICTORY;
+	else if( strncmp(outcome, "VICTORY_ATTRITION", 17) == 0 )
+		Move->result = RESULT_VICTORY;
+	else
+	{
+		regmatch_t res_matches[3+1];
+		RunRegex(&gRegex_res, outcome, 3+1, res_matches, "Result portion");
+
+		char *res_str = outcome + res_matches[1].rm_so;
+		     if( strncmp(res_str, "KILLS ", 6) == 0 )
+			Move->result = RESULT_KILL;
+		else if( strncmp(res_str, "DIES ", 5) == 0 )
+			Move->result = RESULT_DIES;
+		else if( strncmp(res_str, "BOTHDIE ", 8) == 0 )
+			Move->result = RESULT_BOTHDIE;
+		else {
+			fprintf(stderr, "Is the manager nuts? Result = %.*s\n",
+				res_matches[1].rm_eo + res_matches[1].rm_so, res_str
+			       );
+			Move->result = RESULT_INVAL;
+		}
+
+		Move->attacker = *(outcome + res_matches[2].rm_so);
+		Move->defender = *(outcome + res_matches[3].rm_so);
+	}
+}
+
+void ReadBoardState(FILE *stream, char *dest)
+{
+	for( int i = 0; i < giBoardHeight; i ++ )
+	{
+		char	tmp[giBoardWidth+2];
+		fgets(tmp, sizeof(tmp), stream);
+		DEBUG("BS %.*s", giBoardWidth, tmp);
+		memcpy(dest+i*giBoardWidth, tmp, giBoardWidth);
+	}
+}
+
+int RunRegex(regex_t *regex, const char *string, int nMatches, regmatch_t *matches, const char *errorMessage)
+{
+	 int	ret;
+	
+	ret = regexec(regex, string, nMatches, matches, 0);
+	if( ret ) {
+		size_t  len = regerror(ret, regex, NULL, 0);
+		char    errorStr[len];
+		regerror(ret, regex, errorStr, len);
+		fprintf(stderr, "string = '%s'\n", string);
+		fprintf(stderr, "%s\n%s", errorMessage, errorStr);
+		exit(-1);
+	}
+	
+	return ret;
+}
+
+void CompileRegex(regex_t *regex, const char *pattern, int flags)
+{
+	 int	ret = regcomp(regex, pattern, flags);
+	if( ret ) {
+		size_t	len = regerror(ret, regex, NULL, 0);
+		char    errorStr[len];
+		regerror(ret, regex, errorStr, len);
+		fprintf(stderr, "Regex compilation failed - %s\n", errorStr);
+		exit(-1);
+	}
+}
diff --git a/agents/ramen/src/main.o b/agents/ramen/src/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..2c66953147d1ee4471db422d6f0718eda04a5cdc
GIT binary patch
literal 19688
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

literal 0
HcmV?d00001

diff --git a/agents/ramen/src/main.o.dep b/agents/ramen/src/main.o.dep
new file mode 100644
index 0000000..b832325
--- /dev/null
+++ b/agents/ramen/src/main.o.dep
@@ -0,0 +1 @@
+main.o: main.c interface.h
diff --git a/agents/vixen/basic_python.pyc b/agents/vixen/basic_python.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4b3cf003913e75339503e01db5cdfdb0d3151e3a
GIT binary patch
literal 10751
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

literal 0
HcmV?d00001

diff --git a/agents/vixen/path.pyc b/agents/vixen/path.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9d84840430f79c670f5d617c3c2934622c3f8582
GIT binary patch
literal 2093
zcmb_dO>f&q5S^t&eb`RX#0YGq0SdGiA%`k;(OVD%iR<(WN<gJZYakF9l9s7RB&%Jg
zF(98@v_;SDzv`vO{*C^D_PtqsI0s+qQrzY4?97`tv$Lx||Gu{I*O$LPNo4Va_&z|h
zJ#;BvBd<gbS7RfGM$$mix}-JvQRH0YyF<*447xPV|H0FD8yG%~-SI(Qq}gl*Zy<h%
zW^bX(01Pl8jECT$Ceff9U^$^O8z+y@>@{>Fk-5lF2@Sej?rZOw7{1PJ?y}Si>NLqF
zM_qhHJNqd{z2kD4^=v%t?U%{PG%K9#RkL!Gl+$YO?#Fw*c%-t|`J1fhRfyrE>eRJh
zIUMFi?uJ8pvP2it4iXNw&?v2;*+0N{j<}3;e$fPW#(|W##84P`AwCp_Vi3>3Afg<v
zq20Nfj_bPW0<L;60FFhf#~ujit|s#u^~a%9cUSlez4uoFueU(yczwE7a4xF%wcih5
z390wm;TLo}smQo?ft05lE-0@^2C}=bI11#fzJvk9&IP%eF+&R(mUpS&Sn99kJCrwN
z4k%bbp(&%foV8@$lDxqx{8{7(B<u1M%h52UXKi`&6*cx>Jd(2wnd1dvz-$OMg=wqF
z2*8^%-_-b!42E|dv9~3Mr%h(oeE+LqdrqM`OG97v#xQg3<#zea^xM_ez1QgK!fn2-
zpcF8Zd5i05L(T&+#c%61rX#%Epy>^gw+$MX8??N^-rEMv%MB0>DIshGwxm1g@+|jJ
zpIV_Jh+E`UcA6~DCr`jOn&lxwno%iQ`S|PtWt*aP-K%J4&?Sn3V!QNtfcjq?RDXau
z&HRwcS&`C#T=5j&o5a(XX?*`fLJ@Bj2b~NkeFvReg@Q8h7mepfR+@rIRw%iM*Pb%F
zBE6^ypgU+v%Q3BAe|GT95kLCk@#oJ_ULxN-)s_7x&->jrSCkNSlJcZ*s(lboY!<a3
zQ{8@9WUhf(Tvf=T%4|7vdaLn<<1MWUd114e>+(K}=uFY9i)SvPy-r`2@yugPvLo+r
zmXD5|vOB31JuQDI^hQpO%RI@fj?2pBWnmShDsylprkDEsF%)(5-}gAW0SxlD57CLa
z6NEu02+g->p9Eq3U9-FR-7p=~FimNg_sn&3GuSrU(7kDHn+q-IavK)ce-Tf!;ZXnE
zhQn!@o=h-}ST^c)T?1Dw1TtrC^k1f7+M$Q0CoMgDYBhJWxJb)sMD_p8xyE|WM|Yn!
Kpd_};R_$LGopr4M

literal 0
HcmV?d00001

-- 
GitLab