Commit 076b4f0f authored by Steve Tonneau's avatar Steve Tonneau
Browse files

contact generators for posture generator for arbitrary num contacts now functionnal

parent 3cd06448
from hpp.corbaserver.rbprm.rbprmbuilder import Builder
from hpp.corbaserver.rbprm.rbprmfullbody import FullBody
from hpp.corbaserver.rbprm.problem_solver import ProblemSolver
from hpp.gepetto import Viewer
import sys
packageName = "hrp2_14_description"
meshPackageName = "hrp2_14_description"
rootJointType = "freeflyer"
##
# Information to retrieve urdf and srdf files.
urdfName = "hrp2_14"
urdfSuffix = "_reduced"
srdfSuffix = ""
fullBody = FullBody ()
fullBody.loadFullBodyModel(urdfName, rootJointType, meshPackageName, packageName, urdfSuffix, srdfSuffix)
#~ fullBody.setJointBounds ("base_joint_xyz", [-1,2, -2, 1, 0.5, 2.5])
#~ AFTER loading obstacles
rLegId = 'hrp2_rleg_rom'
rLeg = 'RLEG_JOINT0'
rLegOffset = [0,-0.105,0,]
rLegNormal = [0,1,0]
rLegx = 0.03; rLegy = 0.03
fullBody.addLimb(rLegId,rLeg,'',rLegOffset,rLegNormal, rLegx, rLegy, 10000, "manipulability", 0.03)
lLegId = 'hrp2_lleg_rom'
lLeg = 'LLEG_JOINT0'
lLegOffset = [0,-0.105,0]
lLegNormal = [0,1,0]
lLegx = 0.03; lLegy = 0.03
fullBody.addLimb(lLegId,lLeg,'',lLegOffset,rLegNormal, lLegx, lLegy, 10000, "manipulability", 0.03)
rarmId = 'hrp2_rarm_rom'
rarm = 'RARM_JOINT0'
rHand = 'RARM_JOINT5'
rArmOffset = [-0.05,-0.050,-0.050]
rArmNormal = [1,0,0]
rArmx = 0.024; rArmy = 0.024
fullBody.addLimb(rarmId,rarm,rHand,rArmOffset,rArmNormal, rArmx, rArmy, 10000, "EFORT", 0.05)
larmId = 'hrp2_larm_rom'
larm = 'LARM_JOINT0'
lHand = 'LARM_JOINT5'
lArmOffset = [-0.05,-0.050,-0.050]
lArmNormal = [1,0,0]
lArmx = 0.024; lArmy = 0.024
fullBody.addLimb(larmId,larm,lHand,lArmOffset,lArmNormal, lArmx, lArmy, 10000, "EFORT", 0.05)
scene = sys.argv[len(sys.argv)-1]
configFile = "creach_2DGrid_"+scene+'.pkl'
import pickle
pkl_file = open(configFile, 'rb')
ok_configs = pickle.load(pkl_file)
pkl_file.close()
ps = ProblemSolver( fullBody )
r = Viewer (ps)
r.loadObstacleModel ('hpp-rbprm-corba', scene, "planning")
limbs = [larmId, rarmId, lLegId, rLegId]
q_init = [
0, 0, 0, 1.0, 0.0 , 0.0, 0.0, # Free flyer 0-6
0.0, 0.0, 0.0, 0.0, # CHEST HEAD 7-10
0.261799388, 0.174532925, 0.0, -0.523598776, 0.0, 0.0, 0.17, # LARM 11-17
0.261799388, -0.174532925, 0.0, -0.523598776, 0.0, 0.0, 0.17, # RARM 18-24
0.0, 0.0, -0.453785606, 0.872664626, -0.41887902, 0.0, # LLEG 25-30
0.0, 0.0, -0.453785606, 0.872664626, -0.41887902, 0.0, # RLEG 31-36
]; r (q_init)
fullBody.setCurrentConfig (q_init)
negative = {}
positive = {}
nbnegative = 0
totalconfigs = 0
res = {}
x_start = -1.5
y_start = 0
x_max = 2.5
y_max = 2.65
iter_step = 0.1
res = {}
import numpy as np
nbStepsX = int((x_max - x_start) / iter_step)
nbStepsY = int((y_max - y_start) / iter_step)
x_start = 0
y_start = 0
x_max = 2
y_max = 1.64
iter_step = 0.01
x_t = []
y_t = []
#~ res = []
for x in ok_configs.keys():
for y in ok_configs[x].keys():
#~
#~ for x in np.linspace(x_start,x_max, num=nbStepsX):
#~ for y in np.linspace(y_start,y_max, num=nbStepsY):
q = q_init
q[0] = x
q[1] = -0.82
q[2] = y
#~ print "test"
if (fullBody.canGenerateBalancedContact(q, [0,0,1])):
#~ print "ok"
x_t.append(x)
y_t.append(y)
#~ res.append(fullBody.generateContacts(q, [0,0,1]))
x_t.append(0)
y_t.append(0) #for scale
x_t.append(2)
y_t.append(1.64) #for scale
import pickle
sFile = "cgeom_feasible_2DGrid_"+scene+'.pkl'
output = open(sFile, 'wb')
pickle.dump(res, output)
output.close()
import numpy as np
import matplotlib.pyplot as plt
#~ plt.scatter(x_t, y_t, s=200, marker='s', edgecolors='none')
#~ plt.scatter(x_t, y_t, s=170, marker='s' ,color ='c', edgecolors='none')
plt.scatter(x_t, y_t, edgecolors='none')
plt.show()
from hpp.corbaserver.rbprm.rbprmbuilder import Builder
from hpp.corbaserver.rbprm.rbprmfullbody import FullBody
from hpp.corbaserver.rbprm.problem_solver import ProblemSolver
from hpp.gepetto import Viewer
import sys
packageName = "hrp2_14_description"
meshPackageName = "hrp2_14_description"
rootJointType = "freeflyer"
##
# Information to retrieve urdf and srdf files.
urdfName = "hrp2_14"
urdfSuffix = "_reduced"
srdfSuffix = ""
fullBody = FullBody ()
fullBody.loadFullBodyModel(urdfName, rootJointType, meshPackageName, packageName, urdfSuffix, srdfSuffix)
#~ fullBody.setJointBounds ("base_joint_xyz", [-1,2, -2, 1, 0.5, 2.5])
#~ AFTER loading obstacles
rLegId = 'hrp2_rleg_rom'
rLeg = 'RLEG_JOINT0'
rLegOffset = [0,-0.105,0,]
rLegNormal = [0,1,0]
rLegx = 0.09; rLegy = 0.05
fullBody.addLimb(rLegId,rLeg,'',rLegOffset,rLegNormal, rLegx, rLegy, 10000, "manipulability", 0.03)
lLegId = 'hrp2_lleg_rom'
lLeg = 'LLEG_JOINT0'
lLegOffset = [0,-0.105,0]
lLegNormal = [0,1,0]
lLegx = 0.09; lLegy = 0.05
fullBody.addLimb(lLegId,lLeg,'',lLegOffset,rLegNormal, lLegx, lLegy, 10000, "manipulability", 0.03)
rarmId = 'hrp2_rarm_rom'
rarm = 'RARM_JOINT0'
rHand = 'RARM_JOINT5'
rArmOffset = [-0.05,-0.050,-0.050]
rArmNormal = [1,0,0]
rArmx = 0.024; rArmy = 0.024
fullBody.addLimb(rarmId,rarm,rHand,rArmOffset,rArmNormal, rArmx, rArmy, 10000, "EFORT", 0.05)
larmId = 'hrp2_larm_rom'
larm = 'LARM_JOINT0'
lHand = 'LARM_JOINT5'
lArmOffset = [-0.05,-0.050,-0.050]
lArmNormal = [1,0,0]
lArmx = 0.024; lArmy = 0.024
fullBody.addLimb(larmId,larm,lHand,lArmOffset,lArmNormal, lArmx, lArmy, 10000, "EFORT", 0.05)
scene = sys.argv[len(sys.argv)-1]
configFile = "cgeom_feasible_2DGrid_"+scene+'.pkl'
import pickle
pkl_file = open(configFile, 'rb')
ok_configs = pickle.load(pkl_file)
pkl_file.close()
ps = ProblemSolver( fullBody )
r = Viewer (ps)
r.loadObstacleModel ('hpp-rbprm-corba', scene, "planning")
limbs = [larmId, rarmId, lLegId, rLegId]
q_init = [
0, 0, 0, 1.0, 0.0 , 0.0, 0.0, # Free flyer 0-6
0.0, 0.0, 0.0, 0.0, # CHEST HEAD 7-10
0.261799388, 0.174532925, 0.0, -0.523598776, 0.0, 0.0, 0.17, # LARM 11-17
0.261799388, -0.174532925, 0.0, -0.523598776, 0.0, 0.0, 0.17, # RARM 18-24
0.0, 0.0, -0.453785606, 0.872664626, -0.41887902, 0.0, # LLEG 25-30
0.0, 0.0, -0.453785606, 0.872664626, -0.41887902, 0.0, # RLEG 31-36
]; r (q_init)
fullBody.setCurrentConfig (q_init)
negative = {}
positive = {}
nbnegative = 0
totalconfigs = 0
res = {}
x_start = -1.5
y_start = 0
x_max = 2.5
y_max = 2.65
iter_step = 0.1
res = {}
import numpy as np
nbStepsX = int((x_max - x_start) / iter_step)
nbStepsY = int((y_max - y_start) / iter_step)
x_t = []
y_t = []
#~ res = []
for x in ok_configs.keys():
for y in ok_configs[x].keys():
q = q_init
q[0] = x
q[1] = 0
q[2] = y
#~ print "test"
if (fullBody.canGenerateBalancedContact(q, [0,0,1])):
#~ print "ok"
x_t.append(x)
y_t.append(y)
#~ res.append(fullBody.generateContacts(q, [0,0,1]))
import numpy as np
import matplotlib.pyplot as plt
import pickle
sFile = "cbalanced_feasible_2DGrid_"+scene+'.pkl'
output = open(sFile, 'wb')
pickle.dump(res, output)
output.close()
#~ plt.scatter(x_t, y_t, s=200, marker='s', edgecolors='none')
plt.scatter(x_t, y_t ,color ='c', edgecolors='none')
plt.show()
from hpp.corbaserver.rbprm.rbprmbuilder import Builder
from hpp.gepetto import Viewer
from hpp.corbaserver.rbprm.problem_solver import ProblemSolver
import sys
#~ print sys.args
rootJointType = 'freeflyer'
packageName = 'hpp-rbprm-corba'
meshPackageName = 'hpp-rbprm-corba'
urdfNameTested = 'hrp2_trunk_flexible'
urdfNameRoms = ['hrp2_larm_rom','hrp2_rarm_rom','hrp2_lleg_rom','hrp2_rleg_rom']
urdfSuffix = ""
srdfSuffix = ""
scene = sys.argv[len(sys.argv)-1]
tested = Builder ()
tested.loadModel(urdfNameTested, urdfNameRoms, rootJointType, meshPackageName, packageName, urdfSuffix, srdfSuffix)
#~ tested.setNormalFilter('hrp2_lleg_rom', [0,0,1], 0.9)
#~ tested.setFilter(['hrp2_lleg_rom','hrp2_rleg_rom'])
ps = ProblemSolver( tested )
r = Viewer (ps)
r.loadObstacleModel (packageName, scene, "planning")
tested.setJointBounds ("base_joint_xyz", [-10.,10,-10,10,0,20])
ps.client.problem.selectConFigurationShooter("RbprmShooter")
q_init = tested.getCurrentConfig ();
q_init [0:3] = [-10, -0.82, 1.25]; tested.setCurrentConfig (q_init); r (q_init)
q_goal = q_init [::]
q_goal [0:3] = [-9, -0.65, 1.25]; r (q_goal)
ps.setInitialConfig (q_init)
ps.addGoalConfig (q_goal)
t = ps.solve ()
res = {}
x_start = -1.5
y_start = 0
x_max = 2.84
y_max = 2.65
iter_step = 0.01
res = {}
import numpy as np
nbStepsX = int((x_max - x_start) / iter_step)
nbStepsY = int((y_max - y_start) / iter_step)
x_t = []
y_t = []
q = q_init
for x in np.linspace(x_start,x_max, num=nbStepsX):
ys = {}
for y in np.linspace(y_start,y_max, num=nbStepsY):
q = q_init
q[0] = x
q[1] = 0
q[2] = y
if (tested.isReachable(q)):
#~ print "ok"
#~ print tested.isConfigValid(q)
x_t.append(x)
y_t.append(y)
ys[y] = True
res[x] = ys
#~ x_t.append(2.5)
#~ y_t.append(2.65) #for scale
#~
#~ x_t.append(-1.5)
#~ y_t.append(0) #for scale
#~ x_t.append(-0.91)
#~ y_t.append(0.2) #for scale
#~ x_t.append(-0.71)
#~ y_t.append(0.2) #for scale
#~
#~ x_t.append(-0.07)
#~ y_t.append(0.3) #for scale
#~ x_t.append(0.12)
#~ y_t.append(0.3) #for scale
#~
#~ x_t.append(0.78)
#~ y_t.append(0.4) #for scale
#~ x_t.append(0.98)
#~ y_t.append(0.4) #for scale
#~
#~ x_t.append(2.17)
#~ y_t.append(0.6) #for scale
#~ x_t.append(2.37)
#~ y_t.append(0.6) #for scale
#~
#~ x_t.append(0.58)
#~ y_t.append(2.35) #for scale
#~ x_t.append(1.08)
#~ y_t.append(2.35) #for scale
#~ x_t.append(0.58)
#~ y_t.append(2.65) #for scale
#~ x_t.append(1.08)
#~ y_t.append(2.65) #for scale
#~
#~ x_t.append(-1.5)
#~ y_t.append(0.) #for scale
#~ x_t.append(3.5)
#~ y_t.append(0.5) #for scale
#~
#~
#~ import pickle
#~ sFile = "creach_2DGrid_"+scene+'.pkl'
#~ output = open(sFile, 'wb')
#~ pickle.dump(res, output)
#~ output.close()
q[2] = y_t[0]
q[0] = x_t[0]
r(q)
import numpy as np
import matplotlib.pyplot as plt
#~ plt.scatter(x_t, y_t, s=170, marker='s', edgecolors='none')
plt.scatter(x_t, y_t, edgecolors='none')
#~ plt.scatter(x_t, y_t ,color ='c', edgecolors='none')
plt.show()
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
(dp0
S'A'
p1
cnumpy.core.multiarray
_reconstruct
p2
(cnumpy
ndarray
p3
(I0
tp4
S'b'
p5
tp6
Rp7
(I1
(I64
I3
tp8
cnumpy
dtype
p9
(S'f8'
p10
I0
I1
tp11
Rp12
(I3
S'<'
p13
NNNI-1
I-1
I0
tp14
bI00
S'W\xec/\xbb\'\x0f\xcb\xbfTR\'\xa0\x89\xb0\xd9\xbf\x14?\xc6\xdc\xb5\x84\xec?\x96!\x8euq\x1b\xd1\xbfO\xaf\x94e\x88c\xdd\xbf\x96!\x8euq\x1b\xeb?\x07_\x98L\x15\x8c\xca?+\x18\x95\xd4\th\xea?s\xd7\x12\xf2A\xcf\xe0?\x0b$(~\x8c\xb9\xc3?\xad\xfa\\m\xc5\xfe\xec?\x9e\xef\xa7\xc6K7\xd9?vq\x1b\r\xe0-\xe0\xbf\x94\x87\x85Z\xd3\xbc\xd3?\xd3\xbc\xe3\x14\x1d\xc9\xe9\xbf\x1d8gDio\xec\xbf7\x1a\xc0[ A\xdd\xbf\xdb\xf9~j\xbct\xa3\xbf\x97\xff\x90~\xfb:\xe6\xbf\xf0\x85\xc9T\xc1\xa8\xcc\xbf\xac\x1cZd;\xdf\xe5\xbf\x08=\x9bU\x9f\xab\xe9\xbf\xe3\xc7\x98\xbb\x96\x90\xd7?P\xfc\x18s\xd7\x12\xde\xbfF%u\x02\x9a\x08\xe3\xbfO\xaf\x94e\x88c\xdd?[\xd3\xbc\xe3\x14\x1d\xe5\xbf\xe6\xae%\xe4\x83\x9e\xe9\xbf\xe5\xd0"\xdb\xf9~\xe2\xbf:#J{\x83/\xc4\xbfu\x93\x18\x04V\x0e\xeb\xbfU\xc1\xa8\xa4N@\xc3\xbf\x84\rO\xaf\x94e\xe0?\xd2o_\x07\xce\x19\xed\xbf\xd74\xef8EG\xda\xbf\xc1\xa8\xa4N@\x13\xb1?E\xd8\xf0\xf4JY\xec\xbf\xa1\xd64\xef8E\xdb\xbf\x9f\xab\xad\xd8_v\xc7?KY\x868\xd6\xc5\xef?I\x9d\x80&\xc2\x86\xb7\xbfvO\x1e\x16jM\xb3?\xb8\x1e\x85\xebQ\xb8\xc6?\x97\xff\x90~\xfb:\xa0\xbf(\x0f\x0b\xb5\xa6y\xef?J{\x83/L\xa6\xe2?\x8f\xe4\xf2\x1f\xd2o\xdf?\xd6\xc5m4\x80\xb7\xe4\xbfz\xc7):\x92\xcb\xcf?\xbaI\x0c\x02+\x87\xd6\xbf\xff!\xfd\xf6u\xe0\xec\xbfV\x0e-\xb2\x9d\xef\xed?\x92\\\xfeC\xfa\xed\xc3\xbf\x05\xa3\x92:\x01M\xd4?\xaf%\xe4\x83\x9e\xcd\xee?\xb3{\xf2\xb0Pk\xba\xbf\x11\xc7\xba\xb8\x8d\x06\xd0?\x8f\xc2\xf5(\\\x8f\xca?\xe5\xf2\x1f\xd2o_\xed?\xf7u\xe0\x9c\x11\xa5\xd5?\x02\xbc\x05\x12\x14?\xe2\xbf\xf5\xdb\xd7\x81sF\xea?-C\x1c\xeb\xe26\x9a\xbf\x86Z\xd3\xbc\xe3\x14\xd5\xbf\xae\xd8_vO\x1e\xee?"lxz\xa5,\xb3?\xa6\nF%u\x02\xe6?b\x10X9\xb4\xc8\xd6\xbf c\xeeZB>\xe4\xbf\xe2X\x17\xb7\xd1\x00\xec?\xcc]K\xc8\x07=\xdb\xbf\nh"lxz\xcd\xbf\x8euq\x1b\r\xe0\xe1\xbf\xd6V\xec/\xbb\'\xe9?\xa9\x13\xd0D\xd8\xf0\xd0\xbf\xad\xfa\\m\xc5\xfe\xe6?\xd5x\xe9&1\x08\xe6?k\x9aw\x9c\xa2#\xb9\xbf\xac\xad\xd8_vO\xc6\xbfvq\x1b\r\xe0-\xd8?\xd2o_\x07\xce\x19\xed\xbf\xa3#\xb9\xfc\x87\xf4\xc3\xbf@\x13a\xc3\xd3+\xef\xbfB>\xe8\xd9\xac\xfa\xc4?\x10z6\xab>W\xdb\xbf\x17\xd9\xce\xf7S\xe3\xeb\xbfs\xd7\x12\xf2A\xcf\xce\xbfj\xbct\x93\x18\x04\xc6\xbf\xb5\x15\xfb\xcb\xee\xc9\xed\xbf\x1b\r\xe0-\x90\xa0\xd4\xbfJ{\x83/L\xa6\xec\xbfK\xc8\x07=\x9bU\xdb?\x868\xd6\xc5m4\xc0?\x8f\xc2\xf5(\\\x8f\xb2\xbfP\x8d\x97n\x12\x83\xb0\xbf}\xae\xb6b\x7f\xd9\xef\xbf\xb2.n\xa3\x01\xbc\xe1?\x82sF\x94\xf6\x06\xe7\xbf\x9e^)\xcb\x10\xc7\xda?\x9c\xc4 \xb0rh\xe7\xbf\xb2\x9d\xef\xa7\xc6K\xe3?\xaf\x94e\x88c]\xd4\xbf\x89\xd2\xde\xe0\x0b\x93\xef?\x81&\xc2\x86\xa7W\xc2\xbf\xec\xc09#J{\xb3\xbf\xa2E\xb6\xf3\xfd\xd4\xee?\x1e\xa7\xe8H.\xff\xc9\xbf\xcd;N\xd1\x91\\\xc6\xbf\x0c\x02+\x87\x16\xd9\xe2\xbf\x82\xe2\xc7\x98\xbb\x96\xa0\xbf\xd7\xa3p=\n\xd7\xe9?\xb8\xaf\x03\xe7\x8c(\xe3?\xd5\th"lx\xe8\xbf\xaa\x82QI\x9d\x80\xce\xbfX\xa85\xcd;N\x91?\xea\x95\xb2\x0cq\xac\xd3\xbf\xc4B\xadi\xdeq\xee?\x01M\x84\rO\xaf\xea?t\xb5\x15\xfb\xcb\xee\xc9?Y\x868\xd6\xc5m\xe0?\xb4\xc8v\xbe\x9f\x1a\xcf?%u\x02\x9a\x08\x1b\xee?\x8a\x1fc\xeeZB\xce\xbf`vO\x1e\x16j\xc5?\x9c3\xa2\xb47\xf8\xee?\x99*\x18\x95\xd4\t\xc8\xbf/n\xa3\x01\xbc\x05\xca\xbfO\xaf\x94e\x88c\xd9?\x86\xc9T\xc1\xa8\xa4\xec\xbfR\xb8\x1e\x85\xebQ\xc0\xbf\xfe\xd4x\xe9&1\xe0?\x94\xf6\x06_\x98L\xeb?\x00o\x81\x04\xc5\x8f\xb1?\x08=\x9bU\x9f\xab\xd5?\xf3\x1f\xd2o_\x07\xee?\xc9\xe5?\xa4\xdf\xbe\xd2\xbfi\x00o\x81\x04\xc5\xe7?\xbf}\x1d8gD\xe3\xbfgDio\xf0\x85\xed\xbf_\x98L\x15\x8cJ\xd6?b\xa1\xd64\xef8\xc5?D\xfa\xed\xeb\xc09\xb3\xbf\x7f\xd9=yX\xa8\xeb\xbf\x13\xf2A\xcff\xd5\xdf?\xf7u\xe0\x9c\x11\xa5\xdd?\xe6\xae%\xe4\x83\x9e\xe7\xbf\xf5\xb9\xda\x8a\xfde\xdf?\x90\xa0\xf81\xe6\xae\xcd\xbf\x054\x116<\xbd\xec\xbf\xce\xaa\xcf\xd5V\xec\xd7?\xe3\xa5\x9b\xc4 \xb0\xe6?HP\xfc\x18s\xd7\xd2\xbf\x8c\xdbh\x00o\x81\xe4?\xb1\xbf\xec\x9e<,\xe6?\x054\x116<\xbd\xd2\xbfh\xb3\xeas\xb5\x15\xe5?B`\xe5\xd0"\xdb\xd5\xbf;\xdfO\x8d\x97n\xe6?\xd5x\xe9&1\x08\xe4?\xd0D\xd8\xf0\xf4J\xc1\xbf\xd9=yX\xa85\xef?V\x9f\xab\xad\xd8_\xc6\xbf\x15\x1d\xc9\xe5?\xa4\xcf?)\\\x8f\xc2\xf5(\xea?h"lxz\xa5\xe0\xbf\x19\xe2X\x17\xb7\xd1\xe6\xbf\xaf%\xe4\x83\x9e\xcd\xde?\x8e\x06\xf0\x16HP\xe0?\x91~\xfb:p\xce\xea?U\xc1\xa8\xa4N@\xcb?\x9d\x11\xa5\xbd\xc1\x17\xe0\xbf4\x116<\xbdR\xd6\xbf\xe5a\xa1\xd64\xef\xea?V\x9f\xab\xad\xd8_\xda\xbf\xdcF\x03x\x0b$\xdc?Nb\x10X9\xb4\xec\xbf\x91\x0fz6\xab>\xa7?n4\x80\xb7@\x82\xc2\xbf\x16jM\xf3\x8eS\xe2?\x8a\x8e\xe4\xf2\x1f\xd2\xe9?\xb7\xd1\x00\xde\x02\t\xea\xbf\xd74\xef8EG\xe0\xbf/n\xa3\x01\xbc\x05\xd2?\xe8j+\xf6\x97\xdd\xeb?333333\xdf?C\x1c\xeb\xe26\x1a\xb0?\xa8\xc6K7\x89A\xd0\xbf\x96\xb2\x0cq\xac\x8b\xe7?\xbb\xb8\x8d\x06\xf0\x16\xe4\xbfGr\xf9\x0f\xe9\xb7\xc7\xbf7\x1a\xc0[ A\xed?\xdfO\x8d\x97n\x12\xd7?'
p15
tp16
bsS'V'
p17
g2
(g3
(I0
tp18
g5
tp19
Rp20
(I1
(I64
I4
tp21
g12
I00
S"V*\xa8\xa8\xfa\x95\xd3\xbf\xd9@\xba\xd8\xb4R\xb8?\x18\xcc_!se\xe6?\x00\x00\x00\x00\x00\x00\xf0?V*\xa8\xa8\xfa\x95\xd3\xbf\xd9@\xba\xd8\xb4R\xb8?\x18\xcc_!se\xe6?\x00\x00\x00\x00\x00\x00\xf0?\x14A\x9c\x87\x13\x98\xb2\xbf\xfe\xed\xb2_w\xba\xe6?\x8e\xe6\xc8\xca/\x03\xe0?\x00\x00\x00\x00\x00\x00\xf0?\x14A\x9c\x87\x13\x98\xb2\xbf\xfe\xed\xb2_w\xba\xe6?\x8e\xe6\xc8\xca/\x03\xe0?\x00\x00\x00\x00\x00\x00\xf0?\xb7'Hlw\x0f\xdf\xbf)$\x99\xd5;\xdc\xd3?\xe2\xe5\xe9\\QJ\xe3\xbf\x00\x00\x00\x00\x00\x00\xf0?\xb7'Hlw\x0f\xdf\xbf)$\x99\xd5;\xdc\xd3?\xe2\xe5\xe9\\QJ\xe3\xbf\x00\x00\x00\x00\x00\x00\xf0?\xb7'Hlw\x0f\xdf\xbf)$\x99\xd5;\xdc\xd3?\xe2\xe5\xe9\\QJ\xe3\xbf\x00\x00\x00\x00\x00\x00\xf0?\xb7'Hlw\x0f\xdf\xbf)$\x99\xd5;\xdc\xd3?\xe2\xe5\xe9\\QJ\xe3\xbf\x00\x00\x00\x00\x00\x00\xf0?\xb7'Hlw\x0f\xdf\xbf)$\x99\xd5;\xdc\xd3?\xe2\xe5\xe9\\QJ\xe3\xbf\x00\x00\x00\x00\x00\x00\xf0?\xb7'Hlw\x0f\xdf\xbf)$\x99\xd5;\xdc\xd3?\xe2\xe5\xe9\\QJ\xe3\xbf\x00\x00\x00\x00\x00\x00\xf0?\x18z\xc4\xe8\xb9\x05\xe1\xbfG\xc8@\x9e]\xbe\xdc?\x9b\x1e\x14\x94\xa2\x95\xdb?\x00\x00\x00\x00\x00\x00\xf0?\x18z\xc4\xe8\xb9\x05\xe1\xbfG\xc8@\x9e]\xbe\xdc?\x9b\x1e\x14\x94\xa2\x95\xdb?\x00\x00\x00\x00\x00\x00\xf0?\x18z\xc4\xe8\xb9\x05\xe1\xbfG\xc8@\x9e]\xbe\xdc?\x9b\x1e\x14\x94\xa2\x95\xdb?\x00\x00\x00\x00\x00\x00\xf0?\x9aA|`\xc7\x7f\xd5?>^H\x87\x87\xb0\xe6?x|{\xd7\xa0/\xc7\xbf\x00\x00\x00\x00\x00\x00\xf0?T5A\xd4}\x00\xc4?\x90.6\xad\x14\x02\xd5??\x00\xa9M\x9c\\\xe7?\x00\x00\x00\x00\x00\x00\xf0?\xeau\x8b\xc0X\xdf\xa8?E\xa1e\xdd?\x96\xe2?\x1a\xc1\xc6\xf5\xef\xfa\xe5\xbf\x00\x00\x00\x00\x00\x00\xf0?\x876\x00\x1b\x10!\xc0?\x7f\xa4\x88\x0c\xabx\xd3?\xedE\xb4\x1dSw\xea\xbf\x00\x00\x00\x00\x00\x00\xf0?\xec\xfa\x05\xbba\xdb\xca?\xad\xa3\xaa\t\xa2\xee\xd1\xbf\xa0\xdc\xb6\xefQ\x7f\xd1?\x00\x00\x00\x00\x00\x00\xf0?\xec\xfa\x05\xbba\xdb\xca?\xad\xa3\xaa\t\xa2\xee\xd1\xbf\xa0\xdc\xb6\xefQ\x7f\xd1?\x00\x00\x00\x00\x00\x00\xf0?\x93\x8c\x9c\x85=\xed\xd2?\x11\xfeE\xd0\x98\xc9\xe6?+\xf6\x97\xdd\x93\x87\xd6?\x00\x00\x00\x00\x00\x00\xf0?Z,E\xf2\x95@\xdd\xbfD\xc4\xcd\xa9d\x00\xe7?1x\x98\xf6\xcd\xfd\xd1?\x00\x00\x00\x00\x00\x00\xf0?Z,E\xf2\x95@\xdd\xbfD\xc4\xcd\xa9d\x00\xe7?1x\x98\xf6\xcd\xfd\xd1?\x00\x00\x00\x00\x00\x00\xf0?P\xc2L\xdb\xbf\xb2\xa2?\xd7M)\xaf\x95\xd0\xbd\xbf\xcbd8\x9e\xcf\x00\xe6\xbf\x00\x00\x00\x00\x00\x00\xf0?P\xc2L\xdb\xbf\xb2\xa2?\xd7M)\xaf\x95\xd0\xbd\xbf\xcbd8\x9e\xcf\x00\xe6\xbf\x00\x00\x00\x00\x00\x00\xf0?\xbb\x97\xfb\xe4(@\xd4\xbf\xa4\x1c\xcc&\xc0\xb0\xe9?\x0c\xb1\xfa#\x0c\x03\xc4\xbf\x00\x00\x00\x00\x00\x00\xf0?\x02\xa0\x8a\x1b\xb7\x98\xd3?rl=C8\xe6\xe6?\xdf7\xbe\xf6\xcc\x92\xd6\xbf\x00\x00\x00\x00\x00\x00\xf0?!\x8f\xe0F\xca\x16\xd2\xbfQ\x85?\xc3\x9b5\xdf?\x11\x8eY\xf6$0\xe5\xbf\x00\x00\x00\x00\x00\x00\xf0?4\xbb\xee\xadHL\x80?\x85\xcd\x00\x17d\xcb\xd8\xbfU\x16\x85]\x14=\xbc?\x00\x00\x00\x00\x00\x00\xf0?4\xbb\xee\xadHL\x80?\x85\xcd\x00\x17d\xcb\xd8\xbfU\x16\x85]\x14=\xbc?\x00\x00\x00\x00\x00\x00\xf0?4\xbb\xee\xadHL\x80?\x85\xcd\x00\x17d\xcb\xd8\xbfU\x16\x85]\x14=\xbc?\x00\x00\x00\x00\x00\x00\xf0?\xaf%\xe4\x83\x9e\xcd\xe1\xbf\xe5\n\xefr\x11_\xe4?\xe1bE\r\xa6a\xc2\xbf\x00\x00\x00\x00\x00\x00\xf0?\xb1\x14\xc9W\x02)\xc9\xbf\xf2C\xa5\x113\xfb\xa4\xbf\x17\x0c\xae\xb9\xa3\xff\xe8\xbf\x00\x00\x00\x00\x00\x00\xf0?\xec\xfa\x05\xbba\xdb\xca?\xad\xa3\xaa\t\xa2\xee\xd1\xbf\xa0\xdc\xb6\xefQ\x7f\xd1?\x00\x00\x00\x00\x00\x00\xf0?p\xcf\xf3\xa7\x8d\xea\xdc\xbf\x1e4\xbb\xee\xad\xc8\xe3?\xb2\x85 \x07%\xcc\xda\xbf\x00\x00\x00\x00\x00\x00\xf0?\xec\xfa\x05\xbba\xdb\xca?\xad\xa3\xaa\t\xa2\xee\xd1\xbf\xa0\xdc\xb6\xefQ\x7f\xd1?\x00\x00\x00\x00\x00\x00\xf0?\xec\xfa\x05\xbba\xdb\xca?\xad\xa3\xaa\t\xa2\xee\xd1\xbf\xa0\xdc\xb6\xefQ\x7f\xd1?\x00\x00\x00\x00\x00\x00\xf0?\xa0\xfdH\x11\x19V\xd9\xbfx\xf1~\xdc~\xf9\xda?\xdb0\n\x82\xc7\xb7\xe4?\x00\x00\x00\x00\x00\x00\xf0?P\xc2L\xdb\xbf\xb2\xa2?\xd7M)\xaf\x95\xd0\xbd\xbf\xcbd8\x9e\xcf\x00\xe6\xbf\x00\x00\x00\x00\x00\x00\xf0?\xbcZ\xee\xcc\x04\xc3\xa9?z\xde\x8d\x05\x85A\xb9?\xa0\x8d\\7\xa5\xbc\xe7?\x00\x00\x00\x00\x00\x00\xf0?T5A\xd4}\x00\xc4?\x90.6\xad\x14\x02\xd5??\x00\xa9M\x9c\\\xe7?\x00\x00\x00\x00\x00\x00\xf0?\x03`<\x83\x86\xfe\xcf?\x96_\x06cD\xa2\xea?#\x82qp\xe9\x98\xab?\x00\x00\x00\x00\x00\x00\xf0?\x03`<\x83\x86\xfe\xcf?\x96_\x06cD\xa2\xea?#\x82qp\xe9\x98\xab?\x00\x00\x00\x00\x00\x00\xf0?\x0e\x82\x8eV\xb5\xa4\xd0\xbfAb\xbb{\x80\xee\xc7?\xea\xb1-\x03\xceR\xe9\xbf\x00\x00\x00\x00\x00\x00\xf0?\xbb\x9b\xa7:\xe4f\xc8\xbf\x8fP3\xa4\x8a\xe2\xcd?\xfe\xd6N\x94\x84D\xe9?\x00\x00\x00\x00\x00\x00\xf0?\xbb\x9b\xa7:\xe4f\xc8\xbf\x8fP3\xa4\x8a\xe2\xcd?\xfe\xd6N\x94\x84D\xe9?\x00\x00\x00\x00\x00\x00\xf0?!\x8f\xe0F\xca\x16\xd2\xbfQ\x85?\xc3\x9b5\xdf?\x11\x8eY\xf6$0\xe5\xbf\x00\x00\x00\x00\x00\x00\xf0?Z,E\xf2\x95@\xdd\xbfD\xc4\xcd\xa9d\x00\xe7?1x\x98\xf6\xcd\xfd\xd1?\x00\x00\x00\x00\x00\x00\xf0?\xa868\x11\xfd\xda\xaa?\x8e\x93\xc2\xbc\xc7\x99\xd6\xbfQ\xf5+\x9d\x0f\xcf\xd6?\x00\x00\x00\x00\x00\x00\xf0?\xa868\x11\xfd\xda\xaa?\x8e\x93\xc2\xbc\xc7\x99\xd6\xbfQ\xf5+\x9d\x0f\xcf\xd6?\x00\x00\x00\x00\x00\x00\xf0?\xa868\x11\xfd\xda\xaa?\x8e\x93\xc2\xbc\xc7\x99\xd6\xbfQ\xf5+\x9d\x0f\xcf\xd6?\x00\x00\x00\x00\x00\x00\xf0?T5A\xd4}\x00\xc4?\x90.6\xad\x14\x02\xd5??\x00\xa9M\x9c\\\xe7?\x00\x00\x00\x00\x00\x00\xf0?T5A\xd4}\x00\xc4?\x90.6\xad\x14\x02\xd5??\x00\xa9M\x9c\\\xe7?\x00\x00\x00\x00\x00\x00\xf0?Z,E\xf2\x95@\xdd\xbfD\xc4\xcd\xa9d\x00\xe7?1x\x98\xf6\xcd\xfd\xd1?\x00\x00\x00\x00\x00\x00\xf0?\x08\x06\x10>\x94h\xa9\xbf[{\x9f\xaaB\x83\xe9?tA}\xcb\x9c.\xd9\xbf\x00\x00\x00\x00\x00\x00\xf0?\xeau\x8b\xc0X\xdf\xa8?E\xa1e\xdd?\x96\xe2?\x1a\xc1\xc6\xf5\xef\xfa\xe5\xbf\x00\x00\x00\x00\x00\x00\xf0?Z,E\xf2\x95@\xdd\xbfD\xc4\xcd\xa9d\x00\xe7?1x\x98\xf6\xcd\xfd\xd1?\x00\x00\x00\x00\x00\x00\xf0?\x876\x00\x1b\x10!\xc0?\x7f\xa4\x88\x0c\xabx\xd3?\xedE\xb4\x1dSw\xea\xbf\x00\x00\x00\x00\x00\x00\xf0?\xbb\x97\xfb\xe4(@\xd4\xbf\xa4\x1c\xcc&\xc0\xb0\xe9?\x0c\xb1\xfa#\x0c\x03\xc4\xbf\x00\x00\x00\x00\x00\x00\xf0?\xec\xfa\x05\xbba\xdb\xca?\xad\xa3\xaa\t\xa2\xee\xd1\xbf\xa0\xdc\xb6\xefQ\x7f\xd1?\x00\x00\x00\x00\x00\x00\xf0?\x14A\x9c\x87\x13\x98\xb2\xbf\xfe\xed\xb2_w\xba\xe6?\x8e\xe6\xc8\xca/\x03\xe0?\x00\x00\x00\x00\x00\x00\xf0?V*\xa8\xa8\xfa\x95\xd3\xbf\xd9@\xba\xd8\xb4R\xb8?\x18\xcc_!se\xe6?\x00\x00\x00\x00\x00\x00\xf0?\x03`<\x83\x86\xfe\xcf?\x96_\x06cD\xa2\xea?#\x82qp\xe9\x98\xab?\x00\x00\x00\x00\x00\x00\xf0?!\x8f\xe0F\xca\x16\xd2\xbfQ\x85?\xc3\x9b5\xdf?\x11\x8eY\xf6$0\xe5\xbf\x00\x00\x00\x00\x00\x00\xf0?Z,E\xf2\x95@\xdd\xbfD\xc4\xcd\xa9d\x00\xe7?1x\x98\xf6\xcd\xfd\xd1?\x00\x00\x00\x00\x00\x00\xf0?"
p22
tp23
bsg5
g2
(g3
(I0
tp24
g5
tp25
Rp26
(I1
(I64
tp27
g12
I00
S"\xba=\x9d\xf73\xcf\xe4?\xfb\x1ar\xb8\x821\xe4?\x8c\x91\xae\xd2K\xaf\xea?$`8;\x80\x8b\xea?\xae\x16\xcd\x83ju\xea?\x1a3\\g\xfb\xfc\xd3?\xf2\xbf\xc7&\x1a\xc0\xe5?\xd8\xa1\x07/\xdb-\xe9?4\x8c[\x86h\x86\xea?H\x1d\xa2k\xcdx\xd3?\x8a%\xd7\x9fLL\xe3?5\xed\xc4\x9f\x7f\xff\xd4?C:\x14s\x04\xf8\xd6??\x1eD3RM\xd0?-\x8e\xba\xfd\x81\x88\xe7?\x02@\xf0\xdd\x0fD\xe8?\xba-\xbc\x8b*u\xe5?R}4\xcb\x8f\xe7\xd4?\xf2\xc9\xf2\r\x7f(\xd3?Qc#Q\xa6\xb0\xea?5N0L\x00\xff\xea?=\xaco]\x03$\xeb?0Yd\x95\xbc\x0c\xe0?d&@qa\xb4\xce?#<\x1b\xe7\xef,\xeb?\xb5\xce\xce\x1ab\xea\xe7?H\xbc\x1c\xfd\x86\xbd\xea?z\xb4@\xd4\xe0:\xd9?\xad\xa4\x1a\x98\n\xb1\xd3?\xf7\xbb\xd0\x8c\xe0\xb7\xd4?\xe9\xa6\xa4\xb9\xdb\x0e\xe8?\x7f.\x12\n\xf5k\xe9?I\n6;\xbc\xaa\xdb?\x08\x16RA\xef\xc4\xea?\xb8\x9f\xf5\xb0\xdc\xf9\xcc?\xdeAM-\x12\x0c\xcb?D)\x98\xaf\x16\xc1\xe7?\xf6y\xa8G\xfc\x95\xd1?\x84\xcd{K\xd9\xa3\xe5?8<\xb8P\xbdJ\xe2?\xae\xe5\xe7\xe9\xd0\x97\xea?\xee\x13t\xfe\\\xca\xea?\xf6Z\xae\x91t\xbb\xea?\x99\xe5`\xae4\x1d\xea?\x04\x83F\x95\x8a\xd2\xe9?\xbe\x95*\xaae\xff\xea?\x83\x8a\xba\xaf;\xff\xe6?X\\l\xb7u\xa0\xde?\x9e\xf0\xde\x850m\xdd?\xee'\xa6\xbd\x8f\x0b\xdc?\xb1%\xecb\xa8\xd8\xde?o8\x1ct\x8a\x90\xdf?]\xddtu\x0e\xc0\xea?\xbbf\xc4\x95KL\xeb?&\x0b\xda\x93`\x03\xeb?\xab\xfd\xc7\x91(\x16\xea?Z B_\xa8\xc2\xe2?\x0c\xeaN\x05\x927\xeb?\xb0\x9b\xd7)\xb6\xc8\xd6?\x02<\x99c\xe8E\xea?\x05#\xe7'\x92t\xd9?\xf2bb\xad\xc1\x0e\xe4?@\xd2@\xe0\xc3\x14\xeb?p\xc3\xf3\xcc.\xfb\xea?"
p28
tp29
bsS'N'
p30
g2
(g3
(I0
tp31
g5
tp32
Rp33
(I1
(I64
I3
tp34
g12
I00
S'W\xec/\xbb\'\x0f\xcb\xbfTR\'\xa0\x89\xb0\xd9\xbf\x14?\xc6\xdc\xb5\x84\xec?\x96!\x8euq\x1b\xd1\xbfO\xaf\x94e\x88c\xdd\xbf\x96!\x8euq\x1b\xeb?\x07_\x98L\x15\x8c\xca?+\x18\x95\xd4\th\xea?s\xd7\x12\xf2A\xcf\xe0?\x0b$(~\x8c\xb9\xc3?\xad\xfa\\m\xc5\xfe\xec?\x9e\xef\xa7\xc6K7\xd9?vq\x1b\r\xe0-\xe0\xbf\x94\x87\x85Z\xd3\xbc\xd3?\xd3\xbc\xe3\x14\x1d\xc9\xe9\xbf\x1d8gDio\xec\xbf7\x1a\xc0[ A\xdd\xbf\xdb\xf9~j\xbct\xa3\xbf\x97\xff\x90~\xfb:\xe6\xbf\xf0\x85\xc9T\xc1\xa8\xcc\xbf\xac\x1cZd;\xdf\xe5\xbf\x08=\x9bU\x9f\xab\xe9\xbf\xe3\xc7\x98\xbb\x96\x90\xd7?P\xfc\x18s\xd7\x12\xde\xbfF%u\x02\x9a\x08\xe3\xbfO\xaf\x94e\x88c\xdd?[\xd3\xbc\xe3\x14\x1d\xe5\xbf\xe6\xae%\xe4\x83\x9e\xe9\xbf\xe5\xd0"\xdb\xf9~\xe2\xbf:#J{\x83/\xc4\xbfu\x93\x18\x04V\x0e\xeb\xbfU\xc1\xa8\xa4N@\xc3\xbf\x84\rO\xaf\x94e\xe0?\xd2o_\x07\xce\x19\xed\xbf\xd74\xef8EG\xda\xbf\xc1\xa8\xa4N@\x13\xb1?E\xd8\xf0\xf4JY\xec\xbf\xa1\xd64\xef8E\xdb\xbf\x9f\xab\xad\xd8_v\xc7?KY\x868\xd6\xc5\xef?I\x9d\x80&\xc2\x86\xb7\xbfvO\x1e\x16jM\xb3?\xb8\x1e\x85\xebQ\xb8\xc6?\x97\xff\x90~\xfb:\xa0\xbf(\x0f\x0b\xb5\xa6y\xef?J{\x83/L\xa6\xe2?\x8f\xe4\xf2\x1f\xd2o\xdf?\xd6\xc5m4\x80\xb7\xe4\xbfz\xc7):\x92\xcb\xcf?\xbaI\x0c\x02+\x87\xd6\xbf\xff!\xfd\xf6u\xe0\xec\xbfV\x0e-\xb2\x9d\xef\xed?\x92\\\xfeC\xfa\xed\xc3\xbf\x05\xa3\x92:\x01M\xd4?\xaf%\xe4\x83\x9e\xcd\xee?\xb3{\xf2\xb0Pk\xba\xbf\x11\xc7\xba\xb8\x8d\x06\xd0?\x8f\xc2\xf5(\\\x8f\xca?\xe5\xf2\x1f\xd2o_\xed?\xf7u\xe0\x9c\x11\xa5\xd5?\x02\xbc\x05\x12\x14?\xe2\xbf\xf5\xdb\xd7\x81sF\xea?-C\x1c\xeb\xe26\x9a\xbf\x86Z\xd3\xbc\xe3\x14\xd5\xbf\xae\xd8_vO\x1e\xee?"lxz\xa5,\xb3?\xa6\nF%u\x02\xe6?b\x10X9\xb4\xc8\xd6\xbf c\xeeZB>\xe4\xbf\xe2X\x17\xb7\xd1\x00\xec?\xcc]K\xc8\x07=\xdb\xbf\nh"lxz\xcd\xbf\x8euq\x1b\r\xe0\xe1\xbf\xd6V\xec/\xbb\'\xe9?\xa9\x13\xd0D\xd8\xf0\xd0\xbf\xad\xfa\\m\xc5\xfe\xe6?\xd5x\xe9&1\x08\xe6?k\x9aw\x9c\xa2#\xb9\xbf\xac\xad\xd8_vO\xc6\xbfvq\x1b\r\xe0-\xd8?\xd2o_\x07\xce\x19\xed\xbf\xa3#\xb9\xfc\x87\xf4\xc3\xbf@\x13a\xc3\xd3+\xef\xbfB>\xe8\xd9\xac\xfa\xc4?\x10z6\xab>W\xdb\xbf\x17\xd9\xce\xf7S\xe3\xeb\xbfs\xd7\x12\xf2A\xcf\xce\xbfj\xbct\x93\x18\x04\xc6\xbf\xb5\x15\xfb\xcb\xee\xc9\xed\xbf\x1b\r\xe0-\x90\xa0\xd4\xbfJ{\x83/L\xa6\xec\xbfK\xc8\x07=\x9bU\xdb?\x868\xd6\xc5m4\xc0?\x8f\xc2\xf5(\\\x8f\xb2\xbfP\x8d\x97n\x12\x83\xb0\xbf}\xae\xb6b\x7f\xd9\xef\xbf\xb2.n\xa3\x01\xbc\xe1?\x82sF\x94\xf6\x06\xe7\xbf\x9e^)\xcb\x10\xc7\xda?\x9c\xc4 \xb0rh\xe7\xbf\xb2\x9d\xef\xa7\xc6K\xe3?\xaf\x94e\x88c]\xd4\xbf\x89\xd2\xde\xe0\x0b\x93\xef?\x81&\xc2\x86\xa7W\xc2\xbf\xec\xc09#J{\xb3\xbf\xa2E\xb6\xf3\xfd\xd4\xee?\x1e\xa7\xe8H.\xff\xc9\xbf\xcd;N\xd1\x91\\\xc6\xbf\x0c\x02+\x87\x16\xd9\xe2\xbf\x82\xe2\xc7\x98\xbb\x96\xa0\xbf\xd7\xa3p=\n\xd7\xe9?\xb8\xaf\x03\xe7\x8c(\xe3?\xd5\th"lx\xe8\xbf\xaa\x82QI\x9d\x80\xce\xbfX\xa85\xcd;N\x91?\xea\x95\xb2\x0cq\xac\xd3\xbf\xc4B\xadi\xdeq\xee?\x01M\x84\rO\xaf\xea?t\xb5\x15\xfb\xcb\xee\xc9?Y\x868\xd6\xc5m\xe0?\xb4\xc8v\xbe\x9f\x1a\xcf?%u\x02\x9a\x08\x1b\xee?\x8a\x1fc\xeeZB\xce\xbf`vO\x1e\x16j\xc5?\x9c3\xa2\xb47\xf8\xee?\x99*\x18\x95\xd4\t\xc8\xbf/n\xa3\x01\xbc\x05\xca\xbfO\xaf\x94e\x88c\xd9?\x86\xc9T\xc1\xa8\xa4\xec\xbfR\xb8\x1e\x85\xebQ\xc0\xbf\xfe\xd4x\xe9&1\xe0?\x94\xf6\x06_\x98L\xeb?\x00o\x81\x04\xc5\x8f\xb1?\x08=\x9bU\x9f\xab\xd5?\xf3\x1f\xd2o_\x07\xee?\xc9\xe5?\xa4\xdf\xbe\xd2\xbfi\x00o\x81\x04\xc5\xe7?\xbf}\x1d8gD\xe3\xbfgDio\xf0\x85\xed\xbf_\x98L\x15\x8cJ\xd6?b\xa1\xd64\xef8\xc5?D\xfa\xed\xeb\xc09\xb3\xbf\x7f\xd9=yX\xa8\xeb\xbf\x13\xf2A\xcff\xd5\xdf?\xf7u\xe0\x9c\x11\xa5\xdd?\xe6\xae%\xe4\x83\x9e\xe7\xbf\xf5\xb9\xda\x8a\xfde\xdf?\x90\xa0\xf81\xe6\xae\xcd\xbf\x054\x116<\xbd\xec\xbf\xce\xaa\xcf\xd5V\xec\xd7?\xe3\xa5\x9b\xc4 \xb0\xe6?HP\xfc\x18s\xd7\xd2\xbf\x8c\xdbh\x00o\x81\xe4?\xb1\xbf\xec\x9e<,\xe6?\x054\x116<\xbd\xd2\xbfh\xb3\xeas\xb5\x15\xe5?B`\xe5\xd0"\xdb\xd5\xbf;\xdfO\x8d\x97n\xe6?\xd5x\xe9&1\x08\xe4?\xd0D\xd8\xf0\xf4J\xc1\xbf\xd9=yX\xa85\xef?V\x9f\xab\xad\xd8_\xc6\xbf\x15\x1d\xc9\xe5?\xa4\xcf?)\\\x8f\xc2\xf5(\xea?h"lxz\xa5\xe0\xbf\x19\xe2X\x17\xb7\xd1\xe6\xbf\xaf%\xe4\x83\x9e\xcd\xde?\x8e\x06\xf0\x16HP\xe0?\x91~\xfb:p\xce\xea?U\xc1\xa8\xa4N@\xcb?\x9d\x11\xa5\xbd\xc1\x17\xe0\xbf4\x116<\xbdR\xd6\xbf\xe5a\xa1\xd64\xef\xea?V\x9f\xab\xad\xd8_\xda\xbf\xdcF\x03x\x0b$\xdc?Nb\x10X9\xb4\xec\xbf\x91\x0fz6\xab>\xa7?n4\x80\xb7@\x82\xc2\xbf\x16jM\xf3\x8eS\xe2?\x8a\x8e\xe4\xf2\x1f\xd2\xe9?\xb7\xd1\x00\xde\x02\t\xea\xbf\xd74\xef8EG\xe0\xbf/n\xa3\x01\xbc\x05\xd2?\xe8j+\xf6\x97\xdd\xeb?333333\xdf?C\x1c\xeb\xe26\x1a\xb0?\xa8\xc6K7\x89A\xd0\xbf\x96\xb2\x0cq\xac\x8b\xe7?\xbb\xb8\x8d\x06\xf0\x16\xe4\xbfGr\xf9\x0f\xe9\xb7\xc7\xbf7\x1a\xc0[ A\xed?\xdfO\x8d\x97n\x12\xd7?'
p35
tp36
bs.
\ No newline at end of file
# Blender MTL File: 'None'
# Material Count: 1
newmtl None
Ns 0
Ka 0.000000 0.000000 0.000000
Kd 0.8 0.8 0.8
Ks 0.8 0.8 0.8
d 1
illum 2
# Blender MTL File: 'None'
# Material Count: 1
newmtl None
Ns 0
Ka 0.000000 0.000000 0.000000
Kd 0.8 0.8 0.8
Ks 0.8 0.8 0.8
d 1
illum 2
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment